From 5ed3d7bd6b9af33ec39d1bc059f2303f8e24a610 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 11 May 2025 11:49:16 +0100 Subject: [PATCH 01/41] Update Copyright date in EULA --- DPCInstaller/Assets/EULA.rtf | Bin 1441 -> 43676 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/DPCInstaller/Assets/EULA.rtf b/DPCInstaller/Assets/EULA.rtf index 42ce2bfac195b56c48491d12f218763507b3461b..d7fbc61240ddcd78212c3f14c7df90815f817533 100644 GIT binary patch literal 43676 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 M-)*#T`R%v=2CSE?9smFU delta 489 zcmY*Vu}%U(5H*%4iG{7n)~IA|MbXem03(SJ14f%^_U?9%jeEPt-kyXILg@!wYvU)_ z`wN!V`X5?&VpMEiX5P$ulQ;J-s}F1QDOx8yWIB}#2$IO7`xHYi1fVvV3{0Fb_eChC zBMSTVpIY#r&N06Zhf@?rJLjvS02Jw1rYVZVjwp&?$ZX0TkQP(Yx3V#tl}l5c2SyoN zNJs-M4*?^~xd!xA#-XuTsbIu4x6Bz!`Z5^ukOJ|b3ROxEs5hHp1>=~x;f2LmGdnqx zF<>0ZG->l9T0FKa>FSVc=hbRJW_T<4_(tlmhS^czk#Y$WWh6Dy;kBNS*YA5}Kjzl7iNaw&hR+-<4QSEI~0P6kG}F|!=)FO`qBO}@JG z_+R$6bDsBh;dt5W^0Y$+y_3u9X1_za19H*tU3J@?Ho?CG%|S6)c7NY}%|EKo8_Pz; H2Uk7;e( Date: Sun, 11 May 2025 11:50:02 +0100 Subject: [PATCH 02/41] Add simple interactive test endpoint for debugging. This should never ship in the released build --- DPCDevClient/App.config | 6 +++ DPCDevClient/DPCDevClient.csproj | 63 +++++++++++++++++++++++++ DPCDevClient/Program.cs | 22 +++++++++ DPCDevClient/Properties/AssemblyInfo.cs | 33 +++++++++++++ 4 files changed, 124 insertions(+) create mode 100644 DPCDevClient/App.config create mode 100644 DPCDevClient/DPCDevClient.csproj create mode 100644 DPCDevClient/Program.cs create mode 100644 DPCDevClient/Properties/AssemblyInfo.cs diff --git a/DPCDevClient/App.config b/DPCDevClient/App.config new file mode 100644 index 0000000..b50c74f --- /dev/null +++ b/DPCDevClient/App.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DPCDevClient/DPCDevClient.csproj b/DPCDevClient/DPCDevClient.csproj new file mode 100644 index 0000000..454c482 --- /dev/null +++ b/DPCDevClient/DPCDevClient.csproj @@ -0,0 +1,63 @@ + + + + + Debug + AnyCPU + {1B00B05F-D887-4DEB-8055-14A56B304A12} + Exe + DPCDevClient + DPCDevClient + v4.6.2 + 512 + true + true + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + AnyCPU + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + {de122f62-fd24-48eb-bdf2-995d7c98549a} + DPCLibrary + + + {13a5e588-154a-4376-a56c-0cbe88d0db31} + DPCService + + + + \ No newline at end of file diff --git a/DPCDevClient/Program.cs b/DPCDevClient/Program.cs new file mode 100644 index 0000000..df0503b --- /dev/null +++ b/DPCDevClient/Program.cs @@ -0,0 +1,22 @@ +using DPCLibrary.Utils; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DPCDevClient +{ + internal class Program + { + static void Main(string[] args) + { + string profileName = "AOVPN User Tunnel"; + var profiles = ManageRasphonePBK.ListHiddenProfiles(profileName); + foreach (var profile in profiles) + { + Console.WriteLine($"Profile: {profile}"); + } + } + } +} diff --git a/DPCDevClient/Properties/AssemblyInfo.cs b/DPCDevClient/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..3a9a230 --- /dev/null +++ b/DPCDevClient/Properties/AssemblyInfo.cs @@ -0,0 +1,33 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("DPCDevClient")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("DPCDevClient")] +[assembly: AssemblyCopyright("Copyright © 2025")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("1b00b05f-d887-4deb-8055-14a56b304a12")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] From 6ceff58a23f3093a1bf0413b1708429fd47647fc Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 11 May 2025 11:51:42 +0100 Subject: [PATCH 03/41] Added detection and removal for corrupted hiddenPBK files --- AOVPNDPC.sln | 20 ++++++ DPCInstaller/ProductVersion.wxi | 2 +- DPCLibrary/Utils/AccessFile.cs | 20 +++++- DPCLibrary/Utils/ManageRasphonePBK.cs | 23 +++++++ DPCService/Core/ProfileMonitor.cs | 90 ++++++++++++++++++++++++--- DPCService/Utils/DPCServiceEvents.cs | 11 ++++ README.md | 3 + 7 files changed, 158 insertions(+), 11 deletions(-) diff --git a/AOVPNDPC.sln b/AOVPNDPC.sln index 4e0c0ce..f0b2cd3 100644 --- a/AOVPNDPC.sln +++ b/AOVPNDPC.sln @@ -26,6 +26,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceIntegrationTests", " EndProject Project("{B7DD6F7E-DEF8-4E67-B5B7-07EF123DB6F0}") = "DPCInstaller", "DPCInstaller\DPCInstaller.wixproj", "{21FA1271-79EB-4F66-8C01-851DDE9B1C12}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DPCDevClient", "DPCDevClient\DPCDevClient.csproj", "{1B00B05F-D887-4DEB-8055-14A56B304A12}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -147,6 +149,24 @@ Global {21FA1271-79EB-4F66-8C01-851DDE9B1C12}.SysAttach|x64.Build.0 = Debug|x64 {21FA1271-79EB-4F66-8C01-851DDE9B1C12}.SysAttach|x86.ActiveCfg = Debug|x86 {21FA1271-79EB-4F66-8C01-851DDE9B1C12}.SysAttach|x86.Build.0 = Debug|x86 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x64.ActiveCfg = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x64.Build.0 = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x86.ActiveCfg = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x86.Build.0 = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|Any CPU.Build.0 = Release|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x64.ActiveCfg = Release|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x64.Build.0 = Release|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x86.ActiveCfg = Release|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x86.Build.0 = Release|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|Any CPU.ActiveCfg = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|Any CPU.Build.0 = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x64.ActiveCfg = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x64.Build.0 = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x86.ActiveCfg = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x86.Build.0 = Debug|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index f838064..d4f3bec 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/DPCLibrary/Utils/AccessFile.cs b/DPCLibrary/Utils/AccessFile.cs index 49e01b2..168de47 100644 --- a/DPCLibrary/Utils/AccessFile.cs +++ b/DPCLibrary/Utils/AccessFile.cs @@ -4,7 +4,7 @@ namespace DPCLibrary.Utils { - internal class AccessFile + public class AccessFile { public static RemoveProfileResult DeleteFile(string path) { @@ -14,7 +14,8 @@ public static RemoveProfileResult DeleteFile(string path) { File.Delete(path); return new RemoveProfileResult(); //Return true - } catch (Exception e) + } + catch (Exception e) { return new RemoveProfileResult(path, e); //Return false with the attached error code } @@ -22,5 +23,20 @@ public static RemoveProfileResult DeleteFile(string path) return new RemoveProfileResult(false); //Return false as it was not deleted but didn't error } + + public static long GetFileSize(string path) + { + long fileSizeInBytes = -1; //File does not exist + if (File.Exists(path)) + { + // Create a FileInfo object + FileInfo fileInfo = new FileInfo(path); + + // Get the file size in bytes + fileSizeInBytes = fileInfo.Length; + } + + return fileSizeInBytes; + } } } diff --git a/DPCLibrary/Utils/ManageRasphonePBK.cs b/DPCLibrary/Utils/ManageRasphonePBK.cs index dda37a5..8ae64ab 100644 --- a/DPCLibrary/Utils/ManageRasphonePBK.cs +++ b/DPCLibrary/Utils/ManageRasphonePBK.cs @@ -282,5 +282,28 @@ public static IList RemoveHiddenProfile(string profileName) //If there are no deletions required, a NoOperationException will be returned return errorList; } + + public static IList IdentifyCorruptPBKs() + { + List corruptPBKs = new List(); + IList userList = ListUserDirectories(); + foreach (UserInfo user in userList) + { + IList HiddenPBKPaths = ListHiddenPBKFiles(user); + foreach (string PBKPath in HiddenPBKPaths) + { + if (AccessFile.GetFileSize(PBKPath) > 0) + { + IList profileNameList = AccessRasApi.ListProfilesFromDirectory(PBKPath); + if (profileNameList.Count == 0) + { + //No valid profiles detected but data is in file which suggests that the file has a corrupt profile in it + corruptPBKs.Add(PBKPath); + } + } + } + } + return corruptPBKs; + } } } diff --git a/DPCService/Core/ProfileMonitor.cs b/DPCService/Core/ProfileMonitor.cs index 23c60da..a01c83d 100644 --- a/DPCService/Core/ProfileMonitor.cs +++ b/DPCService/Core/ProfileMonitor.cs @@ -4,6 +4,8 @@ using DPCService.Models; using DPCService.Utils; using System; +using System.Collections.Generic; +using System.Security.AccessControl; using System.Threading; using System.Threading.Tasks; using System.Timers; @@ -29,7 +31,8 @@ public class ProfileMonitor // event handlers are done executing. //make static to limit one profile update at a time - private int SyncPoint = 0; + private int ProfileUpdateSyncPoint = 0; + private int CorruptPBKSyncPoint = 0; public ProfileMonitor(SharedData sharedData, ProfileType profileType, CancellationToken token) { @@ -53,11 +56,11 @@ public ProfileMonitor(SharedData sharedData, ProfileType profileType, Cancellati } //Setup regular check for updated Monitor - UpdateTimer.Elapsed += new ElapsedEventHandler(CheckProfile); + RegisterTimedEvents(); UpdateTimer.AutoReset = true; UpdateTimer.Interval = SharedData.GetUpdateTime(); - CheckProfile(null, null); //Force an initial start + TriggerEventsManually(); //Force an initial start RegisterForGPUpdateNotification(); UpdateTimer.Start(); @@ -74,7 +77,7 @@ private void CheckProfile(object sender, ElapsedEventArgs args) { DPCServiceEvents.Log.TraceMethodStart("CheckProfile", LogProfileName); //Skip execution if another instance of this method is already running - if (Interlocked.CompareExchange(ref SyncPoint, 1, 0) == 0) + if (Interlocked.CompareExchange(ref ProfileUpdateSyncPoint, 1, 0) == 0) { DPCServiceEvents.Log.ProfileUpdateStartedDebug(LogProfileName); DPCServiceEvents.Log.ProfileUpdateStarted(LogProfileName); @@ -170,7 +173,7 @@ private void CheckProfile(object sender, ElapsedEventArgs args) finally { // Release control of SyncPoint. - SyncPoint = 0; + ProfileUpdateSyncPoint = 0; } } else @@ -180,10 +183,63 @@ private void CheckProfile(object sender, ElapsedEventArgs args) DPCServiceEvents.Log.TraceMethodStop("CheckProfile", LogProfileName); } + private void CheckForCorruptHiddenPBKs(object sender, ElapsedEventArgs args) + { + DPCServiceEvents.Log.TraceMethodStart("CheckForCorruptHiddenPBKs", LogProfileName); + //Skip execution if another instance of this method is already running + if (Interlocked.CompareExchange(ref CorruptPBKSyncPoint, 1, 0) == 0) + { + try + { + IList corruptPBKs = ManageRasphonePBK.IdentifyCorruptPBKs(); + if (corruptPBKs.Count > 0) + { + foreach (string PBKPath in corruptPBKs) + { + RemoveProfileResult result = AccessFile.DeleteFile(PBKPath); + if (result.Status) + { + DPCServiceEvents.Log.CorruptPbkDeleted(PBKPath); + } + else + { + if (result.Error != null) + { + DPCServiceEvents.Log.CorruptPbkDeleteFailed(PBKPath, result.Error.Message); + } + //If false but Error null, file not found which suggests that it was deleted in another way, either way the desired result has now been achieved so no need to do anything about the failure + } + } + } + else + { + //DPCServiceEvents.Log.Teapot(); + } + } + catch (Exception e) + { + if (SharedData.DumpOnException) + { + AppSettings.WriteMiniDumpAndLog(); + } + } + finally + { + // Release control of SyncPoint. + CorruptPBKSyncPoint = 0; + } + } + else + { + DPCServiceEvents.Log.CorruptPbkCheckSkipped(LogProfileName); + } + DPCServiceEvents.Log.TraceMethodStop("CheckForCorruptHiddenPBKs", LogProfileName); + } + private void ProcessGPUpdateNotification() { DPCServiceEvents.Log.GroupPolicyUpdated(); - CheckProfile(null, null); //Force an initial start + TriggerEventsManually(); //Force a refresh when Group Policy has potentially changed //Reset the timer UpdateTimer.Stop(); UpdateTimer.Start(); @@ -267,7 +323,7 @@ private void TokenCancelled() // in syncPoint. If it was not zero, then there's an // event handler running, and it is necessary to try // again. - while (Interlocked.CompareExchange(ref SyncPoint, -1, 0) != 0) + while (Interlocked.CompareExchange(ref ProfileUpdateSyncPoint, -1, 0) != 0) { DPCServiceEvents.Log.ProfileShutdownRequested(LogProfileName); Thread.Sleep(10); @@ -281,7 +337,7 @@ private void TokenCancelled() } finally { - SyncPoint = 0; + ProfileUpdateSyncPoint = 0; } } @@ -340,5 +396,23 @@ private void LoadRegistryVariable(ref string var, string registryValue) DPCServiceEvents.Log.UnableToReadRegistry(registryValue, e.Message); } } + + private void TriggerEventsManually() + { + CheckProfile(null, null); + if (ProfileType != ProfileType.Machine) + { + CheckForCorruptHiddenPBKs(null, null); + } + } + + private void RegisterTimedEvents() + { + UpdateTimer.Elapsed += new ElapsedEventHandler(CheckProfile); + if (ProfileType != ProfileType.Machine) + { + UpdateTimer.Elapsed += new ElapsedEventHandler(CheckForCorruptHiddenPBKs); + } + } } } \ No newline at end of file diff --git a/DPCService/Utils/DPCServiceEvents.cs b/DPCService/Utils/DPCServiceEvents.cs index 32c4d2c..7e65fa0 100644 --- a/DPCService/Utils/DPCServiceEvents.cs +++ b/DPCService/Utils/DPCServiceEvents.cs @@ -122,6 +122,8 @@ public DPCServiceEvents(bool throwOnEventWriteErrors) : base(throwOnEventWriteEr public void ProfileUpdateStarted(string profileName) { WriteEvent(1021, profileName); } [Event(1022, Message = "An Error occurred while configuring the GPUpdate Notification Process\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] public void MonitorGPUpdateErrorOnStartup(string message, string stackTrace) { WriteEvent(1022, message, stackTrace); } + [Event(1023, Message = "Spinlock for checking corrupt PBKs in Profile {0} was already owned, skipping profile update", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void CorruptPbkCheckSkipped(string profileName) { WriteEvent(1023, profileName); } #endregion 1000-1099 VPN Monitoring #region 1100-1299 Profile Monitoring @@ -353,6 +355,11 @@ public DPCServiceEvents(bool throwOnEventWriteErrors) : base(throwOnEventWriteEr public void ProfileCreationFailedDebug(string profileName, string exception) { WriteEvent(1220, profileName, exception); } [Event(1221, Message = "Unable to delete Profile {0}\nError message: {1}\nStackTrace: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] public void IssueDeletingHiddenPbk(string profile, string message, string stackTrace) { WriteEvent(1221, profile, message, stackTrace); } + [Event(1222, Message = "Corrupt PBK Profile identified in {0}, file deleted to avoid issues", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void CorruptPbkDeleted(string PBKPath) { WriteEvent(1222, PBKPath); } + [Event(1223, Message = "Corrupt PBK Profile identified in {0}. Error deleting file: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void CorruptPbkDeleteFailed(string PBKPath, string exception) { WriteEvent(1223, PBKPath, exception); } + //Event Logs now fail to generate if additional logs are added at this point in the file, adding to the end appears to work for some reason... #endregion 1100-1299 Profile Monitoring #region 2000-2099 Profile Monitoring @@ -392,5 +399,9 @@ public DPCServiceEvents(bool throwOnEventWriteErrors) : base(throwOnEventWriteEr public void TraceMethodStop(string methodName, string threadID) { WriteEvent(9006, methodName, threadID); } #endregion 9000+ Special events + + //ADDITIONAL EVENTS + [Event(1224, Message = "No Corrupt PBK Files Found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void DebugNoCorruptPbksFound() { WriteEvent(1224); } } } \ No newline at end of file diff --git a/README.md b/README.md index 891e464..ca15e43 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,9 @@ Unfortunately there is no easy way to copy an existing Configuration policy and # Release Notes +## Version 5.0.4 +- Added detection and removal for corrupted hiddenPBK files + ## Version 5.0.3 - Improved error logging - Added Trusted Network detection validation for unicode letters From 967a9f9edf120773dcb948be1711fb98b63a0b4e Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Mon, 26 May 2025 12:11:33 +0100 Subject: [PATCH 04/41] Increment build number as the beta version of 5.0.4 got rolled out to a number of users --- DPCInstaller/ProductVersion.wxi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index d4f3bec..5b8c1e3 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + From bf5959c4a3c888799b94f9f81431e2dc82bee73a Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sat, 7 Jun 2025 11:57:18 +0100 Subject: [PATCH 05/41] Avoid setting device tunnel related registry setting unless DPC 'owns' the device tunnel config. fixes #27 --- DPCService/Core/ProfileManager.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/DPCService/Core/ProfileManager.cs b/DPCService/Core/ProfileManager.cs index 807a6e0..63ef2ee 100644 --- a/DPCService/Core/ProfileManager.cs +++ b/DPCService/Core/ProfileManager.cs @@ -251,8 +251,12 @@ private void ShowDeviceTunnelUI(object sender, ElapsedEventArgs args) { bool showDeviceTunnelUI = AccessRegistry.ReadMachineBoolean(RegistrySettings.ShowDeviceTunnelUI, false); bool currentDeviceTunnelUIState = AccessRegistry.ReadMachineBoolean(RegistrySettings.ShowDeviceTunnelUI, RegistrySettings.VPNUI, false); + bool deviceTunnelEnabledStatus = AccessRegistry.ReadMachineBoolean(RegistrySettings.MachineTunnel, false); - if (currentDeviceTunnelUIState != showDeviceTunnelUI) + //Only modify the device tunnel UI state if it is different AND DPC is currently the owner of the device tunnel + //This avoids 'install first' issues where this is previously set manually but a config has not yet been applied + //to DPC which then resets the key back to false + if (currentDeviceTunnelUIState != showDeviceTunnelUI && deviceTunnelEnabledStatus) { AccessRegistry.SaveMachineData(RegistrySettings.ShowDeviceTunnelUI, showDeviceTunnelUI, RegistrySettings.VPNUI, null); DPCServiceEvents.Log.DeviceTunnelUIUpdated(showDeviceTunnelUI); From fa1e79c27d15b2d866c99aef14f140ea0ca5c1d0 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sat, 7 Jun 2025 12:28:30 +0100 Subject: [PATCH 06/41] Add support for Excluding DNS entries from force tunnel #26 and initial test --- DPCInstaller/ADMX/dpc.admx | 14 +++++++ DPCInstaller/ADMX/en-US/DPC.adml | 28 +++++++++++++ DPCLibrary/Enums/RegistrySettings.cs | 3 ++ DPCLibrary/Utils/VPNProfileCreator.cs | 49 ++++++++++++++++++++++- DPCLibraryTests/VPNProfileCreatorTests.cs | 41 ++++++++++++++++++- 5 files changed, 132 insertions(+), 3 deletions(-) diff --git a/DPCInstaller/ADMX/dpc.admx b/DPCInstaller/ADMX/dpc.admx index 0bbdc5f..90eb9ff 100644 --- a/DPCInstaller/ADMX/dpc.admx +++ b/DPCInstaller/ADMX/dpc.admx @@ -988,6 +988,13 @@ + + + + + + + @@ -1590,6 +1597,13 @@ + + + + + + + diff --git a/DPCInstaller/ADMX/en-US/DPC.adml b/DPCInstaller/ADMX/en-US/DPC.adml index 364e3bc..f3981ae 100644 --- a/DPCInstaller/ADMX/en-US/DPC.adml +++ b/DPCInstaller/ADMX/en-US/DPC.adml @@ -378,6 +378,30 @@ www.bbc.co.uk | (No Value) www.bbc.co.uk | | <EMPTY> www.myhr.com | HR System + Optional - Exclude Routes from DNS + AOVPN unfortunately is not a DNS aware VPN, as such routing decisions are only made on IP Addresses + +Some services do not offer a specific IP address which can be excluded manually, this list defines the list of URLs for the client to look up at profile deployment time and exclude from the forced tunnel + +The DNS lookups take place using the DNS server configured on the system at profile generation time and cannot be specified. As these domains are resolved at profile generation time (by default every 60 minutes) the IP address associated with the service should track with the IP address of the service + +NOTE: This option requires the device identity (not just the user) to have direct (unauthenticated) access to this DNS server for the purposes of identifying the IP addresses + +NOTE: This is equivalent to nslookup and cannot account for related but unknown services such as CDN or API connections which would need to be identified and added to this list manually. + +NOTE: This option does not support wildcards + +When a Split Tunnel configuration is enabled this setting is ignored + +'Value Name' should be the route to include + +'Value' is an optional comment. Where you can't leave a value empty use '<EMPTY>' to indicate that the value should be empty + +Examples: +www.bbc.co.uk | (No Value) +www.bbc.co.uk | | <EMPTY> +www.myhr.com | HR System + Required - Allowed Routes This field is required for a successful profile generation. @@ -580,6 +604,10 @@ NOTE: This setting only works on Windows 11 22H2 or later Route List + + Route List + + Excluded Route List diff --git a/DPCLibrary/Enums/RegistrySettings.cs b/DPCLibrary/Enums/RegistrySettings.cs index 18ebff0..69fecdf 100644 --- a/DPCLibrary/Enums/RegistrySettings.cs +++ b/DPCLibrary/Enums/RegistrySettings.cs @@ -60,6 +60,7 @@ public static class RegistrySettings //Internal Setting Values public const string O365LastUpdate = "O365LastUpdate"; public const string DNSLastUpdate = "DNSLastUpdate"; + public const string DNSExcludeLastUpdate = "DNSExlcludeLastUpdate"; public const string ClientId = "ID"; public const string MachineProfileName = "MachineProfileName"; public const string UserProfileName = "UserProfileName"; @@ -68,6 +69,7 @@ public static class RegistrySettings //Internal Setting Keys public const string O365ExclusionKey = "O365Exclusion"; public const string DNSRouteListKey = "DNSRouteList"; + public const string DNSExcludeRouteListKey = "DNSExcludeRouteList"; //Device Level Settings Values public const string ClearDisableProfileList = "ClearDisableProfileList"; @@ -130,6 +132,7 @@ public static class RegistrySettings public const string RouteListKey = "RouteList"; public const string TrafficFilters = "TrafficFilters"; public const string DNSRouteList = "DNSRouteList"; + public const string DNSExcludeRouteList = "DNSExcludeRouteList"; //User Tunnel Public Setting Keys public const string IssuingCertificatesKey = "IssuingCertificates"; diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index 98354a3..6a4f1de 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -536,6 +536,14 @@ public void LoadFromRegistry() ConfigureDNSIncludeRoutes(); } } + else //Assumes that Force Tunnel is the only other type + { + LoadRegistryVariable(ref DNSRouteList, RegistrySettings.DNSExcludeRouteList); + if (DNSRouteList.Count > 0) + { + ConfigureDNSExcludeRoutes(); + } + } } //Load in Register DNS info for both tunnels, then check the other Tunnel to check that it isn't enabled on both tunnels @@ -624,7 +632,7 @@ private void ConfigureDNSIncludeRoutes() try { - includeList = GetDNSIncludeRoutes(DNSRouteList); + includeList = GetDNSRoutes(DNSRouteList); AccessRegistry.SaveMachineData(RegistrySettings.DNSLastUpdate, DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), cacheOffset); AccessRegistry.SaveMachineData(RegistrySettings.DNSRouteListKey, includeList, cacheOffset); @@ -654,6 +662,43 @@ private void ConfigureDNSIncludeRoutes() } } + private void ConfigureDNSExcludeRoutes() + { + Dictionary excludeList; + string cacheOffset = RegistrySettings.InternalStateOffset + "\\" + ProfileType; + + try + { + excludeList = GetDNSRoutes(DNSRouteList); + + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeLastUpdate, DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), cacheOffset); + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeRouteListKey, excludeList, cacheOffset); + } + catch (Exception e) + { + //TODO: Handle individual failures + ValidationWarnings.AppendLine("Unable to retrieve latest DNS Exclude Route Lookups\nError Message: " + e.Message); + excludeList = AccessRegistry.ReadMachineHashtable(RegistrySettings.DNSExcludeRouteListKey, cacheOffset); + if (excludeList.Count > 0) + { + string DNSCacheDate = AccessRegistry.ReadMachineString(RegistrySettings.DNSExcludeLastUpdate, cacheOffset); + ValidationWarnings.AppendLine("Using cached DNS Exclude Route list. Cache was last updated: " + DNSCacheDate + " UTC"); + } + else + { + ValidationWarnings.AppendLine("Unable to retrieve cached DNS Exclude Route list. No DNS routes will be included in profile"); + } + } + + foreach (KeyValuePair route in excludeList) + { + if (!RouteExcludeList.ContainsKey(route.Key)) + { + RouteExcludeList.Add(route.Key, route.Value); + } + } + } + public void LoadWin32SettingsFromRegistry() { LoadRegistryVariable(ref VPNStrategy, RegistrySettings.VPNStrategy, (int)VPNStrategy.Ikev2Only); //Default to IKEv2 Only Tunnel @@ -1774,7 +1819,7 @@ private static List GetOffice365ExcludeRoutes() return ipList; } - private static Dictionary GetDNSIncludeRoutes(Dictionary DNSList) + private static Dictionary GetDNSRoutes(Dictionary DNSList) { Dictionary unvalidatedList = new Dictionary(); foreach (KeyValuePair DNS in DNSList) diff --git a/DPCLibraryTests/VPNProfileCreatorTests.cs b/DPCLibraryTests/VPNProfileCreatorTests.cs index 79fa1ff..3107cf1 100644 --- a/DPCLibraryTests/VPNProfileCreatorTests.cs +++ b/DPCLibraryTests/VPNProfileCreatorTests.cs @@ -1383,10 +1383,49 @@ public void UserLoadRegistryWithDNSIncludeSettings(ProfileType profileType) [DataTestMethod] [DataRow(ProfileType.User)] [DataRow(ProfileType.UserBackup)] - public void UserLoadRegistryWithDNSIncludeInitialFailSettings(ProfileType profileType) + public void UserLoadRegistryWithDNSExcludeSettings(ProfileType profileType) { CreateBasicUserProfileInRegistry(profileType); + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeRouteList, new Dictionary() { + { "www.google.co.uk", "Search Service" }, + { "www.example.com", "Example Website" } }, RegistrySettings.GetProfileOffset(profileType)); + + VPNProfileCreator pro = new VPNProfileCreator(profileType, false); + pro.LoadFromRegistry(); + + pro.Generate(); + + string profile = pro.GetProfile(); + TestContext.WriteLine(pro.GetValidationFailures()); + TestContext.WriteLine(pro.GetValidationWarnings()); + TestContext.WriteLine(profile); + Assert.IsTrue(!pro.ValidateFailed()); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationFailures())); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationWarnings())); + Assert.IsFalse(string.IsNullOrWhiteSpace(profile)); + + ValidateXMLText(profile, "Servers", standardServerName); + ValidateXMLText(profile, "RoutingPolicyType", "SplitTunnel"); + ValidateXMLText(profile, "UserMethod", "Eap"); + ValidateNPSList(profile, standardNPSServerList); + ValidateRootThumbprintList(profile, standardRootCAList); + ValidateIssuingThumbprintList(profile, standardIssuingCAList); + ValidateXMLTextIsMissing(profile, "DnsSuffix"); + ValidateXMLTextIsMissing(profile, "TrustedNetworkDetection"); + + VPNProfile profileObj = new CSPProfile(profile, pro.GetProfileName()); + Assert.AreEqual(standardUserRouteList.Count + 3, profileObj.RouteList.Count); + Assert.AreEqual(0, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); + } + + [DataTestMethod] + [DataRow(ProfileType.User)] + [DataRow(ProfileType.UserBackup)] + public void UserLoadRegistryWithDNSIncludeInitialFailSettings(ProfileType profileType) + { + CreateBasicUserProfileInRegistry(profileType); + AccessRegistry.SaveMachineData(RegistrySettings.ForceTunnel, 1, RegistrySettings.GetProfileOffset(profileType)); AccessRegistry.SaveMachineData(RegistrySettings.DNSRouteList, new Dictionary() { { "www.google.co.uk", "Search Service" }, { "www.example.com", "Example Website" } }, RegistrySettings.GetProfileOffset(profileType)); From b94ee5b90944ecacffd5e89be366dc8241d81d4b Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Wed, 23 Jul 2025 08:48:31 +0100 Subject: [PATCH 07/41] Avoid issues where multiple DNS entries return the same IP addresses --- DPCLibrary/Utils/VPNProfileCreator.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index 6a4f1de..d750e1a 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -1826,6 +1826,8 @@ private static Dictionary GetDNSRoutes(Dictionary Date: Sat, 26 Jul 2025 13:30:44 +0100 Subject: [PATCH 08/41] Update Readme and bump dependencies --- DPCLibraryTests/DPCLibraryTests.csproj | 4 ++-- README.md | 5 ++++- ServiceIntergrationTests/ServiceIntegrationTests.csproj | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/DPCLibraryTests/DPCLibraryTests.csproj b/DPCLibraryTests/DPCLibraryTests.csproj index 71c9849..909c3a2 100644 --- a/DPCLibraryTests/DPCLibraryTests.csproj +++ b/DPCLibraryTests/DPCLibraryTests.csproj @@ -84,10 +84,10 @@ - 3.8.3 + 3.9.3 - 3.8.3 + 3.9.3 diff --git a/README.md b/README.md index ca15e43..4767a7b 100644 --- a/README.md +++ b/README.md @@ -54,7 +54,10 @@ Unfortunately there is no easy way to copy an existing Configuration policy and # Release Notes -## Version 5.0.4 +## Version vNext +- Fixed bug where DNS Route resolution with the same IP addresses would cause the resolution to fail + +## Version 5.1.0 - Added detection and removal for corrupted hiddenPBK files ## Version 5.0.3 diff --git a/ServiceIntergrationTests/ServiceIntegrationTests.csproj b/ServiceIntergrationTests/ServiceIntegrationTests.csproj index d801c83..ae19b21 100644 --- a/ServiceIntergrationTests/ServiceIntegrationTests.csproj +++ b/ServiceIntergrationTests/ServiceIntegrationTests.csproj @@ -85,13 +85,13 @@ - 3.1.20 + 3.1.23 - 3.8.3 + 3.9.3 - 3.8.3 + 3.9.3 From a746d5c901a155f0827e2378ff4bb8c294c06d6d Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 09:43:27 +0100 Subject: [PATCH 09/41] Update ETW Library to fix issues with operational logs disappearing --- AOVPNDPC.sln | 28 +- DPCDevClient/DPCDevClient.csproj | 41 ++- DPCDevClient/DPCServiceEvents.cs | 410 +++++++++++++++++++++ DPCDevClient/Program.cs | 10 +- DPCDevClient/_EventRegisterUsersGuide.docx | Bin 0 -> 112690 bytes DPCDevClient/_EventSourceUsersGuide.docx | Bin 0 -> 162815 bytes DPCDevClient/packages.config | 6 + DPCInstaller/DPCService.wxs | 4 + DPCInstaller/ProductVersion.wxi | 2 +- DPCManagement/Scripts/Run-AsSYSTEM.ps1 | 2 +- DPCService/DPCService.csproj | 28 +- DPCService/Utils/DPCServiceEvents.cs | 10 +- DPCService/_EventRegisterUsersGuide.docx | Bin 0 -> 112690 bytes DPCService/_EventSourceUsersGuide.docx | Bin 0 -> 162815 bytes DPCService/packages.config | 6 + 15 files changed, 488 insertions(+), 59 deletions(-) create mode 100644 DPCDevClient/DPCServiceEvents.cs create mode 100644 DPCDevClient/_EventRegisterUsersGuide.docx create mode 100644 DPCDevClient/_EventSourceUsersGuide.docx create mode 100644 DPCDevClient/packages.config create mode 100644 DPCService/_EventRegisterUsersGuide.docx create mode 100644 DPCService/_EventSourceUsersGuide.docx create mode 100644 DPCService/packages.config diff --git a/AOVPNDPC.sln b/AOVPNDPC.sln index f0b2cd3..94c39fe 100644 --- a/AOVPNDPC.sln +++ b/AOVPNDPC.sln @@ -149,24 +149,16 @@ Global {21FA1271-79EB-4F66-8C01-851DDE9B1C12}.SysAttach|x64.Build.0 = Debug|x64 {21FA1271-79EB-4F66-8C01-851DDE9B1C12}.SysAttach|x86.ActiveCfg = Debug|x86 {21FA1271-79EB-4F66-8C01-851DDE9B1C12}.SysAttach|x86.Build.0 = Debug|x86 - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x64.ActiveCfg = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x64.Build.0 = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x86.ActiveCfg = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x86.Build.0 = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|Any CPU.Build.0 = Release|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x64.ActiveCfg = Release|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x64.Build.0 = Release|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x86.ActiveCfg = Release|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x86.Build.0 = Release|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|Any CPU.ActiveCfg = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|Any CPU.Build.0 = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x64.ActiveCfg = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x64.Build.0 = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x86.ActiveCfg = Debug|Any CPU - {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x86.Build.0 = Debug|Any CPU + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|Any CPU.ActiveCfg = Debug|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x64.ActiveCfg = Debug|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x64.Build.0 = Debug|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Debug|x86.ActiveCfg = Debug|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|Any CPU.ActiveCfg = Release|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x64.ActiveCfg = Release|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.Release|x86.ActiveCfg = Release|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|Any CPU.ActiveCfg = Release|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x64.ActiveCfg = Release|x64 + {1B00B05F-D887-4DEB-8055-14A56B304A12}.SysAttach|x86.ActiveCfg = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/DPCDevClient/DPCDevClient.csproj b/DPCDevClient/DPCDevClient.csproj index 454c482..feecccf 100644 --- a/DPCDevClient/DPCDevClient.csproj +++ b/DPCDevClient/DPCDevClient.csproj @@ -12,27 +12,33 @@ 512 true true + + - - AnyCPU + true - full - false - bin\Debug\ + bin\x64\Debug\ DEBUG;TRACE + full + x64 + 7.3 prompt - 4 + true - - AnyCPU - pdbonly - true - bin\Release\ + + bin\x64\Release\ TRACE + true + pdbonly + x64 + 7.3 prompt - 4 + true + + ..\packages\Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.28\lib\net46\Microsoft.Diagnostics.Tracing.EventSource.dll + @@ -43,11 +49,15 @@ + + + + @@ -60,4 +70,11 @@ + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/DPCDevClient/DPCServiceEvents.cs b/DPCDevClient/DPCServiceEvents.cs new file mode 100644 index 0000000..84099fe --- /dev/null +++ b/DPCDevClient/DPCServiceEvents.cs @@ -0,0 +1,410 @@ +using DPCLibrary.Enums; +using DPCLibrary.Exceptions; +using Microsoft.Diagnostics.Tracing; + +namespace DPCService.Utils +{ + //Documented https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventsource?view=net-6.0 + [EventSource(Name = "DPC-AOVPN-DPCService")] + internal sealed class DPCServiceEvents : EventSource + { + public static DPCServiceEvents Log = new DPCServiceEvents(); + + //Explicitly define this constructor even though it is the same as the default constructor because for some reason, when running in an un-debugged, x64 process, the + //Operational logs end up in the debug log and the debug logs are lost. I have no idea why this occurs but this seems to solve the issue... + //public DPCServiceEvents(bool throwOnEventWriteErrors) : base(throwOnEventWriteErrors) + //{ + //} + + #region 1-100 Application Startup + + [Event(1, Message = "DPC Service is starting", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void Startup() { WriteEvent(1); } + [Event(2, Message = "Running in SYSATTACH mode, waiting for debug attach", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void SYSATTACHEnabled() { WriteEvent(2); } + [Event(3, Message = "Running in interactive mode", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void InteractiveModeEnabled() { WriteEvent(3); } + + [Event(4, Message = "DPC Service Startup Complete", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void StartupComplete() { WriteEvent(4); } + + [Event(5, Message = "DPC Initializing", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] + public void DPCServiceInitializing() { WriteEvent(5); } + + [Event(6, Message = "DPC Initialized", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] + public void DPCServiceInitialized() { WriteEvent(6); } + + [Event(7, Message = "Product Version is {0}, DEBUG: {1}\nOS Version: {2}", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void ProductVersion(string message, bool debug, string OSVersion) { WriteEvent(7, message, debug, OSVersion); } + + [Event(8, Message = "Registry Entry {0} was missing, defaulting to {1}", Level = EventLevel.Verbose, Channel = EventChannel.Debug)] + public void MissingRegistryEntry(string variableName, string defaultValue) { WriteEvent(8, variableName, defaultValue); } + [Event(13, Message = "Registry Entry {0} was invalid, defaulting to {1}", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] + public void InvalidRegistryEntry(string variableName, string defaultValue) { WriteEvent(13, variableName, defaultValue); } + [Event(14, Message = "Loading Service Components", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] + public void LoadingServiceComponents() { WriteEvent(14); } + [Event(15, Message = "Startup Account is not an administrator. Service will now Stop", Level = EventLevel.Error, Channel = EventChannel.Admin)] + public void UserNotAdmin() { WriteEvent(15); CriticalHaltDueToError(); } + [Event(16, Message = "Running in service mode", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void ServiceModeEnabled() { WriteEvent(16); } + [Event(17, Message = "Migration Block Enabled", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void MigrationBlockEnabled() { WriteEvent(17); } + [Event(22, Message = "Unable to load previous profile information\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ProfileLoadOnStartUpError(string errors, string location) { WriteEvent(22, errors, location); } + [Event(25, Message = "Found {0} Managed Profiles", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void FoundExistingProfiles(int number) { WriteEvent(25, number); } + [Event(26, Message = "Starting unmanaged Profile Removal Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void StartingUnmanagedProfileRemovalService() { WriteEvent(26); } + [Event(28, Message = "Starting GPUpdate Notification Service for profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void StartGPUpdateMonitoring(string profileName) { WriteEvent(28, profileName); } + [Event(29, Message = "Custom MTU setting enabled while existing profiles have not been configured for removal\nIf there are any non-DPC Profiles on this system they will likely also be impacted by the MTU change", Level = EventLevel.Warning, Channel = EventChannel.Admin)] + public void ExistingProfileMTUImpact() { WriteEvent(29); } + #endregion 1-100 Application Startup + + #region 100-199 Application Shutdown + + [Event(100, Message = "DPC Service is stopping", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void Shutdown() { WriteEvent(100); } + + [Event(101, Message = "DPC Service is Stopped", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void ShutdownCompleted() { WriteEvent(101); } + + [Event(102, Message = "Canceling all child services", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void CancelChildServices() { WriteEvent(102); } + + [Event(103, Message = "All child services stopped", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void CancelChildServicesCompleted() { WriteEvent(103); } + + #endregion 100-199 Application Shutdown + + #region 1000-1099 VPN Monitoring + + [Event(1000, Message = "Starting VPN Monitoring Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void StartVPNMonitoringFull() { WriteEvent(1000); } + [Event(1002, Message = "New VPN Connection Made on profile: {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void NewVPNConnectionEvent(string profileName) { WriteEvent(1002, profileName); } + + [Event(1003, Message = "VPN Disconnected on profile: {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void NewVPNDisconnectionEvent(string profileName) { WriteEvent(1003, profileName); } + + [Event(1004, Message = "VPN Connection reconnected", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void NewVPNReconnectionEvent() { WriteEvent(1004); } + + [Event(1005, Message = "Shutting down VPN Monitoring Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void StoppingVPNMonitoring() { WriteEvent(1005); } + + [Event(1006, Message = "VPN Monitoring Service Shutdown Complete", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void VPNMonitoringStopped() { WriteEvent(1006); } + + [Event(1008, Message = "New VPN Connection Made on Unknown Profile", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void NewVPNUnknownConnectionEvent() { WriteEvent(1008); } + + [Event(1009, Message = "Unable to gather currently Connected profiles, Exception Message: {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void UnableToGetConnectedProfiles(string message) { WriteEvent(1009, message); } + + [Event(1010, Message = "New VPN Disconnection Made on Unknown Profile", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void NewVPNUnknownDisconnectionEvent() { WriteEvent(1010); } + [Event(1011, Message = "Spinlock for profile {0} was already owned, skipping profile update", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void ProfileUpdateSkipped(string profileName) { WriteEvent(1011, profileName); } + [Event(1012, Message = "Event Handler currently engaged for profile {0}, waiting for update to complete...", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileShutdownRequested(string profileName) { WriteEvent(1012, profileName); } + [Event(1013, Message = "Profile {0} shutdown requested", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileUpdateShutdownRequested(string profileName) { WriteEvent(1013, profileName); } + [Event(1014, Message = "Profile {0} shutdown complete", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileUpdateShutdownComplete(string profileName) { WriteEvent(1014, profileName); } + [Event(1018, Message = "An Error occurred during a monitoring Process\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void VPNMonitorErrorOnWait(string message, string stackTrace) { WriteEvent(1018, message, stackTrace); } + [Event(1019, Message = "Starting profile update for {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileUpdateStartedDebug(string profileName) { WriteEvent(1019, profileName); } + [Event(1020, Message = "Profile update generated for {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileUpdateGenerated(string profileName) { WriteEvent(1019, profileName); } + [Event(1021, Message = "Check profile {0} for updates", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileUpdateStarted(string profileName) { WriteEvent(1021, profileName); } + [Event(1022, Message = "An Error occurred while configuring the GPUpdate Notification Process\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorGPUpdateErrorOnStartup(string message, string stackTrace) { WriteEvent(1022, message, stackTrace); } + [Event(1023, Message = "Spinlock for checking corrupt PBKs in Profile {0} was already owned, skipping profile update", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void CorruptPbkCheckSkipped(string profileName) { WriteEvent(1023, profileName); } + #endregion 1000-1099 VPN Monitoring + + #region 1100-1299 Profile Monitoring + + [Event(1101, Message = "Shutting down Profile Monitoring Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void StoppingProfileMonitor() { WriteEvent(1101); } + + [Event(1102, Message = "Profile Monitoring Service Shutdown Complete", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void VPNProfileMonitorStopped() { WriteEvent(1102); } + + [Event(1103, Message = "Starting Monitoring of {0} profile", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void StartProfileMonitor(string message) { WriteEvent(1103, message); } + + [Event(1105, Message = "VPN Profile Monitoring Status Changed", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileMonitorChanged() { WriteEvent(1105); } + + [Event(1106, Message = "Update to process Profile {0} due to Errors: \n {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ProfileGenerationErrors(string profileName, string errors) { WriteEvent(1106, profileName, errors); } + + [Event(1107, Message = "Profile {0} may be inaccurate due to the following Warnings: \n{1}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void ProfileGenerationWarnings(string profileName, string errors) { WriteEvent(1107, profileName, errors); } + [Event(1108, Message = "Profile {0} (Type {1}) was not added.\nError: \n{2} \nStackTrace: \n{3}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void AddProfileFailed(string profileName, ProfileType profileType, string errors, string stackTrace) { WriteEvent(1108, profileName, profileType, errors, stackTrace); } + [Event(1109, Message = "Unexpected failure in profile creation process: \nProfile Name: {0}\nError: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ProfileCreationFailed(string profileName, string errors, string stackTrace) { WriteEvent(1109, profileName, errors, stackTrace); } + [Event(1110, Message = "Unable to save profile to disk: {0} \n Errors: {1} \n Location: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void UpdateToSaveProfileToDisk(string profileName, string errors, string location) { WriteEvent(1110, profileName, errors, location); } + [Event(1111, Message = "Unable to load Registry Value {0} due to Reason: \n{1}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void UnableToReadRegistry(string regValue, string errors) { WriteEvent(1111, regValue, errors); } + [Event(1112, Message = "Removing Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileDebugRemoveProfile(string profileName) { WriteEvent(1112, profileName); } + [Event(1113, Message = "Adding Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileDebugAddProfile(string profileName) { WriteEvent(1113, profileName); } + [Event(1114, Message = "Modify Profile {0} Completed successfully", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileCompletedProfileModification(string profileName) { WriteEvent(1114, profileName); } + [Event(1115, Message = "Profile {0} Removed", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileDebugProfileRemoved(string profileName) { WriteEvent(1115, profileName); } + [Event(1116, Message = "No removal of Profile {0} required", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileDebugProfileRemoveNotRequired(string profileName) { WriteEvent(1116, profileName); } + [Event(1117, Message = "{0} scheduled for removal", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileRemoveScheduled(string profileName) { WriteEvent(1117, profileName); } + [Event(1118, Message = "Profile {0} is already up to date", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileAlreadyUpToDate(string profileName) { WriteEvent(1118, profileName); } + [Event(1119, Message = "Profile {0} Monitoring Status Changed from {1} to {2}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void MonitorProfileChangeRequested(string profile, bool oldValue, bool newValue) { WriteEvent(1119, profile, oldValue, newValue); } + [Event(1120, Message = "Profile {0} Failed Unexpectedly \n Error: {1} \n StackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorProfileFailed(string profile, string error, string stackTrace) { WriteEvent(1120, profile, error, stackTrace); } + [Event(1121, Message = "Profile {0} Completed Unexpectedly, restarting...", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void MonitorProfileCompleted(string profile) { WriteEvent(1121, profile); } + [Event(1124, Message = "Checking for unmanaged VPN Profiles", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void RemovingAllUnmanagedProfiles() { WriteEvent(1124); } + [Event(1125, Message = "Profile Manager Update skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void ProfileManagerUpdateSkipped() { WriteEvent(1125); } + [Event(1126, Message = "Profile Manager Clear Existing Profiles skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void ProfileManagerClearSkipped() { WriteEvent(1126); } + [Event(1127, Message = "Profile Manager Clearing Existing Profiles", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileManagerClearProfiles() { WriteEvent(1127); } + [Event(1128, Message = "Profile Manager checking for profile updates", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileManagerCheckForUpdates() { WriteEvent(1128); } + [Event(1129, Message = "Profile Manager waiting on existing profile update", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileManagerWaitForProfileUpdate() { WriteEvent(1129); } + [Event(1130, Message = "Profile Manager waiting on profile removal from registry", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileManagerWaitForProfileRemovalReg() { WriteEvent(1130); } + [Event(1131, Message = "Profile Manager Remove Profiles skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void ProfileManagerRemoveSkipped() { WriteEvent(1131); } + [Event(1132, Message = "Unable to save currently installed profile data to disk: {0}\nErrors: {1}\nLocation: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void UpdateToSaveActualProfileToDisk(string profileName, string errors, string location) { WriteEvent(1132, profileName, errors, location); } + [Event(1133, Message = "Unable to save currently installed profile data to disk: {0}\nErrors: {1}\nLocation: {2}\nStackTrace: {3}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void UpdateToSaveActualProfileToDiskException(string profileName, string errors, string location, string stackTrace) { WriteEvent(1133, profileName, errors, location, stackTrace); } + [Event(1134, Message = "Profile {0} is no longer required so will be removed", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void ProfileNoLongerNeeded(string profileName) { WriteEvent(1134, profileName); } + [Event(1135, Message = "Profile Manager waiting on profile removal from WMI", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileManagerWaitForProfileRemovalWMI() { WriteEvent(1135); } + [Event(1136, Message = "No Unmanaged Profiles found", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void NoProfilesToRemove() { WriteEvent(1136); } + [Event(1137, Message = "Removing Unmanaged Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void RemovingProfile(string profileName) { WriteEvent(1137, profileName); } + [Event(1138, Message = "Save and Debug paths are configured to identical values leading to profile information being overwritten. Profile: {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void ProfileSavePathIdentical(string profileName) { WriteEvent(1138, profileName); } + [Event(1139, Message = "Unable to complete unmanaged profile removal \nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void UpdateToRemoveProfile(string errors, string location) { WriteEvent(1139, errors, location); } + [Event(1140, Message = "Unable to clear AutoTriggerDisabledProfileList Registry Entry\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void UpdateToDeleteRegistryEntryAutoTriggerDisabledProfileList(string errors, string location) { WriteEvent(1140, errors, location); } + [Event(1141, Message = "Unable to Update Profile monitor\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void UpdateMonitorStatusFailed(string errors, string location) { WriteEvent(1141, errors, location); } + [Event(1142, Message = "Monitor Start Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorStartFailed(string errors, string location) { WriteEvent(1142, errors, location); } + [Event(1143, Message = "Monitor Stop Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorStopFailed(string errors, string location) { WriteEvent(1143, errors, location); } + [Event(1144, Message = "Profile Monitor Shutdown Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorProfileShutdownFailed(string errors, string location) { WriteEvent(1144, errors, location); } + [Event(1145, Message = "Profile Monitor Startup Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorProfileStartupFailed(string errors, string location) { WriteEvent(1145, errors, location); } + [Event(1146, Message = "VPN Monitor Creation Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void VPNMonitorCreationFailed(string errors, string location) { WriteEvent(1146, errors, location); } + [Event(1147, Message = "VPN Monitor Startup Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void VPNMonitorStartupFailed(string errors, string location) { WriteEvent(1147, errors, location); } + [Event(1148, Message = "Unable to Process Disconnect Event\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void DisconnectionEventFailed(string errors, string location) { WriteEvent(1148, errors, location); } + [Event(1149, Message = "Unable to Process Connection Event\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ConnectionEventFailed(string errors, string location) { WriteEvent(1149, errors, location); } + [Event(1150, Message = "Update VPN Monitor Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorUpdateFailed(string errors, string location) { WriteEvent(1150, errors, location); } + [Event(1151, Message = "VPN Monitor Shutdown Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MonitorShutdownFailed(string errors, string location) { WriteEvent(1151, errors, location); } + [Event(1152, Message = "Unable to remove whitespace\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void UnableToRemoveWhiteSpace(string errors, string location) { WriteEvent(1152, errors, location); } + [Event(1153, Message = "Cleaning up EnterpriseResourceManager entry for profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void CleanUpEnterpriseResourceManager(string profileName) { WriteEvent(1153, profileName); } + [Event(1154, Message = "Updating EnterpriseResourceManager count to {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void UpdateEnterpriseResourceManagerCount(int count) { WriteEvent(1154, count); } + [Event(1155, Message = "No VPN Profiles left in {0}, Removing key", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void RemoveEnterpriseResourceManagerKey(string key) { WriteEvent(1155, key); } + [Event(1156, Message = "Cleaning up Network Profile entry for profile {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void CleanUpNetworkProfile(string profileName) { WriteEvent(1153, profileName); } + [Event(1157, Message = "Cleaning up AutoTriggerDisabledProfilesList entry for profile {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void CleanUpAutoTriggerDisabledProfilesList(string profileName) { WriteEvent(1157, profileName); } + [Event(1158, Message = "Profile {0} Failed to be Removed\nError: {1}\nStackTrace: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void IssueDeletingProfile(string profileName, string message, string stackTrace) { WriteEvent(1158, profileName, message, stackTrace); } + [Event(1159, Message = "Failed to Update Metric for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingMetric(string profileName, string errorMessage, string stackTrace) { WriteEvent(1159, profileName, errorMessage, stackTrace); } + [Event(1160, Message = "Failed to Update VPNStrategy for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingVPNStrategy(string profileName, string errorMessage, string stackTrace) { WriteEvent(1160, profileName, errorMessage, stackTrace); } + [Event(1161, Message = "Profile {0} update Scheduled", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileScheduled(string profileName) { WriteEvent(1161, profileName); } + [Event(1162, Message = "Updated Metric for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileMetricUpdated(string profileName) { WriteEvent(1162, profileName); } + [Event(1163, Message = "Metric for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileMetricNotUpdated(string profileName) { WriteEvent(1163, profileName); } + [Event(1164, Message = "Updated VPN Strategy for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileVPNStrategyUpdated(string profileName) { WriteEvent(1164, profileName); } + [Event(1165, Message = "VPN Strategy for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileVPNStrategyNotUpdated(string profileName) { WriteEvent(1165, profileName); } + [Event(1169, Message = "Updated Use Ras Credential for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileUseRasCredentialsStatusUpdated(string profileName) { WriteEvent(1169, profileName); } + [Event(1170, Message = "Use Ras Credential for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileUseRasCredentialsStatusNotUpdated(string profileName) { WriteEvent(1170, profileName); } + [Event(1171, Message = "Failed to Update Use Ras Credential Status for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingUseRasCredentialsStatus(string profileName, string errorMessage, string stackTrace) { WriteEvent(1171, profileName, errorMessage, stackTrace); } + [Event(1172, Message = "Error getting VPN Strategy for Profile {0}: {1}\nStackTrace: {2}\nDefaulting to IKEv2 Only", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ErrorGettingVPNStrategy(string profileName, string errorMessage, string stackTrace) { WriteEvent(1172, profileName, errorMessage, stackTrace); } + [Event(1173, Message = "Error getting VPN Metric for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ErrorGettingVPNMetric(string profileName, string errorMessage, string stackTrace) { WriteEvent(1173, profileName, errorMessage, stackTrace); } + [Event(1174, Message = "Error getting Ras Credentials Status for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ErrorGettingDisableRasCredentials(string profileName, string errorMessage, string stackTrace) { WriteEvent(1174, profileName, errorMessage, stackTrace); } + [Event(1175, Message = "Updated Network Outage Time for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileNetworkOutageUpdated(string profileName) { WriteEvent(1175, profileName); } + [Event(1176, Message = "Network Outage Time for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileNetworkOutageTimeNotUpdated(string profileName) { WriteEvent(1176, profileName); } + [Event(1177, Message = "Failed to Update Network Outage Time for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingNetworkOutageTime(string profileName, string errorMessage, string stackTrace) { WriteEvent(1177, profileName, errorMessage, stackTrace); } + [Event(1178, Message = "Error getting Network Outage Time for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ErrorGettingNetworkOutageTime(string profileName, string errorMessage, string stackTrace) { WriteEvent(1178, profileName, errorMessage, stackTrace); } + [Event(1179, Message = "Profile {0} Returned by Windows does not match the profile submitted", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void WarningProfilesDoNotMatch(string profileName) { WriteEvent(1179, profileName); } + [Event(1180, Message = "Profile Manager Disabling VPN Strategy Overwrite", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileManagerDisableVPNStrategyOverwrite() { WriteEvent(1180); } + [Event(1181, Message = "Unable to clear VPNStrategyUsageDisabled Registry Entry\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void UpdateToDisableVPNStrategyOverwriteFailed(string errors, string location) { WriteEvent(1181, errors, location); } + [Event(1182, Message = "Device Tunnel UI Already Configured as {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void DeviceTunnelUIAlreadyCorrect(bool currentValue) { WriteEvent(1182, currentValue); } + [Event(1183, Message = "Updated Device Tunnel UI to {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void DeviceTunnelUIUpdated(bool currentValue) { WriteEvent(1183, currentValue); } + [Event(1184, Message = "Unable to update Device Tunnel UI Registry Entry\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void UnableToUpdateDeviceTunnelUI(string errors, string location) { WriteEvent(1184, errors, location); } + [Event(1185, Message = "Device Tunnel UI Update skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void ProfileManagerDeviceTunnelUIUpdateSkipped() { WriteEvent(1185); } + [Event(1186, Message = "Profile {0} Returned by Windows does not match the profile submitted for variable {1}\n{2}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void WarningProfilesDoNotMatchDetail(string profileName, string variable, string errorMessage) { WriteEvent(1186, profileName, variable, errorMessage); } + [Event(1187, Message = "Profile {0} has different Interface Metrics for IPv4 and IPv6, IPv4 Metric will be used, IPv6 Metric will be discarded", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void WarningIPv4AndIPv6MetricsDoNotMatch(string profileName) { WriteEvent(1187, profileName); } + [Event(1188, Message = "Updated Machine Certificate Filter EKU for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileMachineEKUUpdated(string profileName) { WriteEvent(1188, profileName); } + [Event(1189, Message = "Machine Certificate Filter EKU for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileMachineEKUNotUpdated(string profileName) { WriteEvent(1189, profileName); } + [Event(1190, Message = "Failed to Update Machine Certificate Filter EKU for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingMachineEKU(string profileName, string errorMessage, string stackTrace) { WriteEvent(1190, profileName, errorMessage, stackTrace); } + [Event(1191, Message = "Updated Proxy Exclusions for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileProxyExclusionsUpdated(string profileName) { WriteEvent(1191, profileName); } + [Event(1192, Message = "Proxy Exclusions for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileProxyExclusionsNotUpdated(string profileName) { WriteEvent(1192, profileName); } + [Event(1193, Message = "Failed to Update Proxy Exclusions for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingProxyExclusions(string profileName, string errorMessage, string stackTrace) { WriteEvent(1193, profileName, errorMessage, stackTrace); } + [Event(1194, Message = "Profile {0} Removed", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileProfileRemoved(string profileName) { WriteEvent(1194, profileName); } + [Event(1195, Message = "No Profiles under management with {0} unmanaged profiles. DPC will not remove unmanaged profiles to avoid unexpected disconnects", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void ProfileRemovalBlocked(int profileCount) { WriteEvent(1195, profileCount); } + [Event(1200, Message = "Updated MTU for Profile {0} {1} from {2} to {3}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileMTUUpdated(string profileName, string IPInterface, uint oldMTU, uint mtu) { WriteEvent(1200, profileName, IPInterface, oldMTU, mtu); } + [Event(1201, Message = "MTU for Profile {0} {1} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileMTUNotUpdated(string profileName, string IPInterface) { WriteEvent(1201, profileName, IPInterface); } + [Event(1202, Message = "Failed to Update MTU for Profile {0} - {1}\n{2}\nStackTrace: {3}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingProfileMTU(string profileName, string IPInterface, string errorMessage, string stackTrace) { WriteEvent(1202, profileName, IPInterface, errorMessage, stackTrace); } + [Event(1203, Message = "MTU for Profile {0} {1} not updated as interface cannot be found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileMTUIsNull(string profileName, string IPInterface) { WriteEvent(1203, profileName, IPInterface); } + [Event(1204, Message = "Group Policy Refresh Detected", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void GroupPolicyUpdated() { WriteEvent(1204); } + [Event(1205, Message = "VPM MTU Update skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void ProfileManagerUpdateVPNMTUSkipped() { WriteEvent(1205); } + [Event(1206, Message = "Unable to update VPN MTU\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void UnableToUpdateVPNMTU(string errors, string location) { WriteEvent(1206, errors, location); } + [Event(1207, Message = "System VPN MTU is Already Configured as {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void VPNMTUAlreadyCorrect(uint currentValue) { WriteEvent(1207, currentValue); } + [Event(1208, Message = "System VPN MTU is Already Default", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void VPNMTUAlreadyNull() { WriteEvent(1208); } + [Event(1209, Message = "System VPN MTU has been updated to {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void VPNMTUUpdated(uint currentValue) { WriteEvent(1209, currentValue); } + [Event(1210, Message = "Hidden Profile {0} Removed", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ProfileHiddenProfileRemoved(string profileName) { WriteEvent(1210, profileName); } + [Event(1211, Message = "Auto Trigger Profile Cleared", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void AutoTriggerProfileCleared() { WriteEvent(1211); } + [Event(1212, Message = "Profile RasPhone configuration not found for profile {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void UnableToLocatePBKProfile(string profileName) { WriteEvent(1212, profileName); } + [Event(1213, Message = "Failed to Update Auto Trigger settings for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void IssueUpdatingAutoTriggerRegistry(string profileName, string errorMessage, string stackTrace) { WriteEvent(1213, profileName, errorMessage, stackTrace); } + [Event(1214, Message = "Restarting RasMan Service", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void RestartingRasManService() { WriteEvent(1214); } + [Event(1215, Message = "Restarting RasMan Service Failed with error {0}\n{1}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void RestartingRasManServiceFailed(string errorMessage, string stackTrace) { WriteEvent(1215, errorMessage, stackTrace); } + [Event(1216, Message = "Restart of RasMan needed however existing connections prevent this", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void RasManRestartNeeded() { WriteEvent(1216); } + [Event(1217, Message = "Restart RasMan Service Requested", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void RestartRasManServiceRequested() { WriteEvent(1217); } + [Event(1218, Message = "MiniDump saved to: {0}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MiniDumpSaved(string miniDumpPath) { WriteEvent(1218, miniDumpPath); } + [Event(1219, Message = "MiniDump Failed to Save", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void MiniDumpSaveFailed() { WriteEvent(1219); } + [Event(1220, Message = "Unexpected failure in profile creation process: \nProfile Name: {0}\nError:\n{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ProfileCreationFailedDebug(string profileName, string exception) { WriteEvent(1220, profileName, exception); } + [Event(1221, Message = "Unable to delete Profile {0}\nError message: {1}\nStackTrace: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void IssueDeletingHiddenPbk(string profile, string message, string stackTrace) { WriteEvent(1221, profile, message, stackTrace); } + [Event(1222, Message = "Corrupt PBK Profile identified in {0}, file deleted to avoid issues", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void CorruptPbkDeleted(string PBKPath) { WriteEvent(1222, PBKPath); } + [Event(1223, Message = "Corrupt PBK Profile identified in {0}. Error deleting file: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void CorruptPbkDeleteFailed(string PBKPath, string exception) { WriteEvent(1223, PBKPath, exception); } + //Event Logs now fail to generate if additional logs are added at this point in the file, adding to the end appears to work for some reason... + #endregion 1100-1299 Profile Monitoring + + #region 2000-2099 Profile Monitoring + [Event(2000, Message = "Starting Error Event Monitoring", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ErrorEventMonitoringStarting() { WriteEvent(2000); } + [Event(2001, Message = "Starting Error Event Monitoring", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ErrorEventMonitoringStarted() { WriteEvent(2001); } + [Event(2002, Message = "An Error occurred while Starting Error Event Monitoring\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ErrorEventMonitoringErrorStarting(string message, string stackTrace) { WriteEvent(2002, message, stackTrace); } + [Event(2003, Message = "Stopping Error Event Monitoring", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ErrorEventMonitoringStopping() { WriteEvent(2003); } + [Event(2004, Message = "Error Event Monitoring Stopped", Level = EventLevel.Informational, Channel = EventChannel.Operational)] + public void ErrorEventMonitoringStopped() { WriteEvent(2004); } + [Event(2005, Message = "An Error occurred while Stopping Error Event Monitoring\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ErrorEventMonitoringErrorStopping(string message, string stackTrace) { WriteEvent(2005, message, stackTrace); } + [Event(2006, Message = "Connection Failed for user {0} and Profile {1} with error ID {2} and error message {3}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void EventMonitoringConnectionFailed(string userName, string profile, string errorId, string errorMessage) { WriteEvent(2006, userName, profile, errorId, errorMessage); } + [Event(2007, Message = "Connection Failed but event is missing expected data", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void EventMonitoringConnectionFailedNoData() { WriteEvent(2007); } + [Event(2008, Message = "Connection Failed but event is missing expected data. Property Count = {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] + public void EventMonitoringConnectionFailedUnknownProperties(int propertyCount) { WriteEvent(2008, propertyCount); } + [Event(2009, Message = "Duplicate Connection Failed event detected with Disconnect Id: {0}", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + public void EventMonitoringConnectionFailedDuplicateEvent(uint disconnectId) { WriteEvent(2009, disconnectId); } + #endregion 2000-2099 Profile Monitoring + + #region 9000-10000 Special events + + [Event(9000, Message = "Service halted due to error", Level = EventLevel.Critical, Channel = EventChannel.Admin)] + public void CriticalHaltDueToError() { WriteEvent(9000); throw new CriticalException("Service Error Has Occurred, check Event log for more information"); } + [Event(9002, Message = "WARNING: Client is compiled in DEBUG mode, performance may be impacted", Level = EventLevel.Warning, Channel = EventChannel.Admin)] + public void DebugOn() { WriteEvent(9002); } + [Event(9800, Message = "Unknown error, Error Function: {0} \nMessage {1} \nStack Trace {2}", Level = EventLevel.Error, Channel = EventChannel.Admin)] + public void GenericErrorMessage(string codeLocation, string message, string stackTrace) { WriteEvent(9800, codeLocation, message, stackTrace); CriticalHaltDueToError(); } + [Event(9005, Message = "Method {0} started for Identifier {1}", Level = EventLevel.Informational, Channel = EventChannel.Analytic)] + public void TraceMethodStart(string methodName, string threadID) { WriteEvent(9005, methodName, threadID); } + [Event(9006, Message = "Method {0} finished for Identifier {1}", Level = EventLevel.Informational, Channel = EventChannel.Analytic)] + public void TraceMethodStop(string methodName, string threadID) { WriteEvent(9006, methodName, threadID); } + + #endregion 9000+ Special events + + //ADDITIONAL EVENTS + [Event(1224, Message = "No Corrupt PBK Files Found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void DebugNoCorruptPbksFound() { WriteEvent(1224); } + + [Event(9999, Message = "DPC Service is starting", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void DPCDevClientStartup() { WriteEvent(9999); } + } +} \ No newline at end of file diff --git a/DPCDevClient/Program.cs b/DPCDevClient/Program.cs index df0503b..61e6480 100644 --- a/DPCDevClient/Program.cs +++ b/DPCDevClient/Program.cs @@ -1,4 +1,5 @@ using DPCLibrary.Utils; +using DPCService.Utils; using System; using System.Collections.Generic; using System.Linq; @@ -11,12 +12,9 @@ internal class Program { static void Main(string[] args) { - string profileName = "AOVPN User Tunnel"; - var profiles = ManageRasphonePBK.ListHiddenProfiles(profileName); - foreach (var profile in profiles) - { - Console.WriteLine($"Profile: {profile}"); - } + DPCServiceEvents.Log.Startup(); //Admin Log + DPCServiceEvents.Log.DPCDevClientStartup(); //Admin Log + DPCServiceEvents.Log.DPCServiceInitializing(); //Operational Log } } } diff --git a/DPCDevClient/_EventRegisterUsersGuide.docx b/DPCDevClient/_EventRegisterUsersGuide.docx new file mode 100644 index 0000000000000000000000000000000000000000..f311d20a442ae11ca959c5fc73c4dabec809dbb3 GIT binary patch literal 112690 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 M9zLiCdM3*M0#iws1^@s6 literal 0 HcmV?d00001 diff --git a/DPCDevClient/_EventSourceUsersGuide.docx b/DPCDevClient/_EventSourceUsersGuide.docx new file mode 100644 index 0000000000000000000000000000000000000000..248e3e555e12809ef6d7dd8609bd49d60357fa4e GIT binary patch literal 162815 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

q1-K(6QL|o#Q0xbG!+4Mc-cN!FFFBH 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

VP1YNK=2W6!TKG(@*Te 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 literal 0 HcmV?d00001 diff --git a/DPCDevClient/packages.config b/DPCDevClient/packages.config new file mode 100644 index 0000000..541a63a --- /dev/null +++ b/DPCDevClient/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/DPCInstaller/DPCService.wxs b/DPCInstaller/DPCService.wxs index 790237f..f2b16f4 100644 --- a/DPCInstaller/DPCService.wxs +++ b/DPCInstaller/DPCService.wxs @@ -73,6 +73,10 @@ + + + + diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index 5b8c1e3..35950a4 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/DPCManagement/Scripts/Run-AsSYSTEM.ps1 b/DPCManagement/Scripts/Run-AsSYSTEM.ps1 index f5e20ab..5ed29da 100644 --- a/DPCManagement/Scripts/Run-AsSYSTEM.ps1 +++ b/DPCManagement/Scripts/Run-AsSYSTEM.ps1 @@ -1,4 +1,4 @@ -$PSExecPath = "C:\Program Files\WindowsApps\Microsoft.SysinternalsSuite_2025.2.0.0_x64__8wekyb3d8bbwe\Tools\PsExec.exe" +$PSExecPath = "C:\Program Files\WindowsApps\Microsoft.SysinternalsSuite_2025.5.0.0_x64__8wekyb3d8bbwe\Tools\PsExec.exe" $VSPath = "C:\Program Files\Microsoft Visual Studio\2022\community" $MSBuildpath = "$VSPath\MSBuild\Current\Bin\msbuild.exe" $SolutionRootPath = "C:\source\DPC" diff --git a/DPCService/DPCService.csproj b/DPCService/DPCService.csproj index 79282e2..5b88895 100644 --- a/DPCService/DPCService.csproj +++ b/DPCService/DPCService.csproj @@ -27,6 +27,8 @@ false false true + + AnyCPU @@ -90,6 +92,9 @@ true + + ..\packages\Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.28\lib\net46\Microsoft.Diagnostics.Tracing.EventSource.dll + @@ -142,10 +147,13 @@ + SettingsSingleFileGenerator Settings.Designer.cs + + @@ -160,19 +168,6 @@ DPCLibrary - - - 1.6.0 - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - 1.1.28 - - - 4.3.0 - - False @@ -193,4 +188,11 @@ + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + \ No newline at end of file diff --git a/DPCService/Utils/DPCServiceEvents.cs b/DPCService/Utils/DPCServiceEvents.cs index 7e65fa0..828ddc0 100644 --- a/DPCService/Utils/DPCServiceEvents.cs +++ b/DPCService/Utils/DPCServiceEvents.cs @@ -1,6 +1,6 @@ using DPCLibrary.Enums; using DPCLibrary.Exceptions; -using System.Diagnostics.Tracing; +using Microsoft.Diagnostics.Tracing; namespace DPCService.Utils { @@ -8,13 +8,7 @@ namespace DPCService.Utils [EventSource(Name = "DPC-AOVPN-DPCService")] internal sealed class DPCServiceEvents : EventSource { - public static DPCServiceEvents Log = new DPCServiceEvents(false); - - //Explicitly define this constructor even though it is the same as the default constructor because for some reason, when running in an un-debugged, x64 process, the - //Operational logs end up in the debug log and the debug logs are lost. I have no idea why this occurs but this seems to solve the issue... - public DPCServiceEvents(bool throwOnEventWriteErrors) : base(throwOnEventWriteErrors) - { - } + public static DPCServiceEvents Log = new DPCServiceEvents(); #region 1-100 Application Startup diff --git a/DPCService/_EventRegisterUsersGuide.docx b/DPCService/_EventRegisterUsersGuide.docx new file mode 100644 index 0000000000000000000000000000000000000000..f311d20a442ae11ca959c5fc73c4dabec809dbb3 GIT binary patch literal 112690 zcmeFZWl$ttmn~daL*wo)jk~+MySux)6b_9$4UN-4#V)=>?kE!2uO6mCjblp03ZPzb}Uft{&%eBh3!|BG3of1iXWn`>u(d;{+hnc0@n}b_JAaZIQ1s*0uT2N}0 zN(1%M$gV(#nYNfQZGLuGQYCTi$<@)2RqZu0tH_F0ElxqlHs3G~HVWK9m&y;1E|?#t zR!vyf@@$?UP+2X&xnQj~HOwrF4%zayHo4JTh2JqCLS|op~m-*7VAOrh@%W&~H zLgu|x3E3qZ&2o5vRmRA#TqNogb20Y&%RaP1hT77qXfkp9>{uSnV2)TPv@ul>qyA5? zJu_PvwNuS?mCSNmiu@i*4x+43?4!&WhL%W_;egcEu?Rado*NrBO_+UZE}{tNl_M!M zB1pB#-~N`2cDBXHgKt;gr<5NuBb%m?<1dVQRv3{YAs>+-a!1=R)0q6<93^e}LQ)t=X*At-thHa*QQc5$S&~o?|k~y&QPw4nt^_OZ@^5c+`ka`r_pAA+w zcPmWqAI=8?K>(Eg1A_?@aT_l_&M15k6z+q;hA!rIu8a(Sz5mVJ|G{+q2j~?^T{a)g z6}kv{3z=$DUhcv!RA4lnT)|#~hS8OlLt9z2S$KcrTU-R!KQfjanVw0W^l{CSaNkVP zzr;;bM~G_sJpW|Sqx;h81xO8REn@bXciM*kzJG7=HcTc>Jsc9PjS)40`zi4;^4nM^ z+8&MA{ay*2H7WJPtSNb2VUDx)je)0Bjf|hZd09XsbnsiqB zg!u0DTK!(NUEh7ryz>v47?VC$czA|Hm1K55dC+z<_x=x|lKkD@n{8P2KH3 z#O^PZ``?5C`;fYi-v6`PsJgu4EE96u$5c<6yQ#!`aT8T^OIn|4L|M?>EIyU zq2F~%2@u511|9yccL;1qSI8V?edM)TbW&&{FNw_P2-tD6zm0a%hrN45>HNoZ7#dnX zdE^w+?kjQ+KBHK=kil&`nw@rV*I%MKXsXL}Qd06jaPUn9vnLMOnl~n)b!3_Sbu9Odg}8Xu2~cO<>$@<``U`MNxu-v&p%`` zF3p7R_KMMiJ&-ApbFd8bqL4UGNp*;j19u3ql{9@R7y#CD@aDQUAy0I3E&6*y)=`I8 z&KdEl2FL4i9b@NFqby~SibZr~*)3kGr?8u^o_2JXk>UloKBPu-vb0^ZWr!gsx7pG?p zo=3wssT9G0=RdpW5J((yu01BU!)OeAr_{hf(Z{0)&+yfb_*Q$XwVnJ^8Od-{E8hnu z2Z^@zNWX_!wwi1}Xl|BG;Ark6T!%u(b24oR*s=2f7Gh`Ksu6M95EG_70wLnI1Yt44 zw(()_MQp2wB{#0#lOH7T3&K3u#yk-M0m9QQ=E@&-s$h9?!&xwr6-)S`1X<7NE0Lel zB#r(|h7i6_pIYBtdcAkb2fx>UNw+<#^v$ggOX8Q*4IezphZ+I9vF_wg=*)M2Zn&Vy z^&|*{k?IGWz%Tjiz_Tf6E}6cb)J#!Z(Y@@P#ICK~&pEsl)S+y&pz;%PlL&CPFZ1*8 ze9c`gc2Fj36nJ|=k0SuP;Bz{->(7QKsHt(iU&-EudN%a(cmotXDc_nS!{)xB!+=iG zJD^YH$?bz2BW`1>JLmuzP(_3Zyz$e+W-wCaGo3q_dGj|=F`L46yZw97griV&YIOK8 z_ar`KBA*ObZ`uQS`OKyf#5WG|VHTyrAviP=Cj#R-U}=9`Y(9f2b+d2Be8z_od#9-M}7SvLlOJNT~c`0dl(7FiaZuM zNXi^cPbXL#5eXcnUZ$D+m*|b8>-Tz7jnx%??seYvjWahk%1$@mk+;i%^XgJV$EF<^ zVAd~2SVUERkJ3N|2W&Hex1m(v*HDXdH(TD)_pR;a-v|fa1vw|N6JAoF(^5Q%*8&Uk zA(`K{RuRZqvNwgj2&D|3odU6n6f213*4h&qW-mSNK#UO2CuO>ZrG)yr!^%>kxb*QN zMS?KznMU@E?XF*mOU_BworQerhlsb9iERU%3mIkR2IJEOVd5mzN*VGIUH#_Nj|nR? z6iE`oNXUdF7aK=VM1cW?3_^$q0i%DIB6sC|jFzEY#x$g{2L53ALc_&XRldM^b20&U zBHB-pMC|6kAYqt_?ZgH7p;UW^-ob>UIx`e+!{!e1s9H3+V5_VZQFxHI2uiJBIyCslvAkQ2%@se^5{zx9t=w=f z5LG*Bg+~r@sKeLc3n|8SvgGLJ+*_UvSd_qChS@3-Z%BV#S*2lyQcIO#Lz@^b?bYT9 z|I$Q5a1#j|1}}dvy&~43SW(YMJ31hv&3=u|rz#-JR~pQfQB1sl_@;cNMDu)uQbKhQ z52i&n+mTH@`(nl|(5Q5x{=)!`-K4GKMWxTj@vP5BJ)NUKwlEi5Znv%nFZu5N;$1m*B;To&U{ zfoyU^D$lxgf_73+Vk`BQTA9TCAsBiaf{26GAy1lYe=O?7x$pI|xtFhQxLvJ>B|r1l{X$V*>wDotYVvl7L{vv2x}av#l4O4J`S&4gr+1aUM<@zSG_*`$b|B%%-QQ%ED+JG&i!G{TViyt8!CbnL|7VV8%i5yz7wPup5%lm%qVg=NZE~0l7j5Q@Fe$9+rP3o7X&Qg-xZP zsZMcUdG#Xb=CgQSKdG8hSqX`(TA>^My)C3;YzoluyWU<~P$mMpjgovOH@PsJ`)I(- z?@>E0BR~Ap{Ou|&dE#$iEGyo+r}!=ND^6g7N0yl5o3c&9yLgp=;MD9fC9H(|gDWwZNO{^_ z2BcBQ!KU2NAKmjVm#9vfzr>iVo2-tl*!I1uZdZIHWYv&jbdfA6PfBd)iZx&X7(agA$xT8T23UU ziJ{1M)mw`T4B8&XbQJ`G`us$Rf?JFiJOx>8JM}fWm~ZUpi$2FMN4#hbk-+q#P`fjY z<;6cpC^8>XOa8W+{Eh|-pLk+_L4$iL4GNpeIrSX(9LmonIx{%fyx!+y)d>mIZgpMn zF~V07#LJoS;h2i&mWO#oKk2fD^}4TDY~_l0j(9(VxwKxab2zXJ!k2;8NXpL~Q=7Bm zkXI0OHJ*zlIP&eh2{goVEBfVVEYo%g)j=7@e9+ffwdNXz6^z5p?-f8r@!!;C-sNz`)Y(@B5X zcwr&3UwA7F_>ZMm4IL7j0RP)yPaA(PuaGEJ9nQQWNW_HPBpP5WOYQxP@ ze1DbLa-+G6`#$c9!wM$l)|nT>h6OcMO}<^a>uBhaQHS9f?2!4*<5}6x;PN6}SE4{d zE{j*NpM$C=B#(8M{(I1shWtEEBmqbrBJh~FM?BMiz_fd7cGzze`+m{pDT6BgrKrFd ze6d3JWytn`_i+=#2KNjNj7T1gjl6#(7gi1^vkT7(*G>w@9S)lOm)c(qUt89=q1ch+ zy0U2%`_apM!4rkU1t=w5`^_BINdmV!Ah+WPA-iE!6JRRA47yJb{2)1|H^`A-aFVZf zssr5w1>aV0A|A0ijdG=B`ioU#L#;m=$yxz1;P9c!?|{i;%^gj6E?huM zDCjU2U9uQx>pUqFk|JLqTWr--LHJ#@hrj)Rvd*Y-PJ+Mg=dW$k0LW;IqDq2#p>TaB ziP0>Rx^phhp{~XTaMnI`W0x2t_AmPM!ROXXUTR~2K09y#G?H zh}QTu4AKVKyA1a;Lit?L2F}%w^W&3r;Ops#Qfr^-b|~=nZbZH^dO+FgyEVcA*ve6z5Ajyi0H!H(HynVo)2+3_k6K>f)({bn$Aej%+j zb3~8G^&Mm~Hx_OA!ub2!`@SWmMBzJL$+KT{PBgE!x3J^wbVY&UjukTYGLDOYvF5=ByZMI>8gYoTZjDBupYX!6hrm=lla*CM!uf=pGZ z%<9hA^yB_LbiaC9z$}mKK%wxJ`#EEPtIu7Eo9gPg*UYOooaqx8OL?LizBwWG6GS>< zm}H)_9!jErv^1siQ&rC;yeady0qowBA5}t@xdy%z(bQgiLs3Bulo(i4CF$Uj?Rk(m zSZ6QN=rHv}57a86&EbIo@aa9zHmDwlT{7ccF~X8M&twJIovS`(8XWEAs2Ty_@rJRG zUc)`qKCh$e1fuyXOOkY$+5T*UDxvy0rv}+G^Y^bxb&A)b+5KJzog|$z^<2C9S*LVk zz@^m;lhwrQFWd}Pl6ugON_61dw@f%R(#qLIL?hXI`&zUpv@5N-KK*)ycuT?Vo?J>z zBB5a>%mXJFH(VIS!a4hgd$aEd=MU~M2dv< z<~|VZjHD(_CjJxN4d9(5_cOd z;qa-PJ8zUe>0ifuR6i!WJk6e0j|9!3hPa2lo#FQOu!|19ds4cCuW2foyXAe5mZ&x4 z)IU_t_-Rz&fBvMmkQZMH*3dB>(16ua@?oKgnIS*MQc#&KT}i6#nxj&%&Bspb9bLzE zUI}BAZ;}O1_!dd>)vzPr2|80R-|gd*awVqbX9+G`4PJ>@UL4$^e^WH$zy+=#Py4Eg zpzU{rQJyw#h|_B6Mk}~7CXJMD;W=l7$%Y{S3(l7zYRxn32dE@uEM$)7pQ7CrgkIoB zw7*nK4!SLh*`%*zITEZcRB#hNE6Zf<5d>KwZelWtrRzQn(xCAz2!$P0j9w4(l^Sj1 zWn1M$%C~AF{?=0Fo>Hn`&<{fmfVPQTs^hN{CZF{9v)@bSUo&W#vY(Heysc*{Yy8%H zV>d1!56MhH9!hl{^XOGO38qV;4YC8z1Vnh_Q%XBQya!&8l?hu1(qn`g#cE~1^wOsI znJ#Bm@nsuFXqc|5XB*A5kotC;Fq`&c4{q|fbaBl3xEG`}*e-$fi3{~fe;Wx+Fi$F? zO2T2_&uyhbEvU+-d!u}h_NtTH+;m3moUXAMvM19AO_f|{zeb9r9+plfjs}O}6jF43 zTFj~^VllAq(o-+>&W&=8dXGD<#9yL}&)O1;$UuK1*bfv6xp@RUXZ2dp-;9j!z0bPC zkv2NOEulT8op{buKZ$FO2^WP>1iAc(LY|Ib+j7mV1JsHlcE+T0FZ0x=RveO$)KS9XplOs|lW1QloaR??XTnd4x&|3~9^WN#Yq(Up zqo0r}Ox0jXvogN80#$KHaS!f%W#DPE*Liw;!?PyYT9w6OpNY(J51TzjILHvSMjp|+ zecTB~Vr%TaC<^T6E*@HeBGZ<2O?GcZ@wrUk40`yhy@;x&68zh07Ni6GVt!3O|46D` zYR#y8is>@tR6<0$WGy?$YBPr_-I!GefiD(>)p8^A636q`~sJ4_nq3~qu!ih`a)D?z$V ze)B|zg7F!yPe?2#v>5`W|4u)+6qUVQiI@~mW-!)Fhqd23Hw%qW0Wm>pk5GxUdS|yb zzc#{M~8Pv6gdJ}Hl67w&fcjOno%&Wk|uiLcePF{Zggc86V!lyBPJ6&ofKJFCA63> zL3yVAr`Urp*fVskcxzL15yj4Gb(aoYXS%M-o>(#3q<6k;mgOacy{f$?B7!z1%&{@- zn8vJ%oS6TDo}asf9W31a*EB?#HmM4MQ< z-GwSxC=r(rRyG$x9IxSWp8PSyT|~uFxmk;9I*UnoAYvvi1%DcudgzxU&siIqf1tOQ zgf6qZYqGv2HXqfJQ3264`7F7>O@4&#R%oGw{IC3s`tL@ftd`Z?S!;)J5}s_bBjGdc z1SS5SUEyJxC@1`y{CC7Tq_dZftVrPg0^@#V%e{mZYbQNchHaK;_Wd?ZOym``A zj>T+@K8`r4?Tp!Rovpa&BvZ|t%2g$9t7K4_q9V%Z3<;ES^5-}+0ZE5t8+)cf;OphMjm3W;_J!jM`z`KJ(EFP|g4~7%NhFe9=DiN7t zw6dM$hUcU*bR5?^sGN_R#v-&=IMEV_1m`y4g z=lh~qy6CWJ$KZ-R%l89(yMwZ}4oN2U8)x%R=4sgoSuwh4mrN+NPN5yt(x$RR@uI&{ zE~1+P+NyLDhX?A#jhkY;1a)HT z&T$j__lSJgljxjRz7iqz*hl#I-MmaAVZBkw1)wuMAuKE3oGBb+2JIg`4m-7_OH6G# zMabh|!fG3%6S-l{7f#J&Y47>oB!7RxpjQ$G&*f0{F~9HJc_t`$wDIzD z2;5Z2cq1n&*$CgN4hJ)KF9WW$f1Pd6!v&;%V%Er(Xni;Py5vwUG4HN%f(vlrETOe_ zjn0fpk!7Uf-|d;cxc?T!SfxV8KNKtDq_DXtVe$k)ZO_!qf)$-$ha7 zX{jY+V%T2>4_a;;olexG-wgJDS_B&~kFN#P0ug4a8P>AB;}71b0~;0a%Iyg%8lJM_ zX(fyL7CLQ33hyYVypbb~7jPyz`i%6gZU^otr%kzqH7$gIHWg8eWsgg!QKC1^B$T-($$3|SryaORBStMO^Syp$i-kVW`n{IWolem&!_+zJu?P-a zZ#`M>iieBiwLj7*E3+)Vc<``K0ErIm;0~LnO(@qcI{(INjdpO+MWUfibDlmk26X<> zv_THiWhpDN{PNRZ`&-fI<7Vj<^+F1)VMlmh^^CvTB^`FCwkYZ$R9yUI@Z3g_y$Z7knQ{Wol%7^*-Y&$YC&CPXlTLYv;?4dWJ6w`IH{hdwB(zZbQB%1>tv{y zfpYdzi!oYI1-m5m^boVM&4{vyFy1r=bEpG*D61to;9chEHYqj6$C9rtTis2}`6tm$ z{d@WrZ%H;O+tfRP8)?ewr3FB$onK_4< zJLk>9$(u#Tuf4|y;^4^hwxC|^1ua^c)hAA2G+5TT4$3AfR{F?ULuxtS`?3EpM8jf} zaK4%MBg={Ps!H)H)-+~RQJSHZ<)c|GQG=_B=gN;=iA`OJv@+cbKqK7_T}lo>u8mD` z|I_6pHI%}m%Og8dSy}JK;nMi*qM5mMqe9Lo&EMN?jZ{s3_r_5$Nmtw2VbZT00=GQ24l~^f6zt>HLdLu1jB%K26(h0t zG1&{aE9$+BSDf;_OLR3_6J(Mtqp%1)ZZU~cN%?Ac+ph+*{v0e$X*rLOQFw}9U*|B0 z+$zNr4(YXu0tbEbS_54$AGk1GpwuBS(Wa4K^5^8URqZe_uDvA<1=t|j5doNGcDpTH zJT{(jZb99bbP-7^b~*N`YdO%ZQJM3i$Q0ir_!x+yqz)Li_=_1SFb^lCn-`VCO+=_x zbNPNuj|=tiSh5PDE=472_t!s|@Ts(C$J@&bA7}@4(7segKhK$lACqLen?s>L&Hl8G zy~ST&C?0eTc5tqUv@2VYj~c)cK)|T;3(8|vsDb9D$`|d`q)4~6lO{YE6JT&0-G%5y z(Sxt-F7zs;vp=pU586BH8-E=AhOxxe!VCBH3lI6ch+ys*lgyI#JfFgx0>Dg&U z&+`MVVj_~RgovHl4Z&N#bFu;%f*q1qoooEQEqafo>#)1c>tV18BncN)ZTPNG$N#25 z_&ys}Yuscb)}^!Ug7CSDJ6W12KmSzJx(1~>`BHDVaX|9VS+cb9$3_ zwsMaACM=}ni6nIUHd6r{k9a@;lgp?d_you5)^b=z1{&tcWhFM1oZ5lh2g>J;*T+ zRDKdwyj(n78|=2b-09Mu0-hm+6?8UCOWK*jCevsjVxC_)HH`R`7=K9dKj$xyY3#l{ zf<;i@35Wj_JbToqJH_2thbNs-6 zU4=^4$P_{Qk%YJPK&iO3&s8#h5(A5qZn?@Ywf=s;($i9?1q!E1i}1tfC+l{`hqj== zq63tizfKr9hHkq`1&FkGLx&HZ#G;WZIIsVqZRxpQ)!hy*Qxg7gIQpwnV@#MQaKCSc zuY=(BbU(2q?_L&7m)Qb2Q&yluu-MCDF}r7|%MQ!|EVY^`U_y@le}IdWa0YuLiSJQa zV(40tJ7D31gvSce4L#<5l1)ZYoJD+FtGBJ>j;gXV*6qFlUTzhdOm)^dUzRV1`n{|D z3_lG+q4B9+2D=NlV84n{_PO-RjcX1)-Y5mmJdv{_qWaZC9gaRJa{4<5IQcUj;N~y7 zF$`Ohv*Vdp6FtL)Vyu6mV=DItF9v-s%p!wt!d}Pkyz6qNjQeuG;cAD1X~Ly=tm$`K zp%CDqj$O93+ql2=xB&R#ml8}y5OGQ^E@B*TU&uu85jWYFh)W%M9yU}~aJG{_0fw4W z^Vy}~z7lfkd!+Ig!#$GYfOUe`whr{Knf zEwVn!4_f!3vWNJ5oAjP(ueywWja4?~WjBsz6C?} zTK7}nAh2{(TU2OKcpn!B6BbXQYzZsZHJ8Z=QhFe9C-n9aIU5EVc`)qskPGAPAjOk0 zJzYY~u4e8u{MgaBkqL&9-F%>6YI@S0zi~?cSrb6Y;T*D`$81ISMh$=m=bp)mj=S?Y zGuY5IVplS#e>~@Wxho4=cwOMU)MtFb_JSIYKK~TJb*srdE95;@*ZV{JMjxVD$h)Q{ z$Wf!kztMUVgX#-cwp|{rLE$-8oxVtaie6p!N)E5xJmw`vSw&^lssP5yybkzIS!)o{u zK*+?0L2zJtG&e=;Xz>2Hzvt@oeAstXXsAFWDByov*LRF7N49o+_h9(?cB^{1aC2cG z_%s}M!1Ml)EAVo*z<4H<4`Jy4b{da0Vc>uBlq<+r)AlFKjcz))B;>LaABtx zaIPxjlcIg##*Zf(-%S^L8d8@L_XlAs(cTV7-x0E;R^@5udNeSY=N&zm(gRZ@6<86k zfL!}+t!FXvL;w+c&yB8=AKnL9SJWj^vfoArN5ALm=*X&s(*8>1*t`B@Vefu>e4N~m zRg8p1JyMg>O&Fg&$f{uzZ&v zhWMBh6rI~xXvs$+}rlI4qt{01eM0wwIB8Jo;CUPyoBo=OoLmsO`?w)1B_V%C_I$o zn{P$IPOvPGteRGwVH1|rcdz2_31Zd*pLp?KNBOycSVja+EYR7 zv6pKDL`VBrGD$3!w++Od<*P7tryl$4ev6Z2^gB5h9Gc|xsC!FGevdF|5umMW|29fB zoOC;1a=s*?9q}bo7ct>$c>c z-e)!2d|YY|(MSMbU#jkkb-@6C?f@K!ohzu=+B5q2=Iu19shNazrOz0w>~y_7-*Qkdi=jNP$vKd1`Hg61piXvP?*8HN z>G>~QU;v1Jh4t^q{u3^g4_x3MV*m;L7cMYx&yO7f1rmyc`4g(JGPJQX8YxQ<47x~S zeofbBGFFvK3=@|rSWI%ZEsCqZp#2N7{~oa5|4+#N9oYZDwG4oV0Q(p`2o!)I;7N27 zcuB~O}!mKu%G>-O((L0TrqdsjAwpdy(&`*KxiWe_s-~CeUr-V|;aMg;!b#Q8% z=So3yoPL5z?_{jBeDMs>weiXSU~A%)r|>=!1SnA4j(^z}d}oM%beBB)ut_YpkLaNn z_^J;SXVV-3_Bsv#C)ot6pnX^X3o20RbMT(WyWQD{1 zXtf8=+oEj;&^zs z{CZ2zGNaXAdreL#UOAhNB24*BbHskamTS2}%iEjylZp>dhSy4b^j;b!_0hb(`oemq z?a(R~tg_8<;VZu&>(e|45TO<@MRY6ustf}7NrC`>{mT>N{w`FlqFTQvT29QLoxpU>&D+?t2l3KR*cs~vNY(rgYxUQ#F*`DJbA*)>^Z9JN599qia=)T(5Jn_gW z*++C4`wH_I_7cxKzL5XU-_+N1FYx=B76gD3ea`}3bAkY-`g-O)OJ{QL?X(cW3W#by zz9;F-1nau?EuXEiPqD9R8_>f3at_nhz8+>&ND9a?-1l?7qI~}x@5>nTPP6I--Sv)t z8N2gJP;=SX^JahN>i^Fz6x(4+76 zA0${mXvL8A&sT`$n^skRfQMx{>YoC+RRiv2$FUe;vkf)~>FJmktY=u@v*E%G#2|nd z2+%zV0+bNF#)1Hg9|8OS0bxjih_U^%PjbD z(|a@*k~WT>i!0sfE6*zT9u^tslP4Nj`Yl&Tha!L6V7d5*{G;iTuk=XI&LF_x##^j7 zBGR^vw9A(IteWElL8_uv`&v6Aef`ZB?Qle$VW91I%MM0HhmEh-mZyd<1joS7Ks$TR zfp^kJq)kJ(V*%nv^ZcV^n|1UVw(qh;ur_Ix0gWC7%uWl;-f7c|-2xN$k@qVV7AA>g zM2#m&(c6CMX!TAf566BeSgymXL`H3T)xa#Z>4K&IP&ww6-VuLY#AE>Cp*ePfK56O z;MF1iQA;!Tmht!_|9}$&0r09A?_6SXq0vFe#>79A$@}{(mpGLk%Of%2eL>J#j^K!&7WrTf&dH0 zg0J7&YcR@HK!8s3cS&t=7vN>R;L!jGKnA>L1O9`TE_~RId=d#f{K&N_BR~Lh7ZAX9 zOEC8mxa*#xN%>zn0?`#>Q^b1^2ypEMycT||4t)o9fdGl~%6hr~;4Vb}c+*~ytO-h(O76Y(~oLf=eqF*y1Z{2rYsJ6n`ag{(2#Mq`_+#o zkHD>?+{^loEz}wiAk^_4c?|?uHZU{1CVJ6K?-*L^7=59d9?!Ub zOQ`bQc6^P#2j1gMg8;W%js~7r5%(hL+YqyUy0E8xQz=xf^pfNWx>evGqy2D zM`p)Za%DoKjYUDPR($;A!(24ruHi>G`fEJ>BN>77Sq+&Iz&gHPCra-1e5f0+H8(X! z=tL10+7Ga?!?FEUaC9BH7q-Zy=q=gY!Sx$UY-o#hPD`n-x0{*#Y)_0 zW|%V*TUD0CpPrFuETILDqHkv5K8NT(0^P4{H#hnOVYQ|4Iol~OTc5>Sll*&=w%5-o z=uhEd7P^7IHqHh%s~;&iyQKJdx2a!^w-xao(|h6h6t}`-D@iZ;oa)4;Nu`)6dP+5) zq)-8QDT{FLaM`|sXEallf|gj+>pr~N<+N-UzHOLo9&+!gmn9@UCfCPJ%U216N3S!L%nC%yDse(3bs@o4ye3F}n1YRykP_HVNdKx#!&th1m z-u8581@)fDQa|9NTJwC>ub1DxV_PP0qa$$c{R{eekLH# zs&GYE3R$yi^T5f8xu8;N4Y1ZBA}<^Y#K}(ter6B_#mMBi`-N z{zc9UX$Pyf8p}(vd!2IT_XV;Sa%an3TcWk9ymyY*G)D>&-5}w-yVqQ_#8kqTG*17A zTiR8FpKK7ZD~6{bY`=;2@epiVKPT&Wv1;ea%v2H1^Zt&qm#3GHkuyr8>=_rFr+Vpy z9eniN(pMRIhy8q|s`FjGBU*Bn4{1wQR`;RNy`ec1Z_K~=D><1hpDi0j3aXk+Xi$@7 z*E=Fd_2tVuEc4Z@4er1I0p>=Z0BvK-G@C9_#Lb$QtU>%cN*fQDCqo5WDPOU4L1KWu z2s)BOUg-$*!tw2D+0Qc!%y#E!&lz2gg{2h@Ke&qRx4nC_HyvwjpS2ZW%fYIe=0Wah z`6b$Rh~x`1(9zbAAm^wZ&nD-~mE-+J6#MTeL$vr)!P>4;#}qqQ@$nVTvC17ZNI}#09xU$YaV#RoMK{A+L&l+t zUD$aXm#kT}`AXWh)V1Gd#pQomj$CC@@fqD4ImcH=6te$LR=ljau4Z6h$NPRgQFxqV zJM?RLon;IRIZ|3Z3i5ep`{FfHQ}Awm1q6^GtHL1E?yCGz$e4V6)Og%B|9#2*+TMRH z0O%>Z#@1@sC3wx`)$!g#4FVLu&>SXuHt_i5${hHiedLYM(ICJnOYXB{ZRN_5U$h<& zz11J9-n`5T~0amzgSo}j;J#Swhf77LB3sqxzL)5@@mCuN~?u5i@UV_V_s z2@&F*uC0{L@n(N5Id#m$@6`L4s~fQR{(`LP;yr2YG`5drZG*Og^^KJg=iQ^euxVLq zHr7sc(S*sCuVBl<5RSw#mh5Z+?9+R5^(Ppuu~olqEnDk_kS@0MzkkCweOxFVnjk=A zdIjJaUQtHg0c#C(kDfDvu~Dy=&VGE8#6jGr2Dn2uY-9-Yvd%z0wLH4^W+Fu}vTLzb zO4w_5vr7IrN`M*iU2#Jb-_M&EEpkvxjtMv@!Ju(W6*N3KS3EGPZEF*(ZmUk6u%BWd zF+@2^T-P2s(3R05JEQ#ruXZWKFZ?{$a^;A9 z)5E};(zV6ZR@YEo@cR9YPLuTT`Mv!0qej4IG&9EeSa~@$cPxz~QA=o_2|dtd(+)Z@ zP>M1OB1Cl|(uUcqeWeF&rF;F0W&L!kup?wfc5!0T7Uo#AyEVMgsp$>V5ae#=OGpI#LcPzp&wBJQ&rg?4-@P+H1nDn z?LR62INv3!rwl&1^Nv(f8rsTMUf0 zatbjMONLxIJR}$0O?<%K{cW+7K!Bv*9|F3F_i;3JkKs6g>zA1xzGk8_fnLrr$sz?7 zH1Kwp+c_s)U-dO^-|>|W=e_5?no|C{^@4WrhUg4?C40>|ZfU?^Zt~+lPIcOI2}ZfE zcTasv34}oafz&?#D#k~Rb;%5(+_#c_Z{P5;R-_W?VlR74b($Ng8GEt> z7$w$^rTv2|j8tykOlevatB*B#wpia@R%?$&hKB_23UOPp{C?x%-&#oT5s6DJ{Vvk+_(0JFe{W?ZIa4P3r&vAlolSU%sZYtHnI{FIBDA+ply z%EcPg+WR!_nt-h_p1{sagm$P~-Kto5QHP9!JD@hRQv+L@%RluX&PtSmeegvtjJSqa zsf<7K=GFe@Dd49A&4PhpDhN=X(3L;8XkRnw<;1MZGi;6T6 zkzOL80z!x(DlI@rtW+Ta0t!NuDpI155FwCA7Z8vxp#*|}lt4lW0YW_Yv%l|*@xJf) zzIX3&#vbRKANxmsEow;4dNSBK25oY7c}jw?Sal% z1W8ri7AV=gm_3qo))DDjval7_7+N#v$0{IjWyPYckC*a#1S}9Dwnn4JcsIBfyf0J7 zhgWBwJF|H;KQDlQbNlWCP6~mvQf(goRX0EwGa0|2uq|MkPa7NQ47_#YYps3M8}N5+ zzpmIX@<$#JWn8}At+Cn9mVUh+XVPuZLZm*Wsn7G@NtKUY-gx11_ncJIpW#6T#7 zvc41i=^+HYu(fl2DgIR1_lEdW?{@!x^brPFO^*K0*$EH^v_!A88fJVsG+7KzbST0;KeGmG@4ag##j)~A8M^?qcq;6W66 zn-bTv4nH@$)y2{SIOT(~*h8}L)L-M&v854`iCI$+Y~Exe;|06x{)6}pnk4$0n%341 z9{7*g1y%Y`D`+owHt{*0AZ+J1&_&}6luCLzhmqUJJtLz+1E zY>$y`q(JzC(SR*kY?PYThUrz;$Baz2)_%l@IR`TdmI-U5lHcI`Gv8j0G&a3nV_gFN z(ruCCs4QdqLCLuQ>8u{je4V-4w0$)pdyHyVRRhFHZg<$htUI3)4TRI}oNH!mnJGq% zmYkw|1lsyZd*em&=L*856B2CZNVAxlf!fD!yD_)aTDh7fpsjrX1^r5n8(Jq@8LV|2 zB72H5pb3H8Kn0=}sga4^pY{D7jLIr% zzW(9sZpR`)o33d80iNp)V0$S>Q#?s0?9T3Wbh|Lm(9J}Tlgb}odqMey0V+={r9%*& z(SG2)uf>I?XKN1By3qIs6N`s@3K;+KB01!@nfOuvpd&=TE|!O{-P%jlUG%Dv3)s6j)dv~g6=lu??mB&XeoB7-Fqjs6eQRT+C=n4LT z+HUN8IU%nZH<#jmeZxxZ%jn>cHu&mam*|$m9uc7mYIX0dB>tWYolxylE{)_6@$&YeVS_|-K+!wS9d2zF5>e4C~ z?DsMJ%eHb_b5R;`d9&i;c4f}lU*5-N!|alRFHsTyGRY10c_Sd?E)J3dgJ!}Hl1!>w zg6u`VtOCzwy)XxpTUe4C;Qp^X+k#*-=x{JjYOGnaFe5`p!p_wYi#;p}dyB~o{MjZcFM*e$U^R`X5DHtx_7V*vMj`-R>F*MLh@$W(8 zoL5cIxxhO7!`gMPx%?2b`_G+-0)OA+#c%D72jM}azjso&BpeIs`Fro!F&k((&aVIA zhtz)yoZ|i9El>U7<1_g$H}C(QX^a2}|5wl_fQL}W?i?PkhR0$FwvEEiO!Pl9yAwkZ_nS8ZqKif)jAyXaBg1CnMCL|%B_oR zq)FDQ(#Nh+yRWi9F$6Bvjz1lECj`w14pQ z|1ep6-GA)Q|77*+DqCnPDgl4^)~EG(j|NoZkZuK>bJwjqz3o5smMMLS?oqA%VyOrz zOuiHS*Y}H>D+UTUXTKZTmSQ|g!6y31R#jE?p-}mnd*}I~CHG>^<-3vHqQQ)%wYL1L_?8*fipm(Jac`*-M zLE?Y-{IM~A_;wZaiME;;FvFh8xrbtGJ;L0p`VzM_$2yL@8Tzgm;iLJWI?7BR!&|1y zInM=s_s6~4^{w;|pAe_gnw9n}!`-~#_Qw&^AlKPUl1611-rAWzMP)H zjxKvRUkk{V`~^d6Tg#k(!;W`FqNalxl_J@jC38)E$YvTf3|)coLa>)8Ah`LK@{ zk}j5BJmh`P4^pNE!W%sNPsj7W;qaim0G;y_Xyp>`6#6F$NH48AQSV%)i@4It=>H5yM8Ce3@Y<;UBn${DyjS9_B&y?OE$<+0qt z2M-|eoxS~s&(j68B~usRq8l_Nq+AR3l^@WVlA_*J*QYuNSbx2!YJ6Sz7u4b(2O4@i zrLJ+fBqo9KOI&gXMMckD30b9a#Z>8_7_tb`VkaAUiCz|I&g^lD6Npx@oZb^~uo(#P4axW_-VvSD(l?LPu2de;W z|56kH-FK&QAuGh|c2Ke@@X72`N$jvZY>g>!8@*qZW%%9QGD4y9WJcNgKQ8TCDhg~TYE!MmTI_#YP!)4XplB?CmXOC;U{bCQ z@w7NDt>-vdrqR+Gf|EnBcny1FPnKeBxK_yC^e)2|Lb3uzQg8pMLCaB{qb>S!Rp?2* z9?Ea6LiB_^I#G_9;o}RgIWr&+QUYiGdHU*1Vt>smbRbts-0%QtIf=5&$q+n z1m-{lVjS0PTS-3_kHMI4(5pU|alEdxB%^aHdR)1>Ie+-vtMIiI5}>==j%Ir+FY&UK z%C8wd=2yv>vS2`_FwvkRfn42>TyOLNM3@by(r;pfCLRzGm^MS5^Q&(|tAAqzR`s-R zglBa5bH9v5-)JyO-LU1VQ1y5At#xw+Y+2=|bg!pIiY$lb9R5LFq41N{%)|JtrJSmb zAEiOp2VL}heGeUbwX&3d-oEHzao4WB(`g0cy~L6P>yAj{(z0ABz&nAeJ%xwNj)x4r zS)kG3(I625O&T>Qw;SnA$0kJNJ7;WZCF;Nr&ufqTX6udXN7GzBgH><9k~X!<(l1yN zeO4ugl^)+QPmNOAA(2ncQw|_CK0+yywvUZ0Kn*a_W>1OFQYM+R^o&?d=ZR6bP5Y6` z?l=W}!Xh<1+IKsULDPvuoBj8jkZGew1w2;D^)ZHT2Sqn);~75wIeVKo#w{N$Uz_fU ztRtUcVHtZ^@T;7(scunyjMf<)^d7D)6Z>4W;b8t;x9mS!M?;lUd;DaJ%=-3>*+jFSD+_$4+2YJ?$RJgIQ8u7~czyH<1 zO2?=206RDIKUxxoV}plp3C>|TV%RB*Go*c;SJk!t@xOZh<)HXaXWXhTHUr8b8enAP%tF|8xogT>EUq9KgBcH-GpZ zTk&)rc6_?opIZT-(EsizB)NqOX8ya!?&;9153-N%_}8J)|2+Q-zCShp&*J>w>;8Wh z2Z(6@zqA}d%I1kh&_es{A3jqeF0-iD=s__My&Y-;cp@y}=Q`HMjP^{14onVk4Ig~8 zjuK`k5mvx$;*3v3B){~S%5h&ql)dzCYwR(I27To8{^FuzgT0e(C9Cs*aEk2h)5q3a-HBb#kYh2qn7-t;Cou# z94M8LHz$itk9_DiYHDjqZ*CI_&y7rrD%%u43&egrc*c@%w@sv00{3?QD973{$=Km~ zij{`4lT-C&*H`j<=LYfr6lGl0rz-*YbTaBgTkr#PknNhur5(Tp!qq!Gv^QKimstFb z)RspkVu+EZzXGJrRJqr^AJCyK_P|cPIwhkd6okE$(AUdvLP1LCSylVvRy3FtHoS0WN=8 z01%`}g374<5q&7RGX&=6yXX4js!vJOlX#U&cU-r9|9wcg0%_BTq%@BfTj{@ZM}M0| z1JKf$wk6Yyq)cKGDTn{?-Cd>@O<8j4aGb~n*^{i$0;t~84~TTSp(TN_PiNbI3SW_V zqvWsX1x6Ml?@Wi%bUSayI!X=(;8G+w^5lTdq_jKuBa!NG$h6Cn-`Lz@M*W{~>0rh6 zL89LV+A9isS+W_e0%*@ew$+4w4yBbw@QPo0kim>9%UGgfF!F2{D#i|rJT zk?;>Y>Y9~(F(2qU_#|!_lfAd69=?N(JF=J&D*RQL`UZWMfi_QQ%2Ds-sxr4dS&~ga z8e&t7KLQ?`XCYoopK^xmUq0Wmk#*Ai`)hbw{EH|+gZ{UnQ}?jOux>%$_N#$9<7KeA z-g2;&zO-stCgtN*UX2$~uUM0ktp_3uwJb{^`38)jP?iBq4ZWAUAE2I^ieaLS)Zotx zHTXP-l#nl4hwZ7pcqhcf%3GP}3kr>KhUf&WEJ_P0)6a!Xs>9C)4#i5%?9WUtHw(&9Z6D*adFes;8wPg7Wu&6ER(lBNxwPS)gXLWb3+!4N?}iX16% z!;=K3-O_uH-O@}9Q3$k5RVzt;o4P>d=ROaiZ0&gMs6P28a8zwqC81hj>A01WaO_$Ds3;ZSv zb8fTFwbpcDi@^a7Hy1MNnyBf;{xF}%WqI+`(c`~D6~bRcA27MnrrymlW#_V*aR6=h z*dV3}M-{!n3ClxXW%>@q6F}0VkO=YIM2EId+jv~8S76oCq6`Fq^8wwL@uM!ou8G-g4g1=a|d{+gx!VZGWd0eI6aQ&LcYKodp{ zkyYS=oZXGBAiVA4T8)XZJ06g7lq$#Dt4H^>W;tVgba+l=-bL!3flmI6a)Y64^$lqgVd@rQ7?xP)4!vS{w8Qle?Del&Jkh{j0yopuu-f~=0X;y9Srx(!~$i(&LfA4!v zRFF~^aO*qh*B+-@1Q+wk)9?i@{@()JqW|ZpGyZQVih6*qFFmZt;b-0a%!h_kAKLC1 zX6^_B_2OSSw!j&R;VROY72JJ0l-Vfk_POndAw~{-!>DX~Bhp)!1KO5DMh&6%pzGC5 zPN8qxYLsv)TWbQJhM&=XT>y6ZRGsN$aiTcnX@?T}P@>nJKYWcfC;@asDlj|%yq`x- z!8um|%q`CQn>htxTAr2Hd{?(*C~PtLiN0 z1aOIJWXQtDiU@2mQ$HpgrFF6(YgTvOAu+r?P5k=N)HF+KPlnD^U???_As4cGT^~rn zU5_>;q{(A$K%n$)&Pln}vB;_AMeF+^3vbGOndNm4-n(_{6haa!O!xNihfc>I7Ikm~^Za%$UXAX)V92aGlm$CM^69~kl`PD|MaeHaSE;tkp6|@ez zKPPg9Bw`cqb6>hdqq$Z3c~N{(ZVDy05=OC(qGCmxF9_YkoNxN|GrGV)s02rVn5zvf zX!?>?OxAPBo`3kB7$V)D(l-`Q=Xz*0VL4#Q%K!Z93tKhD=w-v_uigWg+3ZWllQiBmUH`YPLMPFF%O? zjNF?($QmAN6Q3?oYt{WOkB{%u{Cd->?crJmDR3))jq#CkC8tWLOqX)Tcdk>`7Z)W{ zMsmNoeKnp#X+|?0wBl$&x^go9vZ@@Je0Kz?KEfgfh^zoBI#`x34RdC%jFoF@-tHy$ z?W@amBXyp_rv}PRucUSxYcb+jG}j@@ZO|UXkm*oxmLTm2r?Fmox%N2Sq8~pzQNxnR z5@U^c<=>aig4{{|K}>&QIrjM4S@9F?>;)*d6#Hvv+&%%OJZOjMvd!39Gbzcf)n}*f zeBgR8SEux!^Q5`wnVJbxSZM^ttiRTh1*OYF(g_oC!ibJW-kt&7Vy^3%WqLosDtKDk%$IE?VeKku|LnL_ zaPqHxR}?_B!wTCxLAMVK4xw}oI9RoI=m|`WfmhtpVo23fx2gok>L1_R&Nz%(<(I$N z>(B->XkvPeSqi*E*d^pYu-?uhYRZKx)+-1nQMaY6^l8Wk3--=AMy};8;;Nm7 zCZ*r#w$F`1fcpb+#UncE{I!pWt; zPoE@@#Kam^H!zez zo6dGHN#gmHPa5rGRx<||iQFR@TYtb?5`DJm(=FD#>CT z?=p+4*P>osWy><1KfmL2TX70Xct7B>j|)8gbCg+Q<7MvdSjU#$ zQ?7mU;&bCZ($_3gw+Fk4l?V%-fJ}K&v+!Y#V2hma867z(Pwpka>x#O>*sxCauZ?JI z3AGUSF$j(B^~w!Kf3-?mC`l|PEpI$I{W5iWX2!V!-l;4L#p7V2l>?xPv4J^&=@KMY zQLM+*Rfn8wha5|Lw^HIaMH_(Qn+T`#H=_@7pyr$hg|9=(ELtERY2%#i2^)pRM)!UL z-{y7&w{LwN+MP4`ink8!y?aemt+5ncZ&T|u3HmulJ`a@>SiH@|#7DnG?kbw&og@wD zc7|;`&zwI)ra|C^)p%vUC+5}`l$ZNMt|SlGEvFTq53#{zhN8n=;_3<)$^;R$RPARH!5IgO3uf@GF60AvmT-7A)NgKu_i*ew`L)2YJ{5%9=} zE$B7YC`0z=gy;&SiC$}|c6 z&}G#bYL2Nog?jPs;s1qx@;N zmCVG7htN=llzXe11SCgi)r&eiW!pp(f`UYOA_&8#zuR&=qjt1dv__oyOzR4aetbA3 zBsrjh?-$tmqg&f8Z;)2neQ$vyABy(Q>q|w{=}@^pW}WK@VK446maQwk%+zJ=EG2-+ zgIIM+VZ|CI6w{NbKItWZ8t0uNu@YMoxZ-(QO~!^(7ENDj`6se8Y?~_Pq@1%M-tRg? zjF%?iLBx=0!U`zk=v~3%@)h?=G0)_P!c8zZyNP-I@npB~Top*52t${KG8a7cY6o;r z7xdJc?R!N`#^8a+h7w0QNrS-;igjQQ0y85wCBg&?+l>aoeG*p=9e(cV7oZE}4hK_2$9^ur_E*9rii6(2 zNpUUul4|9leV{0X8WJ}_sd*`Wk(noHxj}(|oo{Yzv;q!A~NrSC+v&hp~t zda|S-nG(tVsDZHa(c|>4fqdu{OTnF2&%e}R-aLtcV!uou53EkBo%B;)sUe2;y4=0L zQSDQOtl7Le2dbx4xcE`=E?pFYZIkd(v+Zk017_iqkmGmyxcYQ0Ih#W2ygd+0naQ?= zg3^&TCT@9$==@psBIl{|<5%}v+$>&Q5ayh@`F&np#~V zUdn@(+nVv*9gfYmAJPU;Z=O$31Q4K$eWfU=06XLrjBA2Bt8ON**d{0+5iKZLmpJ=5 z-D#K-EK%|>8Ad{^N>Lkp00H&MHPnc#5o@DS_^~HHP=5q@U(LcbeBnCeA_`}lHA?0^ z<+qP~dcs(y|AkR-lVTswyZzuo@SU5@^8WP>qpxy#9hK`fURi@fL>JiQnB_YKvL6?^ zrzn#)gt723t!lvH{_rJAb&*&u><@rHP_<`angq3k=Fxcf-wyS;2$DmOic|#GFp2Ay z&vt0kxgS*;KBE)jaPrJ0CE(S*KHagI%MIwms2-CObwj$i6aKV)Tnl4L41B%r$~cXX z=RfG4@l&-1*4y>N>LDwx$nVX|qSsyRZg{qRn!jCixii=IJg!A}*WtTMe=o7yoG3q5O`|iARpu2#YfyDU zB}PO&q7<}L&%i(Al{wovxh>G1uB`&m=r!9)^N|v8fDi0@55jgOo09nOo_>o3B{J^EM`HY(A z*EKSW=`MZlbxFy=mEbsU`I}=2(jlw2M68d$e9p!_167q5u`Jj%EY-#YiV!EPVJkEl z#?C&wjy^I9Mx-{~h=q-gQz4i;Cv(0UF+^`RMryWVptCr zGW1zlx=l*X4-b@sdRXrg7C2Kj2LhmSd5%2CZPM8E>L6M4pvf6m3WAOTM=fCc*?P;E{?Ki{G*Y`v=lQ-tQ*K0q2TYj>Ue@}(C2$tqmv z?H**=IoIW*YNX~P8kOB9r_uGUJ{(^a5X!|)?4nuc-pb7Bw z_HnvlY;cgba^5+KBxnao;;q@Kcs(D1p6_WOXzwUZy#QTTrr%#6F}t|6dWuW4z=Lt}S@HLj%OiG-`rq+1`Nd!*l&va}-ge>!3RuOZPChQCMuCYOK@UEwQ(2{NrD{oBN(x z&?tRyE5FwWSqRwdzIy{2Jbk1o6P3oSnQBQ!KrapHVuffN&nZ{3tw=|~=*WnTUyX;t zF`D`}{e}K>m$Z)wU@J4+c2xUWPh!Fvc)fBMzj2ecsb<3yp6z?jE)d`B zV+ryEV5Ja%-^p0qE-}@Az7CjToa_mf=kt7yLp|>T)}FakSzex(+X#{AT&xOhP<`w^ z+X;agbs)Q?lqxEkRjZJJJH?tP8P0O6tntv{(j2j!Y$IWn61uVCrGDf{l*>)h({8V}PT7ttLAyTwiNO(J&@@6{=` zVe&DTe4Y~rtb#Uc`D?adle6aq&bfldsXFD_vkz|PA;MZ3?JEY#bUQtQKYXkGQb9O- zv+?{ZysdEhMa(@;=vi6}Pr!`+lVFJ1?ScI3N8c2nk(W%A*zBjZXz0fjCF38L?v$-N z+^MwK{WC@>>RHFkhfC7x;ZMX;T|96r)3c<->JU=T+}PpHk}@1T69NM3;a~)E7wx8< zmnsq{RCw|Pd5L3Nj>x)(2N?f4)W)ROlSM9!C1y4it})dITM`=HHc9C&nzei5{fUHL zdweJ6sL%u{92K_hhZ-dtvc}_rgdZVwALMhS8?mBBqLXFT%{_>M(h!KICc#FQj`03u ziHcMq)>?V|YSoyF4@6MzVB}N zJYIoMyblhBJcBKIt3{?vr*A-KWx==%Z3;Z~vn|a969`YEQpU?>H@wD9;o{e|IO=zc z;Vcqe?&%ut`H-wmLZkcP>QYW1Aaia=HLoDjJv3*=sZitIxg%d!!!vf>g!Bcds75>9 zu2rM-pew>!A!wkO;YkEKem3Lg5d78hDbvqXne{)O&P0lN%h)3P){rxLbD;;dS4Ckh1Z?QK5ab=q!CQZ2& zT+vBiCg@o(Lq>~WbKO{bOe3$RzdUn($;a-w_IH{N?veJAb(MDW>y(gFE>-UsQ9wz4 zp?q%qDZc;uv$??&xIJa#{S{q_N{xCyPfbsZRK;+meKsWYZQ<(mpg5hMez6rtu3Cv< zq|5JrTg*RVnU{y6JkszxhStfG;~p&7!U92D5?v1l`5WS%wNWb%$a)F`y3Vw)K>*3C~?RjW*%E-C#KeFQV2}vPcnkA zz#e@|gatTIXE#tTKQx=wkXc$v6dkt-Vn<%mR$4xB*5K&@pC?x0Vq2JI8t2TwMgwg) z#*#(l>h}?Zk2dPZ-e&1PlOJ5S9y7h>ahPqbK3C@1YFXn}*7W(MW?*w-&E}_r$}hfM zZnqCqqlwrcM|(Z1o}wbve~#y0P(7tz>f5pEJk;mG+m;IjkPuB21jQwyG|`Da0)ikl z{Lx5dR>{{Ixfr;P*O7Kz=}2`FO{h)zZEX6Dz<7j~Qn=gf%joKKn#h#|#T~D0D_%cJ zlM~L$Y5+-@v0;#@b#<_6sg={@Is@*}objvfTl!T+)plM-{$_uk)GeTy1tC~DE{J0W z@O8E^Tp1>Ph^`-(>dJDA(3pOqZ#QP77ur)$*M9RF#ry5|?<@s*hvV7Z>Bi8BAqK7l z>9A8~WXhZYPK=2ZvmiYc%FZ^LCo6t=+TI0W@A}x_$KP8b|7qlVSYf;ay4z=dqpRc=&$6=W zGk>K}^LdJ&sw?ZB?a{;ro!FQ6X4hVk1Ha^I3o;UiaiIWZa-RoWo*qOqD?pQ>2vY{d zkJrxoF|3EGC(3%U!;;xZzu6V;clhQ;;7m1~qw7CAq1p`J76uA6FW?5;JK|Q1^v=o7 z_t&IM4{ATCOV1!eNg*zwCd8*kmpUtq$gW0OmDv}H)g6lj;(~^)Gu{{mJ#2l0)Sh;^ z-ujyN4O=l71ISk*eca>kYcoyj<9yy&=C@)q_T>t2~@MRP6j?_!W*pLBLZ8u4X=VpC6oNw zNDF&Xf?ss5+UO*{mZ2=X_9nhJ z#PAs*smBLG{824B=cFsml!F_7&vy9Rf-LAv_6hWb9vP014|N zYIUQE147e-H0r)@Il3g%x=#->%2UKs=H=E9_~F{$^eCcQ*A>G8MAdjUa*I2@%sbeq zQe6fmfokSZ8qE>ZEtR2<^Ju2k@}n($gbsXC$XyyH+*pHtra&OD?tX?r!}EUD;$TJN zrZT;)k%3YWeT#<`rCFcl@9#Ixa^x6Kc0%bbF;fZIhTmBh(Q6}Pa@Xrb+bMSmq)3RS z;!5Lzkw|y&+lq8At!eplesoM6mg&5FTz_%rBWI)DM6w4CTZ;r8Mg-l!lVUb%{9fpK zTvi7ssD=lYm9<0W6pkx~(?!}I2<#N@JG7qXyY0#wh@ibN+BG3aIgHfjgim3P{`OQG zTrTI@z1JOmXj*s^lHjKl>K;nG|1vIpCokCGS;5ut_n(ZS6N1hYNflgi+_3sXwtZrD zX~Nr0xC&3w7}*;L3#;|g%WSi@UVsji3Vx2Z1x*=0 zoLM=b)A2N@$O0CkJZ0-&)hEJ=%CY2R`NZdH;T0=#6&xLSu=bPISJ!z%~Q*6)gd_scCIhZNArsd)8 zh9PZtXhdtQ^wjl4F&I9P9j+yEXCc!2)TOV}jo*ysG1ed#%W5t}zaOSh8 z%254paihiJX4Jw2@aDsgv@NQdeP2Fo$d+KFzr7cEfr)N0#K}UQwpO7|_WM0qxN(#V z6cw>iWjcDvZmk+)F(at9hky9|o+#bTRMnb}zSFtttdjhPZ!ewW#KhIhY7&^Z#~L9q zL$!wClfbR$qlgUqnqGxZZzZBMhy5a7^)4#kK87fL=O}mrT?1FsmDA=b?cj_&SbED> zI0ekYsd|<$^(p-WlbrDp5o3$Bulm%ZLlGXE>{XA<3R2u5Ua!4%DE>fpbcC@zN08M` zcZs9GD7)l@y%5s%|J+{AA@jd76{3+e11&Cbg@RFwcDW|$6|`{Mq~S=E$<);zyfakmXh3M#9hzlr%C@a~kWfQcrCG?C)Z+t9 zy@siZb;t*kwj+vDevIsGZH{$|i3xLGOib-AI_((OaH#fNv0LkH5p!SG-Pbm65V{GQ zfh=j&45SJ~zgDyaC)GR?ig~sb7Ht&H5^V80wB|p_B3yxjQAN&lz zPK?Klsh%ET*`|$dNdtvQ%e z>`l45d(>agnRaJDgesZLuwR;%IGx}AtX^ZvYd<=$n`&E+uCQ1n0_wCN6@nHgD+4w8 z;h=;pr|MqsoNxwA{*zNxny&B>*PYzyOs3ILLU8A^(KFxf`tP{Vaa=JkI#AQVy;L$k zSVa@4)ql_NqpLpSod`gQ4SIj6W9=CWD6&qO4<L*@8Lkh)Zj7uj)W6-?M!_FD*qJT!!%r^6y>_!zFJp(AH@+xd4yOV*?< z;4~US$4~z-vMxhBHVQB6MwiK`wx!D>jjC94389^^eZ-L*x>fqH>!Dxf#(DMth=6fV z_Al4oW8@*y0ZJoL;=N=n-rDv!)VbzxK78uzxMlFS^1(Kh*XPdJoKQa*3ekrvmrTE* zOcaCg62%jkBtW_krbN3daCJCAx2H}8lRAJZ`gHf`*uG|dY9Yowvg5H)I*u&7*kO9? z%~_rJT&r*l##52=7{pL4;VjdgioT*{t(ktN%%mbnF3{Dl_Dx}iL;upQ3{xvy_C2kK zpT82HYkJb5uF3X%1rW!bMtm5irVJ?ZBCfnzEGQxMjk&n>Zsdvgx&w02j-&WgZjbRe zjNRjiaze8v%Ik44~M$BCEUI;DzUEfv@~>aouV zia@`EpiTowC~#F$liB$qBC2D~M2uyTh=+Py7S&B_sk;+AVq;wRLL2T%!TY`BYp+jp zbGsTX3s8WZGg|Rv<@tz*zh%XLWOldI+)Xav*t=cnp5eTi>2q-+U=LSE59s<=d=zhl z4Ao~%?*i}ivJ-p&x^r;TTtk<7HYe`V=Sz`ZK`7|lIHPEzOD}39ddYGta+0zr#2f;e z(I}#CRk6~68z%=sKV)`2(*=01g-m9zrgIm)?V4O*ZB~bE<=FKcdphW~3@Pm@j{BEn z!>gfSQ)-MJLW&FRB*wX>!)U2XPv5vU*4({Y9}Z6xg34;PB@9Y zkL$%rWeKx~nHt!b5YR4!=-2&P@y=VA=fM~u4>M?S_PJ(>K}?9e_1d%X@8wCFQvcy8 ztpHC6Tw{1*zzyT1PI^USEBzX=5}3Un2#Xe=!vLTJ8|fq%ejsSb&ryb79$T7Czne7M zm9(j}|NO0$H}0VEN5K2lDqp=LH%|Ap5sLEO;`-d&NS|_dY8}T{TwE4dG-g3jlqeyM z_p%Q(0jP5O7m?@a#+tK@TfADb8i7zjCbRex*0bS`@zQQD*u}7@@Gy;mchNz!7VL2E zmFeAPjgJ}_tz1#cq*-^vw^{|DUC#4Y?z3E_Mn_x8g@bg_kKuRas;WL|M(6fzs> z9$dMYu;Y5b#DFu*#5KxE0gX7fZtP7u=C9Z2jA)V=ePa(M~={ zgOWo}pS)WaU&4L{WW(py6Bw%PRSqI|;j1h^D`bcAXz@KH@ZO@VhFY(6r%7kfW9a_E zz+Bgpn8CpjMs|L}znK3PFQjll&Avh{Pan`b??h=`JAL6x>|9lM@SWc8K}T3w`yREl z9k(Hg!e_f1p{Gq`QLW==`j^+1pGn0eO>?XZkwJa6L6bI8u7E8v5VCIaya7r|_;i1u zN@$w>uT2G~$e+9}MP=xEY6H)p7kNAA1NCQsd(`;*+-vDIWd(KpK{f@WMrXTDX4}Oj znTmb>;#{w;@Ym$y^X9n}QsvOBf2aOz$N9SD(80NE(fp}=qKj8>CXiYX`%`;IK=}JW zqJ;Kd-h-52J;%ic$JRQaal?=ysVfH9SR;=TPBcqHHS_dzOedu}yZw!PVzku={`uFt z`wK9O7863M>_-D8DnD_F!8CDbMo&OQ=1%}^6M93`Uo&zER(^eoB=B*|C&yA}AI)~y zKQxC9e)w21)QvXQz(tAI9qNM=*1)C#xz;!;#3-C{3;xW8nb3mT3q*Xqp9nC0KM@qC z+o4-qE%cz+`pm(h{}f@gH+(lzmvtCZGTcbdc5wZ1 zCPYZD(GIX=LKJF65V}zn`Jr}Up*Y_+w2~-)PA2PcCkY!?Y-h7jvW(6epg3=(`a;9O z(@=0PH3IVa7exSg(+4dYy%*^9pLu#p zD4SICVj|h2PAqJdz-2(AMn8^~mQ|dt8lz#SB6l{zmcydDRe&}^LP#|ZXhJRqCCTi5 z2E#|~nKUUfshqSvrMaXBaS5^r5vzFd?OIj}`}fh)A>XT8oGhao*+)2Dd7R3|n(3sc zALgjI=OH#;E`75VL+jGsv-3lDR_&~w1$`W?H*P3Rgr7%Ta%#GDYR}N`_Y0JDpdMIR zi+gb6&H{R&Xj7|N_V|PxN0q<9Hrl|89hjJp$Pp4S+}60>XPVU#G1iq(VCxqp`~Kd& zMP(8ctdlfz?571>3_=JMKbsO$)JyU1jxkV**bPS9SKxRzOJQEDHR}&)YOKRd8CYob zg_p~#AiU-uzR=A?(Cz;D8suCDy-`0J-;WlPNfQZ zf3ObG_(~M&5IGXnXeP3ecZ!0~+%yKtQo23X4-k)=LxcM~OPn@9D`D=k;>GBCJ>HS| zuyKG}sI`U{am^EMBs94z7rh{qc<|fnvtBPN8ThzBeNwL-e^Zzw{*t7VMNAo(7eSt6 zF4B$!Yl-V&Ngm9>jF8;943+Q)P{>1ex6y6=dv`h^@YRa+T?Y>B`71CzUaodCXN!_W zpmnwHERuHjDAoAarezXGscZ1+S**CpJ`l!4g9~DnXO(CsmT{zJX7v5=+t(s;vcjYa z22%Ncy9AlR)!I@ktb>(L_+ICK2D&Bul()-Ppd2%ir7q6AP632_F^iDEoHYKc++LB_S7=me|rX~|CKap)+9Q*FS%?+_<$Pe#y-A#+zUG? zC^@9^7v>4F96)IQRO0wf4g{(_$ac~@;tk56?>M$dHT^_UKf zEdd%Gy4%a+vdMB|5%-)|Dzt~t&+3k+d;$R!(+i@ci&RT04(tWoe?ak2i+Y&i&RZ;C|isR=qk+^5recZE5t*?I}yc?+3+ygO!9qKK;Ru42r zd#l6CHC56w!Ew`}ekqXbUuk1+hTp^)+lU#v!wYGcO-kK{P=?wFyjpovsZL}O*$0%@ zC@(+KS>~JPNi(lKL^xby-P?-Fh;1GiU{?%DiI*;)?YU>t7wlp~@K(%i4a_~3;&%CR zsZ-ymQ3w;=ND<+hP8z$o_mPLu6EHhMnTVH(E4evzu#$RQFK-`u^k!GqO>ORG%S3)~ z|BZDRxwvRHYI%IYV$6TdGAxwnhhA8sl#{BEn=E18K`7IZo|H0ZKzv3x2|WkhKW`{3 z7C;SSKM5GRyL#ivuaPnHK#iF%-m1xZoMbXxBh2LZP6|?V(l#-ME_Q^IzS`6QRnD#q zK&cIcs0(Rd*lR6c`T0wAO7D+~#$y_Av3nQg-=6d9{g8{=t|ct2j?)1&DkH4G(ppq! zwl?z&Sz56KAz}Nh8?5Mpf(3(GYr4=?L%|M)9@y<(Ij^NM!8b>*g0TO}3!Makyo_tb z7`pAEI1@+jW-lz5oFHw(V{6S|^pUd5jW_#s#>|D>$9vUJ;WPrvijpF&_Tf(-)muL1 zqj^m3>_()J*wPXWy+WKWDtwfdma$&RoswMfNS@v5UhJD33!A9JJu2)+$*aWpRd&=6 zSwM$?GQA;9{rS&hW!$$pVO?Q|PJcUwGr{r>K46-_z>Px*lN#n@wdeL{?8}!JR~>kV zujYM!JL=jI7MP)+K0NulvUJ1hOn#+r*LBq6+`^8GjDoV2@$rn`hNRVyI$jje&_}li z?E`plSst(39e<>+h#Lw02CU$sHxMok~WS(YLU0ES$76a#wd1<>XOJe9dy< zil$CVCfp1DHgaijEg@Udd4NzNWPOR{iOUVB$}lKs9G#ceDqYI0K6>-o^tkZ3c4dcO zvhJ`ADYY!v*fIbm&?`VT^R-|s9uOALDcc#|-6%C)2l+5(Xc8+hhf=5-()4Ctf4{#Z z*At9Lu&d}VEzga%l<=ymH@HdCakz>ho3A=s2vZ)ED>edorw!HtKHU;h60+_@XLA0gCXHEPYNbHjI50yC%2Eq9MV3UiVe?AAG8LR1cs}w8oEon zKSmq}ZkbhX_gZaOJXht4f+t9bK$>+mGi|U)oRD60OEW|RZBL=3g-B;blB#`3nUhP( zUmy$(AM1?d!nk*s_7vmX8rmLIJNXDRtRCpACoxZ5ZZ_bL|5XcvAkFTFoF)WU@7GV7 zvC{7Q@YILzn;Z3fYNTOc(43gP)#=k^eKk=IkrbDH+0XYQb??^bMvnAuZDCcAfJXAf z8DZOmu1qSLK<@#MHHHB12U+e}rvB=hx&Qb^JT zl{;j&u!uE4N#47}xkfvf&xHC%EM_7z>73W|4}o8zk0jbT*}bvND|AroYu)H&2o;#D&(+c$!Qq-M$RFGB32>9$YIVb=8%w_CUclg$YE?` zR%YMl^L?)0b6w9Lzw5Gp=lXp1e!mX)>%Q;Tft#Na4tCQIZ`90VGnut^E-urMSs>jl zyWQHmqFfki&ihNJyRr6-0T~iK${xxPHuP8Vk~$~w~qj`rmTsH0O&_f#J6|% zz7z9)XI-39E||V?D&_!F^hI}+R<{u$JVqi1>ddL{Lxwr4@72pe765*Q>njmJT~Hf~eBx!QuNfCDm_%U z$9@JM$$lEhzQ8VwTYYfy;+Jmg2({U`&y~WF-)0Ud$g>E9-8MX@bp1od?J{m0<%x$Ks8^&rwW3W-oly62*%LHUD5TP62eYe7y62|UdIS1GJUZacY_0!+kutW$828n@4Z%s1o9ENz; zJxiBOPQ`USnemQPr|788jXn5;y6ndYmn(6Rksa#Sa93NXn5HL|ieol8hqyj$6)3AV zi~uk%Yk4wA<&+GD5JYYz%S0)bdQ0Y1hEo(%SCH{UGUsw}(8C)K54=xXt+i|RTOXMZ zpIjdwzgPy~5eE_(MLlV?4!T@3321S3fK{E}{I=2bDW>?cKo_o)23rmKoM) zi#aDK<&3^he3|Ze9aSGJVPmR!P{QWQ|N8OAfk`sb>GAeTZdUADNQ~RTunL(YZ$xfw=z9_vr1)C>7ss;~!7_xfrO8m1_ zIotMA#Gb+NrK!8NYE1sA`DSFiqr@{|6+bhP@zzrSZRk`+SN8yuzn!2yoQF}c-JN$+ z!&13YpS9Os!p(R(J zpw3ePrj&6_(ZKk+?Vh2|hUpJ<_p%A=6P6lt=6iVAfB#sKjU%S;Id35#C2MmyI z2U*SCk&@qk6Kuip(v|eOX8z#VPe4upX8uxan&jjLe2i#j4x&`D6;?vtblkGZdu`g& zICRs5*%(+y3nHl-?=MP?gUr6ev8)>Z-QzQ$MeE4l&(ioVRR;-+MxN6|?L zOjbR6PrWAn>2$=- zL+nE$_aJ-Grh!!-lifoTHbT4830h=wlXWGd&s$wXJrJ3lZ=p_+>*GWjn}wdZDseFD z_`V7u`A>IpFijULO=q-;Z9b&$e=cmQba`Hm!B)!2IlQN)|MoS27?y=OAbUZDp4+?;lS3Y|{0`0%2sS8m>JO+)1~ zjwE~)OM6D5+~Q5FM$@pG==99LaYo-8>=ZFfK!~B zpz&^^+AEt&y<+w69x0?gJ!G|%MVbw2ed%_Di=G7wbQPNiNxt{a2i1;H#x$NopH#&c zxW0EkaOjF=3t3@x^)9xL4zOo{lYs@ZZ7vug83dKvEQfJ2FcM^tJ99wMThF8)@aJq& z7XF3@>4WbVpP7W~zYZYY(`GpLdR7!OKwY@hCKz*mmKK)-Nih+|b;!*{fbOu3Yo@R! zqkg(VYQ`pu(C03%$Ke)5>Gq?L@pv2iF1&K|J@MeCtmSVs#!V+zli}vI?sw}YAuTwT z0QGE-WE?r>MA&S2^S6M19(WdaDHWPKIl_ zhv`L2(Q1*hh;qk^LlLqOjfd zHavYhN~M+6T^d06H7@4uNYKc@1)R=WSes6Ks5<{5JKg>?U=M4#&;XR=A)M^dNJE|_ zcd!`Y0;nxOB0Q*9k&nis#hRvcN`we>)XLRdbE-N4>|uMv%)!AS`|$&Bo(b^eSv+xW zR#Rsa?m2b1$8@N|$n0-QRe`UpNgl2U{sva!?CRPsAx%k}w}Sa@bRS4d|B)snc$uIJ zkJz@vt_`o_E|S!9M@+$)FDo~0t`l2Qih*{#%Bh`n08{2L9*B5GI$E2Ic56=jcaPoZ zg%+?oI;do->q));fKKW0P$jFEmYF}&l}sOp>_L`Pb2Vpo^>-kvd>MBQftflh?&YkD1UJqqFGWqcW~M? zRBzZVXL3zXH}!|gtXF)b{Po!#;H3g6>w1eas-(C4`un>Wb6B=@BIk;uRZ+e7^9K(P zM4xi)6wh#ju`Bt4(VpyPP8JKFxQ3(K{E7se4Br*bz^@i!byGy7?!uRzXHb_03B<|s zKav{Wy&%iyVAC$#kF~;k?7kx*0h2a>uD+zl*C0_ywYsAXIX%$tJi}57Y6Mw+=z$3pJoLisFHfO2C zwVlVF=K2HNF>=n?dO&5m(=pEBpJA7e=VTT5sMp~ozZDdJDMr0?vlDXO-Yq&QV0MLe zoy6>ARnXc2eV+thJ!;UDZH+HkuG4pN4AEQ8YQjFWnyA>{E&TEGp$Xy7smRRho1bj4 zLB=nGg5kJO*RUmZ9y8)XYV6645vPrsn%`rn`EWUE+-f^(#Bo#y-dq`%f2gsEHB%f! z@DaCqOKr(<*d2|9=QamxE~qX5@#+TIQ0z{6fXmEDt|1*HVEMK!jgC0xgQBA@|BjF> z|NZ5jfpNwkI1^P@vT+}M=4AIPyPrL28_z?97kQE*v)^9Rt&Cl^o!Nf5y9I>exJSPy z*Y_bQO#{=staLZiqhXJ-tT6mXq83A19gem!qObWb^F2Jt>~<4X?i_2SLqX^}4?brI zOK_8+=rZ-~YglW9lm2(_xL)<)s9twoecC^$b!((odP4RD#S>v-lw&osKHm3wC30%K znYvB7jn05AFRSnJn$@X8e&Mh#(1bP}(Ib3j6S&A^NE{#hX;fF2Qb8b+j!i5dpQ4ou zJ*xLh?`|(Xex_6DR73K$Melt8H(h{hXz`zuzu~p-It0V(Lpn);HJ?UmcRcEd)lVhP zn@U*hJ9GY@eIAF41SY7%gTGZF+?|9M{6mC9DxB&d`X`^jf*Nr>A za=hkXQB$=4nX&=ZJ5dWzzDu^~5{P93dPZH3GBRa^yCM-8WCb})L57Qo_}DmfY{q$@ zMYU)u*GB5&#z6cW{Lq^(gD0+Zjp&Rl_^gLx0mNBuI;1U6FzIe-k5~PNq_v??g-O#; zbUSTQpHAz+NjU#(( zVEarLa|j^v926yi>S0}#2QhIBQaj=(21gGrR7`4zy`7rj&UG4udFwS5ZU@h}eURtq zjQC6C>Df;F)93N@>{>yY3!FfMA>e^)015S1`Fvy+^ei9xdvkTL*1Pf?dyv`6BGCt4 z;qBR1L`|L|8Q#ei_@FSq3w{-1)S>ssI~OedRDx0ti)&j?h<49gUltL^wcE7;8Y{CQ z4We*(m*!neto+SzV^t&JN-F|tq%Z;etm%n!?iUx3iHc{I1X{gi>O}kFf^~Q{oH`S7 zw{JbAtk3o74oMnM58tJPFds$;n_|~lNd6IHIyi+yo> zHNz*YT=t))pnU

gk#inp(HK)U^AQZW?`2vZ(@6Q@dH42nI1n>>-EK#C=7%6@7PW zSkpg|^l57=Az`zP6Ax?a8rt9iK0@Czy5>VO&ZQ-oUReIBlB1UavnZVWm64bpLY*RL zZnSyI`Ep!C<|oHt2)n6sl~QapPePjRMP3)>0`{&_1P1t+D@Md@)X4OsUL{@qL5E=N ziZK3BQ%w%iA%%ab<;%95UheJ#g^;5g(m2)~kqJ&W^{)^1eua_&B2)c0o)wGCeS|uD zVNle zhPVO6SWGItc}4bRz6$cys)x6Z{I!Vl!)q2MLz0Dm)2}?b*Mtdfngoet25qw)CPZpQ?VPOTK85d~QNVZ(RMn#LMF!^e4xFKG_x=J#&IPrcdqz07zd= z;2b&Eu$Zg<+yMKmZn8~FlnhhdtJNw137n&zc|m1_Zo-YJ<*(->7rS;>{yd>>GyOap zRf~~9W1+<#@Wv+I+c(wbQ~#l{98&=>MXK$nZ@wl)2QSBUzQDU*!ZjJZg%en*cS#`{ z6Q@TtcT-01s1J-1gbOqJj*41P-g!FLy?T?9$^gs&AhU=LoUrqXEbTd%G2&Odmyz&+ z$fA^m>EvC?cF5;leY6OhR(jHz5PT*iOZAL{mf|UF=fDz_!K8^p3t76Zq%$#98uA*fR~{-Ey9Y)k22zVzrS@$yzemeg=tzlJTu zV0g`3FUmCj{nWr=t$&mcXXXzU@m<%6<+*K?Tab#K)pBBUnDSUN$i>DDEzqr&8b#XM zqFcecKdR%Z;@X;hYk13i_`;e(x3TqKhTI(#{fcMC{f7KY(N#T$lMfdCR64PIIJrn9{W-V0(qx>HxDk$@45t%|yGtTLZB-vrMJ;t4t3Rm{{R14rB zuWr`0mh)`|8cPWmtPnd_v05bUbgAL#!^G=itJ(9Y-r7uBHeSZg~0NfLKu@2!O$#|!?u#}j`Tso1GrcKBI$S6~2g z_x(sb?9FX>`sqW6t$RfKjHFr;L5`OZnZS9FWP5jL64p)G`IFh|6c|pBWEdcL5>E6( zt+-h^D5SF~_FXtzpNab+RhKV6y4aAh8bC&4G#*$z;h0gK=PbLv$9IJM$vxob1OO3C zJZqivdUQ(;b_lT5dHXl08c|;F1{w`qiLf1-7}8ih+Zc6eo%!lrCnx!W`4jmcfm4-5 ze|@;k;MQL)c4w5_&JaUXpurlJudU#J!kO+#(If=Ru~|j zBy3inEVN<~1UcEV6#DiDx5%%SAY?mM{&pDbk!2WRhRlVB-j5o}mligvsOs5R_ngUX zZYELZKG*%bM_z;+j}B^ubzQuG3Tr~d1*x0EhWgWVhKja$$BpwcYOPvr7rZAj=T3>9 zk;*MY045{!uHg@lBHD4iegxb2B9j)tXcRRgf#&9%i z^UA1BAIf@YI!$BsVN=w(O6KbqjBv*+@atnd1E~xk(G7l#{D!LrIMtwEFYdS^6@*xI z1%w}DYzk+10F6>AsXnizdF`u~%_t`0UVTP%fT+B>UW^WEb z71poh0vn$kd}dRRaZ?t%C>$4+L>;ENV|8wqM{xaU9M4yG zbSBXq`YC*sJLMX#zn7%CU}>>9EiUtb?(yJ9s&6cKmh_H??;G?py|_tIf|Rx${mszzrzYyu=y11Ur8dOsA_ zLQ(`>6>gl5^BvR)y*x4k>k0t3`ZgB_eJGg6P9-BNXIJ@)1*>EA#+<}I?wtPym~Xg< zxxwd^MxqSpHGoR{&x{tp4$)bG8;jpgwQho{*|a2_+CdgjbJwfjMV(m;e+`P(;VeCu zU%DXfxy5HK;GO%tt6T?$Fa*xp%_fr$PjKsRv!QF5CFX_ZM@f%DJL}bb)gJ)+T^ybP zREUa=PEt#KnrQ=3wWl1RwzcpRfvrVEc5bSv1|oCk{T}kI0)B<5_2axMCj~wuh?3vR z0K>#xT$0b{z4aqI7v)mJjkpP1@7b@b*%g*@BB{H{w4 z&6Wox5suABd5wj@J++$JCB}k#@{x4(kFx*PuxWGN?Iwd5v1#o6v!E`B_?;yev(|F1 zT)V*qwr?aT(QaX8Y4b8gBbWK%;Ol#vXP(L2JDnCSpZS#;G&T`R`jV*}iZGSa+fj+Y z9g3JU#Y(eD{3D@^Ruww#A0u2Lrjo8ghQ!jOT5!8D^hyctwnZZnjuO;Kn#>%nuptVa zl3iOK+&(fW_2X=ObxoV}*dxGFAD2Lq#iH-ef@9rOxK1IZ-h9bno(%&WuWxX0rr@ow zV2NBzO)7Nc?Wj%OL%7dFt-7~;Vu$|`e{FRm_vUz*3lNF?O#QaA23%bRnhi63f+;`; z+8at_dJav{ris5z@PPDBtZ6h-bR@eIUDQ{p+@#LS@wJpMtl1ljNx$|jzURgBeka2a z6MgxcmeY3?QriD#FtP_2j{Gm5P-$ijd-Kk2ZsbuP{+aL0+R3s>k`y=KYG7OP%;`e~ z1m`=}pB3NDRNcLN{f)p8i+e{hirSIqdYY{ks8(#RiXp^hK8;ogEw>5E)SoZO)gIMh{^8H9<)tAmAt7EheQ4Zgkby2 zTzC>}Qd}Tfmit5wdfnDUjipx>@Q4%8qh@a0S~KOdZrrkx8*{T2j_e>&Jg$`ttYzE{h?jdBNl7Z+lhS7Jo zQhV|q3>!A%gt_|mQ4wb;b649)R&b2z*3a>5R1o@r<$TZU12IzjRtqBpff-V}8DH!d zV!sY7;fXK*Y!gePsopxLD>YiT?3Yd#F*s$OxL3HK?#=1IpcgZTubucQoSYorRtj`z z!yAYlWTaJqPkYx_@M@dW$_ISv;JY<@r>-^w;L6tQ*5Bsl6=Gl=fAiYPSR)KrtdYca z4khN}*}O8BWhbg>YgcE0(eWGAAD6Y_3!Dozs=6NUC!b&Zg`moDNG#B5vq=V;u>#zx z>#kM_<$=?H+9^9;S1umaK?LLr9wW2){s-JV?k}8Eynf;SE9u)lDymP+9le59$D9D= z#!q{aD!3~UNOUX^fDg0mK~Hf9e;XRxxv+ck3TH4uM)2Kt1;41VL@%GhFLJ%DjXB>0 z3+iGYqB8z<20Z@n}5PbR z$P>V#m>Ac8_Z-awe!Y$)elJi*gz%5!R(nkbNOEoCyJho#BGGx9q0M!33xltBz7GGp zC)$DZ^C`~>0MDaF{_h@$vT6}1)KjmDb6sx zRdz1LIjMszepAEtL$PYl#5c#5f?nly4f{ED6@f@g^VhV6b*^&is#nO4Xk=d+25k?_ z5$kpH%ur~%SkELH#I zkJ0+2u7?xJk4EIw#>yu%CWDJS=K~2p2~(Sp2?!@NoAZe4Y?2yLAtH|aOQ|Zsq`Ho! zw?8^V8UUUJOwPZ2iNwP4&f&9Tg`!TQ}FJP;v_Fyb!qj~LP`_w(E+MwhVi z?EUuNjlh+6Fz`+jt*Y7@l+e{NwBs~^c~;~}eF|*y0@>CDB4nsB@WdkN6Ge&j%^(KPfxDDdTGNwBlI4+UwxM-fBbWDpO8-Hu0Rvu0_OJb#V z_Cca@7;F3vGP6&8?9Kb#gGK#SG>ftYXhLHxv=j1 z^MIX&q$yp_Rp9Cl*+ZG$@wOpLgv=Yat?ERL^MQ^$>-g~P;<-?`AY zV>`U_XpGjQRLsjmxBSpS#(!f}F zFy5syiT5~5RzC)%)8NOfb(KRjR67?U%aRQ5r72Ey2)ufj`Q~`FsN%6Qh6qn`5|Dtl zB4+oB zMg)JlY7$~_Dse-E8|{1IG$K6!X>BZJSUhN*crR zbo9W+$p;xi9S~V&>mKgO5x(`v+86~zhKlN&8wz`3+f<`D5 zT@tfY*e2G#7DWVHJhJ1{H(|fs)?pjzm;qbFgiq2;)g}txH_jG_5WT^Wkm;S5t@Z<|H9R7Guw;#1HkX1Kg;DEWJ@zd5{;Y+mU9;H z#TdtL-yZ7y4RA@qYgv`$VhS!bo4Ky-U-hu{@Se+f%1Y%)0)f7w^_}YqwJv6kCcrgr z5e{L4%-B-(#qb_ahO5{}?~Z9#x&K|uClz?_=xwKqWJN*ykDo4=+86aV)qAuWe<>RK z9Tl;T%8O&38P^H4+{DiHuW$J00x=rlZr6>khIETa0QUoO9MyIK3mN9CVbC|nj4qoL zfyjNOfpSc(zi{WT!p2(xIw6{UUi&Z59(kPlA}ij2`s2je+D+S9{|6#Kq{ZM5ZB>Gn zo3cA$v9dUFZn6XxJR08hr7y$iAv=bHtu*V{F;`!dSos6G^#v8+7dW@KPPy8 z?6{5<$TL88L9CP_GY}_1Lfmwr2s9ZmLpolU7J?JH?(an~F3Ida$Qo|E!_>$eQbPKJ zopt~UY`fJO5xD>QF_CAyXLPkzK*xEW^axP5_EMH3^+4(eU)h&0mOdAjT~0SP899Tl zdG)4a*~=$$)ZTYP*-^Ij!uHD9+~r{o*egh~DY?B1FrHJZ!=u1UIG+fI+z@Vgs1x%# z%di{48oJ2SW1X#>Q%9JyD?0}TF{DmeJKlxSVX_suc)BvqYKY5=26;B+0Zeqfp0*SWh5-^Bvx4qx75THk0uFIEY z>*nWY*VQ|Pgf;c~FFFrAPQQ=_pFAo!bvpTF`4ho|H*o$3FF}HjNv(vMS*iwyjX_&; zh-=$LQh>N(8#_+A!N_oPv8_gk)l7KT1>q-D7+|2nm1$GPNHbKTYQv2Y9aQ}oVxEc{ z3reZHz*-vDuMtG8ogP!a0Y23hMD99gn;1Hed^1j(%?y)%-qYi1=)!g^4xrWj&=7+J(Wx~}eI zw~MT-nhLiS%K8HnvTjk=bBnow))d&;(@(lRrPfxx>Ne_`uT;_^fs&EsM9_BH&A@^P z*assm{`6f36A7S%B9qwGghH1|AHHgRP2zNrTGAy#p;q+CaZ&!76~?IjOv@RIiM!M1 zZoVmyMcOY-R#e#}Lvosc671FBYx`#(cC0AF0gLsBDsU#V=v(fr2v3a27g+|0_<1yQ zRo`3Af~ATRPXHEsw)w}Pn2NL#pCZ2@@S;=puHk@K$?Z1ysZ^21Al_ae*vyPait`+R zi9PQ!TcMk}er=TJqq{N9^_Y??gNQD(eN!b4xRyjQrs>I2K2qLOerNZ-5V*f1ifcDF z0r6){j<8LLbSLCNRz%13k5~0-3YOchSsu>0jNLuY*%s3zCH=M^;!sPT_% z%}%BsHfI=H0ScBbgb3Hm{<~aP8)%FuCu{@Xwipsh9{v8$&1*tXisStBae!Ph%ly=WhF{^RKugq{qeqwJ2y^U8&-O7Hb5D< zf?!z>${^2-cdfJa$;ERQ6bzGk%w2H;H?c;ZsTLV#R;I(TZ&i*9smf(whh-9;?D&hV zMvjtL4y0I8wNcJ8ATvT3=rw!N<2{iBU?@OIP)iao(QR=Giwz<+1%%>Cu$%VikTXVzu?3P;^G9h+CAcL>6!gtDZ&5TZuP43Yg@f1Ot?$F~*siMjd=Ern9HLVfEuG-V#3L8m$Pp)uu@aET&2l>E3)a8VqD7CZ@snZ0#2mFiCN-n zmwEKbjL?U&7V4g{+JU)0U8^4rj*@08a6&Db>`jI_c_32V$#jf=!rLV-eoNI6=q1LU zaU7wCU&qwp!vjLmibC-@mnzknKVRy9DR=niYmB+=`SQpS*tabOnjS&9F3a=gdA&H( z@UUx}q`uc*!8I*`27?pQ9AJytYNz@IyE|OxLX5SL6*0GiCekL?MVD6ypLiHE*Cx7K zv22>@o?`JsP_K94&?yNS0L$e#apPDuoFZ-vXZ5Ph-txt}_*SkKzvKXx|L(@Md88N(; z9azTz;IVBi-e~~lK*;NHBv!(&Z3MN(r+W7-Jfd#V0}#h~-A`HA#13uiVaM78BWKX8 zO}?NVD{0QDlgJhU_E?DhG67m7l(vC|I(**YPN1BnEyYM6#cREu=+OfQPBI#9{pZlhQ zmc{;@my%v}E9|WNn*&AFmXp^OuZ?+K4+)W8px(ym6-h>{E04XWt%d_nwMl`vughbu z{kzASy^ve(Bdbq_iqjWryaMPwDT{UnR&Khj^DQeObw9M-EZbBPvCmwq!Aeu?fA{dj z`}pE`t}}`4w42SB((g((?>n9mSu;xt1{Q`f{?1wz-NG-!p;qR1RjLwZdh>~*l2+28opbBnr z&&QcAwv5T;AIW7v0OnRLILWWYi?ze>XIUq+$Yj3eXss&*Htctn^rl} z;WdZ5|7`d7*XVqhB3}2PqVVM13gSdXeQHe++P+v4HPhVpMEB&PZ13_GjABjLz5FhG zm4J?2h}h3HnGG7pAl7zDP(qNtgK>8!G>iAL zNA@PC@8WPf@`7e=A?*w^!)xyxo_j98bPiaxIXfQPBKa0GXTb`IH&OC+lNvRGMtqpS zxnn*W%Bwl)>v8%$0o`rciUnKgMf<{^V-G^zr=SLefCpgWV&wYGoIq5Q>SVE6Yqq9l z@|>)d*ZbdL5tLGrgEI2h9TtrzmH}nyGplgy5Gd%dE}GeD-Q(PfmcVKyIkNR~gV0{W z1@d5L_!p0wqyiFP@&4A__(#O(Hw9aPl}`(leTP;rN=)AlI=n7#)~dWBHCP zcFC#ESw7{#j`3HeWqYwZ?kPlcC$3KSC4?vplojf79W&=BThl70aqzJ%I6PTHP598v z9CM%G*+j;MVXs5ZbaoK2_KVC*?fnhlL3|aMCpl+LA$hC|AVDW|2Iak7nt11d>l+in zNVYR4Mv=R2J9qgtz2w}Uw0I~ClqU@Ry6Aqff{tpluiXwpDwg1cbHr&wC48mUW;1l< zUW^shYSp)G$+uMk)aw(0qHwSC1&zICNzWp6S;YF}HJ}N6R>O$RW$&9=MxBN*Y}|{N zgPkZ%I^NY9_mkCSm0zT#8sqPGj}YbtxhiH=A9>zwz=jHJ#D^t=-z0Hnnu zvm_bfbWvlp%|BeTO}LFv`dU>f(oDmsep1zv23z$qX#X=|78w>k%XGe=CasnKjPR|evmXz6a*cTV=!aWaIB~iD7OH~uy`=;#dVU%zdS7G zEUr^RoeCM+eSf&9A>$F+?_`IVBKWI9E4l~7vZirwz2&~dvtC8y@})qXIAQFSLC*ig z5ZwPCL$Lo7L%w1G=q@S>iKvYOxHM$5A*}vfXj`(DzD4YY9r!_8>JYiH$$w<4<@)=8qq2W(;U5nr1tcULMV=dxGZABtD5uR<8dz zH1$!n)b4p;Fn|$Gmz^l&{TX#@`W@CRgBK^wrUqbP+(4{hDYxdc>{fm>Tg{%EL=T6E zV~t$Vx8j%W5LO}XAE{PY@!PQ9f3T%z^it(a#j#!1>oU8o5YNFA*i&2^20o5-bWIPF z!61?QaQhKl_-ERF-Ag>pV48PpA{B15_bQ$Nzwt>x>G%n7 zcWXJw9{F!K1kqKl)29M^d1R5I3#(cVlPWxfM+YE<2PVnLl0JX$H07y~gXjnKneQx* zdauT)xpRtu*G=H*?xy`5x9ep2{uv@pf{$KTbMpy9<(HP;y_0v9z-S%?s}l+?QXi$8 zH)KilS9K>Vl`9fn7Bh>$^>RGCJ`tC+5bWE#R`4!;-k!nls~><*R1W#(wAC$){`_6Z zRifn4ag)*xTtYFf13#ME=|l-5Y;y7Rmo7aCfz2fs-q!>G>mNdoX8BiN6@P~D+W4te z{l>Bu=}ltYoCe(mh_W?wTq@SAO`99RBDX_W$z4Tfb2tLFqsf&&NW{D@G84mmUUu}p zWz1rzQTKg?L5rH*MxG*p-}#+~8NS~zhCQv9-t_sIZsMtNwS3> zuVB8)@}#8tB1jB3`__>p2boRBiSrGyXWN>G)@n(DnAmlT#s(>;YM<@DVRt*>n#Nsu z9px;s%99z_&oEEtxm33gF9a4qdBKV3ipjr(zr={KuOI&?Uh2i_p~3=`w_PV|>f!P| zU62WtPMQqPU0sC^q@7dOOE4p**%qUx+1MN@#U@~gyAnQ$%uSMPkR$h^KyMOs!nZ9y zb-j@8G5SyKSi{~x9^n`2+;)rOiJDOk`;QlxX zmD#XkRW~84=X5aX`rF8<{L8gtCIT3%PHMReEcrr9BwvaffAE=Rd&Q5`W4_dwig$-S z(HcVUQ0T`;Z=9I9{8nZAiF&XUh~-py5EM(Te6EYw%d=x`$7Zy<#C3v?(UxT+QU>L` zDVl{fuzOW*7Hm?sdULscA5u-dL;j6r_2X)kt$o(grAqeYt6*chb$PqCB74V7a}_|3 z8t8>nD=8job8I?M2Vz+eRIct;5K|Lg^s#C>(=a(}gMcW{=ss&k-m8mJfBZ+6r{WTo z;d+G=WiguqB^+p1_Hll!^g|z@U(mQJq+}BT!2BhMAtKIm9BJ_^#HzA@p7W`Z;fG1g z4Ieu>nV%!n%N4~tci$s3p(Z-PDVGYcrFY(+uKzR64E-RDvY7Z$Cfav#i- z0XQPMu)!R!=q<2(GOn916?bKH%Sy;FD{)QKqb^HKi8BB8kK0%Er2xOL8|VuX?lL7M zE0GS{#J)c1IR#&d@1yQC5I=F z>XO-tWZZFJLo{gzvZJ^I+7;h@ylDgs-?m5^gS8Po6PpW|9ll_1*)l|$xDFII+^6pE zFjQQ;CT9Cat_^F>*CjZg#!5APJLnbQmwnr~|H+l=FAA66dW67QM4!FP;0tN9@*&iM zTUyi3aEk(Aq+n!4lVBdAoH&3$m=ei0qN2bm0I zLgxgOI$~YeD78^PZP>Hs2MyIn$p}rQHdiCklj`~VZ-T#Rwhh#;Km;MPd1^pu2#LYk zeB`zgr>(4qu};WJ<}m+D&h&abdUd^`;>E-ud)BA6p8`d))OuE%FKe79 zb^SJXgzZHC$h*jeG1ld{iaiSAY`rQSic^@7n=&T@hw>OQ)%IOND%mvmE*PPeo+KqX zMmgDN-YO-!z4RJJzebej;oT~h+Bj&q=C{ZWYtYx6k@q*B>}0q4C2|}cjm7DUJn@1% zEUzS?h$LGwD;&EIA#M+ zmE#|Ns^5c%tHJoefFihIq++e*et?pK66?%L9W}6tQ}Q>;?Z>t8s-n6AZzXSA=Ci^A zlhOFbiaySNqmQCxk_=y%cNihg(_k~>QrmPfF6iT^p$EgsF)@UuA4voYot$U+t`+Dx z%uwHyq?uz}3X1iqEHl!G>1fcOD(|o>qrbg19*(t5eq27Q zQXk(KJM*Kp^<7$O)`HNJveU93Gcs4qor2Vf&AB&$mD4_k>LWwgbACC`8bK2yeK*Eu zOI_B>5e{ct3p#NuYY|}njEL96v0jHFSb4l_te#XLVtB0Wh;X!ikyjfwWB=V_xTCo1 z)mOs=`E#(lAxy;`4NN^lx;s?}YrzeeBglQ`>#`P-O1P+>6rK+M)JUby&V>5I7ZLe} z&E}TF$V)Ox;*#xYF8WhP+8JPAze^MrQivJ;?Za1Yi~h{N_?;&nh$75F9<_{(-$FXy zo7RfnBTJ~`L_F8)efCIW{RqpPCson+nN(v8h|eOmxFAQCaX;-iG4+7Aqn&TqvHTpe z3j$$QqM@OSuD-5x-1$?!Rqm@Zp=r+!-DV&9_FPfcCa`?2db#{%@wSHJ`cIX!zr$Px z>)6jswxtjH4Z42o#sSGUx0t8GO_<$P?9R?=LZ_IBECE%~+njYMJU3~tukOVlnIpZj z{TuQYRSAyDhZJM?{$suP8DG_tXd;1q$Ohs~9M=DBC7BdIuDR@{%33I zf}dsGgF?OHS_aiwiRRBUmE}icjftY!TF*x|VU^?)wAMfOB_n=EOi$6h&h?@LcQqzm z3Bl8Klhr2R-4xvHODbvAoPPa1SFV#J&~gc7mgkOUK!xZBD{>it@}Afh>w_Y~=@>S` z(zqPGzrXJLr*xQ+@SM+I7^j$f8Yq@DcXYVG*nq~tbHF?m6HwcCQmx4V2VWKOK_G5m zqyFq}^Je{%#S>pvT$z&glf`z_>*nFS@!89ky)KCHEk3%;sAm?j%KUfF5pxEtD^(P5 z*pi3wr9$EfysI34uX)_VKL!pd_<6sX8NbM`1;38Dfyr9tRHQri>W&cb@`*~IT2D&J z%w^U#nUtvMt02pYNGUCX79xHH*MF^-?OK%z@mKn^TWs%@c4J7GF#+;1w~btWp9!As zxLEuiYPBdgxrUn`O^Otqce~k(CUul!)8<6DD$>vSnq03g*|<~_Rd0j(&Intu$kl=s z16Z`jNMPP+9Vl$a_IvNW?M=(a!>(D{AflO!Uf}~VA^k#rFRi+Q#JaZ4NGYAeNiQiF zjGL%op6W6!SB;FQy2*9ZdV{bXqsPVreJ40B`?Fux4@TWd?wKqpeQuBH8>U6gBc2SY zXJ4yq`n8s`R0dtDBb?otv}07pB3NbwF#R`wPu5&d2(_Pod^~6ScGjGgLqy2Ur{!|D zhNlv&yJ`*0GInVA{+$bj?_c-Aso6ZS5qLt&Wrbw+esYucFTO4X>#Wx*5aairee2?~ z%g>y0YD8ASq2lB9Pt$k_w%&gC-<)qIf4<5wmbAO+(+!94CxI0N=^KvlbA_f2wc}8d z2;UUZJRZEh=@boQ00b)@*U<)8W0062RutBjEz(K)bMVnl2&a?$a}oHy+Jyv;At9|b^|4C{%2N$tLY zJS0hDAzZ-!ef|G%_NL)b_VM4p_65l&=A5ts{>E zJ@$Q?SR;81y)WoUzWJ`bLVwFV27ezs1;a-}4wN*8Z*5$z+1viD;Y0N9N|uDo`c>t{K< z!DioPits;1$=1eU5XL2zJ6T z`PCrWazd7^C$$RKsw^&yv(zZ|WQ0V$yg>0O_mmuhk5}SMtzqU{i0LkHIi7D+I=+Xm z2yV%zxs_}4Zh+d&K|RdDxuKegA_Zc}HSd@ZoaCp<_~pmg<+tG&twY@dn$2dr+)sQ5 zDFzk}_UQ4k(>c)(4xi3>{y+Y#VrX`oJ_8i5>=#-Lu;KDIkrJVvma%58I?6Fs`7t>4qW;%{*Z#g4-*LR z;XlDtDJZY6_$lTRh^wy{ad`ME58wh8gmNT6-Ivrc1Aj>FszI>V_=#zS`bPutVgamzkS`J+p*%GS>VLh2;4 zicHr7xDWmnxL`_q$b8NG=%g@&`mgHPQ6A)_q|5{O$Q9Qoh@fw;#;byjbUzZM7QJ+h- zEzXr!7SZj${o2W~GyUd2O;YMdJ6pT|**$DM1s_$MIuMOTF%%;W=u#$%b2v$oVZK+^ z@obv}#`Hjq@aBh5t&-{eSv%F~M(?L9UZi5G&K-Ryd}z#or)zrs)Mv?qcu9(IUC6?) z^M)X0q1POo=UbYjKMr%@Pf*HD>R1ORH)~lHlM{p~o}CR4#cG5D&wO$c-t5HJNtHi9 z6{AqOWmix2`=&u3e;k*~`E}B{H&2U@FpLzWJji_Z6IvxqZ>nHYj(F~H zK>hMMO1oW&@kV$Tkd21MLDU5`p9x-gbk7fd{=qv;&gq<-+42ybRq#BbDb4IuHRz<> ztEEig)^JG{AmLv<5`2aQxL^K9Q4_O=dlbG|&C~5O>~yqYRmo5kLvXn z6Ztppz>~V2NL|RZbVv^);asg96n47oEH9Db6)Lz%0ZxK>1i~s+7Fn>64)q(Jm7Mq8 zqxT;_6f69!7-ad4GuRP`d1Tz`7^}8 z#<3agZZP`dIHjqHaV)W3NosqB3+pp{Rr;8oq9f zvy{%h!BP3(@wqzwnDE!2MDm>B&Q=3Ob{=_@B{HwRRVRB)=gW=7{W853ReT(Jo=M{zY->)0rxS4or!pWkLN-rDj zdH!hM_jw%f{EEt! z_1=)tkGn;m!YB3<7LF}9&_-yLx03S{<7{ELi{k}vS5)#FcN=^WVP!9B4_%6Qp-r-5 zyED_8LbAhmR)JU7GMb(L~QH+_CkCzw-UawA?2uduBTYMz)J>BHaAOvIk@M8W0Al*1LR0`FdvSpycM<>j2lwWrySlxJ4Da? zlr&y;H{PJ&!p>~XZ|8R4I05*GeeN>mz5ZKrgqn~loW^>!83>7wVsvRE1i`u&dl^WZ z6cP8_Nr)^HZ<3X7N#E+bQaXRYno{mtTb?ymznLg*hRwbNRWa!3Nb4B_he2VxlAF@? zb`+ycP5|($eT!T}Hy_55_GZ_jzVB~s>WY=2*cigf-||Km$=pY_<42m%pSqBMpCSqA z&?WiFE_0_|ErJHZ>O69gWON2;7Nz9mIlMN~-7Y#7gx0Ekr~LA6(V4+O(cErZ{NY9zu}(;0-AjSx0sK2>|T-Vz5pGU zS?`92%&+xfR+yytm4BpirlQa7ucQ!(VN^P%HZocnAskFaNp*_6@xiOj9j+iO40_@mp=0NS#3h2e}M-xu# zgvp|w{JoSr))FJJ)^Xo641dV(LEE&;^+W#@2LEUga2>OT2DNnrfwD-JnhsB$I6q>3 zqk*QOzoh}K8CrLa7i^}30nAhI1efDLl%L;Mb9|udl|if#YOjr%)LjaT09Ow^;-?rcwYg>ZJs0U|*Y+?OvLfL@ z_t@PaUw+;7utWFQ5^X)@3AlZdZtYUsM6-m6k>K>*a=v{9(N`$}lj)rnpEumxJgR%- zuYo4+B0c;Hp!|Sa4|b^TTu+h;qv4dUlx= zN3Le~OsPd~U<81dB1eG`1SO%7j_H3G-#ydD;7z*de z1R|bi57^R{CX}j)tb}+%S)|nWE{KpehG1PJ_};DQn%@sud`q))sex(QV}ljHoX@7G zSMf>2jtN^%p~~M@onS7N&Oh+4z$x<7^a}WI{b`8c=Rk$E2I_D$|5RX413S=i<>!P# z-$v%u0rSZv*}rDxH2XF*TBwtDqRKRD9u_r-etXF5Avm|&7gisp4(PLUT3f;tf$FIQ z2~^g}42ynou${=zi+3${$RG3ZY%&)D>$%IOQn zU}Y+YrjC90qFpE;T(j|V;`wsrg173%SL&z%R$2Gi?wg2y{u%C5mU)vX6DkgbII%!F zX2B`X@GksDh};YzBnFZ4gZO??%YD!O7dh|H7qDU)Jy6CFRH)2EI#8#+=G}zqAQw8B z9dRk4Q7|MVW2CpNviMKAMOHwx9;R~F{Uf8Nbl+&sdiyWUL(rT@&8-D;xm;ga*Z|J`igrVWTP{? zQ96e`wiN8s+iAb5!Y%IQzMRl8ScOHsesU&i|C}LD)Cm{MHx7g|wh|U0x+PuJd_su*`{CnIrhup!%EuOQIyHdodZoGBHZg$Y3IkxJw)YFDh~M7pHV|M4LIJaGk-h4hjLu)mMn&m7!UjR=((OokcAI zTJYX5^PAL!a`}&axmjb5<2}j_R`CyNZ>a9R*BNv~dPx0F`mOaH1cv>r3>h*3cSfN6 zolRBgP!~Q(=eCkvtr%2@`vR!A$8<-Bb zO3v?XM{riN5>7G|i7CZevyGTru~;i6P5wwfU(6V0-Om`P4Dv;_mHE<&by03YqFq93 z-bOhde@+WUPEVinHBkqpuzO{0W{|S?Q%@ z_9f3}W)8hV1Y`WRsb*YdV3sa5|UEDsi4F2bPnJjt?Noi`y zu*u~ddp2^#LWMNfH(Sb z8T*+XONIP-Cb0NwU&%)Cg5oLbKaS2FK9VHzeWVt#F8?RB#6BqK#C{uW1ryGdxb`#q z5cxO|(Nr@|jQmu^qQvE}RCr$<%~kqbEHuxk-E}yKx{tXuUNQTWR{Z^PyG`kxcZe_R z6}7A0gP7?sQ)rr@^8;cuxuGuJfMM^-E6ev13^sD;73sD-I+|| zfcm#iqyGy0v#^u@+J6omWU}yxWUJ^}p(SCcd*vj-ifu5rX8@dKi|aIoNdr9$x@7Yd zJ*r~Ptd!yTl9yod#b61{3v_uMfiEsnYqB&qTPr=B4il|EXp|2uVb=7n`!S49q~SlwaxbV>Oc_g^W7A{E5R zVP?KE9kEcXZn36;>1W|yMx)B()0L8eW{%_>C{gf$?g!SIOf=b6O$xhzge*xn7NPP= zGd=w`S80TXvCzo*Go4A9zlbl@MqcE)wP)So%e%7L*BAjWxpGBTOf(WyfB?_FaL*En z)pc>Q97{4x`NM2rt{LaD)X}9RB^jG;|5cvWrcI+P^`)L`4tN|wvm{xfgxK@NeBb|b6s4e8#Ix{|;irgWSi z9k9x1C8q66H;3~qd6kB}LQnGvdAeGZQKxKe<(n5|PVR5t(s_-OTo;L_3zDEy@WWty zf){{lcEnyPO$+*Cae#_1xXf-VH??yrIw15Zc6FccJy8p@UfTNfG*@Z4w8QkFQ~!(? z%7qe)fg2=;QthhO(iUgIk23lj=dKfNBE`P0cr;86_)a>+=;%2Jpsd*Yc<+WBRa1Oa za(U^x!X-ApTsgndDKMgl7R?=VkOEzEy8NXi%+B-x}{(Q|A$NxeZHFD%wfHxK~;h>u&( z@1%!1%tFCm>*RYE5iq?@b{1ix!KO!6Cc80(FSRy0k~VenJpHNDOqY4lmQ#dyrt_NW zwK1#n&pQo8du!~tVr%siQoycBUueHnr?BP|v2dW{a$Y-=*pjv5^)cm$8tEFiQi+;;&YAAyXS4ojhdEsSL~`D$Ul4w zk_2ZA27#u`lxfsfO3j;h8811`#!jvP`7TI(9@sfXkpd^md;y@9a}}!xWE6o77y?LR zyuO2Q3{9GIts452G{hWzK#BbmDtCmjZwH*BE{NVtJG-v7SYAP$L>kG6An}ATMXm6hJ z@-ol7wd_A9-fO<`Jo&_cI~y8DGAc$<1HvoWp?O_yGoBz$UiM>6X6$c#b4l+9;ilHk zHJj^h_jXAqJqAFH^xNKQ=1NUbwif1>cMYVRQoMFqJt9%|sP+uNNTZsUaShOos{siV$OG^n@iz zr~5J+u3tQ}TU~Qn(jj8kS6uxytb9IJ8n`x<`kNGFlEVJHZra;Ny9R#93bSIZJcA|N zC0#-lb?aNWuB8_v~-_(wKjnm%ERjn||jJ*0tTxQSXz&e{x;@ zXS{9x72qFoV9nkGGv?rX#^%FxGR#;JjmCD2d%1GI_V&*Ozqa+U(knSBF!lwcN`AS! zFI%_jvO*iHV=C+e+o*X$_xH(4P_%^kxsx>FWneca`)f}50V3o_l~FOR=h#@>+o$D9 zXCU4&(*N7ZgZ}J0wI%-mBCoEPL)QpcK#hO+Qv9@({^p}yn|fs$jCL&r_`s2;VV!v& z*P#NatV`^==9LJY^(Du~W{;YO!JPqB(iYFqPkLjZ-;6X`UZEUiehIuAU$awT&GHWw zGU#t6R9Gg20x)ao{DOi|HGA*c#5lYVt`?;P+7ZYDS}WHamPARcmUi@Ou@g=Q1QL0pExIl;?@PJZOe^0KlS+g0pD(f~VWIfx{hL6aA^0Ag_j&_Y!u2vP~er&e5hyVUR`E~sk4_1}hwPzeussfd%BW4L|&}&!?U^|!V%-(8( z9+|76zLTa1>;LeTw_bKN1x+5`Dk-+Fi@!fyEjzXM+nqWmR{`DSGs}a0{ro*3M%>2= zfzoiSud&*&*eUE>=Fqe3$lPvDwjTBtSneaiz!rE@7tAT41zbu&F6MyDzFx?^BEarO zhE;CCd16CLC{;Td0cHZ^2bQJ&MW-FM^GaOrk|;@@IFAJ;AK5r4vxy4$ES%-y&4eG1hDAmFjL|T%c znETou4ts30>s8x=9se-at`eAKPv|KE-;xgB&-|Fdp?Q|EBG1Yt+bu{XZ>%}9|w((U0IXQK;2)T>yPb?eW zj2y|^m8CJ$^9F=6aTFuL1F$Q*8Qev_rbv<$Su57BZjvj92&uobE|y^O?n<|4SltTB zc`50e#X6MQhArKvKDNm-tV|v0(3*NyW%8 z6LKB97&u^+a9Q@QXR()$=Nf%1(yfjRs^5vQpq#|iV^1d*>8KwZ3{7Jnqc$Tk0hC&V3irb=0>G?9x!qx}EYMLTp?7!BZacd!MqNb0!7=o4rx#i-9u_UEJud)KKbj`HQIlc6-e6i+$ z2Y;}=mR~z-2mXk~{_;tAWFs?gb8CLetNZ_gNBCb41@n#+1$bg<<=k7$=(TLB(Pmr~ z?}Ld#U`8_))NsST0LTUt*#QWwX#NsrWc(ydPfX7GI8n5{zdfVF4ywM?O885&39a`w%an-@L^ez2gB2(P>*ckj(FZ#>+nY-E%_vAISl z+j0)w97|J?sjf@qBfu^AHtIXg8fl0Hb+Io~JSegxNmg-_IQAltJh`MZb*mWMWM9<( zo_CRAq1S=8($0LmvMhA_JzCkxqRM&kRRG+;<4DM#ru}{7k(NJ^0|*1&i_|Y z1uvOYsh||xh}^yZA7tnMzhs4G!bf^0rE1v=prL{d@i16(2JtA0bLrE6&R%`=0iW8y zJmer6^x!4#>$3Ts-bR2~t4nEg*97DcT+6shDz~NU-dWc;d zRp>L~MH;89mO}+w`u)Wxk~eWcsmyLD<3#0T!cKtxjvBb-#IdsZ;-GX0$8Zc3zsxPG!E%Y>&tX}FbvEuudt=K)OZXP&SQm{s>s*B zJl&3U9ZpfY`mETr|Ko!x8{5kKu0zPgf+#8=Z4hsT=&Fb0SLi8Y)00dOA1$nvBC?Q=Jb;%&CLJhXoX#+YGxPUdIa_ z5>nQWb?ul>_X$h0TKf98CyE)%uL}CeJYRCv($B5St$b@rkF?Y#S-Las6{rS^%OMTPW0>o5h+n!+f8G4d+wfff1;V16qL{d-iToRr%3D=5}>x%ayFVWqQHt+Bwx zeC}1il;eyIDz5>|r<`GpiV`FTRPmgP*7t$R^LaE{S;RU`^?bAHr?mF#n@Oc&;Ewrq z?5o5LKOd#dRN!ft9<&h$z`5WbQ&3C;N1(i+5VdesNs1tCSWmxj}tepofCu|k>O4a9_tcv=EICPP+ZXm6h?z`?E`@s2Un}UW z%Gvyes81@2dIXb8`meus8F%`dAfPL~Ch}f$8F8khxI*ZPTTdSM7%zvc7}iTQ-u%p3 zYXwIo)8QYUJ}%S78sQOMZ>hH=bfe8*j43VsD_T~kLD(F|qBQOY zF0v2zFhFi4ToNdPTyYb}IMK5h!4f-i{ zqfB?L<}Av-q0jjaqgGG9 zIr376x(($@snVX@AJaIU5P!uA=#nnWd~$fPIDafq{04A{WoOHdk1&kaqwKXP^W@7^ zk*WgSQsuU}8KLY}mHf{svr;|NdD=%9hxGqK4?`#Oar?ux03x$A#&c@rAk~>GQ@skY z)^DLa(89YS0##ENFT77giFf`JGnG$)5dNJ?NX1+2(cQ?bQ? z1n5U(_VulGyZ&onX@V+yqoBn5N(y4Fv}B#Y=-xW8V4+(`NxTw2KJx{7EPH6z-z)r`=jljeRVx}0WY-7dV3pBwaY z;t+^!E&hv@(RIo5)Te{)?Rc5RjO~>R!CV_p=hC*-zx+o$BF=ru90V)MOb(Lnu`>M< zjslI$+2_&?NKo{yDQNH6=9j1O*QceQN3iTbhv-(ti+jzlJn1`RCkaRX*T!IPX02@| zrgIt;#R)x;eB)jcrqDA?rK*@; zzBf*!oeKYI(p7fR{6iVXk8V1hpBhDZ(Go(&Rev$%4y%^c23QqS-r^|_XbI1u#MG3s zK-^?@(*k{$BcRrpZuXuo0&(|bjBDH)&?0Er&aBVdLaCcj@7RoA`S+EjVJDL?DIdo4 z6hMLM%P_1x`@qXE^*}`n1YBqiDFV?i`%BqNcsL-X=1Is8f;2pM6axQt-7H)1edEEr zlyFAdPI<@XCUC3>dqF{$2=ubDrW(|4hbp5Ifm%3PZz50Czlw7?tz+%=_Rt`Ajlvh{A^T8W7O=0`e5>OAM}xd^xe9WX74`$` zJpYjW7FDfLevdV9Woqes{SZ!clC2oSy*PD`bzK(zmVA6rbK-^;JoFF>hiKQID#mg>odvnB;EW2Z~2r2(zVP3N9Q-Z>T}Of?y^!Is*MPk2#!pE8Ib#io8HpxrdXruFE`iNz&0F_Q97F`BOfgiLiEsLwtOahnu*H7v~FY=H(ajHG9P5+aFi56eWr``!>X zx(M;v&k8>iIm&5AskJ|lst2idp=Cn+U*t=GZI%q1@+$1G7wENZ4L8vS7i6yaSmi!~ zyp$kM?k4Vt)7<&@M_o!&_9jh?8IKaf7dl23X{6b}))5MLp?fI`VdY8RLSfC&BfjI8 z3_bmd{3w#m1@QZ*O{3zx)PtkP-2Gt=NLP}^pJvGCUy(&@o!#IW<_-$}FUK&#>qMeR z>bW4QA&y}MZ%PKz5N!RpcP?^S-Dqva#f46zhBQrTda?RPnTfMM(35eh)oFEK)58+d zwU3PJJffi{Fb)P;6^BB`636wp>)4&TrDX@T970NFf)XzSd~I9|*lI19aBv9_!YWOwg&L9cq`Nd;xZ@is@s(q5hz2AoK*s ztsHfoMK&{3{yqR>A853#a#Y1*_7j;ryGH*l$E#yV+AXS+tX)I~$G|Aa*@fYvY!i1p z`scBW^(@Nb=P#6{C3gEl3-XYOHfll~C@M9pN}tG{%J3i^-+4%u|K4A^k00+B8QT|> z=%hN^U*N;3vfaL0){7$~EM5E>*2xMy7Xsbm<#MK<3unfuH4>?@!6}5yf|tadIQ&c4 zY5()>w9;3nOa=F^jzALK>{$xxJTl4jK0AC1)@P#V>6q}+m3@Z`C9oyIn1&%w?6pm( z$%Q|aQcw4OL%pneH2o;Z_5rTQ* zcH!cnYEw_t8p6Qol?taSk}wK?eLTo}druMud^bsK_cwZYGmV(G z>uIM@dewuu!eqf8+=$f^@xG!J&$0g^j? z8gV9^+tt0(gd2-`YW!|{nfd_D2cW{r@60i|hv5d$AbxkY+~fb+vzI%Hv6_p^di13m ze_+Le;lkP(0YYW_x+=bHJLF`kyJ}K2Bz{dsFMWw6OAB9g9)>wM=y3c^=EH55f>FD69>4J}4l?12>_*7*gzqLk@cZKzn1=(c@CZY~j%*<<(t>F;kuYq0A za&7N*^wS2T5lr7a4!ZOdrYGViow>WST=Q@#!x~irfKxfJzh>*SB5ALh&w5?*%jJr* z3nR4kGZreI9ZH3Yky8v_RQ&p<`|ezS)SlQA9%f;#Jv0ex*p|)H!dxsx`<~1WN@jFo z#}MV|Rikt@Ccx@F+6aeE#D!;{Y9PHgSZ><64yMe)jv zj1H@-EeE0B{j?1FJ3AiNfZnqFwXtJms-b;Pvix6xOGyiT z8wweo@|u}5F6-5GVRo_i3o-ucYBeh%h}DEmDEJ3<<6Z|t`IaX-ZnNM`G+g8XBnv$p zyE-5Omgg&75HJ|(n#1Pw;Js*KWfHG&E#W`7Ho zw<)BRwdr?uWBGogU&t?@!N-$E!F{Rfbj><8D%fz9`@9bPjCX;aySx;fJLcd#ZXXs| z0D#q%V*R zr+N+B+#FUhycg$&c{4lp9LN9%DfFL6R{7N>1x@g%4eRGT5mEcqO2bm13h-tAzXD_1 z!9JFGcRx+>MpbCY{u+*L?N;4%-WiK~aprxN@M#sD6e?jyON>|(=7jl5={VHkM&A|8-qeNfuQiS# ziGC}iclbv$?KVC7v4RY%^Jc8pMx>;(S303I>jWXV>7t{OdHAhl`vI$0AkIK(6#E@y?ob6NPn?66?d20=`cMxu!Mk z1Ot1T?8q{S1S3B_jg5@d8+kyv33=XJzHDrExo;^!_GhDf0)Y>j+g>8Qk{6Kjm7z+L zac^R{<{-q6BG$-^Q$?#;al%qC&pyGvQn%So=Ap;i^b0=wHa;k>kTwr`SkE)eDRAnu z#T4T<*WY1uY^S;w)b-I?K9!FOQiqVIJ3i=`=73KItd5W2MS&L7jO@_>YhZ~nuGByc zcpav=pm3Hyz`B)Ouq|qT%~LzBP^JFm!3?Qi!)^XI-R{h2)<0n+yZ}SB4)QPXf7NV7 zgtf5{PHbo1*3ayHfybS%FomV)uwMN-L(UB+^DmIJmy?KG=LScFQAo~RlcvPycXs4V zjW4>%d9SR^#)6CXFJ(;`p6*oLZL@PPIRlwsqPxOy+1@_inM4$OIg`=#& zsyLMaj|Z^o+~-QazBZ-UhBobP6?l;xI~?noU7;4Q1)j1WkOC$Oz#AiOJRvclmGjuw&sVuz5}p|* z29{J8NDizRCj15Y)Zeh(eT!t3dUi<54!OFd=Szcoa$|bL=6dSwj?*dcN89wMkF(tp zR4*!fLh_Tlym%rxU*R7t&yCjdem_C_I55*60@8CiZ{{92pc;GyE35)XRBI$_t05Tt#7KepEFD%sE+f<%v+FO_I|Ebbpp})6Qd!E3wL712 zLuMrA3zky(J~HVBY1V9vj*-`5@kiizbO%81tTAovLf%4H0Is7opH?WX@sHk`W zdXyW=mb(EUP`SV`UyAb5?_YsE-CO?Z0iQfpvN`SO%BqibF{f+4`8=yN8&-=1N* z9kq>E)Zl=mxykIMZDx;rAPsyK#l0csps)I5247sx6QVF7H?-c-k(%Bu7nOU1YkD$T zv7)JJYrp-;q)}}7DSP&gh^e}H`tbyk^A3m9r2`L|+mbx=)Nx!KiM_AberTtPgIHT( zwl3DP6|aDH#!G>P3`)JTxHE-a_J(j9q#N^-84J~Zazg|Hk=S2J`-K6WhO2pKa?hO? zr-T*7TaSrm8}PC~j$4*mGMq&WCt0vM?1+FXnvEwRpb=bCkUELQA0sL0$A*W6Y&XJYweVoYggtOB(C>$D#vQeEN7(7X_3SfUupl{c z(H3j=f9f_5UO3i*qcVS~1H>Fs#MZNAye>&x3Wy@0Zy^t~fs(I@=JV2Z;a2LW23AxO zvmB&C9nYJzeKbnb%BFnDzxQln$C(aiUo5Mx)$Wakbv2H!^-(tolrHj8RhS*v;MZS( zm{0bMmN^5++_0|no3cl8*+{3sjiPlc@p@@H$ChNRmO_(+XNApQNmX7|3;K9c_Tv}s z;ZliOOlW9u&*;{s64(eVFtZmqU*~a$mi56=(_e)>eGq+Sj~Gy+BeGy%A_H^2G%e#P z-4Un{Lrm#qIb~=~6F%O64$Aip&uK}_n*>?H%bc8&dTK(kFSZJmE=Nbe#2dL`?DudZS_{Hj|XCdB?G(%~UxF z=2fv7X9+8&F8B_Xk<XBLu^_KcrS)T!(d$^r^%2~Ie+7=iCReBjE+;Tt9k9>X z`DxKgy(UKbGoXb)92PR_yuNTUka)np;^@!K&57GpM;kY_dcVsFhED(Q(xdigN@Q2O za|-K-u^XOzN|;z-4zJh-C+Y;Jzv3f|Yg%;CTIB9@6fSrNv1WrDfi?|OgiKCaOu|Q} z$zp(-T|&cKI#&fun*wXT*JC4IRzAhw5pqR(>zsSZ=BN(^X0=D({aBr%b~OMr{-J!f zbaOTc=0oRk<%hT;tTkJp5ydPrk^Q?xmL%1Yf18IdEs82t4G0fK-jx1T&WoSiK7GOj zHgn-Pzr6R3)l)F!8KkWrH{lp>VQfcewHOL$B|L^9vk`UTUItJo1)cpmjz!}iq)o2u zOArB;@AYx5Cc7?ai8NhG%|Mk_x;E`R&Cl)0|E2jEo#7fwyVNSX{f`8#b>9?a#Hdx4 z{u7OBq^kWqNHSzmS}3BR_Vx~=IX~jnhP+*afv88DcbY-f&O72I$y)fAroQ%*=g(bx z(j~jy2Tj|tV^a2e@F9IktxkQud66USH5$7Q z?ysC{9E){TEXQvZnNQ~tZ37n2hmvgWNswuvhwBFK{?L36xp2A?$+E)4WN869xj;y> zf=KdRPwYNcLL(LA|BZi~3GzjXIys|`lCqxAryXy|d}H3GxlW8)@Axq=f}UCXS>4$= zf7AWK6LLMJdPnW;?P>XSgm6NlwlkN@dY~i8lOVzGC1|_l=)AdvtEb19 zNV8{(89cRy^p>(IjNIJBY1UBI%|{cU?7D5EwmE(RoRCQMBCb}5@0MxbGtG~&b}S;G zyfcT(LVf$YWL9;8jPI7DFQ=@pl%1#i;!=SGjtKTTOS*pLHC+hJKMriQ@DBo#Z1ol2 zV*0+oa!{~0L1c_pqODFOsySbSCutOeW`d~bG9!Hb=a{_TpwM90&-b5u3 zGr5%jab?iu0Yk9mz%xMQUS8Lfh|stvCK&xEi@9}MYWRDH{FG)n&cotNo9wqW?C3EQ zQqJcVgXyZMr`&hjgS8HG1*zp8WKRQHFfm|eJIHS(l;>xLeCZcw-lQPfUq(Qmvf5)q zB3hK{je0BnNUDGD-X5f+YT(x`lY8!ud`Y8_-|3t;Ip2)!LDGK{7{)E|KmABfg7FzW z;S**IEY9q{e5|c3 zEGIp*vE(7q3YzW-+F1ASCy=|t&hTln`g}qT_Y4~vu3cs##J$XVIw#A==c>%lJ0@)2 z{uW8Vue0`LFZLg0+7wl6g`c~tK;a+aaJ0R^y3$0IYdT!Q7k9#nvxce}cs27&`&x2c z1ALfTkH#kSCn_`?#>ULL&h%gusj5DH7o*bMoWCFz)734i&2&TM!TKA@`;Nw!W>h@9 zpk~$ow;vgjf!je$%z5k;Egk=_fGcGrn=u;?kw$-Ydd-t%m`|Ce2MG)-NZhbsO%tfuF`Fx9_IyGPw6c>Qekbub`4!Rj4K1{IAJGX zj(fs4k>RkyJ+HabRQBmp^k1HRm|8Nh+tRFvWF(ILNXdIUT*x0r9)_56?gg$f=y4Etj&5KE)BHtc zrlM0HhAacTwQoTN?EIA@1q zN8TZGu$RO(qF;@o{}p)t1zpvK-JsuLukjC`bTE62?U{(o4EWW zd%t`2gw(xrA2k=u6vd-!T_{ywFdAny=0s(d zg|eW;w7gvVQ$UZv0*;W`Ndv z=r^6_vKSoEHhT&W7XOV|N-XmTF3hLc^T`B2cOZ(+mH(BN4eZ|^BVXO0`_^f!LkXFd z#F$DMo)$1i+H<9NpGf;SHvn670Qh)vPfm@CO-z^M4?r%KAm&rQ-}+k8tM|?5)05KI zMHhDsOeG>@0}|G?Tow>7`yKnd3s?gUH2ZkDU*nZUH`Oo1Pwsi2(Ux@aEMTN;_V?%D zRdjQUv2XtjzOZQ4SN{00z;iu*%{$71puqO(2940WRt@*grTld7%Y>#*g(W|c@uXdSu^D=RhNhTKoBi8Pz zhBZ&VbVRFy@b3~$5I<-K#ifEd902c;|8^cZpt<%t6`u+MBygO5+Rj*+D_db5Mw?O^s4HLUnx~I{t3&J7% z!%7?|fMDwJMF#j6x$^xa1S*vG!63?S%Gf~OOsO07zMoLm}V1}R6x5B3F2%n{3MH^>p4*|L<$cYIy8gyLbpTIoK>{j$HZ zCUtI8&gbBfj$6+^4eJnUV?t;PBYyGBXMIK)*SA zB2#N73Y5)t<<|{tp6hY-O%rYP*^3uqRh&Fwas12Q`5;>}n_YWtGsT>GCI;uTdn}M$ z8-&sgFJ=KRVYF%i*{K6I(P8TL8GItY&HkjzgmsgTfiW=W9uJ>Wr6tfLsADf&?I0WO0}cZ>%{G2hqAe z1zVA5R%^uDzzMwUMzX@2*&B}wZ=avZugd@0BBig(-!vI*rOPVD>EXoZYY6cf;8%IG z{NibqBUt71!L&1sOpkX+wCBAaYu2>c_s<~<(eL4V=Y|rCPPgBQk85k&`9I9PdpOg7 z{6DNuCz3=t7ZswMIyiK|QaL53glt$PF*7U2VXTz%VMQoH&WTx0TaL>)Bq3Xj%_e7K zBaF>H_xtnxUH2cq>-t^yb=}wf&;7^#@yEv7YtPs7`FK7KeOZgcw6IX^j!UK=OFsc} zL4N?0+WTiXLXI=goyR@>qiV{#OG|?lDmQf6 z;(px4SE40U)#^VTeEeB?3IR9gVVm2XBt!)F%&=kU|CWj8DPTB}m5 zwB*)@{4>1fDC>UW$DIPqWVYY}2bsW!lylVthaq}RgT{)j#js2Rhxv_7nMiqx*RMw@ zAu(gNr)7w!{FIw1PHsiAZ661yx^_cPr!&f-U3O{I#+T?#^3su~)6>HlQ>8N-5?_Mb`RzCEq+- zVpaI2MS+z|2~YJGX>?Ju;<>i$?KTta?*ZcCjp7xaZY0%Cq_-U50zBhAabo}$;5U{WcQbTaN%8W~7icKQoI#03Lve8s zo1g1gNtfRX&P>=rds)Qv>qlwmgl~;^mpxBBN^&kB+r50?6Fh1P>9PI=O{9NX{55nZ zz{ZWrTLRF+J+*VF%%wrLZ5P-!p+y-*XKF^u4Fj!>JmiwnE%tK0ap{A?(NU`G$z;D$ zA|X6pjuz^Y++>0tN!qu{@7^l^O8UG%zC|B>lq<*RH&d?_1;qd+n&-H$OMNzohl%mJ z5Rs+nDzlv?;>SaOLvf)B?ZHC%-rqQ-o)TWG%E-n z_^YU>q3r5>KA^M*qzncrXbJIlh5qo4NW~FgVIso)yBOB_uh5wG@yftNsF=IAeBe{* zIO)8;@X%tju_((*;BAVhcQXHDksGiff`KXKzC1Q$z)d8dXYn(P}%zz^xuOvc4$38^vpNzer-&GAUpJ;PdKchB)=m z?Pkas(W>a4lxtF7FDC~~wNrF2(QM06( zyIv#IpSrcZ+O&WH&a)Q2i^J}PCV&nVa$gMz$3`o3WO%r0KU|C2!G2#`eR%4ce#Ag_ zsh)pr*_Q#v;ylcBaftK2@LwS$G%)LjOcE)C)$GNl`s*7({+S2p=h8jKY=77e{<3$# zjpwomJMK6>t@x@h0ZL&IKiHcFWP)T3RXy|j%letvL!Bkmg%>w7SnKLe!ubBLb<#<| zP}twDX>5O$-zAdVeRLbTEvS`&VBARhDJcm9pE-{+KXG5!4IzTGjAtE(oYY#X6Bvrj z9?ydhFLWLHb4V&-d3W$|60-m(Ab)M+8m=xVDv<+m!EIOHEzxFe8dDaeaz(&$1==s4 zalWOb)c00jcqM!adrr^00*DOZ)>yGUUjpb{ap}C%@PvuSQA(!B9)DNcvp4pfeEaNC zs`0_t>JZBiGJ0VG_Qb=W6ttLRUN|? zugp4hE2@+m_w0!_^Z0uDncm0Bi(l!rUhQ;Xt#BA^!q5>zt+ckBjNy6E`kY- zzjPmuJ0QMG)TbW#BGvx!kA&NP{^_hs94ud%J~oEj02*$jL%5!9n(^*FJ#oBoC(q-_(lpHH~{6FbRgk7djRNgHN&JtZ{jQn$MFAsa2fd_;BY$?L(r$?YfG&rCiyk4D1^xhpmqYd1$~Cms*c7Q*Gc zsv4}~roKcu#h_eXy;4cJ8yI9*u6#x)N}akw93WO=m&LgOHve-%{yQcAy}nbLfVY9z z5BaVeL9B->*B1*tN=$+RU-f((7cP3+exPcfT6*=_86jOPx;lygb%6TuL((7tMkayKLORa{p7IX2;~N1)tcLXlM}tj1clFy|0wy;N}|Y8r*&_ zNXwiFfQO4d>(RWEe|GL`l$_-rMKK}oL6^)(-N7Y8i022}a@gm^hMZaoALfXg*Qd~=C2svrb-welH1q!TC{uBZHKXS~TTZj(_U<7ZhmA(AE&HtKC>qHD zF=k&B3?okt=@LbVnxFPIpOU_E1 zu^QUwXOk%YZA>Q9=tf6y@R&`Jrx}W$UHZ!O^j{~>vF?+W#|{AEvxrCwZCt?5xlfVD zInsGdfY$$eVa$3xx2$*}m@_d-1K+NpPPCtju~dF->1=jK_`b!7sI$|zVCDI>!!>|{ z;BD0ZcEJAcgZ4jV>0&4FDEa$~RX6H^_FeBy<~bMD&h;Tk$Jzi;%uL=tbGLkCF&K~$ z;wY55R|q!fI*{C=ivlr<|6~Z1IbJcfqH%$JIer#(S~jB2DQ#4*G3{@!pC2}zIlUFh zM7ni6a>OK(YWF__av@gs0+x`9Txy%K2zzN*wJEHUQ~{YM+_^PbeIm>2u4e1K=kH&Y z9zQcmqf;UVQ-Z+gk#)5y4{b72Q>a){hhGk!~b(&{#PF8F8;XS zJBA7@>=&R)m01tzM= zOMqh=h8U5}-^pzf7l>tWpBA89cT#~T7|@Z0sKgiej7`+a1ZRr0Tz*AW6y7me5Z-hD z8GH`Qjjj1#fC-gE1^ow@AU7}@9sdC)p^;wc0AMn;6TGrf-pc%5F1r@?w&JXVgPrwd zNJbws1xuq$WR6nI12%v-p1xDDhwk(S_@w5al`Ol|dvt3D57Jp)2T^{`X0$77|+(mz^{_H0Vg*p^JGyW8?9tr zmiR69%8M37?hm(nuq^BM!5L(BE93Z~5Q~DOJ+801g$~`zU0*k7$H#(o+Ms*pX~)+J(pFosCe_!Z4p+Y=3)-CKXrUo1K)Pw%YaczNbXcX z*trd##`Mfb)6#ixUc(k~ZB1u%H$#=uN_rM%lu|Kh%ZzX#xIw(9f?qV@5y1(RhAC&cd1_H3S*e{eHc=r@C?c^F z=33oFou6tJp8wKYrlcGu&$CHbDn+#ohh(re!zSuxsL1bIpUSiDJlVWkFjabU984_L zdd+P{@O-${l)G4_Ss~|#(m!ZBj@lA^vKeDtqKxYt9wXdOlX1BayTLVp}GXFzQ& z&$cUE{p@I;@$iYzy55a8W1S&DBn+{o=pJ{l0bHQK6WU8bqM~o=>zbp#KFT;_mmYZE z#`tveKrIW3!WLDNq;g)H$|NY!E4?MVByAv5q;kK#Y`&TIop2JnZ9qelCL$Tn$!n zTI<}e2R?eV5C;8CF%-inpZP`vhaEJuA{dO~Z`CSB4R5%DJozG55c=#o1&zV_~g!2=7 z9*FnX3Y{}doLu1_)nQf^vtQVAbYfc0=yd7GVcJSY_%2f*k(TEV7uls9PqZ3MN<*d3 zwFfD!s5T`oIS*L}see{=m3l***XhJ2fMoz0c#PsnPG*7*shV%VaJv!#x!bh*D0_+U z*=)$_^tX{5LP1*H-KuV(ti}o|C<%Q$;80FE)O+QVOEuLe*uI0JZ+3G_E!iu@BC+zu zE)~D}-Tt4yX=mHN2_-b|_zq_@w9vUSO~rxH8ed%e3JT}FzmyI~2;3JFok8b8jAlcJ zr#hX9;=+-XNGT5Xh2eR|im(qM@-jucNiV;`-`z((b-{@|7W*4iBfo5cOI5%5Q`f%b zR7ACA+9BRX^-f)r2uDXCGQ|)r$I8Gl@L|9*jHWxXV(78AIC{DzJ&2ioUTo(N`D4}- z`o`55Enk}5UD|mCWdkz3CUz;^i)YMj>=dXqaj?n8fV)<=*yAjGoT07is|GmSVpI#^ z5z{qBCaZf~_%W%n>)o=7*JBkAa`~QYL<^aJDtocHi1NPjU!gbTc}u+^`^@nz+;9)N z#j71!M`3L-fMxd@W0Xy2X)yAlN&5^<3l}pT__x?Q%dusnbhwkhOL5C9VrG?_i-vB% z#PIo+q${Azr*d(n_^x#}Hldat=Pt&krL%u~XZe=8{nQhw#nvqp z_4{oiX6h!!p|Au;LSpaXr6bH+Og-QlQm1r7-~(gkck8(|?7sFe%JaWSh2*P@^?^7| zrH(KKSkF~h$WQN7Z_fDV^EVE%bjOk>ng+*fD!dOAVK98>ouvQ#T3(oN#N%5|@vr|f z)M4Nr_jO1s?z>R}nG=b4d=YW6$;s;DE#A6gGS=t<*OpuZ-xy{gJl86isS>Jb-(pd(dJFq124aB`E+{V^ zO3?Yrf-*^6Zee}jhK*07jZ+;7L%Li(R6CogVWs=r&SfhP-b{#gx4_A%Xgw~Oc%bNw z8Ob_ha_f9TV*{bwyfB-$q7HAcs}7s9&2X3@WX(RC_K^fJMp-Eg7Ffx%ZN{p}SGRQ;sQZOfkFC>_?kqC-qHt@4K-+a*u11 zm5q_%j6CWZlpCBYOVJZg274t6_WkC&0o;P%DP~5wbQ=6YrFS*Te`Yd%1;L2v=sr~W zkRapKbD*Z9O7e&5#I~~Op|d|UZVrQC@YYT}irH3bb9!n*a+>3hm5}o07j!5dvmXUBYz#oo^LBlwprOYX098I zWop^|K=|coRh$SKJx|OyI$>B1`CjE)$Pn+&OUBghPcW9_YS``+8*1sb)G=1%7AUzI z+>r1O+;6nH=pQMX9;xepv%^8gI>cM4noj36ZeIKPDn9dXNrL|L^xTeLYPHP{qH(m3 zM!e|zPE8vDZ0YrLX}4_OX(tRerxIs~{39OBZ@QDK+tFA@;JnS8 zGK&5dx09oqXpYcV8TSaJE7nOR|K9WBm9YB-jFoqR;!@EjNgM09+@?FhTQju`glFUG zhH7R)VjDSNYI)BOePB0O4~4A$ZOMC=x39$zH9Ix%vITIL1tK){NHJKR1OI+5d1FEB z>`;Um_2y?bi!TA`%G_8jx;aoJm!5U;#l>R?|8(pmD3PYlq4SR_F_e-Gp&Y2waAgx< zx*K`)=ieUXL0{jxdfk78j)GggiV7{gW_naRo9s0-{X@TN+P{9a#nM@DJBnLg{a47= zg`~Do&^RXQ7WfXXr#=s-_Ok7GL)MFh{s`R4)_%6~Ml&~uXUA6@_G>wXw&!{>!vT*I zzA=f!4$fi1t?-Ar8h3y%Y`e7!t91C(kfydS*RCqMpebv^5oISr)m&MmiF2np_|6s; zz%2&DN$j{VuOunZKrJ%j2DJ=9h31Nho{#jV9)ut?T$*s9qOhui--m9TI;<$!T7(%~ zI78T(A^I)$4yHo29~Y71zbw>!`DAL7U9^Fw03BHU5&o&6@bWD<7YL~WOp2egAsf4Q z($PQ)7uNVNn-aT@-0xOWHKint$~OI35oqM|gVy?x{U;Mw03GWX)Ff&nyq;_SIc%_P zcfK0vl)Qk09nD?2$t`<&Fz@(Z&>>VCrQ2NuD8#W1`tM3<^8)3cb#l4^p%sumqel0> zg9D)<^6utmsRd?Lp${kHHU6$PL74+fUP|3cNnn|{CR-p!S-OycJp|W}JXyuQkaK~4 z4Z<_YhUGA;-LBgoWBBdych`M<_qyGumq+fL8TOF}Yw753P?jk{c&*Ha4M#}DCtGN! z!Tk3kK!Du|4QgrOZ2c<)Y{y&8TCPytBZsaO4|L|mxGRvG#0yd5FuHgp+T=d)Yf^12 zsa7p7Zl;;1Og~SM^@5fB@?*`UOy_u9b5!2WWIDGgV8qbDJFobrm2Ta@pbw~u39DVa z&dqJ>WCAYSmnO>*`&y?1-*bz=X^MSx|Gto@jQ^0q??6YVo!KkkGvU^TC8-H(b~Uij zzvI1mjk2ZXx6TTDHZdFP>wiaTnDkMrjdZR9@4kR~9))dpH{?S0&~^{$kq&S@S{oiW zdl|$nd!%lUFUTiPWa;y~ld{m)Wuwx7EW7mdqI(71+;k4!8Sn=Q;hCfD4Ti?>&jhEq z-l*igpT;e9UN~3`H%%Tbzm#%Dr%vP5U^;?ralvdF*--wzhHLu)MwilQf+HXOM5Q?l zKO918d(@}jS*D#)w0QX{W;JK9D9tx1`j^Fmtj1yZgr5z>I2#5B@5qBo;cF_JO)o3o z+zHo7->P5nBl`5ak5{LTedEt@bXc>z8!)B4Et=qktT*mToV<2hAygt$k2N;$gxi3J zH|s0l_6>M+c!0dJ;B!`oZ^xQm?L$V;o^rs$_CzuXHlZw#X6;at^`J?Bp%}zk)ak{o zv?Y62SFTVvGn zv6?Ff%c~=C$--YDIRz8Kl@GKBXhGU~H7fh)qmME`^V!C#UD^ zOuygO&--}FCgVw~pSwZR>)l0`^^X1*QzNx^u#tv*6|PN|Q#8lJmEELothR|FOhs2(|$ZSC?`>7srtG~zSCg7Q%VK^WGx1*OJX z$NLt+;TrIRq&sCYn&*krm{D`4GnV8I%FBzBFJlulxg^830CIv3F679z+ zadms@6CTJlg%8x;d;R=ebm42e>&I{7x0TqN4Dncj^n$TU)1Ys0)LQ3u`C?de2PMGG zDl~AgTbjArC}oh8k^@U8P3k-cMXfE2*TKZ=NeUL9Es`V^u{?EjHV zAV!Qs*2j8ALk9C+)AwN}i|I#<)zJoAT!c*b%I^6{#hT$J4W^ckE13_>7=*cVP)YH%F9@g`{3QYmF9A)+m*l_hu}5B z*P%au+{n$oM5rF6r7>?mUvsBgpt4A3-_%J^lJY~llmLG0{F8;Kj`>`bDoFU8w#u-d zPC-q>9W5=~ve~y&$aCNu$G%Mb`GBbF<-6>BY`GZOUjt0kKk_*ab{whZ+~i5<;XWo0 zKq_IcttYLHdpI>#k+lmGL<67Wa0nKdso!AP^h&NIbWj0Qc=rzPSc`wi`Wx{2bdsy% za`Ph9N`GRuUvS(=2V>&}AN$cu0bSNbj)gNZ9mzLZjiuPm-H9ubC<8!#E(>h~Lpyj{ z3O5@YIf^NU=R-e^YiehZMu!b$26fK_?fr}mYU#GT9k72>=Xc>$UKc(dv_DYXxV@ET zEa>9I#-TNsNXf-3i*r|!GPeDQK@X(H_4TuS$!kB@Ce6d&>#*Nt6&wY&pS+9p`r$we zCvLFG8~ppnQse6B91>m~Ke)Z-Mi`+_`<3%-;7T%pza8|2A!e~?FI!COtpbbppVbe+9YXrXs z9o=}Ax9o?u(e=d|m_Ov9zCO3pvGqOuc#XuZF1it-5y8S^eheIqoSz$A@}$fjcUSUif>RZcxq3vhAFaXj ziTriN=wG1@mNS?<%aMNf$(-S4Qv2~w!VkCI=I7}Zc2v_q4~OiVuj=D)U&a-Y7o4Ue z4+_R2jR086pcFR1@!&ahWkz1%C`L0eFS@OUud%&imjpD;I#(6ZkL~q{+WEbmzg8jR z$IX48VlNyf<&Q|QKG8?}cK^}*W*@h(OO{zbH*8n96akFWL~yV>{+(*^khPKD!(+ut z0YQq6t96w-Qh9Drjrc7Go+_r*BJvz}Wit336LSD^ULvXtjN@rQI?w z*5{OKuAuj62v0RwY9|q|;z~opU+ixF5^Zd+$a66Ah)9B)RSq zfFl4fyxVk6u#c+U`cj|rTeiY98Jib!yyEh&lkbLE5CbHtcc+SXg)cUQc?^Bla)=x9 zVcf?cOeab=+)c78d`r@*>;W;^!z}%^gw?A;RY$Y1U2Zw<+W?V`6P2*K37!F~R#G;T z%P-ZpSXbiaN~XCbnSGG%320VUCaZf&1HXrFP{+ya_T&aI#3JdPsq;#QQ(ly6@GanC z*EJ#(wQ9a@(B}#MMg!@vqjzY&V%~!%TRHe=B!X=xCMHiD^H^yQU}G=YB8OIGzfltA zpDdrpO+k-#rrO$RWgdFL0*w_?E-QG6Fhu&$<|V${PRG z`hx8)RPPzIvnDtcg&nJvu~3e{u+s`p>-#%1E>hOl#PHB@G&_;5VbDvM<9Y#9< z>S(Wf*{w9CpJ;sRv*!F8ld&uVo()6dLEMs9ez6x@5$z5hFTDgCc@I`206D$tR_sc361 zkt5Dn1N?F^Vt*6GckxZb-&Qm!KlRU)!B?1ggs4=v!c|*&M+;6jgk-57-k-Vj-F*C) zlYfE_eZp$sR%J0gVreCKvjLI$eRGXe`X%3UH2798jg@syAP?UbPvGwbf^DS3F9UJ3 z5FEh0D{^;h?zn(n)btQKie5grPxjn>i_5rP^?diS7j=LCANOW0uE05KhD1D2e0NmE zwY_OM&Tah6%_rjT*8XvPIuG#wv11C(+`1`jT$n1hvk{Y`xOcGWOp$wX7_Hkjif%$K z<=t-_WQOZrb5buLqen5=f~==a3eW@g>z4f_QVyghnLM-p zc=k@f{F%!TN(McsZY3fZbRtrROSI-9nMz|o-$s&AS)1YxuopWhS%>NZidwht`OWnuINJwx_sSb&NGM5O>A@emW zD}Z7}dqfW?)qj-tMmDIIwg|vVZ|MKuAm%|#O)1NoBKuMhXYPkk3!rTg9hJj{Laevg9SA3@c?6&6Q7 zT$}fgd%F~YIJt9d{s}DiRP<@drjU!xY4lIGgi=h9LBigxyA|H%JvJ5oa7ak@pY(f# zLfOA{^oSG9AxU`549)h=lxm0pCEM0%j8B;;Ncag>FZlSZAVGciYNkL8K%!E2aiD@O zQQMu94Zr!{W}4f3I!O|oV3=BmZJb2D8kO$VeZI{5AEer z!-LVyBV{i5F_+`VAD|uudB42{`74>A`1#4)U*0ejw{u50yw1^`%vY6*G;C@~&U^2^ z8xYDP<4DJ2lFJ8pH>vzIfv{WbCXj!Pa7}FPv#AEDE(Psiv#s z!f*AOwjReXT`pY&)zJBeSG)R5*tVU=ox21_**C^$Tn|X5`{$8ABM+pLR`O<@DPb+^9=Y6*_GHezc0D#^nOo+i6Gl&&*l3E~C0pz9F$nUDtK z(?C_akGj~cc$T}HQ`knkLN-=i*j8PMQ>|sw@^Pc6?Di`!8_?UjFUSVWv~34ciGg->=!f5xd!Rh%=)_qoV}philvdOYx)fz z@t~)=IRZ4z->P_+-?mdxs}!fGL)t0fgFK7S54dR&0A*But1g{o=u$i%c`T22R`}r% zqC(Yn$=ZJQO^x}}hkJW#EN}|RtCXLl&!i3=8MMLBe(f!dvp3bi~C>nI+5vCJfo&3GeVDLBs+-L22KX7cS>cyc$x$u8}=Kw{C!xr!lsRB zrCO>aCZ!^+hoAw-b)xe~BcUxp9VZOj1OMl!yZ;~m9F(K;yKxH0T>~a{YtGF%hdv*H zCP$F{fo65EN5fK8+J2>Pxlv0{0`d@uIndKE$$C|=XgcjbXl zU+H-FF7KIZCVQeT?_W9NITZ}2lNjS5f)ZaZkFSa4y5%0`A%U||O{&$m&ijn$&fLlQ z6Okvk#V1`<5JXVx@##~pgxa-ua*hmG%*3o$=XG&K9h}t8?qlga!kC~OI`16=9c?8 zmAV?2XWsOmCs^FiI`24G8*sivZj&rpu@`7$)m^3~y=dL-tZgk)=wrgwxu+Xr? z)mb%Kkyw{b5QtH$G^U&r+_Es`$8Qa)q37-J*zezMiD~w@*snu{aUt)W1ZbR2eO-+W zrRFw2GkHz(kVgmVd%ISw)`7IN1giNR$!3CU?}fpVI?IyE6a#?>unlj(FENZ#>dWAi zu*&C5H?P~N-R`6a^LuRmnTU(vc?!{Y+0XApU3d_zqek=ng@G%tb>Cn-u?jvk749PM z?x;^gCGO+AK#9|j%gsjU{Vfh$3}*kpUc7-^i=4h)-FI5Kdq9~;Q=xnYyn>V%d7~>| z0iE=Ld$yjXqVagu@bbmv>#G|~uM1XBp9VcywS9WAO0_u4Ja|g;iAHiFz_$&Dai;EZ zU;E_h{pY5m@NHepQ4<|d35H$CX#;nASKF4DqX-xBPRXXtKAY{k<8KCUQDo6Kv)wa; z-LxK&d$e>dU3AjR`?dYt#xG-7D^KYVIwPF0K0*veTe9(j1IMT6K*C3C2j~D-`7TH4 znI;H;n1#8U_CJGG;x-Q%f_yy5MfKj=+7Gj=Sf-5leOnn4m+E#{ZRe5<03esET!<)s(!Fr6pC`PwslU za3zl~89r%@Q%qLi-f)Vc0*1$V3}GAs?NR{&)4VryG^nu6SKWbCG-^zi_276#`ROH# zW4o}AM~uZ$0bp)bK9@Obvu0?|Xx85}AI9HY#gF3rXk%7!{LgLrG;+qQW^rcUmc_x* zti&waOooqvyU)24`o_}E-Hb%YO23q&bzlH7+&DaJQ5^(?B5P>@X)-Rn0PbvCi~2Ah zG=)9X6ER7W2h18N(Yhqr1w{=5nT<{9u$ZclgIbRU&spuMt42xQ@RySpYq{Q8ZN`iQ zJbzm63(oLwaYHMq{Htu+7~KfWb&f$4nBtrU9&s?|>`Sg#%zG$~(9i#HZCI1$obfnH zd-udIaE?`3 z)C6Nmk3DqPsp(P5{OT&S7v}WC;f?Vya%e3Lpk~ScO&$E*l|xYjjZSY-Gd9;@xQgKs z*HWG$+Kz%3=tK@zqpAf97EM}HS5*?e`AE{o<_0lsI)$#*d&`1uOotBLo|5RU&w2ad zv0f_*DL61(0fQb~YI-`A7j5+cW!@zPe>Oo13}O!Ck3<(?91uZ-VD9Hdsfm#GxNdCU4RXa+DXqzHB#C zqICj_g&(>k)?Zs?F$d{0QStj)BAf7s^a#pT?WDX!-{2U4xzC8X0J!#&NjDwx4I~Nk zojEq87!R)!(OApVoPz^iAHT0!g`C>Drunpe&-tjS6XE;*tNlN@T9v5N81Wv)RceIs z)UCl``+(^gJ)imYi`}NroIAl&i_I%9@yd@Ed zqL`|;3@4FTzg7^mg}#-)r+0vR(g!31SiJQ!Fu;H9kfCS+ceabBJQ$=SX$YQ;hqjLe z6-U3x_*~Ds8Jy|2)10=5O)=0eX?$RVDg#M_qDoScp^5m?6vYk6-Ts}?H^{{ z{&-t*;@qE^rVRkgoU|upZ-(MLi&9Xrn0|ajy7XU|n#(hLm_`M0NO0k5uNUii_5Lw_ArF!G_FVNgW2J1oWlE z6|UCfLL!q~Q_7d-m;&!*d~7~a4SFLylM-sNGwTnkuF+nHJ zK4+L|zh3+=i~2UpVJeRW$zPO5MjI+Hup(4c={1ga9di$7hG-T#w+FhbW z)vJ}J`-R7!hIrn;_*!-&*-9WnWXC$RaB2w2Oh^QXsSAGTehOHNdg8!yS6-8nxMHfYixcixPod7diS+5IM@gnG>`Nqyg zR)NKR;+nmdHtCn)gGY8HP#X@2FBR6;sw8@vbEs^xtcA+3-rte6l2V&(bk{b30hDv= z@@vmJN*K$2pFhhSj*T;{Z(|wPPv!lFFlIZ%lbmvm>#(G#HYDfM3S<|ur%aOV@27D(331@7me#1}6V+)nP?{bg9<~h_6!c=AR z`e3uxOp7nR^OeuiNio zM%L2pDUFZG&VEA-);bV>AClgX_WiJ|9cV~N3@En97?LQ4p}^ZqOsZ4j-l)4t4m^qH z&bm@!Ui%Y5q;K8l1^uCcBXSo4S2HE}Us>ay95IY%Ek{cl^B3&6!P`Td?PD=DWnfDf zenG#@QZGC|q|E$E_Z3`!a|go>H!CiD_Dj-UA@zWdT`O)n#oPTvuW6vD2Dlk%TbmA8 z*8!M!ImbUUe08)kPm?dXQ-lXSSlJ7g7fa{ovDDe-poN%l`_YPQAN=1H4G{*nZvZ#>zv>Xb^s} zk68|ZXe_QAMv+{|>lXQSZwGubD3nb939zu2aUjMk1Eg)I;(FH`5L&3qZx4+ciw7M)G`q-uE*Gu1B&ysqgJnsczxo3z8O=`U32Hj#F47Vg> z369;6_%q!dP=`TSNj*R$^cnBon@MG9{iW!?tYBO8cyF!>{rH%A7j~0;Ga*~E0XI#(o>e#QoE0;rJ1`?xc`~`r@=N9T89R$h8A@#Hycc63 z?bst+Jv6A&3LvaYy)lp%>rT{*|J!`7Xojg=LNyvpv^xL&MwhSjZUq%j{UvK+(03|0 z;Hu6t-L~GFH}54A%y7GYW?`F@O`_raer(Pu<~S-(d&Offw}k4OZKAC3OozwH_P*lAdi30mg8ZHB3B!H{T$6=Uk_^DJd8} z4WGnHbj!pnKjgmC&zwxY92;G`_;R=s@MkN(UaWUek@(zmHTcz+gI|AD?ZokS z6$yUImv&I4IF;Ew~STBkD2?MESSk28mFNTS)twtQ?X`fo#A z7r-SWnN|=lGC(7diO{tVcI~wvp77bZ`#$ZCdwggx#ffju4B<;{-eQ-w0XfRCO)?Qo z;OGLFn>cL`p+0B1kQ~(4Syw%zLL?G$G3Sj#wGF@g$_KI|RSIu*W$u0WsTxc41zgO+rM%T}FA*QmLu(@0zr zW5>5hpa#C?v16#>qUdYDGU{~wV`ApXO1(3lDGnjW3T*Xhj;ZRo`p>6U!Mf*{&Ys6G zR+fP39@BDia6SAI+Tjyies4;C$!{Oy6P#c?o@RoG+!zRw$%zQkO{ydZ|JmnJ^I()1 zu&nD!AP+#+Eg>cSeCxpUAvED;-@7%4Z33V@@|-Eu(jlL5bKhj^{I1!U0Vx*gUR_UX0g;WW8A#F+@#BhRK_KKPD#3o>&w} z+qe(YY%{G}+Fs_62V8m}05#PXah95$m699)-ri|JO$3dYfHZJU*gpdYB54BkMow~f zB44Udr^D##lzGROru~!ITDBe4^YTtPFpm%YK}O3AWB@T}x^5MeDe+iT?nJe31@@&9 zQM?0z+~{E2JZAu6Gy>>ADHhmYvKQU;n@04`6c09;?tMdiUAu9i_n-Y*0M$hW;zu*= zB7EM;yNlM}i2)>LN}oQUz*J?aBr2ul(u;3jRw09#CcmSXOS-4C<|x0%jn7 z*aQ;W!S)&Wm*Q@&*A!?sb(}hHtUk1SXV&#+DaSpA;=LL6D6E*A?ID(1Xq3Ch|DKy` z=Q|snQ+8@)g58m1fesWf&M$Ix`mP zMQF-`X&H~inNw*RFB>18mT31IiV$Z2^8FA%_`$W|nG9+*VG6vRlW_ZTO3~(=Ec(&7 zPl`C^1+SL&IEMSjbhT>jPqNWJQ0^IgB45KGu~z9QTKV&^VMM7p;~n3i@E)qkeGCp` ziuP3aM)y;}rhvr_N=0Uu#~0yG;L~5eIV^?&z64apK0JHMl%3xF5D1<0Q(O!ju2x3hilRB4pZhu8>Jxkvww{c+U;a}#Lkg9V*g_$4BHn0YYr3|urK zgz1%_4dexQ6`@|-8KGFk;}A>vFMWu)Zmd57>ra-dzY>on>kb`5=VLE&vIQa_22|Qd zNsQHWRW0t+&|jz`upM_}X74z6hwV_}kb}BbEMujbg;ZBdbgJ1J^^N0~czdVoMUppq zBmXqwVaTgyt{GI83$CdXeyMaUhoAd?hriLl8fQkH1RxDBJ-jF?plv(&H5=)`5${O8 zgOo6-Kw)gZjI4(nY1LZ&`P{Ht8JKfwJG7}U-ec9>%0l^UcYo@BszNxZ-Ilt)Q>oUr zV?Y8%JIW15?0;@}QUwf+U&kCq#Y8ATYDk&ZF*`V1;M~%*_QRCrk>k_#1kcxh4k+~P zty>@9s_kz(j%>{pACxhn1ioZTG+t3GEVb~kEIv?a;}LexG`fr^IZ`5 z%rN`?K80XRm2LaZMJC_s?2r9Fo&T7w!#8Rt`7G_0COe& z3LY?JlxfS`CFsv`P6@;w8s)<%lfU*;5$gtN1G!fN!^`W9dmr!|JBBR%w3xZ4JhN_M z=i^9|pSIICS(DrUDGcL2@wJWf=h4@9^4aL zf(Mrg?(Uud!JPoX-2()72p-(sJ;*RK5MY2Aa`yAQ^2qz1I`!Q@Zr!STrfRR6E!}(V zy_a0Y$m@0l~k1L=gyO;D6h3scVX`jo{sdNXcbRWc7?P%yHoaj=2epIO${Ja z!m&=DFM61^onh#!ZU1t8dmW-NZKqgXdz~+5lD@2IzT^^M(xrnSMt<^p1|{pgqndFO zX0x~vCm1`hB7HOD{uI{vhSU}vBmr@^12fx298Bx@fFM@&gY{6Hc z{nXDL3!41U+a?GS0;lK^uheC+-%1=dK z*sAlgmw&FT$Z2l2ML{IV3POoDx!?-Nm#r}IJ}ff11%zOw*Gf-1Maw26sI@XBficRl zL6B!}wq4&9YngYpimutavPY6<;(RDRi zmk}WF6|?n&^r27_+WwAu=J1}lB!N|VG0(!lZlM6IA3{%aiuJt2hij&PZeahotO>LQ z@h98n8S$PbQ@rWRq1jrx!qs~Nj&FrYT@(qht*;v)%z-SN#qB>kt_TWkt%+-Sf z4D~Kg=P?A#8mB3s6RorPg9M*y6}hjiqT9>^WntI|yp64a&m#WiRz^ha?d`Dss>0>e zP!196FS>9=gXWHi#2qlHjUrpL%x29?f8c`=UP9RIuN!IkcT5qdfOhJ*t> z93<=?EQ_p#DEl0rc?I3d#>skDu|a@rUv0PS`3{{^E?Xis#6e8dF@_)B@l=dJ6odr< z1?5~~2y*ESX}sY(`6QV>BzmohbZ^u5_Uz~+uH3lg30TpCfSqr(5jgXtgN9JU*y=58 zN_|@~;>07UJ{gi*Z|X!#J8~PtTBjNkZLz&fl3?j>wPP}3I2hNpnIAv}t?maAv1dWI zN8ZBCp^*L?&EmkZmzCxgdL)woEt7vn^EFf*J4HcHbwi8?qR; zmHJIdyZ36H5PEXSzfKga)i_hdI9Kgx9^w7t#zCLyx6w6DMKRtQkUbxLH8QoR+ZSW2+H_V)Cad(-;Ef@5G>bt@ap4B!K z7&Cr=uN@{lRR_ACz~gfZT06!nwjuJ+m|zvRh_O#dU(-cN)Dm9B$s;I)ZQuoV8;Ng` zBQp?0ut#?UTRC^YYHTp+LI1`HtO|U~acM{D*R`~6xpWuE4~Cy#R&B6|={sBpl*9F* zzP&jQ{P?{Ky=;|9J+ew|Qg7z^7`!dd*&$U$ZLLW!xu11<7y9Rd4Hs4MQA8|dfFVg4 z@n~{$&N!+^Z}f7xE6knpaYw^JR6|CattbUzz~KuUO$s=1e679ovZ!`|cIC`&XdLRK zX;55E;Q>aD+Y^*TDzd^@+^q`ZNw*!xq|l#U7IBoVo>FboeC`9&5q<8 zKzK6W0=rBPkM#2kWoIrcS35hSbab^e%^2Cfw!KsgcHLVsC^VKtrx2ZH9{>W2J^&*9 zhd6FQ`oOk#&j9f{?2e$RN0Bm8+#0$8IFMA>T+@2&BGOdF|VkSf6;kk=&KtSStVm^we%; zgjycr4J=v_nm?=p=%d)}#<_4=Ll|Z@yIi&6(dCU<{Ftrjr8>h|;p~pCy8O2Ay?P4^ zi%4!@%>zMjzYowHJJa|&pp7%H;O<}GfQbj&o_80fw|4Z>hV*TE90Y)?_1DJLj;6bH z@#pLphLnX25PB}dfq@Ne2)dRER)Mi>i$_&vycIf#=Gk}#w;5mP(@WR+mZB$|v36 z;bMQejdqeOtB+qTTc&o7X*13cj}tnlnF`lbgq4Cq;{LoIn|QA}WF{kN!K}cezty1C zx9NI0JG<%N=f--i?Bl@ADkDbd#iuv9NYf5Gd-S= z0?pthva}6vH5I9vvZIw=KM&iG+R}*J&$_f zNt3PItbP-O-dC8$-#}Ox)KOx4HP>5I@364(P3$-KGu2LNVAb+8xws$7ey#|Q0Km!& zAM*~E=k{B2t+W#YEyn_RXV#C>>5CSh$=VCO>@67;>3yvI0*Eek69}e+>AwN`IFnxh z{DZNpJ0Qp2SA~CIt2=5vR%CzQxI9o8S!3X>5ylr^O#Lc|k5eWiU$P}2ChiVB51Q#G z*Z{5n>L=Mg{c}uWeQJURG&UlCzJ zIx_BSt=_hjX(S6d1s&q&WT?d*&@*hjolCSeG?*=KnXrJI9jE}&iCgt`PxpMQv+V;n zOLCs^aNr$jb-sXeZGmZ(prAOnoUrwmoi(r>P?i|vtuL3kYsrAyj~H<0n9NuaH<>QZ z_bt;@i=Bh6h6Mz{!N3js2iQ)pICeW*ZgKS%C7M?%2wELo*}$e?$frF`ABvGb;hA6b zX@N6s#G5Z^z5hVJ9#8(M=faW@5Q8chn5QYBN&aoU>wyRcF}fK)!!Lm)tJN#KO5!Jh zrp?>0>qhP->aX!^_><3B9Q;=e!+ysWh2~Vi6QN!*H-T`4`VNqEM?))&qRiD4E2WYu zRkf+1A#pFaF4h}gn5|akK4uk``}8MTH6`#Ekwa#=(vVNXaKnsB#=zK&Jj624NUrEi zW8eQ|A^*B=`w_SX*4wkr0|#UG0ipNg+c7plL0S|%Ez|8>Fx;DYB%}M>Qugu<+l%=< zx@JBTJ{l>)V@wy>jzTw(;)3{Qi5Mevq924~eF!Zd28CrmfenWFp?~p;1rbw%A7tn@ z%}}g+u?Bo!cadf*2GIn0v?Ih`dJ%p{u+}!g-C?wYLQNljia*OC2%VK`bt6q0 zb9OF4rrJ3VF=V{#!QGc(@*LW2q;dRG0R-L(?B?f z^tud3w-8Jl+s9WN^GKrn7q-*&LIlSJ1m+)xzY0)+MIsSP$gnD2{S7$Xji2ItgGy}I zQ$G#sO(a==qSwk`ATEc<>mskv({=F%l6Un=dKWwOSqmfSt1Bz*HLK;UZ-xoP6|3y0 zPuI5N9b%=KdIi3VkU~MBAn2Qokif_7+(lMCqN%Zk(94gm#-1fsttEZp&uo?rqZYr@ z)$4%SAw?fdBLI{K!{{K%3%~mQbN09Ct(_GGXTCRfSCc@>&NXm=zF7I{f-S_*4qPp{ zlLH8m#3F{Uw#|cXaZ;nEex$x8ybTs`w$NvE4=NjTiV!aSk)ZpdwU72ytY^ne3PWSc zu%H8a3PHNpo^w0#EZ`v%h9GmkmAacI0s@e(S#FmE0fC;6zv(?}vfcVF;#jH!L@{fh zrSFQ_o#l;EY-|T2b=2uJ_WRSR(ABobaN*SYO!QL%KF~cmQ8(brvhp8y)U~r0lsJ;x zEsi|mgvX@#u%j9szRV_P(U@5_%owYEBCh0fZ3k%o+Xz5Ny6?vWPb!A%iE1qjP%Z~x zHY5(p!ye?sT#QiSO4>7E#>-c9d!&cJ1fPsOpJ}b5;l8IPH?Hjum{1YOij1G_AeM$y zMS&%v5{ITHWOKoJ-JGByvZBn!Coag3wet})HmjiMvaD>dSih*=Q!jbO&~P-8vsgD{ zKNd7PU%#+!$eCe|cw~f@CsFWd{A9E* z#YCQ=fhn?Hy&*^${53z4Ih-j!66L>bEC(BK=CByvIKWVGqjVWoVWY=;k}VFkPg>Pk z6K$_XyQ7;i&ZhbPnwd^r#G$2^wl@AXO=nOQ$IjIWatpNVyOlfd9BzFQW2%N@lAdL0Q$KxUxLJxIB}7SuK#BZuz>&{`C&Itxmf?za}Tytwl>~ zTcS&?fBJLW+XD3P;d@Iz#O?=tr$9xfF95*y5Dlfdf}B2UH2y2Ss;*L7ZI{>gTD$G) z)+cysR{H3YMuPZs3eKOGGkc7D%Ghe``)BB(9$JZ}5Hm8aEfrPIpKR~lA}9Gb5r_ObhgyWw#;pKeSV%7{}dhKqIBirs=#u79QibT zX1|P|^5am$ZY6$daV)aF<{Z0kV)=Ln6qU2%Mw+?o@Bs*A>SqIG58GN9BkFq@BeOny zde!S9Z%IS{i7Y=GV~9e_dzZS(ys0mN=KC)c?Yrr~2Fj>T3O@@VC0k$^fcW=w-En;O zqct^xg3YzBdJ8Nx-7~DHV}Q&TR&4TKxBX5)i}UeYLb}v)Ue*o(onqwgQHe-3;z)fv zTf%0nn%0gpCbG!F87l*9Jmu-^aEQT-Pr~1<1Na7hQ1m)`_?~N(2qi z3`=_Np2D4NVPt(nU%bji3C{+|N>8)NgsrC6_t+UgHRBc*UI{qN(c=dr6b(?@%Z0g4 zX26_H4R;OP%E9tdACYgkRnB$?JzE7(^Egt}O$pVkKNr60IPhF}FVnhW?PgGLR+Dnu zgMfPneFW~$et<0D83}yih5cIJP)EzI`QBq z;;^WW-$3d|OG}>(6l|IZ|=3GJGUNv%TZV*wo?Ju~KatAT;86=%yyE zhANG(`e=_4L7E2SMgwxz0l0dy-*NR#pihBN8?}iOJn&O zg=h(UDYs;HMzbu_-`mwXy>WLRY1hMY6{)_WBo6)o;GGi7IIzZIws)-I@N|S2{#mE@;^6@W9Jv z_%D<^Aj_D)F^sk+n-cC`0?&~Tnr0D1h%=P?DQ?q}ugJe^jY%ovA?1_elndHtDP1x% z(@&#A!!82c)_D+u@S?4?KsgwId&1imW$gEKwjo_hDa%`4*FWaxqI2#S9d)7BEtCo+ z(00<5l0!w6;S>?PMMvO3JtKHJEal+*& z(lxoto=8S+Qo|xJCs|(t=Nzka>|wg4xnwSYk3>W|H+2SM$zF% z8!mr5`1wQ(0K@{67Q%*&B}XlI!j>6ad@Di(4+@fn=X?QtcS8X@)<~rSOBeh4w46g8 zAyk$=PxXWy6Y`=@Bwu9ymS*AdA)LSzI_5`&-R&6i6)wp8y0R)L8)s(WjXpGp%Zsf~ zOgkIr!MO)ynJZH}@oohKRm>8;?D#qfv?I!HU^UH)R$)3-f)Zx8-38-IdIxDd+K`(a zTb3*?Y}{zMw%c23`E0rO2J70P1g}(iiT6@IwX5zV@gg$#Iw_*)LtS$#C2lUf5A^1E?IOppVJ8G1EG1)()WtSA<6mGFzf0duW7+<`>TdT;yF1I42#DaWX2aWp@FwZFQ8D`ud5 zWDf~)vsdi*@Bt4b6dTy4yMMXVN{>z{UGQi;ueayn8kV_;l?lZ?dW>lz@p_p{Vq)_u zr2b%{>$a?zY>N z#!%#lcyiWxwKu14U{XXZ!+cV%Kko-PRnjvR&1_FKxx*v^mI50b!fwSW@!=)kmLGlO zSus@N;Ke5D3f`K}t(lAo9$iq(J2awiZ*G3u{8odN|I3|0UVqt>6QOECVAOtv(1yls z^T$>NP}yb^L&HAgLdVwIHa%5PH;yd(F2Cxo$hqTpg{hw@GbDeQF$-GXEmKOY-8Vf^ z3+x8gn=K!U@VJ>Fb2`x(VjYQ8`B*j$S@p@1)uY5yckR#b)iL=wpd@6H9;IGNz~5x^ z!o(vU^#D@4X`c~aP3jvMVYvvu<>gwyv}(ShZ%cc})iVJp%tS)PPPhA!l{ig8l}3nt7#R#hOs)M`|VQc&X^O6|cPIfZkuxMcGLU_xvVC34Ig{ z3}|uT0W2M`3ekZW>j#&q?)JII_mv~q3OeWO$L?%~p2rETe*a#P-01FNa#OcMd2)XX z3v?Nfx&`S4*7PRs@F%O?i5($saX1LhFheMEBPByKLpf-F2(#Bt-`vtZU&LO7AZ&91 zfhV~Y7b0%Xf$7HzgM37g!vGvZd+WSqMqej!ZF6Ju9Q#4~{?QSctZeKmi37vqsHErS z8ouvph}wwRHb98%<06O`J)*ry@5lTpvhw`OqQG@+#U3#CB?>>qgh5>SMi zA{sQHwmm|{Ep(hlx&X-hQ}(l(y0qMvqV3vcmR?PGw9I4#C@;Qrf8})R#J-#14XV;f8Y zOM2nU+C4MRpbZnzJR@w%=Q3x?Y|$LMFABPes4ZwpkerPw` zI{cE_=i?d2>#w2%r^IQD~9Eob*nfS|?IJ|7E5mrj_Emq_?|UdRdm$EOVa9 zoGP%AF^8%z5L+>a2nDt=whVip^Kr!)`K6UR|G};{0AkUg-HnZYH=R@86~fc?)JsyK z6JD}~CHZ>6J&=3^7o+RGHI5OoRBvUq36f&F*VGcCzp{ntszkTTB2x$J!gD7?mWzq_ zQ2;J;5n@DMw>@{%lL%1Rl9iADiV7e<*e?5Dw0rQSVlkyo`1&%mBy3vkX{M9xJ*#O{ z>QX{TAj8El{0xBH7SZk6(6Ft*2n5K^nDe-`>7$*aJ5#g(C%8G0A>P}I%xQ!DA(uV{ zJMwcUDIjKSxq49=!o4^B9lMpB99DX-Zm=rHQ!HNA4`|r^Fj+VEh;Lklm@Ex3)aGGZ zK6o_E6@w(KnCjq%8`k@@+nc3c6@sV1y5gFJDLJ^x!1B#wNV|BI7vrVloS!&!r#BF@ zT7(Pc+AoGqfd?JC?g*FCFsz$3{@UW}YffllC0?&b6pQ~%r@YXf)k$g%GC;W`*&A5H z2!vE^JqWIHx6SgDhJV}=CKIkWr15QGtJ0Q-uFaL#JLhtZ8Kb$#Mf0VZ;QF=Ep51*& zy?g`pZweP9Q7K%C!?MajXJ~1KUWM`K>)VpkpcmJtjLMnF1#_f6=pW9PIi$RiB$PFe zF7E2b{*dn2zd_=~p*dH50jh=5YS>$>C`9BF@?Qlp#G+Tdj{d%nbqXtQEsd}EY9Tk= zSUq+?Lf5`~Bn(nwV=7^BwOXq-nW>*mJ(up{CCmT`%ddbU#}*%_0Ivn}4DkkBQst;Mm9kIK`f&y*kC1$wIVx=8$QgC74m0P_F)|FMUv z;k@pnfpvlXwS~cebpR^|P(WrnyqXZaDgYV}?h^<^Z->?(e32i3vmiiYs{4IumNFSR z!7{qkv_hO8xw!+nY7UGDkVE42RBr+<{>L*&l~sGT(UiwJiQc<8u7JCD+r)U!|3}}! zz5ijouzxM7D&9xKM|p_y7)Y5%jUrl7;-QR&fB{b9 zZ&$BnAGghib7xfc3w6&`_e|#fk3|it!lsfUZE|1nZ}ONrwu1@aZ!Vg@d{RjoR5y|z`O<^>s_2e0`I8NtM_9)4}|U;5VX_HIh^`=4~J@4QW2CZNO^xe7)Mt; zKq9NV+Jy&jSsvK9ps>FnsWUk}NiN@+k|XpTjc?!KtwLFK>5dNq)sS(~WoP*4IBC&J zyGTR`#rQ46WR7Fy2*;FekN3wXNH`5ODP;8dwb4H~6`Pk>#ckr1_nzW3V8(N%<9zV6 zJ<(TP@i+zvazr_;OzOSjbAC5_L@s(23Z`gb0s(>OOR#LZF<9xJ;}oP&m5qPsb$s42 z&>6hAMi|4wd1X-7Y9@B)_!Pnal&-^^k?p6P%Lgfa#x*{jXW}O>*j1JDUKk7Cf493T zsT;7Di52S{BaLc#pBLOZE_XlvS?3y4A?LT+flui)985BsP+|z0iE6f%iJd~bG?u0c z(*~1K@H8qaBx0k5^-?ZZ!nmeP4Rt-GT|G#nLiE2`cL2*=5qZOLE=2PB@lCiGjWlhyRt?`7oK=n zP9z^>*Z4zPeL+9OKb$f)Rd+fpq>O0s);&flyUWS4Lk>Sgo}-B=l5o8cJMEjyjFH2y z>?Z3YWrhySV(U*II|M(Y@;0Tue(BDr#&O&~YY1Pv=#WXt=6~utVJYZ3Q+V}e=Fp4u z=YVd@&Rl-##f!%sJjc>0TQ7e|*G`^Wc94wGh|Bwum|4d+lyLe~niC%D-jsZ0S^NC( zOM?zg3P#XFTTy#iJzAm(40T-+ye|z|ChE+Hy?_GBAt^S{;1fcAoD)rElvvbJJIYYWEb3 zB6fwldi{d0*(?H7^E@9euWhrQSDr|4e68JN#i(Qz85z*x6C0sniK@55o_YPPG$7Q& zI#sW8@6#DAyLcwdQOX{7mts!9o>A}i6ktJGl0XwYWXd&T_CO8un7JR+nWbj>ScV|ZxuhGk)aLZL9;epY*+xNpO0iX%Gcm7s$%tGM{{Q@!m^a>VSs?Ogaogtuew z))z&@X7S#_xSyX`wi{AKj67xWhN&Jgs@a||(52DmQ5N^^(S?WR36o%3;%!h?A*_xV zvLO%Zb|I&P%brN2I54#Q`gI@WuY=E}`=lhvQxudJ;V3BB{~mnYyzR_?A9_x*6kS&Y za0em!4I3YdW=^|nC>r;g2hz@5lhXTOedGI>3Gw}(Y3k_+25%3EIMj2~a~G)w_Lddc zYveBCs9Jwv@$?M>iB%04y0O#uxD-_$74Y}Iel-&>?R?`T1WXSdo+6LWf(oC>>nNx^ zn&6>C+?_%KZ^4Ij9NBp3kDkZxGmb#rzA{D54c!G$u>VNhbzF=r_B+TlS5$|_E%n|d zn#CQ@8GTP-QSYl0h=@8s!koN#CO?0{_&9dpEXSeSY&2aTe|bxyB#=;aO=Gl24=%$1 zN0?8&Fr^-I4VWI0f~C+YvyA>gd7t9^xh8WgiXUO-7DX4C5f^$^ZC;D|d>duw$yZDj zF_A)6+PaV{F-Q4t#=)NLx3q*t(}KE;((GauO=)+f;zPfxboF+-XV8aw1v(F8_v6h+ zy&)6RA{0>3PrLoP6iEYF7%(9AF(*efP&0h&%l>EQzs|D6opyx|~}pz$$0oSa1i<1k8+7DRc`8^4>GlJl=(E zt(^6yHvG`9W&bP|j#m1M(}lYXp9Shp#B291%BLd{Mds zv`9Co7DbX{d%+0Y|G6{|Z|7(B?eGBo$)C2$1!I@u)#mj_Sk(F@2*{8dT>;flK}8O= zVZ`EruLg~u3oRxt4D8-6*v#`w1)a=Vg=dL_=@~i|u|2KXxmtM5*Y7cP_7+u5-6AvGwWDINzg7brdT;1oKn!PHn)YL@t>YP`xetCyw&FH zdEg1`xt$KIWp%7IwD;Yv>3>Cimvo^edAa?T5HCU7VbL`xQ|#3-A41Z;TN) zmV>+u#mibfG!xBM65DL&qFl79%jR61pF`E8ZEO^!st$DE;+w5;YNuhzrV^0j^su^C$PlbXBlTmMa`PHrd!;=F{SeF&;0O{f3om_VU>dK4kBpj@X0i`OM>G!Day2qpUYT|*nH-FP1>BBGc&s_#v#&G?i6LAnwze6l zvU>B?hAZX_kli0^AuAyvZrzFD7AdZ^D`!5}%4;b#Yko`7$|Kp7J7Ln#R@utu0`OdU zR;_gjPk8Ir9@!n87n}v8Fx08=L@tcf=0PnY3*`yt2 zjIp*@2!gH9dmWsm^6GizR_SCZll#@>2`pq;ll}D3duMo;5n`=B)UdbDZIvG+5};sXcLu@_IM(r?4e+3xb)2a-mOGnpNZKZosxI^(Ghz5)gE1| z#y-MzY_`=O{HWxV-`#%`uY{-MHLc||GOR)`rRK`?z|BHy75)@@iy%k`~7 zt%lG6gK)lUVlD0D(v#T7&2|sK&Pz|0+ss(xoQJeTEl`2W58so2AbcT}`*GQ{_?>KS z$dl2mkSEMmc@k)Pr8vNu%=cR%Pr%L+A1~P@KH?MQNj&+-ae(5k1&ulT@i6 zu)Pg`g+V|wDUp2MPXSN}MXKKJo)y(;y+-!4Tb_$-W0pgt+_uS4z?d2OnB zqROR{>(Zt1+cab7lOa_VxWGcM;PbX~@T2N7fxCUAHRQt!kiA{T8L!Lg8||DjkB1SK@}s-B4SSaENh}-@uaMB|>wM%>%B1!4JjENM$JZIm?`3!;JKvP~-~avqCVjdT{%6FRyTiy- zDD}x!Jig3**56q4Fw@2O*74JdZVm^VnGPs)yY$KTgeAdq`+Q zme38?tQd0<*8Q90wz7GmcCsxkq{EoUHlBIQ=sMbxK}i*;18Z|QdnY#GF0Q<9qJd-g z=I2g_mXw`bc)vBbk>+O_VyQV)g-Vjl&&9uY=cRjRxaRt*(PR}kJYE&b#IM~uME>tn zSm?@C4~adsB|p_wP!EsIY->3Pt-;LESwxhq7}D+{lAhs-Z=%Du31>=IpC+ zY(@x4Xfx^(XCJ*~?_{3d%P-^=^ue1tY_CDdVuPBB#WN=%RqJ(lt*ukaudZhzyM^at zC43iSf%;bI*|;>cse%FS&U1-#bImqo|1O43Z44S_cmGjb?bJwCR;`fF*0>aCQ=+RB55?^&CDmbQK&5IM4(<=0mhm~*MEGS%L zGvIZ3cO;7RMDOz4u=?D8Eq1Ex>JjoY-9>5w)1z z0Ac}^iB`seP+Qt*^16Y>&d8n5+G{Rt*`mE>l-^@tesN0nC!X-m(;AImy#BHRO0u#^ zipY^VMFICHhO(SrT~?&W)TNi(A}y7cJW5}t3OP8ScuII1Q#?W$23?}RDhkSGk8Puh zr!Knp-irM!kmOM^=CLN3&zE;tAy=aIq(i^ZKxLCG4QTar_bvBpyz^}bW5}6%k!Rm@nAKfceOz8Uo>FU6cW&f4=lbh9zrByBbi5hSH00@C zy{OLfQ|o$`ZZ@Qznz#45aMiK>4e1J=)7qjBG?}=(a5$X|mROnX)$h?BA)8%~O5ESXP4%IN+RC|Njp#J;Xvh7ki424!RHbOyC5XZB4}Ew`O$#$B zxVs3I^k~T0yUJ4Ec7@70>X;l89zHr!rrZ@Np`YHvc-<(h;IKNU!iEu^R8Y5bV?{5d zf+_#=to&xZSbr`%11vh_xqixFaxGQ4_gOg0=A2x!SpddkiJoxvTtR-8|6>b`r2HMz zFZ)MVr3M;YLHa;4bHlsju3O6gszn}4-8%K$M?qmBMnS>-mlo;ZZf|1l0vNG=vtf)o89nXszE?MwdI}@7zPsc__n&Q~*6ir3RQL4$h_XHC!nO$ptg z$$nt(Lh5vB98SiSn_5wrxs}yAG z$##hnCPvzx#emw+oPgdNwxndbfsay~-uxZiSxFt6$pNp9CMo7*NlY8c7+xwOm!F55oH(6$?FrPa+hjO*vV%?3736()-^kFi{N>AQPwO8lHEhmXU`hFF#7-6VmFCZjfZ43jY?Ki!`^ zbNod?&4eJ@|AAq%4w+L&dD3t)dbitk2Xy)Wv>UmJ3;Of`J)H>^1%(3TF{-J%tDB>} zj=dcR$i>{wmBZT2+@9;Vj?ezvE>%7nDpM{BaP9xUf6)^)k-eOl4>ysU>)lq4nX9V9 z&q@@T-GmjMwvx)qzcC%rv9aFh+%INv`@t0P>sGC;oGBx6f;!Bm*>1I` zc8s$i_m27NF4VQ8vZuix{D?_ak)m6|d@%){&9t8A#Cy^oJ%|XOlzc^)y@)Aq@|NJ* ze9*g5UKWYoYI`vgxCV^w|Je$37DVheflsOld|6@?CX_!~!EfJR)y2`t_4h_Vl~0Gl zluPx0{P>yi-8Q|PI8wkmeDGo$&7j&B9M&*8ns{65JZzeNI`_8cF4oVT2TtK&MKWn!xmCm*6&Bkw`#?%TR$D|tovlpp?~**R+DJ|gFiRg<63E#vyg}UafHpJ z)<8o}{fNaua5D4AB;JO*jP=%>U4vpFYh+}p;0`#0JWuxwVI+RcE;dZR{CqT!+0&IW z1`?bZszRltbeBtrRFyveuW#?oyLO3u;GNt78{U7sz5mgR`x5v1NiZjl^wr08>Rl9> zRwwEgj}23UCN=rxpDR%fg_xmr09kK+g4o3&uuaeMEGI?Mml@waFnneddj1o^Trldv zc)yN53N^Lg=G&&-dz*>ax+brr&hI<^yC^>&py8&rI)u~?>l!3Q@52Y~5=n(%!XlX}9Kgfw_6XvL%|3;%^rp5F$iVTXs`qY?%E)1IGH7{reTzi^7Rn^uT2p|uu{bM*FB zJ%EPIKtFeZeR_Ic&;H7%Dtvt-BHp%o`cUM_saa*J;eo$MpaGj|0)yFeJlqm9=~Hfr zTDt2m3uL1pv_0?OUre#u)`>+)c_xgLLOh7P{@>O={IX?g5|aOUy_1N-71gEMCqAvDL~dU$yR8TsUO zKLRdcy@tF)4K92^*Tc$mS@}IJF1Uj!gl}+HX6QBIM;j9Qx(k;25x zoSLFEq8+D<1`G=F&oebH_L`gk7(lSnAaINEJ_D4a0hkyp5hcsyaB&OYza2W#^2h+PxUa8kC2 zay)v^dV#*2h^@|IA@l2pxcY59xpm^I*{tNxkqLR0ZRV{gb}GrPWCbPa4XdSzXC`F3-Y%08N)(l7ZXJ`&yuRoY@F z4Qq<(GJoz0a=C#I2;_=Vw!$9AWyP4Hg4EdLe1T+jsLu=5Y1h=;)@eJjNuRdbxlXcN zes80?h`gmja8-~%ss*6K%+e$f(ixl~nl-!7mc0F~Y zQJ?LVmL?MZLyWjf)Qy__^Hl${kZx{tck|Mb6UJq=WwCNk#^|nZd%xbpP+x7VR^!&_ zOU1lmEW_v47<=!6PAv9L*{^pN<14b&gG>Dv+^OUv5^we=-hX>_v}d~M2f%CF2PRyc zKhG=1PEP-KTKUJ6@>`jyq2##2iP?d@7|7}7XjWpM{xC9ZImG~fp;qOfmG-?Wa<o`SCha$wVf_|fKr&Z?MD-)az<)As}K z&P{0O=8IDH9=Y!i2Q;I8De8Hz9V$-japC0P)AMw{K)bGNv$jkglz~pMD8vn?6r&1G zRJ%k*H!hZo(zW3Dp=|dLz8Es`RAKUD6$-g7ZjEYIx*=3c3plNi{V5xMF!&9UoBQlttN4Y6{Q^cAfIX7B5wcwfMZVh8rFcGK(MD?HPerd4 zR}0p9t(WmLSag4)qmASF7A(Ai8yJG9MdyF=A;K0-UNkOn%4K~|dm%gr4|dSS66(q%J86#BAh=5Q0kC_bh9vd)*{0nNNJn~I50_YwF z4}X(5|NhgL1ZFjJ2RG1LZzpqC!{7Rgs^VW6P$ZBxK>#{sU_!+B3;l2ApMR)+ziWJd zC*;SGelY;t`96Sodj1!}ZJ;i{k8uB>1|&gud!Q2k)*b)ONnoKM?=39~ijxKE?{KL< zm>mH#^zWSh%;WFmNpA1t2y^I~cg zREDaHVtrJU-?qQ9=;i(=3wv`jYhw;;dt*y;E_NFy%fHv+@0hPYDv}w8`kx4}zmxwR zwebfz$)|sj{~N>ccjCVr>;51H<^PlTFQ&V{)BjcV|AQI@MXeb1Pb%PlGX(sd*IyOL zKl9Qq{WGt>s*```@>fOb&s>tr{?6r3U-XZD@mF=^&kW+rQBnRwIr;nj|1Ki_!9ck3 zpKtUp0^{H5|32aWL0?(@Px`-2|9|K3*Lm*`dK8o&U;p#~|C|L?6(0aS;I|nP2Zabg M9zLiCdM3*M0#iws1^@s6 literal 0 HcmV?d00001 diff --git a/DPCService/_EventSourceUsersGuide.docx b/DPCService/_EventSourceUsersGuide.docx new file mode 100644 index 0000000000000000000000000000000000000000..248e3e555e12809ef6d7dd8609bd49d60357fa4e GIT binary patch literal 162815 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

q1-K(6QL|o#Q0xbG!+4Mc-cN!FFFBH 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

VP1YNK=2W6!TKG(@*Te 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 literal 0 HcmV?d00001 diff --git a/DPCService/packages.config b/DPCService/packages.config new file mode 100644 index 0000000..541a63a --- /dev/null +++ b/DPCService/packages.config @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From 6743c2511444964b85dd386339873c55ce604347 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 13:01:46 +0100 Subject: [PATCH 10/41] Added ability to write logs to disk --- DPCInstaller/ADMX/dpc.admx | 40 ++++++++++++++ DPCInstaller/ADMX/en-US/DPC.adml | 37 +++++++++++-- DPCLibrary/Enums/RegistrySettings.cs | 2 + DPCService/Core/ProfileManager.cs | 12 ++-- DPCService/Core/ProfileMonitor.cs | 8 +-- DPCService/DPCService.csproj | 1 + DPCService/Program.cs | 31 ++++++++++- DPCService/Utils/DPCServiceEvents.cs | 10 +++- DPCService/Utils/EventLogFileWriter.cs | 76 ++++++++++++++++++++++++++ README.md | 2 + 10 files changed, 201 insertions(+), 18 deletions(-) create mode 100644 DPCService/Utils/EventLogFileWriter.cs diff --git a/DPCInstaller/ADMX/dpc.admx b/DPCInstaller/ADMX/dpc.admx index 90eb9ff..c6e8712 100644 --- a/DPCInstaller/ADMX/dpc.admx +++ b/DPCInstaller/ADMX/dpc.admx @@ -144,6 +144,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/DPCInstaller/ADMX/en-US/DPC.adml b/DPCInstaller/ADMX/en-US/DPC.adml index f3981ae..dc06cc0 100644 --- a/DPCInstaller/ADMX/en-US/DPC.adml +++ b/DPCInstaller/ADMX/en-US/DPC.adml @@ -83,6 +83,12 @@ SHA1 SHA256 SHA384 + Critical + Error + Warning + Informational + Verbose + All PAC File Proxy Server DPC Client @@ -167,6 +173,26 @@ Examples: Optional - Specify DNS Suffix List List of all DNS Suffixes used within the organization, the first entry becomes the primary search suffix + Optional - Save Event Logs to File + Save Windows Event Logs for DPC to a separate File + +This location can be fully defined (including the filename) or just be the required directory. If the directory does not exist the service will attempt to create this directory. + +Environment variables can be used however it should be noted that the service runs under the local system account. As such variables such as %TEMP% will resolve to C:\Windows\Temp rather than the AppData location that a user profile typically resolves to. + +When a filename is not defined it will default to DPCLog.txt. + +Examples: +%TEMP%\DPCLog.txt +C:\DPCEvents.log +%TEMP% + +Event Viewer typically displays events up to informational level. Verbose and All verbosity levels will show Debug and Trace events which can be extremely verbose. + +WARNING: This file is only recreated when the DPC Service is restarted. As such it can grow substantially. There are also likely performance implications to enabling this setting. + +Due to the potential performance impacts it is only recommended to enable this setting for advanced troubleshooting purposes. Mass deployment of this setting is discouraged without extensive testing + Required - VPN Endpoint This field is required for a successful profile generation. @@ -554,6 +580,12 @@ NOTE: This setting only works on Windows 11 22H2 or later + + + + + Log Verbosity + Domain Name Information: @@ -616,11 +648,6 @@ NOTE: This setting only works on Windows 11 22H2 or later Excluded Route List - - - - - diff --git a/DPCLibrary/Enums/RegistrySettings.cs b/DPCLibrary/Enums/RegistrySettings.cs index 69fecdf..abbdb50 100644 --- a/DPCLibrary/Enums/RegistrySettings.cs +++ b/DPCLibrary/Enums/RegistrySettings.cs @@ -83,6 +83,8 @@ public static class RegistrySettings public const string MigrationBlock = "MigrationBlock"; public const string MTU = "MTU"; public const string RestartOnPortAlreadyOpen = "RestartOnPortAlreadyOpen"; + public const string EventLogPath = "EventLogPath"; + public const string EventLogFilter = "EventLogFilter"; //Shared Tunnel Public Setting Values public const string ProfileName = "ProfileName"; diff --git a/DPCService/Core/ProfileManager.cs b/DPCService/Core/ProfileManager.cs index 63ef2ee..6d69c31 100644 --- a/DPCService/Core/ProfileManager.cs +++ b/DPCService/Core/ProfileManager.cs @@ -149,7 +149,7 @@ public void ManagerStartup() private void UpdateManagerStatus(object sender, ElapsedEventArgs args) { - DPCServiceEvents.Log.TraceMethodStart("UpdateManagerStatus", "ProfileManager"); + DPCServiceEvents.Log.TraceStartMethod("UpdateManagerStatus", "ProfileManager"); //Skip execution if another instance of this method is already running if (Interlocked.CompareExchange(ref UpdateMonitorSyncPoint, 1, 0) == 0) { @@ -225,7 +225,7 @@ private void UpdateManagerStatus(object sender, ElapsedEventArgs args) { DPCServiceEvents.Log.ProfileManagerUpdateSkipped(); } - DPCServiceEvents.Log.TraceMethodStop("UpdateManagerStatus", "ProfileManager"); + DPCServiceEvents.Log.TraceMethodFinished("UpdateManagerStatus", "ProfileManager"); } private static void DisableVPNStrategyUpdate() @@ -243,7 +243,7 @@ private static void DisableVPNStrategyUpdate() private void ShowDeviceTunnelUI(object sender, ElapsedEventArgs args) { - DPCServiceEvents.Log.TraceMethodStart("ShowDeviceTunnelUI", "ProfileManager"); + DPCServiceEvents.Log.TraceStartMethod("ShowDeviceTunnelUI", "ProfileManager"); //Skip execution if another instance of this method is already running if (Interlocked.CompareExchange(ref DeviceTunnelUISyncPoint, 1, 0) == 0) { @@ -280,12 +280,12 @@ private void ShowDeviceTunnelUI(object sender, ElapsedEventArgs args) { DPCServiceEvents.Log.ProfileManagerDeviceTunnelUIUpdateSkipped(); } - DPCServiceEvents.Log.TraceMethodStop("ShowDeviceTunnelUI", "ProfileManager"); + DPCServiceEvents.Log.TraceMethodFinished("ShowDeviceTunnelUI", "ProfileManager"); } private void ClearUnmanagedProfiles(object sender, ElapsedEventArgs args) { - DPCServiceEvents.Log.TraceMethodStart("ClearUnmanagedProfiles", "ProfileManager"); + DPCServiceEvents.Log.TraceStartMethod("ClearUnmanagedProfiles", "ProfileManager"); //Skip execution if another instance of this method is already running if (Interlocked.CompareExchange(ref RemoveProfilesSyncPoint, 1, 0) == 0) { @@ -335,7 +335,7 @@ private void ClearUnmanagedProfiles(object sender, ElapsedEventArgs args) { DPCServiceEvents.Log.ProfileManagerRemoveSkipped(); } - DPCServiceEvents.Log.TraceMethodStop("ClearSystemProfiles", "ProfileManager"); + DPCServiceEvents.Log.TraceMethodFinished("ClearSystemProfiles", "ProfileManager"); } private void ShutdownProfileMonitors() diff --git a/DPCService/Core/ProfileMonitor.cs b/DPCService/Core/ProfileMonitor.cs index a01c83d..f74307d 100644 --- a/DPCService/Core/ProfileMonitor.cs +++ b/DPCService/Core/ProfileMonitor.cs @@ -75,7 +75,7 @@ public ProfileMonitor(SharedData sharedData, ProfileType profileType, Cancellati private void CheckProfile(object sender, ElapsedEventArgs args) { - DPCServiceEvents.Log.TraceMethodStart("CheckProfile", LogProfileName); + DPCServiceEvents.Log.TraceStartMethod("CheckProfile", LogProfileName); //Skip execution if another instance of this method is already running if (Interlocked.CompareExchange(ref ProfileUpdateSyncPoint, 1, 0) == 0) { @@ -180,12 +180,12 @@ private void CheckProfile(object sender, ElapsedEventArgs args) { DPCServiceEvents.Log.ProfileUpdateSkipped(LogProfileName); } - DPCServiceEvents.Log.TraceMethodStop("CheckProfile", LogProfileName); + DPCServiceEvents.Log.TraceMethodFinished("CheckProfile", LogProfileName); } private void CheckForCorruptHiddenPBKs(object sender, ElapsedEventArgs args) { - DPCServiceEvents.Log.TraceMethodStart("CheckForCorruptHiddenPBKs", LogProfileName); + DPCServiceEvents.Log.TraceStartMethod("CheckForCorruptHiddenPBKs", LogProfileName); //Skip execution if another instance of this method is already running if (Interlocked.CompareExchange(ref CorruptPBKSyncPoint, 1, 0) == 0) { @@ -233,7 +233,7 @@ private void CheckForCorruptHiddenPBKs(object sender, ElapsedEventArgs args) { DPCServiceEvents.Log.CorruptPbkCheckSkipped(LogProfileName); } - DPCServiceEvents.Log.TraceMethodStop("CheckForCorruptHiddenPBKs", LogProfileName); + DPCServiceEvents.Log.TraceMethodFinished("CheckForCorruptHiddenPBKs", LogProfileName); } private void ProcessGPUpdateNotification() diff --git a/DPCService/DPCService.csproj b/DPCService/DPCService.csproj index 5b88895..2ec8d0a 100644 --- a/DPCService/DPCService.csproj +++ b/DPCService/DPCService.csproj @@ -135,6 +135,7 @@ + diff --git a/DPCService/Program.cs b/DPCService/Program.cs index 49a034c..3528138 100644 --- a/DPCService/Program.cs +++ b/DPCService/Program.cs @@ -1,5 +1,9 @@ -using DPCService.Utils; +using DPCLibrary.Enums; +using DPCLibrary.Utils; +using DPCService.Utils; +using Microsoft.Diagnostics.Tracing; using System; +using System.IO; using System.ServiceProcess; namespace DPCService @@ -15,6 +19,23 @@ internal static class Program /// private static void Main(string[] args) { + EventListener genericListener = null; + try + { + string eventLogPath = AccessRegistry.ReadMachineString(RegistrySettings.EventLogPath); + if (!string.IsNullOrEmpty(eventLogPath)) //If Event Log Path is not defined, do not save event logs to a file + { + int eventLogType = AccessRegistry.ReadMachineInt32(RegistrySettings.EventLogFilter, 4); //Default to Informational messages - in line with Event Viewer + EventLevel eventLevel = (EventLevel)eventLogType; + + genericListener = new EventLogFileWriter(eventLogPath); + genericListener.EnableEvents(DPCServiceEvents.Log, eventLevel); + } + } + catch (Exception ex) + { + DPCServiceEvents.Log.FileLoggingConfigError(ex.Message); + } #if SYSATTACH //Used to debug under system privileges. Launch the application using PSExec and then attach VS to the process string startProg = null; @@ -50,6 +71,14 @@ private static void Main(string[] args) DPCServiceEvents.Log.ServiceModeEnabled(); StartService(); #endif + try + { + genericListener?.Dispose(); + } + catch (Exception ex) + { + DPCServiceEvents.Log.FileLoggingDisposeError(ex.Message); + } } ///

diff --git a/DPCService/Utils/DPCServiceEvents.cs b/DPCService/Utils/DPCServiceEvents.cs index 828ddc0..54bcd56 100644 --- a/DPCService/Utils/DPCServiceEvents.cs +++ b/DPCService/Utils/DPCServiceEvents.cs @@ -53,6 +53,12 @@ internal sealed class DPCServiceEvents : EventSource public void StartGPUpdateMonitoring(string profileName) { WriteEvent(28, profileName); } [Event(29, Message = "Custom MTU setting enabled while existing profiles have not been configured for removal\nIf there are any non-DPC Profiles on this system they will likely also be impacted by the MTU change", Level = EventLevel.Warning, Channel = EventChannel.Admin)] public void ExistingProfileMTUImpact() { WriteEvent(29); } + [Event(30, Message = "File Logging Configured to: {0}", Level = EventLevel.Informational, Channel = EventChannel.Admin)] + public void FileLoggingPath(string filePath) { WriteEvent(30, filePath); } + [Event(31, Message = "File Logging Configuration Failed with error message: {0}", Level = EventLevel.Error, Channel = EventChannel.Admin)] + public void FileLoggingConfigError(string message) { WriteEvent(31, message); } + [Event(32, Message = "File Logging Closure Failed with error message: {0}", Level = EventLevel.Error, Channel = EventChannel.Admin)] + public void FileLoggingDisposeError(string message) { WriteEvent(32, message); } #endregion 1-100 Application Startup #region 100-199 Application Shutdown @@ -388,9 +394,9 @@ internal sealed class DPCServiceEvents : EventSource [Event(9800, Message = "Unknown error, Error Function: {0} \nMessage {1} \nStack Trace {2}", Level = EventLevel.Error, Channel = EventChannel.Admin)] public void GenericErrorMessage(string codeLocation, string message, string stackTrace) { WriteEvent(9800, codeLocation, message, stackTrace); CriticalHaltDueToError(); } [Event(9005, Message = "Method {0} started for Identifier {1}", Level = EventLevel.Informational, Channel = EventChannel.Analytic)] - public void TraceMethodStart(string methodName, string threadID) { WriteEvent(9005, methodName, threadID); } + public void TraceStartMethod(string methodName, string threadID) { WriteEvent(9005, methodName, threadID); } [Event(9006, Message = "Method {0} finished for Identifier {1}", Level = EventLevel.Informational, Channel = EventChannel.Analytic)] - public void TraceMethodStop(string methodName, string threadID) { WriteEvent(9006, methodName, threadID); } + public void TraceMethodFinished(string methodName, string threadID) { WriteEvent(9006, methodName, threadID); } #endregion 9000+ Special events diff --git a/DPCService/Utils/EventLogFileWriter.cs b/DPCService/Utils/EventLogFileWriter.cs new file mode 100644 index 0000000..c787b2c --- /dev/null +++ b/DPCService/Utils/EventLogFileWriter.cs @@ -0,0 +1,76 @@ +using Microsoft.Diagnostics.Tracing; +using System; +using System.IO; +using System.Linq; + +namespace DPCService.Utils +{ + sealed class EventLogFileWriter : EventListener + { + private StreamWriter LogFile; + + private readonly string FileName; + + public EventLogFileWriter(string filePath) + { + //Turn values such as %TEMP% into actual file location + filePath = Environment.ExpandEnvironmentVariables(filePath); + + if (Directory.Exists(filePath)) + { + //Specified path is a directory and not a specific log name + filePath = Path.Combine(filePath, "DPCLog.txt"); + } + + //Fully resolve the file Path to avoid ambiguity with log locations + filePath = Path.GetFullPath(filePath); + + //Ensure that the Directory exists otherwise creating the file will fail + Directory.CreateDirectory(Path.GetDirectoryName(filePath)); + + FileName = filePath; + DPCServiceEvents.Log.FileLoggingPath(FileName); + } + + protected override void OnEventWritten(EventWrittenEventArgs eventData) + { + if (null == LogFile) + { + //Event Sources can be registered prior to filePaths being defined and therefore leaving the Log File unopened + OnEventSourceCreated(eventData.EventSource); + } + try + { + string eventMessage = string.Format(eventData.Message, eventData.Payload.ToArray()).Replace("\r","").Replace("\n","\\n"); //Resolve event parameters and ensure that the message is all on 1 line for log file consistency + string logMessage = string.Format("{0} UTC\tEvent ID: {1}\tLog: {2}\tSeverity: {3}\tMessage: {4}", DateTime.UtcNow.ToString(), eventData.EventId, eventData.Channel, eventData.Level, eventMessage); + LogFile?.WriteLine(logMessage); + } + catch + { + //Don't throw any errors relating to failing to write to the file log, this is a secondary logging mechanism and a failure to log shouldn't be the reason that primary functionality breaks + } + } + + protected override void OnEventSourceCreated(EventSource eventSource) + { + if (string.IsNullOrEmpty(FileName)) {return; } //Do not attempt to set up logging prior to full class initialisation where FileName is defined + LogFile = new StreamWriter(FileName) + { + AutoFlush = true + }; + + LogFile.WriteLine("Starting File Logging for " + eventSource.Name + " at " + DateTime.UtcNow.ToString() + " UTC"); + } + + public override void Dispose() + { + //Flush and dispose of the open log stream file to ensure that it gets written to disk prior to shutdown + LogFile?.WriteLine(DateTime.UtcNow.ToString() + " UTC - File logging Stopped"); + LogFile?.Flush(); + LogFile?.Close(); + LogFile?.Dispose(); + LogFile = null; + base.Dispose(); + } + } +} diff --git a/README.md b/README.md index 4767a7b..fcfedad 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,8 @@ Unfortunately there is no easy way to copy an existing Configuration policy and ## Version vNext - Fixed bug where DNS Route resolution with the same IP addresses would cause the resolution to fail +- Fixed issue where Operational logs wouldn't show in Event Viewer +- Added Option to write Event Logs to Disk ## Version 5.1.0 - Added detection and removal for corrupted hiddenPBK files From a3d1ed948727dd31f0095fc3926a293c74f0f324 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 15:48:31 +0100 Subject: [PATCH 11/41] Fix Operational Events not showing in event log by forcing a reorganisation of the auto-generated Manifest file into the correct channel order --- .../Scripts/Update-ETWChannelOrder.ps1 | 48 +++++++++++++++++++ DPCService/DPCService.csproj | 3 +- 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 DPCManagement/Scripts/Update-ETWChannelOrder.ps1 diff --git a/DPCManagement/Scripts/Update-ETWChannelOrder.ps1 b/DPCManagement/Scripts/Update-ETWChannelOrder.ps1 new file mode 100644 index 0000000..8abf6a5 --- /dev/null +++ b/DPCManagement/Scripts/Update-ETWChannelOrder.ps1 @@ -0,0 +1,48 @@ +<# + This script ensures that the ETW channels are in the correct order. It appears that sometimes the operational channel is not the first in the list. While in theory this shouldn't cause and issue, + The windows event log viewer (Eventvwr.msc) ignores operational events if it is not the first channel in the list, even if all the attributes are correct. As we don't have control of the manifest + Generator, and the generator hasn't been updated in a decade, using this script re-orders the XML into the correct order without needing to disrupt any other systems +#> + +Param +( + [Parameter(Mandatory)] + [string] + $TargetDir +) + +$ManifestPath = Join-Path -Path $TargetDir -ChildPath "DPCService.DPC-AOVPN-DPCService.etwManifest.man" +$OriginalContent = Get-Content -Path $ManifestPath +[xml]$Manifest = $OriginalContent + +$OldChannels = $Manifest.instrumentationManifest.instrumentation.events.provider.channels +$Tasks = $Manifest.instrumentationManifest.instrumentation.events.provider.tasks + +#Locate the current channel information +$OperationalChannel = $Manifest.instrumentationManifest.instrumentation.events.provider.channels.channel | where chid -eq "Operational" +$AdminChannel = $Manifest.instrumentationManifest.instrumentation.events.provider.channels.channel | where chid -eq "Admin" +$DebugChannel = $Manifest.instrumentationManifest.instrumentation.events.provider.channels.channel | where chid -eq "Debug" +$AnalyticChannel = $Manifest.instrumentationManifest.instrumentation.events.provider.channels.channel | where chid -eq "Analytic" + +if (($null -eq $OperationalChannel) -or ($null -eq $AdminChannel) -or ($null -eq $DebugChannel) -or ($null -eq $AnalyticChannel)) +{ + throw "Something went wrong identifying standard channels" +} + +#Create a new Element as the existing Element gets messed up when all the children are re-ordered +$Channels = $Manifest.CreateElement("channels") + +#Set the channel order correctly +$Channels.AppendChild($OperationalChannel) +$Channels.AppendChild($DebugChannel) +$Channels.AppendChild($AdminChannel) +$Channels.AppendChild($AnalyticChannel) + +#Remove the old and busted node +$Manifest.instrumentationManifest.instrumentation.events.provider.RemoveChild($OldChannels) + +#Add the new node into the correct place within the XML Heiarachy +$Manifest.instrumentationManifest.instrumentation.events.provider.InsertBefore($Channels, $Tasks) + +#Overwrite the original file +$Manifest.Save($ManifestPath) \ No newline at end of file diff --git a/DPCService/DPCService.csproj b/DPCService/DPCService.csproj index 2ec8d0a..659eed6 100644 --- a/DPCService/DPCService.csproj +++ b/DPCService/DPCService.csproj @@ -186,8 +186,7 @@ - - + powershell.exe -ExecutionPolicy Bypass -File $(SolutionDir)\DPCManagement\Scripts\Update-ETWChannelOrder.ps1 -TargetDir $(TargetDir) From 84f289f5994d9c3a3ee49383791591a14c1d0f01 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 15:50:52 +0100 Subject: [PATCH 12/41] Identified and fixed support for WMI profiles correctly identifying when Disable Edit UI and Disable UI Disconnect options #3 --- DPCInstaller/ADMX/en-US/DPC.adml | 2 +- DPCLibrary/DPCLibrary.csproj | 2 +- DPCLibrary/Enums/PBKOptions.cs | 15 +++++++++++ DPCLibrary/Models/RASPhonePBK.cs | 25 +++++++++++++++++- DPCLibrary/Models/WMIProfile.cs | 5 ++-- DPCLibrary/Utils/Reader.cs | 44 -------------------------------- 6 files changed, 43 insertions(+), 50 deletions(-) create mode 100644 DPCLibrary/Enums/PBKOptions.cs delete mode 100644 DPCLibrary/Utils/Reader.cs diff --git a/DPCInstaller/ADMX/en-US/DPC.adml b/DPCInstaller/ADMX/en-US/DPC.adml index dc06cc0..83aeb86 100644 --- a/DPCInstaller/ADMX/en-US/DPC.adml +++ b/DPCInstaller/ADMX/en-US/DPC.adml @@ -187,7 +187,7 @@ Examples: C:\DPCEvents.log %TEMP% -Event Viewer typically displays events up to informational level. Verbose and All verbosity levels will show Debug and Trace events which can be extremely verbose. +Event Viewer typically displays events up to informational level however typically excludes events in the Debug and Trace channels which can be extremely verbose. WARNING: This file is only recreated when the DPC Service is restarted. As such it can grow substantially. There are also likely performance implications to enabling this setting. diff --git a/DPCLibrary/DPCLibrary.csproj b/DPCLibrary/DPCLibrary.csproj index 51cce13..6dfa206 100644 --- a/DPCLibrary/DPCLibrary.csproj +++ b/DPCLibrary/DPCLibrary.csproj @@ -80,6 +80,7 @@ + @@ -150,7 +151,6 @@ - diff --git a/DPCLibrary/Enums/PBKOptions.cs b/DPCLibrary/Enums/PBKOptions.cs new file mode 100644 index 0000000..a6eed1f --- /dev/null +++ b/DPCLibrary/Enums/PBKOptions.cs @@ -0,0 +1,15 @@ +using System; + +namespace DPCLibrary.Enums +{ + [Flags] + public enum PBKOptions : uint + { + None = 0x00000000, + Unknown1 = 0x00000001, //It is not currently known what this enum flag currently sets + Unknown2 = 0x00000002, //It is not currently known what this enum flag currently sets + Unknown3 = 0x00000004, //It is not currently known what this enum flag currently sets + DisableUIEdit = 0x00000008, + DisableUIDisconnect = 0x00000010 + } +} diff --git a/DPCLibrary/Models/RASPhonePBK.cs b/DPCLibrary/Models/RASPhonePBK.cs index f5dbab4..d3d934c 100644 --- a/DPCLibrary/Models/RASPhonePBK.cs +++ b/DPCLibrary/Models/RASPhonePBK.cs @@ -1,4 +1,5 @@ -using DPCLibrary.Utils; +using DPCLibrary.Enums; +using DPCLibrary.Utils; using System; using System.Collections.Generic; using System.Globalization; @@ -76,6 +77,28 @@ public bool GetAlwaysOnCapable() } } + public bool GetPBKOptionsStatus(PBKOptions optionFlag) + { + if (ProfileSettings.ContainsKey("Options")) + { + try + { + PBKOptions optionsFlags = (PBKOptions)Convert.ToUInt32(ProfileSettings["Options"], CultureInfo.InvariantCulture); + return optionsFlags.HasFlag(optionFlag); + } + catch + { + //Any error just assume that the tunnel does not have the flag set + return false; + } + } + else + { + //If not included in PBK assume not registering + return false; + } + } + public bool GetRegisterDNSStatus() { if (ProfileSettings.ContainsKey("IpDnsFlags")) diff --git a/DPCLibrary/Models/WMIProfile.cs b/DPCLibrary/Models/WMIProfile.cs index 6ae0c4c..641776a 100644 --- a/DPCLibrary/Models/WMIProfile.cs +++ b/DPCLibrary/Models/WMIProfile.cs @@ -40,9 +40,6 @@ private void LoadProfileFromVpnConfiguration(ProfileInfo profile, CancellationTo SplitTunnel = Convert.ToBoolean(doc.Root.XPathSelectElement("/VpnProfile/VpnConfiguration/SplitTunneling")?.Value, CultureInfo.InvariantCulture); AuthenticationMethod = doc.Root.XPathSelectElement("/VpnProfile/VpnConfiguration/AuthenticationMethod/Method")?.Value; - DisableUIEditButton = Convert.ToBoolean(doc.Root.XPathSelectElement("/VpnProfile/VpnConfiguration/DisableAdvancedOptionsEditButton")?.Value, CultureInfo.InvariantCulture); - DisableUIDisconnectButton = Convert.ToBoolean(doc.Root.XPathSelectElement("/VpnProfile/VpnConfiguration/DisableDisconnectButton")?.Value, CultureInfo.InvariantCulture); - //Check if the authentication is certificate as WMI uses MachineCertificate and CSP uses Certificate to mean the same thing if (!string.IsNullOrWhiteSpace(AuthenticationMethod) && AuthenticationMethod.ToLowerInvariant().Contains("certificate")) { @@ -146,6 +143,8 @@ private void LoadProfileFromVpnConfiguration(ProfileInfo profile, CancellationTo DeviceComplianceSSOEnabled = pbkProfile.GetDeviceComplianceSSOEnabled(); DeviceComplianceSSOEKU = pbkProfile.GetDeviceComplianceEKU(); DeviceComplianceSSOIssuerHash = pbkProfile.GetDeviceComplianceIssuerHash(); + DisableUIEditButton = pbkProfile.GetPBKOptionsStatus(Enums.PBKOptions.DisableUIEdit); + DisableUIDisconnectButton = pbkProfile.GetPBKOptionsStatus(Enums.PBKOptions.DisableUIDisconnect); } catch (Exception e) { diff --git a/DPCLibrary/Utils/Reader.cs b/DPCLibrary/Utils/Reader.cs deleted file mode 100644 index d766cd6..0000000 --- a/DPCLibrary/Utils/Reader.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Threading; - -namespace DPCLibrary.Utils -{ - public static class Reader - { - private static readonly Thread InputThread = InitaliseInputThread(); - private static readonly AutoResetEvent getInput = new AutoResetEvent(false); - private static readonly AutoResetEvent gotInput = new AutoResetEvent(false); - private static string input; - - static Thread InitaliseInputThread() - { - Thread inputThread = new Thread(ReadValue) - { - IsBackground = true - }; - inputThread.Start(); - return inputThread; - } - - private static void ReadValue() - { - while (true) - { - getInput.WaitOne(); - input = Console.ReadLine(); - gotInput.Set(); - } - } - - // omit the parameter to read a line without a timeout - public static string ReadLine(int timeOutMillisecs) - { - getInput.Set(); - bool success = gotInput.WaitOne(timeOutMillisecs); - if (success) - return input; - else - throw new TimeoutException("User did not provide input within the time limit."); - } - } -} From 409e626c03db11529d4bbc09f2b6ac21bf935592 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 15:52:44 +0100 Subject: [PATCH 13/41] Update README in preperation for release --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fcfedad..19b61d4 100644 --- a/README.md +++ b/README.md @@ -54,9 +54,10 @@ Unfortunately there is no easy way to copy an existing Configuration policy and # Release Notes -## Version vNext +## Version 5.1.1 - Fixed bug where DNS Route resolution with the same IP addresses would cause the resolution to fail - Fixed issue where Operational logs wouldn't show in Event Viewer +- Fixed issue where Disable UI Edit and Disable UI Disconnect would cause a profile mismatch warning even when set correctly - Added Option to write Event Logs to Disk ## Version 5.1.0 From e4b43afbd0a41d8bc5b8ab9e94ab8f8605916939 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 16:03:14 +0100 Subject: [PATCH 14/41] Update README with Feature already added to the development branch --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 19b61d4..c8b26b3 100644 --- a/README.md +++ b/README.md @@ -54,11 +54,12 @@ Unfortunately there is no easy way to copy an existing Configuration policy and # Release Notes -## Version 5.1.1 +## Version 5.2.0 - Fixed bug where DNS Route resolution with the same IP addresses would cause the resolution to fail - Fixed issue where Operational logs wouldn't show in Event Viewer - Fixed issue where Disable UI Edit and Disable UI Disconnect would cause a profile mismatch warning even when set correctly - Added Option to write Event Logs to Disk +- Added Support for excluding Resolved DNS IPs from a VPN Profile ## Version 5.1.0 - Added detection and removal for corrupted hiddenPBK files From 980bf9853ea8a4bd0d280f448f43052fff4e7976 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 20:00:42 +0100 Subject: [PATCH 15/41] Refactor DNS lookups to continue in the event of a single resolution issue. Add more tests for DNS Exclusion scenarios --- DPCInstaller/ADMX/en-US/DPC.adml | 6 + DPCLibrary/Utils/VPNProfileCreator.cs | 218 +++++++++++++--------- DPCLibraryTests/VPNProfileCreatorTests.cs | 118 +++++++++++- README.md | 6 +- 4 files changed, 256 insertions(+), 92 deletions(-) diff --git a/DPCInstaller/ADMX/en-US/DPC.adml b/DPCInstaller/ADMX/en-US/DPC.adml index 83aeb86..cfa3041 100644 --- a/DPCInstaller/ADMX/en-US/DPC.adml +++ b/DPCInstaller/ADMX/en-US/DPC.adml @@ -393,6 +393,8 @@ NOTE: This is equivalent to nslookup and cannot account for related but unknown NOTE: This option does not support wildcards +NOTE: This option only supports IPv4 address resolution + When a Forced Tunnel configuration is enabled this setting is ignored 'Value Name' should be the route to include @@ -417,6 +419,8 @@ NOTE: This is equivalent to nslookup and cannot account for related but unknown NOTE: This option does not support wildcards +NOTE: This option only supports IPv4 address resolution + When a Split Tunnel configuration is enabled this setting is ignored 'Value Name' should be the route to include @@ -473,6 +477,8 @@ NOTE: When Register DNS is configured on the Machine Tunnel, this option is igno Office 365 traffic is often high bandwidth and communicating with a known and trusted source. These routes can change weekly so the exclusion list is dynamically generated by querying the Microsoft API. NOTE: This option requires the device identity (not just the user) to have direct (unauthenticated) Internet access to https://endpoints.office.com. Currently a proxy is not supported with this option. + +NOTE: This option only supports IPv4 address resolution Optional - VPN Protocol Specify the VPN Protocol to use and the order to fallback. diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index d750e1a..2188de4 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -6,6 +6,7 @@ using System.Globalization; using System.IO; using System.Linq; +using System.Net; using System.Text; using System.Xml; using System.Xml.Schema; @@ -21,6 +22,8 @@ namespace DPCLibrary.Utils public class VPNProfileCreator { private static readonly object O365ExclusionLock = new object(); + private static readonly object DNSExclusionLock = new object(); + private static readonly object DNSInclusionLock = new object(); private readonly StringBuilder ProfileString = new StringBuilder(); private readonly StringBuilder ValidationFailures = new StringBuilder(); @@ -83,6 +86,7 @@ public class VPNProfileCreator private bool DisableAlwaysOn; private bool DisableCryptoBinding; private Dictionary DNSRouteList; + private Dictionary DNSExcludeRouteList; private bool DisableNPSValidation; //Device Tunnel @@ -528,22 +532,8 @@ public void LoadFromRegistry() } LoadRegistryVariable(ref DisableCryptoBinding, RegistrySettings.DisableCryptoBinding, false); - if (TunnelType == TunnelType.SplitTunnel) - { - LoadRegistryVariable(ref DNSRouteList, RegistrySettings.DNSRouteList); - if (DNSRouteList.Count > 0) - { - ConfigureDNSIncludeRoutes(); - } - } - else //Assumes that Force Tunnel is the only other type - { - LoadRegistryVariable(ref DNSRouteList, RegistrySettings.DNSExcludeRouteList); - if (DNSRouteList.Count > 0) - { - ConfigureDNSExcludeRoutes(); - } - } + LoadRegistryVariable(ref DNSRouteList, RegistrySettings.DNSRouteList); + LoadRegistryVariable(ref DNSExcludeRouteList, RegistrySettings.DNSExcludeRouteList); } //Load in Register DNS info for both tunnels, then check the other Tunnel to check that it isn't enabled on both tunnels @@ -627,74 +617,90 @@ private void ConfigureO365ExcludeRoutes() private void ConfigureDNSIncludeRoutes() { - Dictionary includeList; - string cacheOffset = RegistrySettings.InternalStateOffset + "\\" + ProfileType; - - try + Dictionary includeList = new Dictionary(); + //Multiple Profiles in different threads can potentially try to update the O365 list at the same time, locking avoids issues with registry settings being written at the same time + lock (DNSInclusionLock) { - includeList = GetDNSRoutes(DNSRouteList); + string cacheOffset = RegistrySettings.InternalStateOffset + "\\" + ProfileType; - AccessRegistry.SaveMachineData(RegistrySettings.DNSLastUpdate, DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), cacheOffset); - AccessRegistry.SaveMachineData(RegistrySettings.DNSRouteListKey, includeList, cacheOffset); - } - catch (Exception e) - { - //TODO: Handle individual failures - ValidationWarnings.AppendLine("Unable to retrieve latest DNS Route Lookups\nError Message: " + e.Message); - includeList = AccessRegistry.ReadMachineHashtable(RegistrySettings.DNSRouteListKey, cacheOffset); - if (includeList.Count > 0) + try { - string DNSCacheDate = AccessRegistry.ReadMachineString(RegistrySettings.DNSLastUpdate, cacheOffset); - ValidationWarnings.AppendLine("Using cached DNS Route list. Cache was last updated: " + DNSCacheDate + " UTC"); + string warnings = GetDNSRoutes(ref includeList, DNSRouteList); + + if (!string.IsNullOrWhiteSpace(warnings)) + { + ValidationWarnings.AppendLine(warnings); + } + + AccessRegistry.SaveMachineData(RegistrySettings.DNSLastUpdate, DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), cacheOffset); + AccessRegistry.SaveMachineData(RegistrySettings.DNSRouteListKey, includeList, cacheOffset); } - else + catch (Exception e) { - ValidationWarnings.AppendLine("Unable to retrieve cached DNS Route list. No DNS routes will be included in profile"); + ValidationWarnings.AppendLine("Unable to retrieve latest DNS Route Lookups\nError Message: " + e.Message); + includeList = AccessRegistry.ReadMachineHashtable(RegistrySettings.DNSRouteListKey, cacheOffset); + if (includeList.Count > 0) + { + string DNSCacheDate = AccessRegistry.ReadMachineString(RegistrySettings.DNSLastUpdate, cacheOffset); + ValidationWarnings.AppendLine("Using cached DNS Route list. Cache was last updated: " + DNSCacheDate + " UTC"); + } + else + { + ValidationWarnings.AppendLine("Unable to retrieve cached DNS Route list. No DNS routes will be included in profile"); + } } - } - foreach (KeyValuePair route in includeList) - { - if (!RouteList.ContainsKey(route.Key)) + foreach (KeyValuePair route in includeList) { - RouteList.Add(route.Key, route.Value); + if (!RouteList.ContainsKey(route.Key)) + { + RouteList.Add(route.Key, route.Value); + } } } } private void ConfigureDNSExcludeRoutes() { - Dictionary excludeList; - string cacheOffset = RegistrySettings.InternalStateOffset + "\\" + ProfileType; - - try + Dictionary excludeList = new Dictionary(); + //Multiple Profiles in different threads can potentially try to update the O365 list at the same time, locking avoids issues with registry settings being written at the same time + lock (DNSExclusionLock) { - excludeList = GetDNSRoutes(DNSRouteList); + string cacheOffset = RegistrySettings.InternalStateOffset + "\\" + ProfileType; - AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeLastUpdate, DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), cacheOffset); - AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeRouteListKey, excludeList, cacheOffset); - } - catch (Exception e) - { - //TODO: Handle individual failures - ValidationWarnings.AppendLine("Unable to retrieve latest DNS Exclude Route Lookups\nError Message: " + e.Message); - excludeList = AccessRegistry.ReadMachineHashtable(RegistrySettings.DNSExcludeRouteListKey, cacheOffset); - if (excludeList.Count > 0) + try { - string DNSCacheDate = AccessRegistry.ReadMachineString(RegistrySettings.DNSExcludeLastUpdate, cacheOffset); - ValidationWarnings.AppendLine("Using cached DNS Exclude Route list. Cache was last updated: " + DNSCacheDate + " UTC"); + string warnings = GetDNSRoutes(ref excludeList, DNSExcludeRouteList); + + if (!string.IsNullOrWhiteSpace(warnings)) + { + ValidationWarnings.AppendLine(warnings); + } + + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeLastUpdate, DateTime.UtcNow.ToString(CultureInfo.InvariantCulture), cacheOffset); + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeRouteListKey, excludeList, cacheOffset); } - else + catch (Exception e) { - ValidationWarnings.AppendLine("Unable to retrieve cached DNS Exclude Route list. No DNS routes will be included in profile"); + ValidationWarnings.AppendLine("Unable to retrieve latest DNS Exclude Route Lookups\nError Message: " + e.Message); + excludeList = AccessRegistry.ReadMachineHashtable(RegistrySettings.DNSExcludeRouteListKey, cacheOffset); + if (excludeList.Count > 0) + { + string DNSCacheDate = AccessRegistry.ReadMachineString(RegistrySettings.DNSExcludeLastUpdate, cacheOffset); + ValidationWarnings.AppendLine("Using cached DNS Exclude Route list. Cache was last updated: " + DNSCacheDate + " UTC"); + } + else + { + ValidationWarnings.AppendLine("Unable to retrieve cached DNS Exclude Route list. No DNS routes will be included in profile"); + } } - } - foreach (KeyValuePair route in excludeList) - { - if (!RouteExcludeList.ContainsKey(route.Key)) + foreach (KeyValuePair route in excludeList) { - RouteExcludeList.Add(route.Key, route.Value); + if (!RouteExcludeList.ContainsKey(route.Key)) + { + RouteExcludeList.Add(route.Key, route.Value); + } } } } @@ -860,7 +866,18 @@ public void Generate() { ValidateParameters(); - if(ValidateFailed()) + //Perform DNS Lookups after performing Validation to avoid routes been added before needing to strip them back out as part of parameter consistancy validation + if (DNSExcludeRouteList.Count > 0) + { + ConfigureDNSExcludeRoutes(); + } + + if (DNSRouteList.Count > 0) + { + ConfigureDNSIncludeRoutes(); + } + + if (ValidateFailed()) { //We know that there are issues so severe that the profile won't be installed so don't attempt to generate as this can cause crashes which won't show the validation warnings return; @@ -1505,6 +1522,18 @@ private void ValidateParameters() } } + if (DNSExcludeRouteList.Count > 0 && TunnelType == TunnelType.SplitTunnel) + { + ValidationWarnings.AppendLine("DNS Exclusions configured while the profile is a Split Tunnel, Ignoring exclusions"); + DNSExcludeRouteList.Clear(); + } + + if (DNSRouteList.Count > 0 && TunnelType == TunnelType.ForceTunnel) + { + ValidationWarnings.AppendLine("DNS Inclusions configured while the profile is a Forced Tunnel, Ignoring inclusions"); + DNSRouteList.Clear(); + } + //Optional User Params if (EKUMapping) { @@ -1819,41 +1848,58 @@ private static List GetOffice365ExcludeRoutes() return ipList; } - private static Dictionary GetDNSRoutes(Dictionary DNSList) + private static Dictionary ResolveDNS(string DNSName, string comment) { Dictionary unvalidatedList = new Dictionary(); - foreach (KeyValuePair DNS in DNSList) + foreach (string IP in HttpService.GetIPfromDNS(DNSName)) { - foreach (string IP in HttpService.GetIPfromDNS(DNS.Key)) - { - if (unvalidatedList.ContainsKey(IP)) continue; //Skip Duplicate IPs + if (unvalidatedList.ContainsKey(IP)) continue; //Skip Duplicate IPs - if (string.IsNullOrEmpty(DNS.Value)) - { - //No user provided comment, use DNS instead - unvalidatedList.Add(IP, DNS.Key); - } - else - { - //User provided comment - unvalidatedList.Add(IP, DNS.Value); - } + if (string.IsNullOrEmpty(comment)) + { + //No user provided comment, use DNS instead + unvalidatedList.Add(IP, DNSName); + } + else + { + //User provided comment + unvalidatedList.Add(IP, comment); } } - Dictionary ipList = new Dictionary(); - foreach (KeyValuePair item in unvalidatedList) + return unvalidatedList; + } + + private static string GetDNSRoutes(ref Dictionary resolvedIPList, Dictionary DNSList) + { + string warnings = string.Empty; + //Dictionary resolvedIPList = new Dictionary(); + foreach (KeyValuePair DNS in DNSList) { - if (ipList.ContainsKey(item.Key)) continue; //Skip Duplicate IPs - //Don't add IPv6 addresses as currently the WMI callback doesn't match IPv6 correctly so all profiles fail to validate - //if (Validate.IPv4(item) || Validate.IPv6(item)) - if (Validate.IPv4(item.Key)) + try { - ipList.Add(item.Key, item.Value); + foreach (KeyValuePair item in ResolveDNS(DNS.Key, DNS.Value)) + { + if (resolvedIPList.ContainsKey(item.Key)) + { + resolvedIPList[item.Key] += " + " + DNS.Value; + continue; //Skip Duplicate IPs + } + //Don't add IPv6 addresses as IPv6 Exclusions added to a machine without an IPv6 address breaks the tunnel completely + //if (Validate.IPv4(item) || Validate.IPv6(item)) + if (Validate.IPv4(item.Key)) + { + resolvedIPList.Add(item.Key, item.Value); + } + } + } + catch (Exception ex) + { + warnings += "Failed to resolve DNS - " + DNS.Key + " Error: " + ex.Message + "\n"; } } - return ipList; + return warnings; } public static string SaveProfile(string profileName, string profile, string savePath) diff --git a/DPCLibraryTests/VPNProfileCreatorTests.cs b/DPCLibraryTests/VPNProfileCreatorTests.cs index 3107cf1..eddaeaf 100644 --- a/DPCLibraryTests/VPNProfileCreatorTests.cs +++ b/DPCLibraryTests/VPNProfileCreatorTests.cs @@ -1390,6 +1390,8 @@ public void UserLoadRegistryWithDNSExcludeSettings(ProfileType profileType) { "www.google.co.uk", "Search Service" }, { "www.example.com", "Example Website" } }, RegistrySettings.GetProfileOffset(profileType)); + AccessRegistry.SaveMachineData(RegistrySettings.ForceTunnel, 1, RegistrySettings.GetProfileOffset(profileType)); + VPNProfileCreator pro = new VPNProfileCreator(profileType, false); pro.LoadFromRegistry(); @@ -1406,7 +1408,7 @@ public void UserLoadRegistryWithDNSExcludeSettings(ProfileType profileType) Assert.IsFalse(string.IsNullOrWhiteSpace(profile)); ValidateXMLText(profile, "Servers", standardServerName); - ValidateXMLText(profile, "RoutingPolicyType", "SplitTunnel"); + ValidateXMLText(profile, "RoutingPolicyType", "ForceTunnel"); ValidateXMLText(profile, "UserMethod", "Eap"); ValidateNPSList(profile, standardNPSServerList); ValidateRootThumbprintList(profile, standardRootCAList); @@ -1415,17 +1417,125 @@ public void UserLoadRegistryWithDNSExcludeSettings(ProfileType profileType) ValidateXMLTextIsMissing(profile, "TrustedNetworkDetection"); VPNProfile profileObj = new CSPProfile(profile, pro.GetProfileName()); - Assert.AreEqual(standardUserRouteList.Count + 3, profileObj.RouteList.Count); - Assert.AreEqual(0, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); + Assert.AreEqual(0, profileObj.RouteList.Where(r => !r.ExclusionRoute).ToList().Count); //Force Tunnel shouldn't have any normal routes + Assert.AreEqual(3, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); //1 for google.co.uk, 2 for example.com } [DataTestMethod] [DataRow(ProfileType.User)] [DataRow(ProfileType.UserBackup)] - public void UserLoadRegistryWithDNSIncludeInitialFailSettings(ProfileType profileType) + public void UserLoadRegistryWithDNSExcludeInitialFailSettings(ProfileType profileType) { CreateBasicUserProfileInRegistry(profileType); + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeRouteList, new Dictionary() { + { "www.google.co.uk", "Search Service" }, + { "www.example.com", "Example Website" } }, RegistrySettings.GetProfileOffset(profileType)); AccessRegistry.SaveMachineData(RegistrySettings.ForceTunnel, 1, RegistrySettings.GetProfileOffset(profileType)); + + PrivateType type = new PrivateType(typeof(HttpService)); + + //Trigger the HttpService to throw errors on every connection attempt + type.SetStaticField("breakNetwork", BindingFlags.NonPublic, true); + + VPNProfileCreator pro = new VPNProfileCreator(profileType, false); + pro.LoadFromRegistry(); + + pro.Generate(); + + string profile = pro.GetProfile(); + + TestContext.WriteLine(pro.GetValidationFailures()); + TestContext.WriteLine(pro.GetValidationWarnings()); + TestContext.WriteLine(profile); + Assert.IsTrue(!pro.ValidateFailed()); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationFailures())); + Assert.IsFalse(string.IsNullOrWhiteSpace(pro.GetValidationWarnings())); + Assert.IsFalse(string.IsNullOrWhiteSpace(profile)); + + ValidateXMLText(profile, "Servers", standardServerName); + ValidateXMLText(profile, "RoutingPolicyType", "ForceTunnel"); + ValidateXMLText(profile, "UserMethod", "Eap"); + ValidateNPSList(profile, standardNPSServerList); + ValidateRootThumbprintList(profile, standardRootCAList); + ValidateIssuingThumbprintList(profile, standardIssuingCAList); + ValidateXMLTextIsMissing(profile, "DnsSuffix"); + ValidateXMLTextIsMissing(profile, "TrustedNetworkDetection"); + + VPNProfile profileObj = new CSPProfile(profile, pro.GetProfileName()); + Assert.AreEqual(0, profileObj.RouteList.Where(r => !r.ExclusionRoute).ToList().Count); //Force Tunnel shouldn't have any normal routes + Assert.AreEqual(0, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); //Exclusions failed to be resolved so no routes are excluded + } + + [DataTestMethod] + [DataRow(ProfileType.User)] + [DataRow(ProfileType.UserBackup)] + public void UserLoadRegistryWithDNSExcludeFailOnSecondAttemptSettings(ProfileType profileType) + { + Dictionary DNSList = new Dictionary() { + { "www.google.co.uk", "Search Service" }, + { "www.example.com", "Example Website" } }; + + CreateBasicUserProfileInRegistry(profileType); + + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeRouteList, DNSList, RegistrySettings.GetProfileOffset(profileType)); + AccessRegistry.SaveMachineData(RegistrySettings.ForceTunnel, 1, RegistrySettings.GetProfileOffset(profileType)); + + PrivateType type = new PrivateType(typeof(HttpService)); + + //Trigger the HttpService to throw errors on every connection attempt + type.SetStaticField("breakNetwork", BindingFlags.NonPublic, true); + + VPNProfileCreator pro = new VPNProfileCreator(profileType, false); + + //Call 1 + + pro.LoadFromRegistry(); + + pro.Generate(); + + TestContext.WriteLine(pro.GetValidationFailures()); + TestContext.WriteLine(pro.GetValidationWarnings()); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationFailures())); + Assert.IsFalse(string.IsNullOrWhiteSpace(pro.GetValidationWarnings())); + + //Re-enable the network setup + type.SetStaticField("breakNetwork", BindingFlags.NonPublic, false); + + //Call 2 + pro.LoadFromRegistry(); + + pro.Generate(); + + string profile = pro.GetProfile(); + + TestContext.WriteLine(pro.GetValidationFailures()); + TestContext.WriteLine(pro.GetValidationWarnings()); + TestContext.WriteLine(profile); + Assert.IsTrue(!pro.ValidateFailed()); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationFailures())); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationWarnings())); + Assert.IsFalse(string.IsNullOrWhiteSpace(profile)); + + ValidateXMLText(profile, "Servers", standardServerName); + ValidateXMLText(profile, "RoutingPolicyType", "ForceTunnel"); + ValidateXMLText(profile, "UserMethod", "Eap"); + ValidateNPSList(profile, standardNPSServerList); + ValidateRootThumbprintList(profile, standardRootCAList); + ValidateIssuingThumbprintList(profile, standardIssuingCAList); + ValidateXMLTextIsMissing(profile, "DnsSuffix"); + ValidateXMLTextIsMissing(profile, "TrustedNetworkDetection"); + + VPNProfile profileObj = new CSPProfile(profile, pro.GetProfileName()); + Assert.AreEqual(0, profileObj.RouteList.Where(r => !r.ExclusionRoute).ToList().Count); //Force Tunnel shouldn't have any normal routes + Assert.AreEqual(3, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); //1 for google.co.uk, 2 for example.com + } + + [DataTestMethod] + [DataRow(ProfileType.User)] + [DataRow(ProfileType.UserBackup)] + public void UserLoadRegistryWithDNSIncludeInitialFailSettings(ProfileType profileType) + { + CreateBasicUserProfileInRegistry(profileType); AccessRegistry.SaveMachineData(RegistrySettings.DNSRouteList, new Dictionary() { { "www.google.co.uk", "Search Service" }, { "www.example.com", "Example Website" } }, RegistrySettings.GetProfileOffset(profileType)); diff --git a/README.md b/README.md index c8b26b3..0fbf937 100644 --- a/README.md +++ b/README.md @@ -55,11 +55,13 @@ Unfortunately there is no easy way to copy an existing Configuration policy and # Release Notes ## Version 5.2.0 +- Added Option to write Event Logs to Disk +- Added Support for excluding Resolved DNS IPs from a VPN Profile - Fixed bug where DNS Route resolution with the same IP addresses would cause the resolution to fail - Fixed issue where Operational logs wouldn't show in Event Viewer - Fixed issue where Disable UI Edit and Disable UI Disconnect would cause a profile mismatch warning even when set correctly -- Added Option to write Event Logs to Disk -- Added Support for excluding Resolved DNS IPs from a VPN Profile +- Fixed issue where a single failure in DNS resolution would break DNS resolution for all DNS entries in a profile +- Updated help files to clarify some settings and limitations ## Version 5.1.0 - Added detection and removal for corrupted hiddenPBK files From 52dc3b4da97da217ccba0263c24097f1e1f25d3c Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 20:01:04 +0100 Subject: [PATCH 16/41] Bump Version Number --- DPCInstaller/ProductVersion.wxi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index 35950a4..6ad8fe0 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + From 019e0bc1b67ae9fb868a84296694c991de155a5c Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 20:11:23 +0100 Subject: [PATCH 17/41] Add tests for duplicate IP support and fix bug with DNS route comments --- DPCLibrary/Utils/VPNProfileCreator.cs | 4 +- DPCLibraryTests/VPNProfileCreatorTests.cs | 80 +++++++++++++++++++++++ 2 files changed, 82 insertions(+), 2 deletions(-) diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index 2188de4..11bab7c 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -1863,7 +1863,7 @@ private static Dictionary ResolveDNS(string DNSName, string comm else { //User provided comment - unvalidatedList.Add(IP, comment); + unvalidatedList.Add(IP, DNSName + " - " + comment); } } @@ -1882,7 +1882,7 @@ private static string GetDNSRoutes(ref Dictionary resolvedIPList { if (resolvedIPList.ContainsKey(item.Key)) { - resolvedIPList[item.Key] += " + " + DNS.Value; + resolvedIPList[item.Key] += " + " + item.Value; continue; //Skip Duplicate IPs } //Don't add IPv6 addresses as IPv6 Exclusions added to a machine without an IPv6 address breaks the tunnel completely diff --git a/DPCLibraryTests/VPNProfileCreatorTests.cs b/DPCLibraryTests/VPNProfileCreatorTests.cs index eddaeaf..d2bef22 100644 --- a/DPCLibraryTests/VPNProfileCreatorTests.cs +++ b/DPCLibraryTests/VPNProfileCreatorTests.cs @@ -1380,6 +1380,86 @@ public void UserLoadRegistryWithDNSIncludeSettings(ProfileType profileType) Assert.AreEqual(0, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); } + [DataTestMethod] + [DataRow(ProfileType.User)] + [DataRow(ProfileType.UserBackup)] + public void UserLoadRegistryWithDNSIncludeDuplicateIPsSettings(ProfileType profileType) + { + CreateBasicUserProfileInRegistry(profileType); + AccessRegistry.SaveMachineData(RegistrySettings.DNSRouteList, new Dictionary() { + { "www.bbc.co.uk", "News Service" }, + { "www.bbc.com", "News Website" } }, RegistrySettings.GetProfileOffset(profileType)); + + VPNProfileCreator pro = new VPNProfileCreator(profileType, false); + pro.LoadFromRegistry(); + + pro.Generate(); + + string profile = pro.GetProfile(); + + TestContext.WriteLine(pro.GetValidationFailures()); + TestContext.WriteLine(pro.GetValidationWarnings()); + TestContext.WriteLine(profile); + Assert.IsTrue(!pro.ValidateFailed()); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationFailures())); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationWarnings())); + Assert.IsFalse(string.IsNullOrWhiteSpace(profile)); + + ValidateXMLText(profile, "Servers", standardServerName); + ValidateXMLText(profile, "RoutingPolicyType", "SplitTunnel"); + ValidateXMLText(profile, "UserMethod", "Eap"); + ValidateNPSList(profile, standardNPSServerList); + ValidateRootThumbprintList(profile, standardRootCAList); + ValidateIssuingThumbprintList(profile, standardIssuingCAList); + ValidateXMLTextIsMissing(profile, "DnsSuffix"); + ValidateXMLTextIsMissing(profile, "TrustedNetworkDetection"); + + VPNProfile profileObj = new CSPProfile(profile, pro.GetProfileName()); + Assert.AreEqual(standardUserRouteList.Count + 6, profileObj.RouteList.Count); //BBC.co.uk and BBC.com should combine into 1 set of 6 routes + Assert.AreEqual(0, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); + } + + [DataTestMethod] + [DataRow(ProfileType.User)] + [DataRow(ProfileType.UserBackup)] + public void UserLoadRegistryWithDNSExcludeDuplicateIPsSettings(ProfileType profileType) + { + CreateBasicUserProfileInRegistry(profileType); + AccessRegistry.SaveMachineData(RegistrySettings.DNSExcludeRouteList, new Dictionary() { + { "www.bbc.co.uk", "News Service" }, + { "www.bbc.com", "News Website" } }, RegistrySettings.GetProfileOffset(profileType)); + + AccessRegistry.SaveMachineData(RegistrySettings.ForceTunnel, 1, RegistrySettings.GetProfileOffset(profileType)); + + VPNProfileCreator pro = new VPNProfileCreator(profileType, false); + pro.LoadFromRegistry(); + + pro.Generate(); + + string profile = pro.GetProfile(); + + TestContext.WriteLine(pro.GetValidationFailures()); + TestContext.WriteLine(pro.GetValidationWarnings()); + TestContext.WriteLine(profile); + Assert.IsTrue(!pro.ValidateFailed()); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationFailures())); + Assert.IsTrue(string.IsNullOrWhiteSpace(pro.GetValidationWarnings())); + Assert.IsFalse(string.IsNullOrWhiteSpace(profile)); + + ValidateXMLText(profile, "Servers", standardServerName); + ValidateXMLText(profile, "RoutingPolicyType", "ForceTunnel"); + ValidateXMLText(profile, "UserMethod", "Eap"); + ValidateNPSList(profile, standardNPSServerList); + ValidateRootThumbprintList(profile, standardRootCAList); + ValidateIssuingThumbprintList(profile, standardIssuingCAList); + ValidateXMLTextIsMissing(profile, "DnsSuffix"); + ValidateXMLTextIsMissing(profile, "TrustedNetworkDetection"); + + VPNProfile profileObj = new CSPProfile(profile, pro.GetProfileName()); + Assert.AreEqual(0, profileObj.RouteList.Where(r => !r.ExclusionRoute).ToList().Count); //Force Tunnel shouldn't have any normal routes + Assert.AreEqual(6, profileObj.RouteList.Where(r => r.ExclusionRoute).ToList().Count); //6 for bbc.co.uk and exactly the same for bbc.com so they become 1 list + } + [DataTestMethod] [DataRow(ProfileType.User)] [DataRow(ProfileType.UserBackup)] From 98d7fe017e31b33964c9933e7690d7746945691d Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 20:13:07 +0100 Subject: [PATCH 18/41] Update README --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 0fbf937..24f68fd 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ Unfortunately there is no easy way to copy an existing Configuration policy and - Fixed issue where Disable UI Edit and Disable UI Disconnect would cause a profile mismatch warning even when set correctly - Fixed issue where a single failure in DNS resolution would break DNS resolution for all DNS entries in a profile - Updated help files to clarify some settings and limitations +- Updated comments for DNS Resolution to make it easier to understand which routes apply to which DNS entries ## Version 5.1.0 - Added detection and removal for corrupted hiddenPBK files From a85d1a97e5d867fcd3ce5f1cd7642fdd0c583d2f Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 20:15:54 +0100 Subject: [PATCH 19/41] Clean up Dev Client --- DPCDevClient/DPCDevClient.csproj | 14 - DPCDevClient/DPCServiceEvents.cs | 410 --------------------- DPCDevClient/Program.cs | 4 +- DPCDevClient/_EventRegisterUsersGuide.docx | Bin 112690 -> 0 bytes DPCDevClient/_EventSourceUsersGuide.docx | Bin 162815 -> 0 bytes DPCDevClient/packages.config | 6 - 6 files changed, 1 insertion(+), 433 deletions(-) delete mode 100644 DPCDevClient/DPCServiceEvents.cs delete mode 100644 DPCDevClient/_EventRegisterUsersGuide.docx delete mode 100644 DPCDevClient/_EventSourceUsersGuide.docx delete mode 100644 DPCDevClient/packages.config diff --git a/DPCDevClient/DPCDevClient.csproj b/DPCDevClient/DPCDevClient.csproj index feecccf..65fc1fb 100644 --- a/DPCDevClient/DPCDevClient.csproj +++ b/DPCDevClient/DPCDevClient.csproj @@ -36,9 +36,6 @@ true - - ..\packages\Microsoft.Diagnostics.Tracing.EventSource.Redist.1.1.28\lib\net46\Microsoft.Diagnostics.Tracing.EventSource.dll - @@ -49,15 +46,11 @@ - - - - @@ -70,11 +63,4 @@ - - - - This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - - \ No newline at end of file diff --git a/DPCDevClient/DPCServiceEvents.cs b/DPCDevClient/DPCServiceEvents.cs deleted file mode 100644 index 84099fe..0000000 --- a/DPCDevClient/DPCServiceEvents.cs +++ /dev/null @@ -1,410 +0,0 @@ -using DPCLibrary.Enums; -using DPCLibrary.Exceptions; -using Microsoft.Diagnostics.Tracing; - -namespace DPCService.Utils -{ - //Documented https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracing.eventsource?view=net-6.0 - [EventSource(Name = "DPC-AOVPN-DPCService")] - internal sealed class DPCServiceEvents : EventSource - { - public static DPCServiceEvents Log = new DPCServiceEvents(); - - //Explicitly define this constructor even though it is the same as the default constructor because for some reason, when running in an un-debugged, x64 process, the - //Operational logs end up in the debug log and the debug logs are lost. I have no idea why this occurs but this seems to solve the issue... - //public DPCServiceEvents(bool throwOnEventWriteErrors) : base(throwOnEventWriteErrors) - //{ - //} - - #region 1-100 Application Startup - - [Event(1, Message = "DPC Service is starting", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void Startup() { WriteEvent(1); } - [Event(2, Message = "Running in SYSATTACH mode, waiting for debug attach", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void SYSATTACHEnabled() { WriteEvent(2); } - [Event(3, Message = "Running in interactive mode", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void InteractiveModeEnabled() { WriteEvent(3); } - - [Event(4, Message = "DPC Service Startup Complete", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void StartupComplete() { WriteEvent(4); } - - [Event(5, Message = "DPC Initializing", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] - public void DPCServiceInitializing() { WriteEvent(5); } - - [Event(6, Message = "DPC Initialized", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] - public void DPCServiceInitialized() { WriteEvent(6); } - - [Event(7, Message = "Product Version is {0}, DEBUG: {1}\nOS Version: {2}", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void ProductVersion(string message, bool debug, string OSVersion) { WriteEvent(7, message, debug, OSVersion); } - - [Event(8, Message = "Registry Entry {0} was missing, defaulting to {1}", Level = EventLevel.Verbose, Channel = EventChannel.Debug)] - public void MissingRegistryEntry(string variableName, string defaultValue) { WriteEvent(8, variableName, defaultValue); } - [Event(13, Message = "Registry Entry {0} was invalid, defaulting to {1}", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] - public void InvalidRegistryEntry(string variableName, string defaultValue) { WriteEvent(13, variableName, defaultValue); } - [Event(14, Message = "Loading Service Components", Level = EventLevel.Verbose, Channel = EventChannel.Operational)] - public void LoadingServiceComponents() { WriteEvent(14); } - [Event(15, Message = "Startup Account is not an administrator. Service will now Stop", Level = EventLevel.Error, Channel = EventChannel.Admin)] - public void UserNotAdmin() { WriteEvent(15); CriticalHaltDueToError(); } - [Event(16, Message = "Running in service mode", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void ServiceModeEnabled() { WriteEvent(16); } - [Event(17, Message = "Migration Block Enabled", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void MigrationBlockEnabled() { WriteEvent(17); } - [Event(22, Message = "Unable to load previous profile information\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ProfileLoadOnStartUpError(string errors, string location) { WriteEvent(22, errors, location); } - [Event(25, Message = "Found {0} Managed Profiles", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void FoundExistingProfiles(int number) { WriteEvent(25, number); } - [Event(26, Message = "Starting unmanaged Profile Removal Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void StartingUnmanagedProfileRemovalService() { WriteEvent(26); } - [Event(28, Message = "Starting GPUpdate Notification Service for profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void StartGPUpdateMonitoring(string profileName) { WriteEvent(28, profileName); } - [Event(29, Message = "Custom MTU setting enabled while existing profiles have not been configured for removal\nIf there are any non-DPC Profiles on this system they will likely also be impacted by the MTU change", Level = EventLevel.Warning, Channel = EventChannel.Admin)] - public void ExistingProfileMTUImpact() { WriteEvent(29); } - #endregion 1-100 Application Startup - - #region 100-199 Application Shutdown - - [Event(100, Message = "DPC Service is stopping", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void Shutdown() { WriteEvent(100); } - - [Event(101, Message = "DPC Service is Stopped", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void ShutdownCompleted() { WriteEvent(101); } - - [Event(102, Message = "Canceling all child services", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void CancelChildServices() { WriteEvent(102); } - - [Event(103, Message = "All child services stopped", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void CancelChildServicesCompleted() { WriteEvent(103); } - - #endregion 100-199 Application Shutdown - - #region 1000-1099 VPN Monitoring - - [Event(1000, Message = "Starting VPN Monitoring Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void StartVPNMonitoringFull() { WriteEvent(1000); } - [Event(1002, Message = "New VPN Connection Made on profile: {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void NewVPNConnectionEvent(string profileName) { WriteEvent(1002, profileName); } - - [Event(1003, Message = "VPN Disconnected on profile: {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void NewVPNDisconnectionEvent(string profileName) { WriteEvent(1003, profileName); } - - [Event(1004, Message = "VPN Connection reconnected", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void NewVPNReconnectionEvent() { WriteEvent(1004); } - - [Event(1005, Message = "Shutting down VPN Monitoring Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void StoppingVPNMonitoring() { WriteEvent(1005); } - - [Event(1006, Message = "VPN Monitoring Service Shutdown Complete", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void VPNMonitoringStopped() { WriteEvent(1006); } - - [Event(1008, Message = "New VPN Connection Made on Unknown Profile", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void NewVPNUnknownConnectionEvent() { WriteEvent(1008); } - - [Event(1009, Message = "Unable to gather currently Connected profiles, Exception Message: {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void UnableToGetConnectedProfiles(string message) { WriteEvent(1009, message); } - - [Event(1010, Message = "New VPN Disconnection Made on Unknown Profile", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void NewVPNUnknownDisconnectionEvent() { WriteEvent(1010); } - [Event(1011, Message = "Spinlock for profile {0} was already owned, skipping profile update", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void ProfileUpdateSkipped(string profileName) { WriteEvent(1011, profileName); } - [Event(1012, Message = "Event Handler currently engaged for profile {0}, waiting for update to complete...", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileShutdownRequested(string profileName) { WriteEvent(1012, profileName); } - [Event(1013, Message = "Profile {0} shutdown requested", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileUpdateShutdownRequested(string profileName) { WriteEvent(1013, profileName); } - [Event(1014, Message = "Profile {0} shutdown complete", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileUpdateShutdownComplete(string profileName) { WriteEvent(1014, profileName); } - [Event(1018, Message = "An Error occurred during a monitoring Process\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void VPNMonitorErrorOnWait(string message, string stackTrace) { WriteEvent(1018, message, stackTrace); } - [Event(1019, Message = "Starting profile update for {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileUpdateStartedDebug(string profileName) { WriteEvent(1019, profileName); } - [Event(1020, Message = "Profile update generated for {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileUpdateGenerated(string profileName) { WriteEvent(1019, profileName); } - [Event(1021, Message = "Check profile {0} for updates", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileUpdateStarted(string profileName) { WriteEvent(1021, profileName); } - [Event(1022, Message = "An Error occurred while configuring the GPUpdate Notification Process\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorGPUpdateErrorOnStartup(string message, string stackTrace) { WriteEvent(1022, message, stackTrace); } - [Event(1023, Message = "Spinlock for checking corrupt PBKs in Profile {0} was already owned, skipping profile update", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void CorruptPbkCheckSkipped(string profileName) { WriteEvent(1023, profileName); } - #endregion 1000-1099 VPN Monitoring - - #region 1100-1299 Profile Monitoring - - [Event(1101, Message = "Shutting down Profile Monitoring Service", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void StoppingProfileMonitor() { WriteEvent(1101); } - - [Event(1102, Message = "Profile Monitoring Service Shutdown Complete", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void VPNProfileMonitorStopped() { WriteEvent(1102); } - - [Event(1103, Message = "Starting Monitoring of {0} profile", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void StartProfileMonitor(string message) { WriteEvent(1103, message); } - - [Event(1105, Message = "VPN Profile Monitoring Status Changed", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileMonitorChanged() { WriteEvent(1105); } - - [Event(1106, Message = "Update to process Profile {0} due to Errors: \n {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ProfileGenerationErrors(string profileName, string errors) { WriteEvent(1106, profileName, errors); } - - [Event(1107, Message = "Profile {0} may be inaccurate due to the following Warnings: \n{1}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void ProfileGenerationWarnings(string profileName, string errors) { WriteEvent(1107, profileName, errors); } - [Event(1108, Message = "Profile {0} (Type {1}) was not added.\nError: \n{2} \nStackTrace: \n{3}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void AddProfileFailed(string profileName, ProfileType profileType, string errors, string stackTrace) { WriteEvent(1108, profileName, profileType, errors, stackTrace); } - [Event(1109, Message = "Unexpected failure in profile creation process: \nProfile Name: {0}\nError: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ProfileCreationFailed(string profileName, string errors, string stackTrace) { WriteEvent(1109, profileName, errors, stackTrace); } - [Event(1110, Message = "Unable to save profile to disk: {0} \n Errors: {1} \n Location: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void UpdateToSaveProfileToDisk(string profileName, string errors, string location) { WriteEvent(1110, profileName, errors, location); } - [Event(1111, Message = "Unable to load Registry Value {0} due to Reason: \n{1}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void UnableToReadRegistry(string regValue, string errors) { WriteEvent(1111, regValue, errors); } - [Event(1112, Message = "Removing Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileDebugRemoveProfile(string profileName) { WriteEvent(1112, profileName); } - [Event(1113, Message = "Adding Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileDebugAddProfile(string profileName) { WriteEvent(1113, profileName); } - [Event(1114, Message = "Modify Profile {0} Completed successfully", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileCompletedProfileModification(string profileName) { WriteEvent(1114, profileName); } - [Event(1115, Message = "Profile {0} Removed", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileDebugProfileRemoved(string profileName) { WriteEvent(1115, profileName); } - [Event(1116, Message = "No removal of Profile {0} required", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileDebugProfileRemoveNotRequired(string profileName) { WriteEvent(1116, profileName); } - [Event(1117, Message = "{0} scheduled for removal", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileRemoveScheduled(string profileName) { WriteEvent(1117, profileName); } - [Event(1118, Message = "Profile {0} is already up to date", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileAlreadyUpToDate(string profileName) { WriteEvent(1118, profileName); } - [Event(1119, Message = "Profile {0} Monitoring Status Changed from {1} to {2}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void MonitorProfileChangeRequested(string profile, bool oldValue, bool newValue) { WriteEvent(1119, profile, oldValue, newValue); } - [Event(1120, Message = "Profile {0} Failed Unexpectedly \n Error: {1} \n StackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorProfileFailed(string profile, string error, string stackTrace) { WriteEvent(1120, profile, error, stackTrace); } - [Event(1121, Message = "Profile {0} Completed Unexpectedly, restarting...", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void MonitorProfileCompleted(string profile) { WriteEvent(1121, profile); } - [Event(1124, Message = "Checking for unmanaged VPN Profiles", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void RemovingAllUnmanagedProfiles() { WriteEvent(1124); } - [Event(1125, Message = "Profile Manager Update skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void ProfileManagerUpdateSkipped() { WriteEvent(1125); } - [Event(1126, Message = "Profile Manager Clear Existing Profiles skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void ProfileManagerClearSkipped() { WriteEvent(1126); } - [Event(1127, Message = "Profile Manager Clearing Existing Profiles", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileManagerClearProfiles() { WriteEvent(1127); } - [Event(1128, Message = "Profile Manager checking for profile updates", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileManagerCheckForUpdates() { WriteEvent(1128); } - [Event(1129, Message = "Profile Manager waiting on existing profile update", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileManagerWaitForProfileUpdate() { WriteEvent(1129); } - [Event(1130, Message = "Profile Manager waiting on profile removal from registry", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileManagerWaitForProfileRemovalReg() { WriteEvent(1130); } - [Event(1131, Message = "Profile Manager Remove Profiles skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void ProfileManagerRemoveSkipped() { WriteEvent(1131); } - [Event(1132, Message = "Unable to save currently installed profile data to disk: {0}\nErrors: {1}\nLocation: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void UpdateToSaveActualProfileToDisk(string profileName, string errors, string location) { WriteEvent(1132, profileName, errors, location); } - [Event(1133, Message = "Unable to save currently installed profile data to disk: {0}\nErrors: {1}\nLocation: {2}\nStackTrace: {3}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void UpdateToSaveActualProfileToDiskException(string profileName, string errors, string location, string stackTrace) { WriteEvent(1133, profileName, errors, location, stackTrace); } - [Event(1134, Message = "Profile {0} is no longer required so will be removed", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void ProfileNoLongerNeeded(string profileName) { WriteEvent(1134, profileName); } - [Event(1135, Message = "Profile Manager waiting on profile removal from WMI", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileManagerWaitForProfileRemovalWMI() { WriteEvent(1135); } - [Event(1136, Message = "No Unmanaged Profiles found", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void NoProfilesToRemove() { WriteEvent(1136); } - [Event(1137, Message = "Removing Unmanaged Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void RemovingProfile(string profileName) { WriteEvent(1137, profileName); } - [Event(1138, Message = "Save and Debug paths are configured to identical values leading to profile information being overwritten. Profile: {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void ProfileSavePathIdentical(string profileName) { WriteEvent(1138, profileName); } - [Event(1139, Message = "Unable to complete unmanaged profile removal \nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void UpdateToRemoveProfile(string errors, string location) { WriteEvent(1139, errors, location); } - [Event(1140, Message = "Unable to clear AutoTriggerDisabledProfileList Registry Entry\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void UpdateToDeleteRegistryEntryAutoTriggerDisabledProfileList(string errors, string location) { WriteEvent(1140, errors, location); } - [Event(1141, Message = "Unable to Update Profile monitor\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void UpdateMonitorStatusFailed(string errors, string location) { WriteEvent(1141, errors, location); } - [Event(1142, Message = "Monitor Start Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorStartFailed(string errors, string location) { WriteEvent(1142, errors, location); } - [Event(1143, Message = "Monitor Stop Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorStopFailed(string errors, string location) { WriteEvent(1143, errors, location); } - [Event(1144, Message = "Profile Monitor Shutdown Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorProfileShutdownFailed(string errors, string location) { WriteEvent(1144, errors, location); } - [Event(1145, Message = "Profile Monitor Startup Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorProfileStartupFailed(string errors, string location) { WriteEvent(1145, errors, location); } - [Event(1146, Message = "VPN Monitor Creation Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void VPNMonitorCreationFailed(string errors, string location) { WriteEvent(1146, errors, location); } - [Event(1147, Message = "VPN Monitor Startup Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void VPNMonitorStartupFailed(string errors, string location) { WriteEvent(1147, errors, location); } - [Event(1148, Message = "Unable to Process Disconnect Event\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void DisconnectionEventFailed(string errors, string location) { WriteEvent(1148, errors, location); } - [Event(1149, Message = "Unable to Process Connection Event\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ConnectionEventFailed(string errors, string location) { WriteEvent(1149, errors, location); } - [Event(1150, Message = "Update VPN Monitor Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorUpdateFailed(string errors, string location) { WriteEvent(1150, errors, location); } - [Event(1151, Message = "VPN Monitor Shutdown Failed\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MonitorShutdownFailed(string errors, string location) { WriteEvent(1151, errors, location); } - [Event(1152, Message = "Unable to remove whitespace\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void UnableToRemoveWhiteSpace(string errors, string location) { WriteEvent(1152, errors, location); } - [Event(1153, Message = "Cleaning up EnterpriseResourceManager entry for profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void CleanUpEnterpriseResourceManager(string profileName) { WriteEvent(1153, profileName); } - [Event(1154, Message = "Updating EnterpriseResourceManager count to {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void UpdateEnterpriseResourceManagerCount(int count) { WriteEvent(1154, count); } - [Event(1155, Message = "No VPN Profiles left in {0}, Removing key", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void RemoveEnterpriseResourceManagerKey(string key) { WriteEvent(1155, key); } - [Event(1156, Message = "Cleaning up Network Profile entry for profile {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void CleanUpNetworkProfile(string profileName) { WriteEvent(1153, profileName); } - [Event(1157, Message = "Cleaning up AutoTriggerDisabledProfilesList entry for profile {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void CleanUpAutoTriggerDisabledProfilesList(string profileName) { WriteEvent(1157, profileName); } - [Event(1158, Message = "Profile {0} Failed to be Removed\nError: {1}\nStackTrace: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void IssueDeletingProfile(string profileName, string message, string stackTrace) { WriteEvent(1158, profileName, message, stackTrace); } - [Event(1159, Message = "Failed to Update Metric for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingMetric(string profileName, string errorMessage, string stackTrace) { WriteEvent(1159, profileName, errorMessage, stackTrace); } - [Event(1160, Message = "Failed to Update VPNStrategy for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingVPNStrategy(string profileName, string errorMessage, string stackTrace) { WriteEvent(1160, profileName, errorMessage, stackTrace); } - [Event(1161, Message = "Profile {0} update Scheduled", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileScheduled(string profileName) { WriteEvent(1161, profileName); } - [Event(1162, Message = "Updated Metric for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileMetricUpdated(string profileName) { WriteEvent(1162, profileName); } - [Event(1163, Message = "Metric for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileMetricNotUpdated(string profileName) { WriteEvent(1163, profileName); } - [Event(1164, Message = "Updated VPN Strategy for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileVPNStrategyUpdated(string profileName) { WriteEvent(1164, profileName); } - [Event(1165, Message = "VPN Strategy for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileVPNStrategyNotUpdated(string profileName) { WriteEvent(1165, profileName); } - [Event(1169, Message = "Updated Use Ras Credential for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileUseRasCredentialsStatusUpdated(string profileName) { WriteEvent(1169, profileName); } - [Event(1170, Message = "Use Ras Credential for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileUseRasCredentialsStatusNotUpdated(string profileName) { WriteEvent(1170, profileName); } - [Event(1171, Message = "Failed to Update Use Ras Credential Status for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingUseRasCredentialsStatus(string profileName, string errorMessage, string stackTrace) { WriteEvent(1171, profileName, errorMessage, stackTrace); } - [Event(1172, Message = "Error getting VPN Strategy for Profile {0}: {1}\nStackTrace: {2}\nDefaulting to IKEv2 Only", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ErrorGettingVPNStrategy(string profileName, string errorMessage, string stackTrace) { WriteEvent(1172, profileName, errorMessage, stackTrace); } - [Event(1173, Message = "Error getting VPN Metric for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ErrorGettingVPNMetric(string profileName, string errorMessage, string stackTrace) { WriteEvent(1173, profileName, errorMessage, stackTrace); } - [Event(1174, Message = "Error getting Ras Credentials Status for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ErrorGettingDisableRasCredentials(string profileName, string errorMessage, string stackTrace) { WriteEvent(1174, profileName, errorMessage, stackTrace); } - [Event(1175, Message = "Updated Network Outage Time for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileNetworkOutageUpdated(string profileName) { WriteEvent(1175, profileName); } - [Event(1176, Message = "Network Outage Time for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileNetworkOutageTimeNotUpdated(string profileName) { WriteEvent(1176, profileName); } - [Event(1177, Message = "Failed to Update Network Outage Time for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingNetworkOutageTime(string profileName, string errorMessage, string stackTrace) { WriteEvent(1177, profileName, errorMessage, stackTrace); } - [Event(1178, Message = "Error getting Network Outage Time for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ErrorGettingNetworkOutageTime(string profileName, string errorMessage, string stackTrace) { WriteEvent(1178, profileName, errorMessage, stackTrace); } - [Event(1179, Message = "Profile {0} Returned by Windows does not match the profile submitted", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void WarningProfilesDoNotMatch(string profileName) { WriteEvent(1179, profileName); } - [Event(1180, Message = "Profile Manager Disabling VPN Strategy Overwrite", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileManagerDisableVPNStrategyOverwrite() { WriteEvent(1180); } - [Event(1181, Message = "Unable to clear VPNStrategyUsageDisabled Registry Entry\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void UpdateToDisableVPNStrategyOverwriteFailed(string errors, string location) { WriteEvent(1181, errors, location); } - [Event(1182, Message = "Device Tunnel UI Already Configured as {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void DeviceTunnelUIAlreadyCorrect(bool currentValue) { WriteEvent(1182, currentValue); } - [Event(1183, Message = "Updated Device Tunnel UI to {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void DeviceTunnelUIUpdated(bool currentValue) { WriteEvent(1183, currentValue); } - [Event(1184, Message = "Unable to update Device Tunnel UI Registry Entry\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void UnableToUpdateDeviceTunnelUI(string errors, string location) { WriteEvent(1184, errors, location); } - [Event(1185, Message = "Device Tunnel UI Update skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void ProfileManagerDeviceTunnelUIUpdateSkipped() { WriteEvent(1185); } - [Event(1186, Message = "Profile {0} Returned by Windows does not match the profile submitted for variable {1}\n{2}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void WarningProfilesDoNotMatchDetail(string profileName, string variable, string errorMessage) { WriteEvent(1186, profileName, variable, errorMessage); } - [Event(1187, Message = "Profile {0} has different Interface Metrics for IPv4 and IPv6, IPv4 Metric will be used, IPv6 Metric will be discarded", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void WarningIPv4AndIPv6MetricsDoNotMatch(string profileName) { WriteEvent(1187, profileName); } - [Event(1188, Message = "Updated Machine Certificate Filter EKU for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileMachineEKUUpdated(string profileName) { WriteEvent(1188, profileName); } - [Event(1189, Message = "Machine Certificate Filter EKU for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileMachineEKUNotUpdated(string profileName) { WriteEvent(1189, profileName); } - [Event(1190, Message = "Failed to Update Machine Certificate Filter EKU for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingMachineEKU(string profileName, string errorMessage, string stackTrace) { WriteEvent(1190, profileName, errorMessage, stackTrace); } - [Event(1191, Message = "Updated Proxy Exclusions for Profile {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileProxyExclusionsUpdated(string profileName) { WriteEvent(1191, profileName); } - [Event(1192, Message = "Proxy Exclusions for Profile {0} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileProxyExclusionsNotUpdated(string profileName) { WriteEvent(1192, profileName); } - [Event(1193, Message = "Failed to Update Proxy Exclusions for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingProxyExclusions(string profileName, string errorMessage, string stackTrace) { WriteEvent(1193, profileName, errorMessage, stackTrace); } - [Event(1194, Message = "Profile {0} Removed", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileProfileRemoved(string profileName) { WriteEvent(1194, profileName); } - [Event(1195, Message = "No Profiles under management with {0} unmanaged profiles. DPC will not remove unmanaged profiles to avoid unexpected disconnects", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void ProfileRemovalBlocked(int profileCount) { WriteEvent(1195, profileCount); } - [Event(1200, Message = "Updated MTU for Profile {0} {1} from {2} to {3}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileMTUUpdated(string profileName, string IPInterface, uint oldMTU, uint mtu) { WriteEvent(1200, profileName, IPInterface, oldMTU, mtu); } - [Event(1201, Message = "MTU for Profile {0} {1} already correct", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileMTUNotUpdated(string profileName, string IPInterface) { WriteEvent(1201, profileName, IPInterface); } - [Event(1202, Message = "Failed to Update MTU for Profile {0} - {1}\n{2}\nStackTrace: {3}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingProfileMTU(string profileName, string IPInterface, string errorMessage, string stackTrace) { WriteEvent(1202, profileName, IPInterface, errorMessage, stackTrace); } - [Event(1203, Message = "MTU for Profile {0} {1} not updated as interface cannot be found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ProfileMTUIsNull(string profileName, string IPInterface) { WriteEvent(1203, profileName, IPInterface); } - [Event(1204, Message = "Group Policy Refresh Detected", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void GroupPolicyUpdated() { WriteEvent(1204); } - [Event(1205, Message = "VPM MTU Update skipped as update already in progress", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void ProfileManagerUpdateVPNMTUSkipped() { WriteEvent(1205); } - [Event(1206, Message = "Unable to update VPN MTU\nErrors: {0} \nLocation: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void UnableToUpdateVPNMTU(string errors, string location) { WriteEvent(1206, errors, location); } - [Event(1207, Message = "System VPN MTU is Already Configured as {0}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void VPNMTUAlreadyCorrect(uint currentValue) { WriteEvent(1207, currentValue); } - [Event(1208, Message = "System VPN MTU is Already Default", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void VPNMTUAlreadyNull() { WriteEvent(1208); } - [Event(1209, Message = "System VPN MTU has been updated to {0}", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void VPNMTUUpdated(uint currentValue) { WriteEvent(1209, currentValue); } - [Event(1210, Message = "Hidden Profile {0} Removed", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ProfileHiddenProfileRemoved(string profileName) { WriteEvent(1210, profileName); } - [Event(1211, Message = "Auto Trigger Profile Cleared", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void AutoTriggerProfileCleared() { WriteEvent(1211); } - [Event(1212, Message = "Profile RasPhone configuration not found for profile {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void UnableToLocatePBKProfile(string profileName) { WriteEvent(1212, profileName); } - [Event(1213, Message = "Failed to Update Auto Trigger settings for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void IssueUpdatingAutoTriggerRegistry(string profileName, string errorMessage, string stackTrace) { WriteEvent(1213, profileName, errorMessage, stackTrace); } - [Event(1214, Message = "Restarting RasMan Service", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void RestartingRasManService() { WriteEvent(1214); } - [Event(1215, Message = "Restarting RasMan Service Failed with error {0}\n{1}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void RestartingRasManServiceFailed(string errorMessage, string stackTrace) { WriteEvent(1215, errorMessage, stackTrace); } - [Event(1216, Message = "Restart of RasMan needed however existing connections prevent this", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void RasManRestartNeeded() { WriteEvent(1216); } - [Event(1217, Message = "Restart RasMan Service Requested", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void RestartRasManServiceRequested() { WriteEvent(1217); } - [Event(1218, Message = "MiniDump saved to: {0}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MiniDumpSaved(string miniDumpPath) { WriteEvent(1218, miniDumpPath); } - [Event(1219, Message = "MiniDump Failed to Save", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void MiniDumpSaveFailed() { WriteEvent(1219); } - [Event(1220, Message = "Unexpected failure in profile creation process: \nProfile Name: {0}\nError:\n{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ProfileCreationFailedDebug(string profileName, string exception) { WriteEvent(1220, profileName, exception); } - [Event(1221, Message = "Unable to delete Profile {0}\nError message: {1}\nStackTrace: {2}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void IssueDeletingHiddenPbk(string profile, string message, string stackTrace) { WriteEvent(1221, profile, message, stackTrace); } - [Event(1222, Message = "Corrupt PBK Profile identified in {0}, file deleted to avoid issues", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void CorruptPbkDeleted(string PBKPath) { WriteEvent(1222, PBKPath); } - [Event(1223, Message = "Corrupt PBK Profile identified in {0}. Error deleting file: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void CorruptPbkDeleteFailed(string PBKPath, string exception) { WriteEvent(1223, PBKPath, exception); } - //Event Logs now fail to generate if additional logs are added at this point in the file, adding to the end appears to work for some reason... - #endregion 1100-1299 Profile Monitoring - - #region 2000-2099 Profile Monitoring - [Event(2000, Message = "Starting Error Event Monitoring", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ErrorEventMonitoringStarting() { WriteEvent(2000); } - [Event(2001, Message = "Starting Error Event Monitoring", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ErrorEventMonitoringStarted() { WriteEvent(2001); } - [Event(2002, Message = "An Error occurred while Starting Error Event Monitoring\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ErrorEventMonitoringErrorStarting(string message, string stackTrace) { WriteEvent(2002, message, stackTrace); } - [Event(2003, Message = "Stopping Error Event Monitoring", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void ErrorEventMonitoringStopping() { WriteEvent(2003); } - [Event(2004, Message = "Error Event Monitoring Stopped", Level = EventLevel.Informational, Channel = EventChannel.Operational)] - public void ErrorEventMonitoringStopped() { WriteEvent(2004); } - [Event(2005, Message = "An Error occurred while Stopping Error Event Monitoring\nError: {0}\nStackTrace:{1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] - public void ErrorEventMonitoringErrorStopping(string message, string stackTrace) { WriteEvent(2005, message, stackTrace); } - [Event(2006, Message = "Connection Failed for user {0} and Profile {1} with error ID {2} and error message {3}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void EventMonitoringConnectionFailed(string userName, string profile, string errorId, string errorMessage) { WriteEvent(2006, userName, profile, errorId, errorMessage); } - [Event(2007, Message = "Connection Failed but event is missing expected data", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void EventMonitoringConnectionFailedNoData() { WriteEvent(2007); } - [Event(2008, Message = "Connection Failed but event is missing expected data. Property Count = {0}", Level = EventLevel.Warning, Channel = EventChannel.Operational)] - public void EventMonitoringConnectionFailedUnknownProperties(int propertyCount) { WriteEvent(2008, propertyCount); } - [Event(2009, Message = "Duplicate Connection Failed event detected with Disconnect Id: {0}", Level = EventLevel.Warning, Channel = EventChannel.Debug)] - public void EventMonitoringConnectionFailedDuplicateEvent(uint disconnectId) { WriteEvent(2009, disconnectId); } - #endregion 2000-2099 Profile Monitoring - - #region 9000-10000 Special events - - [Event(9000, Message = "Service halted due to error", Level = EventLevel.Critical, Channel = EventChannel.Admin)] - public void CriticalHaltDueToError() { WriteEvent(9000); throw new CriticalException("Service Error Has Occurred, check Event log for more information"); } - [Event(9002, Message = "WARNING: Client is compiled in DEBUG mode, performance may be impacted", Level = EventLevel.Warning, Channel = EventChannel.Admin)] - public void DebugOn() { WriteEvent(9002); } - [Event(9800, Message = "Unknown error, Error Function: {0} \nMessage {1} \nStack Trace {2}", Level = EventLevel.Error, Channel = EventChannel.Admin)] - public void GenericErrorMessage(string codeLocation, string message, string stackTrace) { WriteEvent(9800, codeLocation, message, stackTrace); CriticalHaltDueToError(); } - [Event(9005, Message = "Method {0} started for Identifier {1}", Level = EventLevel.Informational, Channel = EventChannel.Analytic)] - public void TraceMethodStart(string methodName, string threadID) { WriteEvent(9005, methodName, threadID); } - [Event(9006, Message = "Method {0} finished for Identifier {1}", Level = EventLevel.Informational, Channel = EventChannel.Analytic)] - public void TraceMethodStop(string methodName, string threadID) { WriteEvent(9006, methodName, threadID); } - - #endregion 9000+ Special events - - //ADDITIONAL EVENTS - [Event(1224, Message = "No Corrupt PBK Files Found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void DebugNoCorruptPbksFound() { WriteEvent(1224); } - - [Event(9999, Message = "DPC Service is starting", Level = EventLevel.Informational, Channel = EventChannel.Admin)] - public void DPCDevClientStartup() { WriteEvent(9999); } - } -} \ No newline at end of file diff --git a/DPCDevClient/Program.cs b/DPCDevClient/Program.cs index 61e6480..da8bee3 100644 --- a/DPCDevClient/Program.cs +++ b/DPCDevClient/Program.cs @@ -12,9 +12,7 @@ internal class Program { static void Main(string[] args) { - DPCServiceEvents.Log.Startup(); //Admin Log - DPCServiceEvents.Log.DPCDevClientStartup(); //Admin Log - DPCServiceEvents.Log.DPCServiceInitializing(); //Operational Log + } } } diff --git a/DPCDevClient/_EventRegisterUsersGuide.docx b/DPCDevClient/_EventRegisterUsersGuide.docx deleted file mode 100644 index f311d20a442ae11ca959c5fc73c4dabec809dbb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 112690 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 M9zLiCdM3*M0#iws1^@s6 diff --git a/DPCDevClient/_EventSourceUsersGuide.docx b/DPCDevClient/_EventSourceUsersGuide.docx deleted file mode 100644 index 248e3e555e12809ef6d7dd8609bd49d60357fa4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162815 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

q1-K(6QL|o#Q0xbG!+4Mc-cN!FFFBH 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

VP1YNK=2W6!TKG(@*Te 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 diff --git a/DPCDevClient/packages.config b/DPCDevClient/packages.config deleted file mode 100644 index 541a63a..0000000 --- a/DPCDevClient/packages.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 74bbed2372147351a9d2553aeca0b4513db0df2e Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 21:16:51 +0100 Subject: [PATCH 20/41] Fix DNS route null exceptions --- DPCLibrary/Utils/VPNProfileCreator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index 11bab7c..c49066b 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -867,12 +867,12 @@ public void Generate() ValidateParameters(); //Perform DNS Lookups after performing Validation to avoid routes been added before needing to strip them back out as part of parameter consistancy validation - if (DNSExcludeRouteList.Count > 0) + if (DNSExcludeRouteList != null && DNSExcludeRouteList.Count > 0) { ConfigureDNSExcludeRoutes(); } - if (DNSRouteList.Count > 0) + if (DNSRouteList != null && DNSRouteList.Count > 0) { ConfigureDNSIncludeRoutes(); } From b8e5ed00734fe851ce7b3b37401680877712c2ae Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 27 Jul 2025 22:56:37 +0100 Subject: [PATCH 21/41] bump version number --- DPCInstaller/ProductVersion.wxi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index 6ad8fe0..ba6c76f 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + From 46c83262b70f461384cb1514cca3b78aef8ddf6b Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 29 Jul 2025 19:40:29 +0100 Subject: [PATCH 22/41] Attempt to avoid errors during the GPO update process by staggering profile updates #31 --- DPCInstaller/ProductVersion.wxi | 2 +- DPCService/Core/ProfileMonitor.cs | 1 + DPCService/Models/SharedData.cs | 14 ++++++++++++-- README.md | 1 + 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index ba6c76f..a6bfe38 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/DPCService/Core/ProfileMonitor.cs b/DPCService/Core/ProfileMonitor.cs index f74307d..3aa7644 100644 --- a/DPCService/Core/ProfileMonitor.cs +++ b/DPCService/Core/ProfileMonitor.cs @@ -399,6 +399,7 @@ private void LoadRegistryVariable(ref string var, string registryValue) private void TriggerEventsManually() { + Thread.Sleep(SharedData.GetUpdateTime(true)); //Manually triggering a profile update can happen to multiple profiles simultaneously, as such we add a random short pause to split the profile operations out a bit CheckProfile(null, null); if (ProfileType != ProfileType.Machine) { diff --git a/DPCService/Models/SharedData.cs b/DPCService/Models/SharedData.cs index 95c59b1..d132841 100644 --- a/DPCService/Models/SharedData.cs +++ b/DPCService/Models/SharedData.cs @@ -111,9 +111,19 @@ public IList GetManagedProfileList() public int GetUpdateTime() { + return GetUpdateTime(false); + } + + public int GetUpdateTime(bool shortTimeout) + { + int maxTimeout = 60000; + if (shortTimeout) + { + maxTimeout = 10000; + } //Profile a randomized offset to minimize the events simultaneously occurring as most events are initialized on startup and therefore would continue to process on top of each other - //Randomise between 1 second and 60 seconds - return UpdateTime + Rand.Next(1000, 60000); + //Randomise between 1 second and either 60 or 10 seconds + return UpdateTime + Rand.Next(1000, maxTimeout); } public void RemoveProfile(string profileName) diff --git a/README.md b/README.md index 24f68fd..40638bc 100644 --- a/README.md +++ b/README.md @@ -61,6 +61,7 @@ Unfortunately there is no easy way to copy an existing Configuration policy and - Fixed issue where Operational logs wouldn't show in Event Viewer - Fixed issue where Disable UI Edit and Disable UI Disconnect would cause a profile mismatch warning even when set correctly - Fixed issue where a single failure in DNS resolution would break DNS resolution for all DNS entries in a profile +- Fixed issue where errors would be reported when 2 profiles attempted to update simultaneously, this has introduced an up to 10 second delay in profile updates after Group Policy updates have been detected - Updated help files to clarify some settings and limitations - Updated comments for DNS Resolution to make it easier to understand which routes apply to which DNS entries From 031962d099ca26b38883a68c5214b31fc27a4598 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 29 Jul 2025 20:39:39 +0100 Subject: [PATCH 23/41] Add additional Null Check --- DPCLibrary/Utils/VPNProfileCreator.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index c49066b..11ce4d4 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -1522,13 +1522,13 @@ private void ValidateParameters() } } - if (DNSExcludeRouteList.Count > 0 && TunnelType == TunnelType.SplitTunnel) + if (DNSExcludeRouteList != null && DNSExcludeRouteList.Count > 0 && TunnelType == TunnelType.SplitTunnel) { ValidationWarnings.AppendLine("DNS Exclusions configured while the profile is a Split Tunnel, Ignoring exclusions"); DNSExcludeRouteList.Clear(); } - if (DNSRouteList.Count > 0 && TunnelType == TunnelType.ForceTunnel) + if (DNSRouteList != null && DNSRouteList.Count > 0 && TunnelType == TunnelType.ForceTunnel) { ValidationWarnings.AppendLine("DNS Inclusions configured while the profile is a Forced Tunnel, Ignoring inclusions"); DNSRouteList.Clear(); From 3f882ec181159763aac8ac563ae89576574c6dd0 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 29 Jul 2025 21:10:21 +0100 Subject: [PATCH 24/41] Fix missing null check --- DPCInstaller/ProductVersion.wxi | 2 +- DPCService/Core/ProfileMonitor.cs | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index a6bfe38..3d00e76 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/DPCService/Core/ProfileMonitor.cs b/DPCService/Core/ProfileMonitor.cs index 3aa7644..eb92107 100644 --- a/DPCService/Core/ProfileMonitor.cs +++ b/DPCService/Core/ProfileMonitor.cs @@ -328,7 +328,9 @@ private void TokenCancelled() DPCServiceEvents.Log.ProfileShutdownRequested(LogProfileName); Thread.Sleep(10); } - GPUpdateNotification.Wait(); + + GPUpdateNotification?.Wait(); + DPCServiceEvents.Log.ProfileUpdateShutdownComplete(LogProfileName); } catch (Exception e) From cc414d5b5da563f91a9a3eb38845630c7c83db17 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 29 Jul 2025 22:19:54 +0100 Subject: [PATCH 25/41] Add initial Get-RRASReport provided by ChrisAtWork on Discord --- DPCManagement/DPCManagement.pssproj | 5 + DPCManagement/RRASReport/Get-RRASReport.ps1 | 274 ++++++++++++++++++++ README.md | 12 + 3 files changed, 291 insertions(+) create mode 100644 DPCManagement/RRASReport/Get-RRASReport.ps1 diff --git a/DPCManagement/DPCManagement.pssproj b/DPCManagement/DPCManagement.pssproj index 58f38da..8cfb443 100644 --- a/DPCManagement/DPCManagement.pssproj +++ b/DPCManagement/DPCManagement.pssproj @@ -35,16 +35,21 @@ bin\SysAttach\ + + + + + diff --git a/DPCManagement/RRASReport/Get-RRASReport.ps1 b/DPCManagement/RRASReport/Get-RRASReport.ps1 new file mode 100644 index 0000000..bd8a672 --- /dev/null +++ b/DPCManagement/RRASReport/Get-RRASReport.ps1 @@ -0,0 +1,274 @@ +<# +.SYNOPSIS + Gather RRAS client details from multiple servers, generate HTML and publish to IIS. + +.DESCRIPTION + - Collects active RRAS VPN session details from multiple servers + - Creates an HTML report with collapsible sections grouped by server + - Saves report to IIS folder for web access + - Scheduled task can run this script every 15 minutes + +.NOTES + Requires RemoteAccess module on RRAS servers and WinRM access +#> + +# ======== CONFIGURATION ======== +# RRAS servers to query +$RRASServers = @("Host1.Domain", "Host2.Domain") # Replace with actual server names + +# IIS Web Folder for publishing report +$IISPath = "C:\inetpub\wwwroot" + +# Create IIS folder if missing +if (!(Test-Path $IISPath)) { + New-Item -ItemType Directory -Path $IISPath | Out-Null +} + +# File paths +$HtmlReport = Join-Path $IISPath "RRAS_Report.html" + +# ======== SCRIPT START ======== +$AllClientDetails = @() +$SummaryReport = @() + +foreach ($Server in $RRASServers) { + Write-Host "`nConnecting to $Server..." -ForegroundColor Cyan + try { + $ClientData = Invoke-Command -ComputerName $Server -ScriptBlock { + Import-Module RemoteAccess + Get-RemoteAccessConnectionStatistics + } -ErrorAction Stop + + if ($ClientData) { + $ClientCount = @($ClientData).Count + $SummaryReport += [PSCustomObject]@{ + ServerName = $Server + ConnectedClients = $ClientCount + } + + foreach ($Client in $ClientData) { + # Format values for readability + $formattedStart = ($Client.ConnectionStartTime).ToString("dd/MM/yyyy HH:mm") + $duration = New-TimeSpan -Start $Client.ConnectionStartTime -End (Get-Date) + if ($duration.Days -gt 0) { + $durationFormatted = "{0}d {1:hh:mm:ss}" -f $duration.Days, $duration + } + else { + $durationFormatted = "{0:hh:mm:ss}" -f $duration + } + + $AllClientDetails += [PSCustomObject]@{ + ServerName = $Server + UserName = ($Client.UserName -join ', ') + ClientIPAddress = $Client.ClientIPAddress + ClientExternalIP = $Client.ClientExternalAddress + TunnelType = $Client.TunnelType + AuthMethod = $Client.AuthMethod + ConnectionStart = $formattedStart + ConnectionDuration = $durationFormatted + BytesInMB = [math]::Round($Client.TotalBytesIn / 1MB, 2) + BytesOutMB = [math]::Round($Client.TotalBytesOut / 1MB, 2) + } + } + } + else { + Write-Host "No active clients on $Server" -ForegroundColor Yellow + $SummaryReport += [PSCustomObject]@{ + ServerName = $Server + ConnectedClients = 0 + } + } + } + catch { + Write-Host "Error connecting to $Server : $_" -ForegroundColor Red + $SummaryReport += [PSCustomObject]@{ + ServerName = $Server + ConnectedClients = "Error" + } + } +} + +# ======== BUILD HTML REPORT ======== +$style = @" + +"@ + +$searchBox = @" + + +

+ + +"@ + + +$Footer = @" +
+ © $(Get-Date -Format yyyy) Company - Chris Griffin. All rights reserved. +
+"@ + +# Page Title +$title = ' --- VPN Connection Report --- ' + +# Auto-refresh every 2 minutes (120 seconds) +$refreshTag = '' + +# Convert Summary Report with Friendly Headers +$SummaryFriendly = $SummaryReport | Select-Object ` +@{Name = 'Server'; Expression = { $_.ServerName } }, +@{Name = 'Active Clients'; Expression = { $_.ConnectedClients } } + +$SummaryTable = ($SummaryFriendly | ConvertTo-Html -PreContent "

VPN Server Summary

" -Fragment) + +# Grouped client details with collapsible sections +$GroupedContent = "" +$Servers = $AllClientDetails | Group-Object ServerName +foreach ($group in $Servers) { + $serverName = $group.Name + $clientRows = $group.Group | ConvertTo-Html -Property UserName, ClientIPAddress, ClientExternalIP, TunnelType, AuthMethod, ConnectionStart, ConnectionDuration, BytesInMB, BytesOutMB -Fragment + # Convert Client Details with Friendly Headers + $ClientFriendly = $group.Group | Select-Object ` + @{Name = 'User Name'; Expression = { $_.UserName } }, + @{Name = 'IP Address'; Expression = { $_.ClientIPAddress } }, + @{Name = 'External IP Address'; Expression = { $_.ClientExternalIP } }, + @{Name = 'Tunnel Type'; Expression = { $_.TunnelType } }, + @{Name = 'Authentication'; Expression = { $_.AuthMethod } }, + @{Name = 'Start Time'; Expression = { $_.ConnectionStart } }, + @{Name = 'Duration'; Expression = { $_.ConnectionDuration } }, + @{Name = 'Data In (MB)'; Expression = { $_.BytesInMB } }, + @{Name = 'Data Out (MB)'; Expression = { $_.BytesOutMB } } + + $clientRows = $ClientFriendly | ConvertTo-Html -Fragment + + $GroupedContent += "
$serverName (Clients: $($group.Count))$clientRows
" +} + +$Body = "

RRAS VPN Connection Report

$searchBox

Generated: $(Get-Date -Format 'dd/MM/yyyy HH:mm')

$SummaryTable

Client Details

$GroupedContent" +$Body += $Footer +$HtmlContent = ConvertTo-Html -Head "$style $refreshTag $title" -Body $Body + +# Save HTML report to IIS path +$HtmlContent | Out-File $HtmlReport -Encoding UTF8 + +Write-Host "`nReports saved to IIS folder:" +Write-Host "- $HtmlReport " diff --git a/README.md b/README.md index 40638bc..a9b3a5c 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,18 @@ Please note that this script will not delete any previously added settings as su Unfortunately there is no easy way to copy an existing Configuration policy and update it in Intune, as such it is recommended that the new ADMX files are imported and settings are manually copied over. +# RRAS Monitoring Solution + +DPC is proud to be the current hosting location for a new RRAS monitoring solution initially written by ChrisAtWork on Discord! Please feel free to download from [here](DPCManagement/RRASReport/Get-RRASReport.ps1) and please do contribute to the ongoing development, either by raising a pull request or by discussing it on Discord [MS Remote Access UG](https://discord.gg/qzgajr9Dev) + +This script is very much in development so please take care and people to actively maintain and develop it would be greatly appreciated + +## Prerequisites + +- Domain Joined RRAS Servers +- WinRM Connectivity between the host and RRAS Servers +- IIS installed and configured + # Release Notes ## Version 5.2.0 From d84831712523c656a00351d523f79f5d91ac874e Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Wed, 30 Jul 2025 20:11:06 +0100 Subject: [PATCH 26/41] Fix bug where thread was locked for profile update time --- DPCInstaller/ProductVersion.wxi | 2 +- DPCService/Core/ProfileMonitor.cs | 2 +- DPCService/Models/SharedData.cs | 9 ++++++--- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index 3d00e76..639b97b 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/DPCService/Core/ProfileMonitor.cs b/DPCService/Core/ProfileMonitor.cs index eb92107..73974c0 100644 --- a/DPCService/Core/ProfileMonitor.cs +++ b/DPCService/Core/ProfileMonitor.cs @@ -401,7 +401,7 @@ private void LoadRegistryVariable(ref string var, string registryValue) private void TriggerEventsManually() { - Thread.Sleep(SharedData.GetUpdateTime(true)); //Manually triggering a profile update can happen to multiple profiles simultaneously, as such we add a random short pause to split the profile operations out a bit + Thread.Sleep(SharedData.getRandomTime(true)); //Manually triggering a profile update can happen to multiple profiles simultaneously, as such we add a random short pause to split the profile operations out a bit CheckProfile(null, null); if (ProfileType != ProfileType.Machine) { diff --git a/DPCService/Models/SharedData.cs b/DPCService/Models/SharedData.cs index d132841..ca5fe8f 100644 --- a/DPCService/Models/SharedData.cs +++ b/DPCService/Models/SharedData.cs @@ -111,10 +111,13 @@ public IList GetManagedProfileList() public int GetUpdateTime() { - return GetUpdateTime(false); + int maxTimeout = 60000; + //Profile a randomized offset to minimize the events simultaneously occurring as most events are initialized on startup and therefore would continue to process on top of each other + //Randomise between 1 second and either 60 or 10 seconds + return UpdateTime + getRandomTime(false); } - public int GetUpdateTime(bool shortTimeout) + public int getRandomTime(bool shortTimeout) { int maxTimeout = 60000; if (shortTimeout) @@ -123,7 +126,7 @@ public int GetUpdateTime(bool shortTimeout) } //Profile a randomized offset to minimize the events simultaneously occurring as most events are initialized on startup and therefore would continue to process on top of each other //Randomise between 1 second and either 60 or 10 seconds - return UpdateTime + Rand.Next(1000, maxTimeout); + return Rand.Next(100, maxTimeout); } public void RemoveProfile(string profileName) From fe1e7e7bd2a0cbdded72f887de83ecba00fd591f Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Sun, 10 Aug 2025 17:16:40 +0100 Subject: [PATCH 27/41] Add debug event to show why a profile is being updated and prepare for 5.2.0 release --- DPCInstaller/ProductVersion.wxi | 2 +- DPCManagement/Scripts/Get-DPCLogs.ps1 | 32 ++++++++++++++++++++++++++- DPCService/Models/SharedData.cs | 3 +-- DPCService/Utils/DPCServiceEvents.cs | 6 ++--- DPCService/Utils/ProfileAction.cs | 6 +++++ README.md | 3 ++- 6 files changed, 43 insertions(+), 9 deletions(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index 639b97b..9b85649 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/DPCManagement/Scripts/Get-DPCLogs.ps1 b/DPCManagement/Scripts/Get-DPCLogs.ps1 index 727525f..f08ec7c 100644 --- a/DPCManagement/Scripts/Get-DPCLogs.ps1 +++ b/DPCManagement/Scripts/Get-DPCLogs.ps1 @@ -7,7 +7,7 @@ Param ( [string] $FileName="DPCLog", [Switch] - $DebugLogs + $DebugLogs=$true ) $SavePath = Join-Path -Path $env:TEMP -ChildPath "DPCLog" @@ -196,6 +196,13 @@ try Write-Output "Setting Refresh Interval to 1 Minute" New-ItemProperty -Path HKLM:\SOFTWARE\Policies\DPC\DPCClient -Name RefreshPeriod -Value 1 -Force | Out-Null + Write-Output "Setting Event Log Export" + New-ItemProperty -Path HKLM:\SOFTWARE\Policies\DPC\DPCClient -Name EventLogFilter -Value 0 -Force | Out-Null + $EventLogPath = Get-ItemProperty "HKLM:\SOFTWARE\Policies\DPC\DPCClient\" | Select-Object -ExpandProperty "EventLogPath" + if (-NOT [string]::IsNullOrWhiteSpace($EventLogPath)) + { + New-ItemProperty -Path HKLM:\SOFTWARE\Policies\DPC\DPCClient -Name EventLogPath -Value (Join-Path -Path $SavePath -ChildPath "EventLogs\DPCLog.txt") -Force | Out-Null + } } Write-Output "Restarting Agent" @@ -221,6 +228,26 @@ try wevtutil export-log "DPC-AOVPN-DPCService/Analytic" (Join-Path -Path $SavePath -ChildPath "EventLogs\Analytic.evtx") } + $EventLogPath = Get-ItemProperty "HKLM:\SOFTWARE\Policies\DPC\DPCClient\" | Select-Object -ExpandProperty "EventLogPath" + if (-NOT [string]::IsNullOrWhiteSpace($EventLogPath)) + { + $EventLogPath = [System.IO.Path]::GetFullPath($EventLogPath) + if ((Test-Path -Path $EventLogPath -PathType Container)) + { + $EventLogPath = Join-Path -Path $EventLogPath -ChildPath "DPCLog.txt" + } + + if((Test-Path -Path $EventLogPath -PathType Leaf) -and $EventLogPath.StartsWith($SavePath)) + { + Write-Output "Copying Event Logs Files" + Copy-Item -Path $EventLogPath -Destination (Join-Path -Path $SavePath -ChildPath "EventLogs\DPCLog.txt") + } + else + { + Write-Warning "Expected Event Logs to be located at $EventLogPath" + } + } + Write-Output "Checking for Memory Dumps" $MemoryDumpList = @() $MemoryDumpList += Get-ChildItem -Path (Join-Path -Path $env:SystemDrive -ChildPath "Windows\Temp") -Filter DPCService-*.dmp @@ -265,6 +292,9 @@ try { Write-Output "Resetting Profile Refresh Interval" Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\DPC\DPCClient -Name RefreshPeriod -Force | Out-Null + Write-Output "Resetting Event Log Export" + Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\DPC\DPCClient -Name EventLogFilter -Force | Out-Null + Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\DPC\DPCClient -Name EventLogPath -Force | Out-Null Write-Output "Disabling Debug Logs" wevtutil set-log "DPC-AOVPN-DPCService/Debug" /enabled:false /quiet diff --git a/DPCService/Models/SharedData.cs b/DPCService/Models/SharedData.cs index ca5fe8f..fb49144 100644 --- a/DPCService/Models/SharedData.cs +++ b/DPCService/Models/SharedData.cs @@ -111,7 +111,6 @@ public IList GetManagedProfileList() public int GetUpdateTime() { - int maxTimeout = 60000; //Profile a randomized offset to minimize the events simultaneously occurring as most events are initialized on startup and therefore would continue to process on top of each other //Randomise between 1 second and either 60 or 10 seconds return UpdateTime + getRandomTime(false); @@ -125,7 +124,7 @@ public int getRandomTime(bool shortTimeout) maxTimeout = 10000; } //Profile a randomized offset to minimize the events simultaneously occurring as most events are initialized on startup and therefore would continue to process on top of each other - //Randomise between 1 second and either 60 or 10 seconds + //Randomise between .1 second and either 60 or 10 seconds return Rand.Next(100, maxTimeout); } diff --git a/DPCService/Utils/DPCServiceEvents.cs b/DPCService/Utils/DPCServiceEvents.cs index 54bcd56..ff39f1f 100644 --- a/DPCService/Utils/DPCServiceEvents.cs +++ b/DPCService/Utils/DPCServiceEvents.cs @@ -359,6 +359,8 @@ internal sealed class DPCServiceEvents : EventSource public void CorruptPbkDeleted(string PBKPath) { WriteEvent(1222, PBKPath); } [Event(1223, Message = "Corrupt PBK Profile identified in {0}. Error deleting file: {1}", Level = EventLevel.Error, Channel = EventChannel.Operational)] public void CorruptPbkDeleteFailed(string PBKPath, string exception) { WriteEvent(1223, PBKPath, exception); } + [Event(1224, Message = "Profile {0} Needs {1} updating because existing value {2}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void ProfileDebugUpdateProfileDetail(string profileName, string variable, string errorMessage) { WriteEvent(1224, profileName, variable, errorMessage); } //Event Logs now fail to generate if additional logs are added at this point in the file, adding to the end appears to work for some reason... #endregion 1100-1299 Profile Monitoring @@ -399,9 +401,5 @@ internal sealed class DPCServiceEvents : EventSource public void TraceMethodFinished(string methodName, string threadID) { WriteEvent(9006, methodName, threadID); } #endregion 9000+ Special events - - //ADDITIONAL EVENTS - [Event(1224, Message = "No Corrupt PBK Files Found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] - public void DebugNoCorruptPbksFound() { WriteEvent(1224); } } } \ No newline at end of file diff --git a/DPCService/Utils/ProfileAction.cs b/DPCService/Utils/ProfileAction.cs index a997396..2b77191 100644 --- a/DPCService/Utils/ProfileAction.cs +++ b/DPCService/Utils/ProfileAction.cs @@ -145,6 +145,12 @@ public static void CreateProfile(ManagedProfile profile, CancellationToken cance } else { + Dictionary preUpdateResults = VPNProfile.CompareToInstalledProfileWithResults(profile.ProfileName, profile.ProfileXML, cancelToken); + foreach (KeyValuePair result in preUpdateResults) + { + DPCServiceEvents.Log.ProfileDebugUpdateProfileDetail(profile.ProfileName, result.Key, result.Value); + } + //Profile not up to date, remove and re-add DPCServiceEvents.Log.ProfileDebugRemoveProfile(profile.ProfileName); //Remove existing profile if it exists diff --git a/README.md b/README.md index a9b3a5c..7f75aa0 100644 --- a/README.md +++ b/README.md @@ -69,13 +69,14 @@ This script is very much in development so please take care and people to active ## Version 5.2.0 - Added Option to write Event Logs to Disk - Added Support for excluding Resolved DNS IPs from a VPN Profile +- Added up to 10 second delay in profile updates after Group Policy updates have been detected to avoid profiles being updated simultaneously - Fixed bug where DNS Route resolution with the same IP addresses would cause the resolution to fail - Fixed issue where Operational logs wouldn't show in Event Viewer - Fixed issue where Disable UI Edit and Disable UI Disconnect would cause a profile mismatch warning even when set correctly - Fixed issue where a single failure in DNS resolution would break DNS resolution for all DNS entries in a profile -- Fixed issue where errors would be reported when 2 profiles attempted to update simultaneously, this has introduced an up to 10 second delay in profile updates after Group Policy updates have been detected - Updated help files to clarify some settings and limitations - Updated comments for DNS Resolution to make it easier to understand which routes apply to which DNS entries +- Updated Debug logs to show why a profile isn't considered identical prior to the profile update ## Version 5.1.0 - Added detection and removal for corrupted hiddenPBK files From b8749548a489307b974c0a87af75c91efad891ed Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Wed, 13 Aug 2025 08:33:49 +0100 Subject: [PATCH 28/41] Update comments and fix capitalization --- DPCService/Core/ProfileMonitor.cs | 2 +- DPCService/Models/SharedData.cs | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/DPCService/Core/ProfileMonitor.cs b/DPCService/Core/ProfileMonitor.cs index dd7d660..3a403b5 100644 --- a/DPCService/Core/ProfileMonitor.cs +++ b/DPCService/Core/ProfileMonitor.cs @@ -396,7 +396,7 @@ private void LoadRegistryVariable(ref string var, string registryValue) private void TriggerEventsManually() { - Thread.Sleep(SharedData.getRandomTime(true)); //Manually triggering a profile update can happen to multiple profiles simultaneously, as such we add a random short pause to split the profile operations out a bit + Thread.Sleep(SharedData.GetRandomTime(true)); //Manually triggering a profile update can happen to multiple profiles simultaneously, as such we add a random short pause to split the profile operations out a bit CheckProfile(null, null); if (ProfileType != ProfileType.Machine) { diff --git a/DPCService/Models/SharedData.cs b/DPCService/Models/SharedData.cs index fb49144..406e123 100644 --- a/DPCService/Models/SharedData.cs +++ b/DPCService/Models/SharedData.cs @@ -112,11 +112,11 @@ public IList GetManagedProfileList() public int GetUpdateTime() { //Profile a randomized offset to minimize the events simultaneously occurring as most events are initialized on startup and therefore would continue to process on top of each other - //Randomise between 1 second and either 60 or 10 seconds - return UpdateTime + getRandomTime(false); + //Randomise between 1 second and 60 seconds + return UpdateTime + GetRandomTime(false); } - public int getRandomTime(bool shortTimeout) + public int GetRandomTime(bool shortTimeout) { int maxTimeout = 60000; if (shortTimeout) From b7142f482b8f4bf84af8c6af956ee8c75ac11cc2 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Wed, 13 Aug 2025 20:20:21 +0100 Subject: [PATCH 29/41] Fixed issue with profile update never returning spinlock --- DPCInstaller/ProductVersion.wxi | 2 +- DPCService/Core/ProfileMonitor.cs | 10 +++++++--- DPCService/Utils/DPCServiceEvents.cs | 4 +++- README.md | 4 ++++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index 9b85649..d517415 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/DPCService/Core/ProfileMonitor.cs b/DPCService/Core/ProfileMonitor.cs index 3a403b5..a390eac 100644 --- a/DPCService/Core/ProfileMonitor.cs +++ b/DPCService/Core/ProfileMonitor.cs @@ -5,7 +5,6 @@ using DPCService.Utils; using System; using System.Collections.Generic; -using System.Security.AccessControl; using System.Threading; using System.Threading.Tasks; using System.Timers; @@ -170,6 +169,11 @@ private void CheckProfile(object sender, ElapsedEventArgs args) DPCServiceEvents.Log.ProfileCreationFailedDebug(ProfileName, e.ToString()); #endif } + finally + { + // Release control of SyncPoint. + ProfileUpdateSyncPoint = 0; + } } else { @@ -208,10 +212,10 @@ private void CheckForCorruptHiddenPBKs(object sender, ElapsedEventArgs args) } else { - //DPCServiceEvents.Log.Teapot(); + DPCServiceEvents.Log.DebugNoCorruptPbksFound(); } } - catch (Exception e) + catch { if (SharedData.DumpOnException) { diff --git a/DPCService/Utils/DPCServiceEvents.cs b/DPCService/Utils/DPCServiceEvents.cs index ff39f1f..06e20ba 100644 --- a/DPCService/Utils/DPCServiceEvents.cs +++ b/DPCService/Utils/DPCServiceEvents.cs @@ -104,7 +104,7 @@ internal sealed class DPCServiceEvents : EventSource [Event(1010, Message = "New VPN Disconnection Made on Unknown Profile", Level = EventLevel.Informational, Channel = EventChannel.Operational)] public void NewVPNUnknownDisconnectionEvent() { WriteEvent(1010); } - [Event(1011, Message = "Spinlock for profile {0} was already owned, skipping profile update", Level = EventLevel.Warning, Channel = EventChannel.Debug)] + [Event(1011, Message = "Spinlock for profile {0} was already owned, skipping profile update", Level = EventLevel.Warning, Channel = EventChannel.Operational)] public void ProfileUpdateSkipped(string profileName) { WriteEvent(1011, profileName); } [Event(1012, Message = "Event Handler currently engaged for profile {0}, waiting for update to complete...", Level = EventLevel.Informational, Channel = EventChannel.Debug)] public void ProfileShutdownRequested(string profileName) { WriteEvent(1012, profileName); } @@ -361,6 +361,8 @@ internal sealed class DPCServiceEvents : EventSource public void CorruptPbkDeleteFailed(string PBKPath, string exception) { WriteEvent(1223, PBKPath, exception); } [Event(1224, Message = "Profile {0} Needs {1} updating because existing value {2}", Level = EventLevel.Informational, Channel = EventChannel.Debug)] public void ProfileDebugUpdateProfileDetail(string profileName, string variable, string errorMessage) { WriteEvent(1224, profileName, variable, errorMessage); } + [Event(1225, Message = "No Corrupt PBK Files Found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] + public void DebugNoCorruptPbksFound() { WriteEvent(1225); } //Event Logs now fail to generate if additional logs are added at this point in the file, adding to the end appears to work for some reason... #endregion 1100-1299 Profile Monitoring diff --git a/README.md b/README.md index c01211c..16273a5 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,10 @@ This script is very much in development so please take care and people to active # Release Notes +## Version 5.2.1 +- Fixed issue where DPC would not exit correctly +- Updated Profile management logging to show additional information in rare circumstances + ## Version 5.2.0 - Added Option to write Event Logs to Disk - Added Support for excluding Resolved DNS IPs from a VPN Profile From b935b1283fc2a1e987b64e7bf3e1f8b4932e2400 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Fri, 5 Sep 2025 20:44:04 +0100 Subject: [PATCH 30/41] Updated proxy examples --- DPCInstaller/ADMX/en-US/DPC.adml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/DPCInstaller/ADMX/en-US/DPC.adml b/DPCInstaller/ADMX/en-US/DPC.adml index cfa3041..b943893 100644 --- a/DPCInstaller/ADMX/en-US/DPC.adml +++ b/DPCInstaller/ADMX/en-US/DPC.adml @@ -255,11 +255,15 @@ If PAC File is selected then the full url to the PAC file should be defined in t Example: http://proxy.contoso.com/vpnproxy.pac +https://proxy.contoso.com/vpnproxy.pac +http://proxy.contoso.com:8080/vpnproxy.pac +https://proxy.contoso.com:8081/vpnproxy.pac If Proxy Server is selected then the hostname and port of the proxy server should be defined in the Proxy Value Example: -http://proxy.contoso.com:8080 +proxy.contoso.com +proxy.contoso.com:8080 NOTE: Proxy Exclusions and Bypass For Local Address Options are only valid when 'Proxy Server' is selected. These settings can be set with a seperate Group Policy Setting From f6a4540fc813c29df99cf38a4f469dace76e8d0e Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 9 Sep 2025 17:48:40 +0100 Subject: [PATCH 31/41] Fix incorrect registry location for User Backup Tunnel Setting --- DPCInstaller/ADMX/dpc.admx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DPCInstaller/ADMX/dpc.admx b/DPCInstaller/ADMX/dpc.admx index c6e8712..483e654 100644 --- a/DPCInstaller/ADMX/dpc.admx +++ b/DPCInstaller/ADMX/dpc.admx @@ -1335,7 +1335,7 @@ - + From 974e11d9c7635ea120f29f5fcd74050d4904ca08 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Wed, 10 Sep 2025 22:07:36 +0100 Subject: [PATCH 32/41] Fix null pointer exception --- DPCLibrary/Utils/AccessWMI.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/DPCLibrary/Utils/AccessWMI.cs b/DPCLibrary/Utils/AccessWMI.cs index 6427c20..c98446f 100644 --- a/DPCLibrary/Utils/AccessWMI.cs +++ b/DPCLibrary/Utils/AccessWMI.cs @@ -232,7 +232,15 @@ public static bool SetProxyExcludeExceptions(string profileName, IList e return false; } - List proxyExcludeList = new List(excludeList); + List proxyExcludeList; + if (excludeList != null) + { + proxyExcludeList = new List(excludeList); + } + else + { + proxyExcludeList = new List(); + } using (CimOperationOptions options = GetContextOptions(DeviceInfo.SYSTEMSID, cancelToken)) { From 8faa048720a42154cff92e7e34b746dd9982676c Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Mon, 15 Sep 2025 20:52:20 +0100 Subject: [PATCH 33/41] Update interim changelog --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 16273a5..11f67b9 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,11 @@ This script is very much in development so please take care and people to active # Release Notes +## vNext +- Updated Proxy examples in ADMX files +- Fixed incorrect Proxy Exceptions option for User Backup Tunnel in ADMX files +- Fixed potential null pointer exception when using proxy exclusions + ## Version 5.2.1 - Fixed issue where DPC would not exit correctly - Updated Profile management logging to show additional information in rare circumstances From a2fd84da7394d7726f6d3dd6e72c1e227c0b31af Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 16 Sep 2025 22:11:29 +0100 Subject: [PATCH 34/41] Update PSExec Scripts to dynamically locate the latest version of the MS Store Sysinternals packages --- DPCManagement/Scripts/Run-AsSYSTEM.ps1 | 13 ++++++++++++- DPCManagement/Scripts/Run-TestsAsSYSTEM.ps1 | 12 +++++++++++- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/DPCManagement/Scripts/Run-AsSYSTEM.ps1 b/DPCManagement/Scripts/Run-AsSYSTEM.ps1 index 5ed29da..5811945 100644 --- a/DPCManagement/Scripts/Run-AsSYSTEM.ps1 +++ b/DPCManagement/Scripts/Run-AsSYSTEM.ps1 @@ -1,9 +1,20 @@ -$PSExecPath = "C:\Program Files\WindowsApps\Microsoft.SysinternalsSuite_2025.5.0.0_x64__8wekyb3d8bbwe\Tools\PsExec.exe" +#$PSExecPath = "C:\Program Files\WindowsApps\Microsoft.SysinternalsSuite_2025.5.0.0_x64__8wekyb3d8bbwe\Tools\PsExec.exe" $VSPath = "C:\Program Files\Microsoft Visual Studio\2022\community" $MSBuildpath = "$VSPath\MSBuild\Current\Bin\msbuild.exe" $SolutionRootPath = "C:\source\DPC" $Project = "DPCService" +if ([String]::IsNullOrWhiteSpace($ManualPSExecPath)) +{ + $StorePath = Get-ChildItem -Path "C:\Program Files\WindowsApps\" | Where-Object Name -Like "Microsoft.SysinternalsSuite_*_x64_*" + $PSExecPath = Join-Path -Path $StorePath.FullName -ChildPath "\Tools\PsExec.exe" +} +else +{ + $PsExecPath = $ManualPSExecPath +} + + if(-NOT (Test-path -Path $PSExecPath)) { Throw "Unable to Locate PSExec.exe" diff --git a/DPCManagement/Scripts/Run-TestsAsSYSTEM.ps1 b/DPCManagement/Scripts/Run-TestsAsSYSTEM.ps1 index 8541bac..1c31bfa 100644 --- a/DPCManagement/Scripts/Run-TestsAsSYSTEM.ps1 +++ b/DPCManagement/Scripts/Run-TestsAsSYSTEM.ps1 @@ -1,10 +1,20 @@ -$PSExecPath = "C:\Program Files\WindowsApps\Microsoft.SysinternalsSuite_2025.2.0.0_x64__8wekyb3d8bbwe\Tools\PsExec.exe" +#$PSExecPath = "C:\Program Files\WindowsApps\Microsoft.SysinternalsSuite_2025.2.0.0_x64__8wekyb3d8bbwe\Tools\PsExec.exe" $VSPath = "C:\Program Files\Microsoft Visual Studio\2022\Community" $VSTestPath = "$VSPath\Common7\IDE\Extensions\TestPlatform\vstest.console.exe" $MSBuildpath = "$VSPath\MSBuild\Current\Bin\msbuild.exe" $SolutionRootPath = Split-Path -Path (Split-Path -Path $PSScriptRoot -Parent) -Parent $SleepBlockingProtection = $false +if ([String]::IsNullOrWhiteSpace($ManualPSExecPath)) +{ + $StorePath = Get-ChildItem -Path "C:\Program Files\WindowsApps\" | Where-Object Name -Like "Microsoft.SysinternalsSuite_*_x64_*" + $PSExecPath = Join-Path -Path $StorePath.FullName -ChildPath "\Tools\PsExec.exe" +} +else +{ + $PsExecPath = $ManualPSExecPath +} + if(-NOT (Test-path -Path $PSExecPath)) { Throw "Unable to Locate PSExec.exe" From 3b6adbd8631c52961601f2d4d34ee69e56b59592 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 23 Sep 2025 19:30:15 +0100 Subject: [PATCH 35/41] Tests for and fixed #42 --- DPCLibrary/Utils/AccessWMI.cs | 1 + ServiceIntergrationTests/UserProfileTests.cs | 49 ++++++++++++++++++++ 2 files changed, 50 insertions(+) diff --git a/DPCLibrary/Utils/AccessWMI.cs b/DPCLibrary/Utils/AccessWMI.cs index c98446f..1e333e4 100644 --- a/DPCLibrary/Utils/AccessWMI.cs +++ b/DPCLibrary/Utils/AccessWMI.cs @@ -169,6 +169,7 @@ private static string SanitizeName(string name) private static string Sanitize(string profileData) { + profileData = profileData.Replace("&", "&"); //Must be first or breaks all the other escape codes profileData = profileData.Replace("<", "<"); profileData = profileData.Replace(">", ">"); profileData = profileData.Replace("\"", """); diff --git a/ServiceIntergrationTests/UserProfileTests.cs b/ServiceIntergrationTests/UserProfileTests.cs index 9fd8cd1..54798ab 100644 --- a/ServiceIntergrationTests/UserProfileTests.cs +++ b/ServiceIntergrationTests/UserProfileTests.cs @@ -81,6 +81,55 @@ public void BasicUserProfile(ProfileType profileType) HelperFunctions.AssertProfileMatches(profileName, profile.GetProfile(), TestContext); } + [DataTestMethod] + [DataRow("")] + [DataRow(" ")] //Non-breaking Space + [DataRow("\"")] + [DataRow("\'")] + [DataRow("&")] + [DataRow("<")] + [DataRow(">")] + [DataRow("¢")] + [DataRow("£")] + [DataRow("¥")] + [DataRow("€")] + [DataRow("©")] + [DataRow("®")] + [DataRow("™")] + public void BasicUserProfileWithWeirdCharsInRouteName(string character) + { + string profileName = TestContext.TestName; + + VPNProfileCreator profile = new VPNProfileCreator(ProfileType.User, false); + profile.LoadUserProfile(profileName, + TunnelType.SplitTunnel, + HelperFunctions.DefaultConnectionURL, + new List() { "47beabc922eae80e78783462a79f45c254fde68b" }, + new List() { "27ac9369faf25207bb2627cefaccbe4ef9c319b8" }, + new List() { "NPS01.Test.local" }, + routeList: new Dictionary + { + { "10.0.0.0/8", "Server " + character + " Client Network" } + } + ); + profile.Generate(); + TestContext.WriteLine(profile.GetValidationFailures()); + TestContext.WriteLine(profile.GetValidationWarnings()); + Assert.IsFalse(profile.ValidateFailed()); + Assert.IsFalse(profile.ValidateWarnings()); + + sharedData.AddProfileUpdate(profile.GetProfileUpdate()); + + sharedData.HandleProfileUpdates(); + Assert.IsTrue(HelperFunctions.CheckProfileExists(profileName)); + + //Assert that all updates have happened + Assert.AreEqual(0, sharedData.PendingUpdates()); + + //Check update was fully accepted by WMI + HelperFunctions.AssertProfileMatches(profileName, profile.GetProfile(), TestContext); + } + [DataTestMethod] [DataRow(ProfileType.User)] [DataRow(ProfileType.UserBackup)] From a8c6435f299b8678706589846d6f302d1bb8df96 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 23 Sep 2025 20:24:49 +0100 Subject: [PATCH 36/41] Update Route to make use of existing IPUtil methods and add in additional safety checks --- DPCLibrary/Models/Route.cs | 15 +++++++++++---- DPCLibrary/Utils/VPNProfileCreator.cs | 16 ++++++++++++++-- 2 files changed, 25 insertions(+), 6 deletions(-) diff --git a/DPCLibrary/Models/Route.cs b/DPCLibrary/Models/Route.cs index ca58ed8..d3cd674 100644 --- a/DPCLibrary/Models/Route.cs +++ b/DPCLibrary/Models/Route.cs @@ -72,9 +72,8 @@ public Route(XElement routeNode) string tempAddress = routeNode.XPathSelectElement("Address")?.Value; if (tempAddress.Contains("/")) { - string[] tempAddressSplit = tempAddress.Split('/'); - tempAddress = tempAddressSplit[0]; - Prefix = Convert.ToInt32(tempAddressSplit[1], CultureInfo.InvariantCulture); + Prefix = IPUtils.GetIPCIDRSuffix(tempAddress); + tempAddress = IPUtils.GetIPAddress(tempAddress); } else { @@ -85,15 +84,23 @@ public Route(XElement routeNode) { Address = new IPv4Address(); Address.LoadFromString(tempAddress); + if (Prefix < 0 || Prefix > 32) + { + throw new InvalidDataException("IPv4 Prefix " + Prefix + " was not considered a valid CIDR Suffix"); + } } else if (Validate.IPv6(tempAddress)) { Address = new IPv6Address(); Address.LoadFromString(tempAddress); + if (Prefix < 0 || Prefix > 128) + { + throw new InvalidDataException("IPv6 Prefix " + Prefix + " was not considered a valid CIDR Suffix"); + } } else { - throw new InvalidDataException("IP Address " + tempAddress + " was not considered a valid Iv4 or IPv6 Address"); + throw new InvalidDataException("IP Address " + tempAddress + " was not considered a valid IPv4 or IPv6 Address"); } diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index 11ce4d4..6996326 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -1216,9 +1216,21 @@ public void Generate() { writer.WriteComment(Route.Value); } + string address = IPUtils.GetIPAddress(Route.Key); + if (string.IsNullOrWhiteSpace(address)) + { + ValidationFailures.AppendLine("Route: " + Route.Key + " is not valid and has been skipped"); + continue; + } + int prefix = IPUtils.GetIPCIDRSuffix(Route.Key); + if (prefix < 0) + { + ValidationFailures.AppendLine("Route: " + Route.Key + " is not valid and has been skipped"); + continue; + } writer.WriteStartElement("Route"); - writer.WriteElementString("Address", IPUtils.GetIPAddress(Route.Key)); - writer.WriteElementString("PrefixSize", IPUtils.GetIPCIDRSuffix(Route.Key).ToString(CultureInfo.InvariantCulture)); + writer.WriteElementString("Address", address); + writer.WriteElementString("PrefixSize", prefix.ToString(CultureInfo.InvariantCulture)); if (RouteMetric > 0) { writer.WriteElementString("Metric", RouteMetric.ToString(CultureInfo.InvariantCulture)); From a59e07095fbc06ca0100a0ba1443009a4fea1f53 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 23 Sep 2025 20:36:03 +0100 Subject: [PATCH 37/41] update comment --- DPCLibrary/Utils/IPUtils.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DPCLibrary/Utils/IPUtils.cs b/DPCLibrary/Utils/IPUtils.cs index 0a5e2c5..4fc84ec 100644 --- a/DPCLibrary/Utils/IPUtils.cs +++ b/DPCLibrary/Utils/IPUtils.cs @@ -65,7 +65,7 @@ public static int GetIPCIDRSuffix(string address) } else { - //Assume mask is in the format /24 + //Assume mask is in the CIDR format //Throw exception if not valid return int.Parse(splitAddress[1], CultureInfo.InvariantCulture); } From b49cdc9f529f84749f6088584af8497426e6bd29 Mon Sep 17 00:00:00 2001 From: Ryan Newington Date: Thu, 25 Sep 2025 04:19:21 +1000 Subject: [PATCH 38/41] Refactor of IP address validation logic (#44) * Improve CIDR validation logic for IPv4 addresses * Add test cases for 0.0.0.0/1 CIDR notation This commit introduces new test cases in the `ValidateTests.cs` file for the following methods: - `ValidIpv4ORCIDR` - `ValidIpv4ORIpv6ORCIDR` - `ValidIpv4CIDR` Each test case includes the data row `0.0.0.0/1` to ensure proper validation of this CIDR notation. * Update development pipeline to run for all branches other than main * Adds support for validating CIDR 0.0.0.0/0 Updates test cases in to cover new scenarios for both invalid and valid IPv4 and CIDR inputs. Removed some duplicate DataRow test cases. * Refactor IP address validation methods Renamed validation methods in the `Validate` class to differentiate valid endpoint addresses from other valid address formats. Updated usages of the validation code where appropriate to differentiate between when the code path wanted to check for a valid IP Address in the context of an endpoint vs a route (where things like 0.0.0.0 would be allowed) Refactored main IP address validation logic to use a single internal function to ensure consistency of validation across address types. Test cases in `ValidateTests.cs` were modified to reflect the new method names and ensure proper functionality. * Rename validation tests for IPv4 and IPv6 endpoints * Update ValidateIPInternal logic to not use ternary expression Add validation for rejecting non v4 or v6 address families Moves CIDR validation routines to use new internal address validation method --------- Co-authored-by: Leo D'Arcy --- .github/workflows/DevelopmentDPC.yml | 6 +- DPCLibrary/Models/IPv4Address.cs | 2 +- DPCLibrary/Models/IPv6Address.cs | 2 +- DPCLibrary/Models/Route.cs | 4 +- DPCLibrary/Utils/IPUtils.cs | 6 +- DPCLibrary/Utils/VPNProfileCreator.cs | 4 +- DPCLibrary/Utils/Validate.cs | 242 +++++++++++-------- DPCLibraryTests/ValidateTests.cs | 74 ++++-- ServiceIntergrationTests/UserProfileTests.cs | 4 +- 9 files changed, 205 insertions(+), 139 deletions(-) diff --git a/.github/workflows/DevelopmentDPC.yml b/.github/workflows/DevelopmentDPC.yml index 26190ec..3f70424 100644 --- a/.github/workflows/DevelopmentDPC.yml +++ b/.github/workflows/DevelopmentDPC.yml @@ -7,9 +7,11 @@ name: Development DPC on: push: - branches: [ "Development" ] + branches-ignore: + - main pull_request: - branches: [ "Development" ] + branches-ignore: + - main jobs: build: diff --git a/DPCLibrary/Models/IPv4Address.cs b/DPCLibrary/Models/IPv4Address.cs index 82a23ff..6d4713f 100644 --- a/DPCLibrary/Models/IPv4Address.cs +++ b/DPCLibrary/Models/IPv4Address.cs @@ -40,7 +40,7 @@ public void LoadFromString(string address) throw new ArgumentException("IPAddress must not be null"); } - if (!Validate.IPv4(address)) + if (!Validate.IPv4Address(address)) { throw new ArgumentException("IPAddress must be a valid IPv4 Address"); } diff --git a/DPCLibrary/Models/IPv6Address.cs b/DPCLibrary/Models/IPv6Address.cs index 5fce82a..48a40d8 100644 --- a/DPCLibrary/Models/IPv6Address.cs +++ b/DPCLibrary/Models/IPv6Address.cs @@ -81,7 +81,7 @@ public void LoadFromString(string address) throw new ArgumentException("IPAddress must not be null"); } - if (!Validate.IPv6(address)) + if (!Validate.IPv6Address(address)) { throw new ArgumentException("IPAddress must be a valid IPv6 Address"); } diff --git a/DPCLibrary/Models/Route.cs b/DPCLibrary/Models/Route.cs index d3cd674..4b16c5e 100644 --- a/DPCLibrary/Models/Route.cs +++ b/DPCLibrary/Models/Route.cs @@ -80,7 +80,7 @@ public Route(XElement routeNode) Prefix = Convert.ToInt32(routeNode.XPathSelectElement("PrefixSize")?.Value, CultureInfo.InvariantCulture); } - if (Validate.IPv4(tempAddress)) + if (Validate.IPv4Address(tempAddress)) { Address = new IPv4Address(); Address.LoadFromString(tempAddress); @@ -89,7 +89,7 @@ public Route(XElement routeNode) throw new InvalidDataException("IPv4 Prefix " + Prefix + " was not considered a valid CIDR Suffix"); } } - else if (Validate.IPv6(tempAddress)) + else if (Validate.IPv6Address(tempAddress)) { Address = new IPv6Address(); Address.LoadFromString(tempAddress); diff --git a/DPCLibrary/Utils/IPUtils.cs b/DPCLibrary/Utils/IPUtils.cs index 4fc84ec..813c047 100644 --- a/DPCLibrary/Utils/IPUtils.cs +++ b/DPCLibrary/Utils/IPUtils.cs @@ -46,19 +46,19 @@ public static int GetIPCIDRSuffix(string address) } string[] splitAddress = address.Split('/'); - if (splitAddress.Length == 1 && Validate.IPv4(address)) + if (splitAddress.Length == 1 && Validate.IPv4EndpointAddress(address)) { //If there is no CIDR then assume it is a single IPv4 hence /32 return 32; } - if (splitAddress.Length == 1 && Validate.IPv6(address)) + if (splitAddress.Length == 1 && Validate.IPv6EndpointAddress(address)) { //If there is no CIDR then assume it is a single IPv6 hence /128 return 128; } else if (splitAddress.Length == 2) { - if (Validate.IPv4(splitAddress[1])) + if (Validate.IPv4Address(splitAddress[1])) { //Mask may be in the format 255.255.0.0 return GetCIDRFromNetMask(splitAddress[1]); diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index 6996326..6566814 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -1850,7 +1850,7 @@ private static List GetOffice365ExcludeRoutes() { if (ipList.Contains(item)) continue; //Don't add IPv6 addresses as currently windows won't connect the profile if a client doesn't have an IPv6 address and there are IPv6 routes in the Route Table - if (Validate.IPv4(item) || Validate.IPv4CIDR(item)) + if (Validate.IPv4EndpointAddress(item) || Validate.IPv4CIDR(item)) { ipList.Add(item); } @@ -1899,7 +1899,7 @@ private static string GetDNSRoutes(ref Dictionary resolvedIPList } //Don't add IPv6 addresses as IPv6 Exclusions added to a machine without an IPv6 address breaks the tunnel completely //if (Validate.IPv4(item) || Validate.IPv6(item)) - if (Validate.IPv4(item.Key)) + if (Validate.IPv4EndpointAddress(item.Key)) { resolvedIPList.Add(item.Key, item.Value); } diff --git a/DPCLibrary/Utils/Validate.cs b/DPCLibrary/Utils/Validate.cs index 8bf3396..af097db 100644 --- a/DPCLibrary/Utils/Validate.cs +++ b/DPCLibrary/Utils/Validate.cs @@ -1,64 +1,40 @@ using System.IO; -using System.Text.RegularExpressions; +using System.Linq; using System.Net; using System.Net.Sockets; +using System.Text.RegularExpressions; namespace DPCLibrary.Utils { public static class Validate { + /// + /// Validates if the address is either a valid IPv4 or IPv6 endpoint address, or a valid IPv4 or IPv6 CIDR address + /// + /// The address to validate public static bool IPv4OrIPv6OrCIDR(string address) { - if (string.IsNullOrWhiteSpace(address)) - { - return false; - } - //If address is either ipv4 or ipv6 in either IP or CIDR format allow it - if (IPv4OrCIDR(address) || IPv6OrCIDR(address)) - { - return true; - } - else - { - return false; - } + return ValidateIPInternal(address, AddressFamily.InterNetwork, true, false) || + ValidateIPInternal(address, AddressFamily.InterNetworkV6, true, false); } + /// + /// Validates if the address is either a valid IPv6 endpoint address, or a valid IPv6 CIDR address + /// + /// The address to validate public static bool IPv6OrCIDR(string address) { - if (string.IsNullOrWhiteSpace(address)) - { - return false; - } - - string[] SplitCIDR = address.Split('/'); - - if (SplitCIDR.Length == 1) - { - return IPv6(address); - } - else - { - return IPv6CIDR(address); - } + return ValidateIPInternal(address, AddressFamily.InterNetworkV6, true, false); } + /// + /// Validates if the address is either a valid IPv4 endpoint address, or a valid IPv4 CIDR address + /// + /// + /// public static bool IPv4OrCIDR(string address) { - if (string.IsNullOrWhiteSpace(address)) - { - return false; - } - - string[] SplitCIDR = address.Split('/'); - if (SplitCIDR.Length == 1) - { - return IPv4(address); - } - else - { - return IPv4CIDR(address); - } + return ValidateIPInternal(address, AddressFamily.InterNetwork, true, false); } //Ensure that comments don't have --> which could really mess up the XML as it will cancel the comment and allow arbitrary XML injection @@ -85,7 +61,7 @@ public static bool IPAddressCommaList(string IPList) //Invalidate the entire record if there is 1 invalid IP foreach (string ip in ipSplitList) { - if (!IPv4(ip.Trim())) + if (!IPv4EndpointAddress(ip.Trim())) { return false; } @@ -94,125 +70,181 @@ public static bool IPAddressCommaList(string IPList) return true; } - public static bool IPv6(string address) + /// + /// Validates if the address is a valid IPv6 endpoint address + /// + /// + /// + public static bool IPv6EndpointAddress(string address) + { + return ValidateIPInternal(address, AddressFamily.InterNetworkV6, false, false); + } + + /// + /// Validates if the address is a valid IPv6 endpoint address or :: (unspecified address) + /// + /// + /// + public static bool IPv6Address(string address) + { + return ValidateIPInternal(address, AddressFamily.InterNetworkV6, false, true); + } + + /// + /// Validates if the address is a valid IPv4 endpoint address + /// + /// + /// + public static bool IPv4EndpointAddress(string address) + { + return ValidateIPInternal(address, AddressFamily.InterNetwork, false, false); + } + + /// + /// Validates if the address is a valid IPv4 endpoint address or 0.0.0.0 + /// + /// + /// + public static bool IPv4Address(string address) + { + return ValidateIPInternal(address, AddressFamily.InterNetwork, false, true); + } + + /// + /// Validates if the address is a valid IP address of the specified family, with options for CIDR and unspecified address + /// + /// The string representation of the address to validate + /// The expected address family (IPv4 or IPv6) + /// Specifies if CIDR notation is allowed + /// Specifies if the unspecified address (0.0.0.0 or ::) is allowed + /// + private static bool ValidateIPInternal(string address, AddressFamily addressFamily, bool allowCidr, bool allowUnspecifiedAddress) { if (string.IsNullOrWhiteSpace(address)) { return false; } - if (address == "::") + IPAddress anyAddress; + + if (addressFamily == AddressFamily.InterNetwork) { - return false; //reject simple IPv6 Zero + anyAddress = IPAddress.Any; } - - //Find and reject other ways of making IPv6 Zero - Match zeroResult = Regex.Match(address, "^s*(((0{1,4}:){7}(0{1,4}|:))|((0{1,4}:){6}|(:))|((0{1,4}:){5}(((:0]{1,4}){1,2})|:))|((0{1,4}:){4}(((:0{1,4}){1,3})|((:0{1,4})?:)|:))|((0{1,4}:){3}(((:0{1,4}){1,4})|((:0{1,4}){0,2}:)|:))|((0{1,4}:){2}(((:0{1,4}){1,5})|((:0{1,4}){0,3}:)|:))|((0{1,4}:){1}(((:0{1,4}){1,6})|((:0{1,4}){0,4}:)|:))|(:(((:0{1,4}){1,7})|((:0{1,4}){0,5}:)|:)))(%.+)?s*"); - if (zeroResult.Value == address) + else if (addressFamily == AddressFamily.InterNetworkV6) { - return false; + anyAddress = IPAddress.IPv6Any; } - - //Check that the IPAddress class accepts the value - if (!IPAddress.TryParse(address, out IPAddress potentialv6)) + else { return false; } - //Checks that the address is actually considered IPv6 and not IPv4 etc - return potentialv6.AddressFamily == AddressFamily.InterNetworkV6; - } + string[] addressParts = address.Split('/'); + bool isCidr = addressParts.Length == 2; + int prefix = -1; - public static bool IPv4(string address) - { - if (string.IsNullOrWhiteSpace(address)) + if (isCidr) { - return false; - } + if (!allowCidr) + { + return false; + } - if (address == "0.0.0.0") - { - return false; //reject all 0s as its only valid as a CIDR - } + if (!int.TryParse(addressParts[1], out prefix)) + { + // Unable to turn second part into int + return false; + } - Match result = Regex.Match(address, "\\b(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}\\b"); - return result.Value == address; - } + if (addressFamily == AddressFamily.InterNetwork && (prefix < 0 || prefix > 32)) + { + // Not a valid IPv4 CIDR prefix + return false; + } - public static bool IPv6CIDR(string address) - { - if (string.IsNullOrWhiteSpace(address)) - { - return false; + if (addressFamily == AddressFamily.InterNetworkV6 && (prefix < 0 || prefix > 128)) + { + // Not a valid IPv6 CIDR prefix + return false; + } } - string[] SplitCIDR = address.Split('/'); - if (SplitCIDR.Length != 2) + if (!IPAddress.TryParse(addressParts[0], out IPAddress ipAddress)) { + // Unable to turn first part into IP return false; } - if (!IPv6(SplitCIDR[0])) + if (ipAddress.AddressFamily != addressFamily) { - //Front part isn't a valid address + // Not the correct address family return false; } - if (!int.TryParse(SplitCIDR[1], out int CIDRVal)) + if (anyAddress.Equals(ipAddress) && !(allowUnspecifiedAddress || (isCidr && allowCidr))) { - //Unable to turn second part into int + // The unspecified address is only valid if allowAnyAddress is true or if it's a CIDR and allowCidr is true return false; } - if (CIDRVal > 128) + if (prefix == 0 && !anyAddress.Equals(ipAddress)) { + // A CIDR of 0 is only valid if the IP is the unspecified address return false; } - if (CIDRVal <= 0) + if (ipAddress.AddressFamily == AddressFamily.InterNetwork) { - return false; + // v4 specific validations + + if (address?.Count(c => c == '.') != 3) + { + return false; // There's a few unit tests for `10.0.0` which are valid shorthand IPs, but adding this check to ensure there are 4 octets for consistency with previous behaviour + } } return true; } - public static bool IPv4CIDR(string address) + /// + /// Validates if the address is a valid IPv6 CIDR address + /// + /// + /// + public static bool IPv6CIDR(string address) { if (string.IsNullOrWhiteSpace(address)) { return false; } - string[] SplitCIDR = address.Split('/'); - if (SplitCIDR.Length != 2) + if (!address.Contains("/")) { return false; } - if (!IPv4(SplitCIDR[0])) - { - //Front part isn't a valid address - return false; - } - - if (!int.TryParse(SplitCIDR[1], out int CIDRVal)) - { - //Unable to turn second part into int - return false; - } + return ValidateIPInternal(address, AddressFamily.InterNetworkV6, true, true); + } - if (CIDRVal > 32) + /// + /// Validates if the address is a valid IPv4 CIDR address + /// + /// + /// + public static bool IPv4CIDR(string address) + { + if (string.IsNullOrWhiteSpace(address)) { return false; } - if (CIDRVal <= 0) + if (!address.Contains("/")) { return false; } - return true; + return ValidateIPInternal(address, AddressFamily.InterNetwork, true, true); } public static string Thumbprint(string potentialThumbprint) @@ -386,8 +418,8 @@ public static bool PortList(string list) foreach (string PortElement in PortElements) { string element = PortElement.Trim(); - string[] portRange = element.Split(new char[]{ '-' }, 2); - foreach(string portRangeElement in portRange) + string[] portRange = element.Split(new char[] { '-' }, 2); + foreach (string portRangeElement in portRange) { string rangeElement = portRangeElement.Trim(); if (string.IsNullOrEmpty(rangeElement)) @@ -444,7 +476,7 @@ public static bool PackageId(string id) } Match result = Regex.Match(id, "^[a-zA-Z0-9.-]+[_][a-zA-Z0-9]+"); - if(result.Value == id) + if (result.Value == id) { return true; } @@ -461,4 +493,4 @@ public static bool PackageId(string id) } } } -} \ No newline at end of file +} diff --git a/DPCLibraryTests/ValidateTests.cs b/DPCLibraryTests/ValidateTests.cs index 076de47..ad20d54 100644 --- a/DPCLibraryTests/ValidateTests.cs +++ b/DPCLibraryTests/ValidateTests.cs @@ -29,9 +29,10 @@ public class ValidateTests [DataRow("1.1.1.1/-1")] [DataRow("1.1.1.1/33")] [DataRow("1.1.1.1/bob")] - [DataRow("2001:0db9::1/64")] - [DataRow("2001:0db9::1")] [DataRow("192.168..1/32")] + [DataRow("192.168.1.1/0")] + [DataRow("192.168.1.1/35")] + [DataRow("0.0.0.0")] public void InvalidIpv4ORCIDR(string IPv4Address) { bool result = Validate.IPv4OrCIDR(IPv4Address); @@ -50,6 +51,8 @@ public void InvalidIpv4ORCIDR(string IPv4Address) [DataRow("192.168.0.0/16")] [DataRow("192.168.1.1/32")] [DataRow("20.1.2.3/32")] + [DataRow("0.0.0.0/1")] + [DataRow("0.0.0.0/0")] public void ValidIpv4ORCIDR(string IPv4Address) { bool result = Validate.IPv4OrCIDR(IPv4Address); @@ -80,9 +83,9 @@ public void ValidIpv4ORCIDR(string IPv4Address) [DataRow("2001:0db9::1")] [DataRow("0.0.0.0/0")] [DataRow("0.0.0.0")] - public void InvalidIpv4(string IPv4Address) + public void InvalidIpv4EndpointAddress(string IPv4Address) { - bool result = Validate.IPv4(IPv4Address); + bool result = Validate.IPv4EndpointAddress(IPv4Address); Assert.IsFalse(result); } @@ -92,9 +95,22 @@ public void InvalidIpv4(string IPv4Address) [DataRow("192.168.5.4")] [DataRow("255.255.255.255")] [DataRow("20.1.2.3")] - public void ValidIpv4(string IPv4Address) + public void ValidIpv4EndpointAddress(string IPv4Address) { - bool result = Validate.IPv4(IPv4Address); + bool result = Validate.IPv4EndpointAddress(IPv4Address); + Assert.IsTrue(result); + } + + [DataTestMethod] + [DataRow("10.0.0.0")] + [DataRow("172.16.35.3")] + [DataRow("192.168.5.4")] + [DataRow("255.255.255.255")] + [DataRow("20.1.2.3")] + [DataRow("0.0.0.0")] + public void ValidIpv4Address(string IPv4Address) + { + bool result = Validate.IPv4Address(IPv4Address); Assert.IsTrue(result); } @@ -118,6 +134,7 @@ public void ValidIpv6CIDR(string IPv6Address) [DataRow("10.32.99.0/24")] [DataRow("192.168.0.0/16")] [DataRow("192.168.1.1/32")] + [DataRow("2001::1/129")] public void InvalidIpv6CIDR(string IPv6Address) { bool result = Validate.IPv6CIDR(IPv6Address); @@ -150,23 +167,16 @@ public void InvalidIpv6CIDR(string IPv6Address) [DataRow("255.255.255.255")] [DataRow("20.1.2.3")] [DataRow("0.0.0.0")] - [DataRow("10.0.0.0")] - [DataRow("172.16.35.3")] - [DataRow("192.168.5.4")] - [DataRow("255.255.255.255")] - [DataRow("20.1.2.3")] [DataRow("172.16.0.0/12")] - [DataRow("10.32.99.0/24")] [DataRow("192.168.0.0/16")] [DataRow("192.168.1.1/32")] [DataRow("20.1.2.3/32")] [DataRow("00:00:00:00:00:00:00:00")] - [DataRow("00:00:00:00:00:00:00:00/8")] [DataRow("0:0:0:0:0:0:0:0")] [DataRow("0:00:000:0000:0000:000:00:0")] - [DataRow("0:00:000:0000:0000:000:00:0/0")] [DataRow("0::0")] - [DataRow("::/0")] + [DataRow("2001:0db9::1/0")] + [DataRow("2001::1/129")] public void InvalidIpv6ORCIDR(string IPv4Address) { bool result = Validate.IPv6OrCIDR(IPv4Address); @@ -180,9 +190,12 @@ public void InvalidIpv6ORCIDR(string IPv4Address) [DataRow("2001:0db9::1/64")] [DataRow("2001:0db9::1/128")] [DataRow("2001:0db9:c9::/128")] - public void ValidIpv6ORCIDR(string IPv4Address) + [DataRow("::/0")] + [DataRow("0:00:000:0000:0000:000:00:0/0")] + [DataRow("00:00:00:00:00:00:00:00/8")] + public void ValidIpv6ORCIDR(string IPv6Address) { - bool result = Validate.IPv6OrCIDR(IPv4Address); + bool result = Validate.IPv6OrCIDR(IPv6Address); Assert.IsTrue(result); } @@ -203,6 +216,8 @@ public void ValidIpv6ORCIDR(string IPv4Address) [DataRow("192.168.0.0/16")] [DataRow("192.168.1.1/32")] [DataRow("20.1.2.3/32")] + [DataRow("0.0.0.0/1")] + [DataRow("0.0.0.0/0")] public void ValidIpv4ORIpv6ORCIDR(string IPv4Address) { bool result = Validate.IPv4OrIPv6OrCIDR(IPv4Address); @@ -244,9 +259,10 @@ public void ValidIpv4ORIpv6ORCIDR(string IPv4Address) [DataRow("0:00:000:0000:0000:000:00:0/0")] [DataRow("0::0")] [DataRow("::/0")] - public void InvalidIpv6(string IPv6Address) + [DataRow("2001:0db9::1/129")] + public void InvalidIpv6EndpointAddress(string IPv6Address) { - bool result = Validate.IPv6(IPv6Address); + bool result = Validate.IPv6EndpointAddress(IPv6Address); Assert.IsFalse(result); } @@ -256,12 +272,26 @@ public void InvalidIpv6(string IPv6Address) [DataRow("1:2:3:4:5:6:7:8")] [DataRow("1111:2222:3333:4444:5555:6666:7777:8888")] [DataRow("2001:0db9::ac11:c9")] - public void ValidIpv6(string IPv6Address) + public void ValidIpv6EndpointAddress(string IPv6Address) { - bool result = Validate.IPv6(IPv6Address); + bool result = Validate.IPv6EndpointAddress(IPv6Address); Assert.IsTrue(result); } + [DataTestMethod] + [DataRow("2001:0db9::1")] + [DataRow("2001::1")] + [DataRow("1:2:3:4:5:6:7:8")] + [DataRow("1111:2222:3333:4444:5555:6666:7777:8888")] + [DataRow("2001:0db9::ac11:c9")] + [DataRow("::")] + public void ValidIpv6Address(string IPv6Address) + { + bool result = Validate.IPv6Address(IPv6Address); + Assert.IsTrue(result); + } + + [DataTestMethod] [DataRow("")] //Empty [DataRow(null)] //null @@ -424,6 +454,8 @@ public void InvalidIpv4CIDR(string IPv4Address) [DataRow("192.168.0.0/16")] [DataRow("192.168.1.1/32")] [DataRow("20.1.2.3/32")] + [DataRow("0.0.0.0/1")] + [DataRow("0.0.0.0/0")] public void ValidIpv4CIDR(string IPv4Address) { bool result = Validate.IPv4CIDR(IPv4Address); diff --git a/ServiceIntergrationTests/UserProfileTests.cs b/ServiceIntergrationTests/UserProfileTests.cs index 54798ab..0dc53ea 100644 --- a/ServiceIntergrationTests/UserProfileTests.cs +++ b/ServiceIntergrationTests/UserProfileTests.cs @@ -1987,7 +1987,7 @@ public void BasicUserProfileWithIPv6Routes(ProfileType profileType) [DataTestMethod] [DataRow(ProfileType.User)] [DataRow(ProfileType.UserBackup)] - public void BasicUserProfileWithSillyRoutes(ProfileType profileType) + public void BasicUserProfileWithDefaultRoutes(ProfileType profileType) { string profileName = TestContext.TestName; @@ -2013,7 +2013,7 @@ public void BasicUserProfileWithSillyRoutes(ProfileType profileType) TestContext.WriteLine(profile.GetValidationFailures()); TestContext.WriteLine(profile.GetValidationWarnings()); Assert.IsFalse(profile.ValidateFailed()); - Assert.IsTrue(profile.ValidateWarnings()); + Assert.IsFalse(profile.ValidateWarnings()); sharedData.AddProfileUpdate(profile.GetProfileUpdate()); From 629c284cf1e035b22257a718ee142f9ed1fa38b2 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Wed, 24 Sep 2025 19:32:23 +0100 Subject: [PATCH 39/41] Update interim change log --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 11f67b9..dfccd67 100644 --- a/README.md +++ b/README.md @@ -73,6 +73,8 @@ This script is very much in development so please take care and people to active - Updated Proxy examples in ADMX files - Fixed incorrect Proxy Exceptions option for User Backup Tunnel in ADMX files - Fixed potential null pointer exception when using proxy exclusions +- Fixed issue where an & in the profile would break profile ingestion +- Improved IPv4 and IPv6 validation, big thanks to @ryannewington for this PR ## Version 5.2.1 - Fixed issue where DPC would not exit correctly From eba9d9dff65f375a7a3c357f5c004e987f367a81 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 30 Sep 2025 22:10:30 +0100 Subject: [PATCH 40/41] Add additional null checks for proxy exclusions --- DPCLibrary/Utils/AccessWMI.cs | 4 ++-- DPCLibrary/Utils/VPNProfileCreator.cs | 9 ++++++++- DPCService/Utils/DPCServiceEvents.cs | 2 ++ DPCService/Utils/ProfileAction.cs | 9 +++++++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/DPCLibrary/Utils/AccessWMI.cs b/DPCLibrary/Utils/AccessWMI.cs index 1e333e4..fd29a42 100644 --- a/DPCLibrary/Utils/AccessWMI.cs +++ b/DPCLibrary/Utils/AccessWMI.cs @@ -253,7 +253,7 @@ public static bool SetProxyExcludeExceptions(string profileName, IList e CimMethodParameter.Create("BypassProxyForLocal", bypassForLocal, CimFlags.In) }) { - if (excludeList.Count > 0) + if (proxyExcludeList.Count > 0) { string proxyServer = GetProxyServer(profileName, cancelToken); if (!string.IsNullOrWhiteSpace(proxyServer)) @@ -286,7 +286,7 @@ private static IList GetMachineCertificateEKUFilter(string profileName, return EKUData.ToList(); } - private static IList GetProxyExcludeList(string profileName, CancellationToken cancelToken) + public static IList GetProxyExcludeList(string profileName, CancellationToken cancelToken) { IList profileDetailsList = new List(); string XML = GetWMIVPNConfig(profileName, cancelToken); diff --git a/DPCLibrary/Utils/VPNProfileCreator.cs b/DPCLibrary/Utils/VPNProfileCreator.cs index 6566814..c805412 100644 --- a/DPCLibrary/Utils/VPNProfileCreator.cs +++ b/DPCLibrary/Utils/VPNProfileCreator.cs @@ -479,8 +479,15 @@ public void LoadFromRegistry() //Proxy Disabled, reset proxy settings to defaults ProxyType = ProxyType.None; ProxyValue = ""; - if (ProxyExcludeList != null && ProxyExcludeList.Count > 0) + //Initialise the value if it wasn't already + if (ProxyExcludeList == null) { + ProxyExcludeList = new List(); + } + + if (ProxyExcludeList.Count > 0) + { + //Proxy has been disabled, clear out any previous proxy exclusions as they are no longer needed ProxyExcludeList.Clear(); } ProxyBypassForLocal = false; diff --git a/DPCService/Utils/DPCServiceEvents.cs b/DPCService/Utils/DPCServiceEvents.cs index 06e20ba..eea5f3e 100644 --- a/DPCService/Utils/DPCServiceEvents.cs +++ b/DPCService/Utils/DPCServiceEvents.cs @@ -363,6 +363,8 @@ internal sealed class DPCServiceEvents : EventSource public void ProfileDebugUpdateProfileDetail(string profileName, string variable, string errorMessage) { WriteEvent(1224, profileName, variable, errorMessage); } [Event(1225, Message = "No Corrupt PBK Files Found", Level = EventLevel.Informational, Channel = EventChannel.Debug)] public void DebugNoCorruptPbksFound() { WriteEvent(1225); } + [Event(1226, Message = "Error getting Proxy Exclusions for Profile {0}: {1}\nStackTrace: {2}", Level = EventLevel.Error, Channel = EventChannel.Operational)] + public void ErrorGettingProxyExclusions(string profileName, string errorMessage, string stackTrace) { WriteEvent(1226, profileName, errorMessage, stackTrace); } //Event Logs now fail to generate if additional logs are added at this point in the file, adding to the end appears to work for some reason... #endregion 1100-1299 Profile Monitoring diff --git a/DPCService/Utils/ProfileAction.cs b/DPCService/Utils/ProfileAction.cs index 2b77191..6faebcd 100644 --- a/DPCService/Utils/ProfileAction.cs +++ b/DPCService/Utils/ProfileAction.cs @@ -485,6 +485,15 @@ public static ManagedProfile GetProfile(string profileName, ProfileType profileT { DPCServiceEvents.Log.ErrorGettingNetworkOutageTime(profileName, e.Message, e.StackTrace); } + + try + { + newProfile.ProxyExcludeList = AccessWMI.GetProxyExcludeList(profileName, cancelToken); + } + catch (Exception e) + { + DPCServiceEvents.Log.ErrorGettingProxyExclusions(profileName, e.Message, e.StackTrace); + } } return newProfile; From 2ece02e78380f0f42be2cdb6aa0e18a64c3a1e37 Mon Sep 17 00:00:00 2001 From: Leo D'Arcy Date: Tue, 30 Sep 2025 22:10:51 +0100 Subject: [PATCH 41/41] Prepare for release --- DPCInstaller/ProductVersion.wxi | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/DPCInstaller/ProductVersion.wxi b/DPCInstaller/ProductVersion.wxi index d517415..4b74044 100644 --- a/DPCInstaller/ProductVersion.wxi +++ b/DPCInstaller/ProductVersion.wxi @@ -1,3 +1,3 @@  - + diff --git a/README.md b/README.md index dfccd67..94f4ef8 100644 --- a/README.md +++ b/README.md @@ -69,7 +69,7 @@ This script is very much in development so please take care and people to active # Release Notes -## vNext +## Version 5.2.2 - Updated Proxy examples in ADMX files - Fixed incorrect Proxy Exceptions option for User Backup Tunnel in ADMX files - Fixed potential null pointer exception when using proxy exclusions

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