From 55753a3d04fdf2d184119faacf701a3a46c9bc54 Mon Sep 17 00:00:00 2001 From: Justin Grote Date: Mon, 2 Dec 2024 23:13:43 -0800 Subject: [PATCH 1/3] Improve E2E Test Fixtures to be less flaky --- .../Server/PsesDebugServer.cs | 3 +- .../DebugAdapterProtocolMessageTests.cs | 423 ++++++++++-------- .../Hosts/DebugOutputStream.cs | 44 ++ .../Hosts/IAsyncLanguageServerHost.cs | 25 ++ .../IDebugAdapterClientExtensions.cs} | 9 +- .../PsesStdioLanguageServerProcessHost.cs | 85 ++++ .../Hosts/StdioLanguageServerProcessHost.cs | 116 +++++ ...LSPTestsFixures.cs => LSPTestsFixtures.cs} | 23 +- .../LanguageServerProtocolMessageTests.cs | 22 +- .../Processes/LoggingStream.cs | 66 --- .../Processes/PsesStdioProcess.cs | 121 ----- .../Processes/ServerProcess.cs | 151 ------- .../Processes/StdioServerProcess.cs | 191 -------- .../xunit.runner.json | 3 +- 14 files changed, 531 insertions(+), 751 deletions(-) create mode 100644 test/PowerShellEditorServices.Test.E2E/Hosts/DebugOutputStream.cs create mode 100644 test/PowerShellEditorServices.Test.E2E/Hosts/IAsyncLanguageServerHost.cs rename test/PowerShellEditorServices.Test.E2E/{DebugAdapterClientExtensions.cs => Hosts/IDebugAdapterClientExtensions.cs} (63%) create mode 100644 test/PowerShellEditorServices.Test.E2E/Hosts/PsesStdioLanguageServerProcessHost.cs create mode 100644 test/PowerShellEditorServices.Test.E2E/Hosts/StdioLanguageServerProcessHost.cs rename test/PowerShellEditorServices.Test.E2E/{LSPTestsFixures.cs => LSPTestsFixtures.cs} (86%) delete mode 100644 test/PowerShellEditorServices.Test.E2E/Processes/LoggingStream.cs delete mode 100644 test/PowerShellEditorServices.Test.E2E/Processes/PsesStdioProcess.cs delete mode 100644 test/PowerShellEditorServices.Test.E2E/Processes/ServerProcess.cs delete mode 100644 test/PowerShellEditorServices.Test.E2E/Processes/StdioServerProcess.cs diff --git a/src/PowerShellEditorServices/Server/PsesDebugServer.cs b/src/PowerShellEditorServices/Server/PsesDebugServer.cs index 6fbecce9c..9f48a0f2d 100644 --- a/src/PowerShellEditorServices/Server/PsesDebugServer.cs +++ b/src/PowerShellEditorServices/Server/PsesDebugServer.cs @@ -120,7 +120,8 @@ public async Task StartAsync() response.SupportsDelayedStackTraceLoading = true; return Task.CompletedTask; - }); + }) + ; }).ConfigureAwait(false); } diff --git a/test/PowerShellEditorServices.Test.E2E/DebugAdapterProtocolMessageTests.cs b/test/PowerShellEditorServices.Test.E2E/DebugAdapterProtocolMessageTests.cs index bb794516f..19d83614b 100644 --- a/test/PowerShellEditorServices.Test.E2E/DebugAdapterProtocolMessageTests.cs +++ b/test/PowerShellEditorServices.Test.E2E/DebugAdapterProtocolMessageTests.cs @@ -2,140 +2,133 @@ // Licensed under the MIT License. using System; -using System.Diagnostics; using System.IO; using System.Linq; using System.Runtime.InteropServices; using System.Text; -using System.Threading; using System.Threading.Tasks; +using Nerdbank.Streams; using OmniSharp.Extensions.DebugAdapter.Client; using DapStackFrame = OmniSharp.Extensions.DebugAdapter.Protocol.Models.StackFrame; -using OmniSharp.Extensions.DebugAdapter.Protocol.Events; +using OmniSharp.Extensions.DebugAdapter.Protocol.Client; using OmniSharp.Extensions.DebugAdapter.Protocol.Models; using OmniSharp.Extensions.DebugAdapter.Protocol.Requests; -using OmniSharp.Extensions.JsonRpc.Server; using Xunit; using Xunit.Abstractions; -using Microsoft.Extensions.Logging.Abstractions; +using OmniSharp.Extensions.JsonRpc.Server; +using OmniSharp.Extensions.DebugAdapter.Protocol.Events; namespace PowerShellEditorServices.Test.E2E { - public class XunitOutputTraceListener(ITestOutputHelper output) : TraceListener - { - public override void Write(string message) => output.WriteLine(message); - public override void WriteLine(string message) => output.WriteLine(message); - } [Trait("Category", "DAP")] - public class DebugAdapterProtocolMessageTests : IAsyncLifetime, IDisposable + // ITestOutputHelper is injected by XUnit + // https://xunit.net/docs/capturing-output + public class DebugAdapterProtocolMessageTests(ITestOutputHelper output) : IAsyncLifetime { - private static readonly bool s_isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); - private static readonly string s_testOutputPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + // After initialization, use this client to send messages for E2E tests and check results + private IDebugAdapterClient client; - private readonly ITestOutputHelper _output; - private DebugAdapterClient PsesDebugAdapterClient; - private PsesStdioProcess _psesProcess; + private static readonly bool s_isWindows = RuntimeInformation.IsOSPlatform(OSPlatform.Windows); /// - /// Completes when the debug adapter is started. + /// Test scripts output here, where the output can be read to verify script progress against breakpointing /// - public TaskCompletionSource Started { get; } = new TaskCompletionSource(); + private static readonly string testScriptLogPath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName()); + + private readonly PsesStdioLanguageServerProcessHost psesHost = new(isDebugAdapter: true); + + private readonly TaskCompletionSource initializedLanguageClientTcs = new(); /// - /// Completes when the first breakpoint is reached. + /// This task is useful for waiting until the client is initialized (but before Server Initialized is sent) /// - public TaskCompletionSource Stopped { get; } = new TaskCompletionSource(); + private Task initializedLanguageClient => initializedLanguageClientTcs.Task; + + /// + /// Is used to read the script log file to verify script progress against breakpointing. + private StreamReader scriptLogReader; + private TaskCompletionSource nextStoppedTcs = new(); /// - /// Constructor. The ITestOutputHelper is injected by xUnit and used to write diagnostic logs. + /// This task is useful for waiting until a breakpoint is hit in a test. /// - /// - public DebugAdapterProtocolMessageTests(ITestOutputHelper output) => _output = output; + private Task nextStopped => nextStoppedTcs.Task; public async Task InitializeAsync() { - // NOTE: To see debug logger output, add this line to your test - - _psesProcess = new PsesStdioProcess(new NullLoggerFactory(), true); - await _psesProcess.Start(); + // Cleanup testScriptLogPath if it exists due to an interrupted previous run + if (File.Exists(testScriptLogPath)) + { + File.Delete(testScriptLogPath); + } - TaskCompletionSource initialized = new(); + (StreamReader stdout, StreamWriter stdin) = await psesHost.Start(); - _psesProcess.ProcessExited += (sender, args) => - { - initialized.TrySetException(new ProcessExitedException("Initialization failed due to process failure", args.ExitCode, args.ErrorMessage)); - Started.TrySetException(new ProcessExitedException("Startup failed due to process failure", args.ExitCode, args.ErrorMessage)); - }; + // Splice the streams together and enable debug logging of all messages sent and received + DebugOutputStream psesStream = new( + FullDuplexStream.Splice(stdout.BaseStream, stdin.BaseStream) + ); - PsesDebugAdapterClient = DebugAdapterClient.Create(options => + /* + PSES follows the following DAP flow: + Receive a Initialize request + Run Initialize handler and send response back + Receive a Launch/Attach request + Run Launch/Attach handler and send response back + PSES sends the initialized event at the end of the Launch/Attach handler + + This is to spec, but the omnisharp client has a flaw where it does not complete the await until after + Server Initialized has been received, when it should in fact return once the Client Initialize (aka + capabilities) response is received. Per the DAP spec, we can send Launch/Attach before Server Initialized + and PSES relies on this behavior, but if we await the standard client initialization From method, it would + deadlock the test because it won't return until Server Initialized is received from PSES, which it won't + send until a launch is sent. + + HACK: To get around this, we abuse the OnInitialized handler to return the client "early" via the + `InitializedLanguageClient` once the Client Initialize response has been received. + see https://github.com/OmniSharp/csharp-language-server-protocol/issues/1408 + */ + Task dapClientInitializeTask = DebugAdapterClient.From(options => { options - .WithInput(_psesProcess.OutputStream) - .WithOutput(_psesProcess.InputStream) - // The OnStarted delegate gets run when we receive the _Initialized_ event from the server: - // https://microsoft.github.io/debug-adapter-protocol/specification#Events_Initialized - .OnStarted((_, _) => - { - Started.SetResult(true); - return Task.CompletedTask; - }) - // We use this to create a task we can await to test debugging after a breakpoint has been received. - .OnNotification(null, (stoppedEvent, _) => + .WithInput(psesStream) + .WithOutput(psesStream) + // The "early" return mentioned above + .OnInitialized(async (dapClient, _, _, _) => initializedLanguageClientTcs.SetResult(dapClient)) + // This TCS is useful to wait for a breakpoint to be hit + .OnStopped(async (StoppedEvent e) => { - Console.WriteLine("StoppedEvent received"); - Stopped.SetResult(stoppedEvent); - return Task.CompletedTask; + nextStoppedTcs.SetResult(e); + nextStoppedTcs = new(); }) - // The OnInitialized delegate gets run when we first receive the _Initialize_ response: - // https://microsoft.github.io/debug-adapter-protocol/specification#Requests_Initialize - .OnInitialized((_, _, _, _) => - { - initialized.SetResult(true); - return Task.CompletedTask; - }); - - options.OnUnhandledException = (exception) => - { - initialized.SetException(exception); - Started.SetException(exception); - }; + ; }); - // PSES follows the following flow: - // Receive a Initialize request - // Run Initialize handler and send response back - // Receive a Launch/Attach request - // Run Launch/Attach handler and send response back - // PSES sends the initialized event at the end of the Launch/Attach handler - - // The way that the Omnisharp client works is that this Initialize method doesn't return until - // after OnStarted is run... which only happens when Initialized is received from the server. - // so if we would await this task, it would deadlock. - // To get around this, we run the Initialize() without await but use a `TaskCompletionSource` - // that gets completed when we receive the response to Initialize - // This tells us that we are ready to send messages to PSES... but are not stuck waiting for - // Initialized. -#pragma warning disable CS4014 - PsesDebugAdapterClient.Initialize(CancellationToken.None); -#pragma warning restore CS4014 - await initialized.Task; + // This ensures any unhandled exceptions get addressed if it fails to start before our early return completes. + // Under normal operation the initializedLanguageClient will always return first. + await Task.WhenAny( + initializedLanguageClient, + dapClientInitializeTask + ); + + client = await initializedLanguageClient; } public async Task DisposeAsync() { - await PsesDebugAdapterClient.RequestDisconnect(new DisconnectArguments + await client.RequestDisconnect(new DisconnectArguments { Restart = false, TerminateDebuggee = true }); - await _psesProcess.Stop(); - } + client?.Dispose(); + psesHost.Stop(); - public void Dispose() - { - GC.SuppressFinalize(this); - PsesDebugAdapterClient?.Dispose(); - _psesProcess?.Dispose(); + scriptLogReader?.Dispose(); //Also disposes the underlying filestream + if (File.Exists(testScriptLogPath)) + { + File.Delete(testScriptLogPath); + } } private static string NewTestFile(string script, bool isPester = false) @@ -147,7 +140,14 @@ private static string NewTestFile(string script, bool isPester = false) return filePath; } - private string GenerateScriptFromLoggingStatements(params string[] logStatements) + /// + /// Given an array of strings, generate a PowerShell script that writes each string to our test script log path + /// so it can be read back later to verify script progress against breakpointing. + /// + /// A list of statements that for which a script will be generated to write each statement to a testing log that can be read by . The strings are double quoted in Powershell, so variables such as $($PSScriptRoot) etc. can be used + /// A script string that should be written to disk and instructed by PSES to execute + /// + private string GenerateLoggingScript(params string[] logStatements) { if (logStatements.Length == 0) { @@ -155,9 +155,9 @@ private string GenerateScriptFromLoggingStatements(params string[] logStatements } // Clean up side effects from other test runs. - if (File.Exists(s_testOutputPath)) + if (File.Exists(testScriptLogPath)) { - File.Delete(s_testOutputPath); + File.Delete(testScriptLogPath); } // Have script create file first with `>` (but don't rely on overwriting). @@ -166,7 +166,7 @@ private string GenerateScriptFromLoggingStatements(params string[] logStatements .Append("Write-Output \"") .Append(logStatements[0]) .Append("\" > '") - .Append(s_testOutputPath) + .Append(testScriptLogPath) .AppendLine("'"); for (int i = 1; i < logStatements.Length; i++) @@ -176,88 +176,114 @@ private string GenerateScriptFromLoggingStatements(params string[] logStatements .Append("Write-Output \"") .Append(logStatements[i]) .Append("\" >> '") - .Append(s_testOutputPath) + .Append(testScriptLogPath) .AppendLine("'"); } - _output.WriteLine("Script is:"); - _output.WriteLine(builder.ToString()); + output.WriteLine("Script is:"); + output.WriteLine(builder.ToString()); return builder.ToString(); } - private static async Task GetLog() + /// + /// Reads the next output line from the test script log file. Useful in assertions to verify script progress against breakpointing. + /// + private async Task ReadScriptLogLineAsync() { - for (int i = 0; !File.Exists(s_testOutputPath) && i < 60; i++) + while (scriptLogReader is null) { - await Task.Delay(1000); + try + { + scriptLogReader = new StreamReader( + new FileStream( + testScriptLogPath, + FileMode.OpenOrCreate, + FileAccess.Read, // Because we use append, its OK to create the file ahead of the script + FileShare.ReadWrite + ) + ); + } + catch (IOException) //Sadly there does not appear to be a xplat way to wait for file availability, but luckily this does not appear to fire often. + { + await Task.Delay(500); + } + } + + // return valid lines only + string nextLine = string.Empty; + while (nextLine is null || nextLine.Length == 0) + { + nextLine = await scriptLogReader.ReadLineAsync(); //Might return null if at EOF because we created it above but the script hasn't written to it yet } - // Sleep one more time after the file exists so whatever is writing can finish. - await Task.Delay(1000); - return File.ReadLines(s_testOutputPath).ToArray(); + return nextLine; } [Fact] public void CanInitializeWithCorrectServerSettings() { - Assert.True(PsesDebugAdapterClient.ServerSettings.SupportsConditionalBreakpoints); - Assert.True(PsesDebugAdapterClient.ServerSettings.SupportsConfigurationDoneRequest); - Assert.True(PsesDebugAdapterClient.ServerSettings.SupportsFunctionBreakpoints); - Assert.True(PsesDebugAdapterClient.ServerSettings.SupportsHitConditionalBreakpoints); - Assert.True(PsesDebugAdapterClient.ServerSettings.SupportsLogPoints); - Assert.True(PsesDebugAdapterClient.ServerSettings.SupportsSetVariable); + Assert.True(client.ServerSettings.SupportsConditionalBreakpoints); + Assert.True(client.ServerSettings.SupportsConfigurationDoneRequest); + Assert.True(client.ServerSettings.SupportsFunctionBreakpoints); + Assert.True(client.ServerSettings.SupportsHitConditionalBreakpoints); + Assert.True(client.ServerSettings.SupportsLogPoints); + Assert.True(client.ServerSettings.SupportsSetVariable); + Assert.True(client.ServerSettings.SupportsDelayedStackTraceLoading); } [Fact] public async Task UsesDotSourceOperatorAndQuotesAsync() { - string filePath = NewTestFile(GenerateScriptFromLoggingStatements("$($MyInvocation.Line)")); - await PsesDebugAdapterClient.LaunchScript(filePath, Started); - ConfigurationDoneResponse configDoneResponse = await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); + string filePath = NewTestFile(GenerateLoggingScript("$($MyInvocation.Line)")); + await client.LaunchScript(filePath); + ConfigurationDoneResponse configDoneResponse = await client.RequestConfigurationDone(new ConfigurationDoneArguments()); Assert.NotNull(configDoneResponse); - Assert.Collection(await GetLog(), - (i) => Assert.StartsWith(". '", i)); + + string actual = await ReadScriptLogLineAsync(); + Assert.StartsWith(". '", actual); } [Fact] public async Task UsesCallOperatorWithSettingAsync() { - string filePath = NewTestFile(GenerateScriptFromLoggingStatements("$($MyInvocation.Line)")); - await PsesDebugAdapterClient.LaunchScript(filePath, Started, executeMode: "Call"); - ConfigurationDoneResponse configDoneResponse = await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); + string filePath = NewTestFile(GenerateLoggingScript("$($MyInvocation.Line)")); + await client.LaunchScript(filePath, executeMode: "Call"); + ConfigurationDoneResponse configDoneResponse = await client.RequestConfigurationDone(new ConfigurationDoneArguments()); Assert.NotNull(configDoneResponse); - Assert.Collection(await GetLog(), - (i) => Assert.StartsWith("& '", i)); + + string actual = await ReadScriptLogLineAsync(); + Assert.StartsWith("& '", actual); } [Fact] public async Task CanLaunchScriptWithNoBreakpointsAsync() { - string filePath = NewTestFile(GenerateScriptFromLoggingStatements("works")); + string filePath = NewTestFile(GenerateLoggingScript("works")); - await PsesDebugAdapterClient.LaunchScript(filePath, Started); + await client.LaunchScript(filePath); - ConfigurationDoneResponse configDoneResponse = await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); + ConfigurationDoneResponse configDoneResponse = await client.RequestConfigurationDone(new ConfigurationDoneArguments()); Assert.NotNull(configDoneResponse); - Assert.Collection(await GetLog(), - (i) => Assert.Equal("works", i)); + + string actual = await ReadScriptLogLineAsync(); + Assert.Equal("works", actual); } [SkippableFact] public async Task CanSetBreakpointsAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode, "Breakpoints can't be set in Constrained Language Mode."); - string filePath = NewTestFile(GenerateScriptFromLoggingStatements( + string filePath = NewTestFile(GenerateLoggingScript( "before breakpoint", "at breakpoint", "after breakpoint" )); - await PsesDebugAdapterClient.LaunchScript(filePath, Started); + await client.LaunchScript(filePath); // {"command":"setBreakpoints","arguments":{"source":{"name":"dfsdfg.ps1","path":"/Users/tyleonha/Code/PowerShell/Misc/foo/dfsdfg.ps1"},"lines":[2],"breakpoints":[{"line":2}],"sourceModified":false},"type":"request","seq":3} - SetBreakpointsResponse setBreakpointsResponse = await PsesDebugAdapterClient.SetBreakpoints(new SetBreakpointsArguments + SetBreakpointsResponse setBreakpointsResponse = await client.SetBreakpoints(new SetBreakpointsArguments { Source = new Source { Name = Path.GetFileName(filePath), Path = filePath }, Breakpoints = new SourceBreakpoint[] { new SourceBreakpoint { Line = 2 } }, @@ -269,31 +295,43 @@ public async Task CanSetBreakpointsAsync() Assert.Equal(filePath, breakpoint.Source.Path, ignoreCase: s_isWindows); Assert.Equal(2, breakpoint.Line); - ConfigurationDoneResponse configDoneResponse = await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); + ConfigurationDoneResponse configDoneResponse = await client.RequestConfigurationDone(new ConfigurationDoneArguments()); Assert.NotNull(configDoneResponse); - Assert.Collection(await GetLog(), - (i) => Assert.Equal("before breakpoint", i)); - File.Delete(s_testOutputPath); - ContinueResponse continueResponse = await PsesDebugAdapterClient.RequestContinue( - new ContinueArguments { ThreadId = 1 }); + // Wait until we hit the breakpoint + StoppedEvent stoppedEvent = await nextStopped; + Assert.Equal("breakpoint", stoppedEvent.Reason); + + // The code before the breakpoint should have already run + Assert.Equal("before breakpoint", await ReadScriptLogLineAsync()); + + // Assert that the stopped breakpoint is the one we set + StackTraceResponse stackTraceResponse = await client.RequestStackTrace(new StackTraceArguments { ThreadId = 1 }); + DapStackFrame stoppedTopFrame = stackTraceResponse.StackFrames.First(); + Assert.Equal(2, stoppedTopFrame.Line); + + _ = await client.RequestContinue(new ContinueArguments { ThreadId = 1 }); - Assert.NotNull(continueResponse); - Assert.Collection(await GetLog(), - (i) => Assert.Equal("at breakpoint", i), - (i) => Assert.Equal("after breakpoint", i)); + string atBreakpointActual = await ReadScriptLogLineAsync(); + Assert.Equal("at breakpoint", atBreakpointActual); + + string afterBreakpointActual = await ReadScriptLogLineAsync(); + Assert.Equal("after breakpoint", afterBreakpointActual); } [SkippableFact] public async Task FailsIfStacktraceRequestedWhenNotPaused() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode, "Breakpoints can't be set in Constrained Language Mode."); - string filePath = NewTestFile(GenerateScriptFromLoggingStatements( - "labelTestBreakpoint" + + // We want a long running script that never hits the next breakpoint + string filePath = NewTestFile(GenerateLoggingScript( + "$(sleep 10)", + "Should fail before we get here" )); - // Set a breakpoint - await PsesDebugAdapterClient.SetBreakpoints( + + await client.SetBreakpoints( new SetBreakpointsArguments { Source = new Source { Name = Path.GetFileName(filePath), Path = filePath }, @@ -303,12 +341,11 @@ await PsesDebugAdapterClient.SetBreakpoints( ); // Signal to start the script - await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); - await PsesDebugAdapterClient.LaunchScript(filePath, Started); - + await client.RequestConfigurationDone(new ConfigurationDoneArguments()); + await client.LaunchScript(filePath); - // Get the stacktrace for the breakpoint - await Assert.ThrowsAsync(() => PsesDebugAdapterClient.RequestStackTrace( + // Try to get the stacktrace, which should throw as we are not currently at a breakpoint. + await Assert.ThrowsAsync(() => client.RequestStackTrace( new StackTraceArguments { } )); } @@ -316,19 +353,17 @@ await Assert.ThrowsAsync(() => PsesDebugAdapterClient.RequestS [SkippableFact] public async Task SendsInitialLabelBreakpointForPerformanceReasons() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode, "Breakpoints can't be set in Constrained Language Mode."); - string filePath = NewTestFile(GenerateScriptFromLoggingStatements( + string filePath = NewTestFile(GenerateLoggingScript( "before breakpoint", - "at breakpoint", - "after breakpoint" + "label breakpoint" )); - //TODO: This is technically wrong per the spec, configDone should be completed BEFORE launching, but this is how the vscode client does it today and we really need to fix that. - await PsesDebugAdapterClient.LaunchScript(filePath, Started); + // Request a launch. Note that per DAP spec, launch doesn't actually begin until ConfigDone finishes. + await client.LaunchScript(filePath); - // {"command":"setBreakpoints","arguments":{"source":{"name":"dfsdfg.ps1","path":"/Users/tyleonha/Code/PowerShell/Misc/foo/dfsdfg.ps1"},"lines":[2],"breakpoints":[{"line":2}],"sourceModified":false},"type":"request","seq":3} - SetBreakpointsResponse setBreakpointsResponse = await PsesDebugAdapterClient.SetBreakpoints(new SetBreakpointsArguments + SetBreakpointsResponse setBreakpointsResponse = await client.SetBreakpoints(new SetBreakpointsArguments { Source = new Source { Name = Path.GetFileName(filePath), Path = filePath }, Breakpoints = new SourceBreakpoint[] { new SourceBreakpoint { Line = 2 } }, @@ -340,24 +375,25 @@ public async Task SendsInitialLabelBreakpointForPerformanceReasons() Assert.Equal(filePath, breakpoint.Source.Path, ignoreCase: s_isWindows); Assert.Equal(2, breakpoint.Line); - ConfigurationDoneResponse configDoneResponse = await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); + _ = client.RequestConfigurationDone(new ConfigurationDoneArguments()); - // FIXME: I think there is a race condition here. If you remove this, the following line Stack Trace fails because the breakpoint hasn't been hit yet. I think the whole getLog process just works long enough for ConfigurationDone to complete and for the breakpoint to be hit. + // Wait for the breakpoint to be hit + StoppedEvent stoppedEvent = await nextStopped; + Assert.Equal("breakpoint", stoppedEvent.Reason); - // I've tried to do this properly by waiting for a StoppedEvent, but that doesn't seem to work, I'm probably just not wiring it up right in the handler. - Assert.NotNull(configDoneResponse); - Assert.Collection(await GetLog(), - (i) => Assert.Equal("before breakpoint", i)); - File.Delete(s_testOutputPath); + // The code before the breakpoint should have already run + Assert.Equal("before breakpoint", await ReadScriptLogLineAsync()); // Get the stacktrace for the breakpoint - StackTraceResponse stackTraceResponse = await PsesDebugAdapterClient.RequestStackTrace( + StackTraceResponse stackTraceResponse = await client.RequestStackTrace( new StackTraceArguments { ThreadId = 1 } ); DapStackFrame firstFrame = stackTraceResponse.StackFrames.First(); + + // Our synthetic label breakpoint should be present Assert.Equal( - firstFrame.PresentationHint, - StackFramePresentationHint.Label + StackFramePresentationHint.Label, + firstFrame.PresentationHint ); } @@ -375,21 +411,21 @@ public async Task SendsInitialLabelBreakpointForPerformanceReasons() [SkippableFact] public async Task CanStepPastSystemWindowsForms() { - Skip.IfNot(PsesStdioProcess.IsWindowsPowerShell, + Skip.IfNot(PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows Forms requires Windows PowerShell."); - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode, "Breakpoints can't be set in Constrained Language Mode."); string filePath = NewTestFile(string.Join(Environment.NewLine, new[] { - "Add-Type -AssemblyName System.Windows.Forms", - "$global:form = New-Object System.Windows.Forms.Form", - "Write-Host $form" - })); + "Add-Type -AssemblyName System.Windows.Forms", + "$global:form = New-Object System.Windows.Forms.Form", + "Write-Host $form" + })); - await PsesDebugAdapterClient.LaunchScript(filePath, Started); + await client.LaunchScript(filePath); - SetFunctionBreakpointsResponse setBreakpointsResponse = await PsesDebugAdapterClient.SetFunctionBreakpoints( + SetFunctionBreakpointsResponse setBreakpointsResponse = await client.SetFunctionBreakpoints( new SetFunctionBreakpointsArguments { Breakpoints = new FunctionBreakpoint[] @@ -399,11 +435,11 @@ public async Task CanStepPastSystemWindowsForms() Breakpoint breakpoint = setBreakpointsResponse.Breakpoints.First(); Assert.True(breakpoint.Verified); - ConfigurationDoneResponse configDoneResponse = await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); + ConfigurationDoneResponse configDoneResponse = await client.RequestConfigurationDone(new ConfigurationDoneArguments()); Assert.NotNull(configDoneResponse); await Task.Delay(5000); - VariablesResponse variablesResponse = await PsesDebugAdapterClient.RequestVariables( + VariablesResponse variablesResponse = await client.RequestVariables( new VariablesArguments { VariablesReference = 1 }); Variable form = variablesResponse.Variables.FirstOrDefault(v => v.Name == "$form"); @@ -418,24 +454,25 @@ public async Task CanStepPastSystemWindowsForms() [Fact] public async Task CanLaunchScriptWithCommentedLastLineAsync() { - string script = GenerateScriptFromLoggingStatements("$($MyInvocation.Line)") + "# a comment at the end"; + string script = GenerateLoggingScript("$($MyInvocation.Line)", "$(1+1)") + "# a comment at the end"; Assert.EndsWith(Environment.NewLine + "# a comment at the end", script); // NOTE: This is horribly complicated, but the "script" parameter here is assigned to // PsesLaunchRequestArguments.Script, which is then assigned to // DebugStateService.ScriptToLaunch in that handler, and finally used by the // ConfigurationDoneHandler in LaunchScriptAsync. - await PsesDebugAdapterClient.LaunchScript(script, Started); + await client.LaunchScript(script); + + _ = await client.RequestConfigurationDone(new ConfigurationDoneArguments()); - ConfigurationDoneResponse configDoneResponse = await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); - Assert.NotNull(configDoneResponse); // We can check that the script was invoked as expected, which is to dot-source a script // block with the contents surrounded by newlines. While we can't check that the last // line was a curly brace by itself, we did check that the contents ended with a // comment, so if this output exists then the bug did not recur. - Assert.Collection(await GetLog(), - (i) => Assert.Equal(". {", i), - (i) => Assert.Equal("", i)); + Assert.Equal(". {", await ReadScriptLogLineAsync()); + + // Verifies that the script did run and the body was evaluated + Assert.Equal("2", await ReadScriptLogLineAsync()); } [SkippableFact] @@ -458,24 +495,24 @@ public async Task CanRunPesterTestFile() await Task.Delay(1000); } await Task.Delay(15000); - _output.WriteLine(File.ReadAllText(pesterLog)); + output.WriteLine(File.ReadAllText(pesterLog)); */ string pesterTest = NewTestFile(@" - Describe 'A' { - Context 'B' { - It 'C' { - { throw 'error' } | Should -Throw - } - It 'D' { - " + GenerateScriptFromLoggingStatements("pester") + @" - } + Describe 'A' { + Context 'B' { + It 'C' { + { throw 'error' } | Should -Throw + } + It 'D' { + " + GenerateLoggingScript("pester") + @" } - }", isPester: true); + } + }", isPester: true); - await PsesDebugAdapterClient.LaunchScript($"Invoke-Pester -Script '{pesterTest}'", Started); - await PsesDebugAdapterClient.RequestConfigurationDone(new ConfigurationDoneArguments()); - Assert.Collection(await GetLog(), (i) => Assert.Equal("pester", i)); + await client.LaunchScript($"Invoke-Pester -Script '{pesterTest}'"); + await client.RequestConfigurationDone(new ConfigurationDoneArguments()); + Assert.Equal("pester", await ReadScriptLogLineAsync()); } } } diff --git a/test/PowerShellEditorServices.Test.E2E/Hosts/DebugOutputStream.cs b/test/PowerShellEditorServices.Test.E2E/Hosts/DebugOutputStream.cs new file mode 100644 index 000000000..fc439b60f --- /dev/null +++ b/test/PowerShellEditorServices.Test.E2E/Hosts/DebugOutputStream.cs @@ -0,0 +1,44 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#nullable enable + +using System.Diagnostics; +using System.IO; +using System.Text; +using Nerdbank.Streams; + +namespace PowerShellEditorServices.Test.E2E; + +/// +/// A stream that logs all data read and written to the debug stream which is visible in the debug console when a +/// debugger is attached. +/// +internal class DebugOutputStream : MonitoringStream +{ + public DebugOutputStream(Stream? underlyingStream) + : base(underlyingStream ?? new MemoryStream()) + { + DidRead += (_, segment) => + { + if (segment.Array is null) { return; } + LogData("⬅️", segment.Array, segment.Offset, segment.Count); + }; + + DidWrite += (_, segment) => + { + if (segment.Array is null) { return; } + LogData("➡️", segment.Array, segment.Offset, segment.Count); + }; + + } + + private static void LogData(string header, byte[] buffer, int offset, int count) + { + // If debugging, the raw traffic will be visible in the debug console + if (Debugger.IsAttached) + { + string data = Encoding.UTF8.GetString(buffer, offset, count); + Debug.WriteLine($"{header} {data}"); + } + } +} diff --git a/test/PowerShellEditorServices.Test.E2E/Hosts/IAsyncLanguageServerHost.cs b/test/PowerShellEditorServices.Test.E2E/Hosts/IAsyncLanguageServerHost.cs new file mode 100644 index 000000000..149b9bd1b --- /dev/null +++ b/test/PowerShellEditorServices.Test.E2E/Hosts/IAsyncLanguageServerHost.cs @@ -0,0 +1,25 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#nullable enable + +using System; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace PowerShellEditorServices.Test.E2E; + +/// +/// Represents a debug adapter server host that can be started and stopped and provides streams for communication. +/// +public interface IAsyncLanguageServerHost : IAsyncDisposable +{ + // Start the host and return when the host is ready to communicate. It should return a tuple of a stream Reader and stream Writer for communication with the LSP. The underlying streams can be retrieved via baseStream propertyif needed. + Task<(StreamReader, StreamWriter)> Start(CancellationToken token = default); + // Stops the host and returns when the host has fully stopped. It should be idempotent, such that if called while the host is already stopping/stopped, it will have the same result + Task Stop(CancellationToken token = default); + + // Optional to implement if more is required than a simple stop + async ValueTask IAsyncDisposable.DisposeAsync() => await Stop(); +} + diff --git a/test/PowerShellEditorServices.Test.E2E/DebugAdapterClientExtensions.cs b/test/PowerShellEditorServices.Test.E2E/Hosts/IDebugAdapterClientExtensions.cs similarity index 63% rename from test/PowerShellEditorServices.Test.E2E/DebugAdapterClientExtensions.cs rename to test/PowerShellEditorServices.Test.E2E/Hosts/IDebugAdapterClientExtensions.cs index dfcb0bbc7..e37be268d 100644 --- a/test/PowerShellEditorServices.Test.E2E/DebugAdapterClientExtensions.cs +++ b/test/PowerShellEditorServices.Test.E2E/Hosts/IDebugAdapterClientExtensions.cs @@ -4,14 +4,14 @@ using System; using System.Threading.Tasks; using Microsoft.PowerShell.EditorServices.Handlers; -using OmniSharp.Extensions.DebugAdapter.Client; +using OmniSharp.Extensions.DebugAdapter.Protocol.Client; using OmniSharp.Extensions.DebugAdapter.Protocol.Requests; namespace PowerShellEditorServices.Test.E2E { - public static class DebugAdapterClientExtensions + public static class IDebugAdapterClientExtensions { - public static async Task LaunchScript(this DebugAdapterClient debugAdapterClient, string script, TaskCompletionSource started, string executeMode = "DotSource") + public static async Task LaunchScript(this IDebugAdapterClient debugAdapterClient, string script, string executeMode = "DotSource") { _ = await debugAdapterClient.Launch( new PsesLaunchRequestArguments @@ -22,9 +22,6 @@ public static async Task LaunchScript(this DebugAdapterClient debugAdapterClient CreateTemporaryIntegratedConsole = false, ExecuteMode = executeMode, }) ?? throw new Exception("Launch response was null."); - - // This will check to see if we received the Initialized event from the server. - await started.Task; } } } diff --git a/test/PowerShellEditorServices.Test.E2E/Hosts/PsesStdioLanguageServerProcessHost.cs b/test/PowerShellEditorServices.Test.E2E/Hosts/PsesStdioLanguageServerProcessHost.cs new file mode 100644 index 000000000..08a29443c --- /dev/null +++ b/test/PowerShellEditorServices.Test.E2E/Hosts/PsesStdioLanguageServerProcessHost.cs @@ -0,0 +1,85 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. + +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; + +namespace PowerShellEditorServices.Test.E2E; + +/// +/// A is responsible for launching or attaching to a language server, providing access to its input and output streams, and tracking its lifetime. +/// +internal class PsesStdioLanguageServerProcessHost(bool isDebugAdapter) +: StdioLanguageServerProcessHost(PwshExe, GeneratePsesArguments(isDebugAdapter)) +{ + protected static readonly string s_binDir = + Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + + private static readonly string s_bundledModulePath = new FileInfo(Path.Combine( + s_binDir, "..", "..", "..", "..", "..", "module")).FullName; + + private static readonly string s_sessionDetailsPath = Path.Combine( + s_binDir, $"pses_test_sessiondetails_{Path.GetRandomFileName()}"); + + private static readonly string s_logPath = Path.Combine( + s_binDir, $"pses_test_logs_{Path.GetRandomFileName()}"); + + private const string s_logLevel = "Diagnostic"; + private static readonly string[] s_featureFlags = { "PSReadLine" }; + private const string s_hostName = "TestHost"; + private const string s_hostProfileId = "TestHost"; + private const string s_hostVersion = "1.0.0"; + + // Adjust the environment variable if wanting to test with 5.1 or a specific pwsh path + public static string PwshExe { get; } = Environment.GetEnvironmentVariable("PWSH_EXE_NAME") ?? "pwsh"; + public static bool IsWindowsPowerShell { get; } = PwshExe.EndsWith("powershell"); + public static bool RunningInConstrainedLanguageMode { get; } = + Environment.GetEnvironmentVariable("__PSLockdownPolicy", EnvironmentVariableTarget.Machine) != null; + + private static string[] GeneratePsesArguments(bool isDebugAdapter) + { + List args = new() + { + "&", + SingleQuoteEscape(Path.Combine(s_bundledModulePath, "PowerShellEditorServices", "Start-EditorServices.ps1")), + "-LogPath", + SingleQuoteEscape(s_logPath), + "-LogLevel", + s_logLevel, + "-SessionDetailsPath", + SingleQuoteEscape(s_sessionDetailsPath), + "-FeatureFlags", + string.Join(',', s_featureFlags), + "-HostName", + s_hostName, + "-HostProfileId", + s_hostProfileId, + "-HostVersion", + s_hostVersion, + "-BundledModulesPath", + SingleQuoteEscape(s_bundledModulePath), + "-Stdio" + }; + + if (isDebugAdapter) + { + args.Add("-DebugServiceOnly"); + } + + string base64Str = Convert.ToBase64String( + System.Text.Encoding.Unicode.GetBytes(string.Join(' ', args))); + + return + [ + "-NoLogo", + "-NoProfile", + "-EncodedCommand", + base64Str + ]; + } + + private static string SingleQuoteEscape(string str) => $"'{str.Replace("'", "''")}'"; +} + diff --git a/test/PowerShellEditorServices.Test.E2E/Hosts/StdioLanguageServerProcessHost.cs b/test/PowerShellEditorServices.Test.E2E/Hosts/StdioLanguageServerProcessHost.cs new file mode 100644 index 000000000..447ae9b44 --- /dev/null +++ b/test/PowerShellEditorServices.Test.E2E/Hosts/StdioLanguageServerProcessHost.cs @@ -0,0 +1,116 @@ +// Copyright (c) Microsoft Corporation. +// Licensed under the MIT License. +#nullable enable + +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace PowerShellEditorServices.Test.E2E; + +/// +/// Hosts a language server process that communicates over stdio +/// +internal class StdioLanguageServerProcessHost(string fileName, IEnumerable argumentList) : IAsyncLanguageServerHost +{ + // The PSES process that will be started and managed + private readonly Process process = new() + { + EnableRaisingEvents = true, + StartInfo = new ProcessStartInfo(fileName, argumentList) + { + RedirectStandardInput = true, + RedirectStandardOutput = true, + RedirectStandardError = true, + UseShellExecute = false, + CreateNoWindow = true + } + }; + + // Track the state of the startup + private TaskCompletionSource<(StreamReader, StreamWriter)>? startTcs; + private TaskCompletionSource? stopTcs; + + // Starts the process. Returns when the process has started and streams are available. + public async Task<(StreamReader, StreamWriter)> Start(CancellationToken token = default) + { + // Runs this once upon process exit to clean up the state. + EventHandler? exitHandler = null; + exitHandler = (sender, e) => + { + // Complete the stopTcs task when the process finally exits, allowing stop to complete + stopTcs?.TrySetResult(true); + stopTcs = null; + startTcs = null; + process.Exited -= exitHandler; + }; + process.Exited += exitHandler; + + if (stopTcs is not null) + { + throw new InvalidOperationException("The process is currently stopping and cannot be started."); + } + + // Await the existing task if we have already started, making this operation idempotent + if (startTcs is not null) + { + return await startTcs.Task; + } + + // Initiate a new startTcs to track the startup + startTcs = new(); + + token.ThrowIfCancellationRequested(); + + // Should throw if there are any startup problems such as invalid path, etc. + process.Start(); + + // According to the source the streams should be allocated synchronously after the process has started, however it's not super clear so we will put this here in case there is an explicit race condition. + if (process.StandardInput.BaseStream is null || process.StandardOutput.BaseStream is null) + { + throw new InvalidOperationException("The process has started but the StandardInput or StandardOutput streams are not available. This should never happen and is probably a race condition, please report it to PowerShellEditorServices."); + } + + startTcs.SetResult(( + process.StandardOutput, + process.StandardInput + )); + + // Return the result of the completion task + return await startTcs.Task; + } + + public async Task WaitForExit(CancellationToken token = default) + { + AssertStarting(); + await process.WaitForExitAsync(token); + } + + /// + /// Determines if the process is in the starting state and throws if not. + /// + private void AssertStarting() + { + if (startTcs is null) + { + throw new InvalidOperationException("The process is not starting/started, use Start() first."); + } + } + + public async Task Stop(CancellationToken token = default) + { + AssertStarting(); + if (stopTcs is not null) + { + return await stopTcs.Task; + } + stopTcs = new(); + token.ThrowIfCancellationRequested(); + process.Kill(); + await process.WaitForExitAsync(token); + return true; + } +} diff --git a/test/PowerShellEditorServices.Test.E2E/LSPTestsFixures.cs b/test/PowerShellEditorServices.Test.E2E/LSPTestsFixtures.cs similarity index 86% rename from test/PowerShellEditorServices.Test.E2E/LSPTestsFixures.cs rename to test/PowerShellEditorServices.Test.E2E/LSPTestsFixtures.cs index 9017eab4f..6eb8e4569 100644 --- a/test/PowerShellEditorServices.Test.E2E/LSPTestsFixures.cs +++ b/test/PowerShellEditorServices.Test.E2E/LSPTestsFixtures.cs @@ -8,9 +8,9 @@ using System.Reflection; using System.Threading; using System.Threading.Tasks; -using Microsoft.Extensions.Logging; using Microsoft.PowerShell.EditorServices.Logging; using Microsoft.PowerShell.EditorServices.Services.Configuration; +using Nerdbank.Streams; using Newtonsoft.Json.Linq; using OmniSharp.Extensions.LanguageServer.Client; using OmniSharp.Extensions.LanguageServer.Protocol; @@ -38,14 +38,16 @@ public class LSPTestsFixture : IAsyncLifetime internal List TelemetryEvents = new(); public ITestOutputHelper Output { get; set; } - protected PsesStdioProcess _psesProcess; - public int ProcessId => _psesProcess.Id; + internal PsesStdioLanguageServerProcessHost _psesHost = new(IsDebugAdapterTests); public async Task InitializeAsync() { - LoggerFactory factory = new(); - _psesProcess = new PsesStdioProcess(factory, IsDebugAdapterTests); - await _psesProcess.Start(); + (StreamReader stdout, StreamWriter stdin) = await _psesHost.Start(); + + // Splice the streams together and enable debug logging of all messages sent and received + DebugOutputStream psesStream = new( + FullDuplexStream.Splice(stdout.BaseStream, stdin.BaseStream) + ); DirectoryInfo testDir = Directory.CreateDirectory(Path.Combine(s_binDir, Path.GetRandomFileName())); @@ -53,12 +55,13 @@ public async Task InitializeAsync() PsesLanguageClient = LanguageClient.PreInit(options => { options - .WithInput(_psesProcess.OutputStream) - .WithOutput(_psesProcess.InputStream) + .WithInput(psesStream) + .WithOutput(psesStream) .WithWorkspaceFolder(DocumentUri.FromFileSystemPath(testDir.FullName), "testdir") .WithInitializationOptions(new { EnableProfileLoading = false }) .OnPublishDiagnostics(diagnosticParams => Diagnostics.AddRange(diagnosticParams.Diagnostics.Where(d => d != null))) - .OnLogMessage(logMessageParams => { + .OnLogMessage(logMessageParams => + { Output?.WriteLine($"{logMessageParams.Type}: {logMessageParams.Message}"); Messages.Add(logMessageParams); }) @@ -98,7 +101,7 @@ public async Task InitializeAsync() public async Task DisposeAsync() { await PsesLanguageClient.Shutdown(); - await _psesProcess.Stop(); + await _psesHost.Stop(); PsesLanguageClient?.Dispose(); } } diff --git a/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs b/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs index 6e8d3ff62..c1112e5cc 100644 --- a/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs +++ b/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs @@ -48,7 +48,7 @@ public LanguageServerProtocolMessageTests(ITestOutputHelper output, LSPTestsFixt Messages.Clear(); Diagnostics = data.Diagnostics; Diagnostics.Clear(); - PwshExe = PsesStdioProcess.PwshExe; + PwshExe = PsesStdioLanguageServerProcessHost.PwshExe; } public void Dispose() @@ -139,7 +139,7 @@ function CanSendWorkspaceSymbolRequest { [SkippableFact] public async Task CanReceiveDiagnosticsFromFileOpenAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode && PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); NewTestFile("$a = 4"); @@ -161,7 +161,7 @@ public async Task WontReceiveDiagnosticsFromFileOpenThatIsNotPowerShellAsync() [SkippableFact] public async Task CanReceiveDiagnosticsFromFileChangedAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode && PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); string filePath = NewTestFile("$a = 4"); @@ -212,7 +212,7 @@ public async Task CanReceiveDiagnosticsFromFileChangedAsync() [SkippableFact] public async Task CanReceiveDiagnosticsFromConfigurationChangeAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode && PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); PsesLanguageClient.SendNotification("workspace/didChangeConfiguration", @@ -312,7 +312,7 @@ await PsesLanguageClient [SkippableFact] public async Task CanSendFormattingRequestAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode && PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); string scriptPath = NewTestFile(@" @@ -348,7 +348,7 @@ public async Task CanSendFormattingRequestAsync() [SkippableFact] public async Task CanSendRangeFormattingRequestAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode && PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); string scriptPath = NewTestFile(@" @@ -977,7 +977,7 @@ enum MyEnum { [SkippableFact] public async Task CanSendCodeActionRequestAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode && PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); string filePath = NewTestFile("gci"); @@ -1034,7 +1034,7 @@ await PsesLanguageClient public async Task CanSendCompletionAndCompletionResolveRequestAsync() { Skip.If(IsLinux, "This depends on the help system, which is flaky on Linux."); - Skip.If(PsesStdioProcess.IsWindowsPowerShell, "This help system isn't updated in CI."); + Skip.If(PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "This help system isn't updated in CI."); string filePath = NewTestFile("Write-H"); CompletionList completionItems = await PsesLanguageClient.TextDocument.RequestCompletion( @@ -1133,7 +1133,7 @@ await PsesLanguageClient public async Task CanSendHoverRequestAsync() { Skip.If(IsLinux, "This depends on the help system, which is flaky on Linux."); - Skip.If(PsesStdioProcess.IsWindowsPowerShell, "This help system isn't updated in CI."); + Skip.If(PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "This help system isn't updated in CI."); string filePath = NewTestFile("Write-Host"); Hover hover = await PsesLanguageClient.TextDocument.RequestHover( @@ -1215,7 +1215,7 @@ await PsesLanguageClient [SkippableFact] public async Task CanSendGetCommentHelpRequestAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode && PsesStdioProcess.IsWindowsPowerShell, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode && PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "Windows PowerShell doesn't trust PSScriptAnalyzer by default so it won't load."); string scriptPath = NewTestFile(@" @@ -1285,7 +1285,7 @@ await PsesLanguageClient [SkippableFact] public async Task CanSendExpandAliasRequestAsync() { - Skip.If(PsesStdioProcess.RunningInConstrainedLanguageMode, + Skip.If(PsesStdioLanguageServerProcessHost.RunningInConstrainedLanguageMode, "The expand alias request doesn't work in Constrained Language Mode."); ExpandAliasResult expandAliasResult = diff --git a/test/PowerShellEditorServices.Test.E2E/Processes/LoggingStream.cs b/test/PowerShellEditorServices.Test.E2E/Processes/LoggingStream.cs deleted file mode 100644 index 9a29452b0..000000000 --- a/test/PowerShellEditorServices.Test.E2E/Processes/LoggingStream.cs +++ /dev/null @@ -1,66 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Diagnostics; -using System.IO; -using System.Text; - -namespace PowerShellEditorServices.Test.E2E -{ - internal class LoggingStream : Stream - { - private static readonly string s_banner = new('=', 20); - - private readonly Stream _underlyingStream; - - public LoggingStream(Stream underlyingStream) => _underlyingStream = underlyingStream; - - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - if (disposing) - { - _underlyingStream.Dispose(); - } - } - - public override bool CanRead => _underlyingStream.CanRead; - - public override bool CanSeek => _underlyingStream.CanSeek; - - public override bool CanWrite => _underlyingStream.CanWrite; - - public override long Length => _underlyingStream.Length; - - public override long Position { get => _underlyingStream.Position; set => _underlyingStream.Position = value; } - - public override void Flush() => _underlyingStream.Flush(); - - public override int Read(byte[] buffer, int offset, int count) - { - int actualCount = _underlyingStream.Read(buffer, offset, count); - LogData("READ", buffer, offset, actualCount); - return actualCount; - } - - public override long Seek(long offset, SeekOrigin origin) => _underlyingStream.Seek(offset, origin); - - public override void SetLength(long value) => _underlyingStream.SetLength(value); - - public override void Write(byte[] buffer, int offset, int count) - { - LogData("WRITE", buffer, offset, count); - _underlyingStream.Write(buffer, offset, count); - } - - private static void LogData(string header, byte[] buffer, int offset, int count) - { - Debug.WriteLine($"{header} |{s_banner.Substring(0, Math.Max(s_banner.Length - header.Length - 2, 0))}"); - string data = Encoding.UTF8.GetString(buffer, offset, count); - Debug.WriteLine(data); - Debug.WriteLine(s_banner); - Debug.WriteLine("\n"); - } - } -} diff --git a/test/PowerShellEditorServices.Test.E2E/Processes/PsesStdioProcess.cs b/test/PowerShellEditorServices.Test.E2E/Processes/PsesStdioProcess.cs deleted file mode 100644 index 0aa651205..000000000 --- a/test/PowerShellEditorServices.Test.E2E/Processes/PsesStdioProcess.cs +++ /dev/null @@ -1,121 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Reflection; -using Microsoft.Extensions.Logging; - -namespace PowerShellEditorServices.Test.E2E -{ - /// - /// A is responsible for launching or attaching to a language server, providing access to its input and output streams, and tracking its lifetime. - /// - public class PsesStdioProcess : StdioServerProcess - { - protected static readonly string s_binDir = - Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - - #region private static or constants members - - private static readonly string s_bundledModulePath = new FileInfo(Path.Combine( - s_binDir, "..", "..", "..", "..", "..", "module")).FullName; - - private static readonly string s_sessionDetailsPath = Path.Combine( - s_binDir, $"pses_test_sessiondetails_{Path.GetRandomFileName()}"); - - private static readonly string s_logPath = Path.Combine( - s_binDir, $"pses_test_logs_{Path.GetRandomFileName()}"); - - private const string s_logLevel = "Diagnostic"; - private static readonly string[] s_featureFlags = { "PSReadLine" }; - private const string s_hostName = "TestHost"; - private const string s_hostProfileId = "TestHost"; - private const string s_hostVersion = "1.0.0"; - - #endregion - - #region public static properties - - // NOTE: Just hard-code this to "powershell" when testing with the code lens. - public static string PwshExe { get; } = Environment.GetEnvironmentVariable("PWSH_EXE_NAME") ?? "pwsh"; - public static bool IsWindowsPowerShell { get; } = PwshExe.EndsWith("powershell"); - public static bool RunningInConstrainedLanguageMode { get; } = - Environment.GetEnvironmentVariable("__PSLockdownPolicy", EnvironmentVariableTarget.Machine) != null; - - #endregion - - #region ctor - - public PsesStdioProcess(ILoggerFactory loggerFactory, bool isDebugAdapter) : base(loggerFactory, GeneratePsesStartInfo(isDebugAdapter)) - { - } - - #endregion - - #region helper private methods - - private static ProcessStartInfo GeneratePsesStartInfo(bool isDebugAdapter) - { - ProcessStartInfo processStartInfo = new() - { - FileName = PwshExe - }; - - foreach (string arg in GeneratePsesArguments(isDebugAdapter)) - { - processStartInfo.ArgumentList.Add(arg); - } - - return processStartInfo; - } - - private static string[] GeneratePsesArguments(bool isDebugAdapter) - { - List args = new() - { - "&", - SingleQuoteEscape(Path.Combine(s_bundledModulePath, "PowerShellEditorServices", "Start-EditorServices.ps1")), - "-LogPath", - SingleQuoteEscape(s_logPath), - "-LogLevel", - s_logLevel, - "-SessionDetailsPath", - SingleQuoteEscape(s_sessionDetailsPath), - "-FeatureFlags", - string.Join(',', s_featureFlags), - "-HostName", - s_hostName, - "-HostProfileId", - s_hostProfileId, - "-HostVersion", - s_hostVersion, - "-BundledModulesPath", - SingleQuoteEscape(s_bundledModulePath), - "-Stdio" - }; - - if (isDebugAdapter) - { - args.Add("-DebugServiceOnly"); - } - - string base64Str = Convert.ToBase64String( - System.Text.Encoding.Unicode.GetBytes(string.Join(' ', args))); - - return new string[] - { - "-NoLogo", - "-NoProfile", - "-EncodedCommand", - base64Str - }; - } - - private static string SingleQuoteEscape(string str) => $"'{str.Replace("'", "''")}'"; - - #endregion - } -} diff --git a/test/PowerShellEditorServices.Test.E2E/Processes/ServerProcess.cs b/test/PowerShellEditorServices.Test.E2E/Processes/ServerProcess.cs deleted file mode 100644 index 90ecaaf5c..000000000 --- a/test/PowerShellEditorServices.Test.E2E/Processes/ServerProcess.cs +++ /dev/null @@ -1,151 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.IO; -using System.Reactive.Subjects; -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; - -namespace PowerShellEditorServices.Test.E2E -{ - /// - /// A is responsible for launching or attaching to a language server, providing access to its input and output streams, and tracking its lifetime. - /// - public abstract class ServerProcess : IDisposable - { - private readonly ISubject _exitedSubject; - - private readonly Lazy _inStreamLazy; - - private readonly Lazy _outStreamLazy; - - /// - /// Create a new . - /// - /// - /// The factory for loggers used by the process and its components. - /// - protected ServerProcess(ILoggerFactory loggerFactory) - { - LoggerFactory = loggerFactory ?? throw new ArgumentNullException(nameof(loggerFactory)); - Log = LoggerFactory.CreateLogger(categoryName: GetType().FullName); - - ServerStartCompletion = new TaskCompletionSource(); - - ServerExitCompletion = new TaskCompletionSource(); - ServerExitCompletion.SetResult(null); // Start out as if the server has already exited. - - Exited = _exitedSubject = new AsyncSubject(); - - _inStreamLazy = new Lazy(GetInputStream); - _outStreamLazy = new Lazy(GetOutputStream); - } - - /// - /// Finalizer for . - /// - ~ServerProcess() - { - Dispose(false); - } - - /// - /// Dispose of resources being used by the launcher. - /// - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Dispose of resources being used by the launcher. - /// - /// - /// Explicit disposal? - /// - protected virtual void Dispose(bool disposing) - { - } - - /// - /// The factory for loggers used by the process and its components. - /// - protected ILoggerFactory LoggerFactory { get; } - - /// - /// The process's logger. - /// - protected ILogger Log { get; } - - /// - /// The used to signal server startup. - /// - protected TaskCompletionSource ServerStartCompletion { get; set; } - - /// - /// The used to signal server exit. - /// - protected TaskCompletionSource ServerExitCompletion { get; set; } - - /// - /// Event raised when the server has exited. - /// - public IObservable Exited { get; } - - /// - /// Is the server running? - /// - public abstract bool IsRunning { get; } - - /// - /// A that completes when the server has started. - /// - public Task HasStarted => ServerStartCompletion.Task; - - /// - /// A that completes when the server has exited. - /// - public Task HasExited => ServerExitCompletion.Task; - - protected abstract Stream GetInputStream(); - - protected abstract Stream GetOutputStream(); - - /// - /// The server's input stream. - /// - /// - /// The connection will write to the server's input stream, and read from its output stream. - /// - public Stream InputStream => _inStreamLazy.Value; - - /// - /// The server's output stream. - /// - /// - /// The connection will read from the server's output stream, and write to its input stream. - /// - public Stream OutputStream => _outStreamLazy.Value; - - /// - /// Start or connect to the server. - /// - public abstract Task Start(); - - /// - /// Stop or disconnect from the server. - /// - public abstract Task Stop(); - - /// - /// Raise the event. - /// - protected virtual void OnExited() - { - _exitedSubject.OnNext(System.Reactive.Unit.Default); - _exitedSubject.OnCompleted(); - } - } -} diff --git a/test/PowerShellEditorServices.Test.E2E/Processes/StdioServerProcess.cs b/test/PowerShellEditorServices.Test.E2E/Processes/StdioServerProcess.cs deleted file mode 100644 index 9cc19810b..000000000 --- a/test/PowerShellEditorServices.Test.E2E/Processes/StdioServerProcess.cs +++ /dev/null @@ -1,191 +0,0 @@ -// Copyright (c) Microsoft Corporation. -// Licensed under the MIT License. - -using System; -using System.Diagnostics; -using System.IO; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.Logging; - -namespace PowerShellEditorServices.Test.E2E -{ - /// - /// A is a that launches its server as an external process and communicates with it over STDIN / STDOUT. - /// - public class StdioServerProcess : ServerProcess - { - /// - /// A that describes how to start the server. - /// - private readonly ProcessStartInfo _serverStartInfo; - - /// - /// The current server process (if any). - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2213:Disposable fields should be disposed", Justification = "It is diposed but with a lock.")] - private Process _serverProcess; - - /// - /// Create a new . - /// - /// - /// The factory for loggers used by the process and its components. - /// - /// - /// A that describes how to start the server. - /// - public StdioServerProcess(ILoggerFactory loggerFactory, ProcessStartInfo serverStartInfo) - : base(loggerFactory) => _serverStartInfo = serverStartInfo ?? throw new ArgumentNullException(nameof(serverStartInfo)); - - public int ProcessId => _serverProcess.Id; - - /// - /// The process ID of the server process, useful for attaching a debugger. - /// - public int Id => _serverProcess.Id; - - /// - /// Dispose of resources being used by the launcher. - /// - /// - /// Explicit disposal? - /// - protected override void Dispose(bool disposing) - { - if (disposing) - { - Process serverProcess = Interlocked.Exchange(ref _serverProcess, null); - if (serverProcess is not null) - { - if (!serverProcess.HasExited) - { - serverProcess.Kill(); - } - - serverProcess.Dispose(); - } - } - base.Dispose(disposing); - } - - /// - /// Is the server running? - /// - public override bool IsRunning => !ServerExitCompletion.Task.IsCompleted; - - /// - /// The server's input stream. - /// - protected override Stream GetInputStream() => _serverProcess?.StandardInput?.BaseStream; - - /// - /// The server's output stream. - /// - protected override Stream GetOutputStream() => _serverProcess?.StandardOutput?.BaseStream; - - /// - /// Start or connect to the server. - /// - public override Task Start() - { - ServerExitCompletion = new TaskCompletionSource(); - - _serverStartInfo.CreateNoWindow = true; - _serverStartInfo.UseShellExecute = false; - _serverStartInfo.RedirectStandardInput = true; - _serverStartInfo.RedirectStandardOutput = true; - _serverStartInfo.RedirectStandardError = true; - - Process serverProcess = _serverProcess = new Process - { - StartInfo = _serverStartInfo, - EnableRaisingEvents = true - }; - serverProcess.Exited += ServerProcess_Exit; - - if (!serverProcess.Start()) - { - throw new InvalidOperationException("Failed to launch language server ."); - } - - ServerStartCompletion.TrySetResult(null); - - return Task.CompletedTask; - } - - /// - /// Stop or disconnect from the server. - /// - public override Task Stop() - { - Process serverProcess = Interlocked.Exchange(ref _serverProcess, null); - ServerExitCompletion.TrySetResult(null); - if (serverProcess?.HasExited == false) - { - serverProcess.Kill(); - } - return ServerExitCompletion.Task; - } - - public event EventHandler ProcessExited; - - /// - /// Called when the server process has exited. - /// - /// - /// The event sender. - /// - /// - /// The event arguments. - /// - private void ServerProcess_Exit(object sender, EventArgs args) - { - Log.LogDebug("Server process has exited."); - - Process serverProcess = (Process)sender; - - int exitCode = serverProcess.ExitCode; - string errorMsg = serverProcess.StandardError.ReadToEnd(); - - OnExited(); - ProcessExited?.Invoke(this, new ProcessExitedEventArgs(exitCode, errorMsg)); - if (exitCode != 0) - { - ServerExitCompletion.TrySetException(new ProcessExitedException("Stdio server process exited unexpectedly", exitCode, errorMsg)); - } - else - { - ServerExitCompletion.TrySetResult(null); - } - ServerStartCompletion = new TaskCompletionSource(); - } - } - - public class ProcessExitedException : Exception - { - public ProcessExitedException(string message, int exitCode, string errorMessage) - : base(message) - { - ExitCode = exitCode; - ErrorMessage = errorMessage; - } - - public int ExitCode { get; init; } - - public string ErrorMessage { get; init; } - } - - public class ProcessExitedEventArgs : EventArgs - { - public ProcessExitedEventArgs(int exitCode, string errorMessage) - { - ExitCode = exitCode; - ErrorMessage = errorMessage; - } - - public int ExitCode { get; init; } - - public string ErrorMessage { get; init; } - } -} diff --git a/test/PowerShellEditorServices.Test.E2E/xunit.runner.json b/test/PowerShellEditorServices.Test.E2E/xunit.runner.json index 2719fd14a..09cc13a99 100644 --- a/test/PowerShellEditorServices.Test.E2E/xunit.runner.json +++ b/test/PowerShellEditorServices.Test.E2E/xunit.runner.json @@ -1,7 +1,8 @@ { "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json", "appDomain": "denied", - "parallelizeTestCollections": false, + "parallelizeTestCollections": true, + "parallelAlgorithm": "aggressive", "methodDisplay": "method", "diagnosticMessages": true, "longRunningTestSeconds": 60 From eebe650d5aa5a71b02078370c8197f73a9323e50 Mon Sep 17 00:00:00 2001 From: Justin Grote Date: Thu, 5 Dec 2024 19:50:25 -0800 Subject: [PATCH 2/3] Remove 7.2-7.3 Regression Test now that versions are no longer supported --- .../LanguageServerProtocolMessageTests.cs | 38 ------------------- 1 file changed, 38 deletions(-) diff --git a/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs b/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs index c1112e5cc..02767023c 100644 --- a/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs +++ b/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs @@ -1057,44 +1057,6 @@ public async Task CanSendCompletionAndCompletionResolveRequestAsync() Assert.Contains("Writes customized output to a host", updatedCompletionItem.Documentation.String); } - // Regression test for https://github.com/PowerShell/PowerShellEditorServices/issues/1926 - [SkippableFact] - public async Task CanRequestCompletionsAndHandleExceptions() - { - PowerShellVersion details - = await PsesLanguageClient - .SendRequest("powerShell/getVersion", new GetVersionParams()) - .Returning(CancellationToken.None); - - Skip.IfNot(details.Version.StartsWith("7.2") || details.Version.StartsWith("7.3"), - "This is a bug in PowerShell 7.2 and 7.3, fixed in 7.4"); - - string filePath = NewTestFile(@" -@() | ForEach-Object { - if ($false) { - return - } - - @{key=$} - }"); - - Messages.Clear(); // On some systems there's a warning message about configuration items too. - CompletionList completionItems = await PsesLanguageClient.TextDocument.RequestCompletion( - new CompletionParams - { - TextDocument = new TextDocumentIdentifier - { - Uri = DocumentUri.FromFileSystemPath(filePath) - }, - Position = new Position(line: 6, character: 11) - }); - - Assert.Empty(completionItems); - Assert.Collection(Messages, - (message) => Assert.Contains("Error Occurred in TabExpansion2", message.Message), - (message) => Assert.Contains("Exception occurred while running handling completion request", message.Message)); - } - [SkippableFact(Skip = "Completion for Expand-SlowArchive is flaky.")] public async Task CanSendCompletionResolveWithModulePrefixRequestAsync() { From 7ecdd5a353e06bc36f23b126193257c79c14f23c Mon Sep 17 00:00:00 2001 From: Justin Grote Date: Thu, 5 Dec 2024 22:26:54 -0800 Subject: [PATCH 3/3] Use native methods for flaky test --- .../LanguageServerProtocolMessageTests.cs | 66 ++++++++++-------- .../PowerShellEditorServices.Test.E2E.csproj | 16 ++++- .../xunit.runner.json | 5 +- ...3-152b-403e-98dc-74d7b4d63d59_HelpInfo.xml | 10 +++ ...3e-98dc-74d7b4d63d59_en-US_HelpContent.cab | Bin 0 -> 248107 bytes .../PSHelp/README | 1 + 6 files changed, 62 insertions(+), 36 deletions(-) create mode 100644 test/PowerShellEditorServices.Test.Shared/PSHelp/Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_HelpInfo.xml create mode 100644 test/PowerShellEditorServices.Test.Shared/PSHelp/Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_en-US_HelpContent.cab create mode 100644 test/PowerShellEditorServices.Test.Shared/PSHelp/README diff --git a/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs b/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs index 02767023c..91704bd84 100644 --- a/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs +++ b/test/PowerShellEditorServices.Test.E2E/LanguageServerProtocolMessageTests.cs @@ -1030,12 +1030,19 @@ await PsesLanguageClient }); } - [SkippableFact] + [Fact] public async Task CanSendCompletionAndCompletionResolveRequestAsync() { - Skip.If(IsLinux, "This depends on the help system, which is flaky on Linux."); - Skip.If(PsesStdioLanguageServerProcessHost.IsWindowsPowerShell, "This help system isn't updated in CI."); - string filePath = NewTestFile("Write-H"); + await PsesLanguageClient + .SendRequest( + "evaluate", + new EvaluateRequestArguments + { + Expression = $"Update-Help Microsoft.Powershell.Utility -SourcePath {s_binDir};" + }) + .ReturningVoid(CancellationToken.None); + + string filePath = NewTestFile("Get-Date"); CompletionList completionItems = await PsesLanguageClient.TextDocument.RequestCompletion( new CompletionParams @@ -1048,16 +1055,16 @@ public async Task CanSendCompletionAndCompletionResolveRequestAsync() }); CompletionItem completionItem = Assert.Single(completionItems, - completionItem1 => completionItem1.FilterText == "Write-Host"); + completionItem1 => completionItem1.FilterText == "Get-Date"); CompletionItem updatedCompletionItem = await PsesLanguageClient .SendRequest("completionItem/resolve", completionItem) .Returning(CancellationToken.None); - Assert.Contains("Writes customized output to a host", updatedCompletionItem.Documentation.String); + Assert.Contains("Gets the current date and time.", updatedCompletionItem.Documentation.String); } - [SkippableFact(Skip = "Completion for Expand-SlowArchive is flaky.")] + [Fact] public async Task CanSendCompletionResolveWithModulePrefixRequestAsync() { await PsesLanguageClient @@ -1065,11 +1072,11 @@ await PsesLanguageClient "evaluate", new EvaluateRequestArguments { - Expression = "Import-Module Microsoft.PowerShell.Archive -Prefix Slow" + Expression = $"Update-Help Microsoft.Powershell.Utility -SourcePath {s_binDir};Import-Module Microsoft.PowerShell.Utility -Prefix Test -Force" }) .ReturningVoid(CancellationToken.None); - string filePath = NewTestFile("Expand-SlowArch"); + string filePath = NewTestFile("Get-TestDate"); CompletionList completionItems = await PsesLanguageClient.TextDocument.RequestCompletion( new CompletionParams @@ -1078,17 +1085,15 @@ await PsesLanguageClient { Uri = DocumentUri.FromFileSystemPath(filePath) }, - Position = new Position(line: 0, character: 15) + Position = new Position(line: 0, character: 12) }); CompletionItem completionItem = Assert.Single(completionItems, - completionItem1 => completionItem1.Label == "Expand-SlowArchive"); + completionItem1 => completionItem1.Label == "Get-TestDate"); - CompletionItem updatedCompletionItem = await PsesLanguageClient - .SendRequest("completionItem/resolve", completionItem) - .Returning(CancellationToken.None); + CompletionItem updatedCompletionItem = await PsesLanguageClient.ResolveCompletion(completionItem); - Assert.Contains("Extracts files from a specified archive", updatedCompletionItem.Documentation.String); + Assert.Contains("Gets the current date and time.", updatedCompletionItem.Documentation.String); } [SkippableFact] @@ -1123,22 +1128,21 @@ public async Task CanSendSignatureHelpRequestAsync() { string filePath = NewTestFile("Get-Date -"); - SignatureHelp signatureHelp = await PsesLanguageClient - .SendRequest( - "textDocument/signatureHelp", - new SignatureHelpParams + SignatureHelp signatureHelp = await PsesLanguageClient.RequestSignatureHelp + ( + new SignatureHelpParams + { + TextDocument = new TextDocumentIdentifier { - TextDocument = new TextDocumentIdentifier - { - Uri = new Uri(filePath) - }, - Position = new Position - { - Line = 0, - Character = 10 - } - }) - .Returning(CancellationToken.None); + Uri = new Uri(filePath) + }, + Position = new Position + { + Line = 0, + Character = 10 + } + } + ); Assert.Contains("Get-Date", signatureHelp.Signatures.First().Label); } @@ -1231,7 +1235,7 @@ await PsesLanguageClient Assert.Equal(0, evaluateResponseBody.VariablesReference); } - [Fact] + [Fact(Timeout = 60000)] public async Task CanSendGetCommandRequestAsync() { List pSCommandMessages = diff --git a/test/PowerShellEditorServices.Test.E2E/PowerShellEditorServices.Test.E2E.csproj b/test/PowerShellEditorServices.Test.E2E/PowerShellEditorServices.Test.E2E.csproj index 2ea39d3fd..3f110f212 100644 --- a/test/PowerShellEditorServices.Test.E2E/PowerShellEditorServices.Test.E2E.csproj +++ b/test/PowerShellEditorServices.Test.E2E/PowerShellEditorServices.Test.E2E.csproj @@ -1,5 +1,6 @@ - + net8.0 @@ -18,8 +19,10 @@ - - + + @@ -37,4 +40,11 @@ + + + + + + diff --git a/test/PowerShellEditorServices.Test.E2E/xunit.runner.json b/test/PowerShellEditorServices.Test.E2E/xunit.runner.json index 09cc13a99..f1c3b37cd 100644 --- a/test/PowerShellEditorServices.Test.E2E/xunit.runner.json +++ b/test/PowerShellEditorServices.Test.E2E/xunit.runner.json @@ -2,8 +2,9 @@ "$schema": "https://xunit.net/schema/current/xunit.runner.schema.json", "appDomain": "denied", "parallelizeTestCollections": true, - "parallelAlgorithm": "aggressive", + "parallelAlgorithm": "conservative", "methodDisplay": "method", "diagnosticMessages": true, - "longRunningTestSeconds": 60 + "longRunningTestSeconds": 10, + "showLiveOutput": true } diff --git a/test/PowerShellEditorServices.Test.Shared/PSHelp/Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_HelpInfo.xml b/test/PowerShellEditorServices.Test.Shared/PSHelp/Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_HelpInfo.xml new file mode 100644 index 000000000..1b6473db8 --- /dev/null +++ b/test/PowerShellEditorServices.Test.Shared/PSHelp/Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_HelpInfo.xml @@ -0,0 +1,10 @@ + + + https://aka.ms/powershell51-help + + + en-US + 5.2.0.0 + + + \ No newline at end of file diff --git a/test/PowerShellEditorServices.Test.Shared/PSHelp/Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_en-US_HelpContent.cab b/test/PowerShellEditorServices.Test.Shared/PSHelp/Microsoft.PowerShell.Utility_1da87e53-152b-403e-98dc-74d7b4d63d59_en-US_HelpContent.cab new file mode 100644 index 0000000000000000000000000000000000000000..7c4175b2e24b544a3cd077adca1024a18e90faca GIT binary patch literal 248107 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

q@J}obG#j2E! zfo!Z9vMy?0M*aHH;K;c!#jmQ#&hhv8e1)|E`*~~Y*Y2{J4hJIpO>6wY0r`q;GYv&H?*%t~9*%hwgRHynS)od*$Q4 zApT5rLOOPDz5o6ER5K1wTiNLM*{UN5ZfLRn_uLLA0m7NS`p2lrG^DVBjn;LG$0M znsHYzZY&iy6_A`W0d5hBxdbt|mq*~}{3d*E~957=wZ=c$>a3# zBxml*N(i`z=8rDXBspD8emh;=Hpc>V?OAX$HT6G8PTtKeV}?r`8@jshVbgON_8Kpz zaTolxIjeIIgr^`&V)Jye(sENCS|ReR1xCJ6o4E`ltp;vWR6EyI2h&s7qh-#)ajL34 z_6}mkZhsqtM$Cyh1=)*5a9v%U!d{Eyc5GWV->A-Tuf@d^^P2Fi&!&d^UC}CJCazUj zlt^Vr*?}ws-B^(Qsnx1iD5}w)VCqB?`KgMNkm)B^nQ70wdEujq2|*bZtgx)smUA9y z!m0(_&f%`!19LGs;RdTj`R0S`1<->zQg5yP_JqV;rF~2P*cURRX4;uTQRXc zttpNAD9zUk03Vw*^f1Sp)t@z%VEj&9ERood$_FT2WYk`?wu( zIDrh;c2EF50_VuWoJ(h5c}O806$v0IQAn73>n{Wv%#C#e?t>}`AnJzGyNfqcG^4d2 zDQ`rD?aqXNc`1Zy2P=j5S7EK3$gPqE9fxPzp27U6<8%ui`>}h>{bvV zHpF$@mWb)yHt2nDk_hT8QI)~#5&_JY`rL<&ECgF*sM2B~Z>@lQ`NChxCv z9gZ+Gg?*3Pv}1YdVE9R*fGQ;BYg^0$*yigsoi&FpT?T#kzc_og_3lOKQA$*PZl96I zJ=KfT#`4rruvP)&z{wk96H@;~jZnQuQ;&+@!9*BH$I zWa|aMt{B;^pCwlFvZ_}Hdp@F=WhA`$0|yp*eaH&&`1jK9hlHj=k|F=Qsf}d}0qdjG zkLCbA>hgVjHkRCQf8Y^Gy(1275}ban5?Svq-(8qF)E>GEKJld&{l?enO<6$b6*&gC zCk0$-`O>Fd@CbK@Op@Qu*6yPQ7gSAtn&8Q*vDVD75uFQocUxw+^tMXy;9c*bj`IAh zGyil4w+Mg9y}G)$Fa6ie)9|??kN5O1{%Ze9n7i-1=#}IQIH%E6l57MCMh(;<6>>v7 zo~gsQ^c;1v78U%E($h)!m@^+BF0G`yAIza?Mn+@cExn}r3~|sqy`();z}xB7R4BDO zmh)K*p5_!~%u~wSblwSG!)Gr35UtI=0qiip#BZB7v=`0Hxc`?4vQ2%?boEFk1sPSj z64FxPl|m1ihiY?}&UoB4zMyT{K=<0Xbu}JU&X1N}HMqGec;1}-hkr;L#Q_@P|E0K%+G1+AfRC7Myy_6QvZQsh9{1AY1L- zEB)^v35{G%**oH(Pf{dqspiv;F zivB~4OBgmT=EBma5?oR$=6uxQ0(B|_I(;P3BD63pE7xnUFRq@LYuY@?@iG$&6ey&7 zK;yxH%@mGY9=P7oLqYW5S#(!|^Nf8$4};X%e3N8fBV5aWuG1kJ2^&fJ6EP+${&*DP zxXRq#lNK~%R;-e(gQ*YjJ$OX>#AqZ)O^~cGDgnq*YXCMr0JJpN;{_3~J-r#^La7U7 zM3n^*tUi0vKgbNr?_yO*ygMZ7$Tpc~7rjX&8GyFxLLv2skK}x7Y%o{)Nb_l#Tm>ps z^1@C!8L8mLLm~K2TxE&ra4J87cF&yVD7qY^ddu*LJ-5~9to`WhczE+S(xU`&WYXbt zE=MaT;#fj?n4{g(SyUS>TO!ozOK&CD$huyj@V@RWG{7F?ct`KRhLrV!ntO+9srG+H zSDT||>`^bM)jbpLA#Dg!?I(&E^CZj$c@O^|2O`iyLYt>y2^~9kZT^`CvqM!1j?YQZdA`UfNH!%$QQoLs0pqIDBsNQ==NpWMN$SUD+bM z%T9U5$iy*6+ATiON-W2m*~So1fBR`N0)yJJi0t7#_)MXf*>QjaOKxG?q=yT{J}(N| z$<)Mr5Qdwbgn0)e!28l>>V9v{ao~)WtNh}zqT$>4K!PWbba#3hoS4_0kF5b%v=!>O zNzZSCKK+;;g+JNwqgW+|IQrNcXv3q4xFn?fUKtEzOZ>VH0dj5X?VhY>J-*$FwT6E# zJ+Qf2pm2ZhT}6my9a-)~L-2nJTdsjyKb;0p$5w3Z|KigIzNp>w*|;CC*%DB<+gqe& zuamO%*joU8)sK%0b72Mc*{+)JN*LD5R2p0VZ zC-T%6!2{dYfH((l$me7|+cn1yzF#RdIl`|YqajpY5$VY?_UtluAbs`|{145wt^b+o z{z3fD7DfN-#fW1}B_=@l^(_A0ZUXElbeIVadtxD>5OFKIw?Ts>FCIYt%q4vFoo4Lm8>@O@_r` zn5O}*`Kl##9|#SToMvCkt2*E%I4`Ak&@&Tk8Ytl<RN7~c59k`iktwW2WgpZPi46BLA~_L|+JN5WX0U5e%QOHMht|#~ zVCog_h+&c{0b2U4M6R;heK%8<-2M>mi~mJ=-beT+t)NdJ-iM4tiJF8nDw6KJ=(2Ot z5oFl`OgbD;tYs!g9Y7erf;_Qkxaw)W$Kx|uKH`Nb=-`x$ZNJ!D76zu zN{zvrY;+9%9PHP&IQpt$|L%cXgptvRV-+MpW)V&&=*_7@Nr~M#+ybR-8qZ~k^+BSP zftQ7io6t-5XybIu#PYWJ?~XJe)9p?Xp4`deD|yUpjDP`jq~}Gl+qtz8L>jxu%v5JI zWwzzK-*|%!Hb!pZCa>O6G%0}AoZg?o@_D^aJGdY8cHpojhN}c$1)I?MOvHzpnWoMU zmY`J!!;`1xfO&0wTwcsmN3sycD$tok)x|uPfgFD(#QMdGH9MeYpgfjUiOz6x`emXH z8ST5)1@M5&b)!QcS@=2wMBq3eu1j7r4<}+?yWJLj>BE z8H=R^N<~#D!u4fIJ#tY#teOHGp;IK{IPwj9XNx902l`U;hI|P2;~$JO4MSc}L>gif z3UbGIisOXJ%~BJexOw4ouqtVkr`?fgcowDFwejwKYfLHQ z_VB5FN|1DEPAj5^xJPULNzJ=xI&xg&1s+f;vsp+Ji&?AC>ljgc^FeV3Co5J=gi%tinZ?kVP@Wyf8G9%2#6){ zEO_{~!M7&=Wxe>Rz7sUripWN6+B2BQ1`{P2dumTxLX4m)`kJiLlmvYM#~!8vSX0=6OZHhF>`L0EOp@Gx$< za41{+oT<>>H89lNfPNO^3K1~lxrq>~xDPQCEq#P9rS)Q6hr|;xs*go8^7~E6&+@r8 zY80g$E7O+9hPh`nDDPuJXgn3znz&P^KnsTBY-sN|U^z%OWMWiV@QMs~V`=lEHoMz{ zX7iI7q(*M|sA^rD;w1moo%@5IAS5*$?Y=^SJ zCQ?hCSS(o<-+6(BAp)pmp=lgNF@S*=IVUX};e1IC(GP*sm(u{tA3pYJ4F$vOQ1bCM z@roCUaq&sc_&I!4rh(_ZHrRTW1X>zO@1ORAbXQHxa)q1&L6AhP#L*^luk>L{qsHb% z8};w>xcF_X3$2-yXG1pIG6pu?zkrJ1Lv_UkG=&6(7Fc@_)WGG!9@H4`8W&-orh}Yn zE0wF7l#~v&9s6{Z!?@CV*DWB~`j#1&@*5S;#gQBujY_muoobgI14*>iOBt0f21JZm zP|X9FbO+Sr=Gp%DCtEX#Lm5q@@QfhbgxxLAuFc_8Q>W^isEAn?u4DTzAi*TnM7Ol{ zYz|V?KK%{ADJjag0!KhQz~K$0J7;eL-zP?H7M<1pm(3UW+=VB>Ha>0V{dj6$*M>!0 zmQ+6=sEzp(G`@Jg6oOFC)^Rmfkm{v#{oCShKbO@y82_q5r%IY0sA}5lB%mWkuE$cGh~e5RsY8CXxs>IWF6d5=H%~<#%g*2qBf(1T zH31E%bVtqZdThBV-SlvwLG4NjI@K@H?7`@zwQ?%I)ndP0JG*FJ>XRi(#g>JchSOaI z`9TzDWPxlp5st?>?@SB|eaCY=A_e=P-D4~>sx*e$h4CB($4Dm08FX81WLG0rp;haM zBL~}NT&NVT0|}HANM&_|y?$R&#p^pZvb(MgzGq`Ckx{bgU6Z64agvSQR28i6K(37% zREuONaf6I9VyddC&oTp2mS^)SD-IA?m4t(Ys0} z8nbHz=>SSq8O!3>!Bv>`7$WFS`XI0LLl6R$^~NvO8Mo|i%;OGvk?jS?y}>e1iFBS% z$6f}eqo3d>az7Ypr!!Ap=yB8oaAJB6|>0bKuMicnsWtaCyZAl^}zhz(KcRWk%?;!7N-- zfedi9m^$W@oDNkS8IAYQ8_Avp?89VER3Vbc8pAizY}!{}F9AY&-O+sqmE(=aE^4}2 z-WSYcPb6J0z*sU0>6}zGA?RYiiM4)XCG%x%9q6IuqxXsF=yIbwCw~=YCyX?2uJUi94)-&|YFm{|g%SR!v`oBsl zf3|u)n3c3hn&QfUn#xCaRHwF0hqr1Zu7y#{n<1Kpv6`RxS``b>nn*8RjFbPSV5(Bh zaqWG9umF*9VYW5c#jM1kVAgeAl$#8A8bOslh*|*{Rld;g74T&J=H9SF&yY<5ctwwI2zrY#MQ``!w`Gd*>MhTDz8kEu5#I-UknnCNP$H!XK z!!0eZ+sXKo;;yY@ASCN(dL!%89?R0W%r!+OG?&Q;!-YwmPz4M(F|s@qaz6S<$9`p= zjQx^euJBqY17I1xfd%19R3=x|xysQM4+QuQDwhb>tx!OBPq>L4j?p37Ukr&!bC7u5 zv}3MYb0?ll-8EU)5z52a$!Ylu{sV)rp^NaJr^k2sO$)3a+{oYlsCb}465(jKW@*+1 z1+VyZxoEVt<$o)IuES`lSINmTlEtWQe@H_a>MTh~kX^dpbLM#m3;6JKs-l%dIAKY<9kXxt$ zg??nkXkR-$bw?JzemaFFzx*<1I{p2l_U|P>Oy@AEHU>Ho z&={HL{^n~wSPBRTYq-wX_zK8B0@6@Dqt4+5A}Y=uKz({t!`C|#&2hN|cxlB8yyt7EIa8D6=5mTMjuILd#z$tqTTq~BfF^=kLS4XR<8-jMKw0-6 zQ5fN2!wKU|mnlnSE46v}CHKpFq!$BqIK$MrSx0oy!57mD$Gz3HhTNO5bHTMS7l4p!CnlfR z<&00-7{?aMabMIdLNq<3AA7G0V~Oh~Ex8*b=RA-#g{dlff{;3mo%}(M-dSF6X=G?p zK_rQi8siEe6KMDt#_#GUiP*L5kketJ#A)?lhpTn80NK>%s2ac+Wv9kbb@D@y%RM~U z`vsh5bCe7LGzz2F3N?xwSz`&ZTa^9)xV)6*hjuP>#O-%Xn7(g4`C1k>!X3yFYM1Sp zuVu?{V9D&&{p?4kpX-yv3Clc!NQ-5Stab4!A=Y4xlIqVFEui$tA%gCcSQnzu#ZC*5 zhCaeL2*Cy6tzknqX@r?|Z8{Tq6Rdt+gg` z@mEM)n;mx|)J{Vw&m)-+m<$U0Hs1Zg5Lq=oAi#goxgC8B9<}D{DV_q8d(7#xWRt?P z+hdXStLSLBmGYFwYJdGX+98uyNs@QeylJ<}@E#7XPH62__x!|b$?Rxw+pab#&)z1$ z#3nh!N{C^dYrG6+(OLjT#+?~1J|YQZ!)vSsc-O$UjWA3jH4p~>Nn_Mv2(Mulk2ulR zjpFgq5Xm0)d}GSyHXn*V*X6(l=#+q6?{n>Kx>W112$bA(@jYH&^)YdY6 zJ+Sev#Gk3v1HJbE124H4_=S=$j>AbuPBexstaulN>F zhouryt(Th^TY6d)qlb+c? zt?U)&kaoNtFV)5vN+5Z?EQU#1knkjWs4)l)tZ@__bMhX7 zjmA&9IFg7hj*eM3%X2Ij${PkPs1S znnxybj~mxcpRR1G;qHJ@R#Fvp2b^ssKC$ymsT}LAgrYc@=TYc*AcABK@LIlKfRS9Y z*k#O3takBxlDI3)v$I=|bHfQ@_(vk{;Z~Z8=2BMNo0l%!@12{$fB<)i>**U@Fg*=m zI#efxvTeC&j8~spX)nS8;rAgbo|Krl{IZlpc|^~eC%Z-AXFqKkUgx!gr2+>}Am@we zpLX4FKQFDq>#43ecdij3iDT*on~BoZ#pciD1cjk7wf>gr9tUYQ6L=ovisD8zY;w5y z{8MlP`!Ks~wwVJI`D!N3i=H+xGslQZ1aQdO0u<_m6Ec>aj1)pp zo?A2TFzdg<^XxI-lBLH|TiIK!AO{QtZQ3Qma^UsM*2o0jh1Rj;zEe+yMdmARy#ca$ zrHh8=C7w^5CRPu*5(FE%QnE&DsIQk;;ltyov%-TweZaMCtMB5A-yPoV?X9m<>Sr|- zsAc!2b`!Ab@7$l@M0$0NduQiQ`Px0TbjUUdRvo9-JQSS>{cr2)W z?nux5n{!~GzI7%~LgG<&5_hA_Y+Uvd)@&41CnV!+rYd^$WJ$1=QHJS1Ban<)YsH-r zxgNE8|)7I)rd9- zPA5qts*yjpuEBMhZcnOJF_I_)da@TIr*iG`H|->2b%r!Axjutwig}_k$!!*%Fk@yC zQ5f;?Fk0n*dQHZTYXrUAN|mO7yMd(kA+P6?m6^4=2NPe%wAFKctFo#N^5cmLLlUNH zr$>RTW1EQZ~cFx_fCbH>)_4!KM1G}us+2~8T_1_wXinc+NA;aey9;L+Az;TW; z=7igU^jf5>4D-F=YmD9;AEtz@hUBLf^1LYg=gt|)e@!YSm92H2`5A>lX7r zB>BLHw&3_1I%*w5yy@is;J0)9d9AKUcA+jZ#|PC3!>~kQ@)irr6zu=J@jzr73p72* zcFq&4gCI2PuyjJ$Xn}YJ)%(kGk!Z1YPd49qrx0b`tRKF*V=wt}6ZuL8eL%j`i&RF7 zMH}R1?QK1K`IFFRxA3wNp|+MVvXLb45!R|r5?qOQAHwm$>*saRsfoj^6 zbE%Z=%c%bF(4&2uq8c!qmb$H{4`kXvdZ+Us%jOCFYR1E)b(=V347$VqWpF|XeqxCj zpo|9OL3<}QzpOeoPe4KDN&Yv#Tm1wMk8aq#)afS3E)}fcUUCX%mUS1H^3;}zNNML) z2{l^{$(xrcf8~n_8YbV;QP@!n{wnA|4L$TP>_7*OaW5OFpx{zZ)_n4B&=`?>dF6|XkjQOdq7{!0_ zy+Eouksrec|6tRvP6+gbqkxn>*^%gKB9snmdexFvRDBH=mQMU$4W*4FYAjbol)lhZ z#DS&cpiSzK9W%**VZ_#LOnw@d*>ZmmsTq;EPredWXW_5ujk1>)FP7V?H--XBYWmKX zc1GCQ;~?%dpG+YB6XVl`O!aJ{it9AhK9StBQeAJw1PLS5K77J2)Hb6U(YaU-VIvkZ zglWNkUw}Y{;mC`{4a_2Kl2}}}3_m8-Wo*N~R>SocsY98~;I9pgVtbykDEM;W_Xa`1 zS6H(fhoTs&N5VSNuoy)?ZlsK)jx)-Xu|4u>F{ljVCIZcrD9(2~1&J!7^4LB6qDk_8 z&5!`fAC#Q?epj|6XBr0UHLt2G7zMzrhk)jlp?8^Ndv%nj!9gR7jYboUc{N!xbgPl- z&-KKbbe~l&>Ij&+Z%q_l&MPlulp5Qz;CG6=W zgYML}ULE8o*oP&5X=HIqrmedRe@rE5J+5OGsxvml&p947#U97?;J>WL(ELQ4Dmg%VNti z&~3R@D`H+GD$bw8nda_W$|i~k6T`GBrsE6A{3lJ@-avO2S$H7HA|Xarsz#jH6YPIu ztbC&KUi2tlb3QVC-yRV<=ry7{l`ZH->!VZq5H~piC8aqF{ytw3@oPC1Z6JyCoMYwwYXwF+p}?-%)DZR3zvwgD8tw*u?`bl?uW*^tPN)+V zFmqk}0&0glkDNmOCuG=^!xqQr5kJ5cV^NAV;T|cnH7ZA^mCS0%7iC0D$&{+P25h+p z^n?XeEaH>JuaaMQhiB$)+-Y6~pW2A2?d#0V$r6j~2Tc*7AH z;WQx$;(c=)Fr6dh?_EIKT!2k8;T{Y;VVxZ1|MwA%ZR< zy;=E~Bkb9aD!zA4o=i^+WqJTpz(ZIhl^!-9L8MkY+EK)-?TNhGf(cW|Ipkyg*YNI7 zx1=RGou|7!V4hVeRTNydh(Snnu{n%AKx(d+Kv@(07woH}oVzt~6HrG5-==##1EV@X zQ$3vQnJg>nb=@nHz4F$j<2_$r44uCE_5z zLo$(Ddl{aY%iX?mOtH{a7m^W#bserkGWMvp zP!leGgh#~pj%oJ^5r|WOAWKWZQ9BOD!@NN(tDj}FircC%Yxk8q*N_2d!*HU+7^LKD zdUV$X7pI#GxvhyY!|*f2nBu@401-okG%QZV6Jq}T!7wW=yjuLT#HgqpsnQD&@4#B_ zd(+KI^A_OMtXHk7<%H5jahYH_9=*o}!m3`raM}cPR&Aq>If2m>7@p|Bd_6xnVhCXf z&^$GlDAwzC3DrmKApb-s-a2fkwM?kS!8TIm@clFXS01ilx#SJaK!Hkpnrsqy4{%VQ zn0{7H87{?DX_FfIr?Ln5jb=4iUWqv@GU}(=>IM!k2@OHboivB4n4b)PGvWD>9~&0U zy0c&avFp0}^L>3HyOocXXBgyIFQ349RAM}_-4z`y(_?TZoqitoi7M5tQy4|~R-aMU zN$r{)p3+{1U8{7+dt}zAp)vA#>&mZFwxiOM=Q@k@(eoY&xZ$5t@U-n=<+_w_ha#7g zcIl14Lk$gY&G8OWSsJF8Nj!e4{unPUxCIGn(OqtaH22`Af}_Pf^f`pv3*sOqq;J!M z`bUj77@Hb=`>tdab#~{+?d{|cRJXe2ep0lh&#?r*kJ1hzc>q^1a}t zc$TBPuKn|VA%TbH4oHUJH*U$YYe^YHwFs)bK5 z5RUH8X?Gd7(=mPQ$=z#dX6h5tit`tmygfaSUIEcoe?K6z$Cs^K$$PB6HW%}z2)PtD z6b~t=fXaCSuXTlz7-~q@8v8=KI;G{?M(?Gr_oJ_?QQ)zB%fpbw*EjSfsCN*&FNVwb zVY0($1~#?VVr27H=Uz2$7aevjyrb16p(r0&EGVyZ!y0Mhl{Th?~>cB_8>dQ~Jhvhmg&7crcvB8I0l- z;T-v>u!wxW?@XRPYju~P9DdhgUljj=OA6OonSSopwA;x$KB+Zpf6vmi%RL5tUDR_R zyyjx20-L%@OF%PQUl*zQqQ;!>(2hN(FawDZD)zztMTfvfXuXry_hZZWC1+wS$KpbM zE#9pkuCr2-sslN=vSkpiMs>$}EV0-nEY8oR)u-Zzq>$5NF!4NGLWM|K#9;;n$YZhc z0sJs>AyS%;UZmxriCV}h;-LY`wnE_Bih4;ehL6&`xN0^vPAy^YVK6H{=92|~ggKDN zEBpC4(f9(;<8&~RfkLhYDqg}$@KlhxH+4}Gvl@p6fmy6jX9Jvf1d^*ru?V$N9*NKn zs3OBnX{5PclBcGLz2}IiF8%m<=5}l@xk+M*1j}fLaU&m#lZ(dkxl-ZaGK7l(%tNxr zFj!B{_4p<#UreTN+GA8QACk}oJUVN$d$NcxYzGvt59CpWa0WQnKuTb%PEAWtuB+xW zgV}_)buhI6CH%L0m%wDEgV39+M(~&J4h+hcI0?~4|B)20y8z{NfV{$q@k5SX%(Otwm9^(eF*lY|L3)s~mU;(dy%RWFstiow#Iijl( zQflyMzzfFQB!kvxt1$+jidd>uXmN1|J>cr-T0kiKPnY`2p%{HsWkPWv4@iwzzhGgr zVq(a$fi?>-S43)&cZAfE8YxB%@5a;GxTuCvq*XwVMd z(X}ElZ^$RHKpXnl`NjUz3ShmjDP~OL5&ev(0VB|MhZ2yy6az73 ze+dX{SDPPD*71D?%nFCIEAoR{x8hCy7e2;>f2`1-EF_1gTyXfK+rTg0_+Kud_g{GB z&#KbV|6OPM$2OTj{9kO7I)_*;N)g=k2UXF4HAlF=1)Q$LuW$LZG*Tp{2NDH;C{`Jr z9(K7K8#{IML^YFXHnY&FQJT}%C#SCb9%Bjr38_VXE)S1ZGJamPs|uN+Am}yj2ng=c z(${>?xSJF4?E z5-mkma!71|PPdj|$@|ylA!#)@^(2|+k&v(5Gc7vn98d$mCq5|FqLqJ`$E1ZPBG?d6 zn;Oae1{nqKN(8{?l{L9;k<}0Z!!CLwCN3QV|tRXUVVN}I~G z=0nNGg--86N7jW{YvwqFEuyv?(}`FPv)07pUl6})&!6D350N*WcxM|gp1q>>AJYs* z&Q&?-E$GNC{*0v=MW8@y-oH{~Wc0;~N;J^ir2|CoO+S#NZ#joCCR~Z?(MhM~Hjqnu z+Q=V>(J^^JC1}(DxhX<>ZUAHZuPBF<<2b8=EL8-;26RJ@>mJh#=uqiz_go@_TD7JI zIFnB1g@=7&JKd*-_wHYUdbFmL1LfHAnK?@o{Q*KESyZe;s@Rj4+3h~6(a#I{+|=Ir z)<6jJ$2%-)Y|u-Axy9r%B^NKfN}i`Yeuk>`1?><`#u14o%tyP!-_=fQvNzG3SA+Qw z-Hmx=dHIA#Hc#4b zhpf3;*X;+Pl@e3tFi)Gz-hWq4XMnE>A*kd-Zrv7+*NgmGnj-eH2+p2{0JfEG4a+*Mi(N+9p!2QxIW-g{%E5;GtXc656H0%5S_;yH9-I zG08@+Y66KmQmfnK#Nne|6hyUPtrI%j4&&Rt|0GI%Oh(-fZS1X31TFXua}y zKRn!*5YpsNcO10zECkOTXY38q0;Y&Ii71)lk~~k>+15&4<@7^Q^~hi6c-IR-9-!Ng zH&7`a8|EeBEVh{oBn_7{Zqro!OKhHNN!IXkLArRn_TQ{)k%+=J}w@+&t=p4nMN6TnAvm?@$23aN9n<> zPzG&D$X`L{q~2lkvjYpDJ(hNx$&JZyS1)MJ@y|uDBDxjKHRrE8*@w@{DY8{JA`x86 zeJ`&!RGQ@s@o)lIXvv^C!!Yu0;#R*C4W3yW&9KoJ;>)KtgTb;Sq1Q1E?yJo*DvLnN z*YOwCEpkgnA1DE_+pmJbYMGChPx#{7)4z9jB0pDeWkE@Ka9E#abCWAS8kG)HGrfCO zd84uJ5zw?Zmi<9~ca2-+mNZ|F&QL9OUzpORfCJ}GX1yJYy7}CAp04LFH{cPwJ8Md` z&44^sR*X~+>x|K}`{RloDx0P^ZL0()TBsoU_Y*J>Bjpbl96#cKITLvs-;dylXUh{l|buK7lzqR_ojh zHiH84zF3aGT2-vjc?ZDZ{>`vw!fJLeO`&HJwYs^w16E_47nZNI`0NT!Wo(%Pi_&OwBXZTUn3cb4Cb4 zcO(IvF=bE_{ekf=QY*QHEoz^C5#7YLv1|IiJlOSO#rIKw_o1{ck9nAZ)##TpV)MG$ zyG*nD$Fp>-hR}=CDlw^9{12X@WThOk+6S^&_p&KON^{`2^%Pa3-}IzsJO7S@n_Y8j zY657K(ptM$Xj#cQi{WA6p-WfqtS!QEr;5Ui8u48E^hP1x;+AnR8@)FR8nXAIPOkd* z%Y)&QdU5tKBc)-@4WvhR=#+=YHLbLP|BeI)Mz+k*?1}u&cn>lOFtDV6xDpmdb_mQY zTJ~b8Pt(&mkxsQy;o4rP>58@H<&zgP^Y)zqtW`2AC4fa?=08K4SgZFZKddG`hQeQ1zd$!UG62M6= zm7LP*0`Pf|9x_ZG^mvsUE2w!(bE;U?-8>Vf92N;)EBz^87OKsvvbx^J>^QpA>HvJ* z8UqG=9p-P4u9K~2x%LR$rqJ>Ew!s+dhz(Z;?TG}|k%o#42%Q%l48$7}p*pzG16BXw zRRoEwCZX)!fiQMO18PfF#I~Ezv&CSE!2u*IP43)xK=%B%!KWqA2~2nVdJZb(UV5`w)of@el*0D8_>@_ zPKgK&T*K}iNRO0sAj2??-U;GdT;~kN#}$#`hU2wb*^lC|)Yd5y#4zdcZ1lC#a5Sys zfwOYFauT#Z7NY6k$B81kXBNzohYNSD>3`+K%9_oRPCAS9Y5cZ+TD&0XmU&E8UwOGv=VDMPM{AYpt)%pBTZ(Q zY{D=z2r@$g&Go4$>uu#}rc3Y@UkaJa4>^S3jb%%wEma&XY^9TU`*l|{*1vaI^F?x& zp~r_}s~B8CcpRtfm0h;PMcXIicl@#p6cy%7-TmX?uqln>^*q+XudFhG_3T)k7!s6i z7c+bt^u6%5b)-B$hc=It#<<FMpxsJ-Nkp5P1Eqf3d%qpyC%8ul|GEem>UG+YxpCW%R=5C zrYST$fs{elMKG%kxo?7d4dd{WiY7W`JV2C>*L|qNWye1P@G=Yis?8)n_;Q@4*_!@G z_V(X(o)yKHKK_>es_Al4o79~Z z{N|5I+&>1xr>MTelQ}72_XrVvJz|&GE^pSHQcTAqNOmpG2xu2<+ncB}c+ANwZwK8( zAmSGkM5frA)qvjiSEjZO4L^ug{DJ2%`)@*RzMxcq5RHVDd2hkiq>uTXPf-7sjW!2W zK24XHu$i|BaD~z_ItQ4{%1kervcO84)ftf0Xv|HIJx%zS#lDIFmwy~4VHXN}T`ilQ zG9y-hbd&Bgqw@r^%Er^>!~JQ535cA==tU|m9Lfn!^M|{$Ot)r7E1|_`^8B}8fj+hQ z%Nxt+X?pDv+J|;H|^W2h@0Ofva?xA4)ZU_U@M>$P(;+TRgl3& ztV@8SDp6CYOK1)b!%-d!3FQafuae_zEX1b+?fc31A1ve4yt+0Hm+|5Xb>UH5PRHVv zw9Vnn|1t6gvl0_MnYSl;iZt`0KyIizySSZ}H(EK%0s-HmT`$sh{8>BFrkn4P*R|#S zge8|cyCJlHfv2f!Vw+;CTh9f|dz*Vya`%OrmD_)(q@)E#9W#g-UUur<^Cu83C73N=d>l0K+N;gA!)Hx8$u*~4UQ z21!@j*QGI4Hd37g(%kE_wH{JL4*@mB+P7hdu~X$oLKw4h#C_;?5T^{(&o{N4jiW4) z2Td#XXNQ2=&xeG=LS1D*jOq~M-WSE}qgkkNFHJd_qoLPILIsP>Z+u)9}1Ag?% zkP))ZW^a!h>mH+F;8J11HW% z`w`=CLHAAwA=%Ghcculw`t%@AHg>5ccD3)c#)6+v&|>ck;?8yy!Gf+(KN zx9P$!zpa#d)pGo>t-G-%_+0Yzq`YMbr7j-7sF#as# zY+&IASO`tr0e`DRDNSwI5)W@C5o&o`=1@#%=t+ptmn}sl+NrfRY{I5HorwNJRhQJh z@|Oo!lQH#`t?C9R`4Puy49#FbiO+roLWQIoxY2to2bx38M6FLRpL{xTX7}+{YO<_3 z8TqxebB+WTM{$21)1gr;4r*nMw4Cp%K+lYdX*bnq@5+JPp`WBe?3ZtO@NfmQ8-s9k z^H$uulUX)4y&HFu5%FJdW%l<$m(RfyI;x>ElFAqxPIzJGL4)x!8NZLDi-jc++1|pQ_kJV-zt11F%cwJ;C6>roOUP?(k{U z(CE-2;Bc@yN;q`Wc4tF_(8OfKpX>t3w_ZO7P|Y($e0Sr$U=ibO8(zXU+Vhk>~g*c|i-2y7A8i$Yf9coyG*H z(by2a;shrRJUK_2uS^oAa0f)^p`q3$G)U1)*Vpjx^peI(E8D(1PHCdOV;uKnO08Bg z)T;<3^6)nB^wrTh0E(C^sLI~cB>=eCuEz9RS2)4Ns2HceQOH?p=Jy6($~9ugp8r$L z1WfoS7Y#0RG!ZbkDgA@VCGI4g%S?5dI{r0HdK201F2waNwAw?|nZxf0-I1Ra z-phdCMhyn_Pu6l>`lHlf1|$yW^=LFq^Uuc}JIK%N&#P8Wv)FZQ|^OE?Cicv7WF zG3&4eKSt+50p`?YOVf={%B34o#yD4jYi!5Me65d^)Zq1~Z=f`jg#^Kp&Vl5Oa$a_% zn`G!*)f>?(vUqP@$uY8UT37<>bNUul5b-NziMmC%-^FiN{&EE!$HtDn(E=Z`=>suS z!SNPEo&?_=vScIpHmjcYz20vgN4}??Lki|Cc|_x5AF5$7Pva4KR`_I!mL5MX?D-ka z0)%rB+@Hvia=5b})7ynlCBAJ&TOQ~q(TH|}FPpG1oN2Q_OFg3bp%XTNKVnwej){Vn z^B7iOf5zVMj$7Z;%{&Bx90`U0e)n_X#rMl_oBZ}~aLI^1b-M1Jl&huO=trm8YKUr2 z*=HLrBP~yRE~^zKn|YSCC!yxWF96xpUKJpE3e_6kNLWhWY2U^z1RDIQlVFYb-Jkg@ zh1HM?)pg7qB=4JW*|f|4mR^jLastAI6>u}&lZprP)xk&j<@7X%TpkcSU-Oczv9dZc zY0_Bv0rk$DG@#keMfkw6w!7(H#GR|6E0g$1Nk8tH`~i4Da0d_7!DpJXNq%%lnnM+hWD?Xw=Ut&K6E zbySnjSsIsqcC^#1a-Pe+y`RW{Bt@KjWyV>@hbuO*T6Q96Vg40Ioek<2bInpA*3YbP z73E}2%g;b9VOALV$CsdxR@QvH-J@l%+AZnh3O2#ihE{+Wm%%ug`^1j@d5I)^83xb% zWBU>^JP~5y590Rz8>Oog9Wwy)mkk?88Ylbw?Ni)&C(|gO{BeZ`@A;%f-9w8IQ`Wou zgdk*n;^7)%U{>#%u7=k?F6)-7LJ(Jin!4|lB=E(f$@E0U)S6iDw-ku>uVKs)PsjK@ zDei$P4acr23u*Ep_%2zV?Bvd2a!b~_`hLQGzxI!#-^YB2Kc{#GTtG@thRHC>CKAbh zAmcCN?1jp9ZPN>2a9c#y+pUETq3!X$7TK8{^UtPEjpy3*%@QHVr{zc`hLAWY#v<{N zQ)APzMuo%JxD2qiBsM5rGLPz3@A$kvJ?%a1id^}&oRdigM9MlE`Y6M_uFMNlya68r z8_l7PVin$HkEst)Mjbk#p5aOWoAlD}vH;VQ-80|XtC+GWJvu$#%fmx-=JpN8V`tlg8eX6nTo3^4z;evIfi#Yr>F)egS4Nu5t#%I-8`MLSYoyE z{0PH7C_ zVV<{k1y=flVGhQrxa=d~a_QgBg|cwUz}SH=%+|1CX(NI_GZ+%`w?md>sA5KayqcVm zptl7Z7u+$p89V9hB2rS$a0N7C!Zh+MCpHv;qX(V{EYup#jc5TKcq zc0!(UYUiEXWJiz@^P=<=NFw<|)~yO)DKjjO!UXn?i8a_nkwsQ^ZR{QfsC^JTcr~q}CAwvQ*;ChVkVSXAg!~ef)pBBc>z#V!}>mvsD4C-J3h)+JN zSq{{M_-xMmiD5d=`d)D^kDf78Zm2iijlN7BkCYsG7#z}?{Q35E{M_$^MfTU}BX2Rt zM-tvP@UMb~bN`~iG%nS5VSQd4qx+H4QUFjsP<}!9>XQ!S(96T?kj$nOSing?2WYdW z=!8tSp(ePANX26ittaib&A5y@GN_IR2xPngwBw-;YnwZMPx8n|4xV}UOwn?wimUv( zfC+dCuJS*_+_Weo#&l%rk7+7nKi--GI z<@P}h9I}gxe0t@#pf=-9<^H1j%&>Rd93UI+?<2OZ>|BIF+Mp{ki7#72XQVLxf$oe3JxFPV;fa zhfNmquI7rZ(O@-S@!N|gQVg|(GXgnZ4Hc444Pm`6XhiIVn014vaL@)KPYq5zXnlw1 za(HQ?i^?#>%HwpTK5JTym<*VoQi+FXX6Np!4g0ElXj$tS9!NJ1=OSos4_5QYpIPDVgLV;kP2s zP-it*-nAYrCCUQdfy}7PeiEf2eVXYDj&mKCNtHSS_KcRf%4lf>Tx~imlb77vQK0`S z2D4bv%FT1~RD~f25foMx-6qHtQmUU*)*!5yWeta&#ZA}idDNHul+zV;kNK-$%cUt4 z1N6W=^(0*vA|kzWAKn`87d$|d)v3`V5;SE|0w?l(0t1g6Xp|6g8;}?|^MxS&lOgi)@8zrzU0Yx>9( zM-UZ1NTO5uNg0!~@q34?akv-ie?}HCr>BLv;n&S_IfC$#5B@u7maOfbtxH@xlPY9; z8pG+B&c99)>qX~p$DI;o&H4=Hm$fsO?i!xHXU+IgLFI?r3zx5`8PK|Nj!x-?xq&}5 zeK6F&PZA40lStKx84_>rjZ;@5ke-VLxk@OGYk^PYoF!^S(eY8O=V?9;2TsJdECmttnmI!`2&m+LVAyQRZDC4_G~{4>w47T(Ht}BXaPtV154T(X7@}Y>8?V zXia7J($2~iSEu^h+0d?0#CNM-C;Nw^y(8nBR@WW4I_~R;5%-5e$h2yA#P=p_d6#z@n z?9PRN`eZ%xA6~ID)e{Xm*OY!?;Rz}~qOF;FjkpV(AK#Dnqs#r(js4rO=EKLLD^IKo zAgxBYz~*(9tm;gQWCQw-I{Ph$>8qvb4vos!i|6a(e7M4IKDlqZ|{2RiU|7G7Jet~%#S);nFyblGTMwEZlg#& zn1xEpb^T5D7(M}V`$TL#*|^DG8|3F>bc{DZ-|x$O?`ZfJx!Fm;UJk5FDY1HjR#2fI z`W{A%A1Zud5t#R6zG15HhOTJT}PT0+UJQjmF@ zR!yG!=0z4n!bUOpsco$0wX2tl5es>m^f|0m+rJw!>P2r>wW~HrK*6E&j8-{1A3zw2 z*RkWIS{1Hkz)2~+H>@2`%@V&iD}diRfj}gj9}o9O&bL>KmD!lIEKF-N7?`9w9GCx%gy_7DFnxgCB894+ zFfaS~NW4-Os4V}g`$PSmH_bBcHcZ~VT0S$LEyp@}sm!GL@II$fECPLXM6|Rf)$U!9 z*XdbnU0&?x_awXiTwDh-#pdE6Jb(3x2M#a=_VNu<2-??4FJ;7??V-w~a(vkd)Rh*n zKpsUsH6QR`?vodu9F|~jwZr*b8Kd94(hC}kv;d3#B}r82-B@`8u|X81+!w7>E`}=N zNBMm@iNmslc{=QkR&=>Bx?TVl7g0sX)|o|@dLq(w*$_>UqtP8?A46ON4efcc3!$XV z<|4Kdp84_C&rrTGg*1A6aCjSDQ=}rEOCoA|Mgj~Vy2pwtX$afr9kryxQ@wzOLYOc=SU_zNXRP< z6|fv2<&W4%IGbvqg)kw=K!ct(1ZCFs4Gb{6@T)z4S@tdV%J(Wwj13lP&4h%Dt5*XaV$r*YLj!!8OKD|n{>4h%!hWp zI?NMM((ugV<66661B!N2VDbLRQKQqaIc3`&JFqRC>Z03(x^g%MRHDB#;F(J%{?vyS zB^eZXsKkIP(wT7f6if;doNQTu`L*<0>8Ileze@oEj}E^r%CITRS5N&riVFi*16 zLVjfge6&5*(j~^A`Q4QHouYzpEPHC{5tHZIm1d+6Cp% zddoNYxS&-onC~Rmb3A9Y=1MVL9oF)cT)lp~n&`{v0G^jCLyNyu)tto|o12>)4aml@ z;Y^4*qX?*h9d|4<15ZwBA+49>UOzeoVJ`<=gjO-Y!rFd4T&^V{LjhU2z13(X<+mj6 zuGB20wei(n;E2Ec;4TzQ8cqfOjF7+S5`i?aV4+>t?}=fZT5oWf!|^V!b=uB4m2YL- z;4p*h)GjY~d@MQUh|qWF5=4A%L%JBpv3}8@8P~w=dFEbkuMA z=qtH_&d@UD3s$UdUe%_pGN`&~h-1n%pbzp1h0Kh`S%%z{LrLUvCz8KsnLj_+jfT5x z4K2}bBh}a1I)`A}EO@Fki?@?7FcnOXfnZCG_Tmx!%}*ButhNvaH!C4)ItLoV${)r){7kc-wXWxzUA-~T>o+A^^} z@A`I8dC~R?8JjzilAgl>y%4qc_Cm^G^MQQ#FAh)TUBS56d^iH;cpSjc&!|J-JCu(Y zP}gJf<#&0Mg!BS2Bzi)f-$*$DQ@2umkxeOtRPgYWQd&#E^Q5fC_9i|d$~sEhjQL5K z^^A;FXF_fkn|ScuJicUDJxOiP`_F?(W}|pzq5a)7bt+igK-ngv$(ZIx@?+UiD9p$n z;xyRv_+GkYCkD_b1xOBzV0!s7msWqiNhjvtfFP!Y$hb;AyMKB!%cLaI_OG#_@&em;V)0hu)4k`Z@A>#-xS9DG9|Bv~1bc&(AWan+Izm|p#ivMV8Wzh}wYW^XNh%-- zJS+zki4i3Q1JpbSNi6Z;dHb)FQp)<-+kvDVZe}FMODwI!QV&ht$1YbtNFP^63XPRx zu)TaKErmtS4Y1g+7<)_e4+hztXd%NFk(Sv}qyVLZO9?PPrDBiIa_XsK31GPdNo7-x z+em<9Lm53`O%T9Je$qG9>P&}W(36F-gNdbojHl-hg6Y84vM@`BL`P}Q&?aThXDErG zG%XWtz-N~FU*?FfENy2)APBmc$QbW2({@VwP&*R5M-fp5zcjhEQY@y zw;;2I%|KDKIC@|x?3t3~Aq8Dr})K{N7k^lZL? z#*)Lp2O-fqM9k3{oRUVfb%&s|7Z4*Wh=>U3W-3nr z+(Z*vAv`6gm&!jT^T9wUy=}AypDGM@*DR+EbtKJm>fLuEmvESF%K84xKt~WZ>(qS! zM%FA_jbITTNZ|RV#w-C2Pk@(P^(%FxaMS3R0vOgr)qG69MmkZO2!CIAfaPSsW^@6Z z;*x2X$^^}X9~mbg^}Pt>1@ECgsjAkzHM}jsIfr& z#6DCj_NdO>nweaoaNGtyz#@Hfh-rbP^ULkOr0D%39%pEg2WW|2qn>a2&aos|X;(DP zsHn#2R5iALIIKTyIBgs4sOUaPa_VLdpVJOE3qr!5o+geD#SE*AseSqiJbcXV{2nOJ*5=1J==hY2}x2mA26a&B2qZlHk*@jCB zDncbk6AT4;cTaXKk!1{zwm*1FcM#LD?N?#;jrGOi)K|;$g2QQQKp0FTQQ29xy98R< z27T2qZUw}rK14evp+?nA=-3Rqxj?<6<;)+PD5vOuv|wCWqedyS0;~D zMNQiCw4Pg{=w%=ok7cLkane!WE$eEdEw{fX&qaS;GF%Yf?7N5f@LyX*i@9GyQwYE$ zM3RLaS!pr<#Zt^N)E~@cn}H+^p*=xVaEKnP*aIt4uz+()%&}oIlogi}5NQ$v@^5le zZ}Pk6WFBEg%BM)c4i?EBORKy5frM7{5Vxpnjd|G7|2-Q!V{Rz{4TofX*dAU=T8K4A z6rxmME3>lWuFt)fs7cc+60;UYuPDzIHgUvr;rPwld;TdCGn02qUS|5V(>Au}DHeQO%i6rd&mcel~tV zrY*{DV1UfxA+25{MHDOjE82FD7=M#n)3EU`SytAo1Of9;2R8S2}qn zFP7%HL$IPX% z*q*vj53Fy}6s!+_W?Yc_!uGn+WI~c1&OT}i5uC?dPZW2A`&Hf)`q3(0NzlS;m#{SQ zP$x^rfzmpA)OumS0>O=838L+-J5g(C3eU61%KY;HJDim5MLfVSw}aXFC-SOeOItdv z)Vm{KtRAgv8nnw2rdt1qUFeAr8fJ%ja{HnL+185ezHg@861YnWyrrbx$OD=+3VQC; z48PKpT=AqpJ!R5i4+nF^iH%5Ntj8$UiTi(1M`Fp}GIgF<`0*{$s^ZSH39l3r()#27 z^uVO)t+sF|`&3sut!Lp05hmx+y#{vEOJ<6d6PproiBa zKsHv8!$q0!Jlqg}@;irw;ByI~v8e*@!h7O(+Ity^>9njE!abR(8_ONcD5cBy2}1Ku<&8n=W-~J` z4p!w`w^5oIIsW7Dq)8Ur$d%4c2>JuI12D$R?=;#|KW;>ok4)maUUD2*!-nUOIKgj~ z11Fh#;@&>7tRri1c^`zxn8vn)Q0vm*eJ_M{WR}iA;Ui_g!O9#lpwlxM;X5c>>!0&u zw!b!8|3>$^6Ny&l&y5Vr+X-PvskcClP90{M6ARb2L!c2#k$wi3_D3-UDDF-7Et<&v ztD8IDWU#K*-+<+H1>Hm|vPyw_(kk!9+KLvor82-huRLR?A>|)e1C4xGSEgNPIBtXo zi5PW55GOG+Ug@`hB5GQQ&))L@;iCl|hw&`z7u2WHW$uV9|IKnritR4txv-4glnP%? z$gAA*7n(1z#H-!In<}`kLNWhVC*2E~Bi3#eVw`qtMWUUoh{?)|wOG|HugDOgb(ypz!;Va)F^`oXgc+ z@Dn=A2ti1jal7}8%m3h=OFABj8FM6Dukm!UR-16GOupt4?>qnBQqZ#Z&!=!-0C@*} z2dyh$N*4lf{_?!=`2xx_78Y|84qPp!v&p*no5W2)#?uY!wsxVjNYu+5bZ~s!RG0gi zc72nd`4@{M7v2skqT{b3?-8$_!5=}i9G3QoURwf6^no-fYNHvn?e3`CC}4X&Z^l8?EN73v&>zr9Rb)24of;f%053kuqU6QdeU+!0@Cem%$q+*sn& zt9ws7$u%M*zrSw&7RPPBgbQxid^^I_nz4`Ld#);JZkkkI_k1Kf{M!Ey3Afz)QJDX) zr~g{_u>Q;XKi9F^gP;8$h5P^9KQ=}9BAhy^~MrdZsMk(m8a+jtKzP>t-|Haw)N zQvct*0w}z|j-tw!H-0wuR}l8sM15QNn@R;+{+le2_R~0rI0mx_u{I+!Qrx!}mB-jv zlH0FRTmxe+&mBgh8XkhG9JFOTz@=Qg#ay5TJe2t!gt;DsSv;5-yn@qMQ6?j<8-`R5 zmELVwW4LXXvVa9cg{iYxuTqQ?^JT8{sp2TXtj8r1k8e1lG#*2r$06FkdqpaDC|1Lh zC0*TZrIii56VQ4a7HvA=bq#o3m2Ee^+ecHS={#st;dx}WvSRKr;dwDBVN5E(9(rV zv+!!280g{gt8QBPKWMm)$9_BBV5NJ$8hSoVqlWlzuFpswqjnXC31yk*oeOafDB+f+ zA-rIZglJCdcWHJY^iD< zYi+Dt_JYUGL_}EI-RBaP2b@Y~$yRA~PXO1TCW(k1y<9z_fl% zaM(=q)4ujvp@=pd#F`(+Geu}zavY(c=$yasqA&gSOi2F`?YI_lTPrVINWcBlLZlJt zpbbj%$)*-Wq%z9pS>%MnrX!d%Q|^{t{uJYWey=oc&9~8E1{o)?a5Gi6%jC{q)HA2*i3_i_CNdNx-N9AoeoBbvig8+| z266<+e?hC#_~|AOmO-g>bdm>_N%b@#dX$~Y>@STHN?(StEH8|fyRD%9(eoBl#(mV* z4SNP2>Vu$g2TJqecmOoOy)qfnwB7~>_>U^AkQ*uMGv7C^BWeP#gQ`vEK)pq@+y||A z103Ga68xS2(_==Q^TDsTI zu#`{XgXx4Yo+>!}=nOvh$ec@|Sv<=A!l}j(XqjwW0!R|b*c#@+9VL+U;qKOCvlSB|itn&{vadn%AuJqKTLF19@q37)p?`C(q%pVC3V zJ&WwXg?U2f3t?{UOO#Nnh<#17rma-GeA3F08*6(?jwMrl0Cvf9VhA0wpX6*Uy@MKQ zMuBcZn!YeF*BAh=a8ae$6!T)^c)FpWeG(RY7K+#g2PhRM2JM1TYC+sWG!n!-p+7vP zuMBasqZZuXzyy>~lt2J!s2a;v*<|Iv&*OM+<3XTF#yaIEF zHzk%pkYB5Z4f9~a8!EWVU^RZnKa><%<%Ao_HmK_pQ%(#}`p%0v?WT-xG)(T61FBem zq3x3gXJs`E1xb|6^Em+T7DC-fDHwf zO*}jX)?avu@s-YAx(DUOl}bq{dssk?t)GfixBY!%_7ZA{s}oKYWC%~z6%19WUJm~t zK`hjsBN@8-_2Xv6-9@6df}Htcl^qcxXd87en2Ib=5AjS7n z$MXnHaiSiDnv`AhquM5thqSSldRkcQ5A=q!94RyqG2R5Aa6y&|B47G zUGZcx2&}fBEr;6~Q78kTOrLQjvkA`7ln{|$nJgbyCh2rfGee~8uyRfa@KyhbtgoU? zLN($EC_2n;Os~(?=)ekF>Co;ACkEP-y07ILaeTSc6Gd z$b!=x%bQdWzgEomkxKmH)YgRW0jtYtWlSCS10A8z-wa$5zb}8v-L78Vf6ufqOHXSO zDWnm;(UmufdCZxJohU|8(;A6ep>F}jB{E#sQCVAI+1)pp*N?S;A`RfH?L~^_*4l+w z(d%}9Ji+xZf%^A*$~V{WF$F?9iC;D1ax!5g-I1A`WjOXi)Tct2)UVNQlw1q9n-{S2 zk|d@AgaMRoN?NLatH!5`0jPA|gBGV~MfHJF(dWmF^tLpx`6puJd0$YM2McZBh7pA0 z3A$Xi*yUfz+K8i+JlKd@f1l_z(2b5~Z{rJDl|SJfHb-__ZH25W>i9AL7pq)D1+q`!Z-oA&TSmwlA#|jb)NxcspQQ5M=g{dHsPIIeV=xIsj@rXKO8{ zfEA(vthx{0I^ljYh{(ipmKV(dwvi6mYe!jd>(PeF-|b+R<@z)&tJ_!IZm-V+0=$-= zEn;1#NqtsuxrAlzOIY>2K~ zrMNQ74sJ`xL!oI#saTd2BT7>j zKWt7Lb~HfF9p0EQU(>#Fg1P=~oA{{y?%mLt$0%pBX6PHsMr7T1DzDMeqfh&)&o>mCLS68pd7@Ot}K zufYoDZTCMj4~KFCzBOI;DN+c9F=e&f%;?Cf?!X0-u};P;PZAyNvWl>J4^bUCSqDAh zodp5df}o!8Q-PJe^9sBG%C}AyEaVsEGu)0U*Lx*TE(U7+S1=H{u}KQ;fVGoipxWa4s!VbRm8sH8E`lITWb2^T{Sex;d*R`{T_68i<3)d9$QQUUU!#-|R6|#X z#4EvmLsUrH7o_T+5!RL-U{3;&7|^#7-X=yy3zgYqCc@W>{sRIvkDaq7Sik}r+(fcB z_wf^pU_%9{#+6nDwdAMbXWv`;1MpW4rjl@tkiSYUlxs~mo-ij=V(ooxhk)xC$B=Q} zr27uYign%d`axEr1ALPvMIK8`HC}=YcBqWM$AT3CE26U*y=;u$bxsi}Xm3~GQij!k z0u!RO3^FaJX-D+*>n-SC2zoakL^Bzw>aFm$$nn!+4ei35zakkyUOxWqK8eJwMu+0} z0N+_lYi9wZA3*CC`OdYBz0a3w-p%KMBp80mk0dG=0QgYMYA|$4m5e#B3am2k8HssV zg7z$q_~xTOa(fEKwfKn}S)v-T>3rna3c`c``NA=GbmBz}pQiB=bsNa(vs8>6^ymo7=Os~9j?q#qE zTfzGNArH#7a^=S+7)tD9I4plgGba*CH{FQLYoVK~F$GiWy;N00$=Bx{ey6`yHTiBh zSt(L|O$71z)};%QEj@DMi4(i8gTKR#`x6a*x}+$zqG$jG!`cegY0wHz=1QRJFR52* zf2>?gx&zQprRg)&L`5vDT@~#izVJ)HW63mkxdrF52x{H_Ojz1N{sS49TC}iqOr=^l+q+# z9@8abm^>$lNhYcjQjren>=Yb1iX+lVC+6SMvm?gEh*OlHF$cC?=9IoQpdAOeKeEry z@HYjOBM=lew!E$fvN+0~u8LixrY2xhH_e@Qd~eOHP8RS(s*1j$xLk|e6?vfo`oGdy zU`WNPYVo*SjodHOfqi|+5Jsuf5shaR;UDe)(iE3*7%6A38boJ4rR~~tJm;QdL@wK) z+c?NJp5zmaPd?1iN=yAGdFGQ$^B6pAjf8`bBv>#ZF-cE!cp%@sNFW6frTZir@;oK{ zBIf0X@1h~diX#-wKn+9=H4B5_!7w~x{%>gf^iEsKRYi{cP%N^ILH@}@nWGNJB+1N< z_&xphrAVxD#ekr>qTu0;Axx{T>v9L0^3RMiz4OK-ezi4K*Sdcve*wYB@{9~73mp9` znnagSDp1MQ+VaWU@-vChG2sDP8LOEN`sb9=U;$;VI&J7if_r@@8}A_$g<68>x9tS$ z;>HCL{DfW(FQ7X7fxPpnUr6Fq4o3B$HxILKcJy=#9HqXjl(?mvGv3M|(VZY|JVEJf zUGNKd>s~I855?yeNXr?7wx6`NZ%7%eZCpBUm|GnlUXfT_Uu`gdQV;30H-TMM~El_;Wx#;Pb}R){rh zjJx!#mtlM)APZio1s|se5Oh5yfwK@QMv_$@)7Q()1esOmfv+z!Q|~MPp`lcP8im0* z7V)*9LB7us4trcy>~Ef^ROt0B&-AcN4yy{8w8=W@ZABw;i%8H*n)%24B18HTDNh2S z;!Ui|Keq+H-doV5OBHPk%%MMD|2$iAcVtqV2l$e!YFoA#B}Yiaq2w@Ip~c87d+yv8 zbho&Iyfbk1(`Q2mB)X8R|0bJUIv;1uErR#O4KEK;q_xBTLi)ZDzJ23TXJHHYMZ?rr zLtpueg{K5f%7wFKkJ6)C@M5Ui1%gx1-a?3GwC|pbv(qM_0foH7_M5s4Z)~eMO`S{0 zPl$ZOQz2ARmq&m2$v|x4$a3upD_IrZYSK-(Nxo0_tZs-%l{HdrjpWGvU%-x$o-;e zB&avbOoFgLG0!vpcEDQATVkh6QcefR3Cx$yJ36;O%Dcuu-GJZ7;){&=eR}o%EPiD? zzm1Mu0kF(oK&(YhJzN@bXXV9KUc1_t#qW;ulSo(w;azQDy^{?WL0!K)>_p5?%Q%i| zWY73%`UeWJfki)6VOgPyu5TkcJS12pa^4ZufOpUX-GKGq0GdE$zp5i#kj2Q%odsBq z^fzC@Qp^T1jsVuT_+Pr}Tnx@n(qXX;Gwj>~aVn%~Aq<+6sBq*dJkr_fcJFsKySMl? z9;C^eLfw!Haz_!jnvUSS`4&?K)ypSE-_-(6Kz@&Ix#|j)o7a@0Qd1(*1wNdl8i-a; zBK0`5b>YYLqj<48vM}I&wugi(HcELKyBY2j-Krc0xE;lqXnoeKTOIT z3MG%@&nkMQ2EgAGO+xAQ7hR{|*zCoY-%J##E3FVOdD6u6~ww^Z(y%H3j}4mjKS zfEPq%nIl4Wsj7QdIR+rHDrYYJIZTt|Sem2d90v$ujp%oLg5Xl=T`IjxrFW_HE|uP; z(z{f8mrC#VqV!(=0iq3$5S>%aokh$2TXy4f)KaXnEz89~-KBQ7)b5tr-BP<-YIjTR zZmHcZwYzI}X>J5{@oQ7h1HS3UV;{|35R0=R9@~H?pnzZk=3g`uXuFi9BQtZr+n7QM z%_z^HE>bpI?Xz-QYAJ+*wm{U-?UlBx)`<;RP3*|yz|D61zwdd>*yF?rlMtN1bw5z>%%h)s1$TMRQ(^W*B6@WE8$MK9QlI(p)GY>+H zzK81<2C`qV6MY^R`T{Ily3beOJ}*~qVXL=T+tu81T}ZpEi`81%tSejBi`uKEi+nCy z^$F|i<@^7PynheS&_#IuO2zbK&C2-?GEIvR_VjxeA10cHW~Y2L$2(?w-;aQW<3 z)?6MfGk?}1mR_O0tipu;(nbDyv1QJkiBdcSL4FBc$T=cQ?kzkXRN{ML`A%WW+|e-Q zRds&F!j|n5%<7iXn5!NlbIt_ep3ZpbSdNcM&YhfsM~F5>^OiHt+TD3ZdP)Ip2|dNi z1x6f8V?V}-KVS$aKREYZwz9w&Qh4Tae)$6ySw0_w0&TQE6G5fG-Jz%cwFCm=ntoR! zlvXh#u4mPD9Z}EOlJEoG#-iG%syNz?Pc^bdKoNZHlXvBD<-Tge4dcLz8>&+c*NL45 zY#miyDY74IDvxLXfvjw&^*m~hgoft{#^#Ux9vRdkwL%yb=07iBbCNyx9uRwV? zwIW@@GcNZ5ADU9b&(8UWfB?gZI`Wn()SKJnKfTeEJ8dtz_4&+UbK{fLw(_FTpAZsA z#k~kNH(G2fXDKp`6Bvh{C$g>ZMXF!9x$&>Fyh?_C6c3$V+y5`n_|ndK0&6$J(gDWg zhjKqh>)1oP0+SO)Bcl$%faDQsfv|9OGUs`Zfgv!!2U(+L9?$#2Z{H4kju3p8kCn84 zXH@16Z#}3~Gh>7h9wVO&oU4nD4VfFH-TyIrhkKbj{dz82dgn5ibeOaV4 zZzm*_JSQI(5?5#cTu56zw;q_*yRRA5Y+_qDFR1muVW9r=f`(0%`j)kA@y$+Tl_CH+7U@+O2 zZsrAeh_#O^r%*c{Y1Z7`}IrKY_hS)B@4gl zdlR5_$Y;TAOYK4MF&p%E1rS_ z*G*tk9&rRx;GEp{CqaLTYX9)Y>;4!Zo>6ufifX@JUmWjxW%^vld_VH9$k>UkJAy?+ zr#z~6)a~=_P+07~1EGmd(6=x=mfWztslYf_FoGa->A-LpU)lSWx9A$>r{9O+5B|#{ z7b@61R4ZCt%UmU=&6^6ovs1BP2MT|Hs`$ITy<_igSJHR*EzhO%N1Mb2vYlW3)oKH^}1iUbUrKZP|fMeI5G3slv9dVHi%d*h?|6__D`itPf?cwN0J$!&kL%6 zba*#6^ihHhOHcnRQRW#-vY_Ulnvl@JvQ_YdibSAD0nOt-kC12w{$Sw6S<6(w#e1#7 zR4g|n5mEUy&RcBg5kAn7Dyx|z_Z5MRH8|0=lsT}2uP^bdfIs-Vz#?n{lh_(S_j$rA zFhajpI^%zyLiRA!YgENvVuxIYS_WBJ2YLPLAP25}1`kMdQNwD;SdiSH7IHq}1!^L< z3HQ+nEX4KdDct7bOCV#S3(KNN9N%h<8nJ}D$@+PaLK zK!DwfXQ6S}4SQC#eRkQZK_{YH1U!orQrJXip+WmOY=65w*#|Y@f5>Khs zZsK?GLmE^R!JgbYJ>Rvk3$h37VdhX?N2Gq52|9i@%1@Gr5jue)_p~9)_296hhQSS5 zkvh0c;WMmiz22A#Slc+j7aP-GulL>BeRC!8$iEzXIzK)CAR)~Ga)l|5Jq#h~4kN-!3uG`Ijw7|9jWWU06Up}AIv(0J&n9U4^%oG zR64iNAx4_hIdaRo!{?Acpw|@s;>vbZh~(t=%$gH=wFOcduUmv368jxeUP#fij+)!s z+b^xEQi{$Gr`{J0Y(#6LR&c%UaZ&h0vY;=+C8V_>(_V&CB0k2WL9#H6z&ZZF2mbm^ zNCD`$E*=Z2s_q1xRX{Wq>l-a3u)&y7Xe*Z>*Fh0G>%Y@~)|{ejmD{ zrI&P)XsRXO{pt8_Pvbk~1t8ztRC$?L`%CA-K*kEtrXsaZC2})uk<7VsLNu#w0&gsQ zF_|zpvB4N5R=tM0tdjmF?@3uNC@0V5$is0(fay_NW*e+>-Oau3vJ<$LE6_Y+yd`E< zvOb7or+Y)kv_+NpOA>rKux+O1d1pSkDwE7|24Bi71laXayzbPTU(S*k-!7I0ds!q< zGlRO_rE`5|H|a@$UD%v@{;fwDKZB7{74#&*m4gZZv5t`MoEemCW|LU7WKEQt*>Y_x zX>GheIGMRaI1nfCl52v|YM8K@urW=xC&fliF3&zL%$CMHqQ#ad_~S6Bx9|M8d(%># zdPD}Id3uJ@^{@cp8p>RJ5Uftr2?Lg|)x*PD?lu%Hc0tJ)r5G*6Xd#OLI)Ir$&T{3b zgEnzwIbF&zV6l3GVeyz0Poc25HsCMveURC%vu989 zo1KJr%JT=GqQCUky#If>3GZyaVEe*0`?NyjWWLVV8Dhy2)TF^jldXr^`hJ=+_UQa# zs)#)TO1EA#IuBzIj$Inr3u2t5+aIoM3jN1PTNaxSA}RDUR^5&!3b9GSgr$^#;qdYotAZ9h;N z@v7%s+Z~6h=mo>R7x4@xs|93D2csLuRtxYbMG`X3x)-PSkswwMK^lWDO)f@pVG zQK#pQc_Kt-QqB#GB8SdyB&9G?MO;8C+N!{ctLkRb{v#CWGRIEHC>tuzqP{RrJIB3u zEV%AOBm3f$g{g;fWLg-<1h>_QYMqk8Lr{d4h^0j0DqvWZ)1lQxF*WeTbe!sRZ0Ga5gK;*wSBpzUk;M1qt8?Bp7-;I{HJQkc!rPUirQmi+?iAc6NhC81 ztYOM@%P}0!VdH@wh5B@>!;CS^O-HjP%Z>Tu`DSyf&DfNwP)oNEaX=|mT{e&yg|QQX z;*yE!xvpf;@N~tn!un&ISO@LH)6?&`pBEPWZdG5|9Y3z6h4@eb8(SOi{p)7n`cCjU z@G&bxlKy;oZ14OnEo9m8uWgT>vpS;~%dfenMyH()A=4&fTup?mV+}hYF$gIPfOS7_ zV1MHSl3NU8anU@u_N?kq3_){_tb_CRso`E6ZNTQ)LhY+l7zlM;g$p~&Z6z6=2^ilu4Z&` zg%;oBe(_E2?XIO|h$&|E)UH^n2{=ak(QLhBg+77U?77@9c!ss4=dK1ZgF{16?A%MVMHg!A(htaJ32_QtqVI$}(B+e~B2 zI`OY>wn&bD4DX)QsVerrV9O2%tKcSKR@VEF5r3o$;c-qCvu!-0Ze^Z&c7p1&@Y-S- z(LI#<#~~N(u=@kcqkMEm@R`+i`(us5G$_+vfltMu{xQq9H~VMG1`*SiV9#oL!)yz6=68}!s{SUe=ijXQ>o88=ff!Z9)hRRU{NU?k5 z3sqTJ(%J%BGJ5Refd8HD>3QktkuA%Qhz}&OW=1oko}PaEy8DQvgR3nI2L}_*G>8Gm zFAA>;O<1e!Z|`AC2NJY&{2@z68nCo8iJ@h%(q`gN6~9i-_5cLXx%=khHaMq^^UJHV8#B2t*pfkd8JCsfP=qoM6XoU9AUYuVYu;0U)~v0yPC=o6=_^5PKu? zY=mGRAaOS0LDvO(?HBO6Pd&0Fj<>bqXoBJ0ko~Se@9qhWn`EMIk%xXwO7AoW{c&cX zAHJD+4UPQGqdRlLsc%s^`w@Gr!ujy- z!F`<~Ad}Ue{=BhL{WNx#GaF%KiA~tiGSZ80bT~Nin*$NPywS;xjmFfVY zARvYRG9L43(O`u`j$X!BpC)R1$o(Db&y&B^(kw&atf*cmgeJ2*sfo z{6gYW5W4fsYY?HTHcxTPBE1?Da{fO_*5`_>)x~KQo9{6lk9ez>s?|#aYR5$jrmDiK zc{}#uF02!{D5g;=rDBGFlx=NGj1fi;_6haWBDC=>_AiK*w%z2Ok1Q<2_z*4R{O5Yq z5jK>_L|m-I6N)uS`zba};9s`B`j6`{Cv~TpM3hN&K&144+>|5Mg2o<(24kHn>Q=*q zSdOa|_!STIA~%iVCuX)rSWR;jKE6v*nD!#n7jJMa!qL>W2W0{`S=lDP&N ze2UhHkCA!8C(}<3dddn(5)>C?nB|csK*?U!c(!$^KMWEjYKyP~&IM1B>G_Kn|2jQ;al*Ut zK}>qWi4qekjslNNM=13C{`$W_VY2fg@rs1LK>A#s6i=k*r-&6OOE6^Jh0k`0-VU{g zIqRcr4U*LaTdQ{Lm-47l7QQNuh`;5@s>YR&i_~ST4CF(yVR0m$2#a&XMGAkXdqRBX zf~>9Co#4t%>R4f|$x|&OzmxUrD9ZqRkLBg>wpg4a7N#7Nj&+xXB1o6Le#F#_k=hLZ z5iWp~;3$`3=%9dRWLO%WH3@i1LPDu}HGeS~RyoH9jUd68YkueIaf($-Z8FLdKf5Gf zoAtSEpGupdt-hLl1)WbXvF&NDhrRHs;|;X^zmz);3!gdnTCf@S@r@`gl-MF{7lrdD zmKrTdA~#?GUkqN4HbJo}JujNRYS=;ewm@dnkcl~uAO*01FE+YnN~D2CiUi~wKwenJ z7!;NUzUGZ490p$5-Q0T+3{5&W<7M7{!L=UActKoimU2zyEqoGk4R{JaF3!Vu5ERZ&lr5ODUi z1X{rEvM)PkKx=Tucqc{XXXh`6^y>SSUVW={er8JNY(ZNi^i)Oes*6wMz9PDhvykhc zL|7#aRPgWD7zQ1XeT^@CAnKuJfXrJVKXu22%e4-Is5$Qz@(K&Nb;2j^_>x#;3cz9GW6!d1Bu-6t#|8;SRS;z0od8{aT(aV+FM>j#z;j%VDk#z==r@PB__ z3Ubcp*DlQT)*5T+mrzlSmI2x7@zO+PD8Y7|&*0m*Vr^V|QGK7WbtTjwp^{5R(xTEh z=0<|C7!4t?k8d$o-}Qh$(;?r*!9A?0v>D0@z>ER~LmS%|<98^kZQKSR*ExBJ$}E_J zqHT+1caZL?+hePsUb;a#Pgca2lMMCJH>oiMmLQT1Nv zR5G-^tfN#TQ{n;e(A>J6dhNz<9dx#qCEW@{HI*)CK7yKv!~2W|y~->&&gy&dqC57R-H{)S=e3X{Z>jsRg}(kLS$I z^HP%4b|nrt!gF=I9-iqn_VR)VP-t z++o_xIpH4S)#l#SUTjx{jPKxTdl!Qyosxci$6T3gWb)KZ{5!m?;w%g$h+{?Vgh3?Q zIo&)2wRH0yBDOMXs?GlSw1@mf$DP@w!GCQ`!MpTb@7i-cWQ#e3LVr6$uNq-jH_Q&XPq@|L zx;XCZqMMRa0|I1+6+E_w{^%C_(K+&C`?!ytqdo@A$B|$@b|+S@;ndzxurzgO4>z&7 z6WjPMK2!(xpmz-g)*DVogY$e%ZR@}s=UutYTRF|!xXjx*%(3;~5<8(mpA7(jLrd*l z-EZ4C5`Pbn|A7w$nk;PRqus^Tzyg=nZMJvUZP4UyA8rq@Y$=JZj$}x3a>4HY@5h-T zhomH1lH>Set3I@8B$316%#brf{-$}lyg{`Ig6?e?qPez~donu+@Q2KIT9^sV52yXgMUg*vZ-W&kJyu>R!i zwz&NbIB3TOvh`v3Kb;{9RS<(4AEnRt94tf7Ay~^b`lAjAnf+urFTF@GVLIl+;U2yC zQ^05Y3nu&$Mn0?)7V;9GenCKDbZ;4yO65_k(9;~p*YzCJxqhs@zbYYNGz%wLH;lM< z&ZU?%gM1ozlP(3<5f1gYDiR~HJ-jTFQx$7AP|I|bY?;NZ`}gZeM# z(+JMWM*(k;H+>uN}6n` zQi=VF^t=FWt~!cyK`%Cm;4E5x-DB(jmTu`y}_ zK(%3UUre6eVQpSaihA}GB0e4=?V$j?$8YRO2c~(N4D$_0P8pA}m5+CJE1NEiQ3S3& z>5F$cL2^I}n*di|TmsIsV9gO-EV4!b*tD}mB+=V&g87gAz5PA)&3VZ;@c11K3|4&X z3?A<9*#m(;@WcKdeQ*9yzuY```&7{9d4P}1z-o|6G;}!7c~H+fCK6#{eF$S2mIqPX z?-WgCA(%R$(->YgALw?WA8@1A48m>~!}ziol~JxA*9fc2Nu1iUyiU2a z)S*g+AY2Ldc)c2=dwrS$6_nW$AZz@VDZJ#=M4dm-bQa#M-GPe{0%EFhHSx<6^N}d zV}(hQ26Up@ffuW$>zNBi*wrF<(e)W37QkiwE36s>ePIr9=hGam@!w&SHK6O>F5b|vk%eUTk-_gg#>_2@b4%#qh{Q3F*o;RT0>QmdYZ-QJHvyp%1ex)Q`fesW-we@L%2%dDXUR|%Mh zRQ@kazlww5cf&)G#>9dEstTF&t&Y*h!6{R%;%g$su)7BxVCfIs^6=3*gVkMot%PZ` z4w<%5Wpc| zyIx9;HePP{QdO}TT{~E}$aWJeodr`wg9A(^iMOXxXA^EyKp8fxYQ;qDqU=NrPcI^M`W-hKu&p zQsIrY1ls0rMu$#kPw=0im&M*QkQPI}uTG!Or(~>P-_MN;DWZ`<#(If5O7=ljwh-?I zuTI5pm(Jc4BcawrQ>x+B=^vm*dA&T3SubT%ODn}07u!HVgZmY-IV^yo5C5Zx@mnld z!^^T&n9V#6X09*C`zD8i@9XH`zG_UrZw+}zWC?V2bI*9K~N(LA+Ke+*zUhseUo zlGYc_Hh2@*d^{56J#lu8drbQK+d8KCyN@ibL>qhGYI%+*j%is&EjIeJeVPq1!xy8|2XJ=n>ony8Wsz&nEEOsk-&* z2^h*1Qke+&_i}1o5R9$i(!r5pf2ywzp9F%polC*?XDW~eSM`&7Z(_bW^Zz?bt@6ip zIB*AFVEsd@G%-|aPr{p9I+v;Xn>RN-@i`L8+v!Lad5Pl~vRC_M7U9)ky8^OuM%G@~ zkCbjl>-y0&uN>@_ZsLJg_;4GJZ=K_i7*Li^(%C2jD3sKc;^wrAD-$^gF4+PQ4TnAv zRV$NkdWoM?VRcy+Xuy+Ykba$@ddw4XkWWxVsTO(7LkjWeoqjURY2!uY3XvsO33lp0UZaXW1f1{;g__XxM4Hg0x7@EmCuf)Z7YC6;ktV zx}P2K_7NGdoF6)W6ph5z4qxRWI+RysBsT^tbDc{QN6`p`w{Twvf1^A~JQzZa>UXpU zy1?=5iO)#~tuS<^+|2w&klf7kN~h8p^T%sDQl&y!9Wk0^a9l@`+HnG97MC=0?m|C; zD2lU|e zaqAYhZgJ}tw{G!n6foL`$`p&TuS)_Vwwc$p!HqS@y4Hm=s>---B{<{eLrJv)NwpQ~ z8wn!qb_i(=`rW{*sjJ^rp`#XQzfrhoi8XRlp`w)pidGUPT4|7|Mu=#80z}VgGgcjJ zsI(|62{g1|&n?(OsLQ5?#7=G^mz@Oyeh{jUQm&W zm<g-U%R z2qzf`)5j;Y!{~8j}FT@sVL6>^oES;c)dN3Htj$drXHt zHCG3(4wuGN*eDXkX&-=+Y}Sk?@%XD4dGfE5W2vCg4795`r&Nf#d)z-c?jK9e8HY-c zG2R(|*=UcNTZOo$$J;HHLa4{E7gyp(q2-CtaV$xDakW!o<)C_j0=_X4~_&IR3u>`Y+<*Qx3%#dHeE*qmz@P+>0;a%`3Uhu$nt5G`G=t z_(lL-KtQ$#&*j`bUcG6!iCl89#dz2SjE9TMw@KiAoyM5NSRvNKoQ9Xce89@?o)~d+ z;PZG0TGlc6S8}ticL_reEc9oH`rrqn*$p_H9r8cZES^rGm`BEiL`*+b&Izf|s|}bK1m+#jCSF1~nMhJR zncYS5pE&Wu2&k(XWLKyhO+|-sq{mHh0*x40ql16xjeKPfTA?c&tqXrrB5!xINfyGM z8km-{K}j8pk}AcOGdT$s$N-&52r2{x%>pJBK~(Teh9eSHqdjv+(Xk;&YHLi&uk?O+yMC0Gosl zQprCk$|CJ6P|vp4fgDAPmX-&lsLoU#+*41AU5aX;e%GWH6@N3Q7}fKl*SOn=#@7f} zoBOJLU63k@uk;QPs6di%1<`DR$7Q>Yo_HUjPAT|kWwZhK8_2^o358Qh zm)!%So>PBb63ngjVzfHG3p4JmCw>Vh{@6==`dq4?e4H()1~az^pXd^qnZ|@X-{u*n z=J9+w1m2B80K3Y0+=f;P4z?*_NLdJ{(_oAjy91F|%mvDT?Acj%FI*7)Ui!srv!FV2eiQYLd7CkNh`aLDU4}BaHx|1K z2D?M{+I@i6IdG3cqx@AlIHV1M=a4u+K`(7>S7G>Z$ zWJQN>DUn||dzIV6kBXkN)bw$1cP+U$w8tb5I1omXN>_*VWiENeHcGfLM;@~{Vg5+M zNGj%3Rj&NH#P2dcO6eF>n^qpd^^7KXcJQBFxcD2gV#mS|zoxISZ?_ z3aXs@E&e*k*RSIvDm;gNB2RS4SHZp`YA-rK4M+0mm5-hb>^pW?O1_7bUh#N$E0Xh5Qg@nIDhHiA-O} z351z;6iPkS_{~@2tnz;9M?f%{Sh0w@8AX^O7mpP~KEHT(`N3nKK7Z_8^!uDGTzq%~ zOl!2%G3!)5XJtAo(^;9$%5+wyvof8P>8wm=WjZU+ zZI?-9l3zZN)hb(+l%%g|mZR*LnL+NPql>gW=H2s17V{b3>}X0VTw2rEdD>4JVc zcs6L;$xnIj6B13)5F6uvrs#)QDbLg+{6P&ra}igTt|_>r9}<+$#fUCWKKKJQaIDY2~fYeQ(A zBdz;#RbNL{_4U|lzV^U+ZR@>k+3V6;udP^U_i*@14Wu{OCO6sh&tpk!dIV`rdpL({ z7}d5%ag{;+-~i9oy6eK~ri*n?f1gfHn#yZs!WJ49nR(s=RrUK`Dk~B{P#TP*nbj}?BRm{)$4!4J-f0%ZmYF!6xeUa3xbXx zw;E;hV7Dt$a})b&2+4A0je#V&0c`i)p(MYC@fZ$X^j5)OVrd^V9yfPc=|tEW%s7bZSK3y}&&pPxRt zh;a?a{MRp_4L*JH?=bISOh9&UIaWN4K8yGB&%LuhXITeR>i*Q@k!?Nz6J6A1W0bhk zu|VC~B%nJp8o?t2i-9oAV^EIvh_i6Q))1$xU6V6m^m+M)j{LVU=V6zZ2ZA0f!-6h3 z(OZ$KMDS@{#&C*p?OL_;%juT4C9+cOx24za!RZxkLQG@iA%MCVzaX`j?A%Dn;e$qR zk5_dUt0@ChodG|)!>(T)oSJ@GL`_O2G|%`{45ZZ$(wiWKugIo1if!%#EU1B}TDOE4 z%`7(Lb3bB+~kE;L{)%0Z4(k72X8w zL?_FWbEl0hRj%~GS>Uft3RDA>cY$0TeG5j{Q8H;6VvmHNlBQ=&wlRcfMRd|LO46R8 zJXQnl;q!ka6ZZY-6C4kXX#!&crWEJUG3($zuQ9MZ;xJ(UGg{t$3qYoQKY8}o%Pg6v zBM<^ncn$m-&jmcxYO@ZG6dSw`vJ8|g+2X~OAHsNFwAw#(hsJ*uY;jLb@y*5gf8L#; zfHZdCBx|c**jqWT;toCM_Q{#->iIo`lU5Y?8>he$fMGH3n5{#Ds1Gfm!^NgZ*JItE z;qUKAtYna!Y8FT+#V4@H_yq24$!a+*SuNddwZLDS(gJa)s|Ne?wxj)RpQHVK+tL2( z;2O5W4Y$S(pJkda91(svXdOs&bvM}^5=)#Pg<~7lyZS5t4nL%xA4UD#S4CHc9MR`s zn%wMs>l_;VuF&AWr2Z)AlfKv}7<_%d8(_hM$#E4<<|&n9P`NIzKM+N}EXNn2U1bD7 z(C?qb7~MGpFuXB!Hw}27ypV(229$ITUy@}$ z&u4S;lwlNX?;yVg@>u&O)h+6eP|;#1=XalkLk|@tkDcF9EUvxL1*_OaqxXMQb`k6diXNwP~h|<>^`GRNRrRm*>&zpjC*;jTOE0~Hv+Q#IBWc-P$Ja387I&iqHJ=K zndH5T%g_e6T?5<3AaFQze3Du}19~+qvHd&VhB55IKY{%l-h+LRjIEo?{kNY%5Cs#A z&{;omK|5&Q{BPV;pcLyT{zyjG_T6I{@p`T8$Nm*;LO68R?ZNOIu0swKKS6ha{dW1e zZ{4^*0%BNWqlB;cZIs+vKlM7xfZptzN0D7yt492QqcUSStnFcGb&8B&H@sYL3XGNv z5uW=_6)L=eHRCC+8T^}^7&;+UPu zmbv2xpISCK#I41Fxt3gY<`^AIS9Uux8RqXX@^6&>XX`DD~h zNa}a&5Uam<>8L4`xcCy!W8Xu}dBzeanU}<+swu|GY25T|!hfh_XJ@3^aHTI%bLOuV zmIi76a!$D(4j-@2kf_tU&d1LTH(9L3C#<+K=-(KWI8<3k&bl0)q8U(mc$86b8>XLO zq6o~9?jQ1p9aKGGG?YSQ!~nB~6wdzx3sY<6cnSc3Lrd*l-EZ4A5dT+*JPd7NJLrJD zWGjZQUAF=SQp`d7I4ic22$LmGlACyc{djjIMaoh_$}(-I>{DY&{5;<0k9R(jWs;8P zHF2eOK0Ws=Sb^tW71#0HFR@q8ol36iduOEp@!T)TD&L(->EgNHPqs? zdryV(?YUQ>_Z%WyG9}jV%Otph=($VOV7;>kO&#~#HyKF2J5AFQ%7OiPs=0+pQ?_F^ zyJo>|?>N+iaH|RNUSw4rz-Ra|TL8qVzReofmsu$@u5@{eIEFB@`n?vb{Ugie#VKTkhL)m&`|hi!cTEVd9@eOU)1SRsG#D1e5j>N(!RDRTO;4I|I7| z$pKE61p?+vycZZP#+Y~mh=0N$>3~WwE6=UwrVCv7MCnShp*;jA$*;*J{DRv;QlD5A z@lEoe0_wz7mjXO3F#E)sk0EmTDZk~XCB2k>UBrmF1PS7+WNF_Wyv#+%a^(`0gzO$4 z?c0xpLfzn3$xCIb1awmg-7?rKr%HU&Klvfvhaqg?D#G71 zG&xtts;AvYH00p79IDD)0LBMkd;rFuI3M43gbzX2c=x9!((4T-IQu4bi55pbWJb^D z2^!kU!C5CIA@8S|$JtEdY#s|CD)6&F@JCe~HHeKMHo_@-7GlGr$gtGfTQhWT-GV>? zV@`qD1}?608kn*tUd;2X%+vVgh^~Om;MbYm2=(S9$V4`SfA?qyYO9w97PHJO*0W@|m#kvFRU(^=Vs81wT(gNeI>6uUX&T#``)2eUoY-&(aiGMInxLI*GOV?_VR6@&g^m7};`5GX%T{v(uc z3(B_lDVzWxJ2=apzaC=)8y$?OZ7+Ha4Hz91E;dSPqmo&mqZ4Y^-|}TECkz)>Q~(W8hWay66>_%CUjP_ExXv^d_BgZHd zw$tCQXFOupYs3I<@T2G(A2!DK7<>m}8&Koq0NpSk6dbR#OhN1(G; zQW=*enIov@Y1Wprnc!P9KrVcwE5OdmV0l}SH`>r8p1D#j3v6V)H`Fkzw}xVvu^xTr zx&*xz)xVB#>d68Q!OaGDPamVptd!|f#Pc}$CL*xHaxttK82Tb9S822KQEJf=_^3V+H>e zKJNmoC{1gga#r;8YN7f_Xz8elmB!M%COTSF@{3Hmkplh`802h3$L>Wg77|&R=5N@+9zBeZ!D?dUNNZ7_A7XPmS@=Op=zS^drhJmGr zm&{LS9{e*6?yqQq0ab|kLGOI$t~V-d)drG&X=#G+rj-EKY?|7T(N-3gO-#0?vMoT8 zh?UWL(vjBxAG2cxI2)9n}TB{!^_I{L)b)+qGJ~s#X8`0yPM!O^L1gEy)%rdDX0K zi`6$y92+B3J8QOl#>V3K8zF8s7MyF`U=n8vp*sR>?-a1TXT8gnqbpjn0(r!QRFypN zk+m?zKAduOl)71XlWUCH<=p{KL4#+X z!A=fF*rtC^XkbGTwo(~Q_K2e8p37HV6e?2f5>Z(yZRSg6)6`-sw4ss`L7J{cOTn1Q;aeC8s-FIpQ(D z!j;)K^?T!=Ca-_sQ~&wv)nqyUJ6XJ0m19J!q$>~g>9?H&hpbPJqZz-Wtq+yyPpC5e z7vXOnv@Cr~qdjWUPh+92qr@YlM7qZ(>>W1}s#v~2zp~_p<(YN~5xnbM@8?VtovI2K z5dH{XhqEn4#i8gc{+Eg>+niQF9G~@ZYC_qBsM|hvuSO;^WBmD;F zT&!E-zZ`u{7JJH_)DuyExSUDGra_Y-1Ic$#D!%lsoE4fvq<*cO$^xALi+LF)ZWLVgGb#@r}kqi=QaVO2R+kW3JL7)!**obha zN>if^dBoOP8kY^F`;JB}Zq%sZ%>Lq|x#WYH!I(!AZt`L&VohZn zxB8$@I;H#n*h(`chztOLLrd*lTW{Mq7Jd(q{~&Z1Xi_+CW(&+i-m*?yol}q?z?x>u zwr$(CZQFKr*|u%lwyiGPw(aTJnY*#EFBy>;|7&KXzH>@p>lb0!7SE@EF0-;B97%=} zufe!KcVD+85)y5sTaTneJ{W8>#~VEf&{g^B4~u*mmP#04cp5S;8c zb~GKG9zE7QTZ}p$xV#VeKpx@SFnmYTalJ>doYsUc7xPFk=Kw0-kf=)U0zp)a)WxJ1 z+_Ch7eTzx&X-`=Ki__7e{)JH1EszmhD^;sMzBnNewcOxLyIr|7EDskH?O;%&GzR@m-tAmcvbrK08iCKr4tIf{9 zq}wj0=Y`GiMOgDTm}0H&W<^*j2Aj?L!lFmB{T3mX-_0>{ciMs0-}8me!9DMxM2>BG z(`fvz0|YnAQW!#?d0tuD7g#QPnxx;5o<@ns$d55Gbl7GPE6#(Ky(?^ZJvxh#hivnC z-;fK^kTW6Nf4Z|H=!rWKXWk#?h)dwUPXm17np{7N$Sf@WQFh>XKJT%je2>80MKqISa48(L6P#z>IH0*L!|8HuDkXD z4B%47WNTNTcwx*5$v6(Vtjq5;C>Ge!aSfP+n5{(OS8=S|T4-y9u>*>D$5HeTP=5gA z-UdGidRXEonY-R($mq>na7W)ct9-#$F0pdNDWb!TPPJNqBO{U1w^As2T|5JA!2rWk z?0{`IlUu#|ByNTh1PPfG*Y&Useq@F>+@=XExjf-Mi|bOvwL3u;t3o%qR`9$*rrJ@U zChS->cshv_g5YL)76%WOA;kxSASjHO9wT+amvDvBCHn!iDv+_Ty z#>06a3lo_!h<^(JiB_F$M#*Q-uHaJe@lm4eYSS>K}9x8aP^~G1| z*v!AU^L_Or(*8gzZ?v|1hE@1WP#p+L*E76B1n2$FLnk(9CV7 zJnD#wzDN#j;+Swni2pC5G?&o?>uddOoa%#{&*pcea?n$;d(__W-wDz_@O=cA7(s&K zdo8w^rgA=}Je$A%RY=k9+iUu06En$KZt#J;Qzx^Y0#d;$8jQ5YLWp{DcV}Xi?6-H19DV;W<#{(bmMWuN z02%!SxGsO@dB-Xd9R}JlYc>D6bdGXVppQSP#OQ7)4_j%^BGUAjgP0jO{q4kWH-&ti zOADNU^2YrNKo3MEYZ#EipoOKf^w6~?bkVlB`y{9#9!>`-z#$;S3pJAR#bBN?gC|8r zC9C9w(Q25Q`qE{LCQvt!KjLRxX@@Y{Z&=(Eb`Csji-HJf(JeCG_POgm|NcIo{6vEr z$d_|imZ88om>H0t9PKu$JHq?Dpm*}}MwmhHkLK1HbLNTdDVP0i%afP?+1PiYD8F|W zONHm7N!z0aZ5zLYOZVp(ddb7r^Y-$`&)9(X;A#N<05ZmVRrWg?;=;Uh)(;#b|B4Cy zz^|{kQ5IVN{ekx@U>|QDpjRgOjua0a`+?BMKXHivyUz^>aRBMbwt3h?^@i8FoG-rr z9ZcEPBprw1_PMKYB$R6@e~>39|5Hdj7?>|Kw;H{HH8Xm+>MC0tfTHXFYqDs%0NEr_ zQ=dMapKVoK=x=C;(o>2I)8PME_hB$Z)HBEdM0`g{Lq)P9m>BV?Z89H=Ue7|GpP2?s z1bVesWlGulG6DIy<=KatgK`FdvbFOoU}z(Ua3aKPJwl-EyajVuQ^mamu=+ zBbqCA$CFOG!CF7HXn04{>tp~6JUT#f>Zl<7F?V1EV z&1a1^sO%fyfOvIrMqQ#Hq`ngT6Jq&17)MyGlvY7A0RXE z#*PaNY0w+ym;;2DP9eAkHP=Jv=Zx`f(xYL&ikDhH8d{EHDM62nfU?K;8F+6BBd3no ztSlF~Lh{B1Y}lGU7Z;OuLPP_^>S7z%IeecH?qzCyaQ?3Rx`D5(^JGVe9E%5OQuYt4 z8%M3aw^MDBIg5b{j?9Om{p22E<%vE8uagi-ig0p!0}sq!i)13oAp8hjU#1uVvA*

Etnr4OQFc$vMu5g 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

@Y-13$n)Co4e2I%{Ee{68^7jS| zmJYY!HYZJz1)(h}3zttU7`c~W+9Qa1fMat|(%tvngn#q}Y*lhRlIcB0%G&z9u5E9ZGQwC%cm`HDsP9|LMc z9>$V6Y~9-%s&rKO4T+rQ=%bciIvVMcO>Z|(x@E60TQ_Du=Ok zEuLMI`REtmSHPwA$S^-;vD<@WJe&=D?YD`z^k3WoF0co~VriyeF!#Wdwvl5>Ix@E5 z$T-L2{Fjm2N#(a7g;O~#CK_BPK@ipYKwkNB+o)yjbP$UYCHV=5S#rG&IC3F!ud*xmA9Q$O)YD=N)v`Ass@P&B$Af83U&r-+3JmXsU}kChg3 z53m)8w4;p%X)@h4r}kr7O7jpTWP9bICD5NhNN6g<=Rq?{br{d)7au&!P#9Xynxqya zSU)Epc;G-=fk1R%hRygdO_sZnbK!WJZkBnOy)v0xBGC_73bHajx^cc;qHe#}Ar+Rc zNi^z2c6H?o9>O}ozjMbZciQO>Jv=;Z4ct?fBTaGp3RuDw!fs%f;NQnYQhVxmLad0X z;jm@mrO5eg{}9*>u$V4s7ZOsF>jZl*uHW~b!MG)ElF+?F8te7PU^nmkkf{%tPdIvJ zS*JGoE;$FCvn5NAM;9LAaRO*SI3EZe!LnKiscbW7M^WSp&ntIBraWs33R+gtS-0lx zwR3fOby078b(S?CX4`Rn+$MMV>oPK-YvlF4{Pa4Z+aMk|IBO+pjjP!s%33{{V3&KA zJEGm4`{00@X#GuqB3}A^!rTJNLK(;mZJ9+PKj1D1cK*oo!WUeNLh6=3AxQ1d|JL$a zj~K{9u|~r_8<286c8Be!OR*JOboSHTd7prqV|Omyd?&Y8qq_+#%_lhZW4H{*R0Viy z4F=c~U@k&u9eF|GiXyxoV%W*|l7c=6npTpFrR8C%O(YxTUm3X5Q&Q!|eC=;K1#fc1 zFQfmpABtqjJyY_|^w0`h;+v9k_kwcw`3*_qg5m@;yly``TeSgu0EGYOQQ!q|XfqBP z!1RO^_67NlWS%W~rWrZ8qG&~1@)4*-^exC|G($_;gn?NA-~}{lCNiQ3i$!b#)J_m$ zLwL;AOpPL#LQb}E;^`f?2sFbuB9D%RXcRJSzCT^v7$lx NpQq3V$j!mO{syUe6MO&w literal 0 HcmV?d00001 diff --git a/test/PowerShellEditorServices.Test.Shared/PSHelp/README b/test/PowerShellEditorServices.Test.Shared/PSHelp/README new file mode 100644 index 000000000..57c3e6007 --- /dev/null +++ b/test/PowerShellEditorServices.Test.Shared/PSHelp/README @@ -0,0 +1 @@ +Windows PowerShell does not have updated help in CI by default and we utilize a private Azure Devops repo for builds that has no internet access. The completion tests validate the Windows Help so we update it offline from here so these tests can work.