From 40138e7f2e50008f30f18fa07d56bbb1dc067447 Mon Sep 17 00:00:00 2001 From: Markus Hofknecht Date: Mon, 4 May 2020 19:43:47 +0200 Subject: [PATCH] #49, #55, #56, version 0.9.2.25 --- Business/KeyboardInput.cs | 31 +- Business/Program.cs | 2 +- Business/SystemTrayMenu.cs | 10 +- Config/Config.cs | 7 +- Config/MenuDefines.cs | 2 - Helpers/KeyboardHook.cs | 34 +- Properties/AssemblyInfo.cs | 4 +- Resources/lang.Designer.cs | 93 +- Resources/lang.de-DE.resx | 39 +- Resources/lang.resx | 39 +- SystemTrayMenu.csproj | 17 +- UserInterface/AboutBox.cs | 6 +- UserInterface/AppContextMenu.cs | 378 ++-- UserInterface/AppNotifyIcon.cs | 6 - UserInterface/AskHotKeyForm.Designer.cs | 139 -- UserInterface/AskHotKeyForm.cs | 123 -- UserInterface/AskHotKeyForm.resx | 377 ---- UserInterface/Controls/HotkeyControl.cs | 691 +++++++ UserInterface/Menu.cs | 4 +- UserInterface/SettingsForm.Designer.cs | 413 +++++ UserInterface/SettingsForm.cs | 372 ++++ UserInterface/SettingsForm.resx | 2145 ++++++++++++++++++++++ Utilities/File/IconReader.cs | 13 +- Utilities/{Language.cs => Translator.cs} | 23 +- app.config | 10 - 25 files changed, 4038 insertions(+), 940 deletions(-) delete mode 100644 UserInterface/AskHotKeyForm.Designer.cs delete mode 100644 UserInterface/AskHotKeyForm.cs delete mode 100644 UserInterface/AskHotKeyForm.resx create mode 100644 UserInterface/Controls/HotkeyControl.cs create mode 100644 UserInterface/SettingsForm.Designer.cs create mode 100644 UserInterface/SettingsForm.cs create mode 100644 UserInterface/SettingsForm.resx rename Utilities/{Language.cs => Translator.cs} (57%) diff --git a/Business/KeyboardInput.cs b/Business/KeyboardInput.cs index 13563e1..52d4706 100644 --- a/Business/KeyboardInput.cs +++ b/Business/KeyboardInput.cs @@ -4,6 +4,8 @@ using System.Linq; using System.Windows.Forms; using SystemTrayMenu.DataClasses; using SystemTrayMenu.Helper; +using SystemTrayMenu.UserInterface; +using SystemTrayMenu.UserInterface.Controls; using SystemTrayMenu.Utilities; using Menu = SystemTrayMenu.UserInterface.Menu; @@ -52,15 +54,9 @@ namespace SystemTrayMenu.Handler { if (!string.IsNullOrEmpty(Properties.Settings.Default.HotKey)) { - KeysConverter cvt = new KeysConverter(); - Keys key = (Keys)cvt.ConvertFrom( - Properties.Settings.Default.HotKey); try { - hook.RegisterHotKey( - KeyboardHookModifierKeys.Control | - KeyboardHookModifierKeys.Alt, - key); + hook.RegisterHotKey(Properties.Settings.Default.HotKey); hook.KeyPressed += hook_KeyPressed; void hook_KeyPressed(object sender, KeyPressedEventArgs e) { @@ -69,7 +65,7 @@ namespace SystemTrayMenu.Handler } catch (InvalidOperationException ex) { - Log.Error($"key:'{key}'", ex); + //Log.Error($"key:'{key}'", ex); Properties.Settings.Default.HotKey = string.Empty; Properties.Settings.Default.Save(); MessageBox.Show(ex.Message); @@ -204,7 +200,7 @@ namespace SystemTrayMenu.Handler SelectMatchedReverse(dgv, dgv.Rows.Count - 1)) { RowDeselected(iMenuBefore, iRowBefore, dgvBefore); - RowSelected(dgv, iRowKey); + SelectRow(dgv, iRowKey); toClear = true; } break; @@ -213,7 +209,7 @@ namespace SystemTrayMenu.Handler SelectMatched(dgv, 0)) { RowDeselected(iMenuBefore, iRowBefore, dgvBefore); - RowSelected(dgv, iRowKey); + SelectRow(dgv, iRowKey); toClear = true; } break; @@ -234,7 +230,7 @@ namespace SystemTrayMenu.Handler { RowDeselected(iMenuBefore, iRowBefore, dgvBefore); - RowSelected(dgv, iRowKey); + SelectRow(dgv, iRowKey); toClear = true; } } @@ -251,7 +247,7 @@ namespace SystemTrayMenu.Handler SelectMatched(dgv, 0)) { RowDeselected(iMenuBefore, iRowBefore, dgvBefore); - RowSelected(dgv, iRowKey); + SelectRow(dgv, iRowKey); toClear = true; } } @@ -270,7 +266,7 @@ namespace SystemTrayMenu.Handler SelectMatched(dgv, 0)) { RowDeselected(iMenuBefore, iRowBefore, dgvBefore); - RowSelected(dgv, iRowKey); + SelectRow(dgv, iRowKey); toClear = true; } } @@ -298,7 +294,7 @@ namespace SystemTrayMenu.Handler SelectMatched(dgv, 0, keyInput)) { RowDeselected(iMenuBefore, iRowBefore, null); - RowSelected(dgv, iRowKey); + SelectRow(dgv, iRowKey); toClear = true; } else if (isStillSelected) @@ -308,7 +304,7 @@ namespace SystemTrayMenu.Handler SelectMatched(dgv, 0, keyInput)) { RowDeselected(iMenuBefore, iRowBefore, null); - RowSelected(dgv, iRowKey); + SelectRow(dgv, iRowKey); } else { @@ -322,7 +318,12 @@ namespace SystemTrayMenu.Handler { ClearIsSelectedByKey(iMenuBefore, iRowBefore); } + } + private void SelectRow(DataGridView dgv, int iRowKey) + { + InUse = true; + RowSelected(dgv, iRowKey); } private bool SelectMatched(DataGridView dgv, diff --git a/Business/Program.cs b/Business/Program.cs index 764cae3..93872d5 100644 --- a/Business/Program.cs +++ b/Business/Program.cs @@ -15,7 +15,7 @@ namespace SystemTrayMenu { Log.Initialize(); SingleAppInstance.Initialize(); - Language.Initialize(); + Translator.Initialize(); Config.UpgradeIfNotUpgraded(); if (Config.LoadOrSetByUser()) diff --git a/Business/SystemTrayMenu.cs b/Business/SystemTrayMenu.cs index 7c28043..5b3ae0a 100644 --- a/Business/SystemTrayMenu.cs +++ b/Business/SystemTrayMenu.cs @@ -2,6 +2,7 @@ using System; using System.Windows.Forms; using SystemTrayMenu.Business; +using SystemTrayMenu.Helpers.Hotkey; using SystemTrayMenu.UserInterface; using SystemTrayMenu.Utilities; @@ -23,15 +24,6 @@ namespace SystemTrayMenu menuNotifyIcon.Click += MenuNotifyIcon_Click; void MenuNotifyIcon_Click() => menus.SwitchOpenClose(true); menuNotifyIcon.OpenLog += Log.OpenLogFile; - menuNotifyIcon.ChangeFolder += ChangeFolder; - void ChangeFolder() - { - if (Config.SetFolderByUser()) - { - AppRestart.ByConfigChange(); - } - } - menus.MainPreload(); } diff --git a/Config/Config.cs b/Config/Config.cs index 326429f..bc7f7cd 100644 --- a/Config/Config.cs +++ b/Config/Config.cs @@ -41,7 +41,7 @@ namespace SystemTrayMenu return pathOK; } - public static bool SetFolderByUser() + public static bool SetFolderByUser(bool save = true) { bool pathOK = false; bool userAborted = false; @@ -59,7 +59,10 @@ namespace SystemTrayMenu pathOK = true; Properties.Settings.Default.PathDirectory = dialog.FileName; - Properties.Settings.Default.Save(); + if (save) + { + Properties.Settings.Default.Save(); + } } } else diff --git a/Config/MenuDefines.cs b/Config/MenuDefines.cs index b3006ed..74bf689 100644 --- a/Config/MenuDefines.cs +++ b/Config/MenuDefines.cs @@ -7,8 +7,6 @@ namespace SystemTrayMenu internal static class MenuDefines { internal static string NotifyIconText = Assembly.GetExecutingAssembly().GetCustomAttribute().Title; - internal static readonly List Languages = - new List() { "en", "de" }; internal static readonly Color File = Color.White; internal static readonly Color Folder = Color.White; internal static readonly Color ColorSelectedItem = AppColors.Blue; diff --git a/Helpers/KeyboardHook.cs b/Helpers/KeyboardHook.cs index 4969d6f..533a449 100644 --- a/Helpers/KeyboardHook.cs +++ b/Helpers/KeyboardHook.cs @@ -1,5 +1,6 @@ using System; using System.Windows.Forms; +using SystemTrayMenu.UserInterface.Controls; using SystemTrayMenu.Utilities; namespace SystemTrayMenu.Helper @@ -76,11 +77,41 @@ namespace SystemTrayMenu.Helper RegisterHotKey(keyModifiersNone, key); } + internal void RegisterHotKey(string hotKeyString) + { + KeyboardHookModifierKeys modifiers = KeyboardHookModifierKeys.None; + string modifiersString = Properties.Settings.Default.HotKey; + if (!string.IsNullOrEmpty(modifiersString)) + { + if (modifiersString.ToLower().Contains("alt")) + { + modifiers |= KeyboardHookModifierKeys.Alt; + } + if (modifiersString.ToLower().Contains("ctrl")) + { + modifiers |= KeyboardHookModifierKeys.Control; + } + if (modifiersString.ToLower().Contains("shift")) + { + modifiers |= KeyboardHookModifierKeys.Shift; + } + if (modifiersString.ToLower().Contains("win")) + { + modifiers |= KeyboardHookModifierKeys.Win; + } + } + + RegisterHotKey(modifiers, + HotkeyControl.HotkeyFromString( + Properties.Settings.Default.HotKey)); + } + /// /// Registers a hot key in the system. /// /// The modifiers that are associated with the hot key. /// The key itself that is associated with the hot key. + //internal void RegisterHotKey(KeyboardHookModifierKeys modifier, Keys key) internal void RegisterHotKey(KeyboardHookModifierKeys modifier, Keys key) { RegisterHotKey((uint)modifier, key); @@ -94,7 +125,7 @@ namespace SystemTrayMenu.Helper _window.Handle, _currentId, modifier, (uint)key)) { throw new InvalidOperationException( - Language.Translate("Could not register the hot key.")); + Translator.GetText("Could not register the hot key.")); } } @@ -145,6 +176,7 @@ namespace SystemTrayMenu.Helper [Flags] internal enum KeyboardHookModifierKeys : uint { + None = 0, Alt = 1, Control = 2, Shift = 4, diff --git a/Properties/AssemblyInfo.cs b/Properties/AssemblyInfo.cs index 4fe23e8..9e6c5f6 100644 --- a/Properties/AssemblyInfo.cs +++ b/Properties/AssemblyInfo.cs @@ -35,5 +35,5 @@ using System.Runtime.InteropServices; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("0.9.2.24")] -[assembly: AssemblyFileVersion("0.9.2.24")] +[assembly: AssemblyVersion("0.9.2.25")] +[assembly: AssemblyFileVersion("0.9.2.25")] diff --git a/Resources/lang.Designer.cs b/Resources/lang.Designer.cs index 825a94a..923d635 100644 --- a/Resources/lang.Designer.cs +++ b/Resources/lang.Designer.cs @@ -60,15 +60,6 @@ namespace SystemTrayMenu.Resources { } } - /// - /// Looks up a localized string similar to (e.g. F10). - /// - internal static string _e_g__F10_ { - get { - return ResourceManager.GetString("(e.g. F10)", resourceCulture); - } - } - /// /// Looks up a localized string similar to About. /// @@ -78,24 +69,6 @@ namespace SystemTrayMenu.Resources { } } - /// - /// Looks up a localized string similar to Activate autostart. - /// - internal static string Activate_autostart { - get { - return ResourceManager.GetString("Activate autostart", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ALT. - /// - internal static string ALT { - get { - return ResourceManager.GetString("ALT", resourceCulture); - } - } - /// /// Looks up a localized string similar to Autostart. /// @@ -105,6 +78,15 @@ namespace SystemTrayMenu.Resources { } } + /// + /// Looks up a localized string similar to Cancel. + /// + internal static string buttonCancel { + get { + return ResourceManager.GetString("buttonCancel", resourceCulture); + } + } + /// /// Looks up a localized string similar to Details. /// @@ -141,24 +123,6 @@ namespace SystemTrayMenu.Resources { } } - /// - /// Looks up a localized string similar to CTRL. - /// - internal static string CTRL { - get { - return ResourceManager.GetString("CTRL", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to English. - /// - internal static string English { - get { - return ResourceManager.GetString("English", resourceCulture); - } - } - /// /// Looks up a localized string similar to Exit. /// @@ -195,6 +159,15 @@ namespace SystemTrayMenu.Resources { } } + /// + /// Looks up a localized string similar to General. + /// + internal static string General { + get { + return ResourceManager.GetString("General", resourceCulture); + } + } + /// /// Looks up a localized string similar to Deutsch. /// @@ -205,20 +178,11 @@ namespace SystemTrayMenu.Resources { } /// - /// Looks up a localized string similar to Move the NotifyIcon per DragDrop from the SystemTray into the Taskbar. + /// Looks up a localized string similar to Hotkey. /// - internal static string HintDragDropText { + internal static string Hotkey { get { - return ResourceManager.GetString("HintDragDropText", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to SystemTrayMenu - Hint. - /// - internal static string HintDragDropTitle { - get { - return ResourceManager.GetString("HintDragDropTitle", resourceCulture); + return ResourceManager.GetString("Hotkey", resourceCulture); } } @@ -231,6 +195,15 @@ namespace SystemTrayMenu.Resources { } } + /// + /// Looks up a localized string similar to Launch on startup. + /// + internal static string Launch_on_startup { + get { + return ResourceManager.GetString("Launch on startup", resourceCulture); + } + } + /// /// Looks up a localized string similar to Log File. /// @@ -250,11 +223,11 @@ namespace SystemTrayMenu.Resources { } /// - /// Looks up a localized string similar to Shortcut key. + /// Looks up a localized string similar to Settings. /// - internal static string Shortcut_key { + internal static string Settings { get { - return ResourceManager.GetString("Shortcut key", resourceCulture); + return ResourceManager.GetString("Settings", resourceCulture); } } } diff --git a/Resources/lang.de-DE.resx b/Resources/lang.de-DE.resx index 2893d49..5f5804e 100644 --- a/Resources/lang.de-DE.resx +++ b/Resources/lang.de-DE.resx @@ -120,9 +120,6 @@ Über - - Autostart aktivieren - OK @@ -138,18 +135,6 @@ Ordner leer - - ALT - - - STRG - - - English - - - (z.B. F10) - Details @@ -162,12 +147,6 @@ Deutsch - - Ziehe das Notify-Icon per DragDrop vom SystemTray in die Taskleiste - - - SystemTrayMenu - Hinweis - Sprache @@ -177,10 +156,22 @@ Neustart - - Tastenkombination - Der Tastenkürzel konnte nicht registriert werden. + + Abbrechen + + + Allgemein + + + Tastenkombination + + + Mit Windows starten + + + Einstellungen + \ No newline at end of file diff --git a/Resources/lang.resx b/Resources/lang.resx index d20f883..21be56c 100644 --- a/Resources/lang.resx +++ b/Resources/lang.resx @@ -120,18 +120,12 @@ About - - Activate autostart - OK Autostart - - English - Exit @@ -141,15 +135,6 @@ Folder empty - - ALT - - - CTRL - - - (e.g. F10) - Details @@ -162,12 +147,6 @@ Deutsch - - Move the NotifyIcon per DragDrop from the SystemTray into the Taskbar - - - SystemTrayMenu - Hint - Language @@ -177,10 +156,22 @@ Restart - - Shortcut key - Couldn’t register the hot key. + + Cancel + + + General + + + Hotkey + + + Launch on startup + + + Settings + \ No newline at end of file diff --git a/SystemTrayMenu.csproj b/SystemTrayMenu.csproj index cf7e6d0..c5aa418 100644 --- a/SystemTrayMenu.csproj +++ b/SystemTrayMenu.csproj @@ -117,6 +117,8 @@ AnyCPU bin\x64\ + + False @@ -157,11 +159,14 @@ AboutBox.cs - + + Component + + Form - - AskHotKeyForm.cs + + SettingsForm.cs @@ -180,7 +185,7 @@ - + @@ -230,8 +235,8 @@ AboutBox.cs - - AskHotKeyForm.cs + + SettingsForm.cs Menu.cs diff --git a/UserInterface/AboutBox.cs b/UserInterface/AboutBox.cs index d2e970b..32555fc 100644 --- a/UserInterface/AboutBox.cs +++ b/UserInterface/AboutBox.cs @@ -26,9 +26,9 @@ namespace SystemTrayMenu.UserInterface public AboutBox() { InitializeComponent(); - buttonOk.Text = Language.Translate("buttonOk"); - buttonDetails.Text = Language.Translate("buttonDetails"); - buttonSystemInfo.Text = Language.Translate("buttonSystemInfo"); + buttonOk.Text = Translator.GetText("buttonOk"); + buttonDetails.Text = Translator.GetText("buttonDetails"); + buttonSystemInfo.Text = Translator.GetText("buttonSystemInfo"); } private bool _IsPainted = false; diff --git a/UserInterface/AppContextMenu.cs b/UserInterface/AppContextMenu.cs index d29dafa..69b8070 100644 --- a/UserInterface/AppContextMenu.cs +++ b/UserInterface/AppContextMenu.cs @@ -7,6 +7,8 @@ using System.Drawing.Imaging; using System.Globalization; using System.Linq; using System.Reflection; +using System.Runtime.InteropServices; +using System.Text; using System.Windows.Forms; using SystemTrayMenu.UserInterface; using SystemTrayMenu.Utilities; @@ -15,134 +17,85 @@ namespace SystemTrayMenu.Helper { internal class AppContextMenu { - public event EventHandlerEmpty ClickedChangeFolder; public event EventHandlerEmpty ClickedOpenLog; public event EventHandlerEmpty ClickedRestart; public event EventHandlerEmpty ClickedExit; + // ArrayLists used to enforce the use of proper modifiers. + // Shift+A isn't a valid hotkey, for instance, as it would screw up when the user is typing. + private readonly IList _needNonShiftModifier = new List(); + private readonly IList _needNonAltGrModifier = new List(); + + /// + /// Populates the ArrayLists specifying disallowed hotkeys + /// such as Shift+A, Ctrl+Alt+4 (would produce a dollar sign) etc + /// + private void PopulateModifierLists() + { + // Shift + 0 - 9, A - Z + for (Keys k = Keys.D0; k <= Keys.Z; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Shift + Numpad keys + for (Keys k = Keys.NumPad0; k <= Keys.NumPad9; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Shift + Misc (,;<./ etc) + for (Keys k = Keys.Oem1; k <= Keys.OemBackslash; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Shift + Space, PgUp, PgDn, End, Home + for (Keys k = Keys.Space; k <= Keys.Home; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Misc keys that we can't loop through + _needNonShiftModifier.Add((int)Keys.Insert); + _needNonShiftModifier.Add((int)Keys.Help); + _needNonShiftModifier.Add((int)Keys.Multiply); + _needNonShiftModifier.Add((int)Keys.Add); + _needNonShiftModifier.Add((int)Keys.Subtract); + _needNonShiftModifier.Add((int)Keys.Divide); + _needNonShiftModifier.Add((int)Keys.Decimal); + _needNonShiftModifier.Add((int)Keys.Return); + _needNonShiftModifier.Add((int)Keys.Escape); + _needNonShiftModifier.Add((int)Keys.NumLock); + + // Ctrl+Alt + 0 - 9 + for (Keys k = Keys.D0; k <= Keys.D9; k++) + { + _needNonAltGrModifier.Add((int)k); + } + } public ContextMenuStrip Create() { ContextMenuStrip menu = new ContextMenuStrip { BackColor = SystemColors.Control }; - ToolStripMenuItem changeFolder = new ToolStripMenuItem + + ToolStripMenuItem settings = new ToolStripMenuItem() { - Text = Language.Translate("Folder") + ImageScaling = ToolStripItemImageScaling.SizeToFit, + Text = Translator.GetText("Settings") }; - changeFolder.Click += ChangeFolder_Click; - void ChangeFolder_Click(object sender, EventArgs e) + settings.Click += Settings_Click; + void Settings_Click(object sender, EventArgs e) { - ClickedChangeFolder.Invoke(); - } - menu.Items.Add(changeFolder); - - ToolStripMenuItem changeLanguage = new ToolStripMenuItem() - { - Name = "changeLanguage", - Text = Language.Translate("Language") - }; - foreach (CultureInfo cultureInfo in - GetCultureList(CultureTypes.AllCultures)) - { - if (MenuDefines.Languages.Contains(cultureInfo.Name)) + SettingsForm settingsForm = new SettingsForm(); + if (settingsForm.ShowDialog() == DialogResult.OK) { - ToolStripItem language = changeLanguage.DropDownItems. - Add(Language.Translate(cultureInfo.EnglishName)); - language.Click += Language_Click; - void Language_Click(object sender, EventArgs e) - { - string twoLetter = cultureInfo.Name.Substring(0, 2); - Properties.Settings.Default.CurrentCultureInfoName = - twoLetter; - Properties.Settings.Default.Save(); - ClickedRestart.Invoke(); - } - if (cultureInfo.Name == Properties.Settings.Default. - CurrentCultureInfoName) - { - language.Image = Properties.Resources.Selected; - language.ImageScaling = ToolStripItemImageScaling.None; - language.Image = ResizeImage(language.Image); - } + AppRestart.ByConfigChange(); } } - menu.Items.Add(changeLanguage); - - ToolStripMenuItem autostart = new ToolStripMenuItem - { - Text = Language.Translate("Autostart") - }; - //autostart.Image.HorizontalResolution.wi.c.sc.Select .ImageScaling = ToolStripItemImageScaling.None; - if (Properties.Settings.Default.IsAutostartActivated) - { - autostart.Image = Properties.Resources.Selected; - } - else - { - autostart.Image = Properties.Resources.NotSelected; - } - autostart.ImageScaling = ToolStripItemImageScaling.None; - autostart.Image = ResizeImage(autostart.Image); - autostart.Click += Autostart_Click; - void Autostart_Click(object sender, EventArgs e) - { - if (Properties.Settings.Default.IsAutostartActivated) - { - Microsoft.Win32.RegistryKey key = - Microsoft.Win32.Registry.CurrentUser.OpenSubKey( - @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", - true); - key.DeleteValue("SystemTrayMenu", false); - Properties.Settings.Default.IsAutostartActivated = false; - } - else - { - Microsoft.Win32.RegistryKey key = - Microsoft.Win32.Registry.CurrentUser.OpenSubKey( - @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", - true); - key.SetValue( - Assembly.GetExecutingAssembly().GetName().Name, - Assembly.GetEntryAssembly().Location); - Properties.Settings.Default.IsAutostartActivated = true; - } - Properties.Settings.Default.Save(); - ClickedRestart.Invoke(); - } - menu.Items.Add(autostart); - - ToolStripMenuItem hotKey = new ToolStripMenuItem(); - string hotKeyText = - $"{Language.Translate("CTRL")} + " + - $"{Language.Translate("ALT")} + "; - - hotKey.ImageScaling = ToolStripItemImageScaling.SizeToFit; - if (string.IsNullOrEmpty(Properties.Settings.Default.HotKey)) - { - hotKey.Image = Properties.Resources.NotSelected; - hotKey.Text = hotKeyText + "? "; - } - else - { - hotKey.Image = Properties.Resources.Selected; - hotKey.Text = hotKeyText + - $"{Properties.Settings.Default.HotKey}"; - } - hotKey.ImageScaling = ToolStripItemImageScaling.None; - hotKey.Image = ResizeImage(hotKey.Image); - hotKey.Click += HotKey_Click; - void HotKey_Click(object sender, EventArgs e) - { - AskHotKeyForm askHotKey = new AskHotKeyForm(); - if (askHotKey.ShowDialog() == DialogResult.OK) - { - Properties.Settings.Default.HotKey = askHotKey.NewHotKey; - Properties.Settings.Default.Save(); - ClickedRestart?.Invoke(); - } - } - menu.Items.Add(hotKey); + menu.Items.Add(settings); ToolStripSeparator seperator = new ToolStripSeparator { @@ -152,7 +105,7 @@ namespace SystemTrayMenu.Helper ToolStripMenuItem openLog = new ToolStripMenuItem { - Text = Language.Translate("Log File") + Text = Translator.GetText("Log File") }; openLog.Click += OpenLog_Click; void OpenLog_Click(object sender, EventArgs e) @@ -165,7 +118,7 @@ namespace SystemTrayMenu.Helper ToolStripMenuItem about = new ToolStripMenuItem { - Text = Language.Translate("About") + Text = Translator.GetText("About") }; about.Click += About_Click; void About_Click(object sender, EventArgs e) @@ -201,7 +154,7 @@ namespace SystemTrayMenu.Helper ToolStripMenuItem restart = new ToolStripMenuItem { - Text = Language.Translate("Restart") + Text = Translator.GetText("Restart") }; restart.Click += Restart_Click; void Restart_Click(object sender, EventArgs e) @@ -212,7 +165,7 @@ namespace SystemTrayMenu.Helper ToolStripMenuItem exit = new ToolStripMenuItem { - Text = Language.Translate("Exit") + Text = Translator.GetText("Exit") }; exit.Click += Exit_Click; void Exit_Click(object sender, EventArgs e) @@ -224,6 +177,199 @@ namespace SystemTrayMenu.Helper return menu; } +#warning verify if we need this + private Keys GetModfiersForHotkey(Keys hotkey) + { + PopulateModifierLists(); + Keys _modifiers = Keys.None; + + string Text = string.Empty; + bool bCalledProgramatically = false; + + // No hotkey set + if (hotkey == Keys.None) + { + Text = ""; + return Keys.None; + } + + // LWin/RWin doesn't work as hotkeys (neither do they work as modifier keys in .NET 2.0) + if (hotkey == Keys.LWin || hotkey == Keys.RWin) + { + Text = ""; + return Keys.None; + } + + // Only validate input if it comes from the user + if (bCalledProgramatically == false) + { + // No modifier or shift only, AND a hotkey that needs another modifier + if ((_modifiers == Keys.Shift || _modifiers == Keys.None) && _needNonShiftModifier.Contains((int)hotkey)) + { + if (_modifiers == Keys.None) + { + // Set Ctrl+Alt as the modifier unless Ctrl+Alt+ won't work... + if (_needNonAltGrModifier.Contains((int)hotkey) == false) + { + _modifiers = Keys.Alt | Keys.Control; + } + else + { + // ... in that case, use Shift+Alt instead. + _modifiers = Keys.Alt | Keys.Shift; + } + } + else + { + // User pressed Shift and an invalid key (e.g. a letter or a number), + // that needs another set of modifier keys + hotkey = Keys.None; + Text = ""; + return Keys.None; + } + } + // Check all Ctrl+Alt keys + if ((_modifiers == (Keys.Alt | Keys.Control)) && _needNonAltGrModifier.Contains((int)hotkey)) + { + // Ctrl+Alt+4 etc won't work; reset hotkey and tell the user + hotkey = Keys.None; + Text = ""; + return Keys.None; + } + } + + // I have no idea why this is needed, but it is. Without this code, pressing only Ctrl + // will show up as "Control + ControlKey", etc. + if (hotkey == Keys.Menu /* Alt */ || hotkey == Keys.ShiftKey || hotkey == Keys.ControlKey) + { + hotkey = Keys.None; + } + + return _modifiers; + //Text = HotkeyToLocalizedString(_modifiers, _hotkey); + } + + public static string HotkeyToLocalizedString(Keys modifierKeyCode, Keys virtualKeyCode) + { + return HotkeyModifiersToLocalizedString(modifierKeyCode) + GetKeyName(virtualKeyCode); + } + public static string HotkeyModifiersToLocalizedString(Keys modifierKeyCode) + { + StringBuilder hotkeyString = new StringBuilder(); + if ((modifierKeyCode & Keys.Alt) > 0) + { + hotkeyString.Append(GetKeyName(Keys.Alt)).Append(" + "); + } + if ((modifierKeyCode & Keys.Control) > 0) + { + hotkeyString.Append(GetKeyName(Keys.Control)).Append(" + "); + } + if ((modifierKeyCode & Keys.Shift) > 0) + { + hotkeyString.Append(GetKeyName(Keys.Shift)).Append(" + "); + } + if (modifierKeyCode == Keys.LWin || modifierKeyCode == Keys.RWin) + { + hotkeyString.Append("Win").Append(" + "); + } + return hotkeyString.ToString(); + } + + private enum MapType : uint + { + MAPVK_VK_TO_VSC = 0, //The uCode parameter is a virtual-key code and is translated into a scan code. If it is a virtual-key code that does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If there is no translation, the function returns 0. + MAPVK_VSC_TO_VK = 1, //The uCode parameter is a scan code and is translated into a virtual-key code that does not distinguish between left- and right-hand keys. If there is no translation, the function returns 0. + MAPVK_VK_TO_CHAR = 2, //The uCode parameter is a virtual-key code and is translated into an unshifted character value in the low order word of the return value. Dead keys (diacritics) are indicated by setting the top bit of the return value. If there is no translation, the function returns 0. + MAPVK_VSC_TO_VK_EX = 3, //The uCode parameter is a scan code and is translated into a virtual-key code that distinguishes between left- and right-hand keys. If there is no translation, the function returns 0. + MAPVK_VK_TO_VSC_EX = 4 //The uCode parameter is a virtual-key code and is translated into a scan code. If it is a virtual-key code that does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If the scan code is an extended scan code, the high byte of the uCode value can contain either 0xe0 or 0xe1 to specify the extended scan code. If there is no translation, the function returns 0. + } + + public static string GetKeyName(Keys givenKey) + { + StringBuilder keyName = new StringBuilder(); + const uint numpad = 55; + + Keys virtualKey = givenKey; + string keyString; + // Make VC's to real keys + switch (virtualKey) + { + case Keys.Alt: + virtualKey = Keys.LMenu; + break; + case Keys.Control: + virtualKey = Keys.ControlKey; + break; + case Keys.Shift: + virtualKey = Keys.LShiftKey; + break; + case Keys.Multiply: + GetKeyNameText(numpad << 16, keyName, 100); + keyString = keyName.ToString().Replace("*", "").Trim().ToLower(); + if (keyString.IndexOf("(", StringComparison.Ordinal) >= 0) + { + return "* " + keyString; + } + keyString = keyString.Substring(0, 1).ToUpper() + keyString.Substring(1).ToLower(); + return keyString + " *"; + case Keys.Divide: + GetKeyNameText(numpad << 16, keyName, 100); + keyString = keyName.ToString().Replace("*", "").Trim().ToLower(); + if (keyString.IndexOf("(", StringComparison.Ordinal) >= 0) + { + return "/ " + keyString; + } + keyString = keyString.Substring(0, 1).ToUpper() + keyString.Substring(1).ToLower(); + return keyString + " /"; + } + uint scanCode = MapVirtualKey((uint)virtualKey, (uint)MapType.MAPVK_VK_TO_VSC); + + // because MapVirtualKey strips the extended bit for some keys + switch (virtualKey) + { + case Keys.Left: + case Keys.Up: + case Keys.Right: + case Keys.Down: // arrow keys + case Keys.Prior: + case Keys.Next: // page up and page down + case Keys.End: + case Keys.Home: + case Keys.Insert: + case Keys.Delete: + case Keys.NumLock: + //Log.Debug("Modifying Extended bit"); + scanCode |= 0x100; // set extended bit + break; + case Keys.PrintScreen: // PrintScreen + scanCode = 311; + break; + case Keys.Pause: // PrintScreen + scanCode = 69; + break; + } + scanCode |= 0x200; + if (GetKeyNameText(scanCode << 16, keyName, 100) != 0) + { + string visibleName = keyName.ToString(); + if (visibleName.Length > 1) + { + visibleName = visibleName.Substring(0, 1) + visibleName.Substring(1).ToLower(); + } + return visibleName; + } + else + { + return givenKey.ToString(); + } + } + + + [DllImport("user32.dll", SetLastError = true)] + private static extern uint MapVirtualKey(uint uCode, uint uMapType); + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)] + private static extern int GetKeyNameText(uint lParam, [Out] StringBuilder lpString, int nSize); + /// /// https://www.codeproject.com/Tips/744914/ /// Sorted-list-of-available-cultures-in-NET diff --git a/UserInterface/AppNotifyIcon.cs b/UserInterface/AppNotifyIcon.cs index 76d11f9..9619b98 100644 --- a/UserInterface/AppNotifyIcon.cs +++ b/UserInterface/AppNotifyIcon.cs @@ -13,7 +13,6 @@ namespace SystemTrayMenu.UserInterface internal class MenuNotifyIcon : IDisposable { public event EventHandlerEmpty Click; - public event EventHandlerEmpty ChangeFolder; public event EventHandlerEmpty OpenLog; public event EventHandlerEmpty Restart; public event EventHandlerEmpty Exit; @@ -39,11 +38,6 @@ namespace SystemTrayMenu.UserInterface notifyIcon.Visible = true; notifyIcon.Icon = R.SystemTrayMenu; AppContextMenu contextMenus = new AppContextMenu(); - contextMenus.ClickedChangeFolder += ClickedChangeFolder; - void ClickedChangeFolder() - { - ChangeFolder.Invoke(); - } contextMenus.ClickedOpenLog += ClickedOpenLog; void ClickedOpenLog() diff --git a/UserInterface/AskHotKeyForm.Designer.cs b/UserInterface/AskHotKeyForm.Designer.cs deleted file mode 100644 index b5c571a..0000000 --- a/UserInterface/AskHotKeyForm.Designer.cs +++ /dev/null @@ -1,139 +0,0 @@ -namespace SystemTrayMenu.UserInterface -{ - partial class AskHotKeyForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AskHotKeyForm)); - this.tableLayoutPanelMain = new System.Windows.Forms.TableLayoutPanel(); - this.labelText = new System.Windows.Forms.Label(); - this.tableLayoutPanelBottom = new System.Windows.Forms.TableLayoutPanel(); - this.buttonOk = new System.Windows.Forms.Button(); - this.labelCaption = new System.Windows.Forms.Label(); - this.tableLayoutPanelMain.SuspendLayout(); - this.tableLayoutPanelBottom.SuspendLayout(); - this.SuspendLayout(); - // - // tableLayoutPanelMain - // - this.tableLayoutPanelMain.AutoSize = true; - this.tableLayoutPanelMain.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.tableLayoutPanelMain.ColumnCount = 1; - this.tableLayoutPanelMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); - this.tableLayoutPanelMain.Controls.Add(this.labelText, 0, 1); - this.tableLayoutPanelMain.Controls.Add(this.tableLayoutPanelBottom, 0, 2); - this.tableLayoutPanelMain.Controls.Add(this.labelCaption, 0, 0); - this.tableLayoutPanelMain.Location = new System.Drawing.Point(12, 12); - this.tableLayoutPanelMain.Name = "tableLayoutPanelMain"; - this.tableLayoutPanelMain.RowCount = 3; - this.tableLayoutPanelMain.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanelMain.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanelMain.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanelMain.Size = new System.Drawing.Size(121, 77); - this.tableLayoutPanelMain.TabIndex = 0; - // - // labelText - // - this.labelText.AutoSize = true; - this.labelText.Location = new System.Drawing.Point(3, 21); - this.labelText.Margin = new System.Windows.Forms.Padding(3, 8, 3, 8); - this.labelText.Name = "labelText"; - this.labelText.Size = new System.Drawing.Size(67, 13); - this.labelText.TabIndex = 1; - this.labelText.Text = "Ctrl + Alt + ?)"; - // - // tableLayoutPanelBottom - // - this.tableLayoutPanelBottom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.tableLayoutPanelBottom.AutoSize = true; - this.tableLayoutPanelBottom.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.tableLayoutPanelBottom.ColumnCount = 3; - this.tableLayoutPanelBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanelBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); - this.tableLayoutPanelBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanelBottom.Controls.Add(this.buttonOk, 1, 0); - this.tableLayoutPanelBottom.Location = new System.Drawing.Point(3, 45); - this.tableLayoutPanelBottom.Name = "tableLayoutPanelBottom"; - this.tableLayoutPanelBottom.RowCount = 1; - this.tableLayoutPanelBottom.RowStyles.Add(new System.Windows.Forms.RowStyle()); - this.tableLayoutPanelBottom.Size = new System.Drawing.Size(115, 29); - this.tableLayoutPanelBottom.TabIndex = 1; - // - // buttonOk - // - this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.buttonOk.Location = new System.Drawing.Point(20, 3); - this.buttonOk.Name = "buttonOk"; - this.buttonOk.Size = new System.Drawing.Size(75, 23); - this.buttonOk.TabIndex = 2; - this.buttonOk.Text = "OK"; - this.buttonOk.UseVisualStyleBackColor = true; - this.buttonOk.Click += new System.EventHandler(this.ButtonOk_Click); - // - // labelCaption - // - this.labelCaption.AutoSize = true; - this.labelCaption.Location = new System.Drawing.Point(3, 0); - this.labelCaption.MaximumSize = new System.Drawing.Size(217, 0); - this.labelCaption.Name = "labelCaption"; - this.labelCaption.Size = new System.Drawing.Size(115, 13); - this.labelCaption.TabIndex = 0; - this.labelCaption.Text = "Shortcut key (e.g. F10)"; - // - // AskHotKeyForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; - this.AutoSize = true; - this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.ClientSize = new System.Drawing.Size(302, 221); - this.Controls.Add(this.tableLayoutPanelMain); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AskHotKeyForm"; - this.Padding = new System.Windows.Forms.Padding(0, 0, 10, 0); - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "AskHotKeyForm"; - this.tableLayoutPanelMain.ResumeLayout(false); - this.tableLayoutPanelMain.PerformLayout(); - this.tableLayoutPanelBottom.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanelMain; - private System.Windows.Forms.Button buttonOk; - private System.Windows.Forms.Label labelCaption; - private System.Windows.Forms.TableLayoutPanel tableLayoutPanelBottom; - private System.Windows.Forms.Label labelText; - } -} \ No newline at end of file diff --git a/UserInterface/AskHotKeyForm.cs b/UserInterface/AskHotKeyForm.cs deleted file mode 100644 index 036cf3b..0000000 --- a/UserInterface/AskHotKeyForm.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Windows.Forms; -using SystemTrayMenu.Utilities; - -namespace SystemTrayMenu.UserInterface -{ - public partial class AskHotKeyForm : Form - { - public string NewHotKey => newHotKey; - private string newHotKey = string.Empty; - - public AskHotKeyForm() - { - InitializeComponent(); - Text = Language.Translate("Shortcut key"); - labelCaption.Text = $"{Language.Translate("Shortcut key")} " + - $"{Language.Translate("(e.g. F10)")}"; - labelText.Text = - Language.Translate("CTRL") + " + " + - Language.Translate("ALT") + " + ?"; - - buttonOk.Text = Language.Translate("buttonOk"); - } - - private void ButtonOk_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.None; - Close(); - } - - protected override bool ProcessCmdKey(ref Message msg, Keys keys) - { - switch (keys) - { - case Keys.Space: - case Keys.D0: - case Keys.D1: - case Keys.D2: - case Keys.D3: - case Keys.D4: - case Keys.D5: - case Keys.D6: - case Keys.D7: - case Keys.D8: - case Keys.D9: - case Keys.A: - case Keys.B: - case Keys.C: - case Keys.D: - case Keys.E: - case Keys.F: - case Keys.G: - case Keys.H: - case Keys.I: - case Keys.J: - case Keys.K: - case Keys.L: - case Keys.M: - case Keys.N: - case Keys.O: - case Keys.P: - case Keys.Q: - case Keys.R: - case Keys.S: - case Keys.T: - case Keys.U: - case Keys.V: - case Keys.W: - case Keys.X: - case Keys.Y: - case Keys.Z: - case Keys.NumPad0: - case Keys.NumPad1: - case Keys.NumPad2: - case Keys.NumPad3: - case Keys.NumPad4: - case Keys.NumPad5: - case Keys.NumPad6: - case Keys.NumPad7: - case Keys.NumPad8: - case Keys.NumPad9: - case Keys.F1: - case Keys.F2: - case Keys.F3: - case Keys.F4: - case Keys.F5: - case Keys.F6: - case Keys.F7: - case Keys.F8: - case Keys.F9: - case Keys.F10: - case Keys.F11: - case Keys.F12: - case Keys.F13: - case Keys.F14: - case Keys.F15: - case Keys.F16: - case Keys.F17: - case Keys.F18: - case Keys.F19: - case Keys.F20: - case Keys.F21: - case Keys.F22: - case Keys.F23: - case Keys.F24: - newHotKey = keys.ToString(); - DialogResult = DialogResult.OK; - Close(); - break; - case Keys.Back: - case Keys.Delete: - newHotKey = string.Empty; - DialogResult = DialogResult.OK; - Close(); - break; - default: - break; - } - - return base.ProcessCmdKey(ref msg, keys); - } - } -} diff --git a/UserInterface/AskHotKeyForm.resx b/UserInterface/AskHotKeyForm.resx deleted file mode 100644 index a04fa62..0000000 --- a/UserInterface/AskHotKeyForm.resx +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAMAEBAAAAEAIABoBAAANgAAACAgAAABACAAqBAAAJ4EAAAwMAAAAQAgAKglAABGFQAAKAAAABAA - AAAgAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAJAAAAcwEB - AXsBAQF7AQEBewEBAXsBAQF7AQEBewEBAXsBAQF7AQEBewEBAXsAAABzAAAACQAAAAEAAAABAAAACQAA - AHMBAQF7AQEBewEBAXsBAQF7AQEBewEBAXsBAQF7AQEBewEBAXsBAQF7AAAAcwAAAAkAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAACQAAAHUAAAB7AAAAewAAAHsAAAB7AAAAewAAAHsAAAB7AAAAewAAAHsAAAB7AAAAdQAA - AAkAAAABAAAAAQAAAAkAAABzAAAAewAAAHsAAAB7AAAAewAAAHsAAAB7AAAAewAAAHsAAAB7AAAAewAA - AHMAAAAJAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAkAAABzAQEBewEBAXsBAQF7AQEBewEBAXsBAQF7AQEBewEB - AXsBAQF7AQEBewAAAHMAAAAJAAAAAQAAAAEAAAAJAAAAcwEBAXsBAQF7AQEBewEBAXsBAQF7AQEBewEB - AXsBAQF7AQEBewEBAXsAAABzAAAACQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAHwAAANkBAQH1AQEB9QEBAfUBAQH1AQEB9QEB - AfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEB - AfUBAQH1AAAA2QAAAB8AAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAfAAAA2QEBAfUBAQH1AQEB9QEB - AfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEB - AfUBAQH1AQEB9QEBAfUAAADZAAAAHwAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAFAAAAIQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAA - ACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAAACUAAAAlAAAAJQAA - ACUAAAAhAAAABQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQEBARsAAAC5AAAA0QAAANEAAADRAAAA0QAA - ANEAAADRAAAA0QAAANEAAADRAAAA0QAAANEAAADRAAAA0QAAANEAAADRAAAA0QAAANEAAADRAAAA0QAA - ANEAAADRAAAA0QAAALkBAQEbAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAQEBGwEBAbkAAADRAAAA0QAA - ANEAAADRAAAA0QAAANEAAADRAAAA0QAAANEAAADRAAAA0QAAANEAAADRAAAA0QAAANEAAADRAAAA0QAA - ANEAAADRAAAA0QAAANEAAADRAQEBuQEBARsAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAFAQEBIQEB - ASUBAQElAQEBJQEBASUBAQElAQEBJQEBASUBAQElAQEBJQEBASUBAQElAQEBJQEBASUBAQElAQEBJQEB - ASUBAQElAQEBJQEBASUBAQElAQEBJQEBASUBAQEhAAAABQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAfAAAA2QEBAfUBAQH1AQEB9QEB - AfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEB - AfUBAQH1AQEB9QEBAfUAAADZAAAAHwAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAB8AAADZAQEB9QEB - AfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEBAfUBAQH1AQEB9QEB - AfUBAQH1AQEB9QEBAfUBAQH1AQEB9QAAANkAAAAfAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEA - IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAABUAAABdAQEBcQAA - AHEBAQFxAQEBcQAAAHEBAQFxAQEBcQAAAHEBAQFxAAAAcQAAAHEAAABxAQEBcQAAAHEBAQFxAAAAcQEB - AXEAAABxAAAAcQEBAXEAAABxAQEBcQAAAHEBAQFxAQEBcQAAAHEAAABxAQEBcQAAAHEAAABxAQEBcQAA - AHEAAABxAQEBcQEBAV0AAAAVAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQEB - AS8AAADTAAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AQEB/wAA - AP8AAAD/AQEB/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wAAAP8BAQH/AAAA/wEBAf8AAAD/AAAA/wEB - Af8BAQH/AAAA/wEBAf8BAQH/AAAA/wAAANMAAAAvAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQEBAS8AAADTAAAA/wEBAf8AAAD/AAAA/wEBAf8BAQH/AAAA/wAAAP8AAAD/AQEB/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AQEB/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wEB - Af8AAAD/AAAA/wEBAf8BAQH/AAAA/wEBAf8BAQH/AAAA/wAAANMAAAAvAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAABUAAABdAQEBcQEBAXEBAQFxAQEBcQEBAXEBAQFxAQEBcQEB - AXEBAQFxAAAAcQAAAHEAAABxAQEBcQAAAHEBAQFxAAAAcQEBAXEAAABxAAAAcQEBAXEAAABxAQEBcQAA - AHEBAQFxAQEBcQAAAHEAAABxAQEBcQAAAHEAAABxAQEBcQAAAHEAAABxAQEBcQEBAV0AAAAVAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAABcAAABhAQEBdwAAAHcBAQF3AAAAdwEBAXcBAQF3AAAAdwEBAXcAAAB3AAAAdwEB - AXcAAAB3AQEBdwAAAHcAAAB3AAAAdwEBAXcBAQF3AAAAdwAAAHcAAAB3AQEBdwAAAHcBAQF3AQEBdwAA - AHcBAQF3AQEBdwAAAHcBAQF3AQEBdwAAAHcBAQF3AQEBdwAAAGEAAAAXAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAC8AAADPAQEB+QEBAfkAAAD5AAAA+QEBAfkBAQH5AAAA+QAA - APkAAAD5AAAA+QAAAPkAAAD5AAAA+QEBAfkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkBAQH5AAAA+QAA - APkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QAAAPkAAAD5AAAA+QEBAc8AAAAvAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAC8AAADPAAAA+QAAAPkAAAD5AQEB+QAA - APkAAAD5AQEB+QEBAfkAAAD5AQEB+QAAAPkAAAD5AAAA+QEBAfkAAAD5AAAA+QEBAfkBAQH5AAAA+QEB - AfkBAQH5AAAA+QEBAfkAAAD5AAAA+QEBAfkAAAD5AAAA+QEBAfkBAQH5AQEB+QAAAPkBAQH5AQEB+QAA - AM8AAAAvAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQEBARcAAABhAQEBdQEB - AXUBAQF1AAAAdQEBAXUBAQF1AAAAdQEBAXUAAAB1AAAAdQAAAHUAAAB1AAAAdQAAAHUAAAB1AAAAdQAA - AHUAAAB1AQEBdQAAAHUAAAB1AAAAdQAAAHUAAAB1AAAAdQAAAHUAAAB1AAAAdQAAAHUAAAB1AAAAdQAA - AHUAAAB1AAAAdQEBAWEBAQEXAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAABUBAQFdAQEBcQAAAHEBAQFxAQEBcQAA - AHEAAABxAQEBcQEBAXEBAQFxAAAAcQAAAHEAAABxAQEBcQAAAHEBAQFxAAAAcQEBAXEBAQFxAAAAcQEB - AXEAAABxAQEBcQAAAHEBAQFxAAAAcQAAAHEBAQFxAQEBcQEBAXEBAQFxAQEBcQEBAXEAAABxAAAAcQEB - AV0AAAAVAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAC8BAQHTAAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAANMAAAAvAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AC8AAADTAQEB/wAAAP8AAAD/AAAA/wEBAf8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AQEB/wAAAP8AAAD/AAAA/wAA - AP8AAAD/AAAA/wAAAP8AAAD/AAAA/wEBAdMAAAAvAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAABUBAQFdAQEBcQAAAHEBAQFxAQEBcQAAAHEAAABxAQEBcQEBAXEBAQFxAAAAcQAA - AHEAAABxAQEBcQAAAHEBAQFxAAAAcQEBAXEBAQFxAAAAcQEBAXEAAABxAQEBcQAAAHEBAQFxAAAAcQAA - AHEBAQFxAQEBcQEBAXEBAQFxAQEBcQEBAXEAAABxAAAAcQEBAV0AAAAVAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/UserInterface/Controls/HotkeyControl.cs b/UserInterface/Controls/HotkeyControl.cs new file mode 100644 index 0000000..a8a0ccb --- /dev/null +++ b/UserInterface/Controls/HotkeyControl.cs @@ -0,0 +1,691 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Runtime.InteropServices; +using System.Text; +using System.Windows.Forms; +using SystemTrayMenu.Utilities; + +namespace SystemTrayMenu.UserInterface.Controls +{ + /// + /// A simple control that allows the user to select pretty much any valid hotkey combination + /// See: http://www.codeproject.com/KB/buttons/hotkeycontrol.aspx + /// But is modified to fit in Greenshot, and have localized support + /// + public sealed class HotkeyControl : TextBox + { + // Delegates for hooking up events. + public delegate void HotKeyHandler(); + + private static readonly EventDelay EventDelay = new EventDelay(TimeSpan.FromMilliseconds(600).Ticks); + private static readonly bool IsWindows7OrOlder = Environment.OSVersion.Version.Major >= 6 && Environment.OSVersion.Version.Minor >= 1; + + // Holds the list of hotkeys + private static readonly IDictionary KeyHandlers = new Dictionary(); + private static int _hotKeyCounter = 1; + private const uint WM_HOTKEY = 0x312; + private static IntPtr _hotkeyHwnd; + + [SuppressMessage("ReSharper", "InconsistentNaming")] + public enum Modifiers : uint + { + NONE = 0, + ALT = 1, + CTRL = 2, + SHIFT = 4, + WIN = 8, + NO_REPEAT = 0x4000 + } + + [SuppressMessage("ReSharper", "InconsistentNaming")] + private enum MapType : uint + { + MAPVK_VK_TO_VSC = 0, //The uCode parameter is a virtual-key code and is translated into a scan code. If it is a virtual-key code that does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If there is no translation, the function returns 0. + MAPVK_VSC_TO_VK = 1, //The uCode parameter is a scan code and is translated into a virtual-key code that does not distinguish between left- and right-hand keys. If there is no translation, the function returns 0. + MAPVK_VK_TO_CHAR = 2, //The uCode parameter is a virtual-key code and is translated into an unshifted character value in the low order word of the return value. Dead keys (diacritics) are indicated by setting the top bit of the return value. If there is no translation, the function returns 0. + MAPVK_VSC_TO_VK_EX = 3, //The uCode parameter is a scan code and is translated into a virtual-key code that distinguishes between left- and right-hand keys. If there is no translation, the function returns 0. + MAPVK_VK_TO_VSC_EX = 4 //The uCode parameter is a virtual-key code and is translated into a scan code. If it is a virtual-key code that does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If the scan code is an extended scan code, the high byte of the uCode value can contain either 0xe0 or 0xe1 to specify the extended scan code. If there is no translation, the function returns 0. + } + + [DllImport("user32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint virtualKeyCode); + + [DllImport("user32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool UnregisterHotKey(IntPtr hWnd, int id); + + [DllImport("user32.dll", SetLastError = true)] + private static extern uint MapVirtualKey(uint uCode, uint uMapType); + [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Unicode)] + private static extern int GetKeyNameText(uint lParam, [Out] StringBuilder lpString, int nSize); + + // These variables store the current hotkey and modifier(s) + private Keys _hotkey = Keys.None; + private Keys _modifiers = Keys.None; + + // ArrayLists used to enforce the use of proper modifiers. + // Shift+A isn't a valid hotkey, for instance, as it would screw up when the user is typing. + private readonly IList _needNonShiftModifier = new List(); + private readonly IList _needNonAltGrModifier = new List(); + + private readonly ContextMenu _dummy = new ContextMenu(); + + /// + /// Used to make sure that there is no right-click menu available + /// + public override ContextMenu ContextMenu + { + get + { + return _dummy; + } + set + { + base.ContextMenu = _dummy; + } + } + + /// + /// Forces the control to be non-multiline + /// + public override bool Multiline + { + get + { + return base.Multiline; + } + set + { + // Ignore what the user wants; force Multiline to false + base.Multiline = false; + } + } + + /// + /// Creates a new HotkeyControl + /// + public HotkeyControl() + { + ContextMenu = _dummy; // Disable right-clicking + Text = "None"; + + // Handle events that occurs when keys are pressed + KeyPress += HotkeyControl_KeyPress; + KeyUp += HotkeyControl_KeyUp; + KeyDown += HotkeyControl_KeyDown; + + PopulateModifierLists(); + } + + /// + /// Populates the ArrayLists specifying disallowed hotkeys + /// such as Shift+A, Ctrl+Alt+4 (would produce a dollar sign) etc + /// + private void PopulateModifierLists() + { + // Shift + 0 - 9, A - Z + for (Keys k = Keys.D0; k <= Keys.Z; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Shift + Numpad keys + for (Keys k = Keys.NumPad0; k <= Keys.NumPad9; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Shift + Misc (,;<./ etc) + for (Keys k = Keys.Oem1; k <= Keys.OemBackslash; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Shift + Space, PgUp, PgDn, End, Home + for (Keys k = Keys.Space; k <= Keys.Home; k++) + { + _needNonShiftModifier.Add((int)k); + } + + // Misc keys that we can't loop through + _needNonShiftModifier.Add((int)Keys.Insert); + _needNonShiftModifier.Add((int)Keys.Help); + _needNonShiftModifier.Add((int)Keys.Multiply); + _needNonShiftModifier.Add((int)Keys.Add); + _needNonShiftModifier.Add((int)Keys.Subtract); + _needNonShiftModifier.Add((int)Keys.Divide); + _needNonShiftModifier.Add((int)Keys.Decimal); + _needNonShiftModifier.Add((int)Keys.Return); + _needNonShiftModifier.Add((int)Keys.Escape); + _needNonShiftModifier.Add((int)Keys.NumLock); + + // Ctrl+Alt + 0 - 9 + for (Keys k = Keys.D0; k <= Keys.D9; k++) + { + _needNonAltGrModifier.Add((int)k); + } + } + + /// + /// Resets this hotkey control to None + /// + public new void Clear() + { + Hotkey = Keys.None; + HotkeyModifiers = Keys.None; + } + + /// + /// Fires when a key is pushed down. Here, we'll want to update the text in the box + /// to notify the user what combination is currently pressed. + /// + private void HotkeyControl_KeyDown(object sender, KeyEventArgs e) + { + // Clear the current hotkey + if (e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete) + { + ResetHotkey(); + } + else + { + _modifiers = e.Modifiers; + _hotkey = e.KeyCode; + Redraw(); + } + } + + /// + /// Fires when all keys are released. If the current hotkey isn't valid, reset it. + /// Otherwise, do nothing and keep the text and hotkey as it was. + /// + private void HotkeyControl_KeyUp(object sender, KeyEventArgs e) + { + // Somehow the PrintScreen only comes as a keyup, therefore we handle it here. + if (e.KeyCode == Keys.PrintScreen) + { + _modifiers = e.Modifiers; + _hotkey = e.KeyCode; + Redraw(); + } + + if (_hotkey == Keys.None && ModifierKeys == Keys.None) + { + ResetHotkey(); + } + } + + /// + /// Prevents the letter/whatever entered to show up in the TextBox + /// Without this, a "A" key press would appear as "aControl, Alt + A" + /// + private void HotkeyControl_KeyPress(object sender, KeyPressEventArgs e) + { + e.Handled = true; + } + + /// + /// Handles some misc keys, such as Ctrl+Delete and Shift+Insert + /// + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) + { + if (keyData == Keys.Delete || keyData == (Keys.Control | Keys.Delete)) + { + ResetHotkey(); + return true; + } + + // Paste + if (keyData == (Keys.Shift | Keys.Insert)) + { + return true; // Don't allow + } + + // Allow the rest + return base.ProcessCmdKey(ref msg, keyData); + } + + /// + /// Clears the current hotkey and resets the TextBox + /// + public void ResetHotkey() + { + _hotkey = Keys.None; + _modifiers = Keys.None; + Redraw(); + } + + /// + /// Used to get/set the hotkey (e.g. Keys.A) + /// + public Keys Hotkey + { + get + { + return _hotkey; + } + set + { + _hotkey = value; + Redraw(true); + } + } + + /// + /// Used to get/set the hotkey (e.g. Keys.A) + /// + public void SetHotkey(string hotkey) + { + _hotkey = HotkeyFromString(hotkey); + _modifiers = HotkeyModifiersFromString(hotkey); + Redraw(true); + } + + /// + /// Used to get/set the modifier keys (e.g. Keys.Alt | Keys.Control) + /// + public Keys HotkeyModifiers + { + get + { + return _modifiers; + } + set + { + _modifiers = value; + Redraw(true); + } + } + + /// + /// Redraws the TextBox when necessary. + /// + /// Specifies whether this function was called by the Hotkey/HotkeyModifiers properties or by the user. + private void Redraw(bool bCalledProgramatically = false) + { + // No hotkey set + if (_hotkey == Keys.None) + { + Text = ""; + return; + } + + // LWin/RWin doesn't work as hotkeys (neither do they work as modifier keys in .NET 2.0) + if (_hotkey == Keys.LWin || _hotkey == Keys.RWin) + { + Text = ""; + return; + } + + // Only validate input if it comes from the user + if (bCalledProgramatically == false) + { + // No modifier or shift only, AND a hotkey that needs another modifier + if ((_modifiers == Keys.Shift || _modifiers == Keys.None) && _needNonShiftModifier.Contains((int)_hotkey)) + { + if (_modifiers == Keys.None) + { + // Set Ctrl+Alt as the modifier unless Ctrl+Alt+ won't work... + if (_needNonAltGrModifier.Contains((int)_hotkey) == false) + { + _modifiers = Keys.Alt | Keys.Control; + } + else + { + // ... in that case, use Shift+Alt instead. + _modifiers = Keys.Alt | Keys.Shift; + } + } + else + { + // User pressed Shift and an invalid key (e.g. a letter or a number), + // that needs another set of modifier keys + _hotkey = Keys.None; + Text = ""; + return; + } + } + // Check all Ctrl+Alt keys + if ((_modifiers == (Keys.Alt | Keys.Control)) && _needNonAltGrModifier.Contains((int)_hotkey)) + { + // Ctrl+Alt+4 etc won't work; reset hotkey and tell the user + _hotkey = Keys.None; + Text = ""; + return; + } + } + + // I have no idea why this is needed, but it is. Without this code, pressing only Ctrl + // will show up as "Control + ControlKey", etc. + if (_hotkey == Keys.Menu /* Alt */ || _hotkey == Keys.ShiftKey || _hotkey == Keys.ControlKey) + { + _hotkey = Keys.None; + } + Text = HotkeyToLocalizedString(_modifiers, _hotkey); + } + + public override string ToString() + { + return HotkeyToString(HotkeyModifiers, Hotkey); + } + + public static string GetLocalizedHotkeyStringFromString(string hotkeyString) + { + Keys virtualKeyCode = HotkeyFromString(hotkeyString); + Keys modifiers = HotkeyModifiersFromString(hotkeyString); + return HotkeyToLocalizedString(modifiers, virtualKeyCode); + } + + public static string HotkeyToString(Keys modifierKeyCode, Keys virtualKeyCode) + { + return HotkeyModifiersToString(modifierKeyCode) + virtualKeyCode; + } + + public static string HotkeyModifiersToString(Keys modifierKeyCode) + { + StringBuilder hotkeyString = new StringBuilder(); + if ((modifierKeyCode & Keys.Alt) > 0) + { + hotkeyString.Append("Alt").Append(" + "); + } + if ((modifierKeyCode & Keys.Control) > 0) + { + hotkeyString.Append("Ctrl").Append(" + "); + } + if ((modifierKeyCode & Keys.Shift) > 0) + { + hotkeyString.Append("Shift").Append(" + "); + } + if (modifierKeyCode == Keys.LWin || modifierKeyCode == Keys.RWin) + { + hotkeyString.Append("Win").Append(" + "); + } + return hotkeyString.ToString(); + } + + + public static string HotkeyToLocalizedString(Keys modifierKeyCode, Keys virtualKeyCode) + { + return HotkeyModifiersToLocalizedString(modifierKeyCode) + GetKeyName(virtualKeyCode); + } + + public static string HotkeyModifiersToLocalizedString(Keys modifierKeyCode) + { + StringBuilder hotkeyString = new StringBuilder(); + if ((modifierKeyCode & Keys.Alt) > 0) + { + hotkeyString.Append(GetKeyName(Keys.Alt)).Append(" + "); + } + if ((modifierKeyCode & Keys.Control) > 0) + { + hotkeyString.Append(GetKeyName(Keys.Control)).Append(" + "); + } + if ((modifierKeyCode & Keys.Shift) > 0) + { + hotkeyString.Append(GetKeyName(Keys.Shift)).Append(" + "); + } + if (modifierKeyCode == Keys.LWin || modifierKeyCode == Keys.RWin) + { + hotkeyString.Append("Win").Append(" + "); + } + return hotkeyString.ToString(); + } + + + public static Keys HotkeyModifiersFromString(string modifiersString) + { + Keys modifiers = Keys.None; + if (!string.IsNullOrEmpty(modifiersString)) + { + if (modifiersString.ToLower().Contains("alt")) + { + modifiers |= Keys.Alt; + } + if (modifiersString.ToLower().Contains("ctrl")) + { + modifiers |= Keys.Control; + } + if (modifiersString.ToLower().Contains("shift")) + { + modifiers |= Keys.Shift; + } + if (modifiersString.ToLower().Contains("win")) + { + modifiers |= Keys.LWin; + } + } + return modifiers; + } + + public static Keys HotkeyFromString(string hotkey) + { + Keys key = Keys.None; + if (!string.IsNullOrEmpty(hotkey)) + { + if (hotkey.LastIndexOf('+') > 0) + { + hotkey = hotkey.Remove(0, hotkey.LastIndexOf('+') + 1).Trim(); + } + key = (Keys)Enum.Parse(typeof(Keys), hotkey); + } + return key; + } + + public static void RegisterHotkeyHwnd(IntPtr hWnd) + { + _hotkeyHwnd = hWnd; + } + + public static int RegisterHotKey(string hotkey, HotKeyHandler handler) + { + return RegisterHotKey(HotkeyModifiersFromString(hotkey), HotkeyFromString(hotkey), handler); + } + + /// + /// Register a hotkey + /// + /// The modifier, e.g.: Modifiers.CTRL, Modifiers.NONE or Modifiers.ALT + /// The virtual key code + /// A HotKeyHandler, this will be called to handle the hotkey press + /// the hotkey number, -1 if failed + public static int RegisterHotKey(Keys modifierKeyCode, Keys virtualKeyCode, HotKeyHandler handler) + { + if (virtualKeyCode == Keys.None) + { + Log.Info("Trying to register a Keys.none hotkey, ignoring"); + return 0; + } + // Convert Modifiers to fit HKM_SETHOTKEY + uint modifiers = 0; + if ((modifierKeyCode & Keys.Alt) > 0) + { + modifiers |= (uint)Modifiers.ALT; + } + if ((modifierKeyCode & Keys.Control) > 0) + { + modifiers |= (uint)Modifiers.CTRL; + } + if ((modifierKeyCode & Keys.Shift) > 0) + { + modifiers |= (uint)Modifiers.SHIFT; + } + if (modifierKeyCode == Keys.LWin || modifierKeyCode == Keys.RWin) + { + modifiers |= (uint)Modifiers.WIN; + } + // Disable repeating hotkey for Windows 7 and beyond, as described in #1559 + if (IsWindows7OrOlder) + { + modifiers |= (uint)Modifiers.NO_REPEAT; + } + if (RegisterHotKey(_hotkeyHwnd, _hotKeyCounter, modifiers, (uint)virtualKeyCode)) + { + KeyHandlers.Add(_hotKeyCounter, handler); + return _hotKeyCounter++; + } + else + { + Log.Info($"Couldn't register hotkey modifier {modifierKeyCode} virtualKeyCode {virtualKeyCode}"); + return -1; + } + } + + public static void UnregisterHotkeys() + { + foreach (int hotkey in KeyHandlers.Keys) + { + UnregisterHotKey(_hotkeyHwnd, hotkey); + } + // Remove all key handlers + KeyHandlers.Clear(); + } + + public static void UnregisterHotkey(int hotkey) + { + bool removeHotkey = false; + foreach (int availableHotkey in KeyHandlers.Keys) + { + if (availableHotkey == hotkey) + { + UnregisterHotKey(_hotkeyHwnd, hotkey); + removeHotkey = true; + } + } + if (removeHotkey) + { + // Remove key handler + KeyHandlers.Remove(hotkey); + } + } + + /// + /// Handle WndProc messages for the hotkey + /// + /// + /// true if the message was handled + public static bool HandleMessages(ref Message m) + { + if (m.Msg != WM_HOTKEY) + { + return false; + } + // Call handler + if (!IsWindows7OrOlder && !EventDelay.Check()) + { + return true; + } + HotKeyHandler handler; + if (KeyHandlers.TryGetValue((int)m.WParam, out handler)) + { + handler(); + } + return true; + } + + public static string GetKeyName(Keys givenKey) + { + StringBuilder keyName = new StringBuilder(); + const uint numpad = 55; + + Keys virtualKey = givenKey; + string keyString; + // Make VC's to real keys + switch (virtualKey) + { + case Keys.Alt: + virtualKey = Keys.LMenu; + break; + case Keys.Control: + virtualKey = Keys.ControlKey; + break; + case Keys.Shift: + virtualKey = Keys.LShiftKey; + break; + case Keys.Multiply: + GetKeyNameText(numpad << 16, keyName, 100); + keyString = keyName.ToString().Replace("*", "").Trim().ToLower(); + if (keyString.IndexOf("(", StringComparison.Ordinal) >= 0) + { + return "* " + keyString; + } + keyString = keyString.Substring(0, 1).ToUpper() + keyString.Substring(1).ToLower(); + return keyString + " *"; + case Keys.Divide: + GetKeyNameText(numpad << 16, keyName, 100); + keyString = keyName.ToString().Replace("*", "").Trim().ToLower(); + if (keyString.IndexOf("(", StringComparison.Ordinal) >= 0) + { + return "/ " + keyString; + } + keyString = keyString.Substring(0, 1).ToUpper() + keyString.Substring(1).ToLower(); + return keyString + " /"; + } + uint scanCode = MapVirtualKey((uint)virtualKey, (uint)MapType.MAPVK_VK_TO_VSC); + + // because MapVirtualKey strips the extended bit for some keys + switch (virtualKey) + { + case Keys.Left: + case Keys.Up: + case Keys.Right: + case Keys.Down: // arrow keys + case Keys.Prior: + case Keys.Next: // page up and page down + case Keys.End: + case Keys.Home: + case Keys.Insert: + case Keys.Delete: + case Keys.NumLock: + //Log.Debug("Modifying Extended bit"); + scanCode |= 0x100; // set extended bit + break; + case Keys.PrintScreen: // PrintScreen + scanCode = 311; + break; + case Keys.Pause: // PrintScreen + scanCode = 69; + break; + } + scanCode |= 0x200; + if (GetKeyNameText(scanCode << 16, keyName, 100) != 0) + { + string visibleName = keyName.ToString(); + if (visibleName.Length > 1) + { + visibleName = visibleName.Substring(0, 1) + visibleName.Substring(1).ToLower(); + } + return visibleName; + } + else + { + return givenKey.ToString(); + } + } + } + + public class EventDelay + { + private long lastCheck; + private readonly long waitTime; + public EventDelay(long ticks) + { + waitTime = ticks; + } + + public bool Check() + { + lock (this) + { + long now = DateTime.Now.Ticks; + bool isPassed = now - lastCheck > waitTime; + lastCheck = now; + return isPassed; + } + } + } +} + + + + diff --git a/UserInterface/Menu.cs b/UserInterface/Menu.cs index 45ddb22..0e2e58c 100644 --- a/UserInterface/Menu.cs +++ b/UserInterface/Menu.cs @@ -141,11 +141,11 @@ namespace SystemTrayMenu.UserInterface } break; case MenuType.Empty: - SetTitle(Language.Translate("Folder empty")); + SetTitle(Translator.GetText("Folder empty")); labelTitle.BackColor = MenuDefines.ColorTitleWarning; break; case MenuType.NoAccess: - SetTitle(Language.Translate("Folder inaccessible")); + SetTitle(Translator.GetText("Folder inaccessible")); labelTitle.BackColor = MenuDefines.ColorTitleWarning; break; case MenuType.MaxReached: diff --git a/UserInterface/SettingsForm.Designer.cs b/UserInterface/SettingsForm.Designer.cs new file mode 100644 index 0000000..04a71ba --- /dev/null +++ b/UserInterface/SettingsForm.Designer.cs @@ -0,0 +1,413 @@ +using SystemTrayMenu.UserInterface.Controls; + +namespace SystemTrayMenu.UserInterface +{ + partial class SettingsForm + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SettingsForm)); + this.tableLayoutPanelMain = new System.Windows.Forms.TableLayoutPanel(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPageGeneral = new System.Windows.Forms.TabPage(); + this.tableLayoutPanelGeneral = new System.Windows.Forms.TableLayoutPanel(); + this.comboBoxLanguage = new System.Windows.Forms.ComboBox(); + this.labelLanguage = new System.Windows.Forms.Label(); + this.checkBoxAutostart = new System.Windows.Forms.CheckBox(); + this.labelHotkey = new System.Windows.Forms.Label(); + this.labelAutostart = new System.Windows.Forms.Label(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.buttonChange = new System.Windows.Forms.Button(); + this.textBoxFolder = new System.Windows.Forms.TextBox(); + this.labelFolder = new System.Windows.Forms.Label(); + this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.tableLayoutPanelBottom = new System.Windows.Forms.TableLayoutPanel(); + this.buttonOk = new System.Windows.Forms.Button(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.textBoxHotkey = new HotkeyControl(); + this.tableLayoutPanelMain.SuspendLayout(); + this.tabControl1.SuspendLayout(); + this.tabPageGeneral.SuspendLayout(); + this.tableLayoutPanelGeneral.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.tableLayoutPanel5.SuspendLayout(); + this.tableLayoutPanelBottom.SuspendLayout(); + this.SuspendLayout(); + // + // tableLayoutPanelMain + // + this.tableLayoutPanelMain.AutoSize = true; + this.tableLayoutPanelMain.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanelMain.ColumnCount = 1; + this.tableLayoutPanelMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanelMain.Controls.Add(this.tabControl1, 0, 0); + this.tableLayoutPanelMain.Controls.Add(this.tableLayoutPanelBottom, 0, 1); + this.tableLayoutPanelMain.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanelMain.Name = "tableLayoutPanelMain"; + this.tableLayoutPanelMain.RowCount = 2; + this.tableLayoutPanelMain.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelMain.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelMain.Size = new System.Drawing.Size(401, 246); + this.tableLayoutPanelMain.TabIndex = 0; + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPageGeneral); + this.tabControl1.Location = new System.Drawing.Point(3, 3); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(395, 211); + this.tabControl1.TabIndex = 1; + // + // tabPageGeneral + // + this.tabPageGeneral.Controls.Add(this.tableLayoutPanelGeneral); + this.tabPageGeneral.Controls.Add(this.tableLayoutPanel5); + this.tabPageGeneral.Location = new System.Drawing.Point(4, 22); + this.tabPageGeneral.Name = "tabPageGeneral"; + this.tabPageGeneral.Padding = new System.Windows.Forms.Padding(3); + this.tabPageGeneral.Size = new System.Drawing.Size(387, 185); + this.tabPageGeneral.TabIndex = 0; + this.tabPageGeneral.Text = "tabPageGeneral"; + this.tabPageGeneral.UseVisualStyleBackColor = true; + // + // tableLayoutPanelGeneral + // + this.tableLayoutPanelGeneral.AutoSize = true; + this.tableLayoutPanelGeneral.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanelGeneral.ColumnCount = 2; + this.tableLayoutPanelGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanelGeneral.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanelGeneral.Controls.Add(this.comboBoxLanguage, 1, 3); + this.tableLayoutPanelGeneral.Controls.Add(this.labelLanguage, 0, 3); + this.tableLayoutPanelGeneral.Controls.Add(this.textBoxHotkey, 1, 2); + this.tableLayoutPanelGeneral.Controls.Add(this.checkBoxAutostart, 1, 1); + this.tableLayoutPanelGeneral.Controls.Add(this.labelHotkey, 0, 2); + this.tableLayoutPanelGeneral.Controls.Add(this.labelAutostart, 0, 1); + this.tableLayoutPanelGeneral.Controls.Add(this.tableLayoutPanel1, 1, 0); + this.tableLayoutPanelGeneral.Controls.Add(this.labelFolder, 0, 0); + this.tableLayoutPanelGeneral.Location = new System.Drawing.Point(3, 3); + this.tableLayoutPanelGeneral.Name = "tableLayoutPanelGeneral"; + this.tableLayoutPanelGeneral.RowCount = 4; + this.tableLayoutPanelGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelGeneral.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelGeneral.Size = new System.Drawing.Size(301, 102); + this.tableLayoutPanelGeneral.TabIndex = 1; + // + // comboBoxLanguage + // + this.comboBoxLanguage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxLanguage.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxLanguage.FormattingEnabled = true; + this.comboBoxLanguage.Location = new System.Drawing.Point(92, 81); + this.comboBoxLanguage.Margin = new System.Windows.Forms.Padding(9, 7, 9, 0); + this.comboBoxLanguage.Name = "comboBoxLanguage"; + this.comboBoxLanguage.Size = new System.Drawing.Size(200, 21); + this.comboBoxLanguage.TabIndex = 1; + // + // labelLanguage + // + this.labelLanguage.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.labelLanguage.AutoSize = true; + this.labelLanguage.Location = new System.Drawing.Point(3, 81); + this.labelLanguage.Name = "labelLanguage"; + this.labelLanguage.Size = new System.Drawing.Size(77, 13); + this.labelLanguage.TabIndex = 2; + this.labelLanguage.Text = "labelLanguage"; + // + // checkBoxAutostart + // + this.checkBoxAutostart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.checkBoxAutostart.AutoSize = true; + this.checkBoxAutostart.Location = new System.Drawing.Point(92, 30); + this.checkBoxAutostart.Margin = new System.Windows.Forms.Padding(9, 7, 9, 0); + this.checkBoxAutostart.Name = "checkBoxAutostart"; + this.checkBoxAutostart.Size = new System.Drawing.Size(200, 17); + this.checkBoxAutostart.TabIndex = 0; + this.checkBoxAutostart.Text = "checkBoxAutostart"; + this.checkBoxAutostart.UseVisualStyleBackColor = true; + // + // labelHotkey + // + this.labelHotkey.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.labelHotkey.AutoSize = true; + this.labelHotkey.Location = new System.Drawing.Point(3, 54); + this.labelHotkey.Name = "labelHotkey"; + this.labelHotkey.Size = new System.Drawing.Size(63, 13); + this.labelHotkey.TabIndex = 1; + this.labelHotkey.Text = "labelHotkey"; + // + // labelAutostart + // + this.labelAutostart.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.labelAutostart.AutoSize = true; + this.labelAutostart.Location = new System.Drawing.Point(3, 28); + this.labelAutostart.Name = "labelAutostart"; + this.labelAutostart.Size = new System.Drawing.Size(71, 13); + this.labelAutostart.TabIndex = 2; + this.labelAutostart.Text = "labelAutostart"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.tableLayoutPanel1.AutoSize = true; + this.tableLayoutPanel1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel1.ColumnCount = 3; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.buttonChange, 2, 0); + this.tableLayoutPanel1.Controls.Add(this.textBoxFolder, 1, 0); + this.tableLayoutPanel1.Location = new System.Drawing.Point(83, 0); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 1; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(212, 23); + this.tableLayoutPanel1.TabIndex = 7; + // + // buttonChange + // + this.buttonChange.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.buttonChange.Location = new System.Drawing.Point(176, 3); + this.buttonChange.Margin = new System.Windows.Forms.Padding(3, 3, 9, 0); + this.buttonChange.Name = "buttonChange"; + this.buttonChange.Size = new System.Drawing.Size(27, 20); + this.buttonChange.TabIndex = 6; + this.buttonChange.Text = "..."; + this.buttonChange.UseVisualStyleBackColor = true; + this.buttonChange.Click += new System.EventHandler(this.buttonChange_Click); + // + // textBoxFolder + // + this.textBoxFolder.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxFolder.BackColor = System.Drawing.Color.White; + this.textBoxFolder.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.textBoxFolder.Location = new System.Drawing.Point(9, 6); + this.textBoxFolder.Margin = new System.Windows.Forms.Padding(9, 3, 9, 0); + this.textBoxFolder.Name = "textBoxFolder"; + this.textBoxFolder.ReadOnly = true; + this.textBoxFolder.Size = new System.Drawing.Size(155, 13); + this.textBoxFolder.TabIndex = 5; + // + // labelFolder + // + this.labelFolder.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.labelFolder.AutoSize = true; + this.labelFolder.Location = new System.Drawing.Point(3, 5); + this.labelFolder.Name = "labelFolder"; + this.labelFolder.Size = new System.Drawing.Size(58, 13); + this.labelFolder.TabIndex = 7; + this.labelFolder.Text = "labelFolder"; + // + // tableLayoutPanel5 + // + this.tableLayoutPanel5.AutoSize = true; + this.tableLayoutPanel5.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel5.ColumnCount = 1; + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel5.Controls.Add(this.tableLayoutPanel3, 0, 3); + this.tableLayoutPanel5.Controls.Add(this.tableLayoutPanel4, 0, 1); + this.tableLayoutPanel5.Controls.Add(this.tableLayoutPanel2, 0, 2); + this.tableLayoutPanel5.Location = new System.Drawing.Point(6, 6); + this.tableLayoutPanel5.Name = "tableLayoutPanel5"; + this.tableLayoutPanel5.RowCount = 4; + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel5.Size = new System.Drawing.Size(100, 0); + this.tableLayoutPanel5.TabIndex = 8; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel3.AutoSize = true; + this.tableLayoutPanel3.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 1; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(100, 0); + this.tableLayoutPanel3.TabIndex = 0; + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.Anchor = System.Windows.Forms.AnchorStyles.Left; + this.tableLayoutPanel4.AutoSize = true; + this.tableLayoutPanel4.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel4.ColumnCount = 2; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel4.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 1; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(100, 0); + this.tableLayoutPanel4.TabIndex = 0; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanel2.AutoSize = true; + this.tableLayoutPanel2.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 100F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(0); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(100, 0); + this.tableLayoutPanel2.TabIndex = 0; + // + // tableLayoutPanelBottom + // + this.tableLayoutPanelBottom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.tableLayoutPanelBottom.AutoSize = true; + this.tableLayoutPanelBottom.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.tableLayoutPanelBottom.ColumnCount = 3; + this.tableLayoutPanelBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanelBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanelBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanelBottom.Controls.Add(this.buttonOk, 1, 0); + this.tableLayoutPanelBottom.Controls.Add(this.buttonCancel, 2, 0); + this.tableLayoutPanelBottom.Location = new System.Drawing.Point(3, 220); + this.tableLayoutPanelBottom.Name = "tableLayoutPanelBottom"; + this.tableLayoutPanelBottom.RowCount = 1; + this.tableLayoutPanelBottom.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanelBottom.Size = new System.Drawing.Size(395, 23); + this.tableLayoutPanelBottom.TabIndex = 1; + // + // buttonOk + // + this.buttonOk.DialogResult = System.Windows.Forms.DialogResult.OK; + this.buttonOk.Location = new System.Drawing.Point(236, 0); + this.buttonOk.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(75, 23); + this.buttonOk.TabIndex = 2; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + this.buttonOk.Click += new System.EventHandler(this.ButtonOk_Click); + // + // buttonCancel + // + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(317, 0); + this.buttonCancel.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 23); + this.buttonCancel.TabIndex = 3; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // textBoxHotkey + // + this.textBoxHotkey.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxHotkey.Hotkey = System.Windows.Forms.Keys.None; + this.textBoxHotkey.HotkeyModifiers = System.Windows.Forms.Keys.None; + this.textBoxHotkey.Location = new System.Drawing.Point(92, 54); + this.textBoxHotkey.Margin = new System.Windows.Forms.Padding(9, 7, 9, 0); + this.textBoxHotkey.Name = "textBoxHotkey"; + this.textBoxHotkey.Size = new System.Drawing.Size(200, 20); + this.textBoxHotkey.TabIndex = 0; + this.textBoxHotkey.Text = "None"; + this.textBoxHotkey.Enter += new System.EventHandler(this.textBoxHotkey_Enter); + this.textBoxHotkey.Leave += new System.EventHandler(this.textBoxHotkey_Leave); + // + // SettingsForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.AutoSize = true; + this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; + this.ClientSize = new System.Drawing.Size(795, 460); + this.Controls.Add(this.tableLayoutPanelMain); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "SettingsForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "SettingsForm"; + this.Load += new System.EventHandler(this.SettingsForm_Load); + this.tableLayoutPanelMain.ResumeLayout(false); + this.tableLayoutPanelMain.PerformLayout(); + this.tabControl1.ResumeLayout(false); + this.tabPageGeneral.ResumeLayout(false); + this.tabPageGeneral.PerformLayout(); + this.tableLayoutPanelGeneral.ResumeLayout(false); + this.tableLayoutPanelGeneral.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); + this.tableLayoutPanel5.ResumeLayout(false); + this.tableLayoutPanel5.PerformLayout(); + this.tableLayoutPanelBottom.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelMain; + private System.Windows.Forms.Button buttonOk; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelBottom; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPageGeneral; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel2; + private System.Windows.Forms.ComboBox comboBoxLanguage; + //private System.Windows.Forms.TextBox textBoxHotkey; + private HotkeyControl textBoxHotkey; + private System.Windows.Forms.TextBox textBoxFolder; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel4; + private System.Windows.Forms.CheckBox checkBoxAutostart; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel3; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; + private System.Windows.Forms.Button buttonChange; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel5; + private System.Windows.Forms.Label labelFolder; + private System.Windows.Forms.Label labelLanguage; + private System.Windows.Forms.Label labelAutostart; + private System.Windows.Forms.Label labelHotkey; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanelGeneral; + } +} \ No newline at end of file diff --git a/UserInterface/SettingsForm.cs b/UserInterface/SettingsForm.cs new file mode 100644 index 0000000..3f667a3 --- /dev/null +++ b/UserInterface/SettingsForm.cs @@ -0,0 +1,372 @@ +using Microsoft.Win32; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Reflection; +using System.Text; +using System.Windows.Forms; +using SystemTrayMenu.UserInterface.Controls; +using SystemTrayMenu.Utilities; +using static SystemTrayMenu.UserInterface.Controls.HotkeyControl; + +namespace SystemTrayMenu.UserInterface +{ + public partial class SettingsForm : Form + { + public string NewHotKey => newHotKey; + private string newHotKey = string.Empty; + private bool _inHotkey = false; + + public SettingsForm() + { + InitializeComponent(); + + Translate(); + void Translate() + { + Text = Translator.GetText("Settings"); + tabPageGeneral.Text = Translator.GetText("General"); + labelFolder.Text = Translator.GetText("Folder"); + labelAutostart.Text = Translator.GetText("Autostart"); + checkBoxAutostart.Text = Translator.GetText("Launch on startup"); + labelHotkey.Text = Translator.GetText("Hotkey"); + labelLanguage.Text = Translator.GetText("Language"); + buttonOk.Text = Translator.GetText("buttonOk"); + buttonCancel.Text = Translator.GetText("buttonCancel"); + } + + InitializeFolder(); + void InitializeFolder() + { + textBoxFolder.Text = Config.Path; + } + + InitializeAutostart(); + void InitializeAutostart() + { + checkBoxAutostart.Checked = + Properties.Settings.Default.IsAutostartActivated; + } + + InitializeHotkey(); + void InitializeHotkey() + { + textBoxHotkey.SetHotkey(Properties.Settings.Default.HotKey); + //textBoxHotkey.Text = Properties.Settings.Default.HotKey; + } + + InitializeLanguage(); + void InitializeLanguage() + { + var dataSource = new List(); + dataSource.Add(new Language() { Name = "English", Value = "en" }); + dataSource.Add(new Language() { Name = "Deutsch", Value = "de" }); + comboBoxLanguage.DataSource = dataSource; + comboBoxLanguage.DisplayMember = "Name"; + comboBoxLanguage.ValueMember = "Value"; + comboBoxLanguage.SelectedValue = + Properties.Settings.Default.CurrentCultureInfoName; + if (comboBoxLanguage.SelectedValue == null) + { + comboBoxLanguage.SelectedValue = "en"; + } + } + } + + private void SettingsForm_Load(object sender, EventArgs e) + { + tabControl1.Size = new Size( + tableLayoutPanelGeneral.Size.Width + 10, + tableLayoutPanelGeneral.Size.Height + 40); + } + + private void ButtonOk_Click(object sender, EventArgs e) + { + SetAutostart(); + SetHotkey(); + SetLanguage(); + Properties.Settings.Default.Save(); + DialogResult = DialogResult.OK; + Close(); + } + + private void SetAutostart() + { + if (checkBoxAutostart.Checked) + { + RegistryKey key = Registry.CurrentUser.OpenSubKey( + @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true); + key.SetValue(Assembly.GetExecutingAssembly().GetName().Name, + Assembly.GetEntryAssembly().Location); + Properties.Settings.Default.IsAutostartActivated = true; + } + else + { + RegistryKey key = Registry.CurrentUser.OpenSubKey( + @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true); + key.DeleteValue("SystemTrayMenu", false); + Properties.Settings.Default.IsAutostartActivated = false; + } + } + + private void SetHotkey() + { + Properties.Settings.Default.HotKey = + new KeysConverter().ConvertToInvariantString( + textBoxHotkey.Hotkey | textBoxHotkey.HotkeyModifiers); + + + //Keys keys1 = HotkeyControl.Hotkey; + // Hotkey + // Keys keys = HotkeyControl.ModifierKeys; + //Keys keys2 = HotkeyControl.HotkeyToString(keys, keys); + } + + private void SetLanguage() + { + Properties.Settings.Default.CurrentCultureInfoName = + comboBoxLanguage.SelectedValue.ToString(); + } + + private void buttonCancel_Click(object sender, EventArgs e) + { + Properties.Settings.Default.Reload(); + DialogResult = DialogResult.Cancel; + Close(); + } + + private void buttonChange_Click(object sender, EventArgs e) + { + Config.SetFolderByUser(false); + textBoxFolder.Text = Config.Path; + } + + private void textBoxHotkey_Enter(object sender, EventArgs e) + { + HotkeyControl.UnregisterHotkeys(); + _inHotkey = true; + } + + private void textBoxHotkey_Leave(object sender, EventArgs e) + { + Properties.Settings.Default.HotKey = + new KeysConverter().ConvertToInvariantString( + textBoxHotkey.Hotkey | textBoxHotkey.HotkeyModifiers); + RegisterHotkeys(); + //MainForm.RegisterHotkeys(); + _inHotkey = false; + } + + protected override bool ProcessCmdKey(ref Message msg, Keys keyData) + { + switch (keyData) + { + case Keys.Escape: + if (!_inHotkey) + { + DialogResult = DialogResult.Cancel; + } + else + { + return base.ProcessCmdKey(ref msg, keyData); + } + break; + default: + return base.ProcessCmdKey(ref msg, keyData); + } + return true; + } + + #region hotkeys + + /// + /// Helper method to cleanly register a hotkey + /// + /// + /// + /// + /// + /// + private static bool RegisterHotkey(StringBuilder failedKeys, string hotkeyString, HotKeyHandler handler) + { + Keys modifierKeyCode = HotkeyControl.HotkeyModifiersFromString(hotkeyString); + Keys virtualKeyCode = HotkeyControl.HotkeyFromString(hotkeyString); + if (!Keys.None.Equals(virtualKeyCode)) + { + if (HotkeyControl.RegisterHotKey(modifierKeyCode, virtualKeyCode, handler) < 0) + { +#warning logging + //LOG.DebugFormat("Failed to register {0} to hotkey: {1}", functionName, hotkeyString); + if (failedKeys.Length > 0) + { + failedKeys.Append(", "); + } + failedKeys.Append(hotkeyString); + return false; + } +#warning logging + //LOG.DebugFormat("Registered {0} to hotkey: {1}", functionName, hotkeyString); + } + else + { +#warning logging + //LOG.InfoFormat("Skipping hotkey registration for {0}, no hotkey set!", functionName); + } + return true; + } + + private static bool RegisterWrapper(StringBuilder failedKeys, HotKeyHandler handler, bool ignoreFailedRegistration) + { +#warning todo with Properties.Settings.Default.HotKey + //IniValue hotkeyValue = _conf.Values[configurationKey]; + try + { + bool success = RegisterHotkey(failedKeys, + //hotkeyValue.Value.ToString(), + Properties.Settings.Default.HotKey, + handler); + if (!success && ignoreFailedRegistration) + { +#warning logging + //LOG.DebugFormat("Ignoring failed hotkey registration for {0}, with value '{1}', resetting to 'None'.", functionName, hotkeyValue); +#warning todo with Properties.Settings.Default.HotKey + //_conf.Values[configurationKey].Value = Keys.None.ToString(); + //_conf.IsDirty = true; + } + return success; + } + catch (Exception ex) + { +#warning logging + //LOG.Warn(ex); + //LOG.WarnFormat("Restoring default hotkey for {0}, stored under {1} from '{2}' to '{3}'", functionName, configurationKey, hotkeyValue.Value, hotkeyValue.Attributes.DefaultValue); + + // when getting an exception the key wasn't found: reset the hotkey value + //hotkeyValue.UseValueOrDefault(null); + //hotkeyValue.ContainingIniSection.IsDirty = true; +#warning todo set default Properties.Settings.Default.HotKey = + return RegisterHotkey(failedKeys, + //hotkeyValue.Value.ToString(), + Properties.Settings.Default.HotKey, + handler); + } + } + + /// + /// Registers all hotkeys as configured, displaying a dialog in case of hotkey conflicts with other tools. + /// + /// Whether the hotkeys could be registered to the users content. This also applies if conflicts arise and the user decides to ignore these (i.e. not to register the conflicting hotkey). + public static bool RegisterHotkeys() + { + return RegisterHotkeys(false); + } + + static void TEST() + { + MessageBox.Show("TEST"); + } + + /// + /// Registers all hotkeys as configured, displaying a dialog in case of hotkey conflicts with other tools. + /// + /// if true, a failed hotkey registration will not be reported to the user - the hotkey will simply not be registered + /// Whether the hotkeys could be registered to the users content. This also applies if conflicts arise and the user decides to ignore these (i.e. not to register the conflicting hotkey). + private static bool RegisterHotkeys(bool ignoreFailedRegistration) + { + //if (_instance == null) + //{ + // return false; + //} + bool success = true; + StringBuilder failedKeys = new StringBuilder(); + if (!RegisterWrapper(failedKeys, TEST, ignoreFailedRegistration)) + { + success = false; + } + + if (!success) + { + if (!ignoreFailedRegistration) + { + success = HandleFailedHotkeyRegistration(failedKeys.ToString()); + } + else + { +#warning todo with Properties.Settings.Default.HotKey + + // if failures have been ignored, the config has probably been updated + //if (_conf.IsDirty) + //{ + // IniConfig.Save(); + //} + } + } + return success || ignoreFailedRegistration; + } + + ///// + ///// Check if OneDrive is blocking hotkeys + ///// + ///// true if onedrive has hotkeys turned on + //private static bool IsOneDriveBlockingHotkey() + //{ + // if (!Environment.OSVersion.IsWindows10()) + // { + // return false; + // } + // var localAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); + // var oneDriveSettingsPath = Path.Combine(localAppData, @"Microsoft\OneDrive\settings\Personal"); + // if (!Directory.Exists(oneDriveSettingsPath)) + // { + // return false; + // } + // var oneDriveSettingsFile = Directory.GetFiles(oneDriveSettingsPath, "*_screenshot.dat").FirstOrDefault(); + // if (!File.Exists(oneDriveSettingsFile)) + // { + // return false; + // } + // var screenshotSetting = File.ReadAllLines(oneDriveSettingsFile).Skip(1).Take(1).First(); + // return "2".Equals(screenshotSetting); + //} + + /// + /// Displays a dialog for the user to choose how to handle hotkey registration failures: + /// retry (allowing to shut down the conflicting application before), + /// ignore (not registering the conflicting hotkey and resetting the respective config to "None", i.e. not trying to register it again on next startup) + /// abort (do nothing about it) + /// + /// comma separated list of the hotkeys that could not be registered, for display in dialog text + /// + private static bool HandleFailedHotkeyRegistration(string failedKeys) + { + bool success = false; +#warning todo + //var warningTitle = Language.GetString(LangKey.warning); + var warningTitle = "Warning"; + //var message = string.Format(Language.GetString(LangKey.warning_hotkeys), failedKeys, IsOneDriveBlockingHotkey() ? " (OneDrive)" : ""); + var message = Translator.GetText("Could not register the hot key."); + //DialogResult dr = MessageBox.Show(Instance, message, warningTitle, MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation); + DialogResult dr = MessageBox.Show(message, warningTitle, MessageBoxButtons.AbortRetryIgnore, MessageBoxIcon.Exclamation); + if (dr == DialogResult.Retry) + { + //LOG.DebugFormat("Re-trying to register hotkeys"); + HotkeyControl.UnregisterHotkeys(); + success = RegisterHotkeys(false); + } + else if (dr == DialogResult.Ignore) + { + //LOG.DebugFormat("Ignoring failed hotkey registration"); + HotkeyControl.UnregisterHotkeys(); + success = RegisterHotkeys(true); + } + return success; + } + #endregion + } + + public class Language + { + public string Name { get; set; } + public string Value { get; set; } + } +} diff --git a/UserInterface/SettingsForm.resx b/UserInterface/SettingsForm.resx new file mode 100644 index 0000000..b872bea --- /dev/null +++ b/UserInterface/SettingsForm.resx @@ -0,0 +1,2145 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + rkJggigAAACAAAAAAAEAAAEAIAAAAAAAAAABAMMOAADDDgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABaaEiPkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXX + kah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXX + kah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXX + kah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXX + kah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXX + kah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXX + kah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXX + kah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GoddeRqHXXkah115GodddaaEiP + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIGVZ6rQ8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/4GVZ6oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAgZVnqtDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + gZVnqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBlWeq0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp/+BlWeqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIGVZ6rQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/4GVZ6oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgZVnqtDxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/gZVnqgAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABASzRWaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSC + aHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSC + aHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSC + aHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCWWdHmMvro//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/y+uj/1tpSZRoeVSCaHlUgmh5VIJoeVSC + aHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSC + aHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSC + aHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSCaHlUgmh5VIJoeVSC + aHlUgmh5VIJASzRWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoyemi/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//J6aL/AAAAIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7E453/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/8Tjnf8AAAAcAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGK/Ljf/Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/r8uN/gAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX + r8uN/tDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp/+wzI79AAAAEgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSwzI3+0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/7HOjvwAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAELHNjvzQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ss+P+gAAAAoAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKss+P+tDxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp/+z0JD5AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAABOxzY780PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/7LOj/sAAAAP + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzspWs3tpf/Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ze2l/zY/K1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB4i2Cw0PGn/9Dxp//Q8af/0PGn/9Dxp//E4535xOOe9tDxp//Q8af/0PGn/9Dxp//Q8af/ + fJBjqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFaW/hPnQ8af/0PGn/9Dxp//Q8af/ + 0PGn/4KXaLeGnGyy0PGn/9Dxp//Q8af/0PGn/9Dxp/+mwYb2AAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABMWD11z/Cm/9Dxp//Q8af/0PGn/9Dxp//O7qX/QEs0YURPN1zO7qX/0PGn/9Dxp//Q8af/ + 0PGn/8/wpv9PXEBvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIiebeDQ8af/0PGn/9Dxp//Q8af/ + 0PGn/5+4f/UAAAAPAAAADKG6gfLQ8af/0PGn/9Dxp//Q8af/0PGn/4uhcNsAAAADAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAxOSdcyuqi/9Dxp//Q8af/0PGn/9Dxp//Q8af/cYNboAAAAAAAAAAAdYhemtDxp//Q8af/ + 0PGn/9Dxp//Q8af/yuqi/zU9KlUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIKXaNjQ8af/0PGn/9Dxp//Q8af/ + 0PGn/7fUk/4WGhI3AAAAAAAAAAAYHBQxuNWT/tDxp//Q8af/0PGn/9Dxp//Q8af/hZpr0wAAAAMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAA3Pyxlyuqi/9Dxp//Q8af/0PGn/9Dxp//Q8af/fpNmwwAAAAAAAAAAAAAAAAAAAACCl2m9 + 0PGn/9Dxp//Q8af/0PGn/9Dxp//K6qL/OkMvXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEJKpdejQ8af/0PGn/9Dxp//Q8af/ + 0PGn/77dmf8kKR1KAAAAAAAAAAAAAAAAAAAAACctH0S/3Zn/0PGn/9Dxp//Q8af/0PGn/9Dxp/+UrHfk + AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABZZ0eUz/Cm/9Dxp//Q8af/0PGn/9Dxp//Q8af/fJBkxgAAAAEAAAAAAAAAAAAAAAAAAAAA + AAAAAYCUZ8HQ8af/0PGn/9Dxp//Q8af/0PGn/8/wpv9da0qOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIicbPrLOj/zQ8af/0PGn/9Dxp//Q8af/ + 0PGn/7fUk/4iKBtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSseO7fUk/3Q8af/0PGn/9Dxp//Q8af/ + 0PGn/7PPkPslKh05AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAA+InW3d0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/b4FZrQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAc4Vcp9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/4uhb9kAAAANAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXGpKp8/wpv/Q8af/0PGn/9Dxp//Q8af/ + 0PGn/6C5gfMGBwUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHCAYcoruC8dDxp//Q8af/ + 0PGn/9Dxp//Q8af/z/Cm/19uTKEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAERPN3DD4p3/0PGn/9Dxp//Q8af/0PGn/9Dxp//H5qD/QUw1cgAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABFUDhrx+ag/9Dxp//Q8af/0PGn/9Dxp//Q8af/w+Kd/0lUO2kAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeIxhHrsqM+9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/3eKYMMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ7j2O9 + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/r8uN+SAmGkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + DQ8LMqC5gfHQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp/+btH3wAwQDIQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAx6dtn7t0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + oryC7g8RDC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABATDSeUrHfo0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + uNWU/iw0JFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAADA3Jk651pT+0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/lq555RIVDyMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASFQ8n + lq555NDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/8fnoP9NWj6LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFFeQYTH56D/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/mbF74BQXECQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBMNL5Wsd+bQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//P8Kb/ + ZndStQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAA2p7Va/P8Kb/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/l6954xIUDioAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMoHEGdtX7u + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PCn/3qNYs0AAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADH2QZMjQ8Kf/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/n7h/6yYsHjwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAxOShhq8aJ+NDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp/+HnGza + AAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFYqfb9XQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + rMiK9jU9KlsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVGFDk7rYlf7Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/jaRx3goMCB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + DA4JG5Cmc9rQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/u9iW/lhmRowAAAAFAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAInaIXsjL7KP/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/4+lc9wJCgcf + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgwIHJKpddfQ8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/y+yj/3mMYcMAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADpDLmCctX3x0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp/93iV/RAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAF3mNYczQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/563f+4+SDJa + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAUGBB9rfFa0wuGc/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//L66P/aHlUvQEBARAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBDmt8VrfL66P/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/8LhnP9vgFmuBgcFGwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdFUDh1nrd+8tDxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/vtyZ/1NgQ5oAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFdlRpO/3Zn+0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp/+fuIDwSVU7bwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAElKx5Q + hJlq2Mvro//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/6nEiPc5Qi5pAAAAAQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAD1HMWKqxYn20PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//L66P/h5xs0yguIEoAAAAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAEZHRRDfpJlxMHfm//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/87vpf+InW3bFxsSNQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkdFDGKoG/Xzu+l/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/wd+b/4KWaL4bIBY9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImKx5Lf5JmwrjVlP/Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp/+51pX+XmxLoAAAAA8AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAxhcU6ZudeV/tDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/7nWlP6Cl2m9KTAhRAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAw9RzFqh5xs1sHfm//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + j6Zz5SsxIk8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuNSVJ + kal14dDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//B35v/jKJwzkJNNWEAAAAK + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwOCjVldVGWmbF78Mzso//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/sMyN/VxqSpYAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAlGj55jWGq + rcmL+dDwp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/8vro/+yz4/+n7mA7Ziwes2OpXKtYXBOagAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACDl2mn0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//A35v/i6Jw21dlRn0AAAAe + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPEhIvq9XV+sz////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///6zX1/kQFBQq + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaW2lJd4+lc9bB35v/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp/+HnGyiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHeKX4zQ8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/8Pinf+Qp3PlantVkxkdFDoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAHSRkbfM////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///3iVlLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAARsgFjVvgFmNk6p24cTjnf/Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/3uPY4cAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYG9NcdDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/rMiK/42jcdJhcU6HGBwTOgAAAAMAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDw82tOHh/sz////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + teLi/Q0QEDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC + Gx8VNGV1UYKRqHTMrciL/dDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/ZHRQbQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFTzdX + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ze6l/6zIiv6Qp3TaeYxhnT5IMl0AAAAa + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAG+KiqPM////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////co+PnQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVQkw1WH2RZZiUq3fV + rcmL/c3upf/Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp/9JVTtSAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUZET3M7KP/0PGn/9Dxp//Q8af/xOSe/6vGif2Uq3ff + iJ1tsmZ3UoApMCFNAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAABs0Kx9NfWZLfZyAXqWykmvEtJRs2cumeujKpnnruZdv3rCQasaRd1ecQTYnXAAAABAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQnMPD9cz////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z///+exsbyAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1FOSpX + l3talrWVbcG8mnHa0Kp95NCrfeK4l27Vt5Zuv6KFYZ+DbE93OC4hSQAAABYAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASLTQkR2t6VXyJnm6wlqx43a3HivvE457/ + 0PGn/9Dxp//Q8af/zOyj/xgcEzcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAHXyQZLuAlWedZnZSfUNONloNDws0AAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOOS8iU450VZqykmvc1rCB/fzPl///0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/8z5f/v5xy8mlWP4gAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAADE9PV7I+vr/zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8j6+v80QUFYAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAluWkKCwZ507/zPl///0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf/8z5f/17CB/LeWbtaTeFiVPTIlTQAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACw8RDC9HUjlVantVeIWaa5iAlGe1AAAAGAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxANCdanYFescikePX6zZb/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /M+X/4RsT70AAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAe5qarMz////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///4CgoKYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKiXBSt/zPl///0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/6zZb/ + yqZ58qKFYatFOClUAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAARkVDzSDbE+cv51z8PnMlv//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//M6X/41zVMEAAAAIAAAAAAAAAAAAAAAA + AAAAAAAAAAWWu7vszP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////mL6+6AAAAAMAAAAA + AAAAAAAAAAAAAAAAAAAABpF3V7z8zpf//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//nMlf/Cn3TtiXBSlhwXES8AAAAB + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTctIVmegV/J5byJ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn/+s2W/2ZUPYIAAAAAAAAAAAAAAAAAAAAADhERL7vq6v/M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z///+76ur/EBQUKgAAAAAAAAAAAAAAAAAAAABrWEB8+s2W///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/5byK/qKFYcM7MCNTAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEE1J2mpimXe + 98qU///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/uZdv7gAAAAgAAAAA + AAAAAAAAAABMXl5kzP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z///9QZGRf + AAAAAAAAAAAAAAAAAAAABryacer/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ//fKlP+sjWfaRTgpYwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAABEM3KGOmiGTh+MuV///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/xxpH/HBcROAAAAAAAAAAAAAAAAHeUlJPM////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///3uYl48AAAAAAAAAAAAAAAAfGRIz8caR///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/4y5X/qYtl3Ug7K10AAAAD + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUeFkaegl/U+MuV///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf9KPS1T + AAAAAAAAAAAAAAAAiauru8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + jKqouQAAAAAAAAAAAAAAAFJDMUz/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/+MuV/6KFYc8oIRhBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAB2Ca06u5r2K/v/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/+86X/y8nHEUAAAAAAAAAAAAAAACSt7fbzP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z///+WtrXZAAAAAAAAAAAAAAAAMyofP/vOl///0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ/+a9iv6Hb1GoAAAAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNPy5mw6B18f/Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/TrX79 + AAAAGQAAAAAAAAAAAAAAAZi+vvTM////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///5vAwPEAAAAAAAAAAAAAAAAAAAAV061//P/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/GonfuUUMxYAAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAW + fWZLs+3Cjv//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/6OGYswAAAAAAAAAAAAAAAAAAAAOrdjY/Mz////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////rtnY+gAAAAkAAAAAAAAAAAAAAACoimXH + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/two7/gWpNrQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJR8WOa6PaeP/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/6zZb/ + TD4tZwAAAAAAAAAAAAAAAAAAABes19f/zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z///+t2Nj9AAAAEwAAAAAAAAAAAAAAAFBCMGH6zZb//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + sZFq3ykhGDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEE2J13NqHv3 + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/6qLZuAAAAAJAAAAAAAAAAAAAAAAAAAAGbPg4P/M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///7Pg4P8AAAAYAAAAAAAAAAAAAAAA + AAAAB62OaNv/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/z6p89UY5KlcAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABJPCx04bmH/f/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/pv4z/ + Ny0hVAAAAAAAAAAAAAAAAAAAAAAAAAAYrtra/8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////rtra/wAAABgAAAAAAAAAAAAAAAAAAAAAOzAjTurAjP7/0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn8/9GZ/f/Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn/4rmI/U0/Lm0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARzorduC4h/7/0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//M+X/3ZhR6gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABes19f+ + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z///+t2Nj9AAAAEgAAAAAAAAAA + AAAAAAAAAAAAAAAAe2VKovzPl///0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn7/9GZ/P/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/4biH/kw+LW8AAAAA + AAAAAAAAAAAAAAAAAAAAAEU5KV7huYf+/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf+jhmLa + AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADavW1vvM////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///6zY2PoAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANpohk1f/Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn+/9GZ/v/Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/4rmI/Uo9LFgAAAAAAAAAAAAAAAAcFxEyy6d69//Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/vpxy7goIBioAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + msDA8sz////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////ncXF7AAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAALCQcmwZ506//Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/v/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + zah79R4ZEi0AAAAAAAAABph8W9T/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/8+qfPYeGBI/ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRtbXVzP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z///+UurrPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGhM6 + 0ax+8//Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/m39dzwAAAAVURDJw+MuV///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/SrH73PDEkSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIOkpK/M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///4epqaoAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABANSdD1K5/9f/Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf/4y5X/WEg1asKfdeX/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/v5xy80A0JkUAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaYODgsz////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////bomJfQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABFOSo/wZ508P/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf7/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/Gonfh/9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ/7iWbukjHRU3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAnMTFLyPr6/8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8j6+v8qNTVG + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmHxczuplw5f/Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/v/Rmf7/0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//zPl/+egV/UDgwJIgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABChycn5zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////osvL9gAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAQDQofoYRhz/zPl///0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/v/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf/uw4//d2FHrAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAH+enrzM////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z///+Do6O3 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL + e2VKpu7Dj///0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/zql8+Ew+Lm4AAAABAAAAAAAAAAAAAAAA + AAAAAAAAABsAAAA1AAAAMgAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAO0pKY8n7+//M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////yfv7/z9OTl4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAADQAAACsAAAAuAAAAFgAAAAAAAAAAAAAAAAAAAAAAAAABUUMxZ9Cqffb/0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + +cyV/5Z7WtEeGRIwAAAAAAAAAAAAAAACHh4YQ4qKb5+zs5Dn29uv/vv7yf/09MP/zs6l/aGhgcg0NCpX + AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOlLm57sz////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z///+WvLzr + AAAACwAAAAAAAAAAAAAAAAAAAAAAAAABODgtUaamhcLQ0Kb79PTD//v7yf/b26/+uLiT4o+Pc5ohIRo+ + AAAAAQAAAAAAAAAAIhwUK5l+XMz5zJX//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/86pe/haSTaCAAAABwAAAAAAAAABMDAmUZiYetHs7L3/ + ///M////zP///8z////M////zP///8z////M/+zsvf95eWGtAAAACgAAAAAAAAAAAAAAAAAAAABPY2OE + y/39/8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////y/39/1NoaH4AAAAAAAAAAAAAAAAAAAAAAAAACH5+Zabt7b3/ + ///M////zP///8z////M////zP///8z////M/+zsvf+cnH3LMzMpTAAAAAEAAAAAAAAABl5NOHzQqn32 + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + 2bKC8f/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/+vBjf+MclS8 + EA0KKwAAAAAAAAAACgoIKIuLb77t7b7////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M//39yv94eGCwAAAABgAAAAAAAAAAAAAAAAAAABGPs7PozP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z///+RtbXl + AAAADgAAAAAAAAAAAAAAAAAAAAV8fGOq/f3K////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP/t7b7/j49yuAsLCSMAAAAAAAAAABIPCyaQdle268GN///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/9y0hO5ZSTZ598qU///Rmf//0Zn//9GZ/P/Rmf7/0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ//TIk/+hhGHYPTIlUgAAAAEAAAAAAAAAAUlJOmvFxZ31///M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M//f3xf9mZlKxAAAABQAAAAAAAAAA + AAAAADE9PVi45ub/zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////uObm/jRBQVIAAAAAAAAAAAAAAAAAAAADampVqvf3xf///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/xsaf805OP2QAAAAB + AAAAAAAAAAFCNidMpYdj0/TIk///0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/3ypT/ + Xk04cwAAAASBak28/c+Y///RmfX/0Znf/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//PHkv+oimXbU0QyYwAAAAUAAAAA + AAAAAAAAAA10c1yq7++/////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M//b3xv9hYU6KAAAAAAAAAAAAAAAAAAAAAFdtbZnI+fn/zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8j5+f9cc3OS + AAAAAAAAAAAAAAAAAAAAAGhoU4H398X////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z/7++//3h4YKQAAAALAAAAAAAAAAAAAAAEWEg1XayNZ9bzx5L/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmfj/0Zn7/c+Y/4VtULYAAAADAAAAAAAAAA50X0W9q4xngP/Rmfn/0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ/+K5iP6gg2DGPDEkVwAAAAUAAAAAAAAAAAAAAAAODgselJR30fz8yv///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M/9LTqfsQEA0r + AAAAAAAAAAAAAAAAAAAABV10dLDI+vr/zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////I+vr/YHh4qgAAAAQAAAAAAAAAAAAAAAASEg4n1NSq+f//zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + /PzK/5iYec0QEA0bAAAAAAAAAAAAAAAAAAAAA0E1J1Glh2PA47qI/v/Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/PXJk5KFbVC2 + AAAADAAAAAAAAAAAAAAAAAAAAAI1KyBBq4xm3vjMlf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/78SP/7CQauV7ZUqPDwwJLwAAAAAAAAAAAAAAAAAAAAAAAAAA + CQkHLaysiuT//8z////M////zP///8z////M////zP///8z////M////zP///8z///7M///+zP///8z/ + ///M////zP///8z////M////zP///8z////M/4WFa5wAAAAAAAAAAAAAAAAAAAAAAAAABVZsbJi35eX/ + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////t+Xl/1pxcZEAAAAE + AAAAAAAAAAAAAAAAAAAAAIuLb5b//8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M/6+vjOEKCggpAAAAAAAAAAAAAAAA + AAAAAAAAAAAQDQoqgGlNibSTbOHvxI///9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ//jMlf+uj2nZSTwsPAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF + Ny0hVpN5WLPDoHX08cWQ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/+m/jP+/nHL0p4lkwXVgRoEZFQ86 + AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkHTTDw5zs///M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + uLiU6gAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAC46OlGHqKjfyPr6/8z////M////zP///8z////M//// + zP///8z////M////yPr6/4msrNsyPz9LAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADvLyW5v//zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M/8bGnukoKCAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARwXETR6ZEl8 + rI1nvMKfdPDpv4z//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/8cWQ/8aid/CYfVutOzAjUQAAAAMAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcKCAYyUUIwWHhiSG2PdlZ6 + kXdXdlxMN2U0Kh9MBgUEKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmJh8y + wsKc7f//zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP/i4rX/AAAAIgAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAc0QEBefJubvKPLzPjM////zP//8cz//+zM////ocrK9YCgoLY3RUVZAAAABQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAB3i4rX////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M/8XFneoqKiIu + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwcGBCI4LiFGYE86YJp+XG+Zflxz + fWZLaVZHNFILCQcsAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0KJ7e3kun//8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M//z8yf8tLSQ6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQYGC7Da3TrE6/Q9 + xO31Na7Y2jEHCAgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTEoNfz8yf///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M/7q6leYODgsjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABenp4be + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z/+fnH/yUlHjkAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAcxJDxWelqVoJdvuMGLZamzSjZacwAAAA8AAAANTThebo9prq6ccr+7f12cmjUnQFEAAAAG + AAAAAAAAAAAAAAAAAAAAAAAAAAApKSEz+fnH////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z//v/N////zP///8z/ + ///M/6qqiNoAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIjY1xxv//zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP/h4bT/AAAAIAAAAAAAAAAAAAAAAAAAAAE0JkBckGmw4cuU9//Rmf//0Zn//9GZ///PmP3/ + kWqx4ZRstd3PmP3/0Zn//9GZ///Rmf//y5T3/5Nrs904KURWAAAAAQAAAAAAAAAAAAAAAAAAABvh4bT/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP/+/83//v/N////zP///8z////M/5GRdMEAAAAGAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGdnU5v8/Mr/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M/729l+4AAAAEAAAAAAAAAAABAQIU + ak6CscSP7//Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//8SQ7/9uUYerAgECEQAAAAAAAAAAAAAAA8DAmun//8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP/+/83/ + ///M////zP///8z//PzK/2xsV5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABCQjVd5+e5////zP///8z////M////zP///8z////M////zP///8z/ + ///L////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z/mJh6rgAAAAAAAAAAHRUjLoplqN/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+MZ6vbIBcnKgAAAAAAAAAA + nZ19qf//zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M//3/zv///8z////M////zP///8z/6Oi5/0dHOVcAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcGI8TEnfL//8z/ + ///M////zP///8z////M////zP///8z////M///8yf///sv////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M//n5x/8+PjJYAAAAABcRHEGec8Dw + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ//+fdcLtGRMfOwAAAABDQzVS+fnH////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z/x8ef7wgIBx8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAKKim7A///M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z/sLCN5gAAAAgyJT1IrX/T9tGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+vgNX0 + NidCQwAAAAazs4/i///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + jo5yuwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS0s8ZvLywf///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M//n5x/9dXEpzNSdBRK1+0/bRmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+uf9T0OipHP2FhTm35+cf////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP/y8sL/T09AYAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAABO6upXs///M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z/paSF3hkTHz6dc7/z0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ//+edMHwHBUiOKmoiNn//8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP+8vJfpAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampVjf7+y////8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M/+TjuP4nJSJtl2646dGZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+ZcLrmKyolZOTkuP7//8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M//7+zP9ubVqHAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAABvAwJr2///M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP/8/Mv/X15Pq4Jfn9bRmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/+0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ//+FYaLSZWVTof38yv///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M/8HBnPMAAAAXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbm5YiP7+y////8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M/5aVetVcQ3DA0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//tGZ//3Rmf/+0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//9gRnW3 + l5V/0f/+zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z//v3M/3BtX4MAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAizs4/q///M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP+4uJTsOStEpMmT9v/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf/90Zn//tGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/+0Zn/+tGZ//3Rmf/+ + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//8mT9v88LUicurmY6P//zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z/sa2V6AAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQqUPf3xv///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z/x8eg9iMeJICwgdf80Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//7Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/+0Zn//tGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//7GB2PsmICd3ycmh8///zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP/29cj/ + NzYuSwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACOjnKf///M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M/9PSq/gxMSlfj2iu5tGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//5FqseI3NixX1dWr9v//zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP+SknaaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALOzj9///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP/S0qj2PT0yTWZLfa3Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/+0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//2pOgqdDQjVI1NSp9P//zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M/7i4k9kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQz8+l/f//zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + w8Oc8CAgGkMwIztavovo/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ//7Rmf/+0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//vovo/jQmP1QjIxw9 + xcWe7v//zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z/0NCm/AAAAAwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvx8cH/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M/6ysieEVFREvAAAAFZhvuenRmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//mnG85gAAABIXFxIqr6+M3f//zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP/x8cH/AAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANfv7yf///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M//f3xf+EhGrB + AAAAFwAAAABeRXOc0Jn+/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Qmf7/ + Ykh3lwAAAAAAAAAUiIhtu/f3xf///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M//v7yf8AAAAtAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj + 5eW4////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP/b26/9XFxKhwAAAAUAAAAAHxcmNrOD2/zRmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+0hNz7IhkqMQAAAAAAAAAEYWFNgNzcsPv//8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z/5ua4/wAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXCwpvz///M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP/8/Mr/pqaF3ykpIUIAAAAA + AAAAAAAAAAB2Vo/A0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ//95WZS6AAAAAAAAAAAAAAAALS0kPamph9r8/Mr////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP/ExJ3wAAAAAwAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAJGRdLD//8z////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z/09Op+2VlUY4AAAANAAAAAAAAAAAAAAAALCA2RsKO7f/Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//8OO7f8wIztAAAAAAAAAAAAAAAAA + AAAAC2pqVIjU1Kr5///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M/5aWeKsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMpQ8fHoPT//8z+///M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z/3t6y/4yMcLcGBgUsAAAAAAAAAAAAAAAA + AAAAAAAAAAB+XJnC0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//4JfnrwAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBSiRkXSx39+y/v//zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zPzKyqLvNzcsPgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAXl5Lqf//zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + 3Nyw/YuLb7coKCA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAkPNLyJ5f/Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//vIrl/w4KES8AAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAsLCQ4kJBzst3dsfz//8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M/2RkUJ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OS5Mq6uJ2/T0w////8z/ + ///M////zP///8z////M////zP/n57j/traS4Xd3X4sLCwkpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAABvUYiZ0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//7Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ//7Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//dFWNkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + DAwKJXx8ZIa6upXc5+e5////zP///8z////M////zP///8z////M//T0w/+vr4zWPj4yRgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFKysjSYmJbYyqqoixvLyWwaysirSVlXeaZmZRbBQUEC8AAAAD + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZRttevRmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/90Zn//tGZ///Rmf/+ + 0Zn//tGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//tGZ//3Rmf/90Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+Xb7jm + AAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWFhIqa2tWZpubfJSwsI2w + w8Ocua6ui62OjnKHLy8lRAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAOChE5xZDw/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//tGZ//3Rmf/+0Zn//tGZ//7Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//tGZ//vRmf/90Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ//7Rmf//0Zn//9GZ///Rmf//0Zn//8WQ8P8PCxMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhAa23Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/+0Zn//tGZ//7Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//7Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//NGZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//11EcWcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAclSLhtGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//tGZ//7Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ//7Rmf/80Zn//9GZ///Rmf//0Zn//9GZ///Rmf//dVaPgwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByU4uF0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf/+0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/k0Zn//NGZ///Rmf// + 0Zn//9GZ//91Vo+BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAACgdMVHLlfj/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//82W+v9tUIWw + cVKJqs2W+v/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//y5X4/ysfNEwAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQwJDjM0Jj9RY0h5Z2JId3FjSHhvW0NvYTQmQE0AAAAt + AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAoOSlFR2BGdVxqToJoaU2AaWpNgWA3KENNDQoQLgAAAAsAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ///////////////////////////////////////////4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAA + AAAAH/gAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAA + AAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAf/////////4AB//////////////////+AAf////////////// + ////gAH//////////////////4AB//////////////////+AAf//////////////////gAH///////// + /////////4AB//////////////////+AAf//////////////////gAH//////////////////4AB//// + //////////////8AAP//////////////////AAD//////////////////gAAf/////////////////4B + gH/////////////////8AYA//////////////////AGAP/////////////////gDwB////////////// + ///4A8Af////////////////8AfgD////////////////+AH4Af////////////////AD/AD//////// + ////////wB/4A////////////////4Af+AH///////////////8AP/wA///////////////+AH/+AH// + /////////////AD//gA///////////////gA//8AH//////////////wAf//gA//////////////wAP/ + /8AD/////////////4AH///gAf////////////8AD///8AD////////////8AB////gAP/////////// + +AA////8AB///////////+AAf////gAH//////////+AAP////8AAf/////////+AAP/////wAB///// + ////+AAH/////+AAH////////+AAD//////wAAf///////8AAD//4Af//AAA///////4AAD//4AB//4A + AB//////wAAB//8AAP//gAAD/////AAAB//+AAB//+AAAD///wAAAB///AAAP//4AAAA//gAAAB///wA + AD///gAAAB/4AAAD///4AAAf///AAAAf+AAAD///8AAAD///8AAAH/gAAH////AAAA////4AAB/4AAP/ + ///wAAAP////wAAf+AA/8AA/4AAAB/wAD/wAH/gH/4AAD+AAAAfwAAH/4B////wAAAfgAAAH4AAAP/// + ///gAAADwAAAA8AAAAf/////gAAAA8AAAAPAAAAB/////gAAAAHAAAADgAAAAH////gAAAABwAAAA4AA + AAAf///gAAAAAcAAAAOAAAAAB///wAAAAAHAAAADgAAAAAP//wAAAAABgAAAAYAAAAAA//4AAAAAA4AA + AAHAAAAAAH/8AAAAAAOAAAABwAAAAAA/8AAAAAADgAAAAcAAAAAAD+AAAAAAB4AAAAHgAAAAAAfgAAAA + AAeAAAAB4AAAAAAHwAAAAAAPgAAAAfAAAAAAA4AAAAAAH4AAAAH4AAAAAAEAAAAAAD/AAAAD/AAAAAAA + AAAAAAB/wAAAA/4AAAAAAAAAAAAA/8AAAAP/AAAAAAAAAAAAAf/AAAAD/4AAAAAAAAAAAAP/wAAAA//A + AAAAAAAAAAAH/+AAAAf/4AAAAAAAAAAADg/gAAAH8HAAAAAAAAAAADAB4AAAB4AMAAAAAAAAAABAAPAA + AA8AAgAAAAAAAAABgABwAAAOAAGAAAAAAAAAAgAAOAAAHAAAQAAAAAAAAAwAADgAABwAADAAAACAAAA4 + AAAcAAA4AAAcAAABwAAB8AAAHgAAeAAAD4AAA/AAB+AAAA8AAPAAAAfgAA/+AH/AAAAPwAPwAAAD/gB/ + ////gAAAD/gf8AAAAf///////wAAAA+AAfAAAAD///////4AAAAOAABwAAAAf//////8AAAADAAAMAAA + AD///////AAAABgAABgAAAA///////gAAAAQAAAIAAAAH//////wAAAAAAAAAAAAAA//////8AAAAAAA + AAAAAAAP/////+AAAAAAAAAAAAAAB//////gAAAAAAAAAAAAAAf/////wAAAAAAAAAAAAAAD/////8AA + AAAAAAAAAAAAA/////+AAAAAAAAAAAAAAAH/////gAAAAAAAAAAAAAAB/////4AAAAAAAAAAAAAAAf// + //+AAAAAAAAAAAAAAAH/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAP////8AAABAAAAAAAIA + AAD/////AAAAgAAAAAABAAAA/////wAAAwAAAAAAAMAAAP////+AAAcAAAAAAADgAAH/////gAAOAAAA + AAAA8AAB/////4AAPgAAAAAAAHwAAf/////AAP4AAAAAAAB/AAP/////4Af8AAAAAAAAP+AH//////// + /AAAAAAAAD////////////wAAAAAAAA////////////8AAAAAAAAP////////////AAAAAAAAD////// + //////wAAAAAAAA////////////8AAAAAAAAP////////////gAAAYAAAH////////////8AAAfgAAD/ + ////////////wAAf+AAD//////////////gB//+AH/////////////////////////////////////// + //////////8oAAAAQAAAAIAAAAABACAAAAAAAABAAADDDgAAww4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAb4FZTrPQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDr + s9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDr + s9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDr + s9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDrs9CQ67PQkOuz0JDr + s9CQ67PQkOtvgVlOAAAAAAAAAAAAAAAAAAAAAIGVZ1XQ8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/gZVnVQAAAAAAAAAAAAAAAAAAAACBlWdV0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/4GVZ1UAAAAAAAAAAAAAAAAAAAAA + QEs0Fmh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRB + aHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFUYUNQze6l/9Dxp//Q8af/ + 0PGn/9Dxp//N7qX/V2RGTmh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRB + aHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFoeVRBaHlUQWh5VEFASzQW + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAADsXknv/Q8af/0PGn/9Dxp//Q8af/xeSe/wAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAvA3pr+0PGn/9Dxp//Q8af/0PGn/8Hfm/4AAAAIAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGweCb/dDxp//Q8af/0PGn/9Dxp//C4Jv8 + AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKjEiG8jnoP7Q8af/ + 0PGn/9Dxp//Q8af/yOeg/i41JRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAIuhcG/Q8af/0PGn/77cmOy/3Znp0PGn/9Dxp/+PpnNtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAGrxonV0PGn/9Dxp/+fuYCZoryCltDxp//Q8af/rciL0gAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoeVROz++m/9Dxp//K6qL/WmhINl9uTDPK6qL/ + 0PGn/8/vpv9tfldLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEq8aJ09Dxp//Q8af/ + psCFwwAAAAAAAAAAqMOHwNDxp//Q8af/rciL0AAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + gpdodNDxp//Q8af/yuqi/2Z2UkIAAAAAAAAAAGp7VT/K6qL/0PGn/9Dxp/+Gm2txAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAVGFDLsDemvbQ8af/0PGn/563f7AAAAAAAAAAAAAAAAAAAAAAobuBrdDxp//Q8af/ + wN+a9VhmRysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHiMYErHNjtrQ8af/0PGn/7zZl/BASjMdAAAAAAAAAAAAAAAA + AAAAAERPNhu925jv0PGn/9Dxp/+yz4/YICYaEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBMNCqO9g8LQ8af/0PGn/8rqov9zhVxZ + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd4pgVsrqov/Q8af/0PGn/6W/hcASFQ8JAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBMNDKO8g7zQ8af/ + 0PGn/9Dxp/+KoG+RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOpHKN0PGn/9Dxp//Q8af/ + pb+EuRIUDgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + MTkoGKjCh8nQ8af/0PGn/9Dxp/+ZsXuwAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAA5u0fazQ8af/0PGn/9Dxp/+qxYjHNT0qFwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAYnJPPLXRkeTQ8af/0PGn/9Dxp/+fuYC2CgwICAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAMDgkHoryCs9Dxp//Q8af/0PGn/7bTkuJnd1I5AAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAFBgQIjKJwhcTjnfzQ8af/0PGn/8/wpv+SqXWnAAAABgAAAAAAAAAA + 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 + zP///8z////M////zP///8z////M////zP///42wsHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAbHxUOhJlqXKrFiK2515Xy0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/3GDWz0AAAAAAAAAAAAAAAAAAAAAMTknJc/wpv/Q8af/xOOd/7PQkOSqxYmzmLF6fGNzTz8AAAAG + AAAAAAAAAAAAAAAAAAAAB2FQOjOoimVawJ1zcMKfdHKihWFYOC4iGwAAAAAAAAAAAAAAAAAAAAAAAAAE + r9ra5sz////M////zP///8z////M////zP///8z////M////zP///8z///+w3NzjAAAAAwAAAAAAAAAA + AAAAAAAAAAA9MiQZqIplVsaid2/EoXZurY5oV2dUPjAAAAAFAAAAAAAAAAAAAAAAAAAABWh4UzyctH15 + rciLsLTQkOPE457+0PGn/8/wpv81PisiAAAAAAAAAAAAAAAAAAAAAAAAAAd+kmVWV2VGNgoMCBEAAAAA + AAAAAAAAAAAAAAAAAAAAADguIhmwkGlt0Kp9u+O6iPb+0Jn//9GZ///Rmf//0Zn//9GZ/+/Ej/yvkGmU + AAAAAwAAAAAAAAAAYXl5Qsv+/v/M////zP///8z////M////zP///8z////M////zP///8z////M//// + y/7+/2V/f0AAAAAAAAAAAAAAAAK0k2yQ78SQ+//Rmf//0Zn//9GZ///Rmf/+0Jn/5byJ9NOtf7i0lGxq + PjMlFwAAAAAAAAAAAAAAAAAAAAAAAAAADA4KD1xqSjOCl2lTAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABfmdMScqmebTuw4/7/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//tCZ/7KSa5MAAAAAAAAAAJrBwYjM////zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z///+excWFAAAAAAAAAAC2lW2P/tCZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ/+/Ej/rNqHuxg2xPRgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGFbVBTzql80f3PmP//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/rwI37GBQPEAAAAACq1dW9zP///8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////rdjXuwAAAAAbFhAO7MGN+v/Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//3PmP/Rq33PinFTUAAAAAEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBbQzPKpXnG/dCY///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//tCY/z4zJSYAAAAA + sd3d5cz////M////zP///8z////M////zP///8z////M////zP///8z////M////zP///7Lc3OQAAAAA + RDgpI/7QmP//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ//3QmP/NqHvDdWBGMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaiKZYbxxZD7 + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ/+C4hvIAAAAGAAAABLjl5fvM////zP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z///+55ub6AAAAAgAAAAXiuYfw/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//HGkfutjWiDAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAA + QTYnF8ikeMX/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf+5mG+UAAAAAAAAAAy+7e3/zP///8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////vu7u/wAAAAsAAAAAvZtykf/Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/8umesJGOSoW + AAAAAAAAAAAAAAAARzorHdavgNz/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/gt4bpNy0hFQAAAAAAAAAMvezs/8z////M//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///73s7P4AAAALAAAAADswIxPhuYfn + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf3/0Zn+ + /9GZ///Rmf//0Zn/2LGB2kw+LRwAAAAAHBcRDNOtftT/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/wxJD7gmtORQAAAAAAAAAA + AAAAA7jm5vvM////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z///+55+f5 + AAAAAgAAAAAAAAAAiG9RQvDFkPr/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ/v/Rmf//0Zn//9GZ///Rmf/VroDSHhkSC7OTa5L/0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/0yJL9 + lntaXwAAAAAAAAAAAAAAAAAAAACw3NzgzP///8z////M////zP///8z////M////zP///8z////M//// + zP///8z////M////st7e3gAAAAAAAAAAAAAAAAAAAACbf11c9ciT/P/Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/7eWbo/xxpH5 + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf/uw4/5j3VWXAAAAAAAAAAAAAAAAAAAAAAAAAAAp9HRs8z////M////zP///8z////M//// + zP///8z////M////zP///8z////M////zP///6rU1LAAAAAAAAAAAAAAAAAAAAAAAAAAAJR6WVnvxJD5 + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn+ + /9GZ///Rmf/yxpH3/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/guIfqg2tOQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI2wsHHM//// + zP///8z////M////zP///8z////M////zP///8z////M////zP///8z///+RtbVuAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAiHBSPuK5iOn/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//3QmP/EoXa+TD4tHB0dGBGjo4Jiy8uik8fHn5CAgGdI + AAAAAAAAAAA0QUEcvu3t+8z////M////zP///8z////M////zP///8z////M////zP///8z///+/7u76 + OEZGGgAAAAAAAAAAhoZrRczMo4zPz6aQp6eGXyAgGhBRQjAax6N3u/3QmP//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/2ypT8/9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/+O6iO6Xe1ppCAgHDKysiYTk5Lbz + ///M////zP///8z/+vrI/66ui5oAAAACAAAAAJa7u5/M////zP///8z////M////zP///8z////M//// + zP///8z////M////mb+/nAAAAAAAAAABsrKOlvr6yP///8z////M////zP/l5bfysLCNgQoKCAqbf11m + 5LuJ7f/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/3ypT7 + rI1njv7Rmfz/0Zn2/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/6b+M9reWbpA8MSQV + a2tVLtPTqdf//8z////M////zP///8z////M////zP/9/cr/pKSEkAAAAAAxPT0Wst7e5cz////M//// + zP///8z////M////zP///8z////M////s+Dg5DRBQRUAAAAAqamIi/39yv///8z////M////zP///8z/ + ///M////zP/V1avVcHBaLEE1JxO7mXCN6sCM9f/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf3+0Zn+sJFqiwAAAAR7ZUpg6sCN9f/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//vOl//Vr4Dd + tJRsfTkvIhcAAAAAhIRqTOfnufT//8z////M////zP///8z////M////zP///8z////M//T0w/5sbFYy + AAAAAFhubi6y3t7lzP///8z////M////zP///8z////M////s+Dg41xzcywAAAAAcnJbL/X1xP7//8z/ + ///M////zP///8z////M////zP///8z////M/+npuvKJiW5JAAAAAD4zJRW4l2962LGB2vvOl///0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/rwY31pYhjYQAAAAMAAAAAAAAAADQqHxesjWdrz6p8otmygrnXsIG2 + zql7nLOSa25YSDUvAAAAAAAAAAAAAAAAk5N2VfHxwfr//8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z/v7+ZhAAAAAAAAAAALjo6FJS5uZGx3t7szP///Mz///qy39/ql729jjI/PxMAAAAA + AAAAAMPDnIH//8z////M////zP///8z////M////zP///8z////M////zP///8z/8vLB+piYelIAAAAA + AAAAAAAAAABeTTkst5ZubNGsfpras4Oz3LWEttOtfp+xkWppOC4iFQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhIRqR+7uv/r//8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z////M/9TUqZwAAAAAAAAAAAAAAAJhR3Y+jWesYHuFmD56g5c4 + k2yzXGZKfDsAAAABAAAAAAAAAADX16ya///M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP/v77/5iopuRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYmJPKefnufH//8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP/BwZuEAAAAAF9GdDKqfM/P + z5j9/9GZ///Cju34w4/u99GZ///PmP3/rH7SzGRJei8AAAAAxcWegf//zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP/+/83////M/+jouu9oaFMnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + BwcGCdLSqNP//8z////M////zP///sv////M////zP///8z////M////zP///8z////M////zP/9/cv/ + enphQXRVjVjBjev30Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Cjuz2eFiTVX9/Zj/9/cv/ + ///M////zP///8z////M////zP///8z////M////zP///8z//v/N////zP///8z/1dWq0QgIBwgAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAK6ui4r//8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z/0tKo1n5cmmPIk/T90Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//8mT9fyDYKBf1NSq0///zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M////zP+yso6HAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAF5eSyjv77/6///M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z/+PjH/3xrfZ3EkPD80Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//xZDw+4FwgZf4+Mf////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP///8z/7+/A+WJiUCYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwJmm///M////zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M/52WiNDAjOr10Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//7Rmf//0Zn//9GZ///Bjev0oZqMyv//zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z////M////zP/CwZ2jAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwMCYW + 6+u8+v//zP///8z////M////zP///8z////M////zP///8z////M////zP///8z////M/7u6l9irfdDo + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//tGZ///Rmf//0Zn//9GZ///Rmf/90Zn//9GZ///Rmf// + 0Zn//61/0+W+vZrV///M////zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + 6um++TMyKxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAApKSDX///zP///8z////M////zP///8z////M////zP///8z////M////zP///8z/ + ///M/9LSqc+Qa6280Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//lG6xuNXVq8z//8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M////zP+oqIddAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnJoY7//8z////M////zP///8z////M////zP///8z/ + ///M////zP///8z////M/8XFnsBmTHpnzJb5/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//8yW+f9qT39iyMigvf//zP///8z/ + ///M////zP///8z////M////zP///8z////M////zP///8z/zc2kiwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzaSV///M////zP///8z/ + ///M////zP///8z////M////zP///8z/9vbF/quriZMWEBoTtYXd5tGZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + t4bf5BgSHRGwsIyQ9vbF/v//zP///8z////M////zP///8z////M////zP///8z////M/9LSqJIAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + q6uJav//zP///8z////M////zP///8z////M////zP///8z/2tqu4oSEaUsAAAAAkWqxgdGZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ//+VbbZ+AAAAAImJbkjc3LDg///M////zP///8z////M////zP///8z/ + ///M////zP+wsI1nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAADMzKRHT06nm///M////zP///8z////M////zP/f37PtqqqIfQYGBQsAAAAA + DAkPDbqI4/DRmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//vInl7g4KEQwAAAAABwcFCq6ui3rh4bTr + ///M////zP///8z////M////zP/W1qviNzcsDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAi4twS8/PpbXf37Pc2tqu08zMo6adnX5c + CwsJCgAAAAAAAAAAAAAAAIRhoWLRmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/+ + 0Zn//9GZ///Rmf//0Zn//9GZ//7Rmf/+0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+IZKZf + AAAAAAAAAAAAAAAADAwKCaKiglnQ0Kaj3d2w0eLitdnS0qiykZF0SAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpe86p0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ//7Rmf/+0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//dGZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//tGZ///Rmf//q37RpgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsIHXwtGZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ//fRmf/+0Zn//7KC2cEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAJVttYrRmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//y5X4/49prpKSa7KP + y5X4/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+Yb7mHAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAFBAcKl2+4qcmT9v7Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Olvv/ + rH7R0W9RiE4AAAAAAAAAAHRVjUuuf9TOzpb7/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//8mU9v6acbym + BgQHCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMOF0rlm63dal8zqGwgde1 + sIHXtKh7zZ6VbbZ0VD5nMgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAFhBbC+ZcLpxq33Qm7OD27C0hNuy + rH7Rnplwu3NRO2MoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////// + wAAAAAAAAAPAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAP////wD/////////AP////////8A/////////w + D/////////AP////////4Af////////gB////////8AD////////wYP///////+Bgf///////wPA//// + ///+B+B///////wP4D//////+A/wH//////wH/gP/////8A//AP/////AH/+AP////wB//+AP///8AP4 + H8AP//+AD/AP4AH/8AAf4Af4AA/AAH/AA/4AA8AD/8AD/8ADwBwHgAHgOAPB4AGAAYAHg/8AAYABgAD/ + /AAAgAEAAD/4AACAAQAAH+AAAAAAAAAHwAABAACAAAOAAAEAAIAAAQAAAwAAwAAAAAAHgAHgAAAAAA+A + AfAAAAAAH4AB+AAAAAAAgAEAAAAAAABAAgAAAAAAAEACAAAAAAQAIAQAIADAGAAwDAAYA//wADAMAA// + /+AAIAQAB///wAAAAAAD///AAAAAAAP//4AAAAAAAf//gAAAAAAB//8AAAAAAAD//wAAAAAAAP//AAAA + AAAA//8AAAAAAAD//wAQAAAIAP//ACAAAAQA//+A4AAABwH////gAAAH/////+AAAAf/////4AAAB/// + ///gAAAH//////gDwB//////////////KAAAADAAAABgAAAAAQAgAAAAAAAAJAAAww4AAMMOAAAAAAAA + AAAAAAAAAAAAAAACYnJPL2h5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQx + aHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQx + aHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQx + aHlUMWJyTy8AAAACAAAAAAAAAAAAAAALxOSe9NDxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/8TknvQAAAALAAAAAAAAAAAAAAALxOSe9NDxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/8TknvQAAAALAAAAAAAAAAAAAAACYnJPL2h5VDFoeVQx + aHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQx + aHlUMZOqdnDQ8af/0PGn/9Dxp//Q8af/la14bmh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQx + aHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWh5VDFoeVQxaHlUMWJyTy8AAAACAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAI6kckjQ8af/0PGn/9Dxp//Q8af/kah0RwAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWsd0TQ8af/0PGn/9Dxp//Q8af/m7N8QQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmxe17Q8af/z/Cn/8/wp//Q8af/ + nLV9XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALDMjbnQ8af/ + uNWU1LrXldHQ8af/ss+PtgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + Z3hTLMrpov3Q8af/nrd/daG7gXPQ8af/yuqi/Wx9VyoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + 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 + zP///8z////M////zP///8z////M////zP///8z////B8fH3VGhoDqKFYTv8zpf+/9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/1yZP51a+Aq4lwUi0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAGxZQRXLp3qd9sqU/P/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + vJpxWG2IiDDL/v7/zP///8z////M////zP///8z////M////zP///8z////M/v7/cYiGL8GedFb/0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//fKlPzOqXybcl5EFAAAAAAAAAAA + AAAAAAAAAAAAAAAAnoJfQ+e9i+X/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf/zx5L4dF9GH4qsrEXM////zP///8z////M////zP///8z////M////zP///8z////M//// + jrGxQ3tkSh30yJL4/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + 6L+L5KOGYkEAAAAAAAAAAAAAAACniWRe9MiT+f/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/GoneTAAAAAI2xsUnM////zP///8z////M////zP///8z////M//// + zP///8z////M////j7OzSAAAAADJpXiR/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf3/0Zn//9GZ//XJk/irjGdcAAAAAJ+CX0b1yZP6/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/9qyg8lFOSkLAAAAAIGhoTvM////zP///8z////M//// + zP///8z////M////zP///8z////M////hqenOQAAAABKPS0K3LSEx//Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/2yZP6pIZiROS7idz/0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/3raFz3FdRBYAAAAAAAAAAFtychvF9vb9 + zP///8z////M////zP///8z////M////zP///8z////G9/f9YXl5GQAAAAAAAAAAd2JIFeC3hs3/0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/5ryK2v/Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//7Qmf/Rq323Y1E8EQAAAAAAAAAA + AAAAABQZGQO25OTbzP///8z////M////zP///8z////M////zP///8z///+45ubZFxwcAwAAAAAAAAAA + AAAAAGlWPxDTrX+0/tCZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/8saR97iWbnhqalUj + yMigft7esq/S0qiVhIRqJAAAAACexsaDzP///8z////M////zP///8z////M////zP///8z///+hycmB + AAAAAImJbiPV1aqT4eG0rcvLonxwcFkhu5pwdvLHkfb/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ/+a9it7/0Zn9/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//rNlv7VroC3 + fmhMMLu7ln/w8MD1///M////zP///8z/6em76IGBaCtTaGcWuujo58z////M////zP///8z////M//// + zP///7vp6eZYbm4UiIhsKevrvOf//8z////M////zP/x8cH0v7+ZfIRtUC7XsIG0+s2W/f/Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/6L6L3I91VjHYsYG7/9GZ///Rmf//0Zn//9GZ///Rmf/vxI/3 + 1a+Aqph8WzxFRTcR0tKouf7+y////8z////M////zP///8z////M/9zdsc8KCggDf56ePr7t7fHM//// + zP///8z////M////v+7u74OjozwMDAkD39+yzf//zP///8z////M////zP///8z//v7L/9TUqrdKSTsQ + nYFeOtixgqjwxZD2/9GZ///Rmf//0Zn//9GZ///Rmf/juojAlntaLwAAAAAAAAAEn4JfRtCrfX3as4OM + z6l8eamLZks1KyAOAAAAAGNjTxHd3bHK///M////zP///8z////M////zP///8z////M//r6yP6JiW0o + AAAAAF93dx+mz8+Txvb3z8b398uo0tKRY3x8HgAAAACPj3In+/vJ/v//zP///8z////M////zP///8z/ + ///M////zP/f37PIaWlUEAAAAAA6LyMMro9oSdKsfnfetoWJ061/e6SGYkQAAAADAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsVBtTUqr3//8z////M////zP///8z////M////zP///8z/ + ///M//z8yv+Xl3kvHRYkBZlwu2y4h+G/q33Rnq1/05y6iOO9nHK/aiAYJwWenn8t/PzK////zP///8z/ + ///M////zP///8z////M////zP///8z/1tasux0dGAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwcGajf//zP///8z///7L////zP///8z/ + ///M////zP///8z////M/+zsve9EOEofsIHXv9CZ/v/Rmf//0Zn//9GZ///Rmf//0Jn+/7KC2b1JPE8d + 7e2+7v//zP///8z////M////zP///8z////M////zP/+/83////M/8TEnYoAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACbm3w/9/fG/P//zP///8z/ + ///M////zP///8z////M////zP///8z////M/7u4mqa4h+HR0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ//+6iOPPvrudov//zP///8z////M////zP///8z////M////zP///8z////M//f3xvygoIA9 + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUlHgPa2q/J + ///M////zP///8z////M////zP///8z////M////zP///8z/4OC17ql+y9fRmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//rIDO1OLituz//8z////M////zP///8z////M////zP///8z/ + ///M////zP/c3LHHKCchAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAJubfED8/Mn////M////zP///8z////M////zP///8z////M////zP/x8cH3n4Cv2tGZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//dGZ///Rmf//0Zn//6GCstby8sL3///M////zP///8z/ + ///M////zP///8z////M////zP/8+8r/nZqDPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAANLSqI7//8z////M////zP///8z////M////zP///8z////M//LywfaZhpmn + zZb7/tGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//86W+/6eip2j + 8vLC9f//zP///8z////M////zP///8z////M////zP///8z/1NSqjAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODgs7D//8z////M////zP///8z////M////zP///8z/ + 6em66YyGeFW/jOnn0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///AjOrmkYt9Uurqu+j//8z////M////zP///8z////M////zP///8z/4+O2rQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTUqZb//8z////M////zP///8z/ + ///M//z8yv/R0ae1d3dgHaZ5yo/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//qHvNjX19ZBzT06mz/PzK////zP///8z////M////zP///8z/ + 19eslAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzXDPw8MD4 + ///M////zP/4+Mf829uvxp2dfkwAAAABRTNVFMWQ8PbRmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//xZHx9ko2WhMAAAAAoqKCSt3dscT5+cf8 + ///M////zP/x8cH3eXlhMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAACIiG0qx8efYry8l1qAgGYmAAAAAQAAAAAAAAAAnHK/ZtGZ///Rmf//0Zn//9GZ///Rmf// + 0Zn//tGZ//7Rmf//0Zn//9GZ///Rmf//0Zn//dGZ///Rmf//0Zn//9GZ///Rmf//0Zn//591w2QAAAAA + AAAAAAAAAAGGhmskwcGaWMvLol+OjnEoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr4DWkNGZ///Rmf// + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//7Rmf/6 + 0Zn//7GC2I4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + i2aqU82W+v7Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///KlPf7nHK+h590woXKlPf70Zn//9GZ///Rmf// + 0Zn//9GZ///Rmf//zZb6/o9prlEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAIllqFO1hNy+wY3s7MWQ8PrEkPD1u4nk261/05l3V5EzAAAAAAAAAAB8Wpcx + r4DWl7yK5tnGkfHzxpHy+MKO7eu3ht+8jWesUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIhkpB2JIeA5INVgLAAAAAgAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAFNOV4KaU2ADSUbLQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAQAAgAAAAAABAACAAAAA + AAEAAIAAAAAAAQAA///4H///AAD///gf//8AAP//+B///wAA///wH///AAD///AP//8AAP//4Af//wAA + ///hh///AAD//8GD//8AAP//g8H//wAA//8H4P//AAD//gfgf/8AAP/4D/Af/wAA/+A//Af/AAD/gHw+ + Af8AAPgB8A8AHwAAgAPwD8ABAACAD+AH8AEAAMAAYAYAAwAAzAAAAAAzAAD4AAAAAB8AAOAAAAAABwAA + wAAAAAADAACAAAAAAAEAAAAAQAIAAAAAAADAAwAAAAAAAcADgAAAAAAAIAQAAAAAAAAAAAAAAAAAAAAA + AAAAAICACBABAQAA/wAAAAD/AAD/AAAAAP8AAP4AAAAAfwAA/AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA + /AAAAAA/AAD8AAAAAD8AAPwAAAAAPwAA/AwAADA/AAD//AAAP/8AAP/8AAA//wAA//wAAD//AAD//wfg + //8AACgAAAAgAAAAQAAAAAEAIAAAAAAAABAAAMMOAADDDgAAAAAAAAAAAAAAAAAAoryCTrPQkHWz0JB1 + s9CQdbPQkHWz0JB1s9CQdbPQkHWz0JB1s9CQdbPQkHWz0JB1s9CQdbPQkHWz0JB1s9CQdbPQkHWz0JB1 + s9CQdbPQkHWz0JB1s9CQdbPQkHWz0JB1s9CQdbPQkHWz0JB1s9CQdbPQkHWivIJOAAAAAAAAAAC82peq + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/ + 0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/9Dxp//Q8af/0PGn/7zal6oAAAAA + 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 + y6d6bfTIkvH/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/4LiGh7Pg4HnM////zP///8z////M//// + zP///8z///+14OB447qIhv/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/0yJPwzql8bAAAAAEAAAAA + RzorB9y0hK7/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//jLlfqpi2UqteLihcz////M//// + zP///8z////M////zP///7bj44Wujmgp+MuV+f/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf7/0Zn/ + 3raFrEw+LQfasoOd/9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/8z5f+yaV5aAAAAACz3994 + zP///8z////M////zP///8z////M////teLidgAAAADMp3pm/M+X/v/Rmf//0Zn//9GZ///Rmf//0Zn/ + /9GZ///Rmf//0Zn/3LSEm/zOl/3/0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn/+MuV+sikeGYAAAAA + AAAAAJ3ExEnM////zP///8z////M////zP///8z///+gyMhIAAAAAAAAAADLpnpk+MuV+f/Rmf//0Zn/ + /9GZ///Rmf//0Zn//9GZ///Rmf/8zpf9/c+Y/v/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ/+rAjNWsmHRa + 39+zmevrvMjPz6Z4MT09B7/u7ubM////zP///8z////M////wPDw5TZDQwfS0qh27e2+x+HhtJiwnHdY + 68GN1P/Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//3PmP7Lp3p7+s2W+v/Rmf//0Zn//tCY/+m/jNbOqXtn + vLuWYfX1xPX//8z////M//7+zP/Ly6NwmsHBSsb39/nM////zP///8b4+PidxMRJz8+lbv7+zP///8z/ + ///M//b2xfXAv5lf0at9ZuvAjdX+0Jj//9GZ///Rmf/6zZb81a+AewAAAACXfFsh1K5/V9OtflWYfFsn + AAAAAMnJoGX8/Mn+///M////zP///8z////M/+zsvcgAAAAAfI6aObHR3aKz09+egZOgNwAAAADu7r7G + ///M////zP///8z////M//z8yf7MzKNkAAAAAJ2BXibWr4BT2LGBVZ2AXh8AAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAC6upVB+fnH+///zP///8z////M////zP///8z/5+e4saN3x2DIk/TzzZb7/c6W+/3Jk/Xy + pnnKXujourD//8z////M////zP///8z////M//n6yPu+vphAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAXl5LCu7uvuH//8z////M////zP///8z////M//39y/+vlLa0z5f8/tGZ///Rmf// + 0Zn//9GZ///Pl/z+spe5sf39y////8z////M////zP///8z////M/+/vv+BiYlAJAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAADR0adt///M////zP///8z////M////zP///8z/w7ax5M2W+vzRmf// + 0Zn//9GZ///Rmf//0Zn//tGZ///Nlvr8xri04f//zP///8z////M////zP///8z////M/9LRq2wAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOnpurv//8z////M////zP///8z////M/8/MrL3Dj+3u + 0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///EkO7t0s6uu///zP///8z////M////zP///8z/ + 6+u8uQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6uq7v///zP///8z////M//b2xfjNzaR3 + tITcntGZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ//+2hd6d0NCmdvf3xvf//8z/ + ///M////zP/r67y+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC6upVR7u6+5O3tvd7f37KU + nJx9InZWkBzMlfj70Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//8yV+ft7WpYb + oaGBIeHhtJPu7r7c7++/4r6+mE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAArX7TW9GZ///Rmf//0Zn//9GZ///Rmf//0Zn//9GZ///Rmf/+0Zn//9GZ///Rmf/9 + 0Zn//6+A1VoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACLZqolxJDw6dGZ///Rmf//0Zn//8iS9POqfM94rH7SdsmT9fPRmf// + 0Zn//9GZ///FkPHoj2iuJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMOF0LoXbERbCB11qgdcNEUz1lDQAAAAAAAAAA + WEBrDKN3x0Ozg9tZpHjIRFE7YwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + gAAAAYAAAAGAAAAB//w////8P///+B////gf///wD///4Yf//8PD//8H4P/8DDA/wDgYA4B4HgGAAAAB + 4AAAB4AAAAEAAAAAABAIAAAwDAAAAAAAAAAAAIAEIAH4AAAf8AAAD/AAAA/wAAAP8AAAD/AAAA//gAH/ + /4AB///Bg/8oAAAAEAAAACAAAAABACAAAAAAAAAEAADDDgAAww4AAAAAAAAAAAAAtNGRPsfnoLrH56C6 + x+egusfnoLrH56C6x+egusfnoLrH56C6x+egusfnoLrH56C6x+egusfnoLrH56C6tNGRPl5tTAVoeVQQ + aHlUEGh5VBBoeVQQaHlUEGh5VBDH56DGyOigxWh5VBBoeVQQaHlUEGh5VBBoeVQQaHlUEF5tTAUAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAABneFMFw+Kd0cTjntBsfVcFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvNqXdb7dmXzA3pp7vduYdQAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAt9STXcLhnLxzhVwGd4pgBcPinbu41pRcAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAACmwYUowuGcp8DfmqaLoXALb4uLBV10dASPpXMLweCbpcPinKapxIgo + AAAAAAAAAAAAAAAAsc2OJsTknpHD4pzHxOOds7LOj0IAAAAAqtTUKsf5+e3H+fntrNfXKQAAAAC00JBC + xOSessTjncfF5Z6Rs9CQJqrFiBixyoxD2reGavPHkrX2ypTZ6L6LdMDw8JfM////zP///8Hy8pbqwIx0 + 98uU2PTIkrTcuYdptMyOQq3IixjUrn8u9cmT1//Rmf//0Zn//9GZ//HFkarE9fW/zP///8z////E9fW/ + 8saRqv/Rmf//0Zn//9GZ//bKlNbXsIEt+MuV5v/Rmf//0Zn//9GZ//bJk9fJpXkaw/T0sMz////M//// + xPT0r8ynehr2ypTX/9GZ///Rmf//0Zn/+MuV5fbJk93/0Zn/+s2W9efCkKfr6bm68/PD0Lnaz2rL/f39 + y/39/bvd0mn09MPP7eq7uenDkab6zZb0/9GZ//fLlN2XfFsI061/K62jfxr29sXX///M////zP/b0r12 + v6Lqs8Ci67Hd1L91///M////zP/29sXXsqeCGdewgSqdgF4IAAAAAAAAAADu7r6W///M////zP/x7sX4 + yZfv7NGZ///Rmf//ypfw6/Luxvf//8z////M/+7uv5UAAAAAAAAAAAAAAAAAAAAA9vbF3v//zP/29sXb + x57h0tGZ///Rmf//0Zn//9GZ///In+LR9vbF2///zP/398XdAAAAAAAAAAAAAAAAAAAAAODgs03n57ld + n36zJtCY/f7Rmf//0Zn//9GZ///Rmf//0Jj9/aOBtyXp6bpc4+O1TAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAItmqgnDj+6OyJLzp7uJ5F68iuVdyJP1psSQ8I2PaK4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + /D8AAPw/AAD4HwAA4AcAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMADAADAAwAAwAMAAPAPAAA= + + + \ No newline at end of file diff --git a/Utilities/File/IconReader.cs b/Utilities/File/IconReader.cs index d18a565..5773b6b 100644 --- a/Utilities/File/IconReader.cs +++ b/Utilities/File/IconReader.cs @@ -172,9 +172,16 @@ namespace SystemTrayMenu.Utilities flags); if (Success != IntPtr.Zero) // got valid handle? { - Icon.FromHandle(shfi.hIcon); - icon = (Icon)Icon.FromHandle(shfi.hIcon).Clone(); - DllImports.NativeMethods.User32DestroyIcon(shfi.hIcon); + try + { + Icon.FromHandle(shfi.hIcon); + icon = (Icon)Icon.FromHandle(shfi.hIcon).Clone(); + DllImports.NativeMethods.User32DestroyIcon(shfi.hIcon); + } + catch + { +#warning todo + } } return icon; diff --git a/Utilities/Language.cs b/Utilities/Translator.cs similarity index 57% rename from Utilities/Language.cs rename to Utilities/Translator.cs index 14500d1..6cd2a46 100644 --- a/Utilities/Language.cs +++ b/Utilities/Translator.cs @@ -6,7 +6,7 @@ using SystemTrayMenu.UserInterface; namespace SystemTrayMenu.Utilities { - internal static class Language + internal static class Translator { internal static CultureInfo Culture; @@ -16,19 +16,6 @@ namespace SystemTrayMenu.Utilities Settings.Default.CurrentCultureInfoName)) { Settings.Default.CurrentCultureInfoName = "en"; - CultureInfo currentCulture = - Thread.CurrentThread.CurrentCulture; - foreach (string language in MenuDefines.Languages) - { - string twoLetter = currentCulture.Name. - Substring(0, 2); - if (language == currentCulture.Name || - language == twoLetter) - { - Settings.Default. - CurrentCultureInfoName = language; - } - } Settings.Default.Save(); } @@ -36,7 +23,7 @@ namespace SystemTrayMenu.Utilities Settings.Default.CurrentCultureInfoName); } - internal static string Translate(string id) + internal static string GetText(string id) { ResourceManager rm = new ResourceManager( "SystemTrayMenu.Resources.lang", @@ -44,4 +31,10 @@ namespace SystemTrayMenu.Utilities return rm.GetString(id, Culture); } } + + public class Language + { + public string Name { get; set; } + public string Value { get; set; } + } } diff --git a/app.config b/app.config index 0898ed5..ac88653 100644 --- a/app.config +++ b/app.config @@ -24,17 +24,7 @@ -