From b7aead42e610ce2c2c87aaf00d6b15dc43db4b54 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 25 Oct 2023 12:29:21 -0400 Subject: [PATCH 01/63] quick stab at configuring the url for updates --- DesktopEdge/MainWindow.xaml.cs | 5 +++ DesktopEdge/Models/ViewState.cs | 38 +++++++++---------- DesktopEdge/Views/Screens/MainMenu.xaml | 13 +++++++ DesktopEdge/Views/Screens/MainMenu.xaml.cs | 4 ++ .../DataStructures/DataStructures.cs | 7 +++- .../ServiceClient/MonitorClient.cs | 8 ++-- ZitiDesktopEdge.Client/Utility/GithubAPI.cs | 2 - ZitiUpdateService/App.config | 4 ++ ZitiUpdateService/UpdateJsonExample.json | 13 +++++++ ZitiUpdateService/UpdateService.cs | 23 ++++++----- ZitiUpdateService/ZitiUpdateService.csproj | 1 + ZitiUpdateService/checkers/GithubCheck.cs | 16 ++++---- 12 files changed, 89 insertions(+), 45 deletions(-) create mode 100644 ZitiUpdateService/UpdateJsonExample.json diff --git a/DesktopEdge/MainWindow.xaml.cs b/DesktopEdge/MainWindow.xaml.cs index 163f2bbe7..f6511b127 100644 --- a/DesktopEdge/MainWindow.xaml.cs +++ b/DesktopEdge/MainWindow.xaml.cs @@ -620,6 +620,7 @@ async private void MainWindow_Loaded(object sender, RoutedEventArgs e) { monitorClient = new MonitorClient("ui"); monitorClient.OnClientConnected += MonitorClient_OnClientConnected; monitorClient.OnNotificationEvent += MonitorClient_OnInstallationNotificationEvent; + monitorClient.OnUrlUpdateEvent += MonitorClient_OnUrlUpdateEvent; monitorClient.OnServiceStatusEvent += MonitorClient_OnServiceStatusEvent; monitorClient.OnShutdownEvent += MonitorClient_OnShutdownEvent; monitorClient.OnCommunicationError += MonitorClient_OnCommunicationError; @@ -651,6 +652,10 @@ async private void MainWindow_Loaded(object sender, RoutedEventArgs e) { Placement(); } + private void MonitorClient_OnUrlUpdateEvent(object sender, UrlUpdateEvent e) { + throw new NotImplementedException(); + } + private void MonitorClient_OnCommunicationError(object sender, Exception e) { string msg = "Communication Error with monitor?"; ShowError(msg, e.Message); diff --git a/DesktopEdge/Models/ViewState.cs b/DesktopEdge/Models/ViewState.cs index 1a18a72af..345a52048 100644 --- a/DesktopEdge/Models/ViewState.cs +++ b/DesktopEdge/Models/ViewState.cs @@ -6,45 +6,45 @@ using System.Threading.Tasks; using System.Windows; -namespace Ziti.Desktop.Edge.Models -{ - public class ZDEWViewState - { +namespace Ziti.Desktop.Edge.Models { + public class ZDEWViewState { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); private bool automaticUpdatesDisabled = false; - public bool AutomaticUpdatesDisabled - { - get - { + private string updateUrl = ""; + public bool AutomaticUpdatesDisabled { + get { return automaticUpdatesDisabled; } - set - { + set { automaticUpdatesDisabled = value; } } + public string UpdateUrl { + get { + return updateUrl; + } + set { + updateUrl = value; + } + } public UpdateInfo PendingUpdate { get; set; } = new UpdateInfo(); - internal void AutomaticUpdatesEnabledFromString(string automaticUpgradeDisabled) - { + internal void AutomaticUpdatesEnabledFromString(string automaticUpgradeDisabled) { bool disabled = bool.TrueString.ToLower() == automaticUpgradeDisabled?.ToLower().Trim(); this.AutomaticUpdatesDisabled = disabled; } } - public class UpdateInfo - { + public class UpdateInfo { public DateTime InstallTime { get; set; } = DateTime.MinValue; public string Version { get; set; } = "0.0.0.0"; - public double TimeLeft - { - get - { + public double TimeLeft { + get { double timeLeft = (InstallTime - DateTime.Now).TotalSeconds; return timeLeft; } } } -} +} \ No newline at end of file diff --git a/DesktopEdge/Views/Screens/MainMenu.xaml b/DesktopEdge/Views/Screens/MainMenu.xaml index c87503acc..715459d46 100644 --- a/DesktopEdge/Views/Screens/MainMenu.xaml +++ b/DesktopEdge/Views/Screens/MainMenu.xaml @@ -99,9 +99,22 @@ + + + + + + + + + - - - - - - @@ -109,14 +88,17 @@ - + - + + + + @@ -126,7 +108,7 @@ - + @@ -220,7 +202,7 @@ - + @@ -252,7 +234,7 @@ - + diff --git a/DesktopEdge/Views/Screens/MainMenu.xaml.cs b/DesktopEdge/Views/Screens/MainMenu.xaml.cs index e078b5bb5..1bd201d0a 100644 --- a/DesktopEdge/Views/Screens/MainMenu.xaml.cs +++ b/DesktopEdge/Views/Screens/MainMenu.xaml.cs @@ -14,6 +14,8 @@ using ZitiDesktopEdge.ServiceClient; using System.Configuration; using Ziti.Desktop.Edge.Models; +using System.Threading; +using System.Threading.Tasks; namespace ZitiDesktopEdge { /// @@ -46,8 +48,11 @@ private bool isBeta { } public void ShowUpdateAvailable() { - ForceUpdate.Visibility = Visibility.Visible; - if (state.PendingUpdate.TimeLeft > 0) { + if (state.UpdateAvailable) { + ForceUpdate.Visibility = Visibility.Visible; + } + + if (state.PendingUpdate.TimeLeft > 0) { UpdateTimeLeft.Visibility = Visibility.Visible; if (!state.AutomaticUpdatesDisabled) { UpdateTimeLeft.Content = $"Automatic update to {state.PendingUpdate.Version} will occur on or after {state.PendingUpdate.InstallTime.ToString("g")}"; @@ -139,36 +144,6 @@ private void ShowAutomaticUpgradesMenuAction(object sender, MouseButtonEventArgs UpdateState(); } - async private void SetReleaseStreamMenuAction(object sender, MouseButtonEventArgs e) { - CheckForUpdateStatus.Visibility = Visibility.Collapsed; - TriggerUpdateButton.Visibility = Visibility.Collapsed; - SubOptionItem opt = (SubOptionItem)sender; - var monitorClient = (MonitorClient)Application.Current.Properties["MonitorClient"]; - menuState = "SetReleaseStream"; - - bool releaseClicked = opt.Label.ToLower() == "stable"; - - if (releaseClicked) { - if (isBeta) { - //toggle to stable - var r = await monitorClient.SetReleaseStreamAsync("stable"); - checkResponse(r, "Error When Setting Release Stream", "An error occurred while trying to set the release stream."); - } else { - logger.Debug("stable clicked but already on stable stream"); - } - } else { - if (!isBeta) { - //toggle to beta - var r = await monitorClient.SetReleaseStreamAsync("beta"); - checkResponse(r, "Error When Setting Release Stream", "An error occurred while trying to set the release stream."); - } else { - logger.Debug("beta clicked but already on beta stream"); - } - } - Application.Current.Properties["ReleaseStream"] = opt.Label.ToLower(); - UpdateState(); - } - async private void SetAutomaticUpgradesMenuAction(object sender, MouseButtonEventArgs e) { bool disableAutomaticUpgrades = false; if (sender == AutomaticUpgradesItemOff) { @@ -212,10 +187,13 @@ private void UpdateState() { LogsItems.Visibility = Visibility.Collapsed; ConfigItems.Visibility = Visibility.Collapsed; LogLevelItems.Visibility = Visibility.Collapsed; - ReleaseStreamItems.Visibility = Visibility.Collapsed; AutomaticUpgradesItems.Visibility = Visibility.Collapsed; + Visibility visibilityFromUpdateAvail = state.UpdateAvailable ? Visibility.Visible : Visibility.Collapsed; + TriggerUpdateButton.Visibility = visibilityFromUpdateAvail; + ForceUpdate.Visibility = visibilityFromUpdateAvail; + CheckForUpdateStatus.Visibility = visibilityFromUpdateAvail; - if (menuState == "About") { + if (menuState == "About") { MenuTitle.Content = "About"; AboutItemsArea.Visibility = Visibility.Visible; AboutItems.Visibility = Visibility.Visible; @@ -236,7 +214,6 @@ private void UpdateState() { MenuTitle.Content = "Advanced Settings"; AdvancedItems.Visibility = Visibility.Visible; BackArrow.Visibility = Visibility.Visible; - ShowReleaseStreamMenuItem.Visibility = allowReleaseSelect ? Visibility.Visible : Visibility.Collapsed; } else if (menuState == "Licenses") { MenuTitle.Content = "Third Party Licenses"; LicensesItems.Visibility = Visibility.Visible; @@ -260,12 +237,6 @@ private void UpdateState() { MenuTitle.Content = "Set Log Level"; LogLevelItems.Visibility = Visibility.Visible; BackArrow.Visibility = Visibility.Visible; - } else if (menuState == "SetReleaseStream") { - SetReleaseStream(); - - MenuTitle.Content = "Set Release Stream"; - ReleaseStreamItems.Visibility = allowReleaseSelect ? Visibility.Visible : Visibility.Collapsed; - BackArrow.Visibility = Visibility.Visible; } else if (menuState == "ConfigureAutomaticUpgrades") { SetAutomaticUpgradesState(); @@ -291,7 +262,6 @@ private void UpdateState() { MenuTitle.Content = "Main Menu"; MainItems.Visibility = Visibility.Visible; MainItemsButton.Visibility = Visibility.Visible; - ReleaseStreamItems.Visibility = Visibility.Collapsed; } // ShowUpdateAvailable(); @@ -428,22 +398,22 @@ private void SetLevel(object sender, MouseButtonEventArgs e) { ResetLevels(); } - private void SetReleaseStream() { - this.ReleaseStreamItemBeta.IsSelected = isBeta; - this.ReleaseStreamItemStable.IsSelected = !isBeta; - } private void SetAutomaticUpgradesState() { bool disabled = state.AutomaticUpdatesDisabled; this.AutomaticUpgradesItemOn.IsSelected = !disabled; this.AutomaticUpgradesItemOff.IsSelected = disabled; - this.UpdateUrl.Text = state.AutomaticUpdateURL; - } + this.UpdateUrl.Text = state.AutomaticUpdateURL; + } - async private void CheckForUpdate_Click(object sender, RoutedEventArgs e) { - logger.Info("checking for update..."); + async private void CheckForUpdate_OnClick(object sender, MouseButtonEventArgs e) { + logger.Info("checking for update..."); + CheckForUpdateStatus.Content = "Checking for updates..."; + await Task.Delay(1000); + if (state.AutomaticUpdateURL != this.UpdateUrl.Text) { + SetUpdateUrlButton_Click(sender, e); + } try { CheckForUpdate.IsEnabled = false; - CheckForUpdateStatus.Content = "Checking for update..."; CheckForUpdateStatus.Visibility = Visibility.Visible; var monitorClient = (MonitorClient)Application.Current.Properties["MonitorClient"]; var r = await monitorClient.DoUpdateCheck(); @@ -451,8 +421,10 @@ async private void CheckForUpdate_Click(object sender, RoutedEventArgs e) { CheckForUpdateStatus.Content = r.Message; if (r.UpdateAvailable) { TriggerUpdateButton.Visibility = Visibility.Visible; - } else { + ForceUpdate.Visibility = Visibility.Visible; + } else { TriggerUpdateButton.Visibility = Visibility.Collapsed; + ForceUpdate.Visibility = Visibility.Collapsed; } } catch (Exception ex) { logger.Error(ex, "unexpected error in update check: {0}", ex.Message); @@ -460,8 +432,12 @@ async private void CheckForUpdate_Click(object sender, RoutedEventArgs e) { CheckForUpdate.IsEnabled = true; } - async public void TriggerUpdate_Click(object sender, RoutedEventArgs e) - { + + private void TriggerUpdate_MouseEventArgs_Click(object sender, MouseButtonEventArgs e) { + TriggerUpdate_RoutedEventArgs_Click(sender, e); + } + + async private void TriggerUpdate_RoutedEventArgs_Click(object sender, RoutedEventArgs e) { var src = sender as Button; try { CheckForUpdateStatus.Content = "Requesting automatic update..."; @@ -594,7 +570,7 @@ async private void UpdateFrequency() { /// /// Show the Edit Modal and blur the background /// - private void ShowEdit() { + private void ShowEdit_Click(object sender, MouseButtonEventArgs e) { ConfigIpNew.Text = ConfigIp.Value; ConfigePageSizeNew.Text = ConfigPageSize.Value; CheckRange(); @@ -709,11 +685,11 @@ private void CloseEditConfig(object sender, MouseButtonEventArgs e) { CloseEdit(); } - private void SaveConfig() { + private void SaveConfig_Click(object sender, MouseButtonEventArgs e) { this.UpdateConfig(); } - private void SaveFrequencyButton_OnClick() { + private void SaveFrequencyButton_OnClick(object sender, MouseButtonEventArgs e) { UpdateFrequency(); } @@ -721,7 +697,7 @@ private void CloseFrequencyArea(object sender, MouseButtonEventArgs e) { CloseFrequency(); } - private void EditFreqButton_OnClick() { + private void EditFreqButton_OnClick(object sender, MouseButtonEventArgs e) { ShowFrequency(); } @@ -748,16 +724,28 @@ private void CheckRange() { ConfigePageSizeNew.Text = value.ToString(); } - private async void SetUpdateUrlButton_Click() { + private async void SetUpdateUrlButton_Click(object sender, MouseButtonEventArgs e) { var monitorClient = (MonitorClient)Application.Current.Properties["MonitorClient"]; SvcResponse r = await monitorClient.SetAutomaticUpgradeURLAsync(UpdateUrl.Text); - if (r.Code != 0) { + if (r == null) { + logger.Error("Failed to set automatic upgrade url! SvcResponse was null?!?!?"); + MainWindow.ShowError("Could not set url!", "Is the monitor service running?"); + } else if (r.Code != 0) { logger.Error(r?.Error); MainWindow.ShowError("Could not set url", r?.Error); } else { this.OnShowBlurb?.Invoke("Config Saved."); } } + + private void UpdateUrl_TextChanged(object sender, TextChangedEventArgs e) { + logger.Info("url: {}", state.AutomaticUpdateURL); + } + + private void Button_Click(object sender, RoutedEventArgs e) { + logger.Info("sender name: {}", sender); + + } } } \ No newline at end of file diff --git a/ZitiDesktopEdge.Client/DataStructures/DataStructures.cs b/ZitiDesktopEdge.Client/DataStructures/DataStructures.cs index 423a33e5f..91585329b 100644 --- a/ZitiDesktopEdge.Client/DataStructures/DataStructures.cs +++ b/ZitiDesktopEdge.Client/DataStructures/DataStructures.cs @@ -496,6 +496,8 @@ public class StatusCheck : MonitorServiceStatusEvent { public class InstallationNotificationEvent : MonitorServiceStatusEvent { public string ZDEVersion { get; set; } public DateTime InstallTime { get; set; } + public DateTime PublishTime { get; set; } + public TimeSpan NotificationDuration { get; set; } } public class UrlUpdateEvent : MonitorServiceStatusEvent { diff --git a/ZitiDesktopEdge.Client/Server/IPCServer.cs b/ZitiDesktopEdge.Client/Server/IPCServer.cs index a2036d044..911fe144a 100644 --- a/ZitiDesktopEdge.Client/Server/IPCServer.cs +++ b/ZitiDesktopEdge.Client/Server/IPCServer.cs @@ -151,8 +151,8 @@ async public Task handleIpcClientAsync(NamedPipeServerStream ss, OnClientAsync o async public Task handleEventClientAsync(NamedPipeServerStream ss, OnClientAsync onClient) { using (ss) { - StreamWriter writer = new StreamWriter(ss); + EventHandler eh = async (object sender, EventArgs e) => { await writer.WriteLineAsync(sender.ToString()); await writer.FlushAsync(); diff --git a/ZitiDesktopEdge.Client/Server/ServiceActions.cs b/ZitiDesktopEdge.Client/Server/ServiceActions.cs index 41e6a6c22..8e4de7959 100644 --- a/ZitiDesktopEdge.Client/Server/ServiceActions.cs +++ b/ZitiDesktopEdge.Client/Server/ServiceActions.cs @@ -9,7 +9,7 @@ public static class ServiceActions { private static ServiceController sc = new ServiceController("ziti"); public static string ServiceStatus() { var status = sc.Status; - Logger.Debug("service status set to: {0}", sc.Status); + Logger.Debug("service status asked for. current value: {0}", sc.Status); if (sc.Status == ServiceControllerStatus.StopPending) { //ServiceControllerStatus is reporting 'stop pending' when the service crashes or is terminated by a user diff --git a/ZitiDesktopEdge.Client/ServiceClient/AbstractClient.cs b/ZitiDesktopEdge.Client/ServiceClient/AbstractClient.cs index f83c2e4f9..7eabe4019 100644 --- a/ZitiDesktopEdge.Client/ServiceClient/AbstractClient.cs +++ b/ZitiDesktopEdge.Client/ServiceClient/AbstractClient.cs @@ -109,9 +109,13 @@ async protected Task sendAsync(object objToSend) { if (toSend?.Trim() != null) { debugServiceCommunication(toSend); - await ipcWriter.WriteAsync(toSend); - await ipcWriter.WriteAsync('\n'); - await ipcWriter.FlushAsync(); + if (ipcWriter != null) { + await ipcWriter.WriteAsync(toSend); + await ipcWriter.WriteAsync('\n'); + await ipcWriter.FlushAsync(); + } else { + throw new Exception("the monitor service appears to be offline?"); + } } else { Logger.Debug("NOT sending empty object??? " + objToSend?.ToString()); } diff --git a/ZitiUpdateService/App.config b/ZitiUpdateService/App.config index bd4e6c509..e250a6f27 100644 --- a/ZitiUpdateService/App.config +++ b/ZitiUpdateService/App.config @@ -15,7 +15,7 @@ If changing, the operation should remain high such as "0:1:0:0" (every hour) or "1:0:0:0" (every day) --> - + - + + + + + + + + + + + + + Page-1 + + Sheet.12 + + + + Lightning_Crashes + + + + Sheet.14 + + Sheet.15 + + + + + From 0034b7b41a1cefb11c3f72ff30bebce7617e6828 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 19:42:08 -0400 Subject: [PATCH 38/63] last big round of changes before looking to review --- .gitignore | 1 + DesktopEdge/MainWindow.xaml.cs | 31 +++++++++---- Installer/ZitiDesktopEdge.aip | 6 +-- Installer/build.ps1 | 46 ++++++++++--------- ZitiUpdateService/upgradeTesting/2.1.1.json | 14 ------ ZitiUpdateService/upgradeTesting/2.1.11.json | 12 ----- ZitiUpdateService/upgradeTesting/2.1.20.json | 14 ------ .../upgradeTesting/UpdateJsonExample.json | 14 ------ ZitiUpdateService/upgradeTesting/reset.sh | 1 - ZitiUpdateService/upgradeTesting/template.txt | 11 ----- .../upgradeTesting/update-avail.sh | 15 ------ .../upgradeTesting/update-check.json | 11 ----- .../upgradeTesting/version-check.json | 12 +++++ build-test-release.ps1 | 8 ++-- release-history/version-check.json | 14 ------ version-check.json | 23 +++++----- 16 files changed, 75 insertions(+), 158 deletions(-) delete mode 100644 ZitiUpdateService/upgradeTesting/2.1.1.json delete mode 100644 ZitiUpdateService/upgradeTesting/2.1.11.json delete mode 100644 ZitiUpdateService/upgradeTesting/2.1.20.json delete mode 100644 ZitiUpdateService/upgradeTesting/UpdateJsonExample.json delete mode 100644 ZitiUpdateService/upgradeTesting/reset.sh delete mode 100644 ZitiUpdateService/upgradeTesting/template.txt delete mode 100644 ZitiUpdateService/upgradeTesting/update-avail.sh delete mode 100644 ZitiUpdateService/upgradeTesting/update-check.json create mode 100644 ZitiUpdateService/upgradeTesting/version-check.json delete mode 100644 release-history/version-check.json diff --git a/.gitignore b/.gitignore index 5b54d4eb1..197ce1014 100644 --- a/.gitignore +++ b/.gitignore @@ -282,3 +282,4 @@ ziti-edge-tunnel/*.zip OPENZITI_P12.b64 Installer/wintun.zip Installer/zet.zip +ZitiUpdateService/upgradeTesting/ZitiDesktopEdgeClient-* diff --git a/DesktopEdge/MainWindow.xaml.cs b/DesktopEdge/MainWindow.xaml.cs index 9db606cde..fdaf4d725 100644 --- a/DesktopEdge/MainWindow.xaml.cs +++ b/DesktopEdge/MainWindow.xaml.cs @@ -488,7 +488,9 @@ private void Current_SessionEnding(object sender, SessionEndingCancelEventArgs e private void Current_Exit(object sender, ExitEventArgs e) { if (notifyIcon != null) { notifyIcon.Visible = false; - notifyIcon.Icon.Dispose(); + if (notifyIcon.Icon != null) { + notifyIcon.Icon.Dispose(); + } notifyIcon.Dispose(); notifyIcon = null; } @@ -798,11 +800,14 @@ private void MonitorClient_OnServiceStatusEvent(object sender, MonitorServiceSta try { if (evt.Message?.ToLower() == "upgrading") { logger.Info("The monitor has indicated an upgrade is in progress. Shutting down the UI"); + App.Current.Exit -= Current_Exit; + logger.Info("Removed Current_Exit handler"); notifyIcon.Visible = false; notifyIcon.Icon.Dispose(); notifyIcon.Dispose(); Application.Current.Shutdown(); - } + return; + } state.AutomaticUpdatesEnabledFromString(evt.AutomaticUpgradeDisabled); state.AutomaticUpdateURL = evt.AutomaticUpgradeURL; MainMenu.ShowUpdateAvailable(); @@ -901,14 +906,20 @@ private bool isToastEnabled() { return result; } - private void ShowToast(string header, string message) { - new ToastContentBuilder() - .AddText(header) - .AddText(message) - .SetBackgroundActivation() - .Show(); - NotificationsShownCount++; - } + private void ShowToast(string header, string message) { + try { + logger.Info("showing toast: {} {}", header, message); + new ToastContentBuilder() + .AddText(header) + .AddText(message) + .SetBackgroundActivation() + .Show(); + NotificationsShownCount++; + } catch { + logger.Warn("couldn't show toast: {} {}", header, message); + } + } + private void ShowToast(string message) { ShowToast("Important Notice", message); } diff --git a/Installer/ZitiDesktopEdge.aip b/Installer/ZitiDesktopEdge.aip index 02c4b5694..62a5257ac 100644 --- a/Installer/ZitiDesktopEdge.aip +++ b/Installer/ZitiDesktopEdge.aip @@ -53,10 +53,10 @@ - + - + @@ -326,7 +326,6 @@ - @@ -379,7 +378,6 @@ - diff --git a/Installer/build.ps1 b/Installer/build.ps1 index 9ad4a199c..6301e7ff5 100644 --- a/Installer/build.ps1 +++ b/Installer/build.ps1 @@ -36,6 +36,7 @@ if($null -eq $env:ZITI_EDGE_TUNNEL_BUILD) { if($null -eq $env:WINTUN_DL_URL) { echo "========================== fetching wintun.dll ==========================" $WINTUN_DL_URL="https://www.wintun.net/builds/wintun-0.13.zip" + #for local debugging speed: $WINTUN_DL_URL="http://localhost:8000/wintun.zip" echo "Beginning to download wintun from ${WINTUN_DL_URL}" echo "" Invoke-WebRequest $WINTUN_DL_URL -OutFile "${scriptPath}\wintun.zip" @@ -83,9 +84,9 @@ $ADVPROJECT = "${scriptPath}\ZitiDesktopEdge.aip" $installerVersion=(Get-Content -Path ${scriptPath}\..\version) if($null -ne $env:ZITI_DESKTOP_EDGE_VERSION) { - echo "ZITI_DESKTOP_EDGE_VERSION is set. Using that: ${env:ZITI_DESKTOP_EDGE_VERSION} instead of version found in file ${installerVersion}" + echo "ZITI_DESKTOP_EDGE_VERSION is set. Using that: ${env:ZITI_DESKTOP_EDGE_VERSION} instead of version found in file ${installerVersion}" $installerVersion=$env:ZITI_DESKTOP_EDGE_VERSION - echo "Version set to: ${installerVersion}" + echo "Version set to: ${installerVersion}" } $action = '/SetVersion' @@ -124,27 +125,28 @@ echo "=========== emitting a json file that represents this build ============" if($null -eq $env:ZITI_DESKTOP_EDGE_DOWNLOAD_URL) { $dlUrlRoot="https://github.com/openziti/desktop-edge-win/releases/download/" } else { - $dlUrlRoot=$env:ZITI_DESKTOP_EDGE_DOWNLOAD_URL + $dlUrlRoot=$env:ZITI_DESKTOP_EDGE_DOWNLOAD_URL } $dlUrlRoot = $dlUrlRoot.TrimEnd(" ", "/") -$published_at = Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ" -$jsonTemplate = @" -{ - "name": "${installerVersion} Override", - "tag_name": "${installerVersion}", - "published_at": "${published_at}", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-${installerVersion}.exe", - "browser_download_url": "${dlUrlRoot}/${installerVersion}/Ziti.Desktop.Edge.Client-${installerVersion}.exe" - } - ] -} -"@ - -$jsonBlob = $jsonTemplate -replace '\$\{installerVersion\}', $installerVersion -$jsonBlob = $jsonBlob -replace '\$\{published_at\}', $published_at -$outputFilePath = "${installerVersion}.json" -$jsonBlob | Set-Content -Path $outputFilePath +$published_at = Get-Date -Format "yyyy-MM-ddTHH:mm:ssZ" +$jsonTemplate = @" +{ + "name": "${installerVersion} Override", + "tag_name": "${installerVersion}", + "published_at": "${published_at}", + "installation_critical": false, + "assets": [ + { + "name": "Ziti.Desktop.Edge.Client-${installerVersion}.exe", + "browser_download_url": "${dlUrlRoot}/${installerVersion}/Ziti.Desktop.Edge.Client-${installerVersion}.exe" + } + ] +} +"@ + +$jsonBlob = $jsonTemplate -replace '\$\{installerVersion\}', $installerVersion +$jsonBlob = $jsonBlob -replace '\$\{published_at\}', $published_at +$outputFilePath = "${installerVersion}.json" +$jsonBlob | Set-Content -Path $outputFilePath echo "====== emitting a json file that represents this build: complete =======" diff --git a/ZitiUpdateService/upgradeTesting/2.1.1.json b/ZitiUpdateService/upgradeTesting/2.1.1.json deleted file mode 100644 index e3eae80b8..000000000 --- a/ZitiUpdateService/upgradeTesting/2.1.1.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "2.1.1 Override", - "tag_name": "2.1.1", - "created_at": "2020-12-02T16:48:1Z", - "published_at": "2022-1-10T20:03:12Z", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-2.1.1.exe", - "created_at": "2022-1-10T20:09:25Z", - "browser_download_url": "http://localhost:8000/ZitiDesktopEdgeClient-2.1.20/Ziti Desktop Edge Client-2.1.20.exe" - } - ] -} - diff --git a/ZitiUpdateService/upgradeTesting/2.1.11.json b/ZitiUpdateService/upgradeTesting/2.1.11.json deleted file mode 100644 index d5afa6cac..000000000 --- a/ZitiUpdateService/upgradeTesting/2.1.11.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "2.1.11 Override", - "tag_name": "2.1.11", - "published_at": "2023-10-31T20:03:12Z", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-2.1.11.exe", - "browser_download_url": "http://localhost:8000/2.1.1.json" - } - ] -} - diff --git a/ZitiUpdateService/upgradeTesting/2.1.20.json b/ZitiUpdateService/upgradeTesting/2.1.20.json deleted file mode 100644 index 1ad45a33d..000000000 --- a/ZitiUpdateService/upgradeTesting/2.1.20.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "2.1.21 Override", - "tag_name": "2.1.21", - "created_at": "2020-12-02T16:48:11Z", - "published_at": "2022-11-10T20:03:12Z", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-2.1.21.exe", - "created_at": "2022-11-10T20:09:25Z", - "browser_download_url": "http://localhost:8000/ZitiDesktopEdgeClient-2.1.20/Ziti Desktop Edge Client-2.1.20.exe" - } - ] -} - diff --git a/ZitiUpdateService/upgradeTesting/UpdateJsonExample.json b/ZitiUpdateService/upgradeTesting/UpdateJsonExample.json deleted file mode 100644 index 8230ba847..000000000 --- a/ZitiUpdateService/upgradeTesting/UpdateJsonExample.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "2.1.20 Override", - "tag_name": "2.1.20", - "created_at": "2020-12-02T16:48:11Z", - "published_at": "2022-11-10T20:03:12Z", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-2.1.20.exe", - "created_at": "2022-11-10T20:09:25Z", - "browser_download_url": "http://localhost:8000/ZitiDesktopEdgeClient-2.1.20/Ziti Desktop Edge Client-2.1.20.exe" - } - ] -} - diff --git a/ZitiUpdateService/upgradeTesting/reset.sh b/ZitiUpdateService/upgradeTesting/reset.sh deleted file mode 100644 index d2f1bcbc6..000000000 --- a/ZitiUpdateService/upgradeTesting/reset.sh +++ /dev/null @@ -1 +0,0 @@ -cp 2.1.1.json update-check.json diff --git a/ZitiUpdateService/upgradeTesting/template.txt b/ZitiUpdateService/upgradeTesting/template.txt deleted file mode 100644 index 22a606b28..000000000 --- a/ZitiUpdateService/upgradeTesting/template.txt +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "${version} Override", - "tag_name": "${version}", - "published_at": "${published_at}", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-2.1.1.exe", - "browser_download_url": "http://localhost:8000/ZitiDesktopEdgeClient-${version}/Ziti Desktop Edge Client-${version}.exe" - } - ] -} \ No newline at end of file diff --git a/ZitiUpdateService/upgradeTesting/update-avail.sh b/ZitiUpdateService/upgradeTesting/update-avail.sh deleted file mode 100644 index 2280d5449..000000000 --- a/ZitiUpdateService/upgradeTesting/update-avail.sh +++ /dev/null @@ -1,15 +0,0 @@ -published_at=$(date -u +"%Y-%m-%dT%H:%M:%SZ") -version=2.1.20 -cat > update-check.json < $null -move -Force "./Installer/Output/Ziti Desktop Edge Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe" ".\ZitiUpdateService\upgradeTesting\${env:ZITI_DESKTOP_EDGE_VERSION}\Ziti.Desktop.Edge.Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe" -move -Force "./Installer/Output/Ziti Desktop Edge Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe.sha256" ".\ZitiUpdateService\upgradeTesting\${env:ZITI_DESKTOP_EDGE_VERSION}\Ziti.Desktop.Edge.Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe.sha256" +mkdir .\ZitiUpdateService\upgradeTesting\ZitiDesktopEdgeClient\${env:ZITI_DESKTOP_EDGE_VERSION} -ErrorAction Ignore > $null +move -Force "./Installer/Output/Ziti Desktop Edge Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe" ".\ZitiUpdateService\upgradeTesting\ZitiDesktopEdgeClient\${env:ZITI_DESKTOP_EDGE_VERSION}\Ziti.Desktop.Edge.Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe" +move -Force "./Installer/Output/Ziti Desktop Edge Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe.sha256" ".\ZitiUpdateService\upgradeTesting\ZitiDesktopEdgeClient\${env:ZITI_DESKTOP_EDGE_VERSION}\Ziti.Desktop.Edge.Client-${env:ZITI_DESKTOP_EDGE_VERSION}.exe.sha256" move -Force "${env:ZITI_DESKTOP_EDGE_VERSION}.json" ".\ZitiUpdateService\upgradeTesting\version-check.json" diff --git a/release-history/version-check.json b/release-history/version-check.json deleted file mode 100644 index 1ad45a33d..000000000 --- a/release-history/version-check.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "name": "2.1.21 Override", - "tag_name": "2.1.21", - "created_at": "2020-12-02T16:48:11Z", - "published_at": "2022-11-10T20:03:12Z", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-2.1.21.exe", - "created_at": "2022-11-10T20:09:25Z", - "browser_download_url": "http://localhost:8000/ZitiDesktopEdgeClient-2.1.20/Ziti Desktop Edge Client-2.1.20.exe" - } - ] -} - diff --git a/version-check.json b/version-check.json index 5078c111e..7381e3b7b 100644 --- a/version-check.json +++ b/version-check.json @@ -1,13 +1,12 @@ -{ - "name": "2.1.21 Override", - "tag_name": "2.1.21", - "created_at": "2020-12-02T16:48:11Z", - "published_at": "2022-11-10T20:03:12Z", - "assets": [ - { - "name": "Ziti.Desktop.Edge.Client-2.1.21.exe", - "created_at": "2022-11-10T20:09:25Z", - "browser_download_url": "http://localhost:8000/ZitiDesktopEdgeClient-2.1.20/Ziti Desktop Edge Client-2.1.20.exe" - } - ] +{ + "name": "2.1.35 Override", + "tag_name": "2.1.35", + "published_at": "2023-11-01T19:33:11Z", + "installation_critical": false, + "assets": [ + { + "name": "Ziti.Desktop.Edge.Client-2.1.35.exe", + "browser_download_url": "http://localhost:8000/ZitiDesktopEdgeClient/2.1.35/Ziti.Desktop.Edge.Client-2.1.35.exe" + } + ] } From 7058bb80d3b553d6e77c430a11e66345f219c6c5 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 20:13:51 -0400 Subject: [PATCH 39/63] try to fix icon --- Installer/ZitiDesktopEdge.aip | 2 +- ziti-v2.ico | Bin 60274 -> 67646 bytes 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Installer/ZitiDesktopEdge.aip b/Installer/ZitiDesktopEdge.aip index 62a5257ac..f580d7780 100644 --- a/Installer/ZitiDesktopEdge.aip +++ b/Installer/ZitiDesktopEdge.aip @@ -233,7 +233,7 @@ - + diff --git a/ziti-v2.ico b/ziti-v2.ico index a66ef5eb4931076f008f510f4931a5cd1bf9b40e..dcac6591e1afb0e0492f50562cd3410850b182a6 100644 GIT binary patch literal 67646 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�wufgjn0SV4km{U2^9c0L8c#i4^X>n3+hj^0lkerQewDXyYqZ5!PGZo4KW$8coMcNZ%NvQ=r{qv{= zwO}v0+;1BXjI!i~+b2y1st65G5lVM;_^Hxa?^zb*)eV9JU4a68cX?k)lwJjnWGSEU zSnjDB$;V?iUrvLVz^RM&5S?S%2;|h73N&YIU^fl$BN2R0yb$}~ToV{OI_al0JQsxi zE;F`NVKa1MPC)z09lNlaP`kz{(dkxWOnv8N^}UwBmLkHZ5*vZN4`W@X9geE%7tqbd zkl%pGf6j4pYolJWze=!8t&tZ~Qc{g%^(zlkc0&vu8laVlE~CF?#Ft#rI)90spYViP zJDrl}^YL!vf`@yc{+8{?K8jl$zF5-1ez(tV;xpn;z(g#kjWLWum{i-A;h_Hc7hOP~ zzj!wu$T)U_)sSRDorW~CXQIv4vxQ84EQ<+nn6-QdZ(ab!Y!l>JZX&lWZ|R7TFj-1p{Q zePHcNkx&iY80$PpjFYg(hxgLVS8Re<)Vvna53n5)O{I5`$IcYK3>AywgL7#}ZDbh5 z`{bgg3%t*N{%px?M5?+T-rsZ;&n%kE==d-M9tg%wguS~^R_(nBRj&By{q8-{3unb< zppuq4P>bjJnBd(_m;Y%$%6hwSiY0j$pyYcS*2Q>nO>bK7a=<4n-*}KNf>9b&9Qlp! zWacfRE2pc&n@dZSuWw!E=MOPIS5i%9Z8*kMaWd-wrV) zdAz&#snD{w5$!Wsb%W07D`vyavtZ=mOvSYxc|UN2uX&x4rm);Su(DXzAB^9sqS3N? zy)AO{u{EF>&7>T+RWjmMLH+EV4iE=z#_|#rv@;TwKlUS+^bz=zl!ls7jGBBk2+mdf zU)3&|YiNiS8(ZHatDJukFV3EeSP5!Y-JE7%P3{qnTf27TwHj?IcNThnn(Nm^A63E| zp~;ny=Up4qwDa}ufsM3_-2VigZEj>-vIp5R_F9F`G?>op2OuiYvjA+S<>Xn-o<=ZJ zZkwNutlr;nd~sLOL~R)6I*&4fl?FWFHdOa*L+4Z(SZEM?cYM8VAn@>V&sBWJ z?$U6jZYcv(AKR8IvlAhyU@_5R%4N&hK;!2x-=iA^UBuomCsUmU-6Y@ti$TM z<^4V%4N=FGL>ma2_qf>HU38&5ueQfAV86f`M%oaGxu;kt9fSmcTDtL~78{tVrI{n2 zFcT3eiQVkPyPQ>n#ymLxrTvs$P)6b(=K@4jOR7mBdJ#a=CY#TKET}J-^*=vGZFkFw z^9((oQJkh}aOXH%Q}Xf@lXL1idrX>1TU2lcsM~4napk0vPg{J%rB?S{chStxV?Gxe zN6DJ`7~SjRZcQk}F;R(=lB20g22!OaN>`=wX?M)ROxB}M&1>a8{v-c$2*tW{QLN%QiNFTEO%_-99{R zW9T+k!z#f-?94;&`B?eeqh(Y%aF;fO+?5g1qow}`efcj>!vkB^rO-~6+(J53&fHE>W zkVK0tUr&!eAjc0;-Y`-)7Wgsn&&h$m&#h>`nsCK2vh(9+Yl1(cP&Okf?Dbj}`y~(a zohI|61CAZ;W>R&J8O^A)60ks&2-1OI{87jl&Y?_aq>IFBY8U_Y_>o&|9}$A(l&DLB zEs2f^~xX#)*IFXp+_9gZfH#ef5Ow>JW~R!J{%+VH|dD#Ht;mDXiO$# zP&v4tQb=h&n7b~JK@oBkho96S?5$aYev~dNswu*7LvYA24BHKnIcSV>{|9HHB1`S* zz8rJdj*Rqu7-MfHd^+#|lwUljGBo$f_U3ktZpx`4M!0}QF=8#kO(Ip$h0?)VHBA<~ zVens8c>&l_oA@1y!g}B7j*q~GD={*I z&zAE(g0Nh3l+SLAJyKpY!?eeCDV7cF(@{}+Xff(1T^PSpw8LGGTXTGlB2_x_8!-K) z;`41P3YXCFK;Ay$z!t@%N}cG_=$#>lJI!SxwE;hWfpnPK`vFf)JWL|fCd=Q@Y^WV= zy&LyETj}1|y*MuzWq;x?9?VcjP`@FvbxV)Pbxp@M3P={mngz@rXnBn4)q(Qv(;e>G zP+p&O4^poqm1>=4()(}h)~SECvN4!9 zqEDlbd|#`3V8F_d_hdbO= zp_QwvR3t-LXmDMcM8^gtb0N&6TN#`lmlqNHcX$l3zO*=7eCLuHRpIZ{Mz%(h5!a|H zd`HKPppl#BLO%A0ycVFX#~(EfN|_mMpW7$f*Jl+tPno-yS~JlvgQjpU1$Z()lrix8 zh9A=FlrqgVKe`1X(QKA-nYxPotkST2;pK)U-abJWe;1SXTd4JfvY@m`zqooaW`-ev+bY^7#>jDHPY_|VAcT{3us~mhUXmh(19HsAN*gT{=yx(p@PT{ zL=8#+QD`xG(M5Sgh(KN#<(~J!lLNV$&mBe`RkDX^{|b<2`TTRlp=*c zeuU!x$(uAZ(^kyxWLtF8D)eSa^(_Qi`zC+;RD${WXW-|PU{N#V2gbfc_iy-qb1ToB zTsVb;zf~F+7#eOll-u5{_&|!O>kDMaWYrh@)JO|JK}NS}pfj{T(S1bO@$FwP8yg1R z_dlg!ujAcKq(d5*BTiGGqHpG-HJV?)~P7kII`(V;rv!I>AOTM7m23f@>65+_DNYJV8Iw9RA$-t4ZkDxM9e^21tP*Bq>y z%ieeT5!UX5GQKGzln|(qT(Lf-;f{-&bkbKyuX93Rh-{F8Y){7PK1RyG)Bz%z>?d<& z?>qQiP^*E8=l&e&b{~B4~-Y0b`CBxz?8;Lcyk1fR9S!L2? zn8sHN4spJRyYuYCemU#G{V0 zmC)k1C+xFkO&3b=SHJq=u!`Wa%p3gHi&?`{-6lwF>`XWzf1h{*_+>TvmwRlrB-;cM z(4FY&#ya6gh?g|f^ptA)e*KuoqpKE6^Rgz(>(4imTxQ2GjmN;Wp)7fh_HEF4kekqc z@a)oi>sUFceXLR!LKCa0lC-qbR_17(o8!hOVv_35mVMwLuUY**4#VHMaOb)i9qax1 zs>|FL0RrUtb^h0LQQJvWcQ(nK6 zkJ~AIPMcQ{vIjQ=te>90^7gRU)pP;a1ZQ_9Y!TP)=*qQIuV&z~;=5NGYb+sOUc#($ zXO!W6s)AdgDI3|4+5{S(rHLOe`96w$W@BR;4#6W(PT?|UfUr1yJ_O=zFQ`|f6`KyP ze^44tQ9uI!HI8HuN=$<-U%HKT`0!1dGF@^uY0*|>bZ6epbn1eK(Lh{|tqvuR?6?0- zc_XIc9q<+|Zoc=Ui$mwlW-is_`R{+cdcR2RG5mI2b`>x>Yv{t61*xSO4iVp8IkDc~ ziQ7rGokWi5aQO3rxh0jd2G)E5;A*(GpuuQ{>s`4zJ!8cVH>4xAWep2@GJ=_*c=%6g zeL%!K{QaJE7NU#d$PY3h4RNQjlSwyefk7fOo(uMzQ7noukbo2Aa&?-ZOP0(V=hl;t z9@`)rKq1QkqK~)`gc!Yx14-a&%I9TJ)Ofdl$JJPzz^GGA1RK+ayI(@of{oP2J?ozyU{SYWiV{D-IW+5_~VK=gRw-(#kZm;>0%-9^-eKG#> z?X8u%vif3oG>fkVW17$hgpdf}MX)6!jGv!j*ukgO=J)%XsP|ZNgZoOs z6CtM?7I)x4l z;GB>#w)kTfueM!MV%Hj~L(UlcXZeIX&=dWByqrtr4p)yodL2-5qUsj1F2-9RVKmX3 z1YB3gunoS(#3Ae?Y}N$itXZOPn)LvQ0ki1dU)zm+m;C4lR|T51 z1F1I=i`K??D$m0o(mtA~2=~7k>e%`)m_KFKlGlhG0wt%Unds73{8C%V zd;>^S;h|d%r*gJ!zdcoo;vYF)>mH$UX_X9m#I9KW@@l?tJ4qB?XycnEV#=#7UQ9DO zXW`CCwJH|<;aK0>@0ZgH@Y!A;&5L)R++#77XC0-#0!RzmUn4uJ@?Jev_Wba_)f)Uj z5&xVYo%PD9*|F*Y5|HS`)qZW^F{7;;H7ADMG>ITQ4s4wzcIB1EPEd;hWvq%l=@wM8 zi#T8ybF;H8p}H$P``jCb$^LBZy|r@QbY&^>lw(tK#Q;Pk<0uC!q&5@igvlWRDi6{F z$1dC+9jl{?OS(hBoHk31Zv2ejAw9hzFW+rXOqssZWFDz9`GX`Ok{7P1 z-|>&3B$xTqLgk^|Xn7q7TC{-+*G_ngyH@7=X4 z%f=@19qYfpJ?=K-bjQh>QU?m{zRez_My(!N$CT+*BNX*F{U0qgB{}LcY_ET7@IBRpuYlPR-2lAdY7)rR7C(>)}^xQAsj8qsud#JVg=^H_(!27nN4Rw|1@BMUg{zRt~ zAjX0(o39Gsnl|Z)&g8b)EW&Hp+85mDi=(LUT3xe}jYqp zNR@OZyhUgOGs-)?%D4+S4Z~6)?bt7=rd5k9=G6TBV;q)*k^gB^>mPZy)I^V zsxTdcMnxC0oba8Dux>{Y{7!AoKmEv&8K=$+j<|=E{CkDkPwX)55-Pd z2{ms^Um%0~v81zBhNQMDZ3@YL$GICT8S#G6dYf5#H5SnC-8D(c#*z@ky}#6JktKS; zXZ-^U0kpF#-r2&3?Z(R5U`3INaDvekLV#RaS5iaW zeXvx&X85H|#%mMQHT(|4oDA8F3*I~DW0q)*(07gjCIEM-sTQ09nEJ|hq6r+2;sb63 z)Jo6MWCG1-o-=oaeQWC z!`AshR!(Um4IO!@&KCoV`QXDVV5lZX6Ch3+3HY^{@@;Zr!Mq;Z1xyf<<1 zl(UiW%gOHzVF1q0qf5KOHf#qU!c>z}TmDQ$g@ev|YtnFaZHqc`a413!K3@6e#~z+Q z8XK>vH@OYJm^4=GdM&RdY65*5kGlv)HV1z84!yd`h}E!N6>GUdb`Kw;XY1=Te9?YF zVx~&5)WM{;vgS7ORRS)wJ?ay`dZuRtQfs_1>3~dch!iuyu>Rh68T7QUNt9+45k=wn z^5mqyUPz;1>D1XDX_YvF%PMu*DB>rNBRlVT1dA8ulCgcwtOG6B_1yTY5{-6yntVJM zohrYqua$mHwO4SOnA`eRDP`gX))mY<;rad7|uj^Q9O<-zKNeN%Nb8|6PHmflt8tWK3y*nEbghv*#g!Ki{-gVt> zsJ8bmF1opYm>#W<>QXrHPd9_Uzwv%ICw8}IMv$MsL!Rl)b9bei(BFw)rSA4XThC|- z|7TJQ835l~>%@d-$Qg{Urjd}l8Rk&l#ANdZ-^_Cp#P?Szh4m3dluGORED2NAW&C=C z&^%EP4r*zX`L>7OpZrfNXE3rRC6%2B*`UN;hK&@JKL4K_nF9$pGZjhtVO3WmpnU$* zlgfjm?(p92>sOqD(d+9T@fM6*TLp0N7{4~YV>A}{2lEtu4r}WgGnyRwZo~-oXaKt` z(*q(>1IA!oK;Q#}!>a10hAhH^RVeQBqm3e4Ml{Z`-@LQ7MFF~Ue93+A1-WRM%-_Y` zQ3NJ#npM>q&-W^&e3arTcC*B3lj*pkS-JTFz#=eD^vJfrFP4)~&_D{OA(P4BIDTT1 zh1pQsEDy@GmT>{&uYz!HX~bFZe1IU?EEa+xj0tg*ubrz#^N4NI@VNsbekw+P%9(m# z?FFX*3(wA*B+22u!_Zt-f>~6L228|PL}2o_CN+j}{>Au~?Qqn`Dr7X6{}-uh;B z&=nOl<@+Sr7bZJA4;_hQ8KUDWy_2`OZ^SzV*u5y?>kneGtp4H7g5%U)2Ld`78$Fx|SCOcevw){^vg}pG@>Cy^7>>8< zFJQS37`O9i?nb}J+mVoqa9XZlP3=F-V{e>PdI#;fN-J}k{p{?-IV6`ju_LRapEhZO zrjBO0Sj5i?ys+^0m zsYnNOW!#idtg@+OOBLdcJ8aVWk3c8^i^cY=o?A>maKQ*3o#}AL#>xd7M(*B4Mk}iV z_-C6`Y~Z9+$Qfye(*?&ezWga(?~Q&;lmBADzd?HhgK+*R06sF#!I9hb=e`!BSbPw+ z*eJwCL7L$LP39^SMC@NA0y3GfIr1cWG>D;UAAD5EVrPh@w(MHgP9jz}fq)!eGdc1j zJlJ{r)%~f9h8ypsMAK2RGvzPh%(Oe{x{6iR7g;6g@XY$RnPb8KRc7}ta|6Gbr+XMZ z>|uzVX%$u)$&Y~knNs8pmeHDgTjK75Io7*SrWHq#{=_M}hlJGUsu}!|w#8o9a6>4y zU(xiX9m-+;c_uqR_4)UYx1xusa7oreHL&x|)e(0Vgp7h);v9sW3kAc@L`L@~O;^R# zoVNpUt`m+q|2nmes?H6avqR|#b57)V(q?fVzyyg7p--v8X4=%KL5& zdWCcEBCvA(l<3t1@zZ|#-XYr0eX-<9>VP=oIHR$B&+(_?2tzQSriuOo-+(L{C+vW& z2^?>stI*3`83Q_o-WmmSdTQ-hnvKSjl2{M$vS+`Jb&}-Fe>b+-=$Y!$8W6SXc6g+6 z(f_`v7_#|uh^uATA9c{MzD2y$4k40M2LRhtSH>NYdoz>gxD!p-l~`ZZZrE;i=Y+H~ z=F=v)FU8)ty0fu)PV%_K4Ut?(DBEDwUpZ6gFL}ubW(&9ghvX041hwAsX4*5Qsk20M zf(EcP1T^5%wDtVtG+I2q)bl=(xC>v+$}u@w7_2Kv`%TtjQyPiE3 z*muZg64oQ}=y@hL{$wkxqvfdGfs&H4M-#Yy|ID1mV@t=nzW|qERi~Ubo19|q?NiCS zH>?Kw682r~+>@>oT?QVz2^A&t&$M>(K6#8xnY{Ke&r$xB{(PQuAc8TnrB}o_uqtQQ z<4)nS;Tv%wWHSXzD6EBiKO3Hlv7fI+&|WSbcP)*K%JUB!_prU}eW_*c=0;0~mubZEYF?e3 z_2BfKE>8fM#!9hS`_o7D(~-z$^cEmcYn@q$TF@}7VuI#OO|Q$=&Pg-31W z%bs3Dc3jHkk=>0%P%!Jk1fhcLfG8IG=wi|}BX@8I6y>sN^NNcV~DM+J7DOCi5ND}d#PurRQ ztIHmUcyjHXv}N6KXYAbU*eoJT#t1jt+`t-15d~jaw2ob7ls4n>s@OH21O45nlik;~Ubi6SP-lo}6&)-b( z_`k^u?)$YI75l3AjT|e>$5?9p@i+KCs039xWOs!edHnItP^94+YR@idjm8`D&gms3 zfsSAwCdU_C43DVNuTLD$mUg%`FVqUNH3>2o9H{#mM9NeeM7QWW)TSC6?{gMkNfqCJ zYa%O79(B>Wk27`P(><>a{0FBdQQ~ZvZ=Ia0F(7|zmxU(5^i^ZQf_UNaDVzEyAF&UZY9u{@4P(Py30NNZGjl&2)NRq5@v-buX*g<|p2*ZjzqmH%(mF z!POVIckKv^;u??rbW!Vw@`?eSr|0U2e0q=lt@LyZySLh*grnGJ2_Vp?ewr&5?=4&9 zv$xhaWACX87|DJ-iS-o4f0W?T zHsdn83KW{eC>6O}az%^&IL51r*n8^iJ{n?uHMMjTxvczf_Slozv zHy7*qSn+=XhO7|>U56r1hq!y$U;RBgzRFQ+^hi5%ImHEIxl7f%E9v94=ElZqZ*5?T z#ewZtuIT5ppuMqx3QcOQOvRn)rDN(6Gcsu8WSykW1nA%XDgkFdi{i+o8DmdR^$FOu zHl-%=ipM`SzwJ7`g z6pVQLi^PnB-e2q8n&>Y8n!OZLo+j;e{j2h@g;MNPyy(-o>o$61ON#BBTp`_@C5wv& zQDhXR0T)Ri;Tn$&Ao*6Kk|1A6*%Zv6Jjjjditn5BUu&7H(3_>mXf&*mP)hCq^Z3he zB9+3YB4>d<+7L|P0*4c4snvok{;FAix<<&0iZ@_D&uUUdTjH+AoZG1+RvNF>!<_m4 zbr*yt5T3x%o_>c2(4Q4wp#=*Rs22T`eKebG2W~r}T7Yrd#rjYakM2TY=DTE4HVaC$ zk!fC!zdJSaZfvL@0J)?rlvyMP=)x;W+_54l}D@l&L9e)m|) z#`-99=XR7$@Kduuf0%aJ(8qrTLL>FUqbbzkhBETc5bQZXLyy{PTD_p4;A88$Y*_5% zf}YLKz-_?@;;ObEdoFpOz+~sr$E?pci{-Nx!;zJ)w=Qu(pXX?P5^;KNV@}s)EELMf zOG_;jx)On5to7gjuiBBR6yF_1i}4XIg&R47)kIMvdc* z)JaDy+e$QS3ArV$i?v`VU%!=QrM4bPvljKk(y+Q3^@rVy|yniRL>`?``v0- zu%1M2<5)`SB=(lWou*f>k$MT&4{fG=s+F3}2O2GnWhIwX&c7~K z00P=Tsec-Lk8#}PWU%1|ArH(Q(q?84w@|PDq<=eC+ti3evDr&G16_Uvd2H3hZI4^i zgb^`&T9>(r?P^!(DHQPL8K`6R%zupcESSsg<2IEen4?_CSR{n(1p*u--lnngtn-}w z3^7KbrY=HZWyQGNqa^Tl%UH1~2=eZw%9RTjUDDoA;*H>5qcw{h=Fkhw=`8{r*Y_Qj zjtXb>WeV12Wz{Xzz`aoXUyE-g-ZyIZYMiy8)+XtK9D7FD-+Y$bB7A9n3axM26I^Nr?X4O0&Dfmrh{K`qTlCtKS>pCj|RyA z$o>EyJN7KC{|j1f!qrvV{ucu+>4Q#lHOUaNR}r*B3^8vC_g+? ze=HFBQnPASv0!cs|C53G;~4ge)xW7=Z@nQR97JHmW6UG`wy3PSqTQ!bHWP$FD$@Zs^t;q|bEReSN!7aqy||*k z-Y^bDsy$B$jQhdQm~^{c_Q{yP9MF57LHXE&pg>`NZ>Fc#KJ>Q?(IU46YkV$98~pri4g0T96lfDUKtO$ z*W)Gt_pha{UqFj?Y@Z|l&8d{p<-ncY^-D%g$^}{eaU<%mWd!B|l+Bt5?5NG*m3+}gb%uW~PW$sLHv)YKmnJbBV+*7?uLIwH-XJO|++ zMdx{K2@>^Wdng+=H(uT^6y=>MxvAUx-p+h0R8BVbq=PN%;w(aA}2)!1+E37|rj?T~RY`+Z*~)_1qu068o$+B@4%{ z3FI3SvR+u*uQzKXM zKG97SrEs-Vq>kg<4AXGgT)+cDEq=26@#3aEQwGttn^WEAiHA$+#E?zh~!^L?~hm$^TQx}mZwFO?hX`jD7WISfR{kS}^lIO1zI zjWkEHD0aH-=BK0`wWCy9uZ7pXlNy{?x=|A|Y?yD3iKCRoWYwu#FwW$BzVgK9-dIV( zO>!km;z-X#@DEoqP;fiF;<-lo3l_Eh%8D%QyHrdem8F%0@CGuj<)P)$dP5e~(|1kAc0a12QyC4Dzl2S@ZNen59 zlz=ETHya5jGbf6lq`O5T}w?^RE%+2ynTuO(x1*~$=da8=CZMai+r$z7!bRr*TV^sK%##BJ*RQB{?7Nd-sRvy z^42YoeX1DK^Y5?(k7RMY_(5|ZQgx{>GpTE7SihHe^|&IV(iaekTqQ>W*EeU)x!iqvQwFtXOZKr@q z+q(;LG$=fIcR|p!S)}{*I`PsyLP&Nm^Qgc6;C?lNyxKQr6aD$c4G!&dbAZ2pLN z1YH_DRm|z{&*J2fWwP%wEP41*i{{;*9X9t}ic2?b7K?M-s#X^6Zpm`E#HxeQA-QF3 z`tVCUHdKR+b}s9MTAQVIMIwf1wi?ZW!Wunlv-EkpYwFlMc?X**$<|X`RV}SKl1iKF zt>zo9=mZiLbPjtGt%KP2KO4mgpA$SIeliU(23c{payO+HqSScL&g#94byTB7ms&BY zvux}R(TjU1JpUdnR^j?n1Vtp79rIC&nIss97h6Ehtp@!bQbXqO#NEMptuZ3mmZgVI zii>3}EPU$LiraqVEA4}JAjC7w^sE0@XM59#G${y1-f+3%DO=&Fr#K{P+{z$-M}zB)e}cmTqO#yI{~L1_(p<&8ez-5jCAR$w zGl(eYBtl-=tql-!cnk>N{tX%xtRxZ)OWInqKL$gzNy@trouA4Mo&MeHw}x*eKBdQL zw>n%K7)lFRNelE;_+r5wcIzuROE!rrhgy~KZYUo5VC5ep2z?ic9=oML3g-f9ZmC0~ zf%}1kqv<@u1*kLH1F0WS^cj!qEI#Gk2ZI~2JS@uIzJ&et6(zsgr6BXjH7s@gQZ&C* z^bxTsJM5MPi9}wXHDe#;%e7)9Uyur?d{V1aCSoA{hcvVI>T7%ECpGo6U$6_A9k{CqRlm7QCE|qjrmGpqQ*BDq0b4WW6Bh>A`0nE?mER7!Re?6hl+u}mg16S zFIehsAxba}Y<}|~kt7a~wZ`GP7V>KLr#)CUk0|n#-ZDXZr)(2ZjryzdGd)Jff3JE( zU`?yNj*g{R3I1LnA2(~6c)#WYlVrM*-C%FHeijy^HuFGCBRm##eF%%Ssfk|=3BO6V zgTH1F5%tEfaf8;h*7@QNjo^CYdW_E@(0-7F`}}MS#C7(^AYKpI4N|tZx02OF#|_=r zW^o3SofHwb&9{j(-fd|MUk4iPsN`NQnBr0lf7KF$Mi8X3&PN3eo!MY->loimM4k5U z257;`TZ!RXde3DO=s`~fV8f!6)pQ2)ri;~_%9m%kPu=AtU>Y6uTW2pc&Bse%x02Td zY{gE*u?YHzk_CmN1FnWPmE=S#=A;6CbVhrUP>)xN{&HLx(2>|@xOb8D$P}v(R;|S` zYPY;g2v7o4D;zzeeYfEPIEP&)rPI{Uc1q6aOu(R&fj0KsuJ<_V{*>2pzs`h-JYKk@n zZ(9`_KS?AK8(3qIaDnHV8^_jPV%QD-@a3v-dHXOq;q!qxE)h+Em`%nElKJ_$AY6^% zT7_j+rLZnz!{!{9Q2GBu4LCfWiP~QCf2I(XC|PHMZt<>{j=NC@5T2AMYR&n&>4XW^ zgzvZ~5+0Sr<|B<-{)>TT^N=hvrl~O!q*J*E<=9hkjfT`H`Oq)Q!z(aIO{Nj}wbR+}}MJ$cuR8Xl%80WK7?G zyPq}HV&^${+qa5NXCLE!=$?fkMo_N!HMlBItelx(Is25yb`FI{yPp}77YIk_Q@J0* zj(Q*^{-nY{D%r$$HfM+Iee=_A?Isi_c>#nQX7T1<+sPI8=8Y>Dkue=O8M=_d!0vmA zSmy78)Jr)%2dVh6GR{(~1|3eir6SK`+(+IqeIQxXcdWa<_qpb&Z<28)otmMmbo$QpbbUL7& zjB$ls-8|&%Mc+P1X5jGrG#O57*v=S;trvV3O~`A+_3yRY-%(LZ3_3_xl;6jL)?VFZz0P8koEgwh@Fr316}V*Vau3yl3x5OZ2&7*Tn$F_Q2F= zxX!ee!??;K5;NzEzX3QS_iUyj<9RfU_(QCXcf&RMH011y+t#nK6CZug=AE4w>p<>I z9^}ec*E2dEvfG=cIHNsPC~gm10F!2b)$wB>5OcmVseGuUvBy`DDJT`;6> zKiHdfOjd&GPE$y58EoEc%csLR{!S|PoT^eeY8Ai`P9>MskUdEcY*V^lydc9yVl%zb>nLfs`9c(c={;k=uK|&A$An) zcX86(FB58IuJmmb=-FxwmGy}mE`0-^z$A{ELWkDZDiEMBv&XJ_L zKuQ2L<6UTpmVLO|5-||dpg!4L??tp>2OC|qOUkG{>ApYFv>RikFZ^&-c3o!vV&r`W zDhnP0-z@irNfa0I_P^-y+F5oRG;rd{ep5dUtd$sWUH4bAbMYLGQ+j@l!sPeAJ$j<= zdb-UFj%5;DY>UD=qbhaJPx6}vqbDU=ALzbl)i)BQKAy$6 zR6m9|$3_Nz&kUeV4t-O$h% zBxYZmLN%Fo;ftefJb6Nf0!kCje$I#p-F;G-CgbPL%MsF_u)c}Xgv`P(SEDm3li8}* z4KVPEp_>Lz%rrYs>V&8|?vYyu`IwX2P1zhYnWm7YD;=%9-bpZ|W)@TnUyO_*dq5!N zG61uwUj7_9_v;eetvUCzUoP(04@L!pp1y)Mwtd(tsv&_mE%4CjtbiP9@%QEo?YkMy z72Ikz!PSy<4ZpKU{`tNOQBTC1l{IHf{Jy{;6Sc~Ah>%li=ol3iG7Hz@#quT&((o;c zTIMXrYffUb!e^*r-5k!r6eW?P#;@@fz5-akrw7Z7mH9!k79Pda(9nmDU~Ru>DNrz3o)djuSN6+tb!6P zq7G$E>C(dNP8R!4UgjWOi?CoQ-hJ+u{i{yh=mT{1!nD61em=4#iqhZ7+ClER&y*nH zQGZ`p{T57k$*o&c*n);9C<2$mB7TsZ1*zd%=zo2{ng-<4+46f>^}fCyF(i|Fi$mEz zV-0R30Gdf3fJ}hhJZ~m8d1ZS`PLjA5G_@Z2y|$56@|#O} zaJ6E+B+qN7&X4n>)dsK&6z0o0tORF7FhnCk9lm z>of<8n4^Mo9#=bneA_ClkYh!|+_d9Ij0jC=Wj3f=X+N5dn7b8+8xn*&kx{zk(eV?&$S1Q}IU4}q~T3g)a-OrMp z55Sc^WUJKp35IuO)m;UEhV2+PSX_=2tgbtZ3P<{gs#kyaozk;;GTGrV&T5k8%pM@N z-q*b1`#z&JUm$l~i*m-WYn&X>{RKsYop~_3^N+y3yd3QCfzk73U>QILrivzl?&gDF zvexZq;hS>r*y!t zMozmvJ|S^eYf&ELTnI)|5l4IxmHCD8I+`_r2#JL7`iHKm_ml?>8)nU>3`@z)@%m`Cau}e2D2LzpFs~1UTGBAF^&kOmuC;by| z)0@DddX#Hsh~Fm*0KqP+fVn|qTZ9ZR_Dm(Ae_?4^U- zVLOL}PF$o;T;1}2^E))|zDTY|hak*SF)1Rl4Q@3=2((Ep-)KA(o7#^B%|G8KX0TfL zGwX^gL2E9T@KOo@O*7ER;%p;7i%S@F-*p8M{GztNO|);nI4Fu< z;PtZddY{l9?7=HM$m<%yRFdk4X3uu?g)9#|T;ewluJlTY7&v4SdHR#U7{9pUCz=Yb z)54QvUJTqZP!Jgewi^v}8&*?h&ju$XcWPiL(}W8MZi-Ms&QN|c+I#AZxd3+`wGyN4 zXXZI40vJfD6Bj}wa$?cC(zPadBN!sqP5S>Pc3i&YurJ^V+3l}VAb~*^YaeeKUivEV_R#J72yy*qVEU9uuZ`rzfhM1{0aZH3Z*}B zAD0;5cP7EfcolTH;ZfVA6Hir)vWe?2J*J7l)wh1$iEJZ94{HX&SNd?vYH+VDRtYQJA_EBfQKbL?!gc&LkO2wwr2?ET3=SVB_4&nX0 zUC&+2VmF_(5l<0%q=apOm)Q3#McbCv-bnY7zTX19Tig^UN3(17!_w!^>>O1!Wjs0N zzQ6Bwca&CTv}1Mjw7$fd9$kn5m%nW;a$KOpQ#0+z<8BbQ2-Zt+X zO46^G*j$v-_jQwc23t>b1q`YGEy4To;>fgLisySo6uC-78dlY>5v$NNuJLB(-`>Mf zi>nAoao3g_D;d##5cdFn$r3?lBHUF>0#@FM=!GXZOm14TZDbD1N;gv?BP`Yq5s$u9 zr;CPM>{o~-brJFr@b?O(%DiH(5~(7{n$lwT*KD+c58z6l6kp<(6AH(5ZeDJckaBn+ z+!Op_@H>fw|e&^gO34YQ)dOTY#xl+L%N<5u6EVtN{?9kEFjKWqSI^jDIaqH1B!m40o zj$q5VpDk)pMS%##tYUMWg$5-4&mb+?_}A;AGC!ZclWE~@2>kvG*l4yJwdaGb!BST- z3_2IwhNSkal!mn5Gt)F%qKq(Ij)cC}&AyAm88WNc=nD5%al_UQpRUBPA|@M~F_^@P zLm1!Oi=VZ8$-cbB>uvx!1Qd9NVR&-&hU^Ue_xX;yTizA>fylUD#O9#1T z!2~l(b?>HYec!z1m!tj)?jwr0LCtW)$Z*R}0nUWjEh{j+IimS=$1!%QR_AaOLi=j* zNNgLE4OQ018eh;TewvU}v1jtyekQUhtEKuiXtv39GI(3V10NA#z{!1)2fLf}@cG8a zlcndjzztALGXLQs->}*wP&Mxq7D|CQZ#lXBjeD5to}3Jes9>?*^h}^burd|)7k2Xq z5G{!MQ<9KYIGnJPM-(vGgzd$5gUMbVj0ji$lXd<}r{mxo(8XjhO@G+x|BQakL%V*q zvv_GSS#pK-@HF$8)jJ*rXyMe`UmoQw_L9-+d=ux)rdSfMrY&u3QYCw0Pq&TgEvj-X z(wXWQ=eZ-7SmcCqnXd@~F8-7w333W9?Sek*_V9o4w~TRgXCI_upf^ za#+z;TBr;xe3+bi)*O$FW#VpOFG8lHAZf+?5|*@hgNS2xn`c_0qBiJLpu5ap8McI24?lTJSkdzB9MFR!YQ6(x%s z#&;jN^lpB^X6H03s)}(2Mmx};Awm%d!io#=@e$8VtJs^lVy(RaM{XBgdaGFO;%ii+ z#BRh;s|BQ`El?${06*)qwNOaHQqmG<3BC^w(2(8Q`gFmgD7=|T4*9tG?hp8q>M*4c zg6z20eB1QB$l{g(IIL-_=dv(Qe$CZ12x*&^@$D=|M7WKO6>I&*_?ob52Z%(SP9zX?Pr0m2Ht(H252yc#$40Jv+|=LId`<=QYnN~bbePO zuqOqh>uT}p%oMfR&${6N5!4*Ya5A{*2m3Y@HKvG%k0{7GEd=i%)N*Vc?!EEMq$~T$ z5~Y6ME7$t~hwmp|>YJ;954d;`8e)nMf1f7*YMA|lOuit)QF_E8is^xOR#2lRuPsW``dB2sv%Bs1d|RzR32d4{aXJ%U{1WF_*f~l;WcU%x|n!RZvjV~ zd89NASJ$_Pnr`#{2ES^wG1-V1wvrrYOzy_#C)DoDx*5zv8T^G<)Y)J>PKQ9xdQ z9vh#H?v-xd+bZpHEH>S;t;4IczVo zg59{14OpopaEjl$y4Ud05F-TY1|YwhkwQ2cNfxjQjt7_b$EhZ;x}+Z-!WvI1rPt|Y z(3sg-=tmW_h?!py6}mlcu(g?&yBEEM^OAx1Q<7k zH)rZ3spb9Ie2={#mT39(;$n)94hP!8H5xmW>g%k@`#r z)~xBr0HV!u6oB)+#KXbC0ez8@93RrWej{g*xk#^oNq^1q8-AZRY>-9MXFJfrLz z67i;wI8gG0}!_4U(-Hqy~DCQJKQOd)$DZLymgi-0)30E zEM(P}MGdT#9};~B%B^zB7HL<|kt-ysx27H)DogdAE2Ebu-?< zx^hQDxIDj|m((zD`_@n*z$tIc7R<3umLy$%76E^KPy2R{^troG-cEiKs_NFKtDjx; zrSC1$?;`@O5kYO0i;L!(?=~(9L`mFdq1`0BYKL#QFHkWlJ~&Q)Bt3|#1}?aoDSd3f z|J{+{)5h1Y3by&{=H*#*NNZmfHSRqM`T1TpKy~sd8MO@|j$|hvXielo?MmAfC*jw!<{A* zls0@0;W;2wId-ia@mM6|#TS+McO75YOA=EztRKO$H_jrlG|~=TjA`XGl@^ZnG|rOb z62A^a$mgobg8Lq!s-W5Q{_eiJ-Qt8Z$(w1aSkxy}5of#KX)#}ld}sn-EoEQ01Qm12 zh)(si5qX&{=KBFK%`*XTaN4V6-TGDz$?;_rP0B?o{i{u70Y_;8PLz_~tR0uO^zh?;|K4Bm(($vcz+2*cPO0CmB-TYDBhA@99 zDR#~~-Hqt0@_3i2)c98h#I+u~EmDBK>r~A^AzM50 zURqO%Nb}w?ig^ejySPO=rg`rSx~62}S6uDhgGFdm%(;EE9}aV=33j!1o0Xrw?|>_0 zwiY10+ylIHB}?f5r3cfygdjsAkQSr?&nD9}=8+DJaXxQ;jf{H2yrE}Bk8ot7v)hWV zh=iZp>X!6+I8rNVKs218FMHV}IjTm~_*b;K7HkHi<8A9p?2C-T!k{K$Q--T{F5-5O zA@4MC&=_?)1%{K$mMzrDTM2~M7H5cK)VmJYP+;Li}q) z?Z%-STf^gao_lV_))dc8LoPJ7CFQ5WwB66_dgmj|!BhA*jA3eO!?DjcrSBCs(LeVs z6(_ShC4-(!BayI}$js)6Y&;QNi)79!ZX7xUH(l0dO3H=k;WRPZ#BTWviqcFG_7}tm zOGhZRm1Xm_2QORh;cCX?jt-X}u;-9Dt&kB^p*d^-Ro0 zDlH}{6gC(4)}IXc^h6>b`JO!*G-p#ly;+q;@T~YEWD&eJ?LB8|9CzyJ-B@ zU*d7yO}#*5WT|6Z5047zO7N+dY#v0Q)ZWZ@7QN*{*!5-!vOVfdo)iQpn?v8a*#jv^ zt7cHt`Ldk7r~+-8y}ay*9&s&hzHvR;$V~<5{rd8RyXLoRfitvt8X&Deg5~@h8~%`3 ztefhc>dw=X+bq;1<^*qjq4lLgM)R&tJvtoCB$6T1bTph56=DQ$R(0XhVKGh+=jsy4 z;ZDA76)J^76v-jr_v7!BUH<{AkyFe(&*hRn<;bV9>l}bg1_x?}16v6m4BWpvR-V$_ zlMsY{Um7t>JL1xvOp(C6_bDF{H38FeK21wc(`xxwVg+9Zj?HdUn56FaAh65}8ktso zga(k`^3aK%n%BaLdrkQn!$$aV1-3cM4$*R4c#ntPAtCIXV&Y{X_b4Xsrxw+*ru4iy zn=`n%81zh73KdQfVsy69hVgTw#rh2WxkmosnoBj%z8O*^`-$5pqUAhmgpFN8!&bsmK_Gv=hb`PPA&OyEtD8Wyohr z1|pJ=ITB|tc5l&eL>$sE)#N{5hXgR#5ZP+Ilz`h84tZzX3nn5JW1DzjAY@6CdT-cK zd)*ZGW*9LdcxS5A0Ub5q1Whx@?!<0)Yg)QIfSMI?h=t~HL#D(yd1uTij5*r#yqy)i zJ|10sg;9}dz?yb6ATY?PJySm&OPoFRq*kkL-TTu{6pB46F?GPR`8B!^w^7*XN&+8o z3z#)azxMPXlLLv_41eMrmH%Li22JdUDCo2K{_|K0TPFA&9@+*F;epY((BFB|C+by3`R39e4*M39!w;OJ2XaUKsb)%e_!a#O9|A7Gd;U$pYMJdS< za0o9zaryJ~(S!wLVBs@1pzn+~*(v$~lm=ZgDT3;atF1d_$&NGK6hMk?v^!Tvs1g;@ z+tb@^$Iq07zI~4ke;w87+oE$Eo-}@EK6)i|T|`l=NBSALO}=yV^U#Fd)(gSd9u;sF z-bl@&H)i_T_U zgn@<4GxyBcjCEN74OmsQiq0{#lok!9%Rhoyih}Y<$2(@8{T4_^U-x|sZS$>Jv5WhW zdAJmDS5jV@wD+wVc6g2ek?KDwbaN2u83(wJ&~NezQ6U(X+I1fDx@8CTDADbCwLQgd zDYHY-6r>desYb7ECBy@L<#xtgbfku7RJD@IBOXn&Q*{`=ebxnM%`J(6#J3jAT_nXf z#^t)S6jiT!I3itD7>j4&vfjqF`{r^ytw+kv0=R8Y2M?H_5_;LFD~0GuR9+aRHY`NO z?%)?9u#wv2?=$`e)u|KlJ8-X7pvI%WA!aJ+{tqWoUI{0P8b1$hMtws3otYi?kU6Zd z)|sI2ZBJjqO7GS<1;ZO(PHsLU2I2DsA7E(OCzY2@C1+Mme+)3s9Lt?QfAoS9Bc)?l z)kWb!oQ`2~FZ1p1U!JgJHqCFLVqXm1XQH5WOEN8>S*YbzCou!R&@~R>S6vTFD93%s z(xkD3j8@W!TBG0_6WJ_Ps~__3GKWCB*lOk?CL;x?1P9L0hAhx)W;8D69(N2k z4_ZXdWc+ro=nb98L1Hpl7qI&4B`q&igld$2wkLJaTMQg8XeG+O*t8?Bzgn8Pa8u41 zG`smberRl;Gl)H=l9iu91}SC&Vp@}AIFNIDg%v&6y6UK@*;Q3 z`;^99a?&W_J`l>f=f8FefYMX=G#%I40k>jhNpIyA41^#?7c)FdUgS%mg+2E_7E%7f zTSf3|!B*|d-*OGZgd8MbXDo37nR9a}}AYFQicRrmAe4eMvLnH5mGXSv*#Lj*-r~4%2zl|V7pwL_5@~=Oun6+$( zPxZKz%0MXAK3dmiPiRqbWN`JuHoK4b>GaTa8>=&ur+*Xy;dhJfC}1@^|7;9+9q&pP zlOl}iKa>f#O5Ok9Qt}8;CJsquR%1gw2Yr#|3<03m=Sod2f6RoQHM`ECi+?7!6 z1Q}35IZw%JfrYAg_b8DmggKNb;%^?`9Q;;eTcIA_x~W~vH6ZRM~3XF96(w$Vg{^NJUC zBzi(JYHT(EmEU zVbCqCDXE^bl`gaGqze@kwfjblcK)XL$LY)+FA@fH`-Nmyx4-uLu=XNyqRS7P8v z!-BLcq{~e=RgOhDOlrcDpUCWm?M*sx_5ZxN+T+kUSnzPvH+^$f7yq27_XOxrUJ6jKEXf4#T<&?P~JA@%$*X@r4EEM@4#)Qiu#<6p2GHSa zKT5|q0Lpy>;tCH}N4(-qwRvJ%hJW2O3ty)xJp>Nk9y>$y%2;H{Ptjq8j{wajUm_vt z-a6t-Cbu5}sAjP91uFNuyP(AP!w;Co7~C-2!h$6M8?n$HQ@?l3(f&3rMyzs_o5HW6 zNBJ#VXe_)Q?th%eFf5~%upZi&TQEQ)EBBvJY7K{r4fuRN>&lC1Ecp>!RY@bD*OPA} zhIuQQUEw{5V)VSEs3=CZfosDgQ0v{`uFy&gV>C*DcAY4>*-!>znnmfAX$lWGJdlu>|w`K?+ier8kp*yK$ zzlK>6gU$h`#mq~)(`nA$w@ED5q@<)6QF_HWpb~jTz;{B;^E4SbR+pbihboCS6dkps}I#;p?>9 zfDEp;Pnj`-V9vDn#HWZ$!{xxeQ;Qk(xYW zPG|e5PH7PxPV%o0P5ztLQUl2^3u6PMYYdMe9m(>J{yrjpa7fbD1af!Aig1M?qyf4@QuFFbXik0N@MEhv8IS zLeI2Y(8FYHfD1?>io`6pmqSN9_{GSJbfx(gMgk|=^nVfL2)CVzc~8Xn8W9_Xezp;X zi)S<`1cXg@J2X0i(z(PqC24S@^ikk8a{L=vYBxWS{Gx{>n&x^?X-#{6r3BPLQ$2nn znesrsN+O2DD9!Z8Qm75I64nnj8MV6!ezn*rv$Hene9S_M`b9+&`GrnL*Ze!U9we{+ zt@?_q;-<_3ABumnC<@-(B9B6ujFNK2;oZO>>_Pi-g>dqPgBq##KZRW<^yk7!eCL zkgYKfhzn5H=(5=J=$okv;Z5GVN|O-3p1 z9yb@pN3-)c6BN!1-p3mC8I`e!Lj^qRzAbcJ8k!J14Bw0aaoO~sN}2VsdI-OqtkjN0 zp&p%hc#z9|f=(iQXeTBf)e`EmDEd82?lF$G0Jh?s?E)FldrdU z*WDS>G71F9V!)3}pjm2%vwIo9^Q7qfdD0eR#ssGce%> zV^U&o--aWgYy;(HnssCnWRqXUVpSZVokrae467WT7lF>ccsKgBK!vcuG3j>OaFFyU zC$9@L?xda!6IaXqWL&n{Nk2%hp~%A>h%=H7&{a0;SS5Il#rNT!fl}SB4n{eej_ANRIEZUuiNBms z@yj)vEFLpiWRc?frP$)rj7e#a|0dDPm}n8>3-+ks^5Y-*kpf`sVT<7cYo>Bs0GZJb z)>xV6=jYRFoG*luJ!-7m$Vp5H6~0l+0D~~Gv(V%QYW~n`USZ@Z7XlF+cfW8xqA6QU zG&h}UX`T1PFjnDXc(7VnuJ6$UTY=a$MMdvh)~8IA@l8A9&&|4m7*G3pCZ||$vYbE!*iZeX;2jzM$crWYUN5dpx z>E&p4i>x7+LK+Q!|6)cgVgAZ=I$B`s5Z7^D>(kSJZDVvp%TIBWkG&Z$m0vndw1 zM&MI)+A|xkL@6hIoUFFx3Q=?Gi)q0y)rv3o-7aa8KZ- zTRrBOGzj5)UZP~ki*R{QSM35Znpi9OM;CAp#>R1$B07 zP-R%e_abRUyz&RCtY2MQJK2`${Ah(f%(`rt3_nR9!=fySO>z~boT=_;voVpdA_!K4e zEWEOETRs)>q9pCSDL#*#2-vCxzX$X}$@qw4A(_yX>H>HFaTK+i^-W|yaU$Q7U%>^*unoJs# z!<}^8PgGpUKhNFzzC5o_oJsSv#P z+;r;*(pL;HKQn@rC!_}Cn-IOHrYDFH!m`_&tHe9cRhk4$4pT>X9>BOWCoKGy@Hdz1 znTy1@ppMF=dwF6P{{=rsxd!4Qd+h__pI&I zGT1GyPb4sPSSmM9GB6zHb$R#ukVCDy#@XlTgX>Jp$D8B5g1~9M+I)M>fpeoOQwtyF zBB1^1Cf(}Od53xxR0m+&=OcNo7eMo%flc*0+*<p{vuk!K5$%XbBk0k9^zJPED`Q3N9!r{przKDW`qkn$?(M$gtj_85T7h1y) zPf(6gP3e<^K@%>)!zP3Ww*Q$N5L1%K%JEGv-j7mJRHZ`^gXYah_+^L+OmyuM$35J7Ctl;c9qO{Eg%> znG&{-Knfru?))$rP-B!m8Zo#&tFoSN9JddIPg&Z=22MXwg}vQZxsM3>yv3p*mz9%s zpU0Z(8!@Toa(EGV0c@xxSk1t^{&Glz3n$|nd>BZ1dV)ZBj=afnY58F0D^nH{mbCY} z#JU$tDXkr~L#K^+NcVaZPRNXF{pgN~dO7sWvXeO(tvtlS)Yyh59NOE$jq40~$atjxxqspZ!lUgWBR%*B zl!ehEKhe9ju=>QLaYrn=z!p`lI0uhX)i7Z=0-It+xh;{74*#ZnuuiZ7n$kMJxl!~H zthvpeGzZE4Pexq!jQ0{s4e371B`A#sP1mQIc7J?Hq1C0Wb`p;n<%mk0TUxwp74csK z75ym9@?ngM(n68g-?s`fgS&;LZCEae-*p30*AckwD3fxerLs@h4e2I$@sffsDiSh4 zBUCQR8pu>2DZ@vNJK23UbiZ3V8;=fRvAX{gFV`Cbk8c@2fC$t1nxbUbstid2-Y??h zR7J?>MJM1^nlio=2sk^g-O+N00)e>M0{K*-MP^FMrVbiW6ykBkq@5!onEDv2y{@u5 zDko6%fzgiD(VoSB)dYy#>o96YI6EE}?;h{W!ZUnPEjborESoHkm@o8jzlMyWojRo+ zUop;-jIpojv*Y%5{+U`TNt}A}2{x$kJGTL@sv}m1MDFzb;;?hk0NWsHEZ((^arFIS z9fGcnRvk+qu)q}|>ubuJxt!%uhPxodsH5~_R5BlSMjZv`lerM|Es^xy^Iw7VE@<=K$p|b7vLPhJF zzd5aG>|=fn=*Eg^qr`w*`{(;^a&&J{(j@}ngS(0;gY77pv%r4D8*c^_4&YzG2 zm~T0qemTTG5pZOE)0tUG(b%+i)5ZMU`idp7jl_yW&*)m8xL5wo2~lto1tS^v8h~U- z4cRq!037Vm#SyR6H`jW0ctA;z_WRBYJH4yTzc;iE1c|5F=0ZTbe|> zO0~~VQilKJAP6DnW`6;M#Y3uXPw?Y=_RG)#!+|>!NsiOr??sTW)lTnFBs<%rJL8`b z@MV#J=k@7$LHOrxKfn2ab7mqlf)(ZG!=X+elLZ;dd7{B;&*BOXuq8aXpQs%DwJU~# zxg^h8%gs_o_cACXLcZR9L%+Co5$gzSDI6gagpP`kku0@%$IWqTTK)bLy$$$5c;lkM zSRTx1a|~?jMEhOZmZ*w&;RO3~;swzm<%Hpa1Ct-Y*ZU*hKcb)hE|YFH;T6#n@A`-Y zLRcSqE$y3CQ6jAu?oGUi2;m8BCv8{vOR!@L{FWHhmDBozF_nC$>=FL;Te#MTT3<{m zXOTu{CJ2N(QzA4+1D4ajVq^bw0~Onx#c`a8oeOb<+b$o6I9v_wjL{w5nEh2OCI<7C zhVbv}0oNCnb$B(bshu_c1t|^@!`=dSP%}T5j1X0V@`w_EAj=OHtkdO>hKQtN*IZV3uIt6*wb%+&qy0DeD_oXCbI>;FP_(1x~l<(89k6N++1m{hc(0{HMAj+?{-mP0BS$TzudVBJ+U0dTAB&rW6GPF z0DIU(je)&3Lkb_X@!MbA@(AhXGUx_Qow?$fCNLvrY40D{A@T1cd#G>ECH`@1qJW?(s-ru$T>t`jPXu-dmtqD4sTql%-Gb+~2GOu6I&8l-x|U)KQZ_{C2hi z&|w}RfabUQh5B>yfyrqJ}f98LY}!<-g?kp}6I1wT=7{$a9E`bPEQjg^B1%w2|ASmQ@SBJ~&fq*b11RRazx)=?pLz7uF*u(4=K*Oevm5zT?QBFBF zMNoCCQFM9a#mfj~vZxtF__`~SpN8$XrfkbfJVMJSaCYxR*TD=ivUts zVuqUlSrQ08H3^kSOr_k`LVNDZDC_h|bF}qp4bz+UEh|;oxPHc$eZGt+LD5qnJXVQtkjuw&f&tj#JA@Uk&WM_u|08Xv&h!l4NkX*2A#f_S{FQSK#Vs@;cQ|K8Y z7v&no1wP z>*&>3)N2^Ch z!y=&peLyRUC?K0ZSwq%*4F*4-@whu7=;l7_EBmu~D`=jH<~MR<+XRA$Y-Al@I(t_x zse>I^Yz(GKed#&r#4{BFKR*3WP?bB^qou_K@BPxh)92t{`muw6FsT>rsV@;C%!eDB z6DZnKGG4RZXD6|3BZmMGB`CiNkWK?mRp2DwPDW7vK;X$+L;1i_5&scC&_TgAiuvXA z>PsWae<~X_9&zAv9FW-T604~Z4ptmkxKJr9E28|ownoZWF0|3 z$V{lza%|cISQP;qr_)co#TWxla1-z}Wr&*hYkUOov~?Dah?I%+V~u#Wf=MU1k`C1l z+*mb+)^w>$Kk87`W1r+()?m%*w{AaeWf4Gq2=9nJh7_|MiPx3NjLlZ9$U*pJdmfuE z==q#&mYJnM(_uO0ag(*48t(kYETDNKsItZ;&u<5t0!v z`s2~4TROwW*>J*R0cEQffDx6yxXGqkSTd8hMg=?FU9U*TvI$)Jp~BDGp#K`E*%2N< zDF#2;MeO%~y&7fl?e&V}n)+hC^2@~cj7j~;4=ai*Gaa7|(^ND)q@ZKgDOd^~n~y{& zSHPD?Ct|u#eW!SIQ~abnHI|&;qJ`cW5EXogD-jc6?z36fE>ym+@$`q?Eu~5F84h~{ zEV&lYapkrXM{uVceHYaFa9&P3C+JCggCLfan|C^?Z+GAbzv>S}=2>v;$m0nH>lba% zjo>n&RykKPrFPmt7xAW5KZ38lb&xaQqw7t6Fz5_TvVOXCTbD2GXY*?VmLxXt&WqCq znb=G!n(inA^TsEbww)ykv;eQ(7M`!oarI%x83i;gqfD zg@&E}2!`5l?z#qX(uzP(8XN;!rgR(45$hL|{A1 zKL=rtEp*&Gj39y;_}{yw#&bUY53Qbd?i463v^u#QjX3_x1|r?L(`L070ag^iWSG&w z$EX5P*eeT4SWyVVkQ244k}c7 zgOkAe&NVQXbB+tr?AKgC0@&9u`={i4m)W=~f8SksIXfAK1?t$A)9Z+&1uIG%F~zDY zYD;KZi*}jYF-4vQtSci>11N{4o)gMXXw+Er{Kwm({O4MAp~RdP$^YER*0Pfwel`QB zbqo0ZKW76F|7N1r(v~Ve0j!C`wc;y*qp$GGwI&nI6j$W!7_mx4<_~eByOm3_21bJ@K)#io@f1x zWlz9$l21U*^l?|-m&4H$S0GUAJb&j5z#hE_Bf)&O);pDE&tGZ&$t;GzSV-ai*~K-( znm{{I7wxVOllx}*quJj#$hr?yufgMMU!MMym1itw-eD1qPgFIF4;(?N>u4Xc4aDk5 z=A%?7XvhId>>;jc;14A5>>2NM@)iO#K$TOy3?GvOX?z4u5x8e#Qj`$Tw(NR5oPjXXiCQ)a z!+b*a1UPSD9{JKzznmXogH(-e%LOX%5qg9VP>14eMK*3+vZSr|k6C1kRrMFMl~Hd( zwz_f}Tw>4kl9FeS{BWd{<6q&1j<%7>A>=)tAgXBc#dU+k7hR18w|oY>)kTLA_QJBv zThCu~D7ypOdh%;#*Xel&7;-j%Fu%)R;gQ!+k;lM_|H(w9(><8Ow$}CHr7EX6>n70e z3-db~AvEgjjx@uyPR>A<*L88N%ui8GNH^%gxtF$knXCSdyxnK-Vzac#Mgq|M|7r=O zo-zH1T{k1NRm00|C}vn?er)v-ngB+1=MboU2^w;q_W+UjJLf;Y-atU1HCk>c?1CUV z6*81=AIj8fWIMM02~_A(H_0MsiphMpdDdO>Q)NFvaUMZy9ycV)tCMz;fIf8;9CSgN z9PTkT9lD;S+(Yhz#t(yOfSq_JU=-Qm$>o0sq*7r zd>4LJ>I5HSf!(x?mD$V{LBq3>@hi!VOJY>w&KH#Yxv|`cUh62w+Xl>Q`sDPn+@veI z6LVR|r|`Rd_dI#8tt}Jh-hJYw%+HEdC*TinGKykuTBBGh1xCyI*8&0+c86b1`%b1t zS+gfhGav^#c?3ljSyZyX=v?oGbbln-%Bdcno5q39-{&BP*NVrf*$ZXK@7As|{^FBm z=ATx$A1FdxO7j(20R!8-{nE{1_qC05>z^i1OWqO%?||4Zs?=o}3L*18QX1b$i zETxsVTVtYFN66+i^G5N1nNQHPS2IIDt?u6c_lXfww%yt4LeECA@*OiY`LnOly9DeO z*kvynWj~&bY+nf(+P403|2O=tZ!zlUEu={e8moZL#n$uuNIOe=p82)&S4hWfPHzL& zCzWSCYhs>?Qk2pf@wT64$6SU$yQsrK)AI# zUM^6~f~lz`;>-7ZFG8J!=j(s-gruUF{iM}qH~&>1&ug18L&yF825z*Y`9E1pR0qYU z(O^0vxh8QWbo}JnN-^l#Pcq2$P;1qNwregAjbYbhhN+@R-1}E8Gu!i4tQy^&zl+Wl zng%6J@8?lCpdHxp>AJC}tUXzo7hBUnYBz5G8HchAwB>lOQ@2(TO|hRJFA0=D?5G^& zZ@SB)8fi+0AP`Tm!9dw*e5KcJ`@?#E#PCq)%+7D5jb^SH-=&V>wJh}InbRv)8jfh1 zg4S!STOhwD1?3}XTAVod_``1vE90mB(IWt}Hk^Ku6doGl!oR^O++^+V{^#m|s_^#-~tmo2{f089l1tU2e!r%}`LP{eh6y@u@EMEL zBAUhH*Cw{FVxgPh?Lqa{^)`%SsvAu6u%22Imga{H!5ox|G_3yGbQk5g=NTE3M`FC^$}uGe1H zQA1^HWUJ6zrmp%5$|TXKRO4+cf$K0>2uuEOUvl0Gly}dTfV5++t4D@D!|b0z0-si3 z&@i2y(ns^?*7-Z~{HiJIFnMcDlEf()#}-Jx^%p`jJ2c*aQY>ouqCj6UeRzQ}gu4Nj zuc-+=37*9byk+wOF{cCz<7~ik`*`&BB;FN>QviW&Jah1xhLVuEq~cTK&0g_tdNIT7 zMnW`)G}YzVgZ0z%&0bXQgm*X%?(q)IKOLsAtLR)&ZJSUT%he>d?D{#(=CfMqrM$Fz zqfS+O5SB2pEXV1J+=^sFz^gVDbwW@+omaW}3b-{0$VXGW1vB>G#NV@2@5XMg$G4T$ zmtU4Bbk(IQZzG13yW##dt&OPV%p#iTr^=Vq5Q`vJq0QtT1hK2=!b!~*u)2Y=6#%*5 zYjDIh3dAt>ZP=uOdu=tSUBMKZ-P}ZXYgu+*aa&=jL^LUYx!8q$d0o z>_i$G!-^grAo>2~#ZN;Us+H*vfKW-_bMPRU{2ll9~F?>^~d5yLr~bhfxdloxge?y_Aiw zJWyn@L5cF!NEib(M5p3@T@IEDB2Ba(of&MV0?Zhw_g%?K)DU@3%?ndaUM7qd~4UlFcAY0YxX^qwmWPa!yyQ-6BkHi>s)WfsQTPH zB8C(jy^`{$W~SsDcC)5I|KanK>NSw&r7&=|6}{1wx?BM5T9OQZ-n5*e1iLB^MsHXNSQjS8nZe8gA>l%G%pSs;J)@ ziQzq$Tch2IF`c{AX{0U|MT>VUem20!scd5+FamqXT1aQ?5^2$2HM?FPFmwdcTKCFf z{{2pX3sFdGB>O0w1u*kD$!~pkHOTbF%zYsxe$PE`mX-4|e1or@Z^e$V7f+jzANh0n zuw>TM)l&MI9l9MQ^04F(#K#uiAqNDiw7O3zh4e}mPX06w(-+F)?0nyFIx&a@PF*KtUP&g4h=(Qwe&ENSd_pTxTa486j(HO(BPU@v!R$ z*v&-(km>WnCUyr`;Qj~?Z$e5UHnjCE23gkY`HyZpwZKC{gvH&nw!7=wC&I1w2Yb-v zT6nFqlp-kMSNsf$kW{Qq#LD=(2z4DF4d zgRc!JWkKoi3`iwGC$ za!-k5LI+$v&CQzsjhSt-LvcQfh|0GH#~W5Y9n%OSPt_uZtdcDZXOCUcKJ0oG5YF&v zNjp#8z5bUVnSq@C%V~h=56>{W#qiEp?x7VPy_`fJi$6STn8pYGigu^|UY#sh&u}=g zQ`slL=hfRE7KVu%@;guGT#&i5=4Nu{W&?awoUGRD(PNMODK0a#Ul)Hy2D66Pmx_-E zY+|86FeuhDsBB_Zk@-=qu#AOeiLci#Y08GsA~r1TYk{|>gUh10^y+DSs>KWXM7FvO6@ zUUFDU1)uE6qFbb-V`QlNG1r$%!z#_f#WVF|sOvV2rM|O4kxonA!sll#wt``d1;8FL z%x2{mj_}?4=BNP>rkj*xMS;z`@`#*MDlD?TwTvgOV9kzs7e;zM{{b@VnARLC#+CGw zXK0Bk@C6@)pEPo=kwyfLi^|0MGe-=4DxM}oO6a3VWpOzyBcK9YEUC)2UHNZpwt&er zu=fX*6sXm>fg}jcg9eI+9KC8CRhnx;Xajbb9`sJ-Y=ZgKb+u{^Z*lkKI%nY56!7Qa zkhv^tE*4w1DrWmrS5I>!Qx)#R1q_yUlkau_N=>>o@3Zf@O2=LRg5EGs4Yeu%IraBw z*$^N^EIZEd(=z==q0}FnE7poL4)hS2>t@beyN|A7R6HAcJ0+*{=cVt%@hRs=9b;nU zk_yvD#)I%H>!2?jV10Qw(`<`cQaAfbU?@VXGxA)VoP&sTr|@B9VLFrp znj^cwC1BiOt-<#kM3B4n1|sk8?G1u(tj_RgpzR{zlu};X7<2N>*SlG%a7awn!jn2d zI<4dtc=bgnK6hS&YFiXdt#mRRKMlEVhhN1F|CqxPt*cCrtl>&&y@iKsV%@((1lW2x zEw*?AhqtahUOlhPgf|$@3o9D4Am{u6H0m&0FSZ06(43mkhG0dhCf|f| zD+*K`3R~934Lq=?Q9Qg!M0+B??2s$*EUAJgozg!1Wtgw?-?{{9;J9`&+xiRM&D{7N zw<^*t8CV_ji5yl)N6gKh(k`{+NP?A$BLAld8LbXG{Uf3*@H}oqQ!qD=LM2mJ6w?Fg8&|7nA!CQ&~(-ZfXe?eV`-h zG&ch#{Rofh@+~eFC^M;@^nQDR-CbTxEXcEK2moVogsbj5*`cZbgS^5*;XcX^1;h2@ z!8iKidX$6qbAI!*MT(3afnxpn52QOKADt^Qv+EM_BQN>@~ zj*dRLZVMOiz8O0vFhUAj*$@ZW9V11deOlYAN5dGA?XVb_`~?C)E|$CK^gTZ z7~7C*h=qKWFXP{hLhBj)dJDu;vjc(ab0y`q)p=s9Ez0M6q~}e25-LJRgU8s4$=fQ* z8YaWbrRlF5X*9B{=L|@{#>%zS)7R;HjY-wMVvTZVuotMOn*PcTdwYRYr-q-8^}j=1 zE=;>6x}x5VMBw`}}QX_#h4bv!dOzRqojH>t)+ymq@YBGyVT4 zNS(PJ{BbpY^TGCaVB&sXEm!8B;J?6AQFkqWgZ9%Yhw(^5q!e7*$q|Y#kkFCh*@!R? z=0QX@d3K?IJH~4>=>uvi)4_D~=XA+HeHUEK^j8aI$Rcv*oGnOA`bIdKqU0^DT%JEYO zux8okOkoV0j2Dp@CVvL2A!Xk!SBMZ~P1wmgb3@M($a+rSnvU^` zABb9BT1t+>%la&x1BT4K>3TMSPRvxuZ{w{g$tPG|4g-q?P{vzUJ#LY~3`ga~5dx9w;oyRNwjYfnTdx6`p^f1}TDKfExLI`~(} z8F792^yqh$bV=jKkH!>PnecVJvvtyC=Xc8S8o1N)TU{6FiU13GM8sK`BkIt@d~&uX z1x)wJ{+JexVBH$pi~iqIv5BW&G-bV2_(Lh`z5#Ac4^3EFzr(6rtVd>LLP%p2!ZEJ} z*VQ)YqxZ!6pyLGWjfL1`GyjT1B=mJW7&Nv&10Jf~zdLYQen7?ix!TtNI^xoLsF$?t z`=NOpd6}P0u|J$~N2c(5}hC zf{Su_*;a)a8qkD&*X?(kDa*0;!of1tPfWAM=GMQgz=u~MKQ%U`OY7>`BFm5!Nh8g@ zI0LO42rT2<%)9$4@3RwX#53y*fU7CBhJ9ebFZ7D{U`znhw9NA)u#f-bQB}?cX0uh7 z=~C9rBj}Y@Iyr&3Z@P7v4{7#fs^%ZavRH3aGe$-&&O&lRX8Li3`&{&7R(ROqF$ZB1 zq$^*(0w}#dd-5D55E8vd{|I2t;gNO#ba*yq)a|^c_dhDwK z-a&!vxsQqK27=FA?tjmm(9o95cijNZV~9#KDC6XM?TYPDWWsBBqq*mz?31~kUi~60 z|1`;znFP(0s$3MUq-FaihNSa9h%^fK%cu3|E+)5Kn=z*F+|Xs7+P}K0`1$!j`onL$ znJns~2pm*_kNxlqCr)5zk@`nO`4p*aYvG)KM1{idrpR9+0^_orEJ-g{a9d^8+R@+* zc8o`M_2Tc3qY}j5gmro?VB~ZvF&p9`$YxSdJPxs!XeI!GPJBK+!vYAob;4Ez7!5hE z-S*T@*4DvwdxFCyzS;S#b$?K_xkGHRa9^{_{r>xrVZIh=xJ#~&=@Ngv+>Q9t4gH;f zzqN7I4=Ag zxweO=kDoa|zAP>yK<0*MORdrfBn19ED{%Vq=^1~MP=&vYD{VLEXWnA)U7(Z7x5TcW z>a7QEME}KlC1J%u)aw8Q4r`m(Pr^TcMm;&j1ippRo!1TRt{|s1P005KAk!x<1I%s~ zFMc+y-zZt4`ZD{#wqq-o6;~%SPMNtdM0Wx*i!bxzo+@(6bd_CMN6y&4nBVMFO5>q% zwID$t6+0KgHrkc@_rE>JXsM$Z*l0fX0C9lYZ=*)4GmOzhR9lM0Lk^1l_4 z_7xxAyLz2O420+z~Zh%wU zv5z(>StJM*ao`0N^EKF^d|P(ya?3J)iW&N)0;EDWVfT+PZ@vH_1K1QUFAbsDYfK!{ zLOG((S%osqTu_AXu0B(0#cNE>OfM-0N?X`}<&&9VvEC3l`|1lmB(Hmx~yFT^1 z>9X0>S3)_J8dUhe`Uk6W4Fwt5B;Z#A-)>&qAkZ$-f$}nR!0;Pq_^uW9E`0~yUzk=p z>1NvY%72Zi$QX({0jzJCiYz1;L*i*_%<)|u4KPBVQ1-mMM)%J&+EN-GG5iWuk?-UR zAh#!PY<;=D1`tdh;P;g7c~aSq!HhVUm#)3N+XatNEf_rR^N1>ndigQvXNLld`J&0S zi8Ni_iC|=4Vb}W~Hc;Z?=i_U{0wS*1c=zg@D#Q-8Dv{{*V$?dD8AF~kQPz8k$>-uz0v=!E14~rwhlr$s%IHH z)i4WGCUjQBP zwRouv&3W{Kjq~;sOfJn91!>NQY+ZuP5(cg8>dln-gm{g_nAlD>`pF2PM9{}}r@^ar znU{y#e!gC#Jc$ne&d?>E4yr#Ao*^-zf{X?Pj0S9YUm+epwEK73h@XAMJr%#`A4uia z%lm?roBpYQVm^NoWi9YA+Azo~9*{_9YwuIM)WcGluUu<;R?qM}y6mX@JVQP#*oANv zWr2VvAkE6qYD5@?Bc4CgjUS=2Q;ok1IB{mZ|5$p2S@ihc)D;b-ly6E0d-=P3NqbIK z$nf!*`zywBrc2p4HG1nRFC?<0FB=^MLP{ZLUs#fV{A#}ab^D=&L6!vc&4B8tbAY^& zg7?{kAVPPw)+ME_okIN9`^|4)z+L8FG<7E!eJk?rK1Wxt^@C=azby;og8JbY_c~*O z={X9E>#xtD4%W4_@da+*c=H*%X6vxar;ed^?#5p_keH6ZP?}|8zx>9K0{ki=Wi=bl zEAJMnzL!S&V;mC`X)J$#=|O;EW5^mSEjx)+I$_DlaQ49At3O4F`>R)EDifOGm6C!Z&G=))t` zctPi}<-I{X`Ew(Y)@|>;3MKhNN?oz&vhIZ+{>BDFNZ?0)jll)NSa)eM*wat*m>N>o z^NL2~kp77ig;rjQ62*WQicnfr72a<`L@9gb#-;bobudH zLp>|3cjQ9L+=n;NoTsVPN4j`09_Us}yl{PY3HiQj7BT^W%&4W~xycpyXno?H1K#ef zZ1>SJlP`)HWP8Cag$QVz8yogw!R--2ws1>|n5QIwZ z1Q-;b%c$hN64Q?4j|^)FrcTpm#mg-<`a1NG=Fx0UF!XH|7|Un!24ho5J^+-x-be-i?cc(++;WY) z36U^fBYD9`3dnKVFp%1#+kEv)iw~R$&pha$u~H9ria&vY!)M9+v?J<#{f{%Q?@xS& z!xeW9&UXAX65HGR2_8(`_9mIoz8&+Soy4z^=%l&th`OI26?Z59pmlS^m#75T%W?@o zA=fseE)2$i^AxpYMAmcfg>P|m@dQ<)e{0e+-1dWiO2W)PxU~{Y9 z{t@#MYtrhwO30zf`&!mr-;&%4adwka(X%c6BNcgNe7dM&ewhD*R}(6B=NShP3Ljzv zMHs?>9Vq$?u47X$q%_fr;{K7(r+6(ETY}Nm4|vJa>i_Tvn=DfO_HTYWsndUH47TmL zd_}vpmUu}CpBYSklV&TS9D&H;yY}qku>1KP`TshjY{@BtQJTk)d`9p?_YQ9yg)QV% z;EDOBgh9vzYn>Si%JHIT>Bkr7v_&Hu;NyUTolIal{d5iCtjUL=)_a`NlC$X^m(hCVup1sF>%u8n__!hAaOne7x z^OgRlQpv2-Nk{!^@{8T8VK$4jz*}Y2O6IyQ zDqSDMXcJjV&2yG7-_)fD@Oi{xG09c}%POZ^rs*1uiWRO?K){*>A-}aJftH^%w2V>W`vpy_)F%?V2OyG2N5GNF;)&rul2xFt*ELD}dm!Q4i{Lwc&{0ityeG~1 z*4ImNYp>JnoV^n=?BFn;n^#j6|C<@oLXTe2oj|6emuXu<9F?8Ojo+E18*zPIO>A*+ zPf3-_kU{d4tk++9BQa5^5HLJ4eJ`|6)^eMh7X*R)qVnz)em>(c+$Q7N=lfqnW8p*z zrh!PWt%f!4M|^oZA=ooMofahq9WOP_j7*)%!uhVmX*n>e73LcnN_&=gmgMh!=tvl3 z3(XPA;myRvr(`GlVWHDrbf)>_)5imC0!$i_iPcy+KbH1;AGoA(A5 znsf~RY*wmS=QE-LlsbBP?MqaobPlBU!uz+^Tf!dA9bOWZ(7Pt%n8@iBh0h0GS%fsmc0E%zEN zAe*@Fd8Mxvo|WUu52ESV<3|6l4-!PmNsk><$dHm;No6c4sM2#EdsO&e)dtRizR4fK z3Qxofyax;TYAz6Y=K6w%4dly|kNLcP?35-!2!G%EAwlc)C(R6|LwnrSJ!MxUW zR|UbEt&HN|V?eC5g-gkw*O%K^Q)_+ zbX@z($CY=@l2OxrX8ewVVDd@=r;>$67g`d^XS~1$ zrRCpqc6E4E>m9`l_%#{##6Kq2*&(|dJ(BHjN?bn;M`8YEJj3o(`x%qjENMHH`J@k* z<|uWof7r6z$8yQ5YSZP6LAEjo*zf^UDZoGs{s)#dn5%1RGiK&=j^wjVrX>m2U6-$Q8pRcifuqiGPPW@SJB1LSgd;E*~`@cW7r7D(c>Tcbn)jxPksg zswKx2W6g8O2QYTG0G&14^p*Ybv6Ei;II}GO!%;Y@%ck)Dx1*Ch3QXw7DEPc>@3Voh%d=F#y=iBD0_B6P22xgEKA_5He z`<->7UKZ5?d0b{85Gjc820%PLPW5vO`0buN^7&h&q8>ehJ7k`t8I>&6CmBJ1ZtY|w z+z3^=?vh?GYt>co&J#2_*L7^a_ld24>Vj#>!mX5XOBq*@Bc;sGPkwFPqrkIh1{Brc zZqhk0&Tr~>)}zB|S^3zxH^AC7Q?S5vsmj@P2d>97ZSM?|#((Egb4CBCV@k#;RK1DD zeuF;2@pDLh64w1i_fuipZ`Z$z(g0zAJPzOv6V;YVs=(hXCJL#*(-UC4huP%h`%pak z(5N!b=+^KPXOor8sLMokri?Xcl<6@ya~#oXF*mqaRgOw3xQ}8ZRpH9Oqz;CJeNE`1 zu5lwF`5j<;ea_coKhH<=t`LtOZJ|+0X4)XZ*^Lg& zWT<{$U!**?q!Y}8tAr}*SxDsw-q``ILo)GlC!D_o*tn2^+OZG#i4zUXn?YlvoR(<@ z(Um5{lXNxqHBJ5q*O)GY_h-sR9`?L{a?=G^<2lS6*s!=YjpkrJ*}O%+-5i~>LRI+4 zJie#ug-#-A~Yv=6uVqL*IDtVx!> z!uGv0D;jma=KXk=tpo@`iBG-qiVpH0-zFs zG0`4P$Z>A6R6Xg{aw%FFL5hs77dIV>v_CcfSlv}~mtEB9mvm@a8<{Su8CYAY24=9U z3Z+?PHeO+Ylp86anJBB9vtEO+fr!O)1WFL1bL(+@^rwvLd7%t_%$&B_?6S9GSfk&O z^UYav^(bQqHt+5=vTQ%I*P4=EMm95#s{~zs1Cg#W88%wU{ND@M!#3L4-rMytEoFYP zF4kwDh63zuxt_|L&Y_s-$&_h&6cd_rmt=`n!%MugRu_R0uxl1V_*a_iqw)-Sg-lv_ zku@zppgWTlaGPPWZbMZ^56*-P{CA$8jSVcT=z-=|*F*X+XxA8fU;Y98tj?ZVww}w+ z>P3f#7K@YD;@CTrqG+}?+dA%c{+CznQjeIqX@)gz?l}2aH=kA+%aT^+3OYpJG%|Om zPzq&=C;%tm_k*IAfD6wBv}9QTwxwkATQFk1`{*;`U~rQ*e6FYXwO4HxreO&E?L(F;{8 z$(UcV(x^x$zsHiZWlGQab{^lN%b%un6$-fX#pqYcoJsw+x1D%{K?O&ib^M3QlD~6Nm zJc8$LQz;{b-Jat|kI%GfAA>*Flu@nTmlc`V!9~=95wwP|wb#EsaZ4Qt?b?pG{(DY2 z6qgjm6_&hZuNtpc2~4WO)vwZB$7LkEiWL|Q_73^{T5oNJNDZ}->EU0=uF-4@7MsL= z8<5y9?(cRkFk;Fi2MfPEJv0pJqh!AN;@A}Ikh#Db$jmn$u|DP(dib{U&TozJ+vc7l%;@BPtj zf|{CySesaKa2KP+MO^vZqr9IiD8-}hkbd0}h1c*O`(j|JRjNEiMgzpuLnh~VExzlK z6KHyix}=0629xV+$JJypIa%4m=pJ7^*^NfhN^28_ScCJ!z4YnF8l<{9<;1qXU{>G&mqXmiZMefwrj6%fdl-?P`aqZD$qb?1{%oKV8Jb zn)uf<8UBdhQ#;@eNku&EkO z%n^wH-L?W)wvpMI{LNEIjp=C`2K13e<)tn<0jw_atF z)z&z?t!e)V&5fturb46Bz(`>7ofrL-{qC)K`kPRMqEv=eWN>UJg{-d%vO%+RakA63 zKB#%5Af=`Z{Ul1tdpyWFk_VhrV{N+OA0&n|Y76MPXMKOD6LGFf`d&5g{Y9IUWu1Qr z6FcN48p65Nd(kDLkay4{uPp9!Gb2N``oL zjXe1xHAz(NxiP_Z%4045H@usfK@&WeEXiDDTwDmQc;lP@D4saO2FULH z)z7~#?=S7XHL|pbz7ZKI-d8_5XukYWS6FCi_2_n4Z>ij!>hEw*r0B@bn;3MqjP&+p z5^T$*17hN{XPHCUQxBMS47u?egiX__rS7KKe;QU$w62Doa~Wj^5K3ispyDc4PyBfF zQ!|__f1~-<>Ji#PEX&6jmukQE?_(dbt5NiL&YRRE){*`7e%scyq1B9?b2o(e8P+*n zjijb8Lv8cmX*Oq$+c<{7*X8^3TCxL$w9US5Aoz6L*9AX6zPXVhz+oXhB;TeqTR#1v z_Duw7Hmt(>mClasi`&fOE`CeH$75C%7}gmcyy*4%z0Tqr~c(2rS0-l zzqqmRuuAFdIR5St_e*B_j62D-@1Kv?cjQEiT9c+{x*t3#ujV)mD^P)<6g~#Z48ZG+ zIzD4fsR&i{T3cP7D9;fnwdepdSg7Xas0Lp6SD+oK$^a%K2Y0^4MI`zzj#zPxX)#BgFR*kl~94WpIZ{>;V< zH@w*t;``J)^W)Eg>f~rdDen7+fzFiU$@?3LEZKovJVKgiQXXvgMK{f2M%gpxX*n<6 z`?gcRQsnU>45RzQ8~5K+S>O+HJnSkL4KE5fb16a^7bE21qR;0=JB>-V>(gQyTP=G& zQ>YyObyy1O@p~X3!O!msST-{l#*77wAE^e=%Ig22lz)F5zK!YlKzVu>`hmEpKhJ1F z{B2xy?G9T-O5FOZz=kh6j^FA#pTfddU;@K!+<7tDi0VZ&@~8c#HkA03-f}6MlQQ zqt?TEg*EI<_gTC;1?_g4E)2}{?C86){N&Ld)=JeUMF+5(=#b+9xF4}K&qj%uG85Vo z@3WDr_#hyFg@DEX3^60z&`0Gyhn5HTz*eS;ma!>j`JgR*x{wpom@=Y%r>D-u&+qLBe7qj*1*4YEr zk>c&3CnW!M{7rXYG8}BfHK{qaZ{rB@zx8@8;|siK_;wTje)_1K2}_4BF;K4c!OzW2NoNs<$WTe z!u_WK+;1k39c+I+ief)KQ}TKAoGlF_jYs1H0rO#^ir&`<*w&9VD04{xgRbJ#t1zt< zJ%J);n{^y)*^bW28`_L~@GW0E4-DiE8Fh2AE~Svg9%>UU?7+@r40Z5*VD~*17ZP{w zoH!p~_j4)@*EvbX=i6x!>dO6MjI7e#|<{V^uYl@5jeZe_snYA2&aLRq#4 z_=`OTvT{{^!ObN*x|)!+ZcDIj z?FJSu4|x{8h{n+W^w~ST-QQcdF)5nb+DkHJFHg(Q(#VhXzf~1TnD<^-%Ay z<%w+znf)Yse)6JiEh#v}uXt9XJzAwMmz3kT%m9zdRVjl7MOd~>BC3j3?^2DT#Y?v? zM?x_PTW3R!WUST=4mC)Yyv+8&>n_|{UA-&CtAr-mV8^FAt&PcfxRKk-&3N6m|G#I^I72Ce+ z3hX%5weJvT5Oi+hP-K!+X*#4PyAq(mi9-}SlS6+@Z&Z{kPj5(<+)=08E21U~xS;6y zUJS7NPsy5sr#F^c{?Yz%>jPM|A-m!K5xFl~B>zJ&AV%+lSZsknovJnWyv<^*7EnwTE~tq)m5d-kszOz zShx+V-_vP1KkzVEg?Jw8vXI&RzUHkz)Lt=PU`yxNci%OO9DO&oLc z=<+A2{LK)VcgV4PxV(<0yZG{_?;nHSg;$0TgMPyqr?T%c>*8v=&1VtVA-`^T&KvS( zCnMmvP&&o#Jp#o1D}~>?m(oHsg;qEx6J9w>{>l7g>G#djSqJaNq{fkz|8E~v(pk&R z!d;SRum?C4oPd85`c}mpo1UM#`dBGq_*B2<&oL;OHNbX1eN?p#!iD0*JBkk zp)*RY%4{|mBBpxT?5g+uhuCNOAG062$MWiR8FC^%LB#xBncWqz9Zc4UFkU3wd%`m4 zDIXrO-aZspth{Y3t_E3oyZjj-xI+nCM6fvt&?+w7(pKsHhs0P2_^K%SZq$%i1!;06 z6q&^gOEiYzq~{|>U9TVX%quxr8;C0OzwB;E$xRGz1bgrBBi4&nMlnx-9Ya)X|UTun6ITYvXZ zEA%= zdX#PW>^tu*OjVMv0h*cw=+wXav7yr-y-E)8P@_upWI_G=7-*cUFoojdlC|t;^ZM9zl zE{g#9EcJx~-C1Vw!-#(~qiPn1flNu*Eba30p)GyD?!>BATr1!<<`1ZVq`?{JYZwK!9P!aE(V#B|g|e)ik0);7@!@GCERhN+pi7c(fG*NyAWPd8`cL=BbpSL*d{qz4}A zd$tom{Bc&Sc~z=sJzNt&%3WGm1*LP4tn=_@>V$s`d*%{{S&gvdb8IYkId`YNb|W#& z$V#t`Z?I%cqa-c|=BPT?Y!E1A+Gy)j_jc60E+qn*89|pE7;%K)1RCY!KEW9PeP$sYQvNFV!k6S-hdV>2g8}G}o}2@NZpz(#U~R{wMeO z>X{c@&5cC6HqK-GeMe0$Ue)n%`**T8+02~oHE@wsYZ+G!w5&dEiI1|{yT?X3xQ0&s zF2()pIAE1VaSNV*zn>RmEbW48dh{cS0IkjN+A}(3a9%MntDpfx*~Razgz z4}VnT`|%>b+O{T?+9%DO6L%);j?t%B}xy5GD#`^kBb6ob82x3n-Grd;`0lZ`)Q-ue3r zZ}!?vqcnS{mIO?oezw`bN+J-_$|6`bXO!suRt`K6hMnU`mv~{1BdK-#Ge~_|UoqjA zmp;C@HmnFHV}DdCMZ@o30rm+!;C!y8S-Pfm#aB6fvbd4Rx{x~v{43p!;+giG&||8` z=K-%g_!Oy{{Om(W(`N9bGSUA2)HrH2Yr6EQtX{m9`1`>*LtSuO!n>trKNE`!-?qCM zECSNet`;`F{Gw6Qfxpf1=2%H27%G~?3YFTDd%S;qM~LYt0iHD8a*~l1wcfRaU9kXb z#ggcOd6E9Wy_zDc4=+E{{WtiPW_m05O?0|nwfiq`7m@so5IU31YM6gH7A<4iD9dG8%nFrWm5#&eKA36k=rD@$-)_KZ2QHl_KW*msnpg<` zezZPL{|1hxV&JJ~R0Yr=4;$=l!)Erj&i)!8uZx^lgs+~qwE?E+S`r&DXV_fw@FCqO ztoi8a3X$TMiCaK@37s9!p`@#Xa6ulmu+Y;?ZJ$>?5!cBLq4%Ozv zSV5MNZDz0Gid1i7t3$oD-zc>Y6wpsk*;(i&84}8sSDEsqW1ElHPuObMyC1L&77YpMvj~f3IA6$lRPtzsxeo zr;5k@6DDhMehk4JlxS4$R$3nS_j)}qnD5~uX?1?+%mHak+MTI6jdzSyax1M)V`*DyOew#KeX3HsOtUfWWs|-bWKej21?%ceC#*BsFL)OKh&K2 zHU0OanR4LJWkrMj?<0+#z`Zx+?psSw2z9ySLDRM4>pyNNtE(1S9}}GF7Nr{}^qo{x z91|Ugi9`gQf_qiKW2t)nprQKiHkh-bmm@!%gT!*Rk%VzpE&tiwY}j^AK??lh(D$VW z&o8bw+yvUgy^ULsHJsw+wA%OrmFa;+4L5kabw1fkDh^xey1B$hTw!J2}5Re8X(PZ;c{R3IkmA!8{u-ke|G*+ zy5GfvNCvNUyN`Y})`aG1?M0mIuT%4=>fh5jQS*2vfdZk}=CyU}rPvQb<7VteudlGjH5xF% z`X-{)Q$;ez_f2$BM$wZpIc~v?CVG&)*&Eg z2f=pDyq+X#b(>k6DN=x|*cBTern#(2@6GmAvy>fwrm^uki}c&6(G66yX6pYfl5q{Th7L$252Fn8L}K9JP9~PV&z!6 z@ed3|y5?A|Rn+Ak(UR_H7zD6;X~QO##e--a3U<`w+2SmW%^b^^X}ofkkm6I@SR zp&=tBC6I%8MLAF67O)Bh8nh|KEc(1;=W+)|s9Fc~v1?pESB`4{y~Mm^-2+$ZLY(N8 z3Lt|(X|di#m1aeqX_c9ft~VSLtG$*aiNU5q(xg*48ecrD2G!fv?qJD*{>i|y$) z*M;@Pc&Tm)u6Ns<#f&4GL;4! z7;W#xyQyJ!ng87pnef267jCZ5Sxq+5`;Nw!)ru>OLNPu_%cf(D>ysZFA}P8HMXx~I&NVzvY)&ZW<7_?lBS*-x%ouE2HMyT2#Qm|F zu7K=Kl*+ArbAe8*>SowX@dkAkNmc}+s0$^#345uN4j~U;T2O1f)6|FrJqogC> zz8x(nhHY=~wMmbW2|R)}%X{;)3V2m4|Hx5cycXIS5wb&h>_y)Ptb z$!2ds4d+0Ys(7}!a)H`kN_ z0p~bhS7`Bmq}H5HN=b?F$!b^o2et?%?Se<1Tk#IyzXN#j8{me`RF?FIN^j+MV$|6p z=^J}B6Si5Q;Rzvr!_r}V>AIKP3a!ww(a zecJq?%B*LJ`j^$auzy*LHf57bFPwkI`;^aB(u_J(2)%B+seyo@)OE7Q)6P}>WC#7s zn4IebSNm<(9}geYx4%OD>5Wk>%!-*G>y3eUoO=1MCS#PxNpY0Kq!=dsf=6EKeq>A! zwv1o-D?gX^KAUS{4hZsR59TaC5wRY-^ZE3aeR%$f$Zz51glLKd!#-97Mptt>5T-{h z-*WjT=o=L$&hiEW$%Ik8{#iHnGIHe)O)yRkICq<3+j&`@>~@>nB<6T=zagMGptA{W z3$?{QX#*!9weSiWOz#AA8+*?5`rG13(k8HuN&vKS>q-3hzn!_*s1&CoXA>YOOBH=w96doVK zfBXJ(eunHq6UgCy8HT#?vyH0B0q~vAd`EKoNiUv1x^1q`k=P5mB2)L`)zq?sxzU{e zH>bE#1za2TX;U->QQGacwp)Qsp6v<&y13Ek2gkq_8%z&wX<&P{itmGB51l!Am30B^ z?q-KQa@vhmb_*)EeO7jG$72qhcJHoljz_uY7SlOQd&R8lB31;uOV8SMB12_fp+z2@ zX(pTKp2RJ#XPHmod&OVtm&%#US2l{h+*~s-sNDUNdG+J2{8WvNm7W&X4s2R0^YV%d zefhNOM44&V`lns6X-(?xZx5@5Q5xT0n2Yi9;Uw0{)>#B8xX(TfJ_# zfy>WPCU3>R-XSwji)Q~M9N(V36vJET_gQB|>-T5bB^V{vNvEd%!{;9N6NldXf8tD= zuDS{^$;=lQ_|tq8fO7Zue>5%EB@ho}$dlLquICFhLzM;Xehf)zH`@-<+ra6TuCBo* zl&VZlr9Sp?A;reW<%7ly|A+&)HX;DknI$_7J-nTI0^ahU61iu(NZp+ zmiuW$MdlZm)yT)*ruD8qtzsb!Ln9boa}s0z6ngFMbSSk`-wW>v-rm)J9HRu*7&6nn z*yQ9^B8tV1{=_|mW?vEYB`azp68lItX@bI~Mixe;E3Xlkb%GI)4J!$30%=*`Miu=q zYy}l%by3xh_-;E0eJv@OTl0PpA_W?rI~c>MV9ou<{^I0N%JP-xjdj&LUmAX$Tq+Bx z)u*!C?`cslB297?xMhRPoJK58D#3X1k;k{CL}($hml8lS(V~I03_>eZe{H3IIr_F- zy%Fmp6Oj)}2;DK%d;J*(;}kfVyyfL6Qk{t#i`QmQ(PlboKudMbty>+_tRzB1a#JjQ zv3#|dspd)_zKZvTv*fRs1CHb;qMXTR>}a-sbZ>$4TL`5wyQ7jThjn~0*lt<=0dEn~ zBe5ou$+=+0^AKDa#tika6|Na-2n!8psn7-@tPsz685rju?qb)o+zq`Tf&;M_7u~w` z;W%!pxjj3~K3QsQ*_HuNFw^i%MK&ZS;e`DZrLn-6AL-mmdA}XayAsbfsPC+fvO|ZW z_iI8HIB<|Gs7jx~t5RXsF864=2J79ScsgVI)5nVnHCef5GVY|lXs*FZw@q)B5EJvE zCWgtqV8)Axy~&W7g=1B4mzV%ugdO`apC2`CNV}dJW3@>%Rge#)5>Fb}b`%MbhusM> zMuZ)N=K{h?9e!zsnP-y#(AHvKG62zKDAQ%F$8YF;Y!Iu+X>_qE^t^mJj1I>VhtUK)R#Zc2`6~*q>Z7>HAm*KYf!VY$0hGY+H98#1U|!M1 zWSTO5$gy0MbjWpv@0zgWCl@oGA{A7`-$fP!&hL2&8K))2X~Ll;HgKq&_IDTlj8Vr8 zZ3|-rq0M)1d22oY+8Q6gHv%#we&w~lhu_#iOVwzh5>KZ-O2=T`iPi#RLR~%%vXO~3B){o)Rxa}(-dLNYT-!pAZ2~n5?UHHgA06h{N51_h>KLEeE3y|Ujcq8lW zI6wL-Yvjq$%OfO6U0`?+?wL2YZxG}n9$N{}S^%0=n#oUAdd;BQH+S( zEwa!}7-$~`z+uNHf%7MLC3y$e4tt$Z@!x>x)nyU{{H!nL4q;h?k?ZWsU%NW?k)sy?<(eSk)4O@CZeoSONyx+=HP*eZR-RjryeO$K%cM>$8*J;wNy+E3_$5MKt>BBa*#wBCF3|VlRfnN1^2lipyq3Q!IFzTE4`S9|sbhvh&*I zwocHre1G@E4ka8fr?q}Z0{eHF(y`4Mg_bhD+rWSFE)#mx7CH3hUS{%n2-J=|Aw5P| z*uDhFUeDW$lSbuw1l-tQ{+x?y(fsONSnE&{!_<~))2t|h`edtTet%hhtu8ysZs9vkpZu?DVrdFN*kx!Rfmbc&Z-DX zVe+eL|Bu3eucG-*k@t)a|H&}IVQY?PfwT}qto#}>I(0VVGt%{Pfd$FlB$2HpBVLN$ zA*FRW16*D1ZuiS{ZM2=3e?F<3dOQv9{q|Y2@CsEtieR`*6~CpK2a^9k;CgFe-bU5l z+R9{NTDtJPZocS!GeS?1sAS^jkVc`D+H$rf*r#wkGZ*=8>ZDDkz64NN=*~na7r6N> zgRx2X%d?tO0>DT#6alqSUf}?f4qMT2eg5AtoM+A3O2Ne4Ro!L2Gy%LAibk^zIomO4 zWR7ouM#{T@)GpvLGWnrVVszdmW22`mwWsrB>w(B>=>USmfvd)VX)f(FU{pbjhOcwu zm7E;8d$A+m0EMQRn-w#9CVUR*lLHa>PT}9X#}6c6%CU(%IB6K&FUoU2J)_%lqpomO zqgjk`V$vIZV+|*e1-c7~PY$a`Z`YG^e3Jcmt=>TMdRYS~d_3SKbSB=Zj$eTA*3eq$|Ao&LWKGEM3-3c;gSI)h z{xK0y*z+QrR?!zzIz~S^RZ6ZD@c4}IJ-BL5mn|&5UGD7`x^Yw)%s9JZ_O`VJ#$EnQ zwJW?M?8!x$3Yr2(MEg%W6bs=STr9#Affo-9^3}PEEpu2+!k|ruQf!xs>>BFYf!YPV z?=Ud+%hCOGWf Wqr9<^X>S24;L*|0zgKq08uMSJd~nGC From 416c02aab8fc4d92ae5970d7084c86eddde1fcba Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 20:21:30 -0400 Subject: [PATCH 40/63] fix install icon --- Installer/ZitiDesktopEdge.aip | 6 +++--- Installer/ziti-v2.png | Bin 0 -> 60274 bytes ziti-v2-new.ico | Bin 4286 -> 0 bytes 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 Installer/ziti-v2.png delete mode 100644 ziti-v2-new.ico diff --git a/Installer/ZitiDesktopEdge.aip b/Installer/ZitiDesktopEdge.aip index f580d7780..ce4bd2e25 100644 --- a/Installer/ZitiDesktopEdge.aip +++ b/Installer/ZitiDesktopEdge.aip @@ -53,10 +53,10 @@ - + - + @@ -233,7 +233,7 @@ - + diff --git a/Installer/ziti-v2.png b/Installer/ziti-v2.png new file mode 100644 index 0000000000000000000000000000000000000000..a66ef5eb4931076f008f510f4931a5cd1bf9b40e GIT binary patch literal 60274 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�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 Wqr9<^X>S24;L*|0zgKq08uMSJd~nGC literal 0 HcmV?d00001 diff --git a/ziti-v2-new.ico b/ziti-v2-new.ico deleted file mode 100644 index e4cde0d8daee4a7143a6d3b24c0df73e17f53b87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4286 zcma)A3p|zC7T<>vD&&zQbA=i-w+Urt&}Et{^f1Yz>+y5tT+uCQL>O1OiE#@D{fr)x zI|ivR(}<>0ql`SR9#e{rlr&!F=p4u4INy1#`|Yo(>FAu3<+ne3t-bbId$0XpYi|&u zkw1$UBm6~`^AIvd2-%R06rs<^hUFBIV@EkJ=5Pd zWd)jKSdfxvbE6shq7kTX_+4KAzlVpf5Y-MH8j3n3-`ETCKjms3jm+t<`&- zP5TDdgu6b@*Sh}x`S89e{2VPdRoxVi!+yYGXTI|?#l3S<%q zfK)>DrQ>XnJiQG>Lm>!r*MV@i-UtyzD^5HceW$E(X>49Z;1M_%xZVRs!p0|aO6ZTr7VT3cHoDJcmEf>5j@;DY301`vA;$B8JE zEQ&YMB4SApDxeD2G<14%DXr||gvc6?e~tCl+yJSVjIRnhb?Ox8>FL4w^XHXo$)q6d zs02}>sgPVl3Xx!}LB#6Gt>9ZX20CS*f{Irj+)(a%kj<=W0hv^$+~)5iF)=Yf8Ukl$ zXBZk9QmHTPAY&P4#3#1X!i2sEk+FEahGQ#p(Xo|z<|phA-EPloc;~*cqlt+LaC375 zYinyTGBSeH)KrkkRIHgClUzOw#7@m#VyDJO#13^NE{{YnaFi4Y}n0 z|3c;lN;5r%(ydC9%7W`bIIaZ83M{6lr-P-XCFL6rS5#C`SS&0oRG|HaNGt?lp+5+= z(T>1C9m-fP58hBx-Ib7a$Jf^vJUl!=C=^o4Q&UqA8X5{qmMnp;t}c}Z zM9ts9MAY2-lRI?HQYfR=UWS*9vvqFLm-DYC7y5O8NT9sd;JmtX=MDq}1b~*77KQtT z3m3w@d-o{w<>lp6ETmE?g}=3H*MftC!)t83wFXjetRMo&d-FuJVN*^~XeUU-igTCC z(O1wPXj-*x-ksE3A0~*VqzY9rzA>H*4GrPiwQH2l#fulAw6v7!_x1IGm6a8E zdV0c&6)PY+JNtE96dJ@ra@`~OvG8PzWief^b8D(IQ#8&JD^>6A?uMmHm%^GgYhZMA zl-k$ieSJL)4h{mwz`IB)6hQy}t-$oR-bXiJe!9zo$$ruyP&uurs0g&R zwIMSzQ%(=>*TTXAo;`aeCs)M~L(hR3wQ=&H-wK}ylRo`0y~oX$3twVM**u(k{{H@e zao^tFPO0I&1_uX&ySqDu17&lk%Q-h1;8%aQ?#=*b3s1yELE3!>4s9ADpDn6mck9+I zD))SRe5m^mzEih2K#Xk@o{6c^Nbw*I2F3ToJ zXSnEI->ZlNe(yOsIYCxdmV%wiiw4`6P#2IPu5#MRsQ22X zUF#k#=ld1otMvl;X>&Cu6z-=_O!LN$vb<46AQ)AU2_}GuFn#d zIVR*(f0m$g&NbncJB7c44LK-m(U^w6HajdxclgO+zfpM5I0a(i+xG*GyQ0`j#Znmh zbr>!s)lc=|cMZT*Qb3^tZXJGe_}Y*svolZL6ynZW6-Bg{&k8#hES>yA@ebW^!gCe q#H|q_^?#H9K6us842jf7WTWOak~aEYHcf0B`yhR}VV}^b4*v)DZU<)o From a4b8843ce8681d8edaa3d3a38886ffb85fbaf2f0 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 20:24:05 -0400 Subject: [PATCH 41/63] update version to 2.2 --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index 2f1a5aa9c..c043eea77 100644 --- a/version +++ b/version @@ -1 +1 @@ -2.1.17 +2.2.1 From d2c0e9108579678d727901d25297b5544591ce88 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 20:31:04 -0400 Subject: [PATCH 42/63] migrate from using github to using cloudfront --- ZitiDesktopEdge.Client/Utility/GithubAPI.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ZitiDesktopEdge.Client/Utility/GithubAPI.cs b/ZitiDesktopEdge.Client/Utility/GithubAPI.cs index fdbdfd4c4..94bea9a94 100644 --- a/ZitiDesktopEdge.Client/Utility/GithubAPI.cs +++ b/ZitiDesktopEdge.Client/Utility/GithubAPI.cs @@ -9,9 +9,8 @@ namespace ZitiDesktopEdge.Utility { public static class GithubAPI { private static readonly Logger Logger = LogManager.GetCurrentClassLogger(); - public const string ProdUrl = "https://api.github.com/repos/openziti/desktop-edge-win/releases/latest"; - public const string BetaUrl = "https://api.github.com/repos/openziti/desktop-edge-win-beta/releases/latest"; - + public const string ProdUrl = "https://get.openziti.io/zdew/version-check.json"; + public static JObject GetJson(string url) { HttpWebRequest httpWebRequest = WebRequest.CreateHttp(url); httpWebRequest.Method = "GET"; From f4f910179d8934cd7dc48a22993de54ab265a734 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 21:32:51 -0400 Subject: [PATCH 43/63] add images --- Installer/ZitiDesktopEdge.aip | 2 +- Installer/ziti-v2-new.ico | Bin 0 -> 67646 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 Installer/ziti-v2-new.ico diff --git a/Installer/ZitiDesktopEdge.aip b/Installer/ZitiDesktopEdge.aip index ce4bd2e25..dfd6743d4 100644 --- a/Installer/ZitiDesktopEdge.aip +++ b/Installer/ZitiDesktopEdge.aip @@ -348,7 +348,7 @@ - + diff --git a/Installer/ziti-v2-new.ico b/Installer/ziti-v2-new.ico new file mode 100644 index 0000000000000000000000000000000000000000..dcac6591e1afb0e0492f50562cd3410850b182a6 GIT binary patch literal 67646 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 Date: Wed, 1 Nov 2023 21:57:04 -0400 Subject: [PATCH 44/63] still working on getting the .ico nice --- Installer/ZitiDesktopEdge.aip | 10 +++++----- Installer/ziti-v2-new.ico | Bin 67646 -> 0 bytes Installer/ziti-v2.ico | Bin 0 -> 67646 bytes ziti-v2.ico | Bin 67646 -> 0 bytes 4 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 Installer/ziti-v2-new.ico create mode 100644 Installer/ziti-v2.ico delete mode 100644 ziti-v2.ico diff --git a/Installer/ZitiDesktopEdge.aip b/Installer/ZitiDesktopEdge.aip index dfd6743d4..3f9031164 100644 --- a/Installer/ZitiDesktopEdge.aip +++ b/Installer/ZitiDesktopEdge.aip @@ -53,10 +53,10 @@ - + - + @@ -146,8 +146,8 @@ - - + + @@ -348,7 +348,7 @@ - + diff --git a/Installer/ziti-v2-new.ico b/Installer/ziti-v2-new.ico deleted file mode 100644 index dcac6591e1afb0e0492f50562cd3410850b182a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 67646 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 Date: Wed, 1 Nov 2023 22:08:12 -0400 Subject: [PATCH 45/63] rephrase warning --- DesktopEdge/Views/Screens/MainMenu.xaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DesktopEdge/Views/Screens/MainMenu.xaml b/DesktopEdge/Views/Screens/MainMenu.xaml index 3e1e06ee2..402ce4264 100644 --- a/DesktopEdge/Views/Screens/MainMenu.xaml +++ b/DesktopEdge/Views/Screens/MainMenu.xaml @@ -86,7 +86,7 @@ - + From adf501816f33f357b6a2d03f0c9cd9488f60335f Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:10:49 -0400 Subject: [PATCH 46/63] put the App.xaml back for now --- DesktopEdge/App.xaml | 563 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 563 insertions(+) diff --git a/DesktopEdge/App.xaml b/DesktopEdge/App.xaml index 8588f729a..8d816d242 100644 --- a/DesktopEdge/App.xaml +++ b/DesktopEdge/App.xaml @@ -6,5 +6,568 @@ ShutdownMode="OnExplicitShutdown" StartupUri="MainWindow.xaml"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 77ce020c8f444a6f998f56fcbdd359a80553a92f Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:12:23 -0400 Subject: [PATCH 47/63] so many formatting issues... --- DesktopEdge/MainWindow.xaml.cs | 66 +++++++++++++++++----------------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/DesktopEdge/MainWindow.xaml.cs b/DesktopEdge/MainWindow.xaml.cs index fdaf4d725..3e3f0bbd2 100644 --- a/DesktopEdge/MainWindow.xaml.cs +++ b/DesktopEdge/MainWindow.xaml.cs @@ -53,7 +53,7 @@ public partial class MainWindow : Window { private string _blurbUrl = ""; private DateTime NextNotificationTime; - private static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 1); + private static SemaphoreSlim semaphoreSlim = new SemaphoreSlim(1, 1); static System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly(); @@ -363,8 +363,8 @@ private void AddIdentity(ZitiIdentity id) { private System.ComponentModel.IContainer components; public MainWindow() { InitializeComponent(); - NextNotificationTime = DateTime.Now; - SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged; + NextNotificationTime = DateTime.Now; + SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged; string nlogFile = Path.Combine(ExecutionDirectory, ThisAssemblyName + "-log.config"); @@ -856,42 +856,42 @@ private void MonitorClient_OnInstallationNotificationEvent(object sender, Instal logger.Debug("MonitorClient_OnInstallationNotificationEvent: {0}", evt.Message); switch (evt.Message?.ToLower()) { case "installationupdate": - logger.Debug("Installation Update is available - {0}", evt.ZDEVersion); - var remaining = evt.InstallTime - DateTime.Now; + logger.Debug("Installation Update is available - {0}", evt.ZDEVersion); + var remaining = evt.InstallTime - DateTime.Now; - state.AutomaticUpdatesEnabledFromString(evt.AutomaticUpgradeDisabled); - state.PendingUpdate.Version = evt.ZDEVersion; - state.PendingUpdate.InstallTime = evt.InstallTime; + state.AutomaticUpdatesEnabledFromString(evt.AutomaticUpgradeDisabled); + state.PendingUpdate.Version = evt.ZDEVersion; + state.PendingUpdate.InstallTime = evt.InstallTime; state.UpdateAvailable = true; - MainMenu.ShowUpdateAvailable(); - AlertCanvas.Visibility = Visibility.Visible; - - if (isToastEnabled()) { - if (!state.AutomaticUpdatesDisabled) { - if (remaining.TotalSeconds < 60) { - //this is an immediate update - show a different message - ShowToast("Ziti Desktop Edge will initiate auto installation in the next minute!"); - } else { - if (DateTime.Now > NextNotificationTime) { - ShowToast($"Update {evt.ZDEVersion} is available for Ziti Desktop Edge and will be automatically installed by " + evt.InstallTime); - NextNotificationTime = DateTime.Now + evt.NotificationDuration; - } else { - logger.Debug("Skipping notification. Time until next notification {} seconds which is at {}", (int)((NextNotificationTime - DateTime.Now).TotalSeconds), NextNotificationTime); - } - } - } else { - ShowToast("New version available", $"Version {evt.ZDEVersion} is available for Ziti Desktop Edge"); - } - SetNotifyIcon(""); - // display a tag in UI and a button for the update software - } - break; + MainMenu.ShowUpdateAvailable(); + AlertCanvas.Visibility = Visibility.Visible; + + if (isToastEnabled()) { + if (!state.AutomaticUpdatesDisabled) { + if (remaining.TotalSeconds < 60) { + //this is an immediate update - show a different message + ShowToast("Ziti Desktop Edge will initiate auto installation in the next minute!"); + } else { + if (DateTime.Now > NextNotificationTime) { + ShowToast($"Update {evt.ZDEVersion} is available for Ziti Desktop Edge and will be automatically installed by " + evt.InstallTime); + NextNotificationTime = DateTime.Now + evt.NotificationDuration; + } else { + logger.Debug("Skipping notification. Time until next notification {} seconds which is at {}", (int)((NextNotificationTime - DateTime.Now).TotalSeconds), NextNotificationTime); + } + } + } else { + ShowToast("New version available", $"Version {evt.ZDEVersion} is available for Ziti Desktop Edge"); + } + SetNotifyIcon(""); + // display a tag in UI and a button for the update software + } + break; case "configuration changed": break; default: - logger.Debug("unexpected event type?"); + logger.Debug("unexpected event type?"); break; - } + } }); } From 9529a5262caa580f45468f544b78e8f5d13f450d Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:13:20 -0400 Subject: [PATCH 48/63] formatting fixes.... --- DesktopEdge/MainWindow.xaml.cs | 47 +++++++++++++++++----------------- 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/DesktopEdge/MainWindow.xaml.cs b/DesktopEdge/MainWindow.xaml.cs index 3e3f0bbd2..cae8f732d 100644 --- a/DesktopEdge/MainWindow.xaml.cs +++ b/DesktopEdge/MainWindow.xaml.cs @@ -76,7 +76,7 @@ static MainWindow() { ExpectedLogPathRoot = Path.Combine(ExecutionDirectory, "logs"); ExpectedLogPathUI = Path.Combine(ExpectedLogPathRoot, "UI", $"{ThisAssemblyName}.log"); ExpectedLogPathServices = Path.Combine(ExpectedLogPathRoot, "service", $"ziti-tunneler.log"); - } + } async private void IdentityMenu_OnMessage(string message) { await ShowBlurbAsync(message, ""); @@ -182,14 +182,14 @@ private void ServiceClient_OnMfaEvent(object sender, MfaEvent mfa) { } } else if (mfa.Action == "mfa_auth_status") { var found = identities.Find(id => id.Identifier == mfa.Identifier); - for (int i=0; iThe Ziti Identity to Authenticate async public void ShowMFARecoveryCodes(ZitiIdentity identity) { if (identity.IsMFAEnabled) { - if (identity.IsAuthenticated&& identity.RecoveryCodes!=null) { + if (identity.IsAuthenticated && identity.RecoveryCodes != null) { MFASetup.Opacity = 0; MFASetup.Visibility = Visibility.Visible; MFASetup.Margin = new Thickness(0, 0, 0, 0); @@ -328,7 +328,7 @@ private void DoClose(bool isComplete) { HideModal(); if (isComplete) { if (MFASetup.Type == 1) { - for (int i=0; i { Application.Current.Shutdown(); @@ -920,7 +919,7 @@ private void ShowToast(string header, string message) { } } - private void ShowToast(string message) { + private void ShowToast(string message) { ShowToast("Important Notice", message); } @@ -1052,14 +1051,14 @@ private void ServiceClient_OnIdentityEvent(object sender, IdentityEvent e) { LoadIdentities(true); } else { // means we likely are getting an update for some reason. compare the identities and use the latest info - if (zid.Name!=null && zid.Name.Length>0) found.Name = zid.Name; + if (zid.Name != null && zid.Name.Length > 0) found.Name = zid.Name; if (zid.ControllerUrl != null && zid.ControllerUrl.Length > 0) found.ControllerUrl = zid.ControllerUrl; if (zid.ContollerVersion != null && zid.ContollerVersion.Length > 0) found.ContollerVersion = zid.ContollerVersion; found.IsEnabled = zid.IsEnabled; found.IsMFAEnabled = e.Id.MfaEnabled; found.IsAuthenticated = !e.Id.MfaNeeded; found.IsConnected = true; - for (int i=0; i /// The message to show /// The url or action name to execute - public async Task ShowBlurbAsync(string message, string url, string level="error") { + public async Task ShowBlurbAsync(string message, string url, string level = "error") { RedBlurb.Visibility = Visibility.Collapsed; InfoBlurb.Visibility = Visibility.Collapsed; - if (level=="error") { + if (level == "error") { RedBlurb.Visibility = Visibility.Visible; } else { InfoBlurb.Visibility = Visibility.Visible; @@ -1740,9 +1739,9 @@ private void HideComplete(object sender, EventArgs e) { /// The object that was clicked /// The click event private void BlurbAction(object sender, MouseButtonEventArgs e) { - if (_blurbUrl.Length>0) { + if (_blurbUrl.Length > 0) { // So this simply execute a url but you could do like if (_blurbUrl=="DoSomethingNifty") CallNifyFunction(); - if (_blurbUrl== this.RECOVER) { + if (_blurbUrl == this.RECOVER) { this.ShowMFA(IdentityMenu.Identity, 4); } else { Process.Start(new ProcessStartInfo(_blurbUrl) { UseShellExecute = true }); @@ -1806,4 +1805,4 @@ public bool CanExecute(object parameter) { public event EventHandler CanExecuteChanged; #pragma warning restore CS0067 //The event 'ActionCommand.CanExecuteChanged' is never used } -} +} \ No newline at end of file From fe5c3b347e7d56a60f6cf3ba1765c2dcaf958c98 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:14:04 -0400 Subject: [PATCH 49/63] revert OnClickEvt to OnClick --- DesktopEdge/Views/Controls/StyledButton.xaml.cs | 4 ++-- DesktopEdge/Views/Screens/IdentityDetails.xaml | 2 +- DesktopEdge/Views/Screens/MFAScreen.xaml | 6 +++--- DesktopEdge/Views/Screens/MainMenu.xaml | 14 +++++++------- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/DesktopEdge/Views/Controls/StyledButton.xaml.cs b/DesktopEdge/Views/Controls/StyledButton.xaml.cs index 5a5b981cd..ff2d35e92 100644 --- a/DesktopEdge/Views/Controls/StyledButton.xaml.cs +++ b/DesktopEdge/Views/Controls/StyledButton.xaml.cs @@ -21,7 +21,7 @@ namespace ZitiDesktopEdge { public partial class StyledButton : UserControl { public delegate void ClickAction(object sender, MouseButtonEventArgs e); - public event ClickAction OnClickEvt; + public event ClickAction OnClick; private string _label = ""; private string bgColor = "#0069FF"; @@ -82,7 +82,7 @@ private void Down(object sender, MouseButtonEventArgs e) { /// /// private void DoClick(object sender, MouseButtonEventArgs e) { - this.OnClickEvt?.Invoke(sender, e); + this.OnClick?.Invoke(sender, e); } } } diff --git a/DesktopEdge/Views/Screens/IdentityDetails.xaml b/DesktopEdge/Views/Screens/IdentityDetails.xaml index 253f0b834..03a37dab6 100644 --- a/DesktopEdge/Views/Screens/IdentityDetails.xaml +++ b/DesktopEdge/Views/Screens/IdentityDetails.xaml @@ -100,7 +100,7 @@ - + diff --git a/DesktopEdge/Views/Screens/MFAScreen.xaml b/DesktopEdge/Views/Screens/MFAScreen.xaml index d7b6260ee..d71f88d24 100644 --- a/DesktopEdge/Views/Screens/MFAScreen.xaml +++ b/DesktopEdge/Views/Screens/MFAScreen.xaml @@ -66,7 +66,7 @@ - + @@ -89,7 +89,7 @@ - + @@ -113,7 +113,7 @@ - + diff --git a/DesktopEdge/Views/Screens/MainMenu.xaml b/DesktopEdge/Views/Screens/MainMenu.xaml index 402ce4264..347401a15 100644 --- a/DesktopEdge/Views/Screens/MainMenu.xaml +++ b/DesktopEdge/Views/Screens/MainMenu.xaml @@ -67,7 +67,7 @@ - + @@ -95,10 +95,10 @@ - - + + - + @@ -108,7 +108,7 @@ - + @@ -202,7 +202,7 @@ - + @@ -234,7 +234,7 @@ - + From 14f62ac68e39237439e7e6c6fa7973d5ede696a2 Mon Sep 17 00:00:00 2001 From: dovholuknf <46322585+dovholuknf@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:16:03 -0400 Subject: [PATCH 50/63] formatting still... --- DesktopEdge/Views/Screens/Debugging.xaml | 4 +- DesktopEdge/Views/Screens/MainMenu.xaml.cs | 83 +++++++++++----------- 2 files changed, 43 insertions(+), 44 deletions(-) diff --git a/DesktopEdge/Views/Screens/Debugging.xaml b/DesktopEdge/Views/Screens/Debugging.xaml index b07c0fd3a..e84a7a93c 100644 --- a/DesktopEdge/Views/Screens/Debugging.xaml +++ b/DesktopEdge/Views/Screens/Debugging.xaml @@ -9,8 +9,8 @@ d:DesignHeight="450" d:DesignWidth="400" IsVisibleChanged="UserControl_IsVisibleChanged" > - - + +