From 09d09759b594dc538a0e629d1778fe5107f344ac Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Thu, 24 Aug 2023 18:11:53 +0200 Subject: [PATCH] fix(ux): various ui/ux fixes (#2722) * force plugin render on permission request response * clear warnings * Revert "feat(ui): new status bar mode (#2619)" This reverts commit 27763d26ab83dd9f81c69c75601cbf6075f13790. * adjust status bar help * fix colors in session manager and shortcut in status-bar * adjust keybindings --- default-plugins/compact-bar/src/main.rs | 2 +- .../session-manager/src/ui/components.rs | 4 +- default-plugins/status-bar/src/first_line.rs | 367 ++---------------- default-plugins/status-bar/src/main.rs | 86 +--- default-plugins/status-bar/src/second_line.rs | 106 ++++- .../status-bar/src/tip/data/compact_layout.rs | 2 +- .../src/tip/data/edit_scrollbuffer.rs | 2 +- .../src/tip/data/floating_panes_mouse.rs | 2 +- .../status-bar/src/tip/data/quicknav.rs | 2 +- .../status-bar/src/tip/data/sync_tab.rs | 2 +- default-plugins/strider/src/main.rs | 2 +- default-plugins/tab-bar/src/main.rs | 2 +- src/tests/e2e/cases.rs | 2 +- .../zellij__tests__e2e__cases__lock_mode.snap | 4 +- ...ests__e2e__cases__mirrored_sessions-2.snap | 2 +- zellij-server/src/plugins/wasm_bridge.rs | 9 +- zellij-tile/src/shim.rs | 2 + .../assets/plugins/session-manager.wasm | Bin 771931 -> 773352 bytes zellij-utils/src/input/actions.rs | 1 + zellij-utils/src/input/layout.rs | 18 +- 20 files changed, 181 insertions(+), 436 deletions(-) diff --git a/default-plugins/compact-bar/src/main.rs b/default-plugins/compact-bar/src/main.rs index 18c9f12b..a7a19bd0 100644 --- a/default-plugins/compact-bar/src/main.rs +++ b/default-plugins/compact-bar/src/main.rs @@ -31,7 +31,7 @@ static ARROW_SEPARATOR: &str = ""; register_plugin!(State); impl ZellijPlugin for State { - fn load(&mut self, configuration: BTreeMap) { + fn load(&mut self, _configuration: BTreeMap) { set_selectable(false); subscribe(&[ EventType::TabUpdate, diff --git a/default-plugins/session-manager/src/ui/components.rs b/default-plugins/session-manager/src/ui/components.rs index 6b606589..72aa2181 100644 --- a/default-plugins/session-manager/src/ui/components.rs +++ b/default-plugins/session-manager/src/ui/components.rs @@ -294,7 +294,7 @@ impl LineToRender { } pub fn make_selected(&mut self) { self.is_selected = true; - match self.colors.palette.gray { + match self.colors.palette.bg { PaletteColor::EightBit(byte) => { self.line = format!( "\u{1b}[48;5;{byte}m\u{1b}[K\r\u{1b}[48;5;{byte}m{}", @@ -303,7 +303,7 @@ impl LineToRender { }, PaletteColor::Rgb((r, g, b)) => { self.line = format!( - "\u{1b}[48;2;{};{};{}m\u{1b}[K\r\u{1b}[48;5;{};{};{}m{}", + "\u{1b}[48;2;{};{};{}m\u{1b}[K\r\u{1b}[48;2;{};{};{}m{}", r, g, b, r, g, b, self.line ); }, diff --git a/default-plugins/status-bar/src/first_line.rs b/default-plugins/status-bar/src/first_line.rs index 183aa64f..23a6d586 100644 --- a/default-plugins/status-bar/src/first_line.rs +++ b/default-plugins/status-bar/src/first_line.rs @@ -8,14 +8,13 @@ use crate::{ }; use crate::{ColoredElements, LinePart}; -#[derive(Debug, Clone, Copy)] struct KeyShortcut { mode: KeyMode, - pub action: KeyAction, + action: KeyAction, key: Option, } -#[derive(Debug, Clone, Copy, PartialEq)] +#[derive(PartialEq)] enum KeyAction { Lock, Pane, @@ -28,7 +27,6 @@ enum KeyAction { Tmux, } -#[derive(Debug, Clone, Copy)] enum KeyMode { Unselected, UnselectedAlternate, @@ -36,20 +34,6 @@ enum KeyMode { Disabled, } -fn letter_shortcut(key: &Key, with_prefix: bool) -> String { - if with_prefix { - format!("{}", key) - } else { - match key { - Key::F(c) => format!("{}", c), - Key::Ctrl(c) => format!("{}", c), - Key::Char(_) => format!("{}", key), - Key::Alt(c) => format!("{}", c), - _ => String::from("??"), - } - } -} - impl KeyShortcut { pub fn new(mode: KeyMode, action: KeyAction, key: Option) -> Self { KeyShortcut { mode, action, key } @@ -73,7 +57,17 @@ impl KeyShortcut { Some(k) => k, None => return String::from("?"), }; - letter_shortcut(&key, with_prefix) + if with_prefix { + format!("{}", key) + } else { + match key { + Key::F(c) => format!("{}", c), + Key::Ctrl(c) => format!("{}", c), + Key::Char(_) => format!("{}", key), + Key::Alt(c) => format!("{}", c), + _ => String::from("??"), + } + } } } @@ -202,58 +196,6 @@ fn short_mode_shortcut( } } -fn short_key_indicators( - max_len: usize, - keys: &[KeyShortcut], - palette: ColoredElements, - separator: &str, - mode_info: &ModeInfo, - no_super: bool, -) -> LinePart { - let mut line_part = if no_super { - LinePart::default() - } else { - superkey(palette, separator, mode_info) - }; - let shared_super = if no_super { true } else { line_part.len > 0 }; - for ctrl_key in keys { - let line_empty = line_part.len == 0; - let key = short_mode_shortcut(ctrl_key, palette, separator, shared_super, line_empty); - line_part.part = format!("{}{}", line_part.part, key.part); - line_part.len += key.len; - } - if line_part.len < max_len { - return line_part; - } - - // Shortened doesn't fit, print nothing - line_part = LinePart::default(); - line_part -} - -fn full_key_indicators( - keys: &[KeyShortcut], - palette: ColoredElements, - separator: &str, - mode_info: &ModeInfo, - no_super: bool, -) -> LinePart { - // Print full-width hints - let mut line_part = if no_super { - LinePart::default() - } else { - superkey(palette, separator, mode_info) - }; - let shared_super = if no_super { true } else { line_part.len > 0 }; - for ctrl_key in keys { - let line_empty = line_part.len == 0; - let key = long_mode_shortcut(ctrl_key, palette, separator, shared_super, line_empty); - line_part.part = format!("{}{}", line_part.part, key.part); - line_part.len += key.len; - } - line_part -} - fn key_indicators( max_len: usize, keys: &[KeyShortcut], @@ -460,111 +402,6 @@ pub fn superkey(palette: ColoredElements, separator: &str, mode_info: &ModeInfo) } } -fn standby_mode_shortcut_key(help: &ModeInfo) -> Key { - let binds = &help.get_mode_keybinds(); - match help.mode { - InputMode::Locked => to_char(action_key( - binds, - &[Action::SwitchToMode(InputMode::Normal)], - )), - _ => to_char(action_key( - binds, - &[Action::SwitchToMode(InputMode::Locked)], - )), - } - .unwrap_or(Key::Char('?')) -} - -fn standby_mode_ui_indication( - has_shared_super: bool, - standby_mode: &InputMode, - standby_mode_shortcut_key: Key, - colored_elements: ColoredElements, - separator: &str, -) -> LinePart { - let mut line_part = LinePart::default(); - let standby_mode_shortcut = standby_mode_single_letter_selected( - has_shared_super, - standby_mode_shortcut_key, - colored_elements, - separator, - ); - // standby mode text hint - let key_shortcut = KeyShortcut::new( - KeyMode::Unselected, - input_mode_to_key_action(&standby_mode), - None, - ); - let styled_text = colored_elements - .unselected - .styled_text - .paint(format!(" {} ", key_shortcut.full_text())); - let suffix_separator = colored_elements - .unselected - .suffix_separator - .paint(separator); - let standby_mode_text = LinePart { - part: ANSIStrings(&[styled_text, suffix_separator]).to_string(), - len: key_shortcut.full_text().chars().count() + separator.chars().count() + 2, // 2 padding - }; - line_part.part = format!("{}{}", line_part.part, standby_mode_shortcut.part); - line_part.len += standby_mode_shortcut.len; - line_part.part = format!("{}{}", line_part.part, standby_mode_text.part); - line_part.len += standby_mode_text.len; - line_part -} - -fn standby_mode_single_letter_unselected( - has_shared_super: bool, - shortcut_key: Key, - palette: ColoredElements, - separator: &str, -) -> LinePart { - let prefix_separator = palette.unselected.prefix_separator.paint(separator); - let char_shortcut = palette.unselected.char_shortcut.paint(format!( - " {} ", - letter_shortcut(&shortcut_key, has_shared_super) - )); - let suffix_separator = palette.unselected.suffix_separator.paint(separator); - let len = prefix_separator.chars().count() - + char_shortcut.chars().count() - + suffix_separator.chars().count(); - LinePart { - part: ANSIStrings(&[prefix_separator, char_shortcut, suffix_separator]).to_string(), - len, - } -} - -fn standby_mode_single_letter_selected( - has_shared_super: bool, - shortcut_key: Key, - palette: ColoredElements, - separator: &str, -) -> LinePart { - let prefix_separator = palette - .selected_standby_shortcut - .prefix_separator - .paint(separator); - let char_shortcut = palette - .selected_standby_shortcut - .char_shortcut - .paint(format!( - " {} ", - letter_shortcut(&shortcut_key, has_shared_super) - )); - let suffix_separator = palette - .selected_standby_shortcut - .suffix_separator - .paint(separator); - let len = prefix_separator.chars().count() - + char_shortcut.chars().count() - + suffix_separator.chars().count(); - LinePart { - part: ANSIStrings(&[prefix_separator, char_shortcut, suffix_separator]).to_string(), - len, - } -} - pub fn to_char(kv: Vec) -> Option { let key = kv .iter() @@ -582,19 +419,6 @@ pub fn to_char(kv: Vec) -> Option { key.cloned() } -fn input_mode_to_key_action(input_mode: &InputMode) -> KeyAction { - match input_mode { - InputMode::Normal | InputMode::Prompt | InputMode::Tmux => KeyAction::Lock, - InputMode::Locked => KeyAction::Lock, - InputMode::Pane | InputMode::RenamePane => KeyAction::Pane, - InputMode::Tab | InputMode::RenameTab => KeyAction::Tab, - InputMode::Resize => KeyAction::Resize, - InputMode::Move => KeyAction::Move, - InputMode::Scroll | InputMode::Search | InputMode::EnterSearch => KeyAction::Search, - InputMode::Session => KeyAction::Session, - } -} - /// Get the [`KeyShortcut`] for a specific [`InputMode`]. /// /// Iterates over the contents of `shortcuts` to find the [`KeyShortcut`] with the [`KeyAction`] @@ -625,8 +449,7 @@ fn get_key_shortcut_for_mode<'a>( None } -pub fn first_line_supermode( - standby_mode: &InputMode, +pub fn first_line( help: &ModeInfo, tab_info: Option<&TabInfo>, max_len: usize, @@ -634,129 +457,9 @@ pub fn first_line_supermode( ) -> LinePart { let supports_arrow_fonts = !help.capabilities.arrow_fonts; let colored_elements = color_elements(help.style.colors, !supports_arrow_fonts); - - let standby_mode_shortcut_key = standby_mode_shortcut_key(&help); - - let mut line = superkey(colored_elements, separator, help); - let has_shared_super = line.len == 0; - let max_len_without_superkey = max_len.saturating_sub(line.len); - let mut append_to_line = |line_part_to_append: LinePart| { - line.part = format!("{}{}", line.part, line_part_to_append.part); - line.len += line_part_to_append.len; - }; - match help.mode { - InputMode::Locked => { - let standby_mode_shortcut = standby_mode_single_letter_unselected( - has_shared_super, - standby_mode_shortcut_key, - colored_elements, - separator, - ); - append_to_line(standby_mode_shortcut); - line - }, - _ => { - let mut default_keys = generate_default_keys(help); - default_keys.remove(0); // remove locked mode which is not relevant to the supermode ui - - if let Some(position) = default_keys - .iter() - .position(|d| d.action == input_mode_to_key_action(standby_mode)) - { - let standby_mode_ui_ribbon = standby_mode_ui_indication( - has_shared_super, - &standby_mode, - standby_mode_shortcut_key, - colored_elements, - separator, - ); - let first_keybinds: Vec = - default_keys.iter().cloned().take(position).collect(); - let second_keybinds: Vec = - default_keys.iter().cloned().skip(position + 1).collect(); - let first_key_indicators = - full_key_indicators(&first_keybinds, colored_elements, separator, help, true); - let second_key_indicators = - full_key_indicators(&second_keybinds, colored_elements, separator, help, true); - - if first_key_indicators.len + standby_mode_ui_ribbon.len + second_key_indicators.len - < max_len_without_superkey - { - append_to_line(first_key_indicators); - append_to_line(standby_mode_ui_ribbon); - append_to_line(second_key_indicators); - } else { - let length_of_each_half = - max_len_without_superkey.saturating_sub(standby_mode_ui_ribbon.len) / 2; - let first_key_indicators = short_key_indicators( - length_of_each_half, - &first_keybinds, - colored_elements, - separator, - help, - true, - ); - let second_key_indicators = short_key_indicators( - length_of_each_half, - &second_keybinds, - colored_elements, - separator, - help, - true, - ); - append_to_line(first_key_indicators); - append_to_line(standby_mode_ui_ribbon); - append_to_line(second_key_indicators); - } - if line.len < max_len { - if let Some(tab_info) = tab_info { - let remaining_space = max_len.saturating_sub(line.len); - line.append(&swap_layout_status_and_padding( - &tab_info, - remaining_space, - separator, - colored_elements, - help, - )); - } - } - } - line - }, - } -} - -fn swap_layout_status_and_padding( - tab_info: &TabInfo, - mut remaining_space: usize, - separator: &str, - colored_elements: ColoredElements, - help: &ModeInfo, -) -> LinePart { - let mut line = LinePart::default(); - if let Some(swap_layout_status) = swap_layout_status( - remaining_space, - &tab_info.active_swap_layout_name, - tab_info.is_swap_layout_dirty, - help, - colored_elements, - &help.style.colors, - separator, - ) { - remaining_space -= swap_layout_status.len; - for _ in 0..remaining_space { - line.part - .push_str(&ANSIStrings(&[colored_elements.superkey_prefix.paint(" ")]).to_string()); - line.len += 1; - } - line.append(&swap_layout_status); - } - line -} - -fn generate_default_keys(help: &ModeInfo) -> Vec { let binds = &help.get_mode_keybinds(); - vec![ + // Unselect all by default + let mut default_keys = vec![ KeyShortcut::new( KeyMode::Unselected, KeyAction::Lock, @@ -809,20 +512,7 @@ fn generate_default_keys(help: &ModeInfo) -> Vec { KeyAction::Quit, to_char(action_key(binds, &[Action::Quit])), ), - ] -} - -pub fn first_line( - help: &ModeInfo, - tab_info: Option<&TabInfo>, - max_len: usize, - separator: &str, -) -> LinePart { - let supports_arrow_fonts = !help.capabilities.arrow_fonts; - let colored_elements = color_elements(help.style.colors, !supports_arrow_fonts); - let binds = &help.get_mode_keybinds(); - // Unselect all by default - let mut default_keys = generate_default_keys(help); // TODO: check that this still works + ]; if let Some(key_shortcut) = get_key_shortcut_for_mode(&mut default_keys, &help.mode) { key_shortcut.mode = KeyMode::Selected; @@ -849,14 +539,25 @@ pub fn first_line( key_indicators(max_len, &default_keys, colored_elements, separator, help); if key_indicators.len < max_len { if let Some(tab_info) = tab_info { - let remaining_space = max_len - key_indicators.len; - key_indicators.append(&swap_layout_status_and_padding( - &tab_info, + let mut remaining_space = max_len - key_indicators.len; + if let Some(swap_layout_status) = swap_layout_status( remaining_space, - separator, - colored_elements, + &tab_info.active_swap_layout_name, + tab_info.is_swap_layout_dirty, help, - )); + colored_elements, + &help.style.colors, + separator, + ) { + remaining_space -= swap_layout_status.len; + for _ in 0..remaining_space { + key_indicators.part.push_str( + &ANSIStrings(&[colored_elements.superkey_prefix.paint(" ")]).to_string(), + ); + key_indicators.len += 1; + } + key_indicators.append(&swap_layout_status); + } } } key_indicators diff --git a/default-plugins/status-bar/src/main.rs b/default-plugins/status-bar/src/main.rs index d768b35e..2910d678 100644 --- a/default-plugins/status-bar/src/main.rs +++ b/default-plugins/status-bar/src/main.rs @@ -14,9 +14,10 @@ use zellij_tile::prelude::actions::Action; use zellij_tile::prelude::*; use zellij_tile_utils::{palette_match, style}; -use first_line::{first_line, first_line_supermode}; +use first_line::first_line; use second_line::{ - floating_panes_are_visible, fullscreen_panes_to_hide, keybinds, system_clipboard_error, + floating_panes_are_visible, fullscreen_panes_to_hide, keybinds, + locked_floating_panes_are_visible, locked_fullscreen_panes_to_hide, system_clipboard_error, text_copied_hint, }; use tip::utils::get_cached_tip_name; @@ -34,10 +35,6 @@ struct State { mode_info: ModeInfo, text_copy_destination: Option, display_system_clipboard_failure: bool, - - supermode: bool, - standby_mode: InputMode, - current_mode: InputMode, } register_plugin!(State); @@ -64,7 +61,6 @@ impl Display for LinePart { #[derive(Clone, Copy)] pub struct ColoredElements { pub selected: SegmentStyle, - pub selected_standby_shortcut: SegmentStyle, pub unselected: SegmentStyle, pub unselected_alternate: SegmentStyle, pub disabled: SegmentStyle, @@ -114,14 +110,6 @@ fn color_elements(palette: Palette, different_color_alternates: bool) -> Colored styled_text: style!(background, palette.green).bold(), suffix_separator: style!(palette.green, background).bold(), }, - selected_standby_shortcut: SegmentStyle { - prefix_separator: style!(background, palette.green), - char_left_separator: style!(background, palette.green).bold(), - char_shortcut: style!(palette.red, palette.green).bold(), - char_right_separator: style!(background, palette.green).bold(), - styled_text: style!(background, palette.green).bold(), - suffix_separator: style!(palette.green, palette.fg).bold(), - }, unselected: SegmentStyle { prefix_separator: style!(background, palette.fg), char_left_separator: style!(background, palette.fg).bold(), @@ -158,14 +146,6 @@ fn color_elements(palette: Palette, different_color_alternates: bool) -> Colored styled_text: style!(background, palette.green).bold(), suffix_separator: style!(palette.green, background).bold(), }, - selected_standby_shortcut: SegmentStyle { - prefix_separator: style!(background, palette.green), - char_left_separator: style!(background, palette.green).bold(), - char_shortcut: style!(palette.red, palette.green).bold(), - char_right_separator: style!(background, palette.green).bold(), - styled_text: style!(background, palette.green).bold(), - suffix_separator: style!(palette.green, palette.fg).bold(), - }, unselected: SegmentStyle { prefix_separator: style!(background, palette.fg), char_left_separator: style!(background, palette.fg).bold(), @@ -197,7 +177,7 @@ fn color_elements(palette: Palette, different_color_alternates: bool) -> Colored } impl ZellijPlugin for State { - fn load(&mut self, configuration: BTreeMap) { + fn load(&mut self, _configuration: BTreeMap) { // TODO: Should be able to choose whether to use the cache through config. self.tip_name = get_cached_tip_name(); set_selectable(false); @@ -208,47 +188,12 @@ impl ZellijPlugin for State { EventType::InputReceived, EventType::SystemClipboardFailure, ]); - self.supermode = configuration - .get("supermode") - .and_then(|s| s.trim().parse().ok()) - .unwrap_or(false); - self.standby_mode = InputMode::Pane; - if self.supermode { - switch_to_input_mode(&InputMode::Locked); // supermode should start locked (TODO: only - // once per app load, let's not do this on - // each tab loading) - } } fn update(&mut self, event: Event) -> bool { let mut should_render = false; match event { Event::ModeUpdate(mode_info) => { - if self.supermode { - // supermode is a "sticky" mode that is not Normal or Locked - // using this configuration, we default to Locked mode in order to avoid key - // collisions with terminal applications - // whenever the user switches away from locked mode, we make sure to place them - // in the standby mode - // whenever the user switches to a mode that is not locked or normal, we set - // that mode as the standby mode - // whenever the user switches away from the standby mode, we palce them in - // normal mode - if mode_info.mode == InputMode::Normal && self.current_mode == InputMode::Locked - { - switch_to_input_mode(&self.standby_mode); - } else if mode_info.mode == InputMode::Normal - && self.current_mode == self.standby_mode - { - switch_to_input_mode(&InputMode::Locked); - } else if mode_info.mode != InputMode::Locked - && mode_info.mode != InputMode::Normal - { - self.standby_mode = mode_info.mode; - } - self.current_mode = mode_info.mode; - } - if self.mode_info != mode_info { should_render = true; } @@ -300,17 +245,7 @@ impl ZellijPlugin for State { }; let active_tab = self.tabs.iter().find(|t| t.active); - let first_line = if self.supermode { - first_line_supermode( - &self.standby_mode, - &self.mode_info, - active_tab, - cols, - separator, - ) - } else { - first_line(&self.mode_info, active_tab, cols, separator) - }; + let first_line = first_line(&self.mode_info, active_tab, cols, separator); let second_line = self.second_line(cols); let background = match self.mode_info.style.colors.theme_hue { @@ -362,7 +297,11 @@ impl State { } else if let Some(active_tab) = active_tab { if active_tab.is_fullscreen_active { match self.mode_info.mode { - InputMode::Normal | InputMode::Locked => fullscreen_panes_to_hide( + InputMode::Normal => fullscreen_panes_to_hide( + &self.mode_info.style.colors, + active_tab.panes_to_hide, + ), + InputMode::Locked => locked_fullscreen_panes_to_hide( &self.mode_info.style.colors, active_tab.panes_to_hide, ), @@ -370,8 +309,9 @@ impl State { } } else if active_tab.are_floating_panes_visible { match self.mode_info.mode { - InputMode::Normal | InputMode::Locked => { - floating_panes_are_visible(&self.mode_info) + InputMode::Normal => floating_panes_are_visible(&self.mode_info), + InputMode::Locked => { + locked_floating_panes_are_visible(&self.mode_info.style.colors) }, _ => keybinds(&self.mode_info, &self.tip_name, cols), } diff --git a/default-plugins/status-bar/src/second_line.rs b/default-plugins/status-bar/src/second_line.rs index e3923174..4376616a 100644 --- a/default-plugins/status-bar/src/second_line.rs +++ b/default-plugins/status-bar/src/second_line.rs @@ -45,6 +45,20 @@ fn full_length_shortcut( } } +fn locked_interface_indication(palette: Palette) -> LinePart { + let locked_text = " -- INTERFACE LOCKED -- "; + let locked_text_len = locked_text.chars().count(); + let text_color = palette_match!(match palette.theme_hue { + ThemeHue::Dark => palette.white, + ThemeHue::Light => palette.black, + }); + let locked_styled_text = Style::new().fg(text_color).bold().paint(locked_text); + LinePart { + part: locked_styled_text.to_string(), + len: locked_text_len, + } +} + fn add_shortcut(help: &ModeInfo, linepart: &LinePart, text: &str, keys: Vec) -> LinePart { let shortcut = if linepart.len == 0 { full_length_shortcut(true, keys, text, help.style.colors) @@ -166,12 +180,7 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec)> { (s("Rename"), s("Rename"), action_key(&km, &[A::SwitchToMode(IM::RenameTab), A::TabNameInput(vec![0])])), (s("Sync"), s("Sync"), action_key(&km, &[A::ToggleActiveSyncTab, TO_NORMAL])), - (s("Break pane to new tab"), s("Break"), action_key(&km, &[A::BreakPane, TO_NORMAL])), - (s("Break pane to next/prev tab"), s("Break next/prev"), - action_key_group(&km, &[ - &[A::BreakPaneLeft, TO_NORMAL], - &[A::BreakPaneRight, TO_NORMAL] - ])), + (s("Toggle"), s("Toggle"), action_key(&km, &[A::ToggleTab])), (s("Select pane"), s("Select"), to_normal_key), ]} else if mi.mode == IM::Resize { vec![ (s("Increase/Decrease size"), s("Increase/Decrease"), @@ -231,6 +240,7 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec)> { action_key(&km, &[A::SearchToggleOption(SOpt::WholeWord)])), ]} else if mi.mode == IM::Session { vec![ (s("Detach"), s("Detach"), action_key(&km, &[Action::Detach])), + (s("Session Manager"), s("Manager"), action_key(&km, &[A::LaunchOrFocusPlugin(Default::default(), true), TO_NORMAL])), // not entirely accurate (s("Select pane"), s("Select"), to_normal_key), ]} else if mi.mode == IM::Tmux { vec![ (s("Move focus"), s("Move"), action_key_group(&km, &[ @@ -255,7 +265,8 @@ fn get_keys_and_hints(mi: &ModeInfo) -> Vec<(String, String, Vec)> { fn full_shortcut_list(help: &ModeInfo, tip: TipFn) -> LinePart { match help.mode { - InputMode::Normal | InputMode::Locked => tip(help), + InputMode::Normal => tip(help), + InputMode::Locked => locked_interface_indication(help.style.colors), _ => full_shortcut_list_nonstandard_mode(help), } } @@ -272,7 +283,8 @@ fn shortened_shortcut_list_nonstandard_mode(help: &ModeInfo) -> LinePart { fn shortened_shortcut_list(help: &ModeInfo, tip: TipFn) -> LinePart { match help.mode { - InputMode::Normal | InputMode::Locked => tip(help), + InputMode::Normal => tip(help), + InputMode::Locked => locked_interface_indication(help.style.colors), _ => shortened_shortcut_list_nonstandard_mode(help), } } @@ -295,7 +307,7 @@ fn best_effort_shortcut_list_nonstandard_mode(help: &ModeInfo, max_len: usize) - fn best_effort_shortcut_list(help: &ModeInfo, tip: TipFn, max_len: usize) -> LinePart { match help.mode { - InputMode::Normal | InputMode::Locked => { + InputMode::Normal => { let line_part = tip(help); if line_part.len <= max_len { line_part @@ -303,6 +315,14 @@ fn best_effort_shortcut_list(help: &ModeInfo, tip: TipFn, max_len: usize) -> Lin LinePart::default() } }, + InputMode::Locked => { + let line_part = locked_interface_indication(help.style.colors); + if line_part.len <= max_len { + line_part + } else { + LinePart::default() + } + }, _ => best_effort_shortcut_list_nonstandard_mode(help, max_len), } } @@ -447,6 +467,68 @@ pub fn floating_panes_are_visible(mode_info: &ModeInfo) -> LinePart { } } +pub fn locked_fullscreen_panes_to_hide(palette: &Palette, panes_to_hide: usize) -> LinePart { + let text_color = palette_match!(match palette.theme_hue { + ThemeHue::Dark => palette.white, + ThemeHue::Light => palette.black, + }); + let green_color = palette_match!(palette.green); + let orange_color = palette_match!(palette.orange); + let locked_text = " -- INTERFACE LOCKED -- "; + let shortcut_left_separator = Style::new().fg(text_color).bold().paint(" ("); + let shortcut_right_separator = Style::new().fg(text_color).bold().paint("): "); + let fullscreen = "FULLSCREEN"; + let puls = "+ "; + let panes = panes_to_hide.to_string(); + let hide = " hidden panes"; + let len = locked_text.chars().count() + + fullscreen.chars().count() + + puls.chars().count() + + panes.chars().count() + + hide.chars().count() + + 5; // 3 for ():'s around shortcut, 2 for the space + LinePart { + part: format!( + "{}{}{}{}{}{}{}", + Style::new().fg(text_color).bold().paint(locked_text), + shortcut_left_separator, + Style::new().fg(orange_color).bold().paint(fullscreen), + shortcut_right_separator, + Style::new().fg(text_color).bold().paint(puls), + Style::new().fg(green_color).bold().paint(panes), + Style::new().fg(text_color).bold().paint(hide) + ), + len, + } +} + +pub fn locked_floating_panes_are_visible(palette: &Palette) -> LinePart { + let white_color = match palette.white { + PaletteColor::Rgb((r, g, b)) => RGB(r, g, b), + PaletteColor::EightBit(color) => Fixed(color), + }; + let orange_color = match palette.orange { + PaletteColor::Rgb((r, g, b)) => RGB(r, g, b), + PaletteColor::EightBit(color) => Fixed(color), + }; + let shortcut_left_separator = Style::new().fg(white_color).bold().paint(" ("); + let shortcut_right_separator = Style::new().fg(white_color).bold().paint(")"); + let locked_text = " -- INTERFACE LOCKED -- "; + let floating_panes = "FLOATING PANES VISIBLE"; + + let len = locked_text.chars().count() + floating_panes.chars().count(); + LinePart { + part: format!( + "{}{}{}{}", + Style::new().fg(white_color).bold().paint(locked_text), + shortcut_left_separator, + Style::new().fg(orange_color).bold().paint(floating_panes), + shortcut_right_separator, + ), + len, + } +} + #[cfg(test)] /// Unit tests. /// @@ -581,6 +663,7 @@ mod tests { assert_eq!(ret, " / Ctrl + Foobar"); } + //pub fn keybinds(help: &ModeInfo, tip_name: &str, max_width: usize) -> LinePart { #[test] // Note how it leaves out elements that don't exist! @@ -665,9 +748,6 @@ mod tests { let ret = keybinds(&mode_info, "quicknav", 500); let ret = unstyle(ret); - assert_eq!( - ret, - " New / Ctrl + Change Focus / Close / Toggle Fullscreen" - ); + assert_eq!(ret, " New / Ctrl + Change Focus / Close / Toggle Fullscreen"); } } diff --git a/default-plugins/status-bar/src/tip/data/compact_layout.rs b/default-plugins/status-bar/src/tip/data/compact_layout.rs index 13ee18bd..77dec8a6 100644 --- a/default-plugins/status-bar/src/tip/data/compact_layout.rs +++ b/default-plugins/status-bar/src/tip/data/compact_layout.rs @@ -77,7 +77,7 @@ pub fn compact_layout_short(help: &ModeInfo) -> LinePart { fn add_keybinds(help: &ModeInfo) -> Vec { let to_pane = action_key( - &help.get_keybinds_for_mode(InputMode::Normal), + &help.get_mode_keybinds(), &[Action::SwitchToMode(InputMode::Pane)], ); let pane_frames = action_key( diff --git a/default-plugins/status-bar/src/tip/data/edit_scrollbuffer.rs b/default-plugins/status-bar/src/tip/data/edit_scrollbuffer.rs index 9ff210ed..ebd944b7 100644 --- a/default-plugins/status-bar/src/tip/data/edit_scrollbuffer.rs +++ b/default-plugins/status-bar/src/tip/data/edit_scrollbuffer.rs @@ -67,7 +67,7 @@ pub fn edit_scrollbuffer_short(help: &ModeInfo) -> LinePart { fn add_keybinds(help: &ModeInfo) -> Vec { let to_pane = action_key( - &help.get_keybinds_for_mode(InputMode::Normal), + &help.get_mode_keybinds(), &[Action::SwitchToMode(InputMode::Scroll)], ); let edit_buffer = action_key( diff --git a/default-plugins/status-bar/src/tip/data/floating_panes_mouse.rs b/default-plugins/status-bar/src/tip/data/floating_panes_mouse.rs index 17439c4b..4bf4a143 100644 --- a/default-plugins/status-bar/src/tip/data/floating_panes_mouse.rs +++ b/default-plugins/status-bar/src/tip/data/floating_panes_mouse.rs @@ -46,7 +46,7 @@ pub fn floating_panes_mouse_short(help: &ModeInfo) -> LinePart { fn add_keybinds(help: &ModeInfo) -> Vec { let to_pane = action_key( - &help.get_keybinds_for_mode(InputMode::Normal), + &help.get_mode_keybinds(), &[Action::SwitchToMode(InputMode::Pane)], ); let floating_toggle = action_key( diff --git a/default-plugins/status-bar/src/tip/data/quicknav.rs b/default-plugins/status-bar/src/tip/data/quicknav.rs index fe118f2c..318fe702 100644 --- a/default-plugins/status-bar/src/tip/data/quicknav.rs +++ b/default-plugins/status-bar/src/tip/data/quicknav.rs @@ -61,7 +61,7 @@ struct Keygroups<'a> { } fn add_keybinds(help: &ModeInfo) -> Keygroups { - let normal_keymap = help.get_keybinds_for_mode(InputMode::Normal); + let normal_keymap = help.get_mode_keybinds(); let new_pane_keys = action_key(&normal_keymap, &[Action::NewPane(None, None)]); let new_pane = if new_pane_keys.is_empty() { vec![Style::new().bold().paint("UNBOUND")] diff --git a/default-plugins/status-bar/src/tip/data/sync_tab.rs b/default-plugins/status-bar/src/tip/data/sync_tab.rs index 71a4ed50..486e2aa2 100644 --- a/default-plugins/status-bar/src/tip/data/sync_tab.rs +++ b/default-plugins/status-bar/src/tip/data/sync_tab.rs @@ -45,7 +45,7 @@ pub fn sync_tab_short(help: &ModeInfo) -> LinePart { fn add_keybinds(help: &ModeInfo) -> Vec { let to_tab = action_key( - &help.get_keybinds_for_mode(InputMode::Normal), + &help.get_mode_keybinds(), &[Action::SwitchToMode(InputMode::Tab)], ); let sync_tabs = action_key( diff --git a/default-plugins/strider/src/main.rs b/default-plugins/strider/src/main.rs index 3d4c94a9..598bf61d 100644 --- a/default-plugins/strider/src/main.rs +++ b/default-plugins/strider/src/main.rs @@ -19,7 +19,7 @@ register_worker!( ); impl ZellijPlugin for State { - fn load(&mut self, configuration: BTreeMap) { + fn load(&mut self, _configuration: BTreeMap) { refresh_directory(self); self.search_state.loading = true; subscribe(&[ diff --git a/default-plugins/tab-bar/src/main.rs b/default-plugins/tab-bar/src/main.rs index fc67ef91..20855825 100644 --- a/default-plugins/tab-bar/src/main.rs +++ b/default-plugins/tab-bar/src/main.rs @@ -31,7 +31,7 @@ static ARROW_SEPARATOR: &str = ""; register_plugin!(State); impl ZellijPlugin for State { - fn load(&mut self, configuration: BTreeMap) { + fn load(&mut self, _configuration: BTreeMap) { set_selectable(false); subscribe(&[ EventType::TabUpdate, diff --git a/src/tests/e2e/cases.rs b/src/tests/e2e/cases.rs index b411b4ea..b34138b9 100644 --- a/src/tests/e2e/cases.rs +++ b/src/tests/e2e/cases.rs @@ -808,7 +808,7 @@ pub fn lock_mode() { name: "Send keys that should not be intercepted by the app", instruction: |mut remote_terminal: RemoteTerminal| -> bool { let mut step_is_complete = false; - if remote_terminal.snapshot_contains("<> PANE") { + if remote_terminal.snapshot_contains("INTERFACE LOCKED") { remote_terminal.send_key(&TAB_MODE); remote_terminal.send_key(&NEW_TAB_IN_TAB_MODE); remote_terminal.send_key("abc".as_bytes()); diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__lock_mode.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__lock_mode.snap index 209b6779..e6d38062 100644 --- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__lock_mode.snap +++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__lock_mode.snap @@ -1,6 +1,6 @@ --- source: src/tests/e2e/cases.rs -assertion_line: 840 +assertion_line: 836 expression: last_snapshot --- Zellij (e2e-test)  Tab #1  @@ -26,4 +26,4 @@ expression: last_snapshot │ │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ Ctrl + LOCK  <> PANE  <> TAB  <> RESIZE  <> MOVE  <> SEARCH  <> SESSION  <> QUIT  - Tip: Alt + => new pane. Alt + <←↓↑→> or Alt + => navigate. Alt + <+|-> => resize pane. + -- INTERFACE LOCKED -- diff --git a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__mirrored_sessions-2.snap b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__mirrored_sessions-2.snap index fa5d345a..205ff40c 100644 --- a/src/tests/e2e/snapshots/zellij__tests__e2e__cases__mirrored_sessions-2.snap +++ b/src/tests/e2e/snapshots/zellij__tests__e2e__cases__mirrored_sessions-2.snap @@ -26,4 +26,4 @@ expression: second_runner_snapshot │ ││ │ └──────────────────────────────────────────────────────────┘└──────────────────────────────────────────────────────────┘ Ctrl + LOCK 

PANE  TAB  RESIZE  MOVE  SEARCH  SESSION  QUIT  - New / <←→> Move / Close / Rename / Sync / Break / <[]> Break next/prev / Select + New / <←→> Change focus / Close / Rename / Sync / Toggle / Select pane diff --git a/zellij-server/src/plugins/wasm_bridge.rs b/zellij-server/src/plugins/wasm_bridge.rs index fdc8f389..88039227 100644 --- a/zellij-server/src/plugins/wasm_bridge.rs +++ b/zellij-server/src/plugins/wasm_bridge.rs @@ -447,7 +447,7 @@ impl WasmBridge { // FIXME: This is very janky... Maybe I should write my own macro for Event -> EventType? let event_type = EventType::from_str(&event.to_string()).with_context(err_context)?; - if subs.contains(&event_type) + if (subs.contains(&event_type) || event_type == EventType::PermissionRequestResult) && ((pid.is_none() && cid.is_none()) || (pid.is_none() && cid == Some(*client_id)) || (cid.is_none() && pid == Some(*plugin_id)) @@ -822,10 +822,15 @@ pub fn apply_event_to_plugin( wasi_write_object(&plugin_env.wasi_env, &protobuf_event.encode_to_vec()) .with_context(err_context)?; let update_return = update.call(&[]).with_context(err_context)?; - let should_render = match update_return.get(0) { + let mut should_render = match update_return.get(0) { Some(Value::I32(n)) => *n == 1, _ => false, }; + if let Event::PermissionRequestResult(..) = event { + // we always render in this case, otherwise the request permission screen stays on + // screen + should_render = true; + } if rows > 0 && columns > 0 && should_render { let rendered_bytes = instance .exports diff --git a/zellij-tile/src/shim.rs b/zellij-tile/src/shim.rs index 2ae6770d..1f374f96 100644 --- a/zellij-tile/src/shim.rs +++ b/zellij-tile/src/shim.rs @@ -593,6 +593,7 @@ pub fn switch_session_with_focus( // Utility Functions +#[allow(unused)] /// Returns the `TabInfo` corresponding to the currently active tab fn get_focused_tab(tab_infos: &Vec) -> Option { for tab_info in tab_infos { @@ -603,6 +604,7 @@ fn get_focused_tab(tab_infos: &Vec) -> Option { return None; } +#[allow(unused)] /// Returns the `PaneInfo` corresponding to the currently active pane (ignoring plugins) fn get_focused_pane(tab_position: usize, pane_manifest: &PaneManifest) -> Option { let panes = pane_manifest.panes.get(&tab_position); diff --git a/zellij-utils/assets/plugins/session-manager.wasm b/zellij-utils/assets/plugins/session-manager.wasm index 673af58abba06929d9fe5e36d69a68e168539c24..13874da7906a3e770ec5abdff7755272f87d5864 100755 GIT binary patch delta 134979 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 z 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 z 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 Qk95S|(QTorS#5Cr1vwsEs{jB1 delta 133632 zcmd?Sd3+W{@<0A`PfwnlL zARHnJXfWUt5!k4ppd10&T~w5~ARvnh-U`C+T|F~To&?a{{p`NJfBeXcr)T=CuBxu8 zu0H1U;wGQYX;N^UY1{R;3Qw{*EZ!T=s&nq~cp@UXR|^mKgohW-&~9Z-)@fqo=)n(o z7HDCQKk~rfu|qw}wXjErj(T9|qn;I7rAJ0SK5Y1?d&doZ^s(WiM|obdV)VqA*R-kP zS@9h|%BPEIR!cpNt+4LV6KlMzEfdE?sd!s_!DjK##1uY>UuGBBcUG=m=l)q@jy6Ng z6g@YxUT^X295#tP&*!jQ_5xeTB>O}h))uo@*h_3ZTf|;v1#A=B%HCpcvNu?P_<()L z_Oe{QlkH;fvGwBb>=ZlAzG7$CKiOIKx>&{Y`S(`Uu)5hFX|uEfZIkx8_E&B2eM5#0 z+raL>_kjl=+Q;^@1ME5N1+h>_u}CZyOT;?yvUo*Y(k^Q`;x}!+u*3p!LA$8^uKl3> zsLdA7i#cMh_(l6wn=D=uYs8CUt=J$oiaGqK*ec!>Z-_18Z{n}wQ?XRf(<9fOtoc@F zoqM9XFqX|b@{Xn_jh|jplH-Z-m>!d5*e||kb8>P#zI9XZ>-YFxn}*Qv#IV>Xk0;9T z_+GYt4?E7bSzmZl@higpY+GTy@Y*cu`>9YNId5kc8ST-S$^Sb zm8&wAZ{@V8Zhao_#nZ|7i?R7chbSYaYfL30%9mewKB1O|ym8fa%A3+Q3BR8=OHFa| zg&9$1%dFI>ZZV#yC?l?GjAlgp@~uZ}JjRNwlQsPK4NqK%GAk0V!|(pYBenpmfg8PcBoyi72I@vmz+ywPk zO}PiZV^dmHcX`MkMm(ECDC-)-%mVA}lyu5}E~Rc26^pvSeE9WcnWsIduwl(d;}yZ} z6jMBEzDMz|)m#Rs`_yXC#>I<2%!n~!Rd;zug5N{%E2NpsA8va5QAT9fm`Ed@ej#m0xKJ5w_#RNLL{~?uKgN}7Wfcc;k{W&m zR<6>D3$5Ezn@}69hN&gdcBKl@i>$EPkAZ`puASUmMN{V-+81t9cuiHslt=;Vnd$+=+DOEvLMoF#27PldZ^StDmL;Rk)EI|O(VDft z_E>JNv2yEHZ5b?Go_a=18THT%QLJi|srb??vOcLhtkPOSzQ0;DLr;9mt$y|T#V@BQ zB2`$F5oLrUzR22C?>Q%HJY|jYEidd@|6T6n#Te3~j0hvr2uEI{VN!Yc!lWS#?#d4zxx2iVELt+=8*?g+HesVpc@*^*8x~Eh@0WZC=SGMoNu#*nT#> z(V&HtayZ8TQWn_UYJ@{xI**8*ZQb6qS@vN&BF&clzRiSlyXq3BGQzsb6|9p4fl)of zRToCJ3_Am2t7h0r1JWbfi0b+%U?El^VXFW#5{#<8EsC%VvZM;+q{m2r9Eoi<7@Rbw zS%3Tnu|{5R=oQmaYS{`Bq8uuFktq?`>Py@3oy0 zT1W}5a#U(rgc9$!Y=GbMEe-ruZk3APR;`++IlzX2DIy>o>_0+82>0VH-)CV*j{UShiV#W`};avuik28I!1vGsp-d$pQC9a%TB7=;903& zdfQEJsgZ`)i0qM+fkf+@4v(>Q*8Lr?gDE<%V{)B0DTgWxIO&<#*Wl)5HpUd_msuau z>|n zet+yd0l$xSNyl$~m%;euT|2N6t5eq-YHgT7O&_GPek~eS88Z#1Mw9tU3RiTk%t6W5 zyRApDLEW3-H@EwHh`FstBi}w%OgBW=m~dsu&F|3(8UEU%A=@{#H-+!PrwtuFTF`yExVC%*K zd8qIBfYZEqa^b$4B%{cAx3yq@v#uZ0$2v9e0V=rZmgchQanV%9UKR;f@u=Ez&>Ny| zVbrZt-Tc<#fqiA)fx6eKar-@gP$c7yMXE^2oxkzDldZjXCGoS9t*`Ft#*a*~(uY+q z?0I(~r}CEv4Y7V7)T&V4dz>gR{(c(GuiRf3za{tIsVl@-_ie0(_ijT-&}I!Gc~vr` zH_Ml$tMzJD%Ll5$81MDKV%6Zup~tDg47~OPBD{JzohAKm0@u;5MMqd-|+XMV< z3aPFl?p}R#hJvg0*w>Lu#$6VzW$e#FRn=0KzA5%v$MU>|w~YIZvK0<^vX09B#8W4< zou~F&Up!si8uxSx$h6?;>Fn=?N#mbX09~GtVSPBExn)ggZMAylWvlbVOsmSo>j;q2 zXId3LJ@Ic0SQ?PiF;s#XWfH88Bf(zHA)Fq}AvyM4P96MKn{*JE&Ap8oGVd{O!%zyy zxH}kSe{3=_r<^<%ztK~uP&4&=>lD(rlczv87H*i*g~MDqKkWnjZkxWoLe|%xMb^U4 zpS_JRS(rI%y6XL3p37Ff@A!Oe_J;Mq^UbM0m!5BH9eTc@web1&R_i%ytZl2}t#9Yt zL`k2|X=Ob*cMEE|E_W+KN((D#zCyx|Rm}^Zncq+m@#Pmbsao%rXCgnQv7DOJH73q_ zdr23o>0+<7bWyjmXrB|^mwjwyFJ6k@q$PRyEn2dSeJm3@>jSM%dB{ z{O6r|l=bwI1Z!AcL&PU{LHx12{wULQ8Om7u=~u4ks`rt{ZpOGNUQWf08|~uOpcVAG z60dghMfKjJo0GgGzegExnzd;~FRS&+kSMO;J+PA6GgjphQg*BwLYOEVxH{cN$>udp z?D*z|)m}8hK#A7tLGQvl*4M<4lb5=CVHC+5dU$U@@JtVHedMV1DhMri_waT?5YC4_~2^At=NKANcpgrs-#kHFXqXzVQ(*tH95Yww>g4WdwcH( zB+qRE-IwmN1{}vkw=kXUwhk61Sc41G`H%0a$kli}WIuk1$Bp)5{mtoohW$8vb2{5> z^*^3qtw-cbZ>v&YBl1`4i!BLOlP&4&eLU5$#%)PsQpFW+N#|ewMP>XEkA?PQ<{QDs zr`~A7r`xgH-}oZ((p0bx6x+GH!gYa%IGbGK^7wj#C_ zz;Cv7+l_3x#kThVir5Z9)Tr(BJ8wIUwb!@ztq|XBM{0dXhj8;W%ks@9B?3dpqR`~9 z{@_aBh7Wc}?vDCwzE!kiFuy$2O8U!j46)09DWI24#q-(R!Y*&8)9^RGCC|j1cc|G- z@1)@Oz&kV9^VS{jp02$>)y~s+om9<0kmh^AjWN2$BpMo;d0=N;roziR zyK*+k>iYg|XmHv4qwpNPdjOkb4ch&Dm7Tkxl>Akd)lkK@7(U%Se@}AExFWSwrAF+f)P{R2 zmL0K|$}Ui;Tdqj`Nu}1>M`b(it5|l@J}Uc)O8xMP)ad<`+G;)-ZvQniMtJE*9 zNKHLJWqTcvEW1&q{!OL+d_`*O5-K~mgvw4XsaW=1m3mgC#vH7e+V>!pec~XM zU39QfoWm7HWs{6%;*7%w>mkPll_UAko*Gk$A7O%4F`snxR*EfmE*&BxA^oFVHqF}c zQ4>6W^HBqL_NDo&7@Co&CK%??_Z9D%wfu=jDoL&+uyu#Sx3H5&4mzEf)!ne@D z3L=_PhcHel206@}pwQ55p#jH^!Hsx$rC@DJ29PuOH@!WUy92+n`eD(Uolgd)wX z>lZNOqr;+ra!kQI=G*UC=0B=cU+SdSLpppCVJ5pVhMPa^vL5+ILbb!Y?7{{TH7C(y zZnBpC<4N|V631!B>+_2wj$82kwp4DiMK4@_TrkJ|kx1sThPg$-i94LAFgI$<=>*Ip zo1D4Hn)oG6xYwU)XdU{p3Z71X>3Uj1%6GS3JQ;WGIvSmF>&QM;#hKtoTHkzmqxHq9 zq${E6UdyY5nPyb!2SkIbe70}rD&QSC?N;6RE4S(hRNcsW?5pM#t1kTNj@spGA`1H9 z90K0y*QkcJsNdsNpUGwM&olS41yUr|q_8O|CSlf-!H6|XDYPW3P^B9ftVjpi! z1WA3pi71hOp33bwPjzhgt}PN^?>D5NuNNuuk_xV!!D{+FRnYhQYSo;E!P?B^kT+<# zX_oIxYr^+E;@$3>M?6`64(GM@^@w=4VDYifVB9o5lGU5@sWF?@DX%Pb5|*{*>s-CNEIy%OevMgBrki70RLH zgD5ZliHtDxGqDR2tJ4TC^N!fqN@aw0q}u4W$3I4lU0(tf@tW0bn#gZ&CRADDe{RZ7 z%5PWcHKI_kzf-MM^7BndjJuGDHqQ<8!e=IZw|IZF9{F`w<#K585?ZWozfoO7f9q1~ zDjg5)x%}cmZ=#%gi#N*p`Zr=Z)r8gK0$Q+!Uq}gM1k9>wH6z?%q7@gaRY;8pNj-3( zMkS|hTBrant&$7XW6DKYNf!z2$XX$O(8Xli3l-!*9aTFVNJG$x_pKurh4Qt5&R5oR z@L~11 z8nGfdMZ@}Qk!%*hs>vG#8&}tH90~KBR#rdpW+)8u3&G;qQTd}_ZJgQxJS29QQ5mLa zku-JIzpPna*6bRcokV-jg|X@P1e+=fzjjk@cL^NoHoAMXA~Tk+bG!z&OaN$8nf-PMkKqgauDFOEO^tV zGT(N2$2H;?Bfe)yen6EImPKWPkp!(UXJBbJG!`DN4Gi%GSjSUDR;e;Biq&LAfu>Qc z4MUg}4eB*tw+ucqGF&}IBh%A>Z>IN5jYx&J4fb1(QcQO9>*V_}%=%Bt&91~A`wz+m zn#Hms8Y_^I@yw5)u?hlx%Q%Zpb&;|4>I4XK%;8x zh>q+cg^hF#gb1<*bl>v8#G33cyly^u5wTw2EM@#au1aM?`tpfeqJWaadGdZgyOph! zZ~9pemLs)P){W)LUa73+f6z6#G?k6(Xv-L~2*{uM9}r|fZT9g0y_QS0*$CTR2!qQk zkdM_-=zc*3fj}LGDcbVD@AcS|8hCnKL)JIWh1^gEV-sJ#{A)w@ILZ3PEYsEgJ|j|@ z%tjkh4y}=CNuz6L%AicGkm=sW3~PB;uc-y;spiO(n$Et!I1|^gPm#CuIyS{Af*`L6 zgS3`!HVH<$S~Un!TpCwet+KL8v+0yYiV)CjxK z;Fc@{eOuHL-s>XyNlVr#;hd_%^?b)0KJ#2oplK_17~@&$nXEg4zL~5&g6A?>Cj|R5 zSw`KQN!0Qz(miOoo)K^6su&lRc)*e?8?%%rnt2JvJpI@$E9So%cd8jpO z?hqcucn?q_8I-8fh7EH&5(ZnII)d!f`+03xb5y*u4Xe*fa^%--z*j{wwk^BcT`$qg zt(WL!>m|0&Th43C>VXDDZP^k8W7;zq>T-BH_GG!YX0kzhjK*MwXWO%mHQYs*D=RH+ zPn8C|*E1|^76sbfz_)aomULi~nl4sqLYZ_+=n<9>hN$9pge{#Jk`FW` zweDLgCv{{gm5)wVhMM6qXH21|;wiGABO6++l&XmKl0AjV&KNMd2iDIQva!kLvVX{J zCToh|Ydfgf3FP=kplv7CjIrZ#WM_6a+Y#8)89SZW4tal9HWmS!&5M5v zOzXy`GDxM!9;^dWd-h-j2rl$s?O1LgvnQ*CqJi6bv0MsI_hyYEc)=Isn-zZ`KpBdc=4W8R)uap%ggv0h9O z0{7j)5*V`e9;0mE(RT3Gos67#=kH`>c_-h+ZgJ)=ED(aF8ea?hx{DhddXj%2)4Z3mkp!wnp}Pkvw}3OOcP> z!-icgHGtHgxg!<44%G7eedukG3>yqyTqOGr4#F803TK$ZMhGjw83s5n4`wNGE*ph8 zaL$(L_rtnaBwu?VSSJgu6B8%Jng}b@$x!EgLqqzGg(Ah8N2kiWhp^WF-AeaPm5)E5 zsPtci^z78Y+@b6^;};gmvBQ|3LOG1xOW`lWSOW@cKZLGh2={qNvF!5?vCctDJ&nV^ zDL;D%qbgti`VgCJIJP}aH(gf;2DSSfU~>5c)&-eMhchf^%U_4XKjD-iA%NO?XR*OZ zc{K|IEMK0Yc7 zJPcF%u7}y9&P(;kz0)DW&HCmK(*x%pW}lI~KQNlzhQU?;5oVO*!7vy!w>-+GQJzm9 zV}sao*>)_$vbkJ3mbG;j1P!bp%41{MQ8ra>dmN_Bav3&`bs*$*8^^vw=C)6;2N0}y zf(=Iy@gz`@C;L8$X?c+x{UqC0z1&)%nXdp$Hn&X=419`x!jSo($x~$S@$63fd7!*7 zo;9Wx8cblLfT2Yb80P;9y;WSiVgcOuo+C~31HNaJjVG&2R45%ak#(u+&B>}Cx%2r4*S@SGg5fmfA($!5B?$J!-h zmV_nAzzo*mC4UaXde0PDdlLJBUsxb(OlF@``0Hf0MEe`E4xYvm6k z0oI<$yI*`Nuxko9iSM`Mv8k+f>$v?@GNr<;mh|=`lY%KPG_sVmse4SFnR9~UQNz_mQ_h~ zi*WKL&I>6rO}_mso5PP=a=;AMJ=jnHJ^qqi=irH(C7!H0C`E{jjWVZBBI7s{-75MF z3dCGQOYOe3a`a{95Bzf$dqEJMF06+1TrrmoB&z>7m#w34MJ}6%#6a_TY`R`IcM27B zZ4=E%F!RgBV8e!45cq5%Hts@ay}yVFfpBjg+a);ksD&Zzs&k!D0h2>-GyPg z`V|bsqQJ!UG~t^oi#D+O2ue4wbOe<)vJnWDZDiG>$XL~2uVtAk;wd&aQ0-NgrJ;^@ z&*-aV-PhS}JU2P3KPCqk!p7JfI9bSE(ty`F0ho(B={`|e;5vYfz{9qiMv*13zpuWl0_laDIZ7aqQIwnKnI{HFy=#67Y`6Yds)xK zUuchXDu-hl6XA9q^@@q3`RfvSaWBKJ8th`JDjz<;D$73m*d!`fvJZ`%T_U6QvvmH; zbF%Gz*4f=^3({i#gsL(q$GrWlxig3;&IHY|OXe&!NrnyPrz$78?U0VG94K>sKdXIp zs8BJWy6!+IR9PVLkpr-0+3WIh2}=Q?QVv4PO_FU6vO7cN{j!5Bm2Hv52U!Eh)DnuB z9a9Vb4Ye6b2x~b>QM*R=_b^+4y%h8e$;j2yFPxGV2IqzJw3rTUqiYOW;Rdkte@o^<#Ff2g7D?ALdvX$B8Fls};;dl&NCW)6Qk`K&F-| zN1SA}t6il0zH>CA@RT`7XUi8)VzTwEJaUqCgdnJKiq(u?KMk2^n=SpREn6#P&r>YZ zzgNv}fL(zFAVP8~_t}|&0_^NsDOa6h^?E7^Nc@>2;7WOobO3A?hLwaZRCB7x;Bc8h znu$KNWf+eFGSrc05LC*ZCrP(DQ28{*4di$4GwiS7{Fg=Y-dA}Q+4_5C@Zap0!07K8 zJdra39e-l+8p*UQeafMOH^f{l<3C%ZIz+o~YyTe1(TEZnOLS-M9Lli3@!EIGS@9xH#@sO8C&iD4LnTQ2i~ zUX~Xa7|y-QX1FJU-w#*@fpc$L zElj4y@}_>@uA7XC;hwu#4M9?FNw8-^VMk&qMSuZseYCh@<5DEWaNwRm^9 zgXDZa&jZ*^QaL#dSUuiczLv_}jmg+I32{QE5LTUJTy1_`gu)^8TfXdGo7cDZTpDoL zsXUwI#M-3o~E`%hBZ3BD{3(U~Syi>{?eH>Vy574GQyGxeT;Ysq{ z`n;JladaiCjS4K4WV(`B;UbL>wwID<=IfXocAcALaT*`$W(It+NdsO#(p?NXk}vOT z!0WMl#@&EAC zycL4gDhPc1G{2n#U(KK4!y|ycyy^UUynZsBFXYt1qciOm7S7~r;rW->&*yaz+>gL* zPcs+cJWa5@K;C>FPj06Ii{D5M{=8Tp=}@FJYLk_R-@)c!?GBen&VetAZT7F*#egf27ikYxtjv^LktVcYog?r;bPsS>hM1^JM%X9;`8 zw)0-{mH@AjSxjR<*1GDsPgcVg+;td)L~UK-bbI6FTTaw{r3qmnW#N?J740os*^p5 zEf;~z9bm``E^ml7xV!@o74xTA1y^~@gCpC^^If% z$+&ZReW`LG|gSWTMwALT+8{mF@;saib zZ(ArAeZU7daD=xr$b71LVnbrlHB>W^Hw>o(W$K5#c7{`7f~pXyFaarNj)FlmvwJJM zQd7XFNJ^a{$A5?(u953M5;tS=?d-)Jo?F1p0@9pIsuXp>C#@jnN+&1z8%wm@~(chu>i9rWh=^q`*N_buH zL%$M!z2E7NyMtaW5SC)=yiQYj*thv|BeK=5kjiTbkaXIJu-Xx0L9Q^f=|GIU;}CBYb9Pm* zDGbDUhj^{Z>#4LNtZxH7f*Ia9#5*)ROf<>h9g&2fHG;`x$!G9^cs#o`S>Ae-@8=~y$aAs?Yof|J)8TK8ww z47KgMs6cIck;C(vFW>l`e{Bb?<lg+CdCj80BN}F8<&xUSlS0G7Lg0eXQYfiLm?~8grnQly!n8<;zo){qw&hYfBY%Qd zJ5;_Z#JAW$))j3MbB!ez6AyzweMXiCIaoTOd(FG~Q!V%B~4XSE; zSOr}WZ6uQ}2&=9=RZ$msjcC#ZRt>F$bio5j8tH<6Bxx0OL1ie7^12`jwdTqR$v_Mi zPLnm7lblS}DlTLu8CYVKbyKw9LT0k99a1m^A4<_SlXj?CQ){KAY<>d+gO~;L`S2b| zsT{NV@P0{{t+TtkOjLmR9uUE(&YOOQy(n&9nsoyQG<-?%8HqH)LwrT*H7`BQslo zEfxfBZ=vntFnDCG46TdfwSY{zs@FnyycRPuv|2rEuSJ-K1xWH*c>Bi)SQ+qKxL%8J z9PkSpkQzZ=3sONwIL-~yxoeU}o^~t&*>xP2mFF_F%m&KjN{zsAQhp=6TIv-83c}H6 zK-ZFm1hC*rk^M8Zhl36coXiSwXbg_Kq8e$oh9_7>`y)^Vr&d)1^6}Q%GV;JBw9z{G z>>T7ICFux!JlF>KIWM1WqupKRZxZri8_hPLs!GhN8^J&FTw5*qwxEdyolNd09E`Nj zhxzabu)`5xgAF;^-P2(Prh08X(FkCgmDzvF51+RIykeGakeAwOss0%ol}M$kLfUa^ zg|(O~&30PV79nX448>&y%fn#qrWD^fIjfzPl3MiAAJ_lOOL9*;tp(Wd_jX$SFk7F= zejQkPYUy)-T=evF@~QUPR203`9%HCT_P$>0pZbFfSMXpR`Rx>ljLhGQ8|9AcwN6YO zLhPB~n#L;4M$K$_FODa+4tALZy?!p*gZ05Orh+coiM+NO_T3w_on&;*?4UiyOJ)Wx zbOYV|NsUN*H^B>G!+)|S#lsHBUQ)_v_XXs%RP8p_L1HW6}N?wAOHZGtX$ zm;_{P02XIkuIq&lzzhE|(|%c`+)J1|bkjzY-)dzytq;L;uA8m+&5Xf2ipc3P0>y=sv~}y)*4GLfj-l; z#u_G}PtVXM$1Ixec8ZEb%+&mpwed{t?+63>ENzfh-E~!L`(P*7_wyWOM!;(o82`N1 zkX3h$#SImcx6jeODv#|H`AM$U%RzZspx-?02;+Na1R7Y{_Z%R>O_3toF2vw>To!OE zR1WM~s8v;-#LpI^Fc8{si5))Sggc!uZmAtV$O+dw;V(|uHP23;Z-;?ndD_D|?1nz8 zG{107PH?J#XL|fv4Oe+gkxO6J`tuW({Q6}r0|TngD_Vofd9Pyp5hrADT&)2Cktgqc zMQcgEl^0&o_K{W?vO(+1S?D7v{Z=00{F9(PmcjsWeK}yS zHXWId?A2&{uy3DM(-lu`tBHmoch(sH53Z~+v;W^-S+mr{h_cn@e|lw2V0CrT150g_ zqQZs?H)7#LDUx%N#0^dYv^(y`h(Ho097_@{YP~?FKG+AmJe#MgI}z|W zL(SF51=B29w6CO2=f^|>R4kU{$nnXd9xq-dS0{^BElboy*JHr0Fj6BkwcYl6Czh!d z)1%VZ4K$U_A5G@R?qxDMMbz}EoEQ>QIh-Ik^&;D*i01GGK1_iOm-sqsJeh>`If3#lC#qr(S-1F7Y@iBeo+V9 z=^QS+>=!9z+Z`1mXsVc=Dz>r$c{)`z=(OOKU8twB-GDh&z3rx7-&$Mb!DxWzt4^j? zz=Mt>1&y;8r$F9ZTilIPt8!Cq(T**XU)L5r_d7jkY^#6BgX%!5;k7qpV!t))DtF!w zTQ7qfduUbVEp>egi-a z({)Hgfg_W0UPEzn*k&bWWN8Bd2TDT`kI7wpBP=7Krdt||HRWqcGODYZWTkZR1Z2+i zbQC~MORf{G$Rxf_3_(u7rQuTZ~DdBS#ip|q2 z@CI*0ZoZ6ZDXQNI(>=<(Ru(Ggs3;@Jj5Z6dQB_F3;K7X9GP;skxg%w=y$t zIYD8VM^*%GY$+aN_0}p`8;LbZFF7`C360B)a83u8vt(g`60@i6@>nbJ3%YqELkt4{ zXJ(2w7{YH_ix>#pz{NJAwcsVQWyTGnDKDKJc<2Vfv4?1OU}OjJrp6Y_dYu&&$9EQo zq0Reu5ygxx3B=tfbc7P&Lo&OYmpQ+L?Faq|x+M@q#UH7n+*6^xL_&=~t(UO+J9d#8d_w}SIdMD2G zbt4=cxvyW_HMpPWFiSO0cpfp?SQGmP>pTDn zRwVCxK*+1)^n~P07%Ijh=ggtviIABNOtTHsXqa!42@i^U>o_M0I`WRBU9LP(!014M zd{CsqUfuejsGqvhQM}-k?j|jHKna5lp}WB*SoDI*(S`{+c+h8<=*V*AoMGZ0kkMlv zQVL;{9h|p=X2V5$q>UObs@M3OkU|LJ`WqywlMknFmPbk~8uy-Y$>go<@ z7CTDxr3)40y`#mM1l&?#Yd&s9ljh^*@eA^vN5m7P^V*Jq&Z{&=G{hYr3D{XIo=NzY zwlb5Z49)-980Zd6ULF;5qJyR`R+QuyYea(Fv0jA9_a7BwvQG}@zHBzJHdHm}cTS8* z<#p7vO*{70X)oxKV|MwPYwte5Dx^T$@Gp*b$igqkb z_5V|glxo2AVm2W+%3U|GF>9NV*&fG^wA*qnw({cw0a_na*W1B#6jYS9P0<`0Ybbje zLT8ZeW_Ep7jxyXBM5_}Syp&edG5Hp7py#Wq$?JoinUhO!Umk6~;pCB^JBD`t9ONY= zP;)`Mre5*A{!n@Pj0=qQ@RW7w#zO~}- zD{?GZyc;CplklJ}6GI$q^ek-Yi7-nhX89wKfWtYc5}sbQ z7D|Ns>)!n=F zVE@r>fYXF|C20Ug#Y#{$AU*I4R*%V{;mmWVtZ8d(amr}52-h?wU(*N*z(TXZfl zq>Cv1QE)o=vGhZ+M-&58A{kf7)W`biy1WFC57`v66sfutuWVCUbu)RSKbDFX(>rca z@cWEte}vZ2#NIm$E1c>^EXW$+gkE*t6Dg6f|G+EY(QLgJ8q~lK_IABUL>sYL_Gxe8 zk~pv${`X2k=mT>hA6N#wrWh+*@s$ylh1G&6^FCZrODhJI{B*wr39pLiBP@dsIA}XU z4Un+xUP&NG6o5cKvC?3`BVi{+fkd<`g?fN^WEz3n=D^Ja3NEI@HI#@3ZVi@{>ZLA> z8=+|HRaIhJGeAO1QCPi+8<8r|2(Tppw%V|1XsVfPst=VTABu(1Rsk=8147Z@14hFP zFNUNo1S)n1QZWXDNgqpGMFJgy!naDf7?gBCPa#LBYa~k`RNz{kVkd(Q1p1RrG6dT& zaaF)bk~BwfAFi4@lfWhXL;8Z-B7kr-5d+xK7{Nmis_79xyPsBe95JO>pRUz)tEm7P z$PdYmJuPHrqJ07jDmnx#ph!VQl%|FuIwAo~8HD!azC46sM143GG__<{HadzJ0K@1g zW;UBc=0OUABdLudmJKfuuAy`;*|mip1RVj1EOa7rq(6>w0Ea{q;%*LBj5G*0jtC4( z0w%5{0^y{9eACf^1&o;9@3pHp7tw3B4NHW{G2+mUI`AA}UdBJxE5-{5_}El5-d#P@ zkmo%pFK)~PjNo?2O)7&I-H5_ISPDXK^}sc(LeT4z(0arjbCTL!%H|Q6W0grWPa?dZ`fs;BWA&bKIIs zEb1MI1y1OW`yVu{^1H;cDISKRUR4G-^crDAEN?b$I#{a+q$b@H16~pVIk1A06IeNYzhZx8YXx?lE}h{P4dSo6i4+)r6punY#}is zi8xr1RB0zqHacT#FWgH6ux(T83K?85E=F-BCNdZa{8-Lcc5Ni|B!4abHSCF zsSyeYYBItR<|@Xa6U+x19tJKoho*!a#)ymSk)(`E1s5_<1wgOODXGYB3tJdsA+i?H zhebB2QBna)t%7Tnl%>(>vY8DjfvHr15>g6*ajI=K@PU7!TS5MAt>ffKy+iY zpl-UxBg*HfCLEYn|jLH5B;?7oIL1u;7 zLFScfxEaw9Cm=&C#VGsC4}}MQQ1Ve-TMb)<3JoM)*=au2rGKkO+2#9EK|0#PF?1L>!jYPcu$!}` zT?OG7MZ%Gc1_(#*9|_0oKa`IDu5ffw>!-`oX=D(q5S!zfxEwqVV;%uboiOlB@E@6k z*dKBYcA;aaU~Wau@@OW#LHr#@{EgQB75Rj*i;+Z`iR>h;!2fjX5E)}OgOkcv;x)+c zN@l?{J1tNURKxs2NeY@vwM>b;qP({c5{`N zu-K9QZ%bH|QDy`*0;91=g31-J$*zEn@MG&uEY0Ddf37NP%P~Lo7z$FE*)%59755e5 z)byDW)tp;N*K%c);I2>xVj2DyTW^7})eUDs`JGCWQl|=Jfx1@$(GhmBc5amNP>G#t zRs(he+lLBtdVx5;wye$$71l_W!>pLZPo9R6voS2>ll&D6D6aNk)XL02Ex=BtT)B&?R3G!b()Z z`WUxFQJXl333(7z0*;%o+8NpfFJ z4wYAc@Tu$@cLu`Ae*?5bL+X^?;{v~`p2c)HMKDdi5XG!4T{RD;iKkig3UGz*|eYA39tXSI5ThSyLk8qA|`=Xa`$ zi|84R5gPD>E@4@Ro@j2Zx@>omCNT>7P-s;}4pa)Cus;-7R4Ym=uoQxUSk)cSOLb+9 z-FhkIx*CG*)`JKp`xA&QRZ^;KS&OFpevEjG72ptSLfP>Bj-V$vfg|lfT1-9y+|l|m zAys7pq0|@!17QXR4hxP<%835&4$|yaqM5sR<}A^n!U|l28N2FK(T~~x7TYMC(#M2s z7cIbc2Shj}sR02PodJQ}3mA6cR}KgzOCr@m9_SAYm(od0>S~EC)t#+rc3iQFL*h>C zuO-(T4P|F}a4K=6;%tnAGNm0b(>rr;^l+40(n$F+@t%O%5 z$2^UD4IZw~;juuE8)(JCS$RT>Aq&rE@dnmKg~}GW>dJE{54*$IVU?i3KzVR9zIKGh zsIDLj9chdf%CE#>Eph}T{U`{3Jd%1GiVJe*NPb^2x)95!~} zgX?cfu%A_)LDvK0=Ombva3U`-#JMdK&As*lZmvo%6I|R(K?krpr({e`JeS(sQVWmJ zAKcsqFP*cRP4#WYt0Noebwl}AC&gK;RER2q_CZGIsSI9VKbI1s*4fVrf%zn3O~^7O zO(4tEz;k3-C?!x)zJ|g|Tm#>D4@whTmf0Orke>h%LLjdoXGtVd)edagwmbz}Y$kPy z@wS0NN1_q1#MS_m3ZPB9GemQ|114LZ(x{7aFn-v@IN}^ITp3TrmH38?QO$AeaZv3! zI|8oRo;{3$?V)O~)7&w)IYs=SX0q`?;vISafWB&v$Nz%BN(2zz{+PayF@zChDU>k-Y!Z8?aVQGI`&K_fVU^GY85(b^eP{neEgn$SpvFwWA904EO zAIjkJB3Lm`MPA+f%T5x(6?jJtLK=8w<_)zAjtz?7Qixz|slaF_p;-!{sm2fTga}O< z_>RzYr0JF0bwZo2!1KW&gT|FCD7C4r*aO|c_^0;D3r&y&%LpXkY$hi)SSG>JNWh`G z1{h6_erkwEhu0h7@!t?&w8w&o_peDX1vT{+C6r455d;!CP$b;+Q;`H=1%~2dRet+HB(*#wd(X2m+-j$-=^u zD^=VHY&oey8Hk1cYq~ny_Mco+-(WP@FqO?V;AkYBY@V?Pt#_AkyRv;QLkD+7#hhAt}47=-gR z2>b{1g#;oa;D1ZtKcR0n0TE&y(eQ+gp)mf7i*dyL2LwhbS6M0kRye9?jG_OBG3Y|9 zuf648cb0!8-#|!anj(a}5-~$w9S^PJ8&JkuiA^;08iNSWGzn8GxY$krzr(b*pOrn} zI1q9iJAo*Ek@UXm4J^MkB!`?`@A-dj`E9ltbu(2*BPW|=nDRj&R6d9qzp6RaHKhXh z4K3Q1AF)nwPPI;1ezdr7Rm;zgujuZ|rt=?Ez;^NdUu-|So*dUEoa)+y_EKz)y`2o* zR!``{IgwR|jBs_v5U6ON6=5EzWIxH_vhC|3^FXpVuIfAs6<{v2Ix`0)jY7$|2#ukA zHE^?)_@eeI%mWFYb%2M&3Gs0VJpV;!UQr!l1P7pemnl?xA@In#x=4{Tp1^^w!}9GI zJvqU4oHD~h>T2hbT{#|evpgT8SCcGEG{!;f>%wqAY>^xkCdS~NnvyW#$6KZGqLr-g z6%E|W5pb0kongDjE4p4^Ojm|y@HCh}klJ++IJd7Dctk>V1j^W}UUm)0wmfRN9R)JN+r@*?)CvHdmn|-1o z`hCnN?qLA$`pV)hJ4lsD@uJ_qgv+B>#iax;TgV3S!Yuo`RgfTo3GukGy(0SUBEH8( zrh7&*{94W-+^Co*M?4OG%9GDOF6y$CvhZ^2u?cCxUm! ziF$}UGfpH{RyP=7sV~eB15%l~h`H($BK^iIuX$EZ7`m81-G_v^vAXe@1c`GGw7G@k zhVK>H9brSdS$9(?wM7C}T?I%x z;nn2}1UU{>GO|=`=+wQ1YDcse-SQj+si4sF^yPBeS0p z4gD8w*jg*t)KDcbk=_(R(=0Pze(;p&OkIh68ePeKS#`zEE;FAN&4XRRJw9$%#y>3{ z!3{xW@?lT~(eTuG(ciuL6a92$dQ=3EFH6UZnqXRdJh84k@{G6x&l4wzOayOC5Oj?k zzA>04FHHzd$$dtp6g(p)m1WPGNRfeA6Gdy@LoGSjU+9A_i9_$y)Y4vx2*&%a5g%I? zFQX=bO>ry4BqafQP7+4*(8^7GATk=+aYBAGk(TO)m`_DNJ(Px5Bv|e55v<@rhKfbUZ%&-16L z*Gzk5#?3|FiiE306{X9Q$^*>ZY!LQmCW}P-a~rC^3SM&WP}czwau`z-SvyP-ZGpX~ zr;wnMFHTW(+hqq|P7&9IesEqDwQF&{DH>=xRW#%{JRG=tx)_aXfhNm+&x#c+ARnHA z?}HV}ycxJbBwrqwf$BpeYs=mYI-Fdc{ z!rqkc(_5h|eO@$^t)3Tg!D}hI#?&=p=*PXlr!EX>tg&joH|6l>aV$HuY^RW7b*NaK zV6i%7#k$TBgIQtVr8y#hg)XiHUIsyE{3q(r<5if`&_bwC;u}t^*VS5PH zR%7YYic}wH8K#jTFimi$x=+p9yY1x65}ID`sR%aPx{Hda`_B zi7Nf#5~S>q$Crr7NO^E6?peu~o0bKkW%&!2iv*X&03NMt^Lx#-7=<+IBbm3J-|_qh<@ByKEWDK^ODkURF+ zD3;w;Ko-0$$E{GPSiVBEb*ir9=6PG5UIFvz9T}G|mH^5P`Jx-%e#lpmDJ$K`HnH$a zgh%7*BpkxSxO->eDh#`KL$I7IC$18)PW^P8K#k9L<+4?xezl#>sKGdKMvW~-K3xU& z*(rZnr3T}jtJPqXGuDXTe7l??UUz8Ce-WnaF8SVzqJGQwoJ80QLKR(1s(my zH(m&0oR6>}c~AP+LL|OVAScUnxgrYPov=2@9kf?Uf&9J@snq?Fy?Hi>jwZPIP; zPK%_t=}vV=`M!?bkof`gby0=1r#0`kcsXLT$PK-I1DvjAr59xE7V&Vx7iEMgOUd0L zT7Z<+rdyiJrpHB78GBhISjD4i2L`<%HmX}aVv5A-_%|=_B$JmmO(xjY&Xw;LiD|?J zahGwaN9@nI$O?s9%F;K*M+vL1%zxP$KCXV?o2_CIRcn1PvZdU%O>9k=c170nm*lMN zBHxCql{I;ks+quQDEI6THz&M!u_83*FIfXdw+amX3+_82YvQ+J%wGt&w?D!dnEMef z45{^%(B<{-h`RF9+oEM);X9alBc+b)|og=;hKNe-CU1 zhX(#Y*aw)NyRWt7$PZyFImG(lLvc&OxiZuR8@4VDuO@r$7563-mtiS1wSM5lUh$d2 z(!2XH$!oCq_aHWXHuy8`7*BK@CKrAWKJAR1p}sxx>jUV*#w)YSfhFRT`0Zuwx%C9h zgBStvA@p)naCr=EqkNi8j7=d=LAF@CBy&HQ_)RKVpk5LAB#|dCN~C=jveX zO#;sm7aqAvImJ-pf3d5#T92(O8~!GiUZWy8`jGI3a*2bt;}=ymBQA>B3VFZ&E~+X) z2;R17Awi4rFQn=RSl*WJ^kzzZv>rQ9KBeh*U9++6XzWzkAaGdnussN#*7eB>C6~hV zPZKU&(X}(b%dfq9R~xCVg4ikqT!&MK7zKLn0BYmw~_wc{8f;1A6&^M^hGJ9~H~bRsWswvwJjpGdkbPG27U z&QtXt=;mvX4U3KLBkuYuUKi+BSzpcADfxZ8-i4i(trPSn>?`?Dg5H?zlP@Ibt0=OH z-iUn_c%X{@F5Od~mZ%S>yIJQa>2l9-1eM+`Fukrmn?CFvpQd-gjkD?_e}NAh>MtugjBBiKtWJ+@B=~XoAFK}_OhS#51_80T)2;MjiSmm<`XF{hcDz^5K=8!9`l^un!eq@)L?s#Z z2CQ+{c(PK4KOSf>SpNo4Op&iXsMic+4$(K1y=g-grKSXsww+b7Z;_-MTTN`gmQOvT zkE~3NOl71>ZINinaKzA~q5%#v{O|)2qx7JQ9eIsMcSiOqljItA}JBi8Vil{sD z?DYmR@oBe84wqvd_Vx)xKCZ)8irbcJjML}3IHSu@@okdj@{K3-I~<&$4&V$|uc9aF zNUS>7;xYV@3TG{z1d{+QH$SBhK=9&I`n?GBr}fcgg8&eOKq8-eT7T8KcNav$DuWm6 z3?K-;lM5~Zi2+iQ{5D&!9Qez43_bAAgo%1h2kG#+;pQvAxNf4}4NaY!sP{wAFRtStj!$aHcc0TIIO`$m1F19$`piZT@lB1{dMg&0XY zLx_!Cs(*#pUzh4(Fks8oMfaHEBkapC z)^^B!%k}c@t&t$Gve;_5d?*zvvYC(Bs~Q z?4D(`FKyfi=EH_nSBdCGnp zyhdLL&GgF}eI_rNCa1ipKL-sJyOy}NWY^^>R?5-Z6SA zebNTw8oG3M=_0nhNwy89^%u3<5nK82y#pTfY(qx&fgL4K0~se15J z7y>?DEDb`GVBN+36b4pR^5r9&^;QklniBM?`)xvl;p>EDD?p^EXQzNA8YQq&%9Qop9+_|W8vnME63WLbtUG7D*ve7-I~hzsOzs) z{*Qc{i44&1C6kdF8UmEO?eqpEvn`Hqb!z2Q~!?p@Z9m^eBBJL)7aXX_AN@c-%Z&gr6< zF*W{-KJLCiZkV$l6Ecg#*RVHy!n{=DAJeC54fQt}JCS@4EK)xCYC3D2$z=3Pez|rv z_a*;+$#a2sikuNt%pURiV@v!-nDSOF3xBHUCUj06kT-0**(L8u6`)CvM zvj4#T;iX4>!BWOui`X<3r~Dm;LXC z$7uH@?1Qx&fv+;>*ZObw-f`!v{vqD$%uqJIjt%C^*ZhgTZ#I}O>ezm$+u9B0Pmw>V z`44U|FOkn4uwB${*Cd+3n z%PM2H`j>g717B0`FQCJksJA#8xyQWrmVa#buD|Lnj`RO1-s6g&f7_qcogI4He+cY< z5hs|z@Ay}Fcbfa(@lW*LWk;leF z$yHUlsh@doZG->Hfet}Vvb^r)UB2W_AC~2BC%wy&OqDtJUH`Ok;h98qbtc(XLgB+- z)(kc{JB#7L`kT#1?{eU<(;WYvU!E>`;yw12H<=IL<21L}ocz9jUU+1454Q4|_ZfxA zKWW@2=N7uj{J_5~qM^_o+@|gW&Mp6;Y)~HBv$sbFe(Y)!`p|#UKCRs!QYlrH<33_T zAg65eUlP%(CM$p4=D)}rj)cQ~v+NUk0M9fOf5PcN;~KN!6MyEu^}c=bJc4|BmxqWx z@nJTr~bjRs9)8m{zYMPa*KFWlRp@q-FRks9e6|JX@J@9bN}J)s=}N{r24v@X~+SAV_zPl==Fz$<2*(ok(lbw{e#ErER%_0 z3Z215pL5#hACHJr<3g{j4fbRe8nN{wt(yceePS{M(v9@}T3u`}5uWaVk5~SAVUUdzY0!@m~4Cf4{G+!2I}V#6uz;c9kXT z%1vnVUlftAJ4*9%8$2j3 zS-#!RVt(fO?fy*EU)=6LzUvy%fHGOomBGPrZ5T35l$-N^^3U;YDKIPF@Qr1aoo|2g zr#p`YIjfpkX3`E$A!}F^c85PFt7D53i##DR)(I)tAUA&*GGmHjuZ{6 zV!p3Lu@`V?Wd-?K#(}f`!tsK0^ztl$`yQ$NEO4osj6_giPTBTgU z`ew7Ylhb%k)c^1o4ykpcaY`yrFmkyjl}91@ml*r1*&MJEOwYakj~I4e@AW^-o#I>m zq^rMXs{Zt+ax3@CKdFFMpNh7Q^#0Wpv!i2*&rQj};j5Jwd94gtl#E7;c5Z%0P@<=N zRuREg+-waq3nQ#-qPj1_y2ks485wDf!Q0W1)(_lrp5nJYAcR=UdJsyLW!*EN{mX6@ zz*v;8)7h-$e7ia)J<@?lfYVQy?aP{H%9@bA@ zZ++#AXzM&K-!z-YW2~hd_$2qTrjK!E4-PS7A9oMdX&|QqC$opfJ=EA2z>Bv^dTE$UHpM`i*4yFsmej<$(?uZjE*q50bmEav?6MFMaI%;no0m@m|is z7>Q(foD4JEx|-S@IKrCTqvjjwB!h!Z-3@QoQUgE*N7ah)G|to<(h23r*r^>wpR2DbyEiMOtl`4}xv-KRks7J=kG8g}wf((CmFvb>jn0L~W74c~?1y60tawv7&Kf5>qkXcee@(`l+o1nlwl~ch z|99C1`~8#m>A%Qkjql=(GHb?LvKs4i440s*Vg6I(5i27G5*n zpTx1kxyc^q`=$SqFZaj)u0$V_6SSCMRIo_w?Yn6752}3sB{C?>)V(>u`j(FHc)Ini z94GIn_0`VFvoUc@u>9xFXs>gTSDEK0TSI(p&8BIxmFV4Sc2Bm>9@!v+OOA|_ z`dlI>@$A`?SuK_pj!%k9>BIF@PG-z?nbss4E5zVelYYoG#ky_Bz!1DS}hzKY~^Pv)47#tjpc!gPbPsm(+{hRIlJ) z=d3u!hvF@t-N<(pl+dMzrTBx#Ek;NfPo52)T#d1p4_1;A1GN!DWlXz~@06qvS zJ4rro#20X}_{(8dYLAA`q|(L(J3licW?Jbpnx(YiJ!Y`j$xRQ|$ToZpf@<$gn7xCY zvUdw}k@jO^?Hg?Sys~trHQwuOsC@l!>oYGs<$)utv)RNPX|-f(NEXd!^YM0`rgsV+ z9qig2yUiCVUqp)Dw+}XBW?M(wC9*^3np$YKHMuMC{A}xOI!w_VYgD{@tVZ`^hK`kK zE0&VJHpiOc>-fs}jui!hepBAi;ZMeWe z`Rvk`Z$`wUQAWAME(noPCV7m%2aeSnEKq_g%C0IO`5?e&wWj zR-G>pUTZSnM4n(ZvETXf1Z(23f3ILJUnj{xEv}q6-}>0!W2^3Z>%K7Yr&A!+G375%aZ4tmz`xLBvkyR*{vWK+I<|F zylBeLvZmvuxo^6eHcTcix10SHJal)TeF}IS5-51Wb@*+4aGWkoafoASv zD~4S~?qX}&q2WD)8k%| z25KPqw*x*t*VV1F?LLpuS!k|W!d|P)tRt#^{}xHHd1r~WjRI^u-@1TfodFkED>;5B zxqxGlauZr=C9_$#)Edd=b!St#eW^9qqLXA@VwL%Po!^*GR#-W{wr?uaF0;5zRb;-q zoTHnf%G4{YKCI2mI-7&df3C6y4r}>}R+h(;Ji%AoWBFjYE0P1}_bYF?%6i!Ab``m$ zwBAh1x6Y@lROIvA8J(du-|8WYJ^y;GwV3XnTVS;iYVbP7PI+bQ_0|(!f_!C_b?=1m ztRd$uOc{xC?QdTd`?7;Y&ha5%3wJ8n+*W8^<$cq{-e8@}=879QEUPkmZ?H~dbLx%O zZf~8Le-j5p&f#0vu~upkb^EHBU1Zgbb&rv3nuS?Yj?VJS-l0pc*U=_l20bvvr7TZqZ%-Abk0FW$~BE#EZVZXN1tbkAdajbEEttF5sStzW-wtaktY|EKc~;mCQ1`EIqf z!uzpVP-0Eu?5U*0dVtiFJ2))aR(aMPR;t|Q>9(Nu87B2Ei(A3w?7NsE%gj4>SqF3B zuIJs>{=S;;%+$NBl$4^~G`#F$oeL8*ZO!jp0+wzI)_!NMz1td@((y-^*j>DJV?LGW zD$0s#b>CIKc{d{zH!Mecxw{!+Hk4Vp)Ih{q>vbQL`n6Vs?QN-SSWm-wzcg=duwL+f zRe8gM)`woU3m&rWjqtYK`KZ;uZ>vm8v>DTEkfSrMhqhLZdDMDUPS|&BwifujUzwc8 zt^TN;{kWA&=c}yUVm*brxxC66-2W?ApOpn2eYsjCCLXD>7Daf!tcrL-a*BEn)*L`|ljIy2=r>c(8FW<77CH|M+ zu?EVvslhr#0vgn44T;cwsPnd!Ec$oYM^>|+JCCD2vu^1f?(BSik#`Jv9{Drts=%Gn zKe;LUf;sYY>o#t2HGR&$)=mqoWx7Mvw-;*ke<^zcAa~T3L!A?0R?HU-I5+d#Kx8cIavyt|a zJ-`*;Se|-oaG7nac-OQlCAd%Z|vOM9E#S+i;=GL9oFxgh@w4U?+WR~pWaJRJbv0YZFH?h;H zaJj1yEadAKec9#5P^f4g*XgW0V~_Q?^s;`P)=Y|#+vyy@ztU+P;j6DVz5cMq^b41Y z$BZQ$*>|+nn>l}2gOW8XiNiIzrh6SOny1p?(ZeiG2Uq=J4LQ`E=jAZhsh0lTtA#Zy z2q?TtNl)6Jd++(qid}#LK5uBg`h(pnSG@LG6UJ|<|6BD?l3u~GzergR2k$<)W|zO$ ziuV;dl{Yt5jC1LU@s&dHV}CLod#&WYoBmSaZbs^#9BsClYyPy3(oW-ik5^vL{OnKb z6!z^0+sE_&Hk)Ux?|9f=3wf5;K3d7Wq^R;p#RFa&vWf87$B%U@fe@Ty+wh8Bls<|t z#0L57r<|*MiL2aP{@S) zv`6;bpyQj1Zsx^E`}~v**D)58ZSljz>n3>gMDE%V4>B%3`6+(A+2pt953854A-4e{ zlWo~VC8G$Di_}SxEc83vvcL8H?fP(E_LvnWF<{U47FS*zu*XPGy|;%wN!EmJ>|q~p zSa?ln@0f_F6!`#`+_2`(@4v1I9U=GO9R{BWXI|tbo|U3v=JvEl^$Rbx?BydHT`Mh{ z8+zI&>w_*d14o}6P;q01%h^5c)q3|Z+}utbaM_C&Y#8jlWE4PrG};cYicN(xh0Ai; zlCd}19u%7|N^}aR!^=g&)EN7B?MBXZT|YauiM{MCUhg&L+uru(eogl?0=PTjY=cpk zBqstZABwg6_Ns0h$Az(%Bo7J>V8mf7V4lNUv9iGxJKE|)@83T zkM*?&j{W^P*N(Gwb6n`yNy5%e*clRRe9kQ&TRYw!+qY5llKd=$7k#5cc*rGqA2Rdf z?Qwk{+LwQWlV70uJlaA2*n)leg%W6x1!&F-KK`s5jk9&5dEERNZx8I(_>7z5Y~7s3 zXUu;6?1V8-XqK~evs~yDA%!Ab=R~l|)bz9Cx!rqhKYLuCRifn~h9BH$#HgyT-iNn-K%-acpu1*zsek zo_3X;t*h)pM|l*ra-}F2KkY=qU7&R+#}$i~TPrIi`$v;JkV^USDf8<9du-f~PjzKq zA=$6G*{?ojW+agP>b~sDC3~%t?Okh15~%UD`*JUn++Vl2mB98}wEO(JrOWsV$$wq* z*-jov{_FelFO~dKH=lb|s|I4ebYJ!*lKs<@u6ec}i~3JbcA39e@?X+?wqpm`W5>L- zFF#K@Br7tU5-b-XP2giRzZZ&?n3*w01$RE-T5-0n6&E_( zF>sd)x7W;=*}->}>ug=F3%lBFnMCiqhi5XFa5!HYJD7&MN7USgTPpcKo46q~+|Q4j zm4j)SpC9kazCg0yaOTWK3^i~Ju_xzaDxabyR&s8aiJ5*Xrf*sruJ62 z_00CjMCy5OMVG7dB>!{GXS*iRJ~{F8u6!JgJDk;Xuyn34Ym~`$^bjo7bTOmPk^D7o zzITnebO;T;W?%MV$^PXrHxRaOi25&&bp>*^W)XGx)BXT}^Fd`yHC z+S$5=e$1RdlxgNh&2hGFjtiaY7)c=(iI?v-yHT)x1uutwx4A2dGsH`unK1_iUlJi+ zoULoigf3DnKAnXzu)9?ovq7tp~ID(*2%(6m>DxJ_@Z*1t;>DU)JQBPn&WKUoD$O} zv9vzo+IO~Yjtd?8Y1p4H_6N_585w*@xz5(*y3pZD?><4ei8Et{2k%m@vvs+5nPtg# zLcjKhU60Pz&1rwwtWCBDgtlsyvvspv*i|v}#KEwcF++l@lbQ>vN5$xeb1d zk^IeWKIebiMSb(W?4u=nm1eIpQ-|AW$FJI#Jy#-4o*C0G_^EacXX{4l!mdb<5^l=O zn7+Y(>qe$#IL&>7T5-0nl^aYOIZHm@;MRn*b#q+k*dIr&9Vzxl&Wwo(KBZh|>vCP_ zaAgWULb#*&Y(ua>xz5(*7MNutXzmXla6LL(H;1RV){daLAJQym>t?yItFSZ0!I+sb z{@|bMT{F(s<+{+}jwP7GggbU7&uBI&*V(#U7dqVGaA!Ep{mgo|xt}pdjHJDu5jD5D zr%V2AnthvDBiXm@%bq6LKk(?69KN#sX{0?)wu496JG{G0&(ZcUPNc?-w!=^C1Q|%d zPhK#WjkeFx7gaM%`8XaUcG*#Saj}>AavWdwI6Bqt=dRV>GdLo7c<^bnEY-e7U)i{4 zoIUt&YSFIRX=A#pS*YcYu`e6%Ui2K_)0dqzDd=-oXB!s$NIJK>=XIfTaQ@LlX7pHl z%zy`Fbh)`MbaEf8JbSFo()L|N{A8RR3N=4q3L2?!g zEObt12l0?rpZ)B9Uhf~3spIVfy?Vm3|6wt_oV~>g625 zRjsc!H)q(1e-%|eonb$~hdQdwDF@nz?fbfizw6Q>%gTh`k$&+&=i&3u4z%ZTVwpDC zmKz!;Pqt_OU-Vv?Y!|`I$+R!z0{knPoF$V?%yLe!kI1r<`*)qCr%Ovslz-`*+?_Oq zL*sID{S=4!k8*BopwR7w&pZY53PHi^}fzT)_v z5L*Rebqb&ZUHPS@r}J-p#T{d#|nBon^o1?Yaq8W?nkfPKYhg^Va?na6bb6 z{!sfcZ-JRG)s|Pq*Uhj8ngvts*<2CdG}W=zG}Wo>JyY$+^v!wt9hZ2V&*R85i(Dqx zD@feIb~9qRfT0k$@b`A2ZBsr?%6#WEd)mIHvi9{i ztE<1AHqB0^2v<*YN^TQW0WDhmxp-}xY6P?Vp#T9I^<*ac>AKP)9Q&TbX>~vr0b*BA3 ze}Xw-o*hF>4Lf;@Y<1l4lPO>OJof3_zdYW4%=>TE@$P@5I#!>#XT~rMCZbz;yBFAe zc@{ghTaUMUuHL>!bQ}k(kN6$?tIzp;NcS$lbR*Y1bv&=W_xAyR%kB1Etbe@1bc0BG zX*BGHq*7NWb~3yETgGXfgC{!NuFmJ**ZHI|R33YsB%J<9`~Lm4sT<6~6XoTozx2k{ z$NV9^Z0R3=iJr!hPUf^2?J(gady;omV+)i&N_ zPm)Dnutq<^sMy_9pZ7VtW%kr1%{Ba6cxtU0{!3^M|`hS?Z(?Uus`~@M$;osk6CrnX{Ws zTjuO4j$USW!kDw%NiB6Z&zzFxr04z-y`a!=Io0(40gwmyomTe-mLrAE@J-qYMs8b*K@7U>o*h6@gwEX zd*_vQ@{#RwOMzRGp4d$?OoQ#~NT0`>MIU=utx<-KFIyhguMl|(?*?%DAvD=nElKAc zv;r!oh8LE$nDef*2ZkJ;`|en+%aKQkO9aYI2_A(hQ?cWT53Bw)+3McnkhRk~T_~Sx z+$AtVUNk7V2PBXF7dk*zq~-vCbiR{5G==p5pvO=a!n_ zRd#%OxtrEp*0z@SpyiuqZtVnDXe|YMFQ=sK>&$gm*<;gdq#y_SIhn9{PZEKW7M zYO=y?CeMbOV;1u**#BN-$NILdHBliuE7~msAK&L*rpXD}LnUWf$e!tIUTdmC_6=c% zUn;;HmCy5EFqY>oKZ(t0@f7yQ%n#=Go9va`k0B4k?@KPw(C^)*YT=EuEvC2NA_dZu*q0n@$;?!o7NhoAru*n=!Xv?GEm$<1l zg|y8k^Gu<={}}auVR)eNMAF_r|NPUQ?L0-`xJ;(PVmF!i8|;aP6-tScEN3Zj2m54X z;ju_EoF?ZM;mkxUA6yX6M9@a8h z==`#8%)?tR!9@I@$Ncne!} zriiPOqAp#|Yr<>ISvT9yGV+sev4{3<(mcQ9F+0q?#a`D(=NqTTi&J#Gx7vecJM>oj z$=Jejd{G#;gQNB3tu_yFtTn!3``0CZtGaM;h?s@a+^UP>0F+zWzH;dY@R;Ei#6 z&t#uGj2FdWE-#ZyHmQH_WYUk!!rSbV!|}2^b0Z?ow{LUf{qeSci+A(wZoKc@ZvW87 zouHWP_DxV*S9hDBXnW?Y-&Ql})~z!MB^*E&n#m>hC@Jx2C3fuut*>tWi93a_CNSAY zT#}c<>>chAa)uFnS}C^t2E+XlPu(ONz9=&qw97djbE zH4@if=JfDTaKm-ybk``A`RfKdxZl3w(F&Y&Y5{Q}rv6^Qg%7%QeBXoryMQ?x|JwK6 zmiu_4o$+rI>#&F1i8bpX`-$+5fNn0%>BD;;awgWwVGr9ruXMlRk1*lfYi2%Tzso`h z37hOwM?1~wUdiY=%tI+S$(-H26DLWB=C;r#d)o2McQe|Oox$hybYJX~(uq?%GEChr z4k74vO1_QYoalIYdQ&X2kBqH!2L^{LQbn~?Fi~YZY9D%}bCeeh$)${7Y+mo4u@4KC zYXB(5KICFvTkYkE-7E?Bf6swLEQM{6z~mZ)C-!ku{ir>z-$r4{k)+%2xSSB=B0}e* zc4EkVYK>3vQZgRky-%1aUYVfvskk7^xjyQ;OcLpXg5}{kB~T&m38SpStwiPy>1+~* zl;B+VJhtauUTt*_q5M!ScL5hbjTijI56tLEUis`8C$ zn>X%WG?g#d7f0{DJC^xUPDpz`YcgN7ANIype*L0-bcFBgBTU9C_ITMYdd2=Fu%V)_ z$LsNUvdw9=Obqp&%1yQQ2Cp}}^0?RR2w$JN>2aRp$d8Ehc>1udn_juN&inswN5(+{0> z&Z091pM3t{lV{C3bIGzPNh`DBJVfoe+I;tW)C9Btpg^X%q%$fZR71vGGOqD?JiXb5 z)AxdVc1s5$Jf0!l(lMk5bxSw>jlY$2_k2l@=*ItrHphP7E{A;xV6;Q1O!^~gvu|N! zcAV!(1b!Mmg>5*UOuApU^aRpFyQMQpCv;0^k(Nlp`qN0qNcxTmf#JTI>^tTKrup~c zY#>jd2FCfPBzZhZcWey|^UVvIBwt{W$?*m(Z=N~98<^m44aRwfnW?`49Q;ur&YUW@<#>WFH;4EFy5AH;{E$ zoKuiY^J!#Yn0Jx+Ju+}c;31@wVHcUR{eh`o%RJ~0Oz>uykNkm2aC%w@%PMDEfdLWy z!X0=U9Y`9>?MPqv1N~VlCJ^K6Ji?R(0%POSj*RmRCjTPpxG&o@^HCr$I&LvyNnXL0 z9K^kQ1SZ67AUTlaaWs)s45Ndh^4(0;y`#l1aCoGyB=NSp9 zKfi%VQy%`bDu?uQrJj-BCJ0I6dHR>9wR&y5-+WdQ`WxanpUe3|x&MNeJfX=)hE8 z#~f1}9Y~SwmS{d4&9*H%FlGG8qvAYcp}BLA$En7R$S%rTc*c22r}HoG!i8s?Ii&}j znxjlkOyE>s(@~}(CUC6xbQ94laBy7d+&Iq|vZV$m@hfFbp1@>Z%Un~~D=;^_JPGEm#+V2qi{A-Vk^9(YfzJZC+XDq#7(IpEn9Dm_OHOHB}zJZyv z`g48h**WIBzPQgbJ>vs|{iXBbJbgqXF>2{WkUgF)=ID6(GPgwI1IKwsnOEWiS8)0~ zwO?RzpN8Yzy4p>E0e%g~o5Ft7Lz?-tUtn}#*?-)oPcuFH2POo{Ne+XRW~TQKj2pO( zWTGV5N-ZtnC%c2R%2oXXy}h9`4re#P?+|{e{D$ze`R$n*=h?xpiQh8}lmDN7A;<7W z9Nfw8dVZJiJA>ab{ATbwkY6&te*Ajy`)yX7rm6!#45Z@} zn{k7fp{gp^3<{VRLhHYE$NV|Fe4b5U#=7T;bdRS(<>RUQDzNmXBr*fHJ-dxki_ekxhm;*oeX$Rd}07a}=jy zVV)|_hLfxE1UL&67w-0X7Ael7FpCvGgtH}Jv40G{R)C4uGbw~}zLGk@1&U=}Dpb;; zI4f59so)aDL&2qrcjCBA@o5BF4i*Oo;CQ3r!+)n)6`u~j3LKJZxgJB+Bm_?&>KetL z5m2q-i9zm;t!D*Dn65d ziWD!$W^qUp=@hR7EH!aHUdq8z;=%mesJIbB70O@uuGh0g`6U>wQMnu)*DC*9?9?ls z&qUj(I0ZXR$`2hv6wR7Ah|;uxC5UB|pk3vgk$0&407~!q-sMcdaWq(J>=R#iyW4M`rw^@E#ednz0S#G_VBmCZtT2HzChb`5%;EmdbmA=O}&y zP7YXt7&F}CnXmFYk>{$s9R4DeH|(bU7i(fWRkuV*FJmB2@ntBl1WQ0a!zomG12s{s z_%}GEibqnSa>Z#3xs71aUB$mGU@7np3S1=^|DNB7s9H0Yky`_n5-dw$$SJOe)1aL5 zsg*{>`54-!*akN#K7nd)R{RXXwSdLu2guu0z8ik1T@&|_(V=)Y8M_o;g}hVoFyx*e z+!C~bBNca0D^Xx^a11zB@uL(VLGb_zkfi*D*c{>FkY@;nQZ?gFN|vVhzZgpgi_y`P zAXD)ysy$orkKkE~zk!pZ_+Ffa$9*f#<|CJC{{mmRiXVf&;0K-m$C9x`Ggc79GQ~^4 zd5Tj|SOJ!RegNl#rCoDyP^6qUa9pf75t}87Cvn_Y3Kre(_?0W}Df9nECEbRzO^QEb zyjCb_7Mv=TpM}wC#Rt;4YLs&V@;a5@2)|x&F0*HYa;_n`Z7NTpI-0;CiRcuRTQs8{ zC*&VC=Dyi2W-I6_oohYz~o~JNjn?rFNt@0n?#44V=+ZXc0 zYhnY=5)@CPdK1AC+=MuCm3vQCJ2R$9>?hR8Ab6e6R%SyDHRj9)8dd-*)-l%v6jyEaiCKR?P{*qEwD`zDE)hNCWT&vh3xH_-| z{RFsC@u%oED<{-KMhgik!7Dg!(~L`T+^+IjDC|b{1n<}mdfA3 zXigZzpRafpc!A=r1hE(_!Oh%F|6ihscPPO!#Q}2jRN?Cs+FS9l90e69p2N^8Qv3u) zOTc0@jen&oKZnwntNa1*dc~KcyHPkH6kZ^sLNf+af-PWavs1t|iXVYfubiJLeS_i` zaNMZ43cOA67Id4yV&@A=->P^5RonrVn$BR333Y1XMjS+LcT3QUauirdk5DVIDnA(< zulRkcJwZ96sG%gq5%l&{<@A9cp3qtdB276TVn4&hAkbq_={vL%{ zu7alnoCB7UEukiIl@kYlf#TCB*&^k?B|OEa!pT$4t@vHBo%vtdEQ;t>k|9R-&^Cpt z@Cl_XR{SaorK-FQr84EWfj25X70wpr%w>A60!uBv%CAQ8l>}XDt{eZtN1zEyH4>^jMghZ9^9z-^=O8o z;$9S>Me(~7pe;l~s{J7TwQI(K1hGryv$&kssq)>lYvc~M>MkRQXt3zcM;@#4TtfBctNd_qf#QehRfWpA8hNqG(=l42 z@^}I&14{?|8O}!KJcN9c%1<8}qK#GI6iQ#Cq`5>|t2hOPI#tMo)2Q+d1iel1R2(!Z z{uOz%;zzO5qWE%jTNS5++XUm^Q%9m*GkQ?^4zLW5p8V@nd?`Uhw!88z7>x!)^<0Ou zSj9UDB3|*)$P*N2!%tMa73vN?<3Di+EUQF}VDqkqg?Z`tO z&mWNLloWw-gOa|cCK|yK=?to|S>+p$w}7Qr_om7^z*2MTk$0+mD|3GIFRt#<=q7-r zh72{4sCYI(B!x(b@_mp}HRB+HNK@ ziZSn*ubfHPS)e$yl*D39JdDCJRmcSADISH<6^gTvuT=aMRge#s0-T1OLd7p5FIN1S z3`@nul%gCgg&9swZ2Cp7{|tmwp``C|Rt1*oI+)#MwaOPDuT^;s&g#HoXavMYAx+FgAz$&87%EVOI!Hw-k0j7ymH$TFmnx2>l;z5~7zgVW zp9|iocpP>%DZYrHE5Oo+LMPDCsx;#>99M&-{T}6Cm^1=TopKs6RIm67#rCXHo6wZd86Vc#Gm=>EJc0JB$7ls?)>_95g5?9i!pPFg;OjQqG|S z*8)b*Q-YyZm7ff!UGY3>ZkKX838+)?=c2UJEr1VxG?>~7d0KE5PeSrTC?qKUl7JFj zl4mOlBNQJFKYYnG$qSZ~fnU8&V`#oNZ5`%@j{3(0H(v_#29vr1A#{G!-mOc|V*qu++ra1d*lk z)dZ2P_-48OGeZ;GAc&C_k)uZ zM^Y0b6i<;pp}2+4kOr3EKA=`IcI)wf42eu7osF|B#qXn>t@szBo&lE9Ur%s3U@^2G z{Q1h+i9A>3H=rBd3FQ&oBIO(lUaa^nx&OOF6Z6Perg$WV^1$NYCGbkHIQ|q|sMt?t ziE^f+TLzXIdK_G?xQd|HD`zWLNj52-180kH@b5_{(kfNhN>8p<(tJp@DnA)RbzlkN zWga7KR89^x7rs27i-RVWABD{p)m@ElD_DkN9`ao(KM{GTQx%5LW|4c`5-fuhr8of` zt+kca221vM z%pQsRgV8RY2vyR#;fA#XjQAiCpfNAY-6ZaaX)aK;$I1< z9xO)tQbUc3ub|1A6u*;96Dz(Pd7EJTd%oeEm48K`OB8>JlVxD>&;3@~STp94kq?%rD=AH(OY-cH zwp8rHXu0x>F}hyyv2ZpjX9Ro5Enu;;7EZNtt|ibK#UEk6_7CQNDM3A@Y|xBR;6}y& z!RR)y7_xBOtny>PEs8tfv?}KloVBa`K;#`Nf1iLl75@n*a<5y{U&;I*zOei-3Q=T8 zK#wAiSCWmh1jU!59M8R7X{NKli7L-WHwi3(zDH)N;xi~^I@qxZ&H~G1HIzcm0Xx_K z%W)8Hr!#PzLxwo`jLtX@EJja7D_8L#94}IiAIFQsa+H=SUWl_5iU-rg`O0rbw?OeB zGXEDUX@BPPV#N<&v=l5+f5uIS^@TbTu8SpAr$ff<(BhOU+6y#aTe+hZ` z0n=N-vy^iRJES>aDa^YBJx}GKASIix8MDY(pcz>-!6KD^jG-ke7w^kdem?vaDqjhI zrOMx@cm;|tq;y4!hruaPd@nZ3{?z&Z0;;H7Gg7FQjbN#ji{*4l<;#(8QF$M5RhWZr zwQ{CX6SZKe-j8Ue29Jo{U}X~;vq!Z3Kl~@lG&lkQ7CsR z=N8&n-aQcA<0ws};tkk|QXCCGTJdjSx6|=@2qPj^l~ z{cr+Wpqx8VSfqGAqFt<B8pMqffV0W5Ytm!?#F2+ooeZ$~~t z@r!aipQ?!y7+PsyDM1YK43$3)&Q!byLs^QCAc$<`560*$mFFOz1D1e}L_S~T#n{PJ zT#(}NEC4&#f67r!ppIgvawS4#FoAnJ9N47sn+S_4xWYQ*SoP;rBzX1jizm z_MVGwyy6F_p#;TEOudObW`*DD^5{f)jp?(?5n?E5RokSe+pL*e&+ZpJ~C z%A--JQT!8z>eNsGe!b!&39do$LlmY_u?2sd;s$D{2`s*zljlEMG~;3vS`{Zyy={tb zK;Eu+70x;o_rPfQrevuEt@6vjor+_?;cG!DU{8eGtVPslBsh}(=b20*o`h86ENUVN zEYY1!q^XMcCx~>g^ojSVl?>&-OFCOQsmNz3UI8&j@g{WVgGF~C|8iB{Ky8HXe~X?k7xJ?s}LKLgzo7l%Bf zQ7%*ESI8&_OHF)^vrQ_$j}lZUo(_MD;#=WYfu*)SKwhKrYrwUNbEw@q<=hT#027Pn zYK|?MBbfh1c@>eis={2HwJClCg?3dq1Wx!0=f_f)k#3-O!jA@v=tcsH1&hu3@Do)2 z5_S?*z7YNhmCum-uc?}m0Vy3UrQb*ivXpcNma~;JoBlCNaXk}Dj^gDwp0D^T^cN`p z6+4T;65Ku1=n}@oJT?&@5WF*SV}MfQlTo0r!+;1_FyA-DoX!s%2?NS|nu^;ky?j@pV5+bXjZDJLF2aZ?#oV2Cl z4C& zAm6C+LEs9-XHv2%u++pD_~Bjl;VBG1<@|!Pdc`XVv=J;eCtzorpZQ;uk0hf-Gm5D8 zR>kYUZHntqXa`GGpMZs3ieE(6W4T6yG)E*@IJx&8Wt~ z2+c?arzsBNAVWF*QO;EPaX83Ud^-+iDQ6L#cMezz_9eRWRemwenyc7HZ7mRte@_&N z@OxVWP*|j-(~yUc;SWZ>SmnJ5VhLDE`98lq#pkfUSgH6-3Qz!+Af{6*#VUUmPO0KG zG+(Hk1O@Rd!DxkMyiU4G@p+W2223_L4ro`!^AXf3=L|~R02XHt;`F>Tn#TxEDsF!BXNQP>xr5E9nH4XW<}84nIV24FP3Al7QCWc#bLrP@bpwT{yXl_YmkJu+&fo zMi;Am5S(RTsg+#ptWmc zlAw4KfhH;bFOE|cdvTBsmgY#NCNdNU2`K!O^Q2FZ=vNMYLUz8W) z%oA`+6HQG-gGGK6C5r`1$vQBUpz;ce9ey;oH~d7E-wP*6@!izW2(S#}LTV*L|El3=-nt97vh^rt7F!+FRv=kk3=)2m+n2@>Cp$A6CqxGz*k7n^U$$${9is zOTgmnOiHvume4O|*TD;uQ?hI>iB$8uh@&TO^O@fZ&Cgf0PQQ(jTyg=~|f?K4V>4O>TijPO0r}#DOuTkFG%=Wx zl_0?kRS9vWZ*r@Uc!J8D{04sW=EfX8kdSW~uUz$a9o)6L_BD$El(DimP#ut9UE{El|9Y zHeLjln)r=?mMC6<{XD_=_gsj=N>#|GTJn{YfP+Gnx4xsM=9RQ@5jRB<6i3Sa+! z6`N%$kHK-d>dq(7jVgbErU`8#Ayv_Xj4I98jY735%wcau2;T=@-~&f3vO2V zuW;H_J`Q<@;wo^b;)@A7GRA4*kY^f>quhk&T$H215>PWiBq%BMz8;0g~uFKh=Vjw@oQA$e8p=~$W^?6 zfEFme2F@bIOOY>DJc)pofTb{}fmbL#o0=$4{Bej5QcOZhb2pAl!4%xnMn5Q1c_f+Z z70c)KHYpy7vn|SBOc3FhQnLxPO670iJ^TPdF^;QM_hP9nZb&=xe-p#3Rx_reT(8QP z5Kx2S3y?P|&LP5W%D)Sv&59XWo>s;E39eoFW56AXBXPV7EVc5WeE%o1mwSx%1q>1I@Qm`DFxGpq$Z^s8HqO z@KqclAtkH0SX?w*V5%fys zx1w99_)R9O60p?nH0+nD{1j|DA0oiN=O>gmD(QWqs{l()9EG7Rs_-G{8s*%Hp*k=} zQapx7(SUTG2DU8=Rm-8f?crgAw_kj}>=MZS3a$3n8q4<5|X^P(fXDB{NuK#3_ z5JNX&C|mI*L>+$Bx<73>L*?1@-dUhq1UvUd|7AU`z0xSYcbHpNFrt)pn zM4p2~d_I)K3e6}(VI^2f{3*X8u++-_{3}s>2ZqX&{}s4g@o;q4gT>kB>`^O}|2CW| zHgl$%w)7=;#^WS<2oJl_B>O>xj8btpcuN#HeqcNJq^DBy4gztvGO+1&w-!5Fh%b*?N*$jG@ z=pV!1Z8*TAGNS3xiKQ^D5dI#fUg2-aN}q5OZ?N`*Eh~rO^h)82;TaUq0Vb=x!sE!q zka%XoldFf*CqNH|bz%{Q*GTvv(lrXUbk!jcKQ7uVXAyBC*bHxkfn?FQ+mezAZ^#6d zD*Pyc`OAuhWG*b(wa}jqMt=~R4wL_O%N$N*iRmm1;GT*P@@ywbY`stwjk7c;U;rbJiF3#4Wd7Z zu_oavthb0~<#t@wMW2k}cG0_86Lg6FvwiWPOCMf9QIGJ`l%rPylZl{D^!pfc1HvOX zy-Ga2EUgAb-yd0jsqH{?u7++|xe+JUi2rP4N5PT#|0_N)*dr6d7vMPIJQT$Xj{_$P zKSn0}t%(OPkObXQ{TxRaZ2fU2fu#$72~Vc*dg#dp6I19!`~FvsKJ13!6#Xp58qVfQ zU^a^K!4|>SC@K;@8hWXCdO24vyqG8}!De6>uc}1<3&S;{PvK;3gdT)KKfzcprbR^N zn-Bj((R>M1BOKOKi(_!KLG*(d-;I)e2IrbZKgu$spLBVK+oBfe7Qj>JX&28RxFgVq ziA2*0w$$x_;cn40P}&1F;m z{uD}RwLTOeJR*S}46gy3;U~wB3B`?%I@gKUiC|0b7{+>%@VC&Dg&PSbMf}&}Xjt@> z;56Zd=uaQd{BH)X<3koFtcg;=d0?Yw<8`3~jzG9b_&1Cd3-1Mg3D`3CGKR~*Cc7!l zRf^{r_^TYF$G@QZ<{IXI|EawKLaLUcTVSe{z#h=+MBffPSNJA)8pQJ|PBe;sE!LZb z&nJLZ@q7S(oA5s9X*Zq#PjA6HPti8u9BreWf^fQCOlw1FytYr)!&oQ67Ufe!++&Ks z`(U6~22MxT_l(~ot$pIz1la+}j^IQvs1vhLv|4y$6pes6A4)-Bjp!FzeKw66TZ@zN z!o2zvN&*}IQVb^xcXLmeBA)L!7Z&~yTj^i|2tt=)AWJ8X;fjy;S%}>k08+PP11C9|FB`v^<3qF(hvtjt8=PpAYz{h`gxA2|EPOZtw}7pDZT9|WyG}IVQ3u#+`5yEx(O*Nr z8)^o0|0$Nu!Tt@oA28f4{tWc=NYC0R>lMBbhx)~{2Au=o$o|haTSK#%q z1P(*#2-v*-#QI=D)X^3U$Ahg*xm*t3?NfYK0F)wqCMZllBJTkKt(!#I!Zq zT7{=sGwQMG4;W~NZs|P|hdPAMhR`Ygd*JUDeRJqNqR+u_uW$i3B>loUII$9J!2}z? zG^7*N;9;HE4yB`DGrWWSFC`lBi_qi2M%n{KiC|Myf^&Z1nF2jU{O=P$Sp1dH(?m~( zUS#k8n4&AGM~0Z*#feO?Dg7FpBY|rABTu*+V+G=WAD%+-zlw7uqVK+WC{!x`hcH$y z`Uz}!RfwKAHDD6ZhfndYMmQgbe61IUfjZIOr}O6uZ%WA;ge&1`5HKOf)O!wGK-B0=S^h|I58^x4+;{6-$Ec+cuo`1|64(f(1;X>-DH6}|WUCl# zncIhzahZ6wg9A3loW z^LS#BC;nTf(cGec-p{u(gdb*tDHdJ;Pl@ns^p}G1Hwb0$_c1E?Kq5nn*rBWu(`Oj2 z6zy z!CQHCvR49iWX1Q3?IC!d=p*lr`PbN$VJ0oncLEOxx8cxA;bio$0-K|&31CR{*80HPpkb}Ue=yOpTYK)ekbrJ(W_(>d%7rp_ViNbr6i6pQY{s^5ZqF+S- zso=<+)yV8NXeC`GU~{MxPhHVE(95A)H1E?lmBQP?<0Y%4#?{iZJI>Vz zm*HHk@bS>=A~;|q#H4pCl-6^?44+3IG)Q0{qHh#FhLkpe&54;9ZV~+m0%#RJ5S}*i z?1gNH=yzhPQ@D_R>I(GXQatJw{u4#s`P<=yN0UxuRx=xl#TfQ(FC(QrqOS*DA^Zbn z>J>f%hx)+g^l9jKr-KqwI=~5wcryeB!8SZ*(FY?E&S&hd5&i^4qhM1sLbl=-MrBU{ zCkZFQlL|JTTmthSGCBeMX`=6k&Wwe+vYt&UGC5(9rC~Tr_(QrnTlhONkt2L1Jh{TB z6HT7*u^7k)o8iO2g~G?7r&v5Ez+WP~+h5ebR7`u|QMpbuB2XcG4FX=*b5U9;{!6XV z#Pd1)HNu-fuN7XGa?}aGiEKUCGF``rYXHY#KlCggTEx_3#)Px1iNF@k929kk9%e@C z6n+lFUBdZcdPw|-6U++HuSK?3_$qLpa2L%O^y|aLoEQ+k4u@8P&G1WjJt#aE1FOYT zOF4#x=f*VSxiO_Y5&DRD_QKd2;j;*GG>U`J-84>UQ8X=2U^o$MeQ+KENx~OEPZrOa z2s_WkL?4E3jy}#XOBer*IFTWI5&>iiUr)1Vfvp6G!JoTGJ8L;apC_gZNP9lmlve!6 z%q4sa4i$^%4$@m9d<6zdg{ugr3~UA-qVp?7-;9Q>65a)!Uhby?j8${OjLk<;t(Z0k z*MZ}p?+0!W{Z7)}D7=(&O<=)BizFW zQ?wMOUI|Qr-UnU>`fsFq5NrmXp&Y~FSp*&tJt-!07n17G;wb+V%8>}Rvi^?%l7xSl z!Sz2`Op_4~gUyMzsj*MJ*Acy6zwbj)x`dw~vJBxKoX!+}90NYjS5xCG(Z7X1SJ#^H zWGFjAXZ$q~S&o=KAmUuGMfo*`3q&7_aG`KIxJdW}_=~~jbQL?PrC^iYoM0+MpFyuw ziT_-(;;W{s=#T0^C!XU(jf5HAp?V3QhobqyM^m##@vMUrEnrJ&H9W22*#n2#!PYm& zp|e~3o6~f?!ZX3en$Ck)5EzhfN{rHFWMvg}GcXCBK?%Qv*TbS8OJpO$t4P5b;fpC> zky71*f>Fta2q3;GnxUWJNp8~o|0WTnaKh4f0Vl#>GkhmbqzOOH$#miOsj-)1N79uc z`jON%Q}|K%F%Z#n7yN$3TQ~gQ677`tS^p%->py6sM5Sc|6lF>HK%B@1n{#J?b45Ru zY~=}GN~-h0R{L}4n{8tljsqxT%p_e#Ot`nc)gkL;1XVS=!L%pQE zLOdrUTnRQ~cVnzZ^tUKeE!Z5*Lub9{W6985;VUTFeBu4D6*TBWGbw5mo)czb5&i&r zv+&vszZS3=J_Xz^`ck6o5Pq5Ypi}sJGSnqp2ajJZdvLTHI*taRRy{I6D(ECLHhD`KF6@^|W6Dz^y+-f2l63Rkk3zRc zQ+GW$UU(dJO%iUU9Db=Sw1yS^JdF8pdY}FXL$~JL)|yo1yA>zWL_ZXsbm0qa{?Cx2 zWs_(+oruSYY_N^vy{KP4*dp5zo+9yVOawkv|Baqv=vMpc@PAo+6DLZ=KaY}?38%qd z4vy@s?Lz7*`CtZ0QCcIWR}iih&cvZQ@f-%ve9=e#WU3ZkM3jxfJ0sg9yfwy}!RB0; z^0kWIoJRfI_+W-F!HG^Wbs^9#ybDUbmQB!Ch`t5a((@`fU3e)ylqH_`XvT&>)8y_}Z%){yb^`S-5Yuevg%W-VTmrV9IFpF|zVTR` z$kWp57i%tbS};cuOoe0%D4A!m6#i=I50=4HBc_{akb0eH40Fv^_u8J*T=8s#Vej_Y z4^nUOmoc$43Fm^Fh1+nbMfgbQt-{yiP_obePtnyL!B(WY4JM1=X(H|fTjQirSHJt| z<7BrKy$w%~_!FsjpXjsD>3{xdGcwvQ`u&t+KzOI0nEzMmLm6pVCENnjpzyhL?2zzD z)Ni%$&N!5)YsUp-%WvHu#0ht9ZS)MoZ^7(>qocy>gX5P#4>)lFDb;c~bb!@HX+N88 zPlm~&e*$_c*qW{lrD5Usn0$Ptv^h9U^iwHoI@k=qjBJ+Z@6dEUberyF{>|2jA7IK6 zzK{rf+<$^nPvc>vF;_gdK=-x%_GBeb^d_9k7w#u>{y1-)n4x#_pVO$>N(qx=R93!L+7`SvJc>_(cg31h2d>_d8J zNP0dYfYrhqpmSI}pTo08^s{XJKgtI)ws%aU-9(qhH%IBqXrg4Wb^cO}rGRbD-wuAC zpx%gabQxL6gvX-48JsO#iOyW%jsCS2ghJQjQ9dWkz{X^v0Blq2g&Q;7g3Y=8nUvDx zbu;`v)6FF--gFajqFnr0lp|AjNZrOG*?S1apS%@M;=Uk|;X6rDwS>FCb;6qw!F;eq za|6*g3V)8H&0ur-(hSnBE8ETtMc=r%2R$v)b0Ylhl06kYouUVa;zg!rvHy{l9x45d zC|3v<5?QbCd(^d0xCll4V7q8ti{T;B$J3&8EY%cs>vKz@(h3NA!;1{P4>2~LdBNJ89 z^E|RXYVvU+sO5yED*>-F)CV_^BL9}ftq<8T)u6 zoD)8tA=f4TAK~|_Um5`<`uvMqTZ>uJiURlx79knr<6PFaS2g zo08H7MLC|duM+)hGB+gI+t9gM_-)&N8P1%}p(Vv8DU{mQ-E~DvEbTW~3YXNzQrB}09Jdydv zb-O7=7yD$y$WXdEq$=nr_pMT$Ji6T!7o zy3CqRBch#J`Y$8KLH9SP9;0DPu5V37?W zTql9KjNN+CcSg~C(MN6Ah@OI?Ca^W&?-*zUn}M0=@p`{RV|0pMg43?Ql<0e)Ti*ob zc(FoEU!t^MC$eak0@d|(3=cpzM{96ymH6)^`qko}h3v5CYva(U_$zV9`{pm4@EJA_ zopEp-AONVay z_YX503hxL#8*Gh#sm=esnCvAopP?2~??RZ&*h4gz^DKs5B>M40@9X>ibZ^q@w`2P= zjH}_dK1hb&*OIT}P@VLA$_UESV&o!5TrgM0YVpW#5UVgeUjp-?dmp?QllBSFeU|(f zy5IeT$WWtX&!%L}(tjZQp50sF(S2qRO2Al)1b((o23uFZgV$Z6--V}s>AaiheRey6 zXnJJe3mR~R@Gj7Mg_n>azf+z?cKbv>3Wus2gJ_L+G4C`vOpP(NJ;r<%OC+Vf3fhVY z`lYB4x)R;OirZo!Pap{f-}YR z6RFDvo1)z?kR$v(5#)l+xrgZR0^xIU$hYYxqo)|UmGWF<%fXhFEhm6dtsl?F zxpwLN2|ZnbK5Pn8k?Pck;T2N!IrYxsf@De$0{4l&Jv;+oo5hwQ>#OI-tcS#NCQhsY zTSj-LC;XAk4)FW^WU!2S_#Nv{C>=$>>UtS9i@zsoI1^zXa(mOsNzhGc4#vuuOw74Q z$zrnTN1)T^hMDL|5q%D_slw}!>F_6r?@_s43m-y>{+&RoepiPL#tb9%Dv{}kxNVro+;MbF06buZHBN^d1YB@#Z7 ztdvRiK5)74<^~LGNarX$fJkML*gC&{c6M4mCixY@LD5pjk>!L!iY^z|<~0h!b7n z*%HIuqHha-ukaz@0kDnrQR+Pew)9?V%_#gNPWX!Ga5{etbb2TVJ%$&f(GQ_3$wcVh zXmdSavzxrW0f*wCo7byjnr<=KN)kOECsM)Y#Bu2Ho0hTY@msSe(32tl6T>)d@BdgQ zUj>uj80{Y*$a>lfq5Dqhg2z|AcawI1QZ@;lW$>&A&&!n0=Y|W& zP_1Myrv&ygQ)K?%IA%C~ih+8VEY)N1+8;KzL9gHdBwxnAL7vN9n4B(A6{g}+2LI^qH*4TM)o;0imTb-+zTuo}7K%7qG?)f5;j5%|mo0~`M<7{> z)+bv&txlu?{l?>297++-yF~9B7kAj`km0@H@x@NC3Z-ch_yk4n#ARe6UG#Y<$`D?g z5s@kUI}6t=;jMAVl@=rGb4C%tWQ(T^Cvw16reCndB|f_Uvl`)iF|8zZex*8rbQMTo zCOp2W^rF>RH>TyJy;!ni!;B8$c6dr9`xPaq5Pd4cuTu0K-=+Wkrf@8VeVzXZQPxNx zY{Ld@tD^^SqCxarBJ(kQ3Ut4bJpw(xi}nCAe(hLI#9r1qv#~);KNS$bNR%fC zZOVr=639l;sPN&`KGYh`#1=Rd54L&Y7aU3io1_23Sc>SU5sfdo)*{MO@uZ?B9c&rh zlT7#{`(2=Cwle?Qi5Ym8BE!4Gl%(b=!C1D0r$WyaewdOK>5~0B#{8*g2>yI{tXFP< z$M+JB$5@GE2MMMOY{4uFNU1mA!$ecA6LmHvYuukiR(xB%nV#^A%~oO3E~R(S2UU`t zh)%!aRbZ@I^loGuqGIc zm`45;oT$e9m<%-`YY`s~zuyOzO=tdZ)`_y1h>rpLjp=+!(;}X!MB^i34$=67sR{7- zN@*gFw!&{^oz9%!F4+g^j}EW}P>vJP3su06QlZF)U#ATZ2~Q*KDSAPe>33{Jk6BS zX6t+@eE?&5qHjRzeD!h_(GCC zOvF|L^vL_4zf$`qd3q&={e|=87;b^dBD)HKHsShk=-*zso^trb<{|jg)r_;5tbG0W z9_8pj)_S59{l0_x2mu7Xt9dY&#ZDQRMg%@0E@Q~~*qwktw|K6>p%ua>k#@g_yc;L_ zMDM{^mnN|<;2#iuGn~`Y(11VV{@;>$JB0mh$m4J#Sy{P`D7}6sLTM*AjqVN3vt0f9Wsg|9S~;$6W2N z(H?}?4KnZ^0zNYy%nGdn`8@F$idrMWEUS=h)?LmfVzOQ#YIA2WrlV0EZyN3u0pqr!1 zaL%XLort(t^o0ad2DWS+hirxDgYbLw_t@~Z%mpyrfYNFS9Ezv4U`y|5jOjWFUyMWZ zML%Z;MuG4qDDqpjZ;05}jE_>LM)7pg6WQ7aY_O}JuCyN@8$`Uo*boskNnj}sHG?h6 zAE{H9X17tC@RiRbrtLQIw37BtutmH#W%3JB390Uu&W|TU7k@kSz9>Bi{fKwICjT1j z`!=tE{qft`hBel&#fg3?-GXd+=O2z?Uv76m9}v%6oLdPt=k5m&3Lk{dUVr}E$Ope) zznM&|mhkD+Zx|eh@a^#URdF`y^)306NTcroj9}O&tLgCj(!QLC`RSENS?{uvDVTKo zQdyi%oP@D>uz7kROuhzOg4ao+??rQ^fUPu7&``dhcoKS=c&?y)8DMkzbe!<4Wa2~) zbnC6R;IT4A=KqiQ;M?uPMBrPo6*Nn(1m@$A&s-mZ{id@BCwxjSM~^SR?mpswX1C7O0BCeP4Ybf%+jM|Pvb472#*nHtr5%#UQ?dgwhU4-s{ z?#*=v{Jzf50lP!j6IiB(bnpZQ;?<1_q^JP{)?DY|M6---fKtEJS_$@dMjA2PBL2fL z;M+4xXzF&!oz>lis?u}6karesc^gZ^l}`4x|-;m9bsq~GR$rQ#9<*63=s2q%0ObRNR~h%PC{ zq0flYcg_wmC)Di=Z0HK#iLAep^Al-bA?I#mYVQR{-v2xYMVT^uKPLw41nIgs%xoor zcOm$Mvo8_&{e2%whs5&@(XV!XobWs4hhhRalX4G>XF8KuFrp8PzR()5)#+|(A9^S{ zQT&2)abR=k4APz?dKEZX_z<$?Q|w_F^M2YBhx{(;RQOZGUqJww(RCuv|M}n@JBKv- z#Bw!Gq)MO&17WZ^w*yU@4z`8m-ryXtIX5HB^?ZfO=!|<5Sop7#JPMn8B z^T8ItBJ?y$&q?rQM>h!mwZEwkD-L z&@K9NiM~&GX98R482XU#&wn!i_iL!^G?hD3PFRYjkaoYaJw;FWW0w}nl)}$@7|+@` zJqo{-sR<`S4@V78Cdx#x(d!Ao{(gka8Aj{0)#R?5*tM$K>`nadN;80aklL(bB*EnfTU zlYh_?`7mt){V<~R^uCEhz7%^2?5m@_!G00y#0kIY{J|X3LM9nwWx7LJo9O4G-y8~F zC7MQkIM{}Yc0ImFAW2@oh!ZO`L1n<>E2XbUyWcx3C9-Bk_8j$Yk3v?8#q$d00Xb$oqs9hl^DDbCXfCpq92tLMHmY$jXL)m4d~0P zbKxIVnck$S{Ze}$0mQ>^BjQ`*(FJcjeGnva!czAN0&Z-nMJ5C1L-!TS`#2GnqE#sJ zb-=w~pSDXFDQV(aV@;~8jmNe?qnA+2UKZQb2o;)e&=G? zuknvi`!Xq7gQNbH+}oj7K(`uKA*;)4XlI=8b-?3fv{F1Xv0DX>%>PeMW<@Kdxp-P9 zd^A~^3%1nF#km?a*Y(u65xN=s1)e6b&4%yO?Y{GwM0$Pc_5}{LiT^ZY+l8;Q_y0Ti zU}^t>`ZX%maYWMv-3-4>1iqZgg~ydnz#+eyeL@LVh`$4e`i0L&&noHvm~8n~v>rm<&lWUO`U!+_Bzwd%x zOXj>BSH|dn0X=P$()0xPkh-vxz66sieFp=+CRl+1pYsREL^}MIi9Qth&UiLBLwY_V zz1}OQLeGM3rTiF+x#HP?Y~{CW{;$W0LNRSZ{rtCEPC>Xt^yk3k5?(^1Rf>N1B#eR0 zq1`cDD?Egw{%mk9I=@cz->_9L*_)?Pf8Vj(2Brov-40VD*i!T+(fgvY7c0%8Urlqh ziht`c&T+l4C^NYrWvD;u|6y*>t9x(Yw7(mYf}?FFi~Z0Zq{8=bwgk6x!W3NyQOT+xT1=Q$mv1)|?X1ph85!vD>rGobtIc^1a}G0iv7{Y{BnoKEpy zR^5wP$sa^Mh^K`zur*E;33rg{V&R$8*!PH@ryPDIT!L(gcv@)WQm~csD4g)Q%gh!s9`%MJAe|o1+EOnEzWPkWMuHT29qqz*Bl38ETWFBZ#0={NsqYONw#`!1)g# zfF9ASrx3C5VPvINYsp=a?T^qIe+S{|NWI=`BF+c<^tmVL@>S3arbx@`V~`z^ zfn#uP7;GcrL;^_G6rM;=j7a}C1mlf4h8_w9k4955okoiXoA7l+;P?Fnq|O&0YopXB zqOHl6f2Hm~czpBWB1)Dhoi~Gh^P!jkeEaTX9Ie)sHfSaqUlL7+$uA_wg8fFbfK2$^ z?zJ(|SL2X3>=*F+1*``C6d8D%i2bdXd!Z*Q$VLKAc~tv9ms=C5Hao!NwLAxh#IER3v``!#$2#}^mhA)GI-hs?0* zw+_vfp_Fcjb6GN61&=$rKb@Z~dMkQTCq_$o0~zv#>zOeVQ5+6Mw&Mc4n2u6kxwcW8 z94We!#>o|~q$m6_%JViGLboAQMU4xDr%hoB*Ane#WQ!#GED;xrrx9DFqNmY-L76_h zh9bWSnFW*IB(xEMKNETe9)B&P5~bzHS{na^r%HO}QjTiT*TOG%^OVB87aSFW!Raf1{+2HksQD@x#vxdexr;4z1`2Db{w6O3P+?jQhv z{<|+_%2=%DzbzP;ueTfb;Y6vLaT<;0)9|CDv_nq3j?yl$4cAO$ePQwkhP!3>IAk+? zn8DL4+5OS)&z#oS??0^Kl4>cs8R32j-v*O^UuQeg6}O@02Aas<0omR?3N+im#gs-9x(uB98#&)GL zrEg4T@hL@*5J8sk{xp|gAs2=aJdX;k#^tDc`l~go8g~76x}7MBomeJTYC4wfKS7(;I!lAMDGtPZ-ibW z{lRnu8q}qi;%S|{{vTPXm(nxA4Z`D?G;)3(8_CwD81`?ynW4Tm#+Lmel-yWsyGJF=%cYv)Nd%@Ht`a|Gu;df{>-(*zh+tU4$4+9r3V%d~lC+nX zOy=q|I_`t+tLIuuwg!I7;*B`%Q~L!x=IPiJ?OpNhIAR^I!730LicpV4byndhh z`4zIB2>c2;4n^K*XV6?p@J9^8@3p@K{f%Eo8@2}LQldOTC>{f030%NCa_PdEq_jrU z@IPR`OxF^PKll5Yh%@0g=ME%8IbbW_LUiVeem{=-=EH6{>LuF&p6dIV|IO1>MnQoD z-au(F*yyErS}I&jCzp%oEFAKS)BPB(f^LS_r@5-d6OW@^D$Qm@Unicgk@ajnVw(>+ zVtO6#e8qAe*dMtSkj56xVs~MnUWzWlA?LrvhOYFyNyGYu=jR={?23O3LCyzTV82u1 zMsQ^Q--Z({e6TcLghPHgJ`Sbr65b@niG>&_*K?zGqVzAGEh1YTGSG+tf1f08gZDn%cnDD+q~MQ6hl54NoALXCZ`_YWEJ@BQon_Sy3$j3vWw z&fSkOzp#}tB77%hQ}p|r5_8~b2(-w|A=N8&)jAlZz8-8KniM&4A&Sz352gg^8XdP$ z0x!pdIGrh;y=|%%zJ|wT`CzO4VlwTQ=3p!a3ONzSi9M~x+O4oJCYDNIHmNQLTV!FP z^aqFoMBwZHOX05&|F=Y0CHx%0RB2Y-ljf~~ZW%obI?b#1e`1B4qiJrK}qYfR1 zo}gHs4&t4!YT6O@o6fz#4QkRW$x0H!mX(ii+V6tj0{cAQHHlFmo+HUh3OF+1kVRjr z9}RAet~r9x5}GS4ft%=LUv6K4VZWqafTA=hniu|WJ)Z!N-cY?PIY;z47|WMKClWxRjE%)`m$G#) zJR@3JZO%~aUmd;r&5xNeFN-WJ5w^y;3h$B-uymbC_m;`nJe>2Vq1i<2d;0;s;%Wa0 zZ~dlX8QH3obBm~bwe*}yX?)xtfOFY68rlDEz$0H|K8!KH@z^M)_8UX@OXnqEPx}h+ zs3xwH;rAPig<+ysZ*6Uh6r8Y3*OO7dA=&mH=6|0+hKb(4{rnCQ)Jxz2hSOX{@BrQJ zuhHI4GZx$tRhoohA98b$ZG_*lIMV`93Fe`{S@dc$7rlWAxNxATRmQ6D&Kf~_u_%?#r)nlpr_IGrduoZiNiogQ60p zG{Z&*Pp~a@Z{d)?Mte5={o;Rs68KwiHOQ`lZZqAHG5yg5_P1fu;ct-spoOLwk#{c; zGu1>r1Pv;4jpSxi|b?j$SJV{N_*|W%A4S zA2^*lF&fx%d;aTVw1~0myOh-|L~|wl1D@u~i9;!YzgqEBOtv1PmgRa@bT9NG@lPXL zzC@dZVc)p8kN_ff>A%o+{0Hrme-vUp)a5lIBZ1YEL_`f}( z6&Uu_^JUQeyMmV!fWJ$g#jp%oWMEGl1;UqLtW5?sMqoZ~##kC>lSYrG&>Bj&R3!w^ zDgJ|qEKgU(+1B~exf^(e@O@;uFZ#Ak5ZW1Iew*Dziv0T?Uo-CA*pASBGx8Mb>O0!^ z#7wc3WUE&O*2alkO+LHW5YY)Uyc*L{knu@_^5aW$eeHGU0^SYhdQG*UP?6nKF^ob z&zt2lA}&y>7vqrM3GGO?$02J@guscySvZs|or{t6A2&D=TYgpC51tfwBK!Y$l9tta zNN^Qlr*gugpNXdh+R;9jh|^`@Q1~;2U%+V}io4JUzOnrDB!(Y6*1SRZziYwyR!YqQ zH9xTblOv|*FxIR~=X#{hU&}a+X2})LR`BGguCu6Xp76V*-Csc45}wY+sNo*y{!sD+ zoc1p*Tt;@IH@=L&^$_p{WI0U!ocAr5ym6`-W_dVaS$Tq#7J@D9&rRlDQS@i6e0qoM z6lDEUdvZ+k-iT}&{FaqUoGTBcXd3DA>-sK4?~0}qrC(CNN2#v^;-NeL6w8YGqnOcD z$?!8rm%-yVng!^ul;JCI$Y;r5LmHt z=r;L;an3I)!!h^(obzq_^`QG2Vg|Cj<{5qeXA@H4kIS#IVJ0UgBkU{VLY(tCAf7aK z$e~W^;14Yx#ei>UR8dOb`}>{Jbc_F5qW2;FsQv!4?_`c8?Y{WD3uC=<;v1asFP7#L zeV^#B5m-Oi`rvV^C6kQd9Gvhq#C(S3O7Udi^dQ)>cp-S$==5JG9pO?s*@R0FE@+H4 zNGkR7MMMT(`@$gv_PKp3&iQg}AEzup;E&DjgeL_abF`TZxq*+Nhedw~dOFygSV>?RqKCNHWC;(VAScQbgigRf zSd+{!Y4Ka=Fj0E+C*Y~qels%U_XR&7>n|9UVJsJ=mflgcXsMlA)R3@eZgneQ87X~V!TlCY2xLQ1K;G7$Hm&vLQxe_FyV9|CiWslA^OnsecptN}}u%eJajXXwRn=V?EF<)fbZ$ ze+(NYi+$oBfXA-|yOL3VrF#j(djKBG&_VY5Z*~`A5$uH%E2T6WJS4n1b@D}KJlKcU zWAKc?W3m_F#HjFg4CCyDQ3L((`z-k<{Bci4=>rJGgV(}-=tE8<>BL+jPL7;l!ATl@ z=DLMwQlVSK>5S=g;af50d&3V>vMlL&8N6aNdcXG`&iSt(mXRU9tY1lKn*H}bJ1~$f zrSC>MGwSL0IF~1-g*cZlo>`R1e|+p@c(j}fT?$VTJeHO7!6m}iqQ6Y|Tl&DiClnk& z1pb22FDUX~CR_*M3K_eOXsW?hvwiT|@87RuW9(YhKZ%)st6oo^_X#~7Fik3U$v z9EbYkP%3x;Y|)RivA!r;z846xQ=43$;7~9qW3x%okOVGZ1v~;a!x!MtsCe$D>3lCQ z14X_E@D&DpK@o?Z&{I*_t)YALnFQ%s`5wA1!9nO?6#3l#qIv4mFm>wCU)%mECXFXh zV^>;%bMY9n#;n0`K68mhydM{vMCgXI(eFE9*MU>SUlpd$ZrA+3m=pfh*uO|is+bNU zV!ydOfD-t^VKM0q!($nm&(KO2PNF}26KY-fGew_9F#ba{yP`iEx;b~gt^f1*U=ehq zG+zQgLnsuUjG|%*j7L#{rr~m&^9{?1L|i64r_r!JH@tzda_MOxVt+z1N)~NtADRDu zg(+EEDLZ4#FC@>Ps8UMD<6ITk)`K6=?f#T>n6%G@ZqYm&ldVnRZxsJc;CAtB8q+Js zjWYjsal+F0C6W2pY^I^q-}lPHxgK~dL-P>!hs{S!VTzT~x9Ed@@jOKdGBk9jT0e1> zGue7{4v7CoMomg&xfWoEC&Kg8ns6R z-{qv^kQ=y~5s{0mP3OB)nnJLZ;5_I>vK8P2!#+Cy@5$K`ojBGaR;n9Gov#fu>4P$O z%%K~J(ifkpHa94X-xExwc(O5E12)4MjE-92^U>*#Z!&HF$H(g_c-NpPFDJ4(2_$Yz z^9X-Vp*<6!Fb$>2YPpR9c+9!4FyMN!aMbxPA~2uA@3DEp-XWv^LO&9LcXbDbD|8dt zim<;Zo`V5@*W-EW>bKmh8H)Z>jE`X0o9-FP*N8*bm}g_mzr4Oa*e~~0WGG11A2V;` zM2*r|jsgD~-Nj_3S&_}bIsb{qsTiolQ8TbDIFIjh8U6~V{Vj+K!_0KLF}(@r{4s17 zdi2^~5E>*czQo>vI{D7${$$1PUT5NI_nPQ(s*XNrQ#t-1dS6f+#4v6b{YU8jw(PZJ zu0sJ#r9Zlb#}RP3{r-Hx-8N$CqXn%orSe;@3-7>!KfgW`FI z%y~cEf)o0c)6fBAXb2w5&|&Bw2HWV^)xJy=dOG^y1UyXwTN9m6ic&NsPqwsc&ff%w zQpMj5&H$UzPI%U6)Wl(|l*TkYhd}pj_@i;iUqT&Ern~u*z>)d?cfRADFX5+fC`(G8 zCG9z2%h0+g$`!tf)cF^SP9@@a?R=Ji{Yz`fV1IXXeM;#Q)ce*e(!Y z!|4>#>$_Z68MEQK(@G=1uqSKi4u*hBnwO< zVo!Kh2705hjPCWD$Zd((-~SwgL%xZ44D~Ki>bArQzbpCxy1#a{9l`jc_H*I!)$lT$ zD^peun?gSc2dhX$10GqrYBAiW5eA4*A6fKVSK^MkqcH7ylW>DVWPC*v;OszDF-|b$F0sm?4 zA1zyYgXu9c;fvC7q}Ma_IQ90-y@1YP=^TUMHD;IqE=K>qfB)-xK6r;efPq|fY&(XV zH4$BnaQrjT=xZ^M1U5xI;0Dc%g*fDw<7Y4&7Jm-<{Z{-jbn5So1fgw7i$9&dA10qD zI!&o2rR`9Zjv}jZJlXOMggg}aj_CGaAAa+}S@2r}mY88R??wcWEvI+H?y&v+7pvvY z)ZU-<-Hd_mk?6%{0s{F6*tOt6aEY84CPV(^k`#KST*jV8X|YDrSyoClV-0_z!#ls1 zGWlC@3j&Pg{tz{GI06+YGKX#o(=1xKZbCG^%T>!P>CgCgLy_M%Uc#8Jl5=&)`U2!A z__{r2hD)vXYR2_3;KM8p>~(#D5#bxu2auJyQu-?SZV=8T zm?p55td(Jzt`e*ym{#aknyscY|F?+&lBeoL6_(^ zQ)3pB5v6w#Ot*A?P7nF=>opAfmlN7?t~VkZaEBYybnBC%WYTUW_!wcobZ%yKy**05 z9YuXIybbiiyQ1_<;P02=qtW9#pAD42S44Y4Zy-q1pGc6kfi4Egq-YhwcA^0TMasmF z)c_Pw3w;7Jw#+8FR%L=pNJrNdfqo);7G=`pffP|8LHa}Nfx&|{7E45KVt z_-V@Io8F)PN&QzZi88&6r~dWJO)=oFRDF&jA40d`T#gi-hC}`v5xX)6_q7Eh2KV}|8DrT^i7lK>F5l6YCMTF`rAw|ArSp~3_n7OK&u4)p+EfhfA%L^ z{&zekQCDBv?@i{s-k%Xb2eKB}0JsZmWvwHl9nmrcp<+(-is?+eZs$hABKU*h;mfA` zFyNcghv7t*YWx?n{c`Sc9P+KXW}x4ioq-;|j>LieB6Kf!^xGgh^NRhWrlq8XWb_gmZAtcg6OG#~(oLOXmC@;RyKGNM|qE_1Aos+VB4qYsvKs z_3-<^L{j9QenI|xQzDN>i|dYN=nLiv|NFncA?p{IwJ??hkEMMvS@A|5fNOyz{tW>1>PHw)iEsb650Adn%$SH#qK4#O#1^y|TSU^9Hmq|m=h_+!yu zAo|7VDH8u(_Wn;PAIzh_7%F9AS{s21F;(JqwRj#P)qd~ZOqps#Kb$hv3b)`yon$|= zRCDKK4i%A6f1b1j_}}Nh*C0G!!dK&+Kl|B?Of*Q*ZDH1Xx`JhqQr}idqkPShJ%L9# zEyDYdIUlaqBI|coH_~)|O}P@;)<6Qw@hDG|Lj}>d$#ALlfeiP9`?V|^Lsonra5h=- zY4{MZ{{q5CV85e!5ySofY9ZzG%XhFd(Ra#;COqyLGb z#+OYOOo8xR)S=Vi_eb_m!ygab_#cMfUr<>KV?I?si7g*lGe!eCR@dX%)HOw8y@KZQ zcRjigDAt7Y6b2GyAekEb#ziH@{7s1kM41GSO=4p)oGM4RFuDSJ2dDd*aTNQZ+0?a( z#f5pjF-&O^*w40N)f3AohreJnh3GS6;0hed2Agai{F+uncVWO^>DZJxBS$D}u**;#>N_FS~!D)PMi~GXnD$ z6er+Z3H+9oLb6*P#X;y1gncLTLi1Wn=46EZR(U^0M3saugYGvQYmoIRd3_Aj%AqwF zs0UkC_F)Z?$4qDVBfOm}o~;Nb^PV7jViqZFkih&f)2-_LB{l9;2~LBj5gv=+eREoG z%-l~(TO_+KhFisx48242iQrD*5d!dS`>KGncS&FthF1t5gJHiGv>@Cs;n^4{RWx@{ z0{^js8ARicU@oN@OVv+rlDPq7txTt*XO;By6U87qYLWT>3KW$si83`(Z~v|S$q4w{ zD&tTzh_Ee2-lN98;JgW*Q7JtgS>HXGPGJ5H_z^hg%kXJnA2lTpGXIC3kCxy_(i;c1 z^geFguF2<7nlVZA-EblmY`0_QpeR$aQ^-n|cx>2*t&^ic9>%;L_YrZu6ivpMZ!q0TEgM8Xk;s}QTt&%z|Nk;%TcBHdbJ6KTcLN() zGF(FmJS%_W5KI2(`hP>B^!vIdn#*f{GD_QII1Ahfwgx;ArF}AXAP)J;=Ryp7hPH|s zK|7L(0r8)MtUGtZKLL}2o^Iw@Jye4AV}{VlIOi+c$8gRUnFo``q6yLF{hfyLF?}$O zuELnjo(piuGxR+4VbRBs(a;NI3;UsS@HA0P7azt`rRzqR;$gB8F%RKn698{RucV5; zy`@_Gx6_R2qVIuD@B9s7@Z|)MjMJuP0Xl;$Db2)KzlO)IM3w`63`{SA!+%6q$$OAS z|6<}LD9V*=1qQsUmr@RYkMwUwlix2afydX9b1uf~J*8b~I)7Jek1d6c$xsV)%g``9?ZWS) zC!L@Bi0uDtfOpxNmBI*j!DJ1xE=>GJR|Kb_$iJrd9ktIA{}J%_i2q@*zsh?yBPexZ z)VT(-<@5h!vf_{9*ZYz6Pp^d6BE5c}wi6}rYy24~@^^xdL)g<^i4*;j%^|XtU>kBB zc)l8Jb8dYyT5Z4oZ>cVy#Ef=F^u)oG!)L>7sc|v_ zR=-=q|J?_sLl297DCza7`kI*ZUJg&4%CsRkL;QE*L^jx*2u>nJIXV#{GG8+9gi>$1 z3lYedz;0F!Te%{9H~ry@%o@s30FMPzN@TwI@C^=iD*B6XqDVXq;F2EA|0@vot(Ood zO6AZgQyAY82t%(D{VqmCt#Bd6<_b?^X!(Za8Q@0AF2v~^W#V=MZWev`Px{~A#a@Z) ztvWG+(sr;l)N-Ql23y4Qz&*mh@zl(pZmvVg{E67zhGpy`_*aO34+7`~TPZ6DU;rGM z|L0&V#NxtEbdxS0Ht96rDr18FEduW7!zdk+(zC#;g~yV`RqCN#X-t1Ea2WH-T;BDt z0P?Ka;Wt|kl8K;I8-z)m80CaTJdfJ8R&A@Age>0}?4r(z)S#i-KnkWB)c(u={V zU~{^k{)pV=fM1L$anFB!7KFCM3;&CC@zg9$!Y5Gs3@JSyo@~*7$06SfdW5Xxil+>^ z-wVt@*01r;P6BH+Jd@J++F~1m9P#%*f53phK)w~_@W1hJ0#O!Vz*096y1)N=)9t^erqim_6icm@OhrPL)v;O}m~fYLJY z97RKwgDuscVc2g}c1DlSbVWq$3zlP``_(UlOdEe>{%;_4zPg=7or=}HYavi6V{e1~ zyTH$Y{mI5o81TocwomK&#s z)-h}i^&#QaD#{IMu6nRFX)n#_7nKz#_1W__(mSY8&_RY8CA&M$H4CRuj_6;~4fw7< z5&MsXwxiTn!=GcURRX(FrgpIP!8DB3Yjj*gWIhKR58Y?F5=zz~{#*j<6rN9}eKq_d zxGcCQs&q%vy0;4fi~eBh>f^Wvul+kfsYJE{9?QfJlNoZX1B^c(ey@E!4*6ct z=P^TfL5!op|4`(Q%6{d9Pck>*o!@|NL9-0Vp?r9J6KXdi8-#9Ixq@sBfvp+$gU8FU zIf40m09#{gSbA=OzQUjXCL=s5;ZM!5ZnbWNsaF?|V;N@tcJ!4*;hBWrj!+V6i3!eoZ$<3x!TBPm3@TEZW2a#%bkQ$JsB?@Gjehr1;P)`;f- zWSdpW6XEyYh(0k=?`ZiRpoc;)TVMgoiKbSQ%vsbpkrP(qGz|Dv@j`ffzwg?ZA-Wsb zZ{5EpvSAtSp3LNf9t&(bI{hI>CQa)7)P&Q;!4uK+K9AQaGCYISr3z0YD`6@6hzR@* z_=|DKN6JwsO^3(I)PX}j|G!1AWJymaW%6ykZ;3uz{6Pf<{1M4k7|xTxT44WH#LpP+ zYKa=C#?gH7RFmEUutm8e^dixJhVFaDOL3xD^yPHEFVAC`{vsc60L z#|eK+;Svmc^s7j>H_>HW8|j@Zo~LlA5o{T{0v_LbnE_8T z^vL@^I}x$(;p~d1ehYRDDT-r^nsA6{{0EAUM^P_yYtpO1{+4_im+5vH-jC+>3GGVs z_{yi7GIhaYvRxcOw*;z5ORr8`i`V`Ow-;f!Pdxi0T&s<$BzRUrx3L}vy-W_>L@<8u za0)v8U5~ZG|E&Qp0k4kQ3PQW^e#fv3FTracPTx=tf5qlD(lr8)W#VEoJjMiHRg>tm#i7^O`Hy`(EMM_hqx8dw2VPfJlLA(M$+rA-+hQuUrrS= z_sEusemb~Z_y+s_uU|YaLy@Ot zBNSDL>2f0QOX>#Z#FA*4UZOO9*{xu9^X;{asbmFNbM7ANp-rQB9DUQQ+RsHc`i@}` z3cZ7|)`Y0i{ZZr#hr2OWr7Kk>iZXRKlZ!(>hp!#efECaiW#BSO>BDbb=suzS1@^V% z&Nx(MzyCP~Pah?v)$%$OCvsTN8~s5H_>T5wIOKm|;4b)6amb?FoXmNKHl?n$=&{-_ zvx!JLcSNUW`rI(K)GNVL81OB%eaS=v0%rI*aHH@HqVWYqH9gTJ1MNiP?|iNS`+eQc z@O#5{fvc6djF>V#Fo~?M(EiU%KKLH(4n)uoML!-zu5>*7 z{%bhjq9>W3Ub7NZLHFr=gr@VW;ux|Xxe{VObo;$by^3;DOf4sZz4lk2w3R!XG4O9k zUHjz3OQhGw{Q`Qzf5LeISs77{`!Vb8AUemEt7Xqx>8Dyp!P#@XgmU| z!8XsIj6F+1g;V@YmcSVt}cHSiuzNvIQ5vR*QF&7*ENzQ|C$nOv9;P*dLdMeoecI3S@ za^@?{|7Kt!PWXC$l!$XsYN{oX5;V4pwEvEP5oQ}oXgjX$Nj5@V$@_8SI#-989Uk$!M~Hyi7cts@G*^F0-v zz6o_Pj+UXvO7IRm`QJu=y74#Y_B*hV{hwAoWT<9sq@@A@%gQb|Q7tEOG3GlX_0VfX zf0Ae#)o3q~_7XXC9?{prV}=i+H2%jcj^{0zddb#LXZ<}_ACeLFmFwvU%oqKJFmt#% zc1sqe4Whq|6OE3^P=ogP?xpkn#g$xg-vp02aWam&bI%fRON7q&+XKViT=P)mcPH&g z`Q7e^bZnaxJz|rR4DWz3->N?Xr-yaD2s2Okw;(?t6WPkjp2+%CeFn`~8{8jlkV_Em zl+u-W*R7OZi{UQl)=-PLfc|5&e)nOZ7rK=xo2(2-wub%)Yo+ugdR9WW==ZQDO^(`H zL?-;+GT0QRK^fSCl#WPI81L2yZ^_tgkVD78KPsi)p~#2X-(=C1-hnZ{qe>=2z5&^f zY}~6+C!WU9xE8Jdrw~EBP84t=5o}&pOd&-|-2+6N4Ba9=8^i92wV6$bLO+WCh*$d%Xc#AN7`7@oNB ze@pByai~~J^#)4mUqsr1Ob_w%tu`s0Lb-$VyQ1}27p4AK39I+^*yFTr=Br$sj~rO>?u6aO1!LFgPhzfi)p81p&cX_)-$_s7GtT2tw6 zG*OWzJ-u=PqRk(Eo&Pdu9OXTjC*SBU3)GEtz69*V6rd;i~3@e%2*5>pu`{J!pR z=ry8;p!@o60PJ)49YkLz!`t9Qy>Kap{fd`Gy}gGHm_j3KwjC41)T|0c{;OwMG)p>{ zON(qf=)O8SluY>7X=-9-%(WP1{*uC>Rt^o9FJEYbKMs=1a-bcsF|!=9nT=^I}gUP;q+ z!(+4OG3e zEryenx)dVLyFVK7rPRI<=PVOHlA%(trSvd!LQlAkL#f}IjiRSX6U*Z`=gYDaaVU}3 zI4t_*=&4Zjf5U%dt~`1K!~WjK7BE%G@D-%7PKM7Xjq|~#s2rtT%Fwk$-}GRVzOH3! z`Go9*cXl4z{`$Dkq40h{1e@@0`+`5uO4xI)-q3=avlDi;f2+?qx&bBQf zkB?zHh|iSjU-f-_9vcz+?VN;D{uSGt880V>ZCgHP#eB}<^VEpg^_2-njCE^QLbe1? zSn$8fggyTyZ_5*iqae30*z??kTgJu{N+BOD*J&K_3%)ovVau(Y{5qt~IWns`C005u zqBwrR_U9#RKh4Rzlgeb%AhuihY{~M^Pw?5Ii(hcfc?sKCq1(?(*u(xEJ}*-E|^6XPjNiX@es$I9Jg`Y#Bm+R)f}}PH5^qO=Wvv99K%t_aUjQ@9621bIHq&# zz_BgI795*#jOR$;SdU{Zju6Km9pgg3bd2MVPXktSe9f_nV}Rpzj+Z!|;ppI4%5gtO z3&#?Ug&YkWH*j3bQO9vH#|0df9J4u2;W&=tV2=GbayfS6n8mRZ$JQKEJF@T+Fp(pH zV=a!qmW>Pj&N0F<%<&z^7aSjRe8BPMvgH+*CCnTX9NIN5l+Cd<#{`Zs9D`4d3q8hh z8^;wKb2v`mIEW*gV=InLIL2^%@gz}lEZ~^(__)yZ{2Opoa+Gi!z%hek5=T78Z%>R1 zeb4a$$E#0}x>i6v$3+~cbC{AN`FCHAZ8*kp{L(ot^btod$DljOX|cx%WAqeLQPiXc?e|V;;xZ9LIC)&#^1Vb{u9T zk>f84{vF3lk1go0O*m?7<8x$8eZ4FHHZIuh@`TMd%^hPM%{QMu2{$C1Gp239H8&(YH8$r>8jq9L zpxH)b&VnOuOqeyr$^Fa-%oQR3d=%5rrV+LWZ%kM`=FH{$&ri58d97at7j(BI+#J+= z$ynpGtrBgv^v{>`d9#?$^Y}b9=JTz5p2_E3nW9~0AvBvP{qqt&ZyWR3<_vx%^WXC= zW0<>Q33fS%Rq!02w~i6$ bool { match (self, other_action) { (Action::NewTab(..), Action::NewTab(..)) => true, + (Action::LaunchOrFocusPlugin(..), Action::LaunchOrFocusPlugin(..)) => true, _ => self == other_action, } } diff --git a/zellij-utils/src/input/layout.rs b/zellij-utils/src/input/layout.rs index 39d208e8..bd0396a1 100644 --- a/zellij-utils/src/input/layout.rs +++ b/zellij-utils/src/input/layout.rs @@ -207,7 +207,7 @@ impl Run { } } -#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, Hash)] +#[derive(Debug, Serialize, Deserialize, Clone, PartialEq, Eq, Hash, Default)] pub struct RunPlugin { #[serde(default)] pub _allow_exec_host_cmd: bool, @@ -215,6 +215,16 @@ pub struct RunPlugin { pub configuration: PluginUserConfiguration, } +impl RunPlugin { + pub fn from_url(url: &str) -> Result { + let location = RunPluginLocation::parse(url, None)?; + Ok(RunPlugin { + location, + ..Default::default() + }) + } +} + #[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Hash)] pub struct PluginUserConfiguration(BTreeMap); @@ -249,6 +259,12 @@ pub enum RunPluginLocation { Zellij(PluginTag), } +impl Default for RunPluginLocation { + fn default() -> Self { + RunPluginLocation::File(Default::default()) + } +} + impl RunPluginLocation { pub fn parse(location: &str, cwd: Option) -> Result { let url = Url::parse(location)?;