From b7e34cd0dd8de31e1e63eeb88e9340d18fc2038d Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 10:44:48 +0000 Subject: [PATCH 01/11] feat: minimal OpenStudio/EnergyPlus simulation from SAM_UI (#229) Adds Simulate > OpenStudio Simulation. The open model is frozen to a snapshot JSON and SAM_OpenStudio's existing ToOpenStudio pipeline runs on the copy read back from it (in process; EnergyPlus runs out of process under SAM_OpenStudio's job object). Results are attached with SAM_OpenStudio's AddResults plus the model-level result, to a copy with every earlier result removed, and saved as _OpenStudio.json in a new run folder together with the OSM/OSW, run outputs, the weather used and an openstudio-run.json manifest (status, SHA-256 of snapshot and weather, CLI, error counts, diagnostics). The run is on a worker thread with the existing ProgressWindowHost for progress and cancel. The open model and the Tas workflow are not changed. Build: SAM.Analytical.UI.WPF references SAM_OpenStudio\build (OpenStudio.dll is IL-only, so no x64 platform change) and copies the x64 native files; CI clones and builds SAM_SQLite and SAM_OpenStudio (x64) before SAM_UI. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- .github/workflows/build.yml | 29 +- .../OpenStudioSimulationTests.cs | 245 ++++++++++++++ .../SAM.Analytical.UI.WPF.Tests.csproj | 8 + .../OpenStudio/OpenStudioSimulationRun.cs | 206 ++++++++++++ .../Modify/RunOpenStudioSimulation.cs | 298 ++++++++++++++++++ .../Modify/SimulateOpenStudio.cs | 179 +++++++++++ .../Query/OpenStudioSimulation.cs | 163 ++++++++++ .../SAM.Analytical.UI.WPF.csproj | 36 +++ .../Windows/AnalyticalWindow.xaml | 4 + .../Windows/AnalyticalWindow.xaml.cs | 45 +++ 10 files changed, 1208 insertions(+), 5 deletions(-) create mode 100644 WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs create mode 100644 WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs create mode 100644 WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs create mode 100644 WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs create mode 100644 WPF/SAM.Analytical.UI.WPF/Query/OpenStudioSimulation.cs diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c9f3144e..a751d2de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -108,6 +108,10 @@ jobs: # CS0234. Same slot as BuildAlls_v4.csproj uses locally. Needs only SAM and SAM_Mollier, # both already above. 'SAM_Validation' + # Simulate > OpenStudio Simulation (SAM_UI#229) references SAM_OpenStudio\build (its libraries need only SAM and + # SAM_SQLite; its benchmark needs SAM_Validation, above). Same order as SAM_Deploy's BuildAll. + 'SAM_SQLite' + 'SAM_OpenStudio' 'SAM_Tas' 'SAM_Excel' 'SAM_GEM' @@ -199,6 +203,8 @@ jobs: # CS0234. Same slot as BuildAlls_v4.csproj uses locally. Needs only SAM and SAM_Mollier, # both already above. 'SAM_Validation' + 'SAM_SQLite' + 'SAM_OpenStudio' 'SAM_Tas' 'SAM_Excel' 'SAM_GEM' @@ -207,7 +213,12 @@ jobs: $repo ) - # Convert build order -> solution paths (robust: first .sln in each folder) + # Platform overrides, only where a solution needs one: the OpenStudio package's targets refuse AnyCPU, so + # SAM_OpenStudio is built x64 (as in its own CI and SAM_Deploy); that build puts the native OpenStudio files in + # SAM_OpenStudio\build, where SAM.Analytical.UI.WPF picks them up. + $platformBySolution = @{ + 'SAM_OpenStudio' = 'x64' + } (robust: first .sln in each folder) $solutions = foreach ($r in $buildOrder) { $expected = Join-Path $r "$r.sln" if (Test-Path $expected) { @@ -220,15 +231,23 @@ jobs: $sln.FullName } + function Platform-Args([string]$sln) { + $name = Split-Path (Split-Path $sln -Parent) -Leaf + if ($platformBySolution.ContainsKey($name)) { return @("/p:Platform=$($platformBySolution[$name])") } + return @() + } + foreach ($sln in $solutions) { - Write-Host "==> Restore: $sln" - & msbuild $sln /t:Restore @common + $platformArgs = @(Platform-Args $sln) + Write-Host "==> Restore: $sln $platformArgs" + & msbuild $sln /t:Restore @common @platformArgs if ($LASTEXITCODE -ne 0) { throw "MSBuild restore failed: $sln" } } foreach ($sln in $solutions) { - Write-Host "==> Rebuild: $sln" - & msbuild $sln /t:Rebuild @common + $platformArgs = @(Platform-Args $sln) + Write-Host "==> Rebuild: $sln $platformArgs" + & msbuild $sln /t:Rebuild @common @platformArgs if ($LASTEXITCODE -ne 0) { throw "MSBuild rebuild failed: $sln" } } diff --git a/WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs b/WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs new file mode 100644 index 00000000..850e0dad --- /dev/null +++ b/WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs @@ -0,0 +1,245 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text.Json.Nodes; +using Xunit; +using Xunit.Abstractions; + +namespace SAM.Analytical.UI.WPF.Tests +{ + /// + /// Simulate > OpenStudio Simulation (SAM_UI#229). Everything except the last test runs without OpenStudio: the snapshot/copy + /// guarantee, the run folder and file names, the result model holding only this run's results, the manifest, and a failed run + /// leaving the open model as it was. The last test is the real run, and returns early on a machine without openstudio.exe. + /// + public class OpenStudioSimulationTests : IDisposable + { + private readonly ITestOutputHelper output; + private readonly string directory; + + public OpenStudioSimulationTests(ITestOutputHelper output) + { + this.output = output; + directory = Path.Combine(Path.GetTempPath(), "SAM-UI-229-tests", Guid.NewGuid().ToString("N")); + Directory.CreateDirectory(directory); + } + + public void Dispose() + { + try + { + Directory.Delete(directory, true); + } + catch (IOException) + { + } + catch (UnauthorizedAccessException) + { + } + } + + private static AnalyticalModel Model(bool withTasResult = false) + { + AnalyticalModel analyticalModel = new AnalyticalModel(Guid.NewGuid(), "Test model"); + Assert.True(analyticalModel.AddSpace(new Space("Room 1", new Geometry.Spatial.Point3D(1, 1, 1)))); + + if (withTasResult) + { + AnalyticalModelSimulationResult tasResult = new AnalyticalModelSimulationResult(analyticalModel.Name, AnalyticalModelSimulationResult.TasSource, analyticalModel.Guid.ToString("N")); + tasResult.SetValue(AnalyticalModelSimulationResultParameter.ConsumptionHeating, 1234.0); + Assert.True(analyticalModel.AddResult(tasResult)); + } + + return analyticalModel; + } + + [Fact] + public void Freeze_WritesTheSnapshot_AndReturnsAnIndependentCopyOfIt() + { + AnalyticalModel analyticalModel = Model(withTasResult: true); + string json_Before = Core.Convert.ToString(analyticalModel); + string path = Path.Combine(directory, OpenStudioSimulationRun.SnapshotFileName); + + AnalyticalModel frozen = analyticalModel.FreezeAnalyticalModel(path); + + Assert.NotNull(frozen); + Assert.True(File.Exists(path)); + Assert.NotSame(analyticalModel, frozen); + Assert.Equal(analyticalModel.Guid, frozen.Guid); + Assert.Equal(json_Before, Core.Convert.ToString(frozen)); + + //Changing the copy leaves the original alone. + frozen.Remove(frozen.GetResults()); + Assert.Empty(frozen.GetResults()); + Assert.Equal(json_Before, Core.Convert.ToString(analyticalModel)); + } + + [Fact] + public void AddOpenStudioResults_RemovesEveryEarlierResult_SoTheResultModelHoldsOnlyThisRunsResults() + { + AnalyticalModel frozen = Model(withTasResult: true); + Assert.Single(frozen.GetResults()); + + //No SQL: SAM_OpenStudio's AddResults attaches nothing, and no result set means no model-level result. What is left is + //the removal, which must hold whatever the run produced. + AnalyticalModel result = frozen.AddOpenStudioResults(Path.Combine(directory, "missing.sql"), null, out int removedCount, out int addedCount, out List _); + + Assert.Equal(1, removedCount); + Assert.Equal(0, addedCount); + Assert.Empty(result.GetResults()); + Assert.Empty(result.GetResults(AnalyticalModelSimulationResult.TasSource)); + } + + [Fact] + public void RunDirectory_IsUnderTheChosenFolder_NamedForTheModel_AndUniquePerRun() + { + DateTime startedUtc = new DateTime(2026, 10, 17, 9, 5, 7, DateTimeKind.Utc); + + string first = Query.OpenStudioRunDirectory(directory, "Block A: Level 1", startedUtc, "0123abcd"); + string second = Query.OpenStudioRunDirectory(directory, "Block A: Level 1", startedUtc, "89abcdef"); + + Assert.Equal(directory, Path.GetDirectoryName(first)); + Assert.Equal("Block_A__Level_1_OpenStudio_20261017-090507_0123abcd", Path.GetFileName(first)); + Assert.NotEqual(first, second); + Assert.Equal("Model_OpenStudio_20261017-090507_0123abcd", Path.GetFileName(Query.OpenStudioRunDirectory(directory, null, startedUtc, "0123abcd"))); + Assert.Equal("Block_A__Level_1_OpenStudio.json", Query.OpenStudioResultModelFileName("Block A: Level 1")); + Assert.Equal(64, Path.GetFileNameWithoutExtension(Query.OpenStudioResultModelFileName(new string('x', 200))).Length - "_OpenStudio".Length); + } + + [Fact] + public void Sha256_IsTheB1aNotationOfTheFileBytes() + { + string path = Path.Combine(directory, "abc.txt"); + File.WriteAllText(path, "abc"); + + Assert.Equal("sha256:ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad", Query.Sha256(path)); + Assert.Null(Query.Sha256(Path.Combine(directory, "none.txt"))); + } + + [Fact] + public void LoadFailure_IsRecognised_ThroughWrappers_AndOtherFailuresAreNot() + { + Assert.True(Query.IsOpenStudioLoadFailure(new DllNotFoundException("openstudio_csharp"))); + Assert.True(Query.IsOpenStudioLoadFailure(new TypeInitializationException("OpenStudio.OpenStudioUtilitiesCorePINVOKE", new DllNotFoundException("openstudiolib")))); + Assert.True(Query.IsOpenStudioLoadFailure(new FileNotFoundException("missing", "SAM.Analytical.OpenStudio, Version=1.0.0.0"))); + Assert.False(Query.IsOpenStudioLoadFailure(new FileNotFoundException("missing", @"C:\weather\city.epw"))); + Assert.False(Query.IsOpenStudioLoadFailure(new InvalidOperationException("model"))); + Assert.False(Query.IsOpenStudioLoadFailure(null)); + + Assert.Contains("openstudiolib.dll", Query.OpenStudioLoadFailure(new DllNotFoundException("openstudiolib"))); + } + + [Fact] + public void Manifest_WritesPathsInsideTheRunFolderRelatively_AndKeepsOthersAbsolute() + { + string runDirectory = Path.Combine(directory, "run1"); + string cliPath = Path.Combine(directory, "OpenStudio", "bin", "openstudio.exe"); + OpenStudioSimulationRun run = new OpenStudioSimulationRun() + { + Id = "0123abcd", + Status = OpenStudioSimulationStatus.Succeeded, + StartedUtc = new DateTime(2026, 10, 17, 9, 0, 0, DateTimeKind.Utc), + FinishedUtc = new DateTime(2026, 10, 17, 9, 1, 30, DateTimeKind.Utc), + Directory = runDirectory, + SnapshotPath = Path.Combine(runDirectory, OpenStudioSimulationRun.SnapshotFileName), + SnapshotSha256 = "sha256:00", + SqlPath = Path.Combine(runDirectory, "run", "eplusout.sql"), + CliPath = cliPath, + ResultCount = 7, + }; + + JsonObject jsonObject = JsonNode.Parse(run.ToJson()).AsObject(); + + Assert.Equal(OpenStudioSimulationRun.Schema, (string)jsonObject["schema"]); + Assert.Equal("Succeeded", (string)jsonObject["status"]); + Assert.Equal(90.0, (double)jsonObject["durationSeconds"]); + Assert.Equal("snapshot.json", (string)jsonObject["snapshot"]["path"]); + Assert.Equal("run/eplusout.sql", (string)jsonObject["outputs"]["sql"]); + Assert.Equal(cliPath, (string)jsonObject["engine"]["cliPath"]); + Assert.Equal("Native-OpenStudio", (string)jsonObject["engine"]["route"]); + Assert.Equal(7, (int)jsonObject["resultCount"]); + } + + [Fact] + public void Run_WithoutAModelOrAFolder_FailsWithoutThrowing() + { + OpenStudioSimulationRun run = Modify.RunOpenStudioSimulation(null, directory); + + Assert.Equal(OpenStudioSimulationStatus.Failed, run.Status); + Assert.Null(run.Directory); + Assert.NotEmpty(run.Diagnostics); + } + + /// + /// A model with no weather and no EPW: SAM_OpenStudio blocks the run (on a machine with the OpenStudio stack) or the stack + /// cannot load (on one without). Either way the run fails, records why, keeps its snapshot and manifest - and the open model is + /// exactly as it was. + /// + [Fact] + public void FailedRun_LeavesTheModelUnchanged_AndRecordsItself() + { + AnalyticalModel analyticalModel = Model(withTasResult: true); + string json_Before = Core.Convert.ToString(analyticalModel); + + OpenStudioSimulationRun run = analyticalModel.RunOpenStudioSimulation(directory, null, @"C:\models\source.json"); + + output.WriteLine(Query.OpenStudioSimulationSummary(run)); + + Assert.Equal(OpenStudioSimulationStatus.Failed, run.Status); + Assert.Null(run.ResultModelPath); + Assert.True(run.Exception != null || run.Diagnostics.Any(x => x.StartsWith("Error", StringComparison.Ordinal))); + Assert.Equal(json_Before, Core.Convert.ToString(analyticalModel)); + + Assert.True(File.Exists(run.SnapshotPath)); + Assert.StartsWith("sha256:", run.SnapshotSha256); + Assert.True(File.Exists(run.ManifestPath)); + JsonObject manifest = JsonNode.Parse(File.ReadAllText(run.ManifestPath)).AsObject(); + Assert.Equal("Failed", (string)manifest["status"]); + Assert.Equal(@"C:\models\source.json", (string)manifest["sourcePath"]); + Assert.Contains("failed", Query.OpenStudioSimulationSummary(run)); + } + + /// + /// The real run (gate G1's automated part): SAM_OpenStudio's two-cell fixture with its embedded weather, through openstudio.exe. + /// Returns early - and says so - where OpenStudio is not installed or the SAM_OpenStudio checkout is not beside SAM_UI; + /// SAM_OPENSTUDIO_UI_TEST_MODEL / SAM_OPENSTUDIO_UI_TEST_EPW override the model and add an explicit EPW. + /// + [Fact] + [Trait("Category", "Simulation")] + public void RealRun_SimulatesAFrozenCopy_AndSavesAResultModelWithOnlyOpenStudioResults() + { + string cliPath = Core.OpenStudio.Query.OpenStudioCliPath(null); + string modelPath = Environment.GetEnvironmentVariable("SAM_OPENSTUDIO_UI_TEST_MODEL") ?? Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, @"..\..\..\..\..\SAM_OpenStudio\tests\resources\models\rawModel-WindowsWeatherDataDDYAdiabaticAirPanel.sam")); + string epwPath = Environment.GetEnvironmentVariable("SAM_OPENSTUDIO_UI_TEST_EPW"); + if (cliPath == null || !File.Exists(modelPath)) + { + output.WriteLine(string.Format("NOT RUN: openstudio.exe {0}; model {1} {2}", cliPath ?? "not found", modelPath, File.Exists(modelPath) ? "found" : "not found")); + return; + } + + AnalyticalModel analyticalModel = Core.Convert.ToSAM(modelPath).First(); + string json_Before = Core.Convert.ToString(analyticalModel); + + OpenStudioSimulationRun run = analyticalModel.RunOpenStudioSimulation(directory, epwPath, modelPath); + + output.WriteLine(Query.OpenStudioSimulationSummary(run, int.MaxValue)); + output.WriteLine(run.ToJson()); + + Assert.Equal(OpenStudioSimulationStatus.Succeeded, run.Status); + Assert.Equal(0, run.FatalCount); + Assert.True(File.Exists(run.SqlPath)); + Assert.True(File.Exists(run.WeatherPath)); + Assert.Equal(json_Before, Core.Convert.ToString(analyticalModel)); + + AnalyticalModel result = Core.Convert.ToSAM(run.ResultModelPath).First(); + List results = result.GetResults(); + Assert.NotEmpty(results); + Assert.All(results, x => Assert.Equal(AnalyticalModelSimulationResult.OpenStudioSource, x.Source)); + Assert.Single(result.GetAnalyticalModelSimulationResults()); + } + } +} diff --git a/WPF/SAM.Analytical.UI.WPF.Tests/SAM.Analytical.UI.WPF.Tests.csproj b/WPF/SAM.Analytical.UI.WPF.Tests/SAM.Analytical.UI.WPF.Tests.csproj index 1e82b996..f01e3cfd 100644 --- a/WPF/SAM.Analytical.UI.WPF.Tests/SAM.Analytical.UI.WPF.Tests.csproj +++ b/WPF/SAM.Analytical.UI.WPF.Tests/SAM.Analytical.UI.WPF.Tests.csproj @@ -95,6 +95,14 @@ ..\..\..\SAM\build\SAM.Core.Optimisation.dll + + + ..\..\..\SAM_OpenStudio\build\SAM.Analytical.OpenStudio.dll + + + ..\..\..\SAM_OpenStudio\build\SAM.Core.OpenStudio.dll + diff --git a/WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs b/WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs new file mode 100644 index 00000000..8898aa23 --- /dev/null +++ b/WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs @@ -0,0 +1,206 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors + +using System; +using System.Collections.Generic; +using System.Text.Json; +using System.Text.Json.Nodes; + +namespace SAM.Analytical.UI.WPF +{ + /// How one Simulate > OpenStudio run ended. + public enum OpenStudioSimulationStatus + { + /// EnergyPlus ran, and its results were attached to the result model and saved. + Succeeded, + + /// The conversion, the run or reading the results failed; the diagnostics say where. + Failed, + + /// The user cancelled; the CLI/EnergyPlus process tree was terminated and no result model was saved. + Cancelled, + } + + /// + /// The record of one Simulate > OpenStudio run (SAM_UI#229): what was simulated, with which weather, where every output + /// is, and how it ended. It is written next to the outputs as , so a run folder explains + /// itself without SAM_UI open. + /// + /// It deliberately holds no OpenStudio type, so reading it never loads the OpenStudio bindings. It is a provenance record, + /// not a comparison: the snapshot and weather hashes are SHA-256 over the exact file bytes (the B1a sourceFileHash + /// sense); the canonical model hash and every Tas/OpenStudio comparison belong to SAM_Validation (SAM_UI#231). + /// + /// + public sealed class OpenStudioSimulationRun + { + /// Schema identifier written into the manifest. + public const string Schema = "sam-ui.openstudio-run/1"; + + /// The manifest's file name inside the run folder. + public const string ManifestFileName = "openstudio-run.json"; + + /// The frozen input model's file name inside the run folder. + public const string SnapshotFileName = "snapshot.json"; + + /// The copy of the weather file used by the run, inside the run folder. + public const string WeatherFileName = "weather.epw"; + + public string? Id { get; set; } + + public OpenStudioSimulationStatus Status { get; set; } = OpenStudioSimulationStatus.Failed; + + public DateTime StartedUtc { get; set; } + + public DateTime FinishedUtc { get; set; } + + /// The run folder: every file of this run is in it. + public string? Directory { get; set; } + + /// The open model's file, when it had one. Never written to by the run. + public string? SourcePath { get; set; } + + public string? ModelName { get; set; } + + public Guid ModelGuid { get; set; } + + public string? SnapshotPath { get; set; } + + public string? SnapshotSha256 { get; set; } + + /// "File" (chosen by the user), "Embedded" (the model's WeatherData) or "None". + public string? WeatherSource { get; set; } + + /// The copy of the EPW used, in the run folder; null when there was none. + public string? WeatherPath { get; set; } + + public string? WeatherSha256 { get; set; } + + /// The SAM.Analytical.OpenStudio build that converted the model (its InformationalVersion). + public string? SamOpenStudioVersion { get; set; } + + /// The openstudio.exe that ran the simulation; null when none was started. + public string? CliPath { get; set; } + + public string? OsmPath { get; set; } + + public string? OswPath { get; set; } + + public string? SqlPath { get; set; } + + public string? ErrorFilePath { get; set; } + + public int? ExitCode { get; set; } + + public int WarningCount { get; set; } + + public int SevereCount { get; set; } + + public int FatalCount { get; set; } + + /// The saved result model: the frozen copy carrying this run's OpenStudio results and no other results. + public string? ResultModelPath { get; set; } + + /// Number of results (model, space and surface) attached to the result model. + public int ResultCount { get; set; } + + /// Number of results the frozen copy already carried (e.g. from Tas) and the result model does not. + public int RemovedResultCount { get; set; } + + /// Conversion and run diagnostics from SAM_OpenStudio, one line each ("Severity Code: message"). + public List Diagnostics { get; } = new List(); + + /// Diagnostics of attaching the SQL results to SAM objects (unmatched zones, spaces without a result). + public List ResultDiagnostics { get; } = new List(); + + /// An unexpected failure, kept for the caller; only its text is written to the manifest. + public Exception? Exception { get; set; } + + public string? ManifestPath { get; set; } + + public JsonObject ToJsonObject() + { + JsonObject result = new JsonObject + { + ["schema"] = Schema, + ["id"] = Id, + ["status"] = Status.ToString(), + ["startedUtc"] = StartedUtc.ToString("o"), + ["finishedUtc"] = FinishedUtc.ToString("o"), + ["durationSeconds"] = System.Math.Round((FinishedUtc - StartedUtc).TotalSeconds, 3), + ["sourcePath"] = SourcePath, + ["model"] = new JsonObject + { + ["name"] = ModelName, + ["guid"] = ModelGuid.ToString("N"), + }, + ["snapshot"] = new JsonObject + { + ["path"] = RelativePath(SnapshotPath), + ["sha256"] = SnapshotSha256, + }, + ["weather"] = new JsonObject + { + ["source"] = WeatherSource, + ["path"] = RelativePath(WeatherPath), + ["sha256"] = WeatherSha256, + }, + ["engine"] = new JsonObject + { + ["route"] = "Native-OpenStudio", + ["samOpenStudioVersion"] = SamOpenStudioVersion, + ["cliPath"] = CliPath, + ["exitCode"] = ExitCode, + ["warningCount"] = WarningCount, + ["severeCount"] = SevereCount, + ["fatalCount"] = FatalCount, + }, + ["outputs"] = new JsonObject + { + ["osm"] = RelativePath(OsmPath), + ["osw"] = RelativePath(OswPath), + ["sql"] = RelativePath(SqlPath), + ["err"] = RelativePath(ErrorFilePath), + ["resultModel"] = RelativePath(ResultModelPath), + }, + ["resultCount"] = ResultCount, + ["removedResultCount"] = RemovedResultCount, + ["diagnostics"] = ToJsonArray(Diagnostics), + ["resultDiagnostics"] = ToJsonArray(ResultDiagnostics), + ["error"] = Exception == null ? null : Exception.GetType().Name + ": " + Exception.Message, + }; + + return result; + } + + public string ToJson() + { + return ToJsonObject().ToJsonString(new JsonSerializerOptions { WriteIndented = true }); + } + + /// + /// Paths inside the run folder are written relative to it, so a copied or archived run folder stays self-consistent; + /// anything outside it (the CLI, say) stays absolute. + /// + private string? RelativePath(string? path) + { + if (string.IsNullOrWhiteSpace(path) || string.IsNullOrWhiteSpace(Directory)) + { + return path; + } + + string relativePath = System.IO.Path.GetRelativePath(Directory!, path!); + return relativePath.StartsWith("..", StringComparison.Ordinal) || System.IO.Path.IsPathRooted(relativePath) ? path : relativePath.Replace('\\', '/'); + } + + private static JsonArray ToJsonArray(IEnumerable values) + { + JsonArray result = new JsonArray(); + foreach (string value in values) + { + result.Add(value); + } + + return result; + } + } +} diff --git a/WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs b/WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs new file mode 100644 index 00000000..739b3499 --- /dev/null +++ b/WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs @@ -0,0 +1,298 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors + +using SAM.Analytical.OpenStudio; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Threading; + +namespace SAM.Analytical.UI.WPF +{ + public static partial class Modify + { + /// + /// Runs an annual OpenStudio/EnergyPlus simulation of through SAM_OpenStudio's own pipeline + /// (ToOpenStudio: conversion, OSM/OSW, the openstudio.exe CLI, SQL results), into a new run folder under + /// (SAM_UI#229). + /// + /// The model given is never changed. It is frozen first to , and + /// everything after works on the copy read back from that file - so the input of the run is exactly the snapshot's bytes, and + /// edits made to the open model while the run is going cannot reach it. + /// + /// + /// On success the copy, with every result it already carried removed (Tas results, say) and this run's OpenStudio results + /// attached, is saved as the result model (). The results are attached by + /// SAM_OpenStudio's AddResults - the route its AddResultsBySQL component uses - plus the model-level + /// AnalyticalModelSimulationResult; nothing is extracted or mapped here. + /// + /// + /// Never throws for a failed run: the outcome, the diagnostics and any exception are on the returned record, which is also + /// written to the run folder as . Safe to call off the UI thread. + /// + /// + /// The model to simulate; read only. + /// The folder the run folder is created in. + /// An EPW chosen by the user; null to use the model's embedded WeatherData (SAM_OpenStudio's own precedence). + /// The open model's file, recorded for provenance only. + /// SAM_OpenStudio's stage progress (saving, CLI, reading results). + /// Cancels the run; the CLI/EnergyPlus process tree is killed. + public static OpenStudioSimulationRun RunOpenStudioSimulation(this AnalyticalModel analyticalModel, string directory, string? epwPath = null, string? sourcePath = null, IProgress? progress = null, CancellationToken cancellationToken = default) + { + OpenStudioSimulationRun result = new OpenStudioSimulationRun() + { + Id = Guid.NewGuid().ToString("N").Substring(0, 8), + StartedUtc = DateTime.UtcNow, + SourcePath = sourcePath, + ModelName = analyticalModel?.Name, + ModelGuid = analyticalModel?.Guid ?? Guid.Empty, + }; + + if (analyticalModel == null || string.IsNullOrWhiteSpace(directory)) + { + result.Diagnostics.Add("Error: no model or no output folder was given; nothing was run"); + result.FinishedUtc = DateTime.UtcNow; + return result; + } + + result.Directory = Query.OpenStudioRunDirectory(directory, analyticalModel.Name, result.StartedUtc, result.Id!); + + try + { + System.IO.Directory.CreateDirectory(result.Directory); + + result.SnapshotPath = Path.Combine(result.Directory, OpenStudioSimulationRun.SnapshotFileName); + AnalyticalModel? analyticalModel_Frozen = FreezeAnalyticalModel(analyticalModel, result.SnapshotPath); + if (analyticalModel_Frozen == null) + { + result.Diagnostics.Add("Error: the model could not be written to and read back from the snapshot file; nothing was run"); + return result; + } + + result.SnapshotSha256 = Query.Sha256(result.SnapshotPath); + + cancellationToken.ThrowIfCancellationRequested(); + + RunOpenStudioSimulation_Run(result, analyticalModel_Frozen, epwPath, progress, cancellationToken); + } + catch (OperationCanceledException) when (cancellationToken.IsCancellationRequested) + { + result.Status = OpenStudioSimulationStatus.Cancelled; + } + catch (Exception exception) + { + result.Status = OpenStudioSimulationStatus.Failed; + result.Exception = exception; + } + finally + { + result.FinishedUtc = DateTime.UtcNow; + WriteManifest(result); + } + + return result; + } + + /// + /// Writes to and returns the model read back from that file: an + /// independent copy whose content is exactly the file's. Null when either step fails. + /// + public static AnalyticalModel? FreezeAnalyticalModel(this AnalyticalModel analyticalModel, string path) + { + if (analyticalModel == null || string.IsNullOrWhiteSpace(path)) + { + return null; + } + + if (!Core.Convert.ToFile(analyticalModel, path)) + { + return null; + } + + return Core.Convert.ToSAM(path)?.FirstOrDefault(); + } + + /// + /// The result model of a successful run: with every result it carried removed, then this + /// run's results attached from (SAM_OpenStudio AddResults) and the model-level result from + /// . Removing first keeps the file unambiguous: every result in it is OpenStudio's, + /// from this run. + /// + public static AnalyticalModel AddOpenStudioResults(this AnalyticalModel analyticalModel_Frozen, string sqlPath, OpenStudioSimulationResultSet? openStudioSimulationResultSet, out int removedCount, out int addedCount, out List diagnostics) + { + removedCount = 0; + addedCount = 0; + + List? results_Existing = analyticalModel_Frozen.GetResults(); + if (results_Existing != null && results_Existing.Count != 0) + { + removedCount = analyticalModel_Frozen.Remove(results_Existing)?.Count ?? 0; + } + + AdjacencyCluster adjacencyCluster = analyticalModel_Frozen.AdjacencyCluster ?? new AdjacencyCluster(); + + List? results_Added = adjacencyCluster.AddResults(sqlPath, out diagnostics); + addedCount = results_Added?.Count ?? 0; + + AnalyticalModel result = new AnalyticalModel(analyticalModel_Frozen, adjacencyCluster); + + AnalyticalModelSimulationResult? analyticalModelSimulationResult = openStudioSimulationResultSet?.ToSAM(result); + if (analyticalModelSimulationResult != null && result.AddResult(analyticalModelSimulationResult)) + { + addedCount++; + } + + return result; + } + + // Its own method, never inlined: every OpenStudio type is reached here, so a missing SAM_OpenStudio or OpenStudio assembly fails + // this method's compilation inside the caller's try, and is recorded on the run like any other failure. + [MethodImpl(MethodImplOptions.NoInlining)] + private static void RunOpenStudioSimulation_Run(OpenStudioSimulationRun openStudioSimulationRun, AnalyticalModel analyticalModel_Frozen, string? epwPath, IProgress? progress, CancellationToken cancellationToken) + { + openStudioSimulationRun.SamOpenStudioVersion = typeof(OpenStudioConversionResult).Assembly.GetCustomAttribute()?.InformationalVersion ?? typeof(OpenStudioConversionResult).Assembly.GetName().Version?.ToString(); + + //The weather the converter will use, by its own precedence: the user's EPW, else the model's embedded WeatherData. The user's + //path is passed on as given (null for embedded), so the conversion is exactly SAM_OpenStudio's; the resolved file is only + //copied into the run folder, so the run keeps its weather when the original or the temporary export is gone. + string? epwPath_User = !string.IsNullOrWhiteSpace(epwPath) && File.Exists(epwPath) ? epwPath : null; + string? epwPath_Effective = epwPath_User ?? analyticalModel_Frozen.EmbeddedAnnualWeatherPath(); + openStudioSimulationRun.WeatherSource = epwPath_User != null ? "File" : epwPath_Effective != null ? "Embedded" : "None"; + if (epwPath_Effective != null) + { + openStudioSimulationRun.WeatherPath = Path.Combine(openStudioSimulationRun.Directory!, OpenStudioSimulationRun.WeatherFileName); + File.Copy(epwPath_Effective, openStudioSimulationRun.WeatherPath, true); + openStudioSimulationRun.WeatherSha256 = Query.Sha256(openStudioSimulationRun.WeatherPath); + } + + Core.OpenStudio.OpenStudioRunOptions openStudioRunOptions = new Core.OpenStudio.OpenStudioRunOptions() + { + //The run folder is already this run's own, so the OSM, OSW and run\ go straight into it. + UseUniqueRunDirectory = false, + }; + + OpenStudioProgress progress_Run = new OpenStudioProgress(openStudioSimulationRun, progress); + + using OpenStudioConversionResult openStudioConversionResult = analyticalModel_Frozen.ToOpenStudio(epwPath_User, openStudioSimulationRun.Directory, null, openStudioRunOptions, true, progress_Run, cancellationToken); + + if (openStudioConversionResult == null) + { + openStudioSimulationRun.Diagnostics.Add("Error: SAM_OpenStudio returned no conversion result"); + return; + } + + foreach (Core.OpenStudio.OpenStudioDiagnostic openStudioDiagnostic in openStudioConversionResult.Diagnostics) + { + if (openStudioDiagnostic != null) + { + openStudioSimulationRun.Diagnostics.Add(string.Format("{0} {1}: {2}", openStudioDiagnostic.Severity, openStudioDiagnostic.Code, openStudioDiagnostic.Message)); + } + } + + openStudioSimulationRun.OsmPath = openStudioConversionResult.OsmPath; + openStudioSimulationRun.OswPath = openStudioConversionResult.OswPath; + + Core.OpenStudio.OpenStudioRunResult? openStudioRunResult = openStudioConversionResult.RunResult; + if (openStudioRunResult != null) + { + openStudioSimulationRun.ExitCode = openStudioRunResult.ExitCode; + openStudioSimulationRun.SqlPath = File.Exists(openStudioRunResult.SqlPath) ? openStudioRunResult.SqlPath : null; + openStudioSimulationRun.ErrorFilePath = File.Exists(openStudioRunResult.ErrorFilePath) ? openStudioRunResult.ErrorFilePath : null; + openStudioSimulationRun.SevereCount = openStudioRunResult.SevereErrors?.Count ?? 0; + openStudioSimulationRun.FatalCount = openStudioRunResult.FatalErrors?.Count ?? 0; + } + + OpenStudioSimulationResultSet? openStudioSimulationResultSet = openStudioConversionResult.Results; + if (openStudioSimulationResultSet != null) + { + openStudioSimulationRun.WarningCount = openStudioSimulationResultSet.WarningCount; + openStudioSimulationRun.SevereCount = openStudioSimulationResultSet.SevereCount; + openStudioSimulationRun.FatalCount = openStudioSimulationResultSet.FatalCount; + } + + //SAM_OpenStudio reports a cancel as a warning, not as an exception; the token is the authority. + if (cancellationToken.IsCancellationRequested) + { + openStudioSimulationRun.Status = OpenStudioSimulationStatus.Cancelled; + return; + } + + if (openStudioRunResult == null || !openStudioRunResult.Success || openStudioSimulationRun.SqlPath == null) + { + openStudioSimulationRun.Status = OpenStudioSimulationStatus.Failed; + return; + } + + progress?.Report(new Core.OpenStudio.OpenStudioSimulationProgress(Core.OpenStudio.OpenStudioSimulationStage.ReadingResults, "Attaching the results to the result model")); + + AnalyticalModel analyticalModel_Result = analyticalModel_Frozen.AddOpenStudioResults(openStudioSimulationRun.SqlPath, openStudioSimulationResultSet, out int removedCount, out int addedCount, out List diagnostics); + openStudioSimulationRun.RemovedResultCount = removedCount; + openStudioSimulationRun.ResultCount = addedCount; + if (diagnostics != null) + { + openStudioSimulationRun.ResultDiagnostics.AddRange(diagnostics); + } + + string resultModelPath = Path.Combine(openStudioSimulationRun.Directory!, Query.OpenStudioResultModelFileName(analyticalModel_Frozen.Name)); + if (!Core.Convert.ToFile(analyticalModel_Result, resultModelPath)) + { + openStudioSimulationRun.Diagnostics.Add("Error: the result model could not be saved to " + resultModelPath); + openStudioSimulationRun.Status = OpenStudioSimulationStatus.Failed; + return; + } + + openStudioSimulationRun.ResultModelPath = resultModelPath; + openStudioSimulationRun.Status = OpenStudioSimulationStatus.Succeeded; + } + + private static void WriteManifest(OpenStudioSimulationRun openStudioSimulationRun) + { + if (string.IsNullOrWhiteSpace(openStudioSimulationRun?.Directory) || !System.IO.Directory.Exists(openStudioSimulationRun!.Directory)) + { + return; + } + + string path = Path.Combine(openStudioSimulationRun.Directory!, OpenStudioSimulationRun.ManifestFileName); + try + { + File.WriteAllText(path, openStudioSimulationRun.ToJson()); + openStudioSimulationRun.ManifestPath = path; + } + catch (Exception exception) when (exception is IOException || exception is UnauthorizedAccessException) + { + openStudioSimulationRun.Diagnostics.Add("Warning: the run manifest could not be written: " + exception.Message); + } + } + + /// Passes SAM_OpenStudio's stage reports on, noting which openstudio.exe ran (the CLI stage's message is its path). + private sealed class OpenStudioProgress : IProgress + { + private readonly OpenStudioSimulationRun openStudioSimulationRun; + private readonly IProgress? progress; + + public OpenStudioProgress(OpenStudioSimulationRun openStudioSimulationRun, IProgress? progress) + { + this.openStudioSimulationRun = openStudioSimulationRun; + this.progress = progress; + } + + public void Report(Core.OpenStudio.OpenStudioSimulationProgress value) + { + if (value == null) + { + return; + } + + if (value.Stage == Core.OpenStudio.OpenStudioSimulationStage.RunningCli) + { + openStudioSimulationRun.CliPath = value.Message; + } + + progress?.Report(value); + } + } + } +} diff --git a/WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs b/WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs new file mode 100644 index 00000000..0c3b477f --- /dev/null +++ b/WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs @@ -0,0 +1,179 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors + +using SAM.Core.Windows.WPF; +using SAM.Weather; +using System; +using System.IO; +using System.Threading; +using System.Threading.Tasks; +using System.Windows; + +namespace SAM.Analytical.UI.WPF +{ + public static partial class Modify + { + /// + /// Simulate > OpenStudio (SAM_UI#229): asks for the output folder and the weather, then runs + /// + /// on a worker thread, with a progress window whose Cancel kills the OpenStudio/EnergyPlus process tree. + /// + /// The UI is not blocked while the run goes, and the open model is never changed: the run works on a frozen copy and + /// saves its own result model in its own run folder. The Tas workflow is not touched. Null when the user cancelled a dialog + /// before the run started. + /// + /// + public static async Task SimulateOpenStudioAsync(this UIAnalyticalModel uIAnalyticalModel, System.Windows.Window? owner = null) + { + //The getter returns a deep clone, so later edits of the open model cannot reach this one. + AnalyticalModel? analyticalModel = uIAnalyticalModel?.JSAMObject; + if (analyticalModel == null) + { + return null; + } + + string? path = uIAnalyticalModel!.Path; + + string? directory = null; + using (System.Windows.Forms.FolderBrowserDialog folderBrowserDialog = new() + { + Description = "Select the folder for the OpenStudio run (a new run folder is created in it)", + UseDescriptionForTitle = true, + SelectedPath = (string.IsNullOrWhiteSpace(path) ? null : Path.GetDirectoryName(path)) ?? Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), + }) + { + if (folderBrowserDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK || string.IsNullOrWhiteSpace(folderBrowserDialog.SelectedPath)) + { + return null; + } + + directory = folderBrowserDialog.SelectedPath; + } + + //SAM_OpenStudio's precedence: an EPW chosen here, else the model's embedded WeatherData. + string? epwPath = null; + bool embeddedWeather = analyticalModel.TryGetValue(AnalyticalModelParameter.WeatherData, out WeatherData? weatherData) && weatherData != null; + if (embeddedWeather) + { + MessageBoxResult messageBoxResult = ShowOpenStudioMessage(owner, "Use the model's weather data for the OpenStudio run?\n\nYes: the model's weather data.\nNo: choose an EPW file.", MessageBoxButton.YesNoCancel, MessageBoxImage.Question); + if (messageBoxResult == MessageBoxResult.Cancel) + { + return null; + } + + embeddedWeather = messageBoxResult == MessageBoxResult.Yes; + } + + if (!embeddedWeather) + { + Microsoft.Win32.OpenFileDialog openFileDialog = new Microsoft.Win32.OpenFileDialog() + { + Title = "Select the EPW weather file for the OpenStudio run", + Filter = "epw files (*.epw)|*.epw|All files (*.*)|*.*", + }; + + bool? dialogResult = owner == null ? openFileDialog.ShowDialog() : openFileDialog.ShowDialog(owner); + if (dialogResult != true || string.IsNullOrWhiteSpace(openFileDialog.FileName)) + { + return null; + } + + epwPath = openFileDialog.FileName; + } + + string directory_Run = directory; + + OpenStudioSimulationRun openStudioSimulationRun; + using (CancellationTokenSource cancellationTokenSource = new CancellationTokenSource()) + { + //The same host the Tas workflow uses: the dialog lives on its own thread, so Cancel always answers. + ProgressWindowHost progressWindowHost = new ProgressWindowHost("OpenStudio Simulation", 5, true, "Cancel stops the OpenStudio/EnergyPlus run. The open model is not changed."); + try + { + progressWindowHost.CancelRequested += (s, e) => cancellationTokenSource.Cancel(); + progressWindowHost.Update("Freezing and converting the model", false); + + OpenStudioProgressReport progress = new OpenStudioProgressReport(progressWindowHost); + CancellationToken cancellationToken = cancellationTokenSource.Token; + + openStudioSimulationRun = await Task.Run(() => analyticalModel.RunOpenStudioSimulation(directory_Run, epwPath, path, progress, cancellationToken)); + } + finally + { + progressWindowHost.Dispose(); + } + } + + ShowOpenStudioSimulationRun(openStudioSimulationRun, owner); + + return openStudioSimulationRun; + } + + private static void ShowOpenStudioSimulationRun(OpenStudioSimulationRun openStudioSimulationRun, System.Windows.Window? owner) + { + string text = Query.OpenStudioSimulationSummary(openStudioSimulationRun); + + if (openStudioSimulationRun.Exception != null && Query.IsOpenStudioLoadFailure(openStudioSimulationRun.Exception)) + { + text = Query.OpenStudioLoadFailure(openStudioSimulationRun.Exception) + Environment.NewLine + Environment.NewLine + text; + } + + MessageBoxImage messageBoxImage = openStudioSimulationRun.Status switch + { + OpenStudioSimulationStatus.Succeeded => MessageBoxImage.Information, + OpenStudioSimulationStatus.Cancelled => MessageBoxImage.Warning, + _ => MessageBoxImage.Error, + }; + + bool directoryExists = !string.IsNullOrWhiteSpace(openStudioSimulationRun.Directory) && Directory.Exists(openStudioSimulationRun.Directory); + if (!directoryExists) + { + ShowOpenStudioMessage(owner, text, MessageBoxButton.OK, messageBoxImage); + return; + } + + if (ShowOpenStudioMessage(owner, text + Environment.NewLine + Environment.NewLine + "Open the run folder?", MessageBoxButton.YesNo, messageBoxImage) == MessageBoxResult.Yes) + { + System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(openStudioSimulationRun.Directory!) { UseShellExecute = true }); + } + } + + private static MessageBoxResult ShowOpenStudioMessage(System.Windows.Window? owner, string text, MessageBoxButton messageBoxButton, MessageBoxImage messageBoxImage) + { + //The window may have been closed while the run went on; a message box cannot be owned by a closed window. + return owner != null && owner.IsLoaded + ? MessageBox.Show(owner, text, "OpenStudio Simulation", messageBoxButton, messageBoxImage) + : MessageBox.Show(text, "OpenStudio Simulation", messageBoxButton, messageBoxImage); + } + + /// SAM_OpenStudio's stages as progress-window steps. ProgressWindowHost marshals onto its own thread, so any thread may report. + private sealed class OpenStudioProgressReport : IProgress + { + private readonly ProgressWindowHost progressWindowHost; + + public OpenStudioProgressReport(ProgressWindowHost progressWindowHost) + { + this.progressWindowHost = progressWindowHost; + } + + public void Report(Core.OpenStudio.OpenStudioSimulationProgress value) + { + if (value == null) + { + return; + } + + string description = value.Stage switch + { + Core.OpenStudio.OpenStudioSimulationStage.SavingOsm => "Saving the OpenStudio model (OSM)", + Core.OpenStudio.OpenStudioSimulationStage.WritingOsw => "Writing the OpenStudio workflow (OSW)", + Core.OpenStudio.OpenStudioSimulationStage.RunningCli => "Running OpenStudio/EnergyPlus", + Core.OpenStudio.OpenStudioSimulationStage.ReadingResults => "Reading the results", + _ => "Finishing", + }; + + progressWindowHost.Update(description); + } + } + } +} diff --git a/WPF/SAM.Analytical.UI.WPF/Query/OpenStudioSimulation.cs b/WPF/SAM.Analytical.UI.WPF/Query/OpenStudioSimulation.cs new file mode 100644 index 00000000..085defb8 --- /dev/null +++ b/WPF/SAM.Analytical.UI.WPF/Query/OpenStudioSimulation.cs @@ -0,0 +1,163 @@ +// SPDX-License-Identifier: LGPL-3.0-or-later +// Copyright (c) 2020-2026 Michal Dengusiak & Jakub Ziolkowski and contributors + +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography; + +namespace SAM.Analytical.UI.WPF +{ + public static partial class Query + { + /// + /// The folder of one Simulate > OpenStudio run: <directory>\<model>_OpenStudio_<yyyyMMdd-HHmmss>_<id>. The + /// timestamp makes runs sort in order and the id makes two runs started in the same second distinct, so a run never + /// writes into another run's folder. + /// + public static string OpenStudioRunDirectory(string directory, string? modelName, DateTime startedUtc, string id) + { + return Path.Combine(directory, string.Format("{0}_OpenStudio_{1:yyyyMMdd-HHmmss}_{2}", FileNameSafe(modelName), startedUtc, id)); + } + + /// The result model's file name: the model name with an _OpenStudio suffix, so it is never mistaken for the source model. + public static string OpenStudioResultModelFileName(string? modelName) + { + return FileNameSafe(modelName) + "_OpenStudio.json"; + } + + /// "sha256:" and the lowercase hex SHA-256 of the file's bytes (the B1a hash notation); null when there is no file. + public static string? Sha256(string? path) + { + if (string.IsNullOrWhiteSpace(path) || !File.Exists(path)) + { + return null; + } + + using FileStream fileStream = File.OpenRead(path!); + return "sha256:" + System.Convert.ToHexString(SHA256.HashData(fileStream)).ToLowerInvariant(); + } + + /// + /// True when (or an inner one) means the OpenStudio stack could not be loaded: a missing or + /// stale SAM_OpenStudio assembly, OpenStudio.dll, or one of the x64 native libraries (openstudiolib.dll, openstudio_*csharp.dll, + /// SQLite.Interop.dll) next to the application. That is a deployment problem, not a problem with the model. + /// + public static bool IsOpenStudioLoadFailure(Exception? exception) + { + for (Exception? current = exception; current != null; current = current.InnerException) + { + if (current is DllNotFoundException || current is EntryPointNotFoundException || current is BadImageFormatException || current is TypeLoadException || current is MissingMemberException || current is FileLoadException) + { + return true; + } + + if (current is FileNotFoundException fileNotFoundException && IsAssemblyName(fileNotFoundException.FileName)) + { + return true; + } + } + + return false; + } + + /// What to tell the user about an OpenStudio load failure. It references no OpenStudio type, so it works when those cannot be loaded. + public static string OpenStudioLoadFailure(Exception? exception) + { + List lines = new List + { + "Simulate > OpenStudio could not load the OpenStudio components. It needs SAM.Analytical.OpenStudio.dll, SAM.Core.OpenStudio.dll, SAM.Geometry.OpenStudio.dll, OpenStudio.dll and the 64-bit native openstudiolib.dll, openstudio_csharp.dll, openstudio_model_csharp.dll and openstudio_translators_csharp.dll beside the application (from the SAM_OpenStudio x64 build). This is a deployment problem, not a problem with the model; the open model was not changed.", + string.Empty, + "Error: " + Innermost(exception), + "Application folder: " + AppContext.BaseDirectory, + }; + + return string.Join(Environment.NewLine, lines); + } + + /// + /// The user-facing account of one Simulate > OpenStudio run: how it ended, where its outputs are, the EnergyPlus error counts + /// and the first diagnostics that matter (errors before warnings). Engine results are reported as they are; nothing here + /// compares them with Tas. + /// + public static string OpenStudioSimulationSummary(OpenStudioSimulationRun? openStudioSimulationRun, int maxDiagnostics = 8) + { + if (openStudioSimulationRun == null) + { + return "The OpenStudio simulation did not run."; + } + + List lines = new List(); + + switch (openStudioSimulationRun.Status) + { + case OpenStudioSimulationStatus.Succeeded: + lines.Add("The OpenStudio/EnergyPlus simulation finished. The open model was not changed."); + break; + case OpenStudioSimulationStatus.Cancelled: + lines.Add("The OpenStudio simulation was cancelled. No result model was saved and the open model was not changed."); + break; + default: + lines.Add("The OpenStudio simulation failed. No result model was saved and the open model was not changed."); + break; + } + + lines.Add(string.Empty); + + if (!string.IsNullOrWhiteSpace(openStudioSimulationRun.Directory)) + { + lines.Add("Run folder: " + openStudioSimulationRun.Directory); + } + + if (!string.IsNullOrWhiteSpace(openStudioSimulationRun.ResultModelPath)) + { + lines.Add(string.Format("Result model: {0} ({1} results)", Path.GetFileName(openStudioSimulationRun.ResultModelPath), openStudioSimulationRun.ResultCount)); + } + + if (!string.IsNullOrWhiteSpace(openStudioSimulationRun.WeatherSource)) + { + lines.Add("Weather: " + openStudioSimulationRun.WeatherSource); + } + + if (openStudioSimulationRun.ExitCode != null) + { + lines.Add(string.Format("EnergyPlus: exit code {0}, {1} warnings, {2} severe, {3} fatal", openStudioSimulationRun.ExitCode, openStudioSimulationRun.WarningCount, openStudioSimulationRun.SevereCount, openStudioSimulationRun.FatalCount)); + } + + if (openStudioSimulationRun.Exception != null) + { + lines.Add("Error: " + openStudioSimulationRun.Exception.GetType().Name + ": " + openStudioSimulationRun.Exception.Message); + } + + List diagnostics = openStudioSimulationRun.Diagnostics.Where(x => x.StartsWith("Error", StringComparison.Ordinal)) + .Concat(openStudioSimulationRun.Diagnostics.Where(x => x.StartsWith("Warning", StringComparison.Ordinal))) + .ToList(); + + if (diagnostics.Count != 0) + { + lines.Add(string.Empty); + lines.Add("Diagnostics:"); + lines.AddRange(diagnostics.Take(maxDiagnostics).Select(x => "- " + x)); + if (diagnostics.Count > maxDiagnostics) + { + lines.Add(string.Format("- ... and {0} more (see {1})", diagnostics.Count - maxDiagnostics, OpenStudioSimulationRun.ManifestFileName)); + } + } + + return string.Join(Environment.NewLine, lines); + } + + private static string FileNameSafe(string? name) + { + string result = string.IsNullOrWhiteSpace(name) ? "Model" : name!.Trim(); + + //Windows' invalid characters whatever the platform, so a run folder copied to Windows keeps its name. + HashSet invalidChars = new HashSet(Path.GetInvalidFileNameChars().Concat("<>:\"/\\|?*")); + result = new string(result.Select(x => invalidChars.Contains(x) || char.IsWhiteSpace(x) || char.IsControl(x) ? '_' : x).ToArray()); + + //Long names would push run outputs (run\eplusout.sql and the EnergyPlus files) towards MAX_PATH. + return result.Length > 64 ? result.Substring(0, 64) : result; + } + } +} diff --git a/WPF/SAM.Analytical.UI.WPF/SAM.Analytical.UI.WPF.csproj b/WPF/SAM.Analytical.UI.WPF/SAM.Analytical.UI.WPF.csproj index 39501e4c..b91acc6d 100644 --- a/WPF/SAM.Analytical.UI.WPF/SAM.Analytical.UI.WPF.csproj +++ b/WPF/SAM.Analytical.UI.WPF/SAM.Analytical.UI.WPF.csproj @@ -167,7 +167,43 @@ ..\..\..\SAM_Tas\build\SAM.Weather.Tas.dll + + + ..\..\..\SAM_OpenStudio\build\OpenStudio.dll + + + ..\..\..\SAM_OpenStudio\build\SAM.Analytical.OpenStudio.dll + + + ..\..\..\SAM_OpenStudio\build\SAM.Core.OpenStudio.dll + + + ..\..\..\SAM_OpenStudio\build\SAM.Geometry.OpenStudio.dll + + + + + $(MSBuildThisFileDirectory)..\..\..\SAM_OpenStudio\build\ + + + + + + + + + + + + 2.27.0 diff --git a/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml b/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml index c10a0988..c76e55c4 100644 --- a/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml +++ b/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml @@ -500,6 +500,10 @@ + + diff --git a/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml.cs b/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml.cs index 486ac670..61ca8094 100644 --- a/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml.cs +++ b/WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml.cs @@ -57,6 +57,12 @@ public partial class AnalyticalWindow : System.Windows.Window /// /// private readonly PartORun partORun = new(); + + /// + /// True while a Simulate > OpenStudio run is going. The run works on a frozen copy and does not block the window, so this is + /// what keeps a second click from starting a second run; leaves the button off while it is set. + /// + private bool openStudioSimulationRunning; public AnalyticalWindow() { @@ -703,6 +709,11 @@ private void InitializeWindow() RibbonButton_EnergySimulation.LargeImageSource = SAM.Core.UI.WPF.Convert.ToBitmapSource(Properties.Resources.SAM_UI_ModelRun); RibbonButton_EnergySimulation.Click += RibbonButton_EnergySimulation_Click; + RibbonButton_OpenStudioSimulation.LargeImageSource = SAM.Core.UI.WPF.Convert.ToBitmapSource(Properties.Resources.SAM_UI_ModelRun); + RibbonButton_OpenStudioSimulation.Click += RibbonButton_OpenStudioSimulation_Click; + RibbonButton_OpenStudioSimulation.ToolTipTitle = "OpenStudio Simulation"; + RibbonButton_OpenStudioSimulation.ToolTipDescription = "Run an annual OpenStudio/EnergyPlus simulation of a frozen copy of the open model (SAM_OpenStudio). The results are saved as a separate model in a new run folder; the open model and the Tas workflow are not changed. Needs OpenStudio 3.10 (openstudio.exe) installed."; + RibbonButton_Optimisation.LargeImageSource = SAM.Core.UI.WPF.Convert.ToBitmapSource(Properties.Resources.SAM_UI_AlgorithmRun); RibbonButton_Optimisation.Click += RibbonButton_Optimisation_Click; RibbonButton_Optimisation.ToolTipTitle = "Optimisation"; @@ -2271,6 +2282,37 @@ private void RibbonButton_EnergySimulation_Click(object sender, RoutedEventArgs RefreshPartOButtons(); } + private async void RibbonButton_OpenStudioSimulation_Click(object sender, RoutedEventArgs e) + { + if (openStudioSimulationRunning || uIAnalyticalModel == null) + { + return; + } + + openStudioSimulationRunning = true; + RibbonButton_OpenStudioSimulation.IsEnabled = false; + try + { + await SimulateOpenStudio(); + } + //A missing or stale SAM_OpenStudio assembly fails when SimulateOpenStudio is compiled; say what is missing instead of crashing. + catch (Exception exception) when (Query.IsOpenStudioLoadFailure(exception)) + { + MessageBox.Show(this, Query.OpenStudioLoadFailure(exception), "OpenStudio Simulation", MessageBoxButton.OK, MessageBoxImage.Error); + } + finally + { + openStudioSimulationRunning = false; + RibbonButton_OpenStudioSimulation.IsEnabled = uIAnalyticalModel != null; + } + } + + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] + private System.Threading.Tasks.Task SimulateOpenStudio() + { + return uIAnalyticalModel!.SimulateOpenStudioAsync(this); + } + private void RibbonButton_Optimisation_Click(object sender, RoutedEventArgs e) { //A missing SAM.Analytical.Tas.GenOpt.dll or a stale SAM.Math.dll fails when the window's types are first @@ -3202,6 +3244,7 @@ private void SetEnabled() RibbonButton_OpenT3D.IsEnabled = false; RibbonButton_EditLibrary.IsEnabled = false; RibbonButton_EnergySimulation.IsEnabled = false; + RibbonButton_OpenStudioSimulation.IsEnabled = false; RibbonButton_SolarSimulation.IsEnabled = false; RibbonButton_ImportWeatherData.IsEnabled = false; RibbonButton_EditWeatherData.IsEnabled = false; @@ -3221,6 +3264,7 @@ private void SetEnabled() //RibbonButton_CreateTBD.IsEnabled = false; RibbonButton_EditLibrary.IsEnabled = false; RibbonButton_EnergySimulation.IsEnabled = false; + RibbonButton_OpenStudioSimulation.IsEnabled = false; RibbonButton_SolarSimulation.IsEnabled = false; RibbonButton_ImportWeatherData.IsEnabled = false; RibbonButton_EditWeatherData.IsEnabled = false; @@ -3279,6 +3323,7 @@ private void SetEnabled() RibbonButton_MapInternalConditions.IsEnabled = true; RibbonButton_MapInternalConditionsByTM59.IsEnabled = true; RibbonButton_EnergySimulation.IsEnabled = true; + RibbonButton_OpenStudioSimulation.IsEnabled = !openStudioSimulationRunning; RibbonButton_SolarSimulation.IsEnabled = true; RibbonButton_ImportWeatherData.IsEnabled = true; RibbonButton_EditWeatherData.IsEnabled = true; From 2b140f3fe957c718dcb183a76421670e7f2623d7 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 10:45:33 +0000 Subject: [PATCH 02/11] docs: PR record for SAM_UI#229 OpenStudio simulation Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- documentation/OpenStudio-Simulation-PR229.md | 114 +++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 documentation/OpenStudio-Simulation-PR229.md diff --git a/documentation/OpenStudio-Simulation-PR229.md b/documentation/OpenStudio-Simulation-PR229.md new file mode 100644 index 00000000..ee6c7d5c --- /dev/null +++ b/documentation/OpenStudio-Simulation-PR229.md @@ -0,0 +1,114 @@ +# Simulate > OpenStudio Simulation - minimal OpenStudio/EnergyPlus run from SAM_UI (SAM_UI#229) + +Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; owner review and gate G1 manual validation required. Not merged. +Issue: SAM-BIM/SAM_UI#229 (parent SAM-BIM/SAM_UI#227, tracker SAM-BIM/SAM#206). +Base: `sow/2026-Q4` at `ebe5e09b30b95e43e5d047b3aef2d8c5f01110e9`. +PR: the live PR for this branch in `SAM-BIM/SAM_UI` (its number is not committed here). +Tested content SHA: `b7e34cd0dd8de31e1e63eeb88e9340d18fc2038d`. This record is the only change after it. +Final PR head and hosted check results: recorded in the live PR description. + +## What it does + +A new ribbon button, **Simulate > OpenStudio Simulation**, sits beside Energy Simulation (Tas). The existing Tas commands are not changed. + +1. The user picks an output folder. If the model has embedded weather, the user chooses between that weather and an EPW file; otherwise they must choose an EPW. +2. `UIAnalyticalModel.JSAMObject` (a deep clone) is frozen to `snapshot.json`. Every later step works on the copy read back from that file. +3. SAM_OpenStudio's own `AnalyticalModel.ToOpenStudio(epw, dir, null, runOptions, run: true, progress, token)` converts the model, writes OSM/OSW, runs `openstudio.exe` and reads the SQL. The weather precedence is SAM_OpenStudio's: the user's EPW, otherwise the embedded WeatherData. +4. On success, the copy has every result it already carried removed (Tas results, for example). This run's results are then attached with SAM_OpenStudio's `AdjacencyCluster.AddResults(sql)`, plus the model-level `AnalyticalModelSimulationResult` (`resultSet.ToSAM`). The result is saved as `_OpenStudio.json`. +5. `openstudio-run.json` is written in every case, including failure and cancel. + +Run folder: `\_OpenStudio__\`. It contains: +- `snapshot.json`; +- `weather.epw` (a copy of the EPW used); +- `.osm` and `.osw`; +- `run\eplusout.sql` and `.err`; +- `_OpenStudio.json`; +- `openstudio-run.json`, with schema `sam-ui.openstudio-run/1`, status, SHA-256 of the snapshot and weather (B1a `sourceFileHash` notation), the CLI path, exit code, warning/severe/fatal counts, the SAM.Analytical.OpenStudio InformationalVersion, and the conversion and result diagnostics. + +The run executes on a worker thread (`Task.Run`). Progress and Cancel use the existing `ProgressWindowHost`. Cancel triggers the token, and SAM_OpenStudio's job object kills the CLI/EnergyPlus process tree. The window stays usable during the run, and the button is disabled until the run ends. + +## Decisions + +- **Runs inside SAM_UI's process; no separate runner program.** + - The OpenStudio bindings (SWIG) are used in process only for conversion, saving and reading results. EnergyPlus already runs out of process under a job object. + - The same library already runs in process in Rhino (SAM_OpenStudio's Grasshopper components) and in the benchmark CLI. + - The model is frozen to disk before the native code is reached. A native crash would therefore lose no model state beyond what the snapshot already holds; unsaved edits made *after* the snapshot would still be lost with the process. + - A separate runner remains an option for Phase 2 (#234) if in-process native failures are seen in practice. +- **No platform change in SAM_UI.** + - The OpenStudio NuGet targets refuse AnyCPU builds, and SAM_UI is AnyCPU throughout. + - `OpenStudio.dll` is IL-only (CLR flags `0x9`, identical bytes in the package's x86 and x64 folders). So `SAM.Analytical.UI.WPF` references it, and the three `SAM.*.OpenStudio` assemblies, from `..\..\..\SAM_OpenStudio\build\` by HintPath, like every other SAM dependency. + - The x64 native files are copied as `None` items, so they also reach the applications and the tests: `openstudiolib.dll`, `openstudio_csharp.dll`, `openstudio_model_csharp.dll`, `openstudio_translators_csharp.dll` and `runtimes\win-x64\native\SQLite.Interop.dll`. + - If any of them is missing, the build fails early with a clear message. + - At run time an AnyCPU process on x64 Windows is 64-bit, so the x64 natives load. +- **CI**: `build.yml` clones and builds `SAM_SQLite` and `SAM_OpenStudio` after `SAM_Validation`, which SAM_OpenStudio's benchmark needs. SAM_OpenStudio is built with `/p:Platform=x64`, as in its own CI and in SAM_Deploy's BuildAll, which already builds SAM_SQLite and SAM_OpenStudio (x64) before SAM_UI. Every other solution keeps the default platform. +- **Reuse, no duplication.** Conversion, the run, SQL extraction, result mapping and attachment are all SAM_OpenStudio's. No comparison code is added; comparison belongs to SAM_Validation (#231). The manifest's file hashes are provenance only, not `canonicalModelHash`. +- **Result model holds only this run's results**, so a later B1a producer or comparison cannot pick up stale Tas results from it. +- **Namespace traps** caught by the local compile check: + - inside `SAM.Analytical.*`, a bare `Window` is `SAM.Analytical.Window` (the aperture type), so the WPF window is written `System.Windows.Window`; + - `Math` may resolve to `SAM.Math`, so the code uses `System.Math`. + +## Files changed + +- `WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs` (new): the run record and manifest. It holds no OpenStudio type. +- `WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs` (new): + - `RunOpenStudioSimulation` (no UI, never throws for a failed run); + - `FreezeAnalyticalModel`; + - `AddOpenStudioResults`; + - the OpenStudio-touching code sits in a `NoInlining` method, so a load failure is recorded on the run. +- `WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs` (new): the dialogs, the progress/cancel host, the worker thread and the summary message. +- `WPF/SAM.Analytical.UI.WPF/Query/OpenStudioSimulation.cs` (new): run folder and result file names, SHA-256, load-failure detection and message, and the summary text. +- `WPF/SAM.Analytical.UI.WPF/Windows/AnalyticalWindow.xaml(.cs)`: the button, its tooltip, the click handler (catches load failures and blocks a second run) and the enable logic. +- `WPF/SAM.Analytical.UI.WPF/SAM.Analytical.UI.WPF.csproj`: the SAM_OpenStudio references, the native file items and the missing-file check. +- `WPF/SAM.Analytical.UI.WPF.Tests/SAM.Analytical.UI.WPF.Tests.csproj`: SAM_OpenStudio references for compilation. +- `WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs` (new): 9 tests. +- `.github/workflows/build.yml`: SAM_SQLite and SAM_OpenStudio (x64) added to the clone and build order. + +## Validation + +Local results are from a Linux cloud container (no Windows, Tas or OpenStudio CLI), using the .NET SDK 10.0.112 compiler; .NET 8.0.131's compiler cannot build SAM `sow/2026-Q4`, which uses a C# 12 collection expression it rejects. Dependencies were built from `sow/2026-Q4`: SAM `618db819`, SAM_SQLite `ec2eb86d`, SAM_OpenStudio `d4216f35` (`-p:Platform=x64 -p:PostBuildEvent=`). + +| Check | Where | Result | +|---|---|---| +| New production files compiled against the real SAM/SAM_OpenStudio builds (net8.0-windows, nullable enabled, `EnableWindowsTargeting`). Machine-local harness; only `UIAnalyticalModel`, `ProgressWindowHost` and two existing private `Query` helpers stubbed | Local | PASS (0 errors, 0 warnings) | +| `OpenStudioSimulationTests` (9) with the non-WPF production files, net8.0 harness | Local | PASS 9/9. The real-run test returned early (no `openstudio.exe`), so it is **NOT RUN** | +| Failure path for real: no weather, and the OpenStudio natives cannot load on Linux (`TypeInitializationException` from `OpenStudioModelCorePINVOKE`). Run recorded as Failed, model JSON unchanged, snapshot and manifest written | Local | PASS | +| Native-file items copied into a referencing project, including `runtimes/win-x64/native/SQLite.Interop.dll`; missing files give the clear early error | Local, scratch MSBuild projects | PASS | +| Full SAM_UI solution build, including the XAML and `AnalyticalWindow`, and the CI dependency changes | GitHub CI (Windows) | See the PR description | +| Full WPF test suite on Windows (`dotnet test WPF/SAM.Analytical.UI.WPF.Tests -c Release`) | Windows | NOT RUN | +| **G1**: real OpenStudio run from the SAM_UI app | Windows + OpenStudio 3.10 | NOT RUN | +| G1: results identical to `benchmark-openstudio` for the same model and EPW | Windows + OpenStudio 3.10 | NOT RUN | +| G1: Tas not regressed (same model, Energy Simulation before and after) | Licensed Tas | NOT RUN | +| G1: Cancel kills `openstudio.exe`/`energyplus.exe` and saves no result model | Windows, manual | NOT RUN | + +Commands, all machine-local; the harness projects are not committed: + +```bash +# deps (Linux; SAM_OpenStudio post-build is a Windows copy command) +dotnet build SAM/SAM/SAM.Analytical/SAM.Analytical.csproj -c Release -p:EnableWindowsTargeting=true +dotnet build SAM_SQLite/SAM_SQLite/SAM.Core.SQLite/SAM.Core.SQLite.csproj -c Release +dotnet build SAM_OpenStudio/SAM_OpenStudio/SAM.Analytical.OpenStudio/SAM.Analytical.OpenStudio.csproj -c Release -p:Platform=x64 -p:PostBuildEvent= +# harness: compiles the new files plus OpenStudioSimulationTests.cs against those builds +dotnet test /Tests.csproj -c Release +``` + +On Windows, the real run test is `dotnet test WPF/SAM.Analytical.UI.WPF.Tests -c Release --filter "FullyQualifiedName~OpenStudioSimulationTests"`. It needs OpenStudio 3.10 (`openstudio.exe` on PATH or in a standard install) and SAM_OpenStudio checked out beside SAM_UI. `SAM_OPENSTUDIO_UI_TEST_MODEL` and `SAM_OPENSTUDIO_UI_TEST_EPW` override the model and the EPW. + +## Not claimed + +- No engineering equivalence with Tas. +- No claim that the OpenStudio results are correct beyond SAM_OpenStudio's own validation. +- Comparison is #231; benchmark acceptance is #232/#233. + +## Unresolved / risks + +- SAM_Deploy installer contents were not checked. The deploy build order already builds SAM_SQLite and SAM_OpenStudio (x64) before SAM_UI, and SAM_OpenStudio's Grasshopper post-build copies its build folder, natives included, to `%APPDATA%\SAM`. Confirm on an installed machine that the button loads. +- OpenStudio CLI (3.10) must be installed by the user. A missing CLI is reported through SAM_OpenStudio's `RunCliFailed` diagnostic. +- The CI build-artifact upload grows by about 150 MB of OpenStudio natives. +- The SWIG bindings run in process. See Decisions. + +## Next step + +1. Check the hosted CI build on the PR. +2. On the owner's Windows machine with OpenStudio 3.10 and a Tas licence, run the G1 manual steps from the PR description. +3. Owner review. +4. Merge, then the `PROJECT_PROGRESS.md` closeout on `sow/2026-Q4`. From 8c1c2a7130b435c6fb8bf47a074c91d09177c1b7 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 10:47:43 +0000 Subject: [PATCH 03/11] ci: restore build-order comment line split by the SAM_OpenStudio change The platform-override edit cut the "# Convert build order -> solution paths (robust: ...)" comment, leaving "(robust: ...)" after a closing brace; pwsh rejected the script before any build ran. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a751d2de..b469a661 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -218,7 +218,9 @@ jobs: # SAM_OpenStudio\build, where SAM.Analytical.UI.WPF picks them up. $platformBySolution = @{ 'SAM_OpenStudio' = 'x64' - } (robust: first .sln in each folder) + } + + # Convert build order -> solution paths (robust: first .sln in each folder) $solutions = foreach ($r in $buildOrder) { $expected = Join-Path $r "$r.sln" if (Test-Path $expected) { From f8f10d6d4f6ae722abbbcdb2f4fcc9adad2c3f37 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 10:47:43 +0000 Subject: [PATCH 04/11] docs: PR229 record notes the CI script fix Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- documentation/OpenStudio-Simulation-PR229.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/OpenStudio-Simulation-PR229.md b/documentation/OpenStudio-Simulation-PR229.md index ee6c7d5c..6e6fb034 100644 --- a/documentation/OpenStudio-Simulation-PR229.md +++ b/documentation/OpenStudio-Simulation-PR229.md @@ -4,7 +4,7 @@ Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; owner review and g Issue: SAM-BIM/SAM_UI#229 (parent SAM-BIM/SAM_UI#227, tracker SAM-BIM/SAM#206). Base: `sow/2026-Q4` at `ebe5e09b30b95e43e5d047b3aef2d8c5f01110e9`. PR: the live PR for this branch in `SAM-BIM/SAM_UI` (its number is not committed here). -Tested content SHA: `b7e34cd0dd8de31e1e63eeb88e9340d18fc2038d`. This record is the only change after it. +Tested content SHA: `b7e34cd0dd8de31e1e63eeb88e9340d18fc2038d` for the code and tests. Then `8c1c2a7130b435c6fb8bf47a074c91d09177c1b7` fixed only a `build.yml` comment line that the first push had split: pwsh rejected the script before any build ran. This record is the only change after that. Final PR head and hosted check results: recorded in the live PR description. ## What it does From 0e75a1a2aab98020bdfdb7dd0597978a944efe1d Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 11:07:04 +0000 Subject: [PATCH 05/11] fix: qualify SAM AnalyticalModelParameter in SimulateOpenStudio (#229) SAM_UI's own SAM.Analytical.UI.AnalyticalModelParameter shadows SAM.Analytical.AnalyticalModelParameter inside SAM.Analytical.UI.WPF, so the hosted build failed with CS0117 (no WeatherData). Qualified as Modify/Simulate.cs already does. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs b/WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs index 0c3b477f..c25650ef 100644 --- a/WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs +++ b/WPF/SAM.Analytical.UI.WPF/Modify/SimulateOpenStudio.cs @@ -52,7 +52,7 @@ public static partial class Modify //SAM_OpenStudio's precedence: an EPW chosen here, else the model's embedded WeatherData. string? epwPath = null; - bool embeddedWeather = analyticalModel.TryGetValue(AnalyticalModelParameter.WeatherData, out WeatherData? weatherData) && weatherData != null; + bool embeddedWeather = analyticalModel.TryGetValue(Analytical.AnalyticalModelParameter.WeatherData, out WeatherData? weatherData) && weatherData != null; if (embeddedWeather) { MessageBoxResult messageBoxResult = ShowOpenStudioMessage(owner, "Use the model's weather data for the OpenStudio run?\n\nYes: the model's weather data.\nNo: choose an EPW file.", MessageBoxButton.YesNoCancel, MessageBoxImage.Question); From 722f40b0f9da9e5aea6b6f7589b985f1aba09c50 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 11:07:04 +0000 Subject: [PATCH 06/11] docs: PR229 record notes the CS0117 fix Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- documentation/OpenStudio-Simulation-PR229.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/documentation/OpenStudio-Simulation-PR229.md b/documentation/OpenStudio-Simulation-PR229.md index 6e6fb034..1c81e720 100644 --- a/documentation/OpenStudio-Simulation-PR229.md +++ b/documentation/OpenStudio-Simulation-PR229.md @@ -4,7 +4,7 @@ Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; owner review and g Issue: SAM-BIM/SAM_UI#229 (parent SAM-BIM/SAM_UI#227, tracker SAM-BIM/SAM#206). Base: `sow/2026-Q4` at `ebe5e09b30b95e43e5d047b3aef2d8c5f01110e9`. PR: the live PR for this branch in `SAM-BIM/SAM_UI` (its number is not committed here). -Tested content SHA: `b7e34cd0dd8de31e1e63eeb88e9340d18fc2038d` for the code and tests. Then `8c1c2a7130b435c6fb8bf47a074c91d09177c1b7` fixed only a `build.yml` comment line that the first push had split: pwsh rejected the script before any build ran. This record is the only change after that. +Tested content SHA: `0e75a1a2aab98020bdfdb7dd0597978a944efe1d`. Earlier heads failed hosted CI: `2b140f3` (a `build.yml` comment line split, pwsh parse error) and `f8f10d6` (CS0117, see Validation). This record is the only change after the tested SHA. Final PR head and hosted check results: recorded in the live PR description. ## What it does @@ -69,6 +69,7 @@ Local results are from a Linux cloud container (no Windows, Tas or OpenStudio CL | Check | Where | Result | |---|---|---| +| Hosted CI on `f8f10d6` failed: `SimulateOpenStudio.cs(55,89) CS0117 'AnalyticalModelParameter' does not contain a definition for 'WeatherData'`. SAM_UI's own `SAM.Analytical.UI.AnalyticalModelParameter` shadows SAM's enum. Reproduced locally by adding that enum as a stub; fixed by qualifying it as `Analytical.AnalyticalModelParameter`, as `Modify/Simulate.cs` does. The new files were swept for other names shadowed by SAM_UI types: none found | Local | FIXED | | New production files compiled against the real SAM/SAM_OpenStudio builds (net8.0-windows, nullable enabled, `EnableWindowsTargeting`). Machine-local harness; only `UIAnalyticalModel`, `ProgressWindowHost` and two existing private `Query` helpers stubbed | Local | PASS (0 errors, 0 warnings) | | `OpenStudioSimulationTests` (9) with the non-WPF production files, net8.0 harness | Local | PASS 9/9. The real-run test returned early (no `openstudio.exe`), so it is **NOT RUN** | | Failure path for real: no weather, and the OpenStudio natives cannot load on Linux (`TypeInitializationException` from `OpenStudioModelCorePINVOKE`). Run recorded as Failed, model JSON unchanged, snapshot and manifest written | Local | PASS | From 3393331ed9fb6ea1c61076cf52fcda606faad1c9 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 12:02:46 +0000 Subject: [PATCH 07/11] fix: OpenStudio run manifest threw on the first diagnostic (#229) JsonArray.Add(string) binds to the generic Add, whose value cannot be written with ToJson's JsonSerializerOptions (no TypeInfoResolver), so a run with any diagnostic threw InvalidOperationException while writing openstudio-run.json - from a finally on the worker thread, i.e. a real run with a warning would have failed or crashed SAM_UI. Values are now added with JsonValue.Create, and the manifest write can no longer throw. Regression test: a manifest with diagnostics and an error (fails before, passes after). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- .../OpenStudioSimulationTests.cs | 17 +++++++++++++++++ .../OpenStudio/OpenStudioSimulationRun.cs | 4 +++- .../Modify/RunOpenStudioSimulation.cs | 5 +++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs b/WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs index 850e0dad..7d63fe6f 100644 --- a/WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs +++ b/WPF/SAM.Analytical.UI.WPF.Tests/OpenStudioSimulationTests.cs @@ -164,6 +164,23 @@ public void Manifest_WritesPathsInsideTheRunFolderRelatively_AndKeepsOthersAbsol Assert.Equal(7, (int)jsonObject["resultCount"]); } + [Fact] + public void Manifest_WithDiagnosticsAndAnError_IsWritten() + { + //A real run nearly always has diagnostics; the manifest must still serialise (it once threw on the first diagnostic). + OpenStudioSimulationRun run = new OpenStudioSimulationRun() { Id = "0123abcd", Directory = directory, Exception = new InvalidOperationException("boom") }; + run.Diagnostics.Add("Warning SAM-OS-RUN-001: a warning"); + run.Diagnostics.Add("Error SAM-OS-RUN-001: an error"); + run.ResultDiagnostics.Add("No simulation result found for space 'Cell 1'"); + + JsonObject jsonObject = JsonNode.Parse(run.ToJson()).AsObject(); + + Assert.Equal(2, jsonObject["diagnostics"].AsArray().Count); + Assert.Equal("Error SAM-OS-RUN-001: an error", (string)jsonObject["diagnostics"][1]); + Assert.Single(jsonObject["resultDiagnostics"].AsArray()); + Assert.Equal("InvalidOperationException: boom", (string)jsonObject["error"]); + } + [Fact] public void Run_WithoutAModelOrAFolder_FailsWithoutThrowing() { diff --git a/WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs b/WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs index 8898aa23..d4750599 100644 --- a/WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs +++ b/WPF/SAM.Analytical.UI.WPF/Classes/OpenStudio/OpenStudioSimulationRun.cs @@ -197,7 +197,9 @@ private static JsonArray ToJsonArray(IEnumerable values) JsonArray result = new JsonArray(); foreach (string value in values) { - result.Add(value); + //JsonValue.Create, not Add(value): the generic Add makes a value that ToJson's options (no TypeInfoResolver) + //cannot write, so any run with a diagnostic threw while writing its manifest. + result.Add(JsonValue.Create(value)); } return result; diff --git a/WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs b/WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs index 739b3499..e25ea7d9 100644 --- a/WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs +++ b/WPF/SAM.Analytical.UI.WPF/Modify/RunOpenStudioSimulation.cs @@ -261,9 +261,10 @@ private static void WriteManifest(OpenStudioSimulationRun openStudioSimulationRu File.WriteAllText(path, openStudioSimulationRun.ToJson()); openStudioSimulationRun.ManifestPath = path; } - catch (Exception exception) when (exception is IOException || exception is UnauthorizedAccessException) + catch (Exception exception) { - openStudioSimulationRun.Diagnostics.Add("Warning: the run manifest could not be written: " + exception.Message); + //Written from a finally on a worker thread: whatever goes wrong here must not take the run, or the application, down. + openStudioSimulationRun.Diagnostics.Add("Warning: the run manifest could not be written: " + exception.GetType().Name + ": " + exception.Message); } } From 95135ceb0ac6efb877f3c17735659084bdbc2aa3 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 17 Oct 2026 12:02:56 +0000 Subject: [PATCH 08/11] docs: PR229 record notes the manifest fix Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01Fgbs3ko6Xix9Ut15onTY7R --- documentation/OpenStudio-Simulation-PR229.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/documentation/OpenStudio-Simulation-PR229.md b/documentation/OpenStudio-Simulation-PR229.md index 1c81e720..21745f44 100644 --- a/documentation/OpenStudio-Simulation-PR229.md +++ b/documentation/OpenStudio-Simulation-PR229.md @@ -4,7 +4,7 @@ Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; owner review and g Issue: SAM-BIM/SAM_UI#229 (parent SAM-BIM/SAM_UI#227, tracker SAM-BIM/SAM#206). Base: `sow/2026-Q4` at `ebe5e09b30b95e43e5d047b3aef2d8c5f01110e9`. PR: the live PR for this branch in `SAM-BIM/SAM_UI` (its number is not committed here). -Tested content SHA: `0e75a1a2aab98020bdfdb7dd0597978a944efe1d`. Earlier heads failed hosted CI: `2b140f3` (a `build.yml` comment line split, pwsh parse error) and `f8f10d6` (CS0117, see Validation). This record is the only change after the tested SHA. +Tested content SHA: `3393331` (local Linux harness; hosted CI in the PR description). Earlier heads: `2b140f3` failed CI (a `build.yml` comment line split, pwsh parse error); `f8f10d6` failed CI (CS0117, SAM_UI's own `AnalyticalModelParameter` shadows SAM's); `722f40b` was green on hosted CI but carried the manifest bug fixed in `3393331` (see Validation). This record is the only change after the tested SHA. Final PR head and hosted check results: recorded in the live PR description. ## What it does @@ -69,6 +69,7 @@ Local results are from a Linux cloud container (no Windows, Tas or OpenStudio CL | Check | Where | Result | |---|---|---| +| `openstudio-run.json` threw `InvalidOperationException` when a run had any diagnostic: `JsonArray.Add(string)` binds to the generic `Add`, which `ToJson`'s options cannot write. The exception was raised from a `finally` on the worker thread, so a real run with a warning would have failed or crashed SAM_UI. Found by the comparison work (SAM_UI#231). Fixed with `JsonValue.Create`, and the manifest write can no longer throw. Regression test `Manifest_WithDiagnosticsAndAnError_IsWritten`: fails before the fix, passes after (harness 10/10) | Local | FIXED in `3393331` | | Hosted CI on `f8f10d6` failed: `SimulateOpenStudio.cs(55,89) CS0117 'AnalyticalModelParameter' does not contain a definition for 'WeatherData'`. SAM_UI's own `SAM.Analytical.UI.AnalyticalModelParameter` shadows SAM's enum. Reproduced locally by adding that enum as a stub; fixed by qualifying it as `Analytical.AnalyticalModelParameter`, as `Modify/Simulate.cs` does. The new files were swept for other names shadowed by SAM_UI types: none found | Local | FIXED | | New production files compiled against the real SAM/SAM_OpenStudio builds (net8.0-windows, nullable enabled, `EnableWindowsTargeting`). Machine-local harness; only `UIAnalyticalModel`, `ProgressWindowHost` and two existing private `Query` helpers stubbed | Local | PASS (0 errors, 0 warnings) | | `OpenStudioSimulationTests` (9) with the non-WPF production files, net8.0 harness | Local | PASS 9/9. The real-run test returned early (no `openstudio.exe`), so it is **NOT RUN** | From b7483443f53dd53a4d16f159d6bc327c901a7770 Mon Sep 17 00:00:00 2001 From: Michal Dengusiak Date: Sat, 17 Oct 2026 23:28:25 +0200 Subject: [PATCH 09/11] docs: reconcile G1 evidence and retain missing acceptance gates --- documentation/OpenStudio-Simulation-PR229.md | 32 ++++++++++++++++---- 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/documentation/OpenStudio-Simulation-PR229.md b/documentation/OpenStudio-Simulation-PR229.md index 21745f44..bd6da019 100644 --- a/documentation/OpenStudio-Simulation-PR229.md +++ b/documentation/OpenStudio-Simulation-PR229.md @@ -1,6 +1,6 @@ # Simulate > OpenStudio Simulation - minimal OpenStudio/EnergyPlus run from SAM_UI (SAM_UI#229) -Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; owner review and gate G1 manual validation required. Not merged. +Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; HOLD for incomplete G1 acceptance. Not merged. Issue: SAM-BIM/SAM_UI#229 (parent SAM-BIM/SAM_UI#227, tracker SAM-BIM/SAM#206). Base: `sow/2026-Q4` at `ebe5e09b30b95e43e5d047b3aef2d8c5f01110e9`. PR: the live PR for this branch in `SAM-BIM/SAM_UI` (its number is not committed here). @@ -108,9 +108,29 @@ On Windows, the real run test is `dotnet test WPF/SAM.Analytical.UI.WPF.Tests -c - The CI build-artifact upload grows by about 150 MB of OpenStudio natives. - The SWIG bindings run in process. See Decisions. -## Next step +## Gated acceptance reconciliation - 2026-10-17 -1. Check the hosted CI build on the PR. -2. On the owner's Windows machine with OpenStudio 3.10 and a Tas licence, run the G1 manual steps from the PR description. -3. Owner review. -4. Merge, then the `PROJECT_PROGRESS.md` closeout on `sow/2026-Q4`. +Status: HOLD for G1 acceptance. This documentation-only correction does not authorize a merge or waive a required check. The owner-authorized merge candidate was `95135ceb0ac6efb877f3c17735659084bdbc2aa3`; any record correction creates a new candidate requiring a new owner-approved pin. Product content remains `3393331`. + +The original NOT RUN entries above describe the Linux investigation. Later Windows evidence on #238 (build `0e1980a9d5e302da22fc32db488a5ccefd81d037`, incorporating #237 `95135ce`) supports a real standalone run and Both integration; it does not establish every G1 requirement. #238's live description records owner acceptance for integration, with numerical equivalence left open. No explicit owner deferral of the remaining G1 checks was found in the inspected records, PR comments or current merge instruction. + +Machine-local evidence (must be copied/provisioned on another machine): + +- Report: `C:\TasOut\pr238-ui\PR238-BOTH-REPORT.md`. +- Standalone: `C:\TasOut\pr238-ui\input-box\box-aperture_OpenStudio_20261017-191359_3beea496`. `openstudio-run.json`: Succeeded, exit 0, 10 warnings, 0 severe, 0 fatal, 13 results, embedded weather, OpenStudio 3.10. The result model, snapshot, EPW, OSM/OSW and SQL are present. +- Successful Both: `C:\TasOut\pr238-ui\box-both\000000_SAM_AnalyticalModel_TasOpenStudio_20261017-191647_1eb45853`. Both producer exits 0; Compared; provenance Pass. Overall/Numerical Fail, Coverage Warn; reports retain 6 Match / 0 Warn / 10 Fail / 2 N/A. This proves orchestration, not engine equivalence. +- Partial: `C:\TasOut\pr238-ui\both-3\000000_SAM_AnalyticalModel_TasOpenStudio_20261017-185627_e65f7d4c`. Tas exit 5, OpenStudio exit 0; PartiallyCompleted, no comparison reports; failed Tas document is not substituted. The report records the UI banner. + +Read-only audit during this merge session (no new simulation): compared the standalone `box-aperture_OpenStudio.json` AnalyticalModelSimulationResult parameters with `box-both`'s `benchmark-OpenStudio.json` model fields. All four stored values are exactly equal: heating 2810.0182949034006 kWh; cooling 3832.503031616723 kWh; peak heating 3.343728936987215 kW; peak cooling 5.206164980706354 kW. Model GUID is `1988f7b93ec047d0b87bf9cb345d9eab`; both weather files hash to `E1353BD2600A401F76262D52A8E16176A15DC45A4967E58D9107C374704ABF7C`. Equality is evidenced for this box scenario, not for the prescribed two-cell explicit-EPW G1 procedure. Snapshot file hashes differ; no claim of byte-identical snapshots is made. + +| G1 requirement | Current evidence / decision | +|---|---| +| Standalone OpenStudio real run | Evidenced on box, as above; original full fixture/UI step checklist not supplied | +| Standalone vs benchmark equality | Four model metrics exactly equal for the saved box; prescribed explicit-EPW fixture not run/evidenced | +| Cancel and process cleanup | NOT EVIDENCED for a real run; fake-producer tests are not native-process acceptance; no explicit owner deferral | +| Concurrent-edit isolation | NOT EVIDENCED for a real UI run; frozen-copy tests do not demonstrate concurrent UI editing; no explicit owner deferral | +| Tas baseline comparison | NOT EVIDENCED: no same-model before/after Energy Simulation comparison against Q4; successful benchmark-tas is a different workflow; no explicit owner deferral | +| Full WPF suite | Existing #238 record reports 2835/2835; not rerun in this merge session | +| Opt-in RealRun actually executed | NOT established by 2835/2835: `OpenStudioSimulationTests.RealRun_...` returns early with NOT RUN when CLI or model is missing | + +Exact next step: owner supplies missing G1 evidence or explicitly accepts each deferral (including whether the box equality substitutes for the prescribed fixture), reviews this correction and approves its new exact head. Refresh final-head CI against merged SAM_Validation Q4, check dependency logs, and recheck all merge gates. #238 remains dependent on #237. Do not merge either UI PR under the original pins after changing its record. Numerical disagreement, HungaryHouse Tas crash, unavailable per-engine input manifests and producer deployment remain separate unresolved follow-ups. From b4c5ad9279c58b0a5db0874333db2a696106b145 Mon Sep 17 00:00:00 2001 From: Michal Dengusiak Date: Sun, 18 Oct 2026 11:02:32 +0200 Subject: [PATCH 10/11] docs: record real G1 acceptance and explicit-EPW reproducibility hold --- documentation/OpenStudio-Simulation-PR229.md | 44 +++++++++++++++++- .../evidence/g1-20261018/audit-idf.py | 26 +++++++++++ .../evidence/g1-20261018/audit-isolation.py | 11 +++++ .../evidence/g1-20261018/audit-provenance.py | 4 ++ .../evidence/g1-20261018/audit-tas.py | 36 ++++++++++++++ .../g1-20261018/benchmark-repeat-deltas.json | 26 +++++++++++ .../g1-20261018/cancel-retry-click-utc.txt | 1 + .../g1-20261018/cancel-retry-running.jpg | Bin 0 -> 85512 bytes .../g1-20261018/cancel-retry-summary.jpg | Bin 0 -> 115620 bytes .../g1-20261018/cancellation-assertions.json | 13 ++++++ .../g1-20261018/candidate-dependency-pins.csv | 16 +++++++ .../g1-20261018/dependency-binary-hashes.csv | 9 ++++ .../g1-20261018/equality-observed.json | 30 ++++++++++++ .../explicit-file-weather-summary.jpg | Bin 0 -> 137772 bytes .../g1-20261018/idf-semantic-audit.json | 23 +++++++++ .../evidence/g1-20261018/input-hashes.csv | 6 +++ .../g1-20261018/isolation-assertions.json | 11 +++++ .../isolation-completed-live-edit.jpg | Bin 0 -> 128613 bytes .../g1-20261018/isolation-edit-commit-utc.txt | 1 + .../g1-20261018/provenance-audit.json | 12 +++++ .../g1-20261018/tas-baseline-settings.jpg | Bin 0 -> 41480 bytes .../g1-20261018/tas-candidate-settings.jpg | Bin 0 -> 41575 bytes .../evidence/g1-20261018/tas-comparison.json | 17 +++++++ .../evidence/g1-20261018/ui-build-hashes.csv | 3 ++ 24 files changed, 287 insertions(+), 2 deletions(-) create mode 100644 documentation/evidence/g1-20261018/audit-idf.py create mode 100644 documentation/evidence/g1-20261018/audit-isolation.py create mode 100644 documentation/evidence/g1-20261018/audit-provenance.py create mode 100644 documentation/evidence/g1-20261018/audit-tas.py create mode 100644 documentation/evidence/g1-20261018/benchmark-repeat-deltas.json create mode 100644 documentation/evidence/g1-20261018/cancel-retry-click-utc.txt create mode 100644 documentation/evidence/g1-20261018/cancel-retry-running.jpg create mode 100644 documentation/evidence/g1-20261018/cancel-retry-summary.jpg create mode 100644 documentation/evidence/g1-20261018/cancellation-assertions.json create mode 100644 documentation/evidence/g1-20261018/candidate-dependency-pins.csv create mode 100644 documentation/evidence/g1-20261018/dependency-binary-hashes.csv create mode 100644 documentation/evidence/g1-20261018/equality-observed.json create mode 100644 documentation/evidence/g1-20261018/explicit-file-weather-summary.jpg create mode 100644 documentation/evidence/g1-20261018/idf-semantic-audit.json create mode 100644 documentation/evidence/g1-20261018/input-hashes.csv create mode 100644 documentation/evidence/g1-20261018/isolation-assertions.json create mode 100644 documentation/evidence/g1-20261018/isolation-completed-live-edit.jpg create mode 100644 documentation/evidence/g1-20261018/isolation-edit-commit-utc.txt create mode 100644 documentation/evidence/g1-20261018/provenance-audit.json create mode 100644 documentation/evidence/g1-20261018/tas-baseline-settings.jpg create mode 100644 documentation/evidence/g1-20261018/tas-candidate-settings.jpg create mode 100644 documentation/evidence/g1-20261018/tas-comparison.json create mode 100644 documentation/evidence/g1-20261018/ui-build-hashes.csv diff --git a/documentation/OpenStudio-Simulation-PR229.md b/documentation/OpenStudio-Simulation-PR229.md index bd6da019..0c121469 100644 --- a/documentation/OpenStudio-Simulation-PR229.md +++ b/documentation/OpenStudio-Simulation-PR229.md @@ -1,6 +1,6 @@ # Simulate > OpenStudio Simulation - minimal OpenStudio/EnergyPlus run from SAM_UI (SAM_UI#229) -Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; HOLD for incomplete G1 acceptance. Not merged. +Status: implemented on `claude/openstudio-mcp-server-1jmjlo`; HOLD on strict explicit-EPW equality (2026-10-18 evidence below). Not merged. Issue: SAM-BIM/SAM_UI#229 (parent SAM-BIM/SAM_UI#227, tracker SAM-BIM/SAM#206). Base: `sow/2026-Q4` at `ebe5e09b30b95e43e5d047b3aef2d8c5f01110e9`. PR: the live PR for this branch in `SAM-BIM/SAM_UI` (its number is not committed here). @@ -108,7 +108,7 @@ On Windows, the real run test is `dotnet test WPF/SAM.Analytical.UI.WPF.Tests -c - The CI build-artifact upload grows by about 150 MB of OpenStudio natives. - The SWIG bindings run in process. See Decisions. -## Gated acceptance reconciliation - 2026-10-17 +## Historical gated acceptance reconciliation - 2026-10-17 Status: HOLD for G1 acceptance. This documentation-only correction does not authorize a merge or waive a required check. The owner-authorized merge candidate was `95135ceb0ac6efb877f3c17735659084bdbc2aa3`; any record correction creates a new candidate requiring a new owner-approved pin. Product content remains `3393331`. @@ -134,3 +134,43 @@ Read-only audit during this merge session (no new simulation): compared the stan | Opt-in RealRun actually executed | NOT established by 2835/2835: `OpenStudioSimulationTests.RealRun_...` returns early with NOT RUN when CLI or model is missing | Exact next step: owner supplies missing G1 evidence or explicitly accepts each deferral (including whether the box equality substitutes for the prescribed fixture), reviews this correction and approves its new exact head. Refresh final-head CI against merged SAM_Validation Q4, check dependency logs, and recheck all merge gates. #238 remains dependent on #237. Do not merge either UI PR under the original pins after changing its record. Numerical disagreement, HungaryHouse Tas crash, unavailable per-engine input manifests and producer deployment remain separate unresolved follow-ups. + +## Windows G1 acceptance execution - 2026-10-18 + +**Current status: HOLD on strict explicit-EPW equality.** The owner instruction of 2026-10-18 authorizes focused acceptance work and later merge of documentation-only evidence heads once all gates pass; another approval of such pins is not required. It does not waive the failed equality requirement. No product code, engine physics, units, tolerances, comparison arithmetic or deployment scope changed. The earlier dated HOLD and pin-approval wording above is historical and superseded by this section. + +Freshly tested UI content: `b7483443f53dd53a4d16f159d6bc327c901a7770` (#237). Pre-PR UI Q4 baseline: `ebe5e09b30b95e43e5d047b3aef2d8c5f01110e9`. Both Release builds passed; candidate and baseline run from isolated copied build folders. All 14 dependency source pins are in `documentation/evidence/g1-20261018/candidate-dependency-pins.csv`; these dependencies were unchanged for both builds. Eight relevant engine/core/interop DLLs are SHA-256 identical across builds (`dependency-binary-hashes.csv`); UI DLL hashes are in `ui-build-hashes.csv`. SAM `618db819300df8b698b3bbe5174a203244134738`, SAM_OpenStudio `d4216f3525c01ca762c1b3e9b6d099733d037f54`, SAM_Tas `a34a298dde2803de514081a0ed72ac3ff790997b`, SAM_Validation Q4 `68eded0060047af714853a02a152fb9c960bfeb1` (product merge `912ae94e`). Runtime: OpenStudio 3.10 / EnergyPlus 25.1, Tas 9.5.7, Windows x64. These local builds use default informational version 1.0.0; `SAM_COMMIT=618db819300df8b698b3bbe5174a203244134738` was set for benchmark provenance. + +| Required check | Newly executed evidence and result | +|---|---| +| Real Cancel/process cleanup | **PASS.** Cancel pressed during the observed Running OpenStudio/EnergyPlus stage while run-owned CLI PID 49008 and EnergyPlus child PID 45448 were alive. Both disappeared immediately around the click; manifest `Cancelled`, engine exit -1, resultModel null, no completed result model. No external kill was used. `cancellation-assertions.json` and screenshots. A first attempt clicked after native completion (exit 0) and is retained locally but excluded from this pass. | +| Concurrent-edit isolation | **PASS.** A real HungaryHouse OpenStudio run froze its snapshot; the ordinary Rename Spaces UI then committed `GF_07 LivingRoom` -> `G1_ISOLATION_EDIT` at 08:56:09.092Z, before run completion at 08:56:14.164Z. Snapshot and result retain the old name for space `c7df54b3c0064fc5a7c6e6012dbb9b8e`; the saved disposable open model retains the edit. Snapshot SHA-256 unchanged. `isolation-assertions.json`, screenshot. | +| Tas before/after Q4 baseline | **PASS for the exercised box case.** Existing Energy Simulation button used on the same original box model, internal weather, TAS solar/gbXML route, Simulate + Sizing + Full Year 1-365 + Unmet Hours + Update Construction Layers enabled; other options off. Settings screenshots committed. Both workflows completed, wrote TBD/TSD/result JSON, and adopted results. **608/608 persisted numerical values match exactly**, aligned by result type/name/load type and surface reference; matching 2 space, 28 surface and 2 adjacency-cluster results. Criterion is exact equality, no numerical tolerance, because platform, inputs, settings, dependencies and engine binaries are held fixed. Run-generated GUIDs/timestamps are metadata, excluded from numerical comparison. This does not claim byte-identical TSDs or audit every hourly native record. `tas-comparison.json`. `Modify/Simulate.cs` is identical at the two UI pins. | +| Prescribed two-cell explicit EPW | **Executed; strict equality FAIL/HOLD.** Untouched copy of `rawModel-WindowsWeatherDataDDYAdiabaticAirPanel.sam`, prescribed Boston EPW; UI explicitly chose No to embedded weather and selected the file. Manifest Succeeded, Weather=File, exit 0, 13 warnings, zero severe/fatal, 31 OpenStudio results. Benchmark uses the same source model/EPW and default conversion settings and succeeds. Weather SHA-256 and model GUID match; fixture preserved. Four model metrics differ by tiny nonzero amounts; values below. | +| Opt-in real-run test | **PASS, actually executed (1/1).** Explicit valid CLI/model/EPW supplied; detailed output contains Succeeded, no NOT RUN, TRX has exactly one Passed test. No broad suite rerun. | + +Explicit-EPW values, in stored units (standalone / benchmark / difference): + +- Heating kWh: `31072.86245449682` / `31072.862454810253` / `-3.134337021037936e-7`. +- Cooling kWh: `5764.530483239447` / `5764.530483144583` / `9.486393537372351e-8`. +- Peak heating kW: `19.82144246485972` / `19.821442464872938` / `-1.3216094885137863e-11`. +- Peak cooling kW: `14.079292685507252` / `14.07929268578085` / `-2.735980331181054e-10`. + +Investigation: an independent second **CLI-only** run on the identical source/EPW also varies (heating difference `-6.598711479455233e-7 kWh` versus CLI run 1). All three generated IDFs have the same 163 objects and identical engineering fields after matching regenerated aperture/frame names by their complete physical content and sorting object order: normalized SHA-256 `3b0dbe8f96a18c8b99b311811b2cccdc15c7b34046a549a0981a385cdf0da397`. The audit does not round or omit physical fields. Raw IDs/order and raw IDF hashes differ; expected source weather hash `sha256:eded5c982c1da37e35930622badf7f0e0a0a82b30fd9410723ea3f1c4b52b80b`, source model GUID `b74990da73b240978846cc12560be0aa`, design-day source EmbeddedModel. Evidence supports existing conversion/name-order reproducibility, not a newly established UI mapping defect. It does **not** satisfy the stated bit-exact equality, and no tolerance/acceptance deferral was silently introduced. See `equality-observed.json`, `benchmark-repeat-deltas.json`, `idf-semantic-audit.json`, `provenance-audit.json`. + +Reproduce on this machine (PowerShell, quoted paths): + +```powershell +$env:PATH='C:\Users\michal\Documents\GitHub\SAM-BIM\.icon-migration\runtime\OpenStudio-3.10.0+86d7e215a1-Windows\bin;'+$env:PATH +$env:SAM_COMMIT='618db819300df8b698b3bbe5174a203244134738' +$env:SAM_OPENSTUDIO_UI_TEST_MODEL='C:\TasOut\pr237-g1-20261018\inputs\two-cell.sam' +$env:SAM_OPENSTUDIO_UI_TEST_EPW='C:\TasOut\pr237-g1-20261018\inputs\Boston.epw' +dotnet test WPF/SAM.Analytical.UI.WPF.Tests/SAM.Analytical.UI.WPF.Tests.csproj -c Release --filter 'FullyQualifiedName~RealRun_SimulatesAFrozenCopy_AndSavesAResultModelWithOnlyOpenStudioResults' --logger 'console;verbosity=detailed' --logger 'trx;LogFileName=real-run.trx' --results-directory C:\TasOut\pr237-g1-20261018\opt-in +& '..\SAM_OpenStudio\benchmark\SAM.Analytical.OpenStudio.Benchmark\bin\x64\Release\net8.0\benchmark-openstudio.exe' --model $env:SAM_OPENSTUDIO_UI_TEST_MODEL --weather $env:SAM_OPENSTUDIO_UI_TEST_EPW --out C:\TasOut\pr237-g1-20261018\explicit\benchmark-openstudio.json --work C:\TasOut\pr237-g1-20261018\explicit\benchmark-work +``` + +The existing paths above are preserved evidence: use fresh output paths for a repeat. Release builds used VS 2026 MSBuild 18.10.1: `MSBuild.exe SAM_UI.sln /t:Restore;Rebuild /m:1 /nr:false /v:m /p:Configuration=Release /p:UseSharedCompilation=false` (quote `/t:Restore;Rebuild` in PowerShell). + +Machine-local evidence root: `C:\TasOut\pr237-g1-20261018` (must be copied/provisioned elsewhere). `cancel/...084042_454bf00b`; `isolation/...085502_021b72af`; `explicit/...084639_45a832b9`; `explicit/benchmark-work`, `explicit/benchmark-repeat-work`; `tas-baseline`, `tas-candidate`; `opt-in/real-run.trx`; logs/builds/process CSV/audit scripts. Portable summaries, verifier scripts and selected screenshots are committed under `documentation/evidence/g1-20261018/`; the verifiers use this evidence root and require the preserved full run artifacts. Originals remain untouched; `inputs/HungaryHouse.json` is the intentionally edited disposable live model. The original `C:\TasOut\pr238-ui\inputs\HungaryHouse.json` still hashes to `E16CCBD2BFE5ABA710D6C2EE88C68019A3265A75C41D50483E7867018E28B2CD`. The two-cell original/copy and EPW hashes are recorded in `input-hashes.csv`. Existing successful Both/partial runs, 2835/2835 suite and presentation evidence were inspected, not rerun. + +Exact next step: resolve the strict equality specification with the owner/domain reviewer, or prepare a separately reviewed deterministic conversion fix if bit identity is required. Do not merge #237 or dependent #238 while this required gate fails. Do not change physics, comparison tolerances/arithmetic or deployment to satisfy it. Documentation-only final heads are authorized by the 2026-10-18 instruction once all gates pass; the current hold is **acceptance**, not a request to reapprove documentation pins. Numerical Tas/OpenStudio disagreement, HungaryHouse Tas crash, unavailable input manifests and producer deployment remain separate open follow-ups. No PROJECT_PROGRESS.md change or UI branch cleanup is permitted before merge. diff --git a/documentation/evidence/g1-20261018/audit-idf.py b/documentation/evidence/g1-20261018/audit-idf.py new file mode 100644 index 00000000..ccc980ca --- /dev/null +++ b/documentation/evidence/g1-20261018/audit-idf.py @@ -0,0 +1,26 @@ +import json, pathlib, re, hashlib, collections +root=pathlib.Path(r'C:\TasOut\pr237-g1-20261018') +def objects(path): + text=re.sub(r'!.*$', '', path.read_text(encoding='utf-8-sig'),flags=re.M) + return [[x.strip() for x in obj.split(',')] for obj in text.split(';') if obj.strip()] +def canonical_idf(path): + rows=objects(path); mapping={} + for row in rows: + if row[0].lower()=='windowproperty:frameanddivider': + mapping[row[1]]='FRAME_'+hashlib.sha256(json.dumps(row[2:]).encode()).hexdigest() + rows=[[mapping.get(x,x) for x in row] for row in rows] + for row in rows: + if row[0].lower()=='fenestrationsurface:detailed': + mapping[row[1]]='OPENING_'+hashlib.sha256(json.dumps(row[2:]).encode()).hexdigest() + rows=sorted(tuple(mapping.get(x,x) for x in row) for row in rows) + return rows +files=[p for p in (root/'explicit').rglob('in.idf')] +ref=next(p for p in files if 'benchmark-work' in str(p)) +base=canonical_idf(ref) +results=[] +for path in files: + normalized=canonical_idf(path) + diff=collections.Counter(normalized)-collections.Counter(base) + results.append({'path':str(path),'objects':len(normalized),'normalizedSha256':hashlib.sha256(json.dumps(normalized).encode()).hexdigest(),'sameEngineeringFields':normalized==base,'differentObjects':list(diff)[:10]}) +(root/'explicit'/'idf-semantic-audit.json').write_text(json.dumps(results,indent=2)) +print(json.dumps(results,indent=2)[:6000]) \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/audit-isolation.py b/documentation/evidence/g1-20261018/audit-isolation.py new file mode 100644 index 00000000..78e7a44c --- /dev/null +++ b/documentation/evidence/g1-20261018/audit-isolation.py @@ -0,0 +1,11 @@ +import json,pathlib,hashlib +r=pathlib.Path(r'C:\TasOut\pr237-g1-20261018') +def model(path): + j=json.loads(path.read_text(encoding='utf-8-sig'));return j[0] if isinstance(j,list) else j +def spaces(j):return {v['Value']['Guid'].replace('-',''):v['Value']['Name'] for g in j['AdjacencyCluster']['Objects'] if g['Key']=='SAM.Analytical.Space' for v in g['Value']} +run=next((r/'isolation').glob('*_OpenStudio_*'));m=json.loads((run/'openstudio-run.json').read_text()) +a=spaces(model(run/'snapshot.json'));b=spaces(model(run/m['outputs']['resultModel']));c=spaces(model(r/'inputs'/'HungaryHouse.json'));keys=[k for k,v in a.items() if v=='GF_07 LivingRoom'];assert len(keys)==1;key=keys[0] +assert a[key]==b[key]=='GF_07 LivingRoom';assert c[key]=='G1_ISOLATION_EDIT' +h=hashlib.sha256((run/'snapshot.json').read_bytes()).hexdigest();assert h.upper()=='8247570EDFE72EBC801F97A048FFD7E53207F949BAA378C591090716D001491B' +report={'status':m['status'],'startedUtc':m['startedUtc'],'finishedUtc':m['finishedUtc'],'spaceGuid':key,'snapshotName':a[key],'resultName':b[key],'liveSavedName':c[key],'snapshotSha256':h,'passed':True} +(r/'isolation'/'isolation-assertions.json').write_text(json.dumps(report,indent=2));print(json.dumps(report,indent=2)) \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/audit-provenance.py b/documentation/evidence/g1-20261018/audit-provenance.py new file mode 100644 index 00000000..d6e660c4 --- /dev/null +++ b/documentation/evidence/g1-20261018/audit-provenance.py @@ -0,0 +1,4 @@ +import json,pathlib,hashlib,xml.etree.ElementTree as ET +r=pathlib.Path(r'C:\TasOut\pr237-g1-20261018');run=next((r/'explicit').glob('*_OpenStudio_*'));m=json.loads((run/'openstudio-run.json').read_text());j=json.loads((run/m['outputs']['resultModel']).read_text());j=j[0] if isinstance(j,list) else j;b=json.loads((r/'explicit'/'benchmark-openstudio.json').read_text());h='sha256:'+hashlib.sha256((r/'inputs'/'Boston.epw').read_bytes()).hexdigest();assert m['status']=='Succeeded' and m['weather']['source']=='File';assert h==m['weather']['sha256']==b['provenance']['weather']['hash'];assert j['Guid'].replace('-','')==b['provenance']['sourceModelGuid'].replace('-','');assert hashlib.sha256((r/'inputs'/'two-cell.sam').read_bytes()).hexdigest().upper()=='B2AB6826E085D621CFD219D58D924F38CC02A3406852D39BFAD8AEB205ABF32D' +p={'fixturePreserved':True,'weatherSource':'File','weatherSha256':h,'modelGuid':j['Guid'],'benchmarkCanonicalModelHash':b['provenance']['canonicalModelHash'],'samCommit':b['provenance']['samCommit'],'openStudioCommit':b['provenance']['runnerCommit'],'designDaySource':b['provenance']['designDaySource'],'strictMetricEquality':False,'gate':'HOLD: required bit-exact standalone/benchmark equality not achieved; same-engine CLI repeats also vary. No tolerance change or deferral authorized.'};(r/'explicit'/'provenance-audit.json').write_text(json.dumps(p,indent=2));print(json.dumps(p,indent=2)) +tree=ET.parse(r/'opt-in'/'real-run.trx');ns={'t':'http://microsoft.com/schemas/VisualStudio/TeamTest/2010'};tests=tree.findall('.//t:UnitTestResult',ns);assert len(tests)==1 and tests[0].get('outcome')=='Passed';text=(r/'logs'/'opt-in-real-run.log').read_text(encoding='utf-8-sig');assert 'NOT RUN:' not in text and 'Succeeded' in text and 'Test Run Successful' in text;print('Opt-in: one actual real run, Passed; no NOT RUN output.') \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/audit-tas.py b/documentation/evidence/g1-20261018/audit-tas.py new file mode 100644 index 00000000..f07a6571 --- /dev/null +++ b/documentation/evidence/g1-20261018/audit-tas.py @@ -0,0 +1,36 @@ +import json,pathlib,hashlib +root=pathlib.Path(r'C:\TasOut\pr237-g1-20261018') +def numeric(value,path=''): + if isinstance(value,bool):return {} + if isinstance(value,(int,float)):return {path:value} + if isinstance(value,list): + out={} + for i,v in enumerate(value):out.update(numeric(v,path+'/'+str(i))) + return out + if isinstance(value,dict): + out={} + for k,v in value.items(): + if k not in ('Guid','Reference','DateTime'):out.update(numeric(v,path+'/'+k)) + return out + return {} +def extract(folder): + j=json.loads((root/folder/'000000_SAM_AnalyticalModel.json').read_text(encoding='utf-8-sig')); j=j[0] if isinstance(j,list) and len(j)==1 else j;out={};strings={};counts={} + for group in j['AdjacencyCluster']['Objects']: + if not group['Key'].endswith('SimulationResult'):continue + counts[group['Key']]=len(group['Value']) + for entry in group['Value']: + obj=entry['Value'];params={} + for ps in obj.get('ParameterSets',[]): + for p in ps.get('Parameters',[]): + if p.get('Name') and p['Name'] not in ('Zone Guid','ZoneSurfaceReference'):params[p['Name']]=p.get('Value') + key=group['Key']+'/'+obj.get('Name','')+'/'+str(params.get('Load Type')) + if group['Key'].endswith('SurfaceSimulationResult'):key+='/'+str(obj.get('Reference')) + if key in counts:raise Exception('duplicate result identity '+key) + counts[key]=1 + out.update(numeric(params,key)) + return out,{k:v for k,v in counts.items() if '/' not in k} +a,ac=extract('tas-baseline');b,bc=extract('tas-candidate') +diffs=[{'path':k,'baseline':a.get(k),'candidate':b.get(k)} for k in sorted(a.keys()|b.keys()) if a.get(k)!=b.get(k)] +report={'criterion':'Exact equality of every numeric leaf of persisted simulation parameters, aligned by result type/name/load type and surface reference. No numerical tolerance. Run-generated result/zone identities and timestamps are metadata, not numerical outputs.','baselineCounts':ac,'candidateCounts':bc,'baselineNumbers':len(a),'candidateNumbers':len(b),'exactMatch':not diffs,'differences':diffs} +(root/'tas-comparison.json').write_text(json.dumps(report,indent=2)) +print(json.dumps(report,indent=2)[:7000]) \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/benchmark-repeat-deltas.json b/documentation/evidence/g1-20261018/benchmark-repeat-deltas.json new file mode 100644 index 00000000..58edd851 --- /dev/null +++ b/documentation/evidence/g1-20261018/benchmark-repeat-deltas.json @@ -0,0 +1,26 @@ +[ + { + "Metric": "consumptionHeating", + "First": 31072.862454810253, + "Second": 31072.86245415038, + "Delta": -6.598711479455233E-07 + }, + { + "Metric": "consumptionCooling", + "First": 5764.530483144583, + "Second": 5764.530483304694, + "Delta": 1.6011108527891338E-07 + }, + { + "Metric": "peakHeatingLoad", + "First": 19.821442464872938, + "Second": 19.821442464656073, + "Delta": -2.1686474838134018E-10 + }, + { + "Metric": "peakCoolingLoad", + "First": 14.07929268578085, + "Second": 14.079292685701251, + "Delta": -7.959854997352522E-11 + } +] diff --git a/documentation/evidence/g1-20261018/cancel-retry-click-utc.txt b/documentation/evidence/g1-20261018/cancel-retry-click-utc.txt new file mode 100644 index 00000000..20407961 --- /dev/null +++ b/documentation/evidence/g1-20261018/cancel-retry-click-utc.txt @@ -0,0 +1 @@ +2026-10-18T08:40:58.026Z \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/cancel-retry-running.jpg b/documentation/evidence/g1-20261018/cancel-retry-running.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5122ea06f3e24ebe8a98e2c905f8f03de1729db5 GIT binary patch literal 85512 zcmeEv1ymhNmu}+(_u%gC?gR@#6I>HK1b01w1VV60AP_9LySuvtcemi~aCj%V|GhW& zzWL{WGi%mcGw%h~S*M%ss^0sny}!Myx~jOJx?ch?9?Qtf08mg+fDz;uxSs{20C-q9 zcsN*icsO_j1b9Rw3?!rn50G%s&`~fR;^5;y#KFTOB%vWAB%&h5!y{)Vr=q1}U}PX5 zV_|2ZXQ!cOp#NS86aoSQ5+V{d5)w8&As!+9fB5IV8Nft@UV)2(fuaPUF`-~Eq3+uO zG5~;rgGl>b;D7u;LBl}gML>LjgbcZ%0t0}Cf`NgCg@J>Eg@xSh4Y>}$V!~lja7e&o zt3F4dw8!D}jr@X0C0Wvft2TT{&Go{;?*S6tLwo{48d^Gf21afkUOs*SL8(X5GO}{= zkDoqM*U;3`)-g6QH8Z!ceCg=q?BeR??(ycWf55xI_d!w7A3ny!eu|4vO-s+n%*xKm zEiEgrsI024scmg*@96C6?&%#F9UGsRoSL3lURhmR-`M=NwS9Daa(Z@tad~z9T`wpA z<~Oze(Clw|VM6qRhJ}TJMfk246tpYk1A_?*N5KJ)C83J&+#Z{f(-#p(GV)7F%L6Jd zwL{z&4#P-z)ZEK7N8eTZq1peLVt)TA&HhmAPrYUU6c{K-8Ry>(N$^WL%d*MdmW4-!RP!Fx;6OJs>ReC+a8`U*DCO!TM7f*d*F-tqkEtk zvFS2iY#HgW=nh$s4h%@&1MTBiJbC!bRgr6UbisqtTGKrSoOUUvLp)3`U2+foMyx;E zbYav;RWJK^Srbq@i*x{{|4Kr=(KENq%D6&(HMvJo{7B-Md8M0+`zJwRs5U}z)Y6MK z#x)pbTGSLLVF)m=n~nC94S?o7@Rq5y>6H0f@+H*6djMPZ?^2H_s!d2ork&j$u-nN#jgSUZ|7Dd?C(mkwuD222k}-9l zP(<8aY&sI30;Is^M3jgO*ea$te7Db&sAuDGcL!3oB%=QGX1~EEJ~uFQDOt~S4@eHa zzXx7pf{wUBe{HesSi{<+5rsOpWi9K}F!|xJm>2FwS^W4U-2yoo6XtJ&Yc$w)HlRd`!zS-2uwHG>ap=B!`PGsp)M8L~8y z6zj}gsy{n_W#;J)9TWOE5BiI53mu95WCdXUHv#`{Qo5B5HOU(Ba}D)Y*kp5p?2&2T zs8JIzlV774LbSOb2!fslX}!3luVSF8#EHxou5@IJ^K= zjKPt9sHZ!j>12ad%(Pa)$d(Dfu}q=(RuohUitWFsD(7_1cqry@ZdVTT$=BL9Cyxj| zL|+#AgfNZ?HY99ONgg+LXg2#E_bS2AcWRNTMv4SNWm)o<&4-mmi zX2>9&5hpn?D#~j6^={DfDlmsKb}m!7On;;%h3Z+&GO&P7{<}^7-II=TC9u#1ZFy$o zaWxQ$t9m<>d-+HaTSUYJbrUu4LrT~_RY4I%$Rp>Ls1L$mK;5DO=KsoB+p@$ax7l0Pv zO)$S@po`!15qXw*C~1?D&wslr5FR)p2SSWb*Ch)z>WQ6Z+8Bc()EFOj5$WrdYP z8UBrl{x{ZBAKQ;Vdw2nj?J<$zLNbM@MZDkXc3MyiY~BNZC7t2Fad9mYJxuc7&HaDl zfN%6EXrO-~gjGuFYk_;8C9wGz!J)jpb_9^2=;G)JP~*S2^v-&zhwG_(=U7a z<#)fh;J-0v0+(#9T}1)q|47eM+}K*%vI5E_?g1M}F38g)4L~{@t$(3^NWS$~>bF%D z#}_;NEB$}Z_Wl}7&JtT$yEgbPQ{1U4De=<_f_IVUV zXUu|Dt|u5YbA@};UB4*;X8+R6taJ=!3~X;`#;|ug4;aN~9Y^`E2}}OVOfRWOXl9GA z3KN4m2q99QV2yz?1@ED$1bDJx=+5!oJrMd8PV8@%2I4LAAPN2DF){Do&<)D|`<`!nBEDgDEI5wEiHPVX>$r%Cr+4*J zD~F?f*|%q=#zP^5IVzbDSJ4<2s`;aG(YyvL0v~X@r8O5+Jn@)8 zWG~A+GimltxrUfi`6EAK@mX}gkkNIB@IW!%(b4^`NSZOo3H%Hy)HwAnN=0L-T%Nc@ z#$TSXu%#r*!T!zFxWsbhi8cOQ`wBW0+|t}?Ul-DBqsr78)IzOd=-ud*YDrTqh!NP> z9PzC#EtjIgb*G6}W`4`T6+5LY=?aHGXdfN+a&-%BlC^dD5sOo-gmBX*b^x=^RVrLb zWXJf&!(Z9%C-=T)4-2((IxD#`k(uFaRI7(wgCCq0eZ}8}-<-9jLpMe3d%I>!-|v#H z`|!eF2^a#b3krS`pe0!;epRiJMu&U=<*S}uFNqNDpz@`8yxRz!JX}9tP}T0B$%nQN zMlCYD`$I(7#7T)Kx}HDj|DCh1JHz2BI{W0+_%~z}`2t96HDj z&`Vr!jMSYT%b$Ei$JuY5xL9Si**f^Yz$lnHJ`dw)BD(NgB`65}3CmUxT5CyrWh{0_ zDczfkDB+YeR(7aYXp%`HVl?$%`)`ou{25^F_AD-#_Fmn#QIVfgR`K#(D6h->FmIT| z;738N7$?OsI48kva5YeGKlSG3P(y|Ll<$zxE^YC8ZcclY7W4_{G;Pd=rkgnFp*7^C z{0xEVh?$>r(#RH;k?H(~r2gZ2|D)HXiv+okR_h&jR#5tg%HG-6D^co29xn*i(LizdnXf z!%s#0MYC_UwHU{c@X?k&?N1^YH6}7YjOl~5rj|J?Oza%jntZNbJ*ceuRbyS~rORJzRbw1m2*Z&(s^MJU=~B;Chtrz89H2;)9LWa=SVz^V-a_pB+^+@p%7&19YRdQ2w8r3UDy zE#9K@f!Cdxl~-p4A5=e1dk%?~yKhcppX|trmOG?uut843g|Ej+y)8B;!k!U#90*?z zLn=rcDj>cd?tSyA0dgXIvh&RSEG=0_K*jN4J)~%o_sek6a>pH6Mzj|fN!}JGLj|gk z;@%eP68#2{6H@oHTu42TI0yU?M>fR(d7i)YtY)G!_B)l)=j5s6K75=AzDKsO`8jb1E9|E-w%?dIZ#e!!QSh) zleZSXA6TBMzzCn;1Ig|no_m1sr$cWX;NPkP;2N^Mx`;h7JWBihAZu9szoOzt7d~2j zt=l3BGw8^n%IAuoFJQabQ62I~-*An&RE_+$2;ch;h)1_?|Wt(%M8eR-G#7EQiYC;Q_` zni4@AvVyzB`7H|L5zAC&qP`LL!0y;R@H>P>+qt4Wbuf%uZ?;aL?p`LUxngS&{N4(~ zzaNZ#%cMy11P#?U#X|;aNdGtz4Fb%Q7Ecb?Hkwvte?L%8ef@9MkOJ?%cMpgjgRQ{a ze;!@aL;b4wH&A{-@rQlmCe@dI8yhqbRp|_HDGR{O{=(YvGDu2M=vq@NnsJDJ8<<3V4-{KhfrE4wL{J^?0rW*zUtxYVflnZF-H`kz zvY6SzzPeYoSF85-fREuVllORtGVP&t{FW%{sI6|BC`r|g-Z{g0V3Rw`;MSOXR5%0s zPGa-E7oSLtb5UT$4n5UKJy&LMUu8Ua?}FO4MtUu;3SF3gEu@$&Bs@0$blLP3%Zo}v zcf4U-j*j!EB}fs^e5+t!p+z{JRgj^5t4*x8d#M9gu!dRpIC9Q%MOxE1#t13m0dPHmf3@uf$BpX?bACpwg}JY`D+WmM;*NzEiCkO^FA45)CM+Ej>_;mn*?{5LZX) zMRU7Cpu&AQ+aXFbnjf>-UaKa7o-lmn$G>U`^*)aMy*)db;9if7D;k_Dm#!4I??#Cw zG1Vi2y-$gup?wKX`~)P2jA6;kdqhg*R{CP%73CG~cxC~p!ZQA2e)-Q>`JkZ?vYXR- zKsxt8gkeqMGOEXoW|AD+m&!0t{~{1;q);%$PlS0LWKKk{ zv{^nqd<7NLytV`tJ%tp@at{dGh#mCZ1O7sRIt-kPC!MR{+ons^n0p|JkL+R{^6Klg za8auzukZ5vGX+J2wsTEQwLr=ySz7scg;3u@;Jp%*k$pp1h>3HaORQ$G+ncAss@9Cx z7dMZ4;bVkc5Z|_Iv4_;**hk*VPEzrccsKc%Bb(P-fl#N~Cj*D)KAnEebT*FBZ1rkR zN;%8JBP9KpB_6SLO^sKahM=`nJeAwVPY$;flH@%g8TQ_#>g>+-m}uwZHl*ntdQRW+ zhiL7FfOD55qf%L9S%0kJmbrapsW2IMgjY#Pxmr^?mK#e`mZ?*7kIg={Sv>8JICE(| z?ixGMDE(bg^*Id|ODR5Av3=Rwh3F1ES(U@{FJ@Iu&#eM=Xlm&0v~8f4-i)1-Ut=l{ zk2en6?GXoMs6c$bWij-o?!6$#y0_&2`_;Na*yG(fY zQPhxJ(vWO$n+I>KD`^gvo`jk2UW*&GX%aEqOgk;wGtBO_=OMg4^he(71qp#Ouq@u0 z1KAy)EfXXu>5-}q;E%yZ0z@uG;S0`15~E&XX_hV}x|Z=u$>!ELnHDQmm2$(>R7A}x zz$+}SiG0~iEtwK#7meJKM_*;|XrQQG*+_ID*>MUIBgKMtMsLp;w4K0(_kdK0Ey3J9 zVER(iM?c*b)`jy?cyvdz-ezQyJPiKULb0uvbk4VU#bXO(oa=Yz0U1u`2QN!E5I2Mp z%9N2(;67l-2p?u4kOn(1C&KUV&ukw&8riI=l)%B3wq9*ElocuDM{Ru0VeypD@&&|A`<4P#suBLsj23INn?O3x= zCG{xWTI9u`eG*sDXtc!e+NS~9k6GoJv%97<)5!Q@n=$qmV$)lD%EM09Y*G-%!d5ID zEr<*LWKFK6QqoNK@-(6Gdxn-lw(bB8E6$^d z%b4!!<5{BUk2hH_*PQrCKkViCBo|%zpDJ8$fn|x<0)@4$GIaE|&oQ2_LMGd-*()RuZ!1wiebe6D!#4PElM@cMn1IH^K60Y2 z2yy%AwvKMaS-Yb_8@zI{nn#-cVKe^v;!S)rgak9MuKCL7}HE%hW>b#zg-ETBs{47@>1c5xNotlpGRt1rM+pVr zAh&j3Lvi$<$3E!cZIj?$rCqo9u5IlO_tAFrvvDFP=a( zeY}}c;hF?Ip6=fR1*6~y7jP}1yVG0JRx0lXKdhOAWr^F9P6=PmNnm(qpz*2 zvxEBlIZA{c|M6JEYNtH?fN#JM%GA)2ang;-2>0IO2`g(^xuE?Sb1Vg%bAuOhs{j{t zHJxwIDQ-&`zN+YUyUqH`)6YEXY94Z3wrV={(n3pb%_Nh?hi|* z?*k1Hh2I=QCj3e_|C7ia{JLE2kK$=RImAOKi}XLs%ls(>EA%flex!-NTH}{defOtz>X+&a;VZ7sV8@D|$)&z2v8{g`qGcq?dLiScNvjpaMl zY1ED#u;lN3Sn9K9?0j?d0!}&p#PI!7%SgAAR`eoi;%gJ$i<5FS*$ui+!u~QdZq&B? zr#(5=()wYW>9cxm&ajTNio{>#_^2a`O`mTgE{(+%L6+MU!6$A^ZPjkRJ1r1Ybl76q zwWVs0mKpKGnsd*oI*5RuXnEfC@@#HY=k@JyyqU!S9@JH#ZYQb0s4$DOrIjn{+4_7l zD|yMgfk-M66Vq-XpE%Li<79!Pyr0_~bfzt?wI`fEhc6)WBtD+kg{#hlN!8q4vFGOlTUlaJS`t?X_JU1n=idL=U^uk}*a`^yHmdb)K zollvdJ>od33w-(t2EAQVBL1?kYk}g8{+JVFh#&Q#O6d{K6Y8Wbgh*i+VkmNc$U6wP zHRBA=qTRa{HjJHk(meDaTfF`4&h_W=(4n)BVFJieyOOF?Kbk(3O+)P6%r}ca&gEnx zeki0lx0JkwO8c^6`0g(G&ROglW?~CRZ-5}vEM%k@of+ui$9i3SFxYyqG?4%InigKVFNc4K@5488Z2LX39!KFzYQhi_MVo;m!0M zRhu`@u2S@;x<|fmuognYDuxU)w3INj&`cHz&r1(B^r-MY+brgs+E@&@IW6MeDl8`x z%BQ$}e)LYWDvaCMJB=y;*hJ}W4@vNzZ^IW(`nc_bf20w*;%W9-x-n=e3#+5I5A)QC z-&9OhH-~mNDP3>jhX$j?=s&)PjmYA|bOTe}CbU%vWoCRoL3a@}pYg*7*yU=S!tk8b z3nqmhnXA{0J3pYTu6V<)WeI++&5}06#g0HJOHLg28Y*F$H%rP=!jT0TMFIQ>Y{loFhFu#j~hxC9BaOJM^{bm(@SqfU2v$}-5gfqVFkT_gb zt&Ls~D1N^@=YE{TF1sXqztl#gIK za+}4)b3JY&i|2YWK#1GSAr-TfNNIMG@K3xWpq1E%E z-(Er%@udW9b7?##i$7Wnav*VSPZi?1TL`wLDL*c0w#;IeD=Er(K)T|A+ABC&v{Ap= z?!j^vR+FnIoj$*PEt5s5FE}-Tr8hIjY(<1oimNH}NO`53{AdXO#d86*56|l)KhEh$ z`C#_PU~Lo9ti5E-aLm<}LuBG+l}v1Cqsq~Mbyed;^)T2zBEy~E24fx$R;+SmCJL?$ zb~w$mj%aG92g(b^(SFK&YX9ObJvHiUvU+JFs~NG7Q(FW}G7KkW;sq}GtQJqt=ehGf z>(gl{t?WKeu;d=Rc3;|r&Q0bv`cTElF#Gh|+;DvVAvo=>AZ4reeMrZ7oy9&cXnY+}2n7Sy5b(AB8n(R`)>dI_u@6M0LaY zsWlEXG4}LsN$ehlKBhf8izAJhM-ShfCSy)}N9z{*9h2s5u=T$i*K)|3!?5b7yCkvZ z3sl>ySIAA|pgQiznK7MB*gL7+yXEtoM18^{`!tC~%pkx9J$^IBi|W!j`z4rSoW*#8 zvb-XIKV*nldd^&o+Vefkw&Q70<}J~(B3mmjmd+Lv2bWl!@My0|lx8O%hp-a~05emw z=crtHsOcZo)iP1(@#^9!GqUg}fCFLE_0`(Zc$wC9VpgD+0A%KNx!|s2cjSIknCE#U zD;j7$zKVpO$lf4{2*xdkwkN#O7bAo zsfC`%ql~6=D{utY(Z~b)bt3?`s-c!vt_^xxCIW?ynH^0qK~wf{wNDH?Ek@*>Pb|Yi z_0_vipEesjnTNZ$m2tXDAFWzZy_Q0kWZIk;lLz5=JwCF1TaG+igfz7kv!dXb0bVOl z&(uEh)7-d8@$HnhtH%nX+Ieu>sKIsaa}Nld%2*7zqqj6XZLc(-oVcZ0Y0yA5vlit^ zBAQyq;vKQC7}B466R_qPbXGsCCjWXvwY=tAZH`+TI>;|)>l8@tNyq}#t-DkJ@j2m!%B>#8- zlmCQe=wrPFn5G6V3BPuNBB^u7sdGK0eH|k_^3bJt-Mx8G;G$%yfw8q~<)Qzx$CHAe z4bvWeypS)E!uGvo6nR~wGA@eP;k<&Z5DdcFRC5-g=cy z(}Z6LX{`BhO&ZVYBElINwxtj2L_NVug8{1bZo$Mp@>p!YT}I`Hh`XilAUXQUpn9BJ z4eP}JmP~wwInhfF`x2QsT8M(BV2vJ6%lP>`0NGD`lbCSZQO5GIa8D*(&W4Kkb1C~T z^MM~u*3G?GE?sV!@aRp)(xdJH709@pe$OKzahOVv)tLsaXNT(_cj~|Hm(|&nNpv1u z#HRTO-%PS)UpkIx?&I_@IFGaqzzNEk9;quvi4n zBO5ZCg}0uXn(-%ApIKhaN|jCS^3+JMQunVn;TR*)`YaV*Q#FtGahmt-OMC@5{BUGh(BN^=*t+p1io(e@RK08WeOf^#IMXs2bpe@vK^6h z1bl5&xcl%LLCGs&&EqVCdM^cE2fk*7jL533Es2WorH*)>r*I7Aqmu|?#NIMuuX!bR zlDz4MNMD`-Kr?iGRM+yyCO_s1)Ti=CbbKXWEUN)^D zyw>d0aSe4wWzz_AZyH{!;h5fi+T7es>`YC3k)4@=pTXyXsWg);XBIMvdl=rX*+_dR zk_gUOuQ)Di;f};mlacc43uE`LF6`q;K_AfkE&Ct?2UM`WY&g2>y$2?>Aj`ygGOMsz zeqo~8O$GI%X;Ie zri!FH?CQRw&Ti3=xk4C-Qn&Y2*-FL}7RizDX30wCoXNMrdq7_8uDXU9pdKV+x*of3 zS2Q#~C@r>g4Xzb!1veG#luYl`s%O@u8CZIR_*f^-DdObq%Bp^oRq@0?byuHkzC06= zRfMcAebb>+n3cMf9jRkkL`a!#0jM+AlLD~*D6&3hGy0bs3w`oU^-ZH}`RgT7+|?De zNfQsHLDe@i&+$gTdR=u>5#XoJcGX&sX*`|PT^O*kH@!=}K+HC-dK1yV*OY)ug*+tswUs-kxU z!wNieIw`eJ>w@W5;t3M=kP)R-hReKi*Aso7-VEXouW>aExL<@c5?5B_&Tq%#HFz%H zJwBh)nOC$Xtd3`Qfcn;aC~DLe#(0`UpR|1s$XA8U96YHN46LdvuhZ&J(v@H;q907h zN?F$}K_CwDTU^nI=Gq=6^8DhM*+c9w+riS%{Xi1< z`0(P%A$*)j!`m`_y}711duLI;Zcj8pw0g(M0++bliKp`RmN+A`eO6T2W_~X+Rz=?# zb8dcI5-3mLUYZH5>^wKDd0EXUu(r zwegwrMmhOWMtW^_xwV*D(A>O&>G>9w1VSSIi>C(%0*G=(b)F`~ucH+WCl6hShG(zG z^|nv+9)^mNR#xTBSrL-fxi9a%*qGeae8>w)<4SB${m}4v#jig4Hg`y8dTAZ*r^gqS}lHD0;e2#@E4w7>tC=O1O; zo47FF9NPfw)Io&EQ^CuiwgRr@GygG{r$g?ZF3bC@o1L3f`~cdUDElY}Wf6|qjbfI1 z1uJ`z{0DH|)k)h{Qkd%V1c6xni+sqh5vk}l4FpzQ;w7thhvThHb7~u^YmfJnrYS%S zxR^>S0CnY(w+D&}e5J*}is$+h1p_ zTy;b;;}~@rXQYtpkMTz&2Tf&LeJNk#Ff6~Pqr!bv@5nhLfpRUHmi_WQN|YXJG8Qbf zfB~KTh8#OGt)xi_Lg*B~LDQsRpX$^;ByFW}MvyJ*Dh$o*xM`>g5q3P#-Rb%^ggKwkH4zRf1ZRMD(m~hwxfSng%()@sdrT-U z76ZIN%rIp#mgTBOB=KB|slmW^K;&bK!%8HL&GsaWmaFv`!N26%oLK=K+7_x0cXy#zAAITMDiFTx~ zlao+59yRthZbWx;U z-W==6J4*c^B^>9-PYG!0C%sl4Yc7P~jNHsGuvHTm$8~O&DxW`^hDcT!+n9*e5e<2+03e&)r5pD~(3XoCm=h}H%Z_`w;c(yaDt6m@^ zwqtq+(zHolE@0Cyd-rTq_^D^M0n1QA{6KkSX^p8&xKX)G#M3rFO|UE`dn~PCFQOor z7oAmIv6mT6eg=J+x%8AxmVKWZt20)?Uzz);DwS*=ZWSsml%T9r0Z-U@CsANM4ACUs z9g9CrZGXR+F?%gaSwcGrvnl!6VP&+pYx$g>P8YSm4AhI1CXALd4se!m#%)TOdUT}j>73QubdYwCfD0$VksMtkZ5L_3elxzmk8I=}MM zGQV*f+eer)QZKe@#Jo{n=^EeG2lSwZnAmsm4Cq@;czhW-s3)Q+EXlQuc`DBwWAfyS zaKJ1~Eh+M2DhjUXGX7Pb@XX6R?ayuTAJ-N*5088e=IbvjtjyyV?Oz=2TUo4z1_F%T z`40GaB+ouZSJ_@N-F6UFFV@Vm`CA*;2B9*w3&tdSTcXDXn^(E&nmHJUM#)XRQp2a1 ztph^4;^S{xA`A@r7{;CDtZ8b3juq&WD3Aw;s1VkXLq6zb8)Zd@BuuiouJo{a%m+l$q1i#u^s$%E z9Gat}2dssb?-J8FI#}~^=hIasU@6VsBBlnYM`B9Kq!EZe5O^V&^l3wEnf}BkRxf5- zd&#d)`#7ue*&L<9CtLyt-X(ejdsrirH4VkW3hzA2^Rkx<452LLdk!?<(ej$gB+76o zDlQ_YkmXN>l29=%)Ikbq2euu@Z$CyKH!T-!c&az_KV;mq=5}NhlIi3{!TqrOVf71w zpU|`M^@~Q@@ZbJ!SZ|NaXZ~Hi3wBt!yqJ2=XC7(|lb)6Wr zU065KJx3lF3%f?^iuu~T>t+2r2PTh@NvOLl%k<0TU8g$*_Zpos2HlXE5{rQ4nbsv0Gy)zoWWIlN-ZU3d>matE^BIylUW;aXfbK%+a zZm%LlNhALmkLR%o+jCa&0lw}|@r9LU#g&Z}T=Vm?I4|f;W#;nL)g=*-{oD!G!*z7D z4X-C}&loioi*{^}U3gjQS!^xMoV3sG9BvM86MbBG07VPQMLXbSVXe9I80wD1JzkPB(abVxT`(Bj)RN zCxJCCL5SSfJ%-4N>NV^Lk7Fiy5}O;1;lAx8#!zdgI|In3faQCv1vXTe)m;M&m0@BZ z8?gQCMjid!qCcXEDJ&YON#mPkJa&QXUZRQZrbWgkUF- zcf&^No4O~Zt!Pi!qvfsGr&xCG?{j4D`Z^e!Vs>mi4#n?{6)xPEZCM((JS)O7*t*c< zfb8Aj9V|`wT5FFA(u1=*fipu(&lT)U&u&?J9*aO3wXS?Uv)nst3DTK5(;2EO4b}1V zb>&H|?(ZOwOh7T&M?fIyWSlP#u(C*}g8Rw=GpFwToWc|D=Fx&=fCg4%L_Q*U!coX- zfdG@m6a6!;sF4TzM^>)u(>*rDS&@`vTyRxv0>aPvKwl%p|3Z)nO-B;Q$D#9GQU zciG7;LABt<-eqx-Tf|dZh(nPjM7v7!aP7&HW(Y`|)SsA}L=4!L$VQ0MWpc8MlW_vI#z0%P zvp%aQ4=t1t5H@ilXu-|UCe)i0dnvciin5|$`uT(UO#70r@90kaWFGaVvmtVD!(*#G zG0k!A;9&m;4zF~Wm2jRbJfO0}N8@9i=;Ty_=d=+fp_rspyTLHR;Dxd`+!Y$8oIgh)#@{_!MEvlrxyv*_&>cDRjtNSZ5%{vhS1-*>5i$$kx zeb+OKk%JP;LY^vwo#5+<<>yH_al(}**iUF)z)+}3p`iG2OeI<2g7LQ&rw7b!bGIu? z6s&nNhNi)T$rfR<=0>s~D@4tVZ;BJ$2VBe59#4QK&$11=1RR%zEYFaGV;UN?HscqT z_r|)`uZl}?y*|uGQK`u68mAz{2Tit292&|}z4SLBx z*vr+7ujh=TYR!x+^-$q(FY`0)heLTG62bN<=?33Bm#vy ztjY0n#;>WYgMp(e4dAHi4Wu74Zolf8tuq%z zp4sd zTXv~s4Llq&zkDtKbm}QjDZg18uZ=P~H;2oqNYTtZE3VoM^L?9nq~X-ix43Xazo%C@ z+sMgh6HRAdA^X6hDng0isEWh=(~kzN!Nk6?hs~2P6N@-A(PzPal6ynF;^%t_@rqNH zdb6p;_dq3e7;}f20sZRxPjQX5$teWH$vJtv*9qYc5sEfB3~{N}r8Y1R>d2SOPg69w zzva`6O&5l2J|LX!b`gHdK&hB=D46_3c!agU)t)6g05;_AOX^3GILBi=lBc3~2+Cf= z_7%n+LA|4AF7>sDl~MVqb+76Si9OaOPj)*iERZ3>Kar5eQGxpVN5$Zu_=@Bl!N0Hd zzlX^G8`sD%-Tu-6CS`|oiK=uVsVHPc_^Gj~c0->ona(Y{ktoTfBQ>b&t=KhUVX^~c z(w2`iWFisztF+H8qPSr~I5oA^qxGGZw$yLw!(Xhfquw1&ITa?~AlY8SYJ-+0Kwv)2 z{`Y0Pu51_YHf7eqhqpUKKVOtR$5}i@EWHO>Ao=jEO_&Lu+2HrPwwtD{L(5~sYgw;u=7Ge%yXC79thauTqtIk4jPHSeN5$d(|48iu5!#=H zzDtqzTa$&}`SaaDGdCStiQNN4X@6+}PGm0gA9p#~7#^SxmNfkpk-y=-Az}7v|NDKR z--Vyx`)m7!|5az=-<2G$0o98McK)T&hW{#499&%4kGuH(51@7=|4*1y^0{|%ya}Vc zP&H?XYF!R;0?OJc$#(3&s{zxO>Db0L^YzkKL|T-Q^~c!z7kiH;c%yAt)A6DQm`gbm zr#dANsKWU33#6WS5+Q%Caq^TR#^la_sGdwsPrZ8K?UrLcx|e2E=M;SL;uybED+Xyn zL;Qu~t!$GAtG}5Zq5kXOzT<%A41@zBa=iITft^81O~uk@Ghez6gy$C=_vb^*T^vWl zD$K!{18iV7`FjAg2HA%p8#4Oo2uL^5N{n@BvhKFI6pp#bRn|pxn9>A5orHVJaJ&Xq51CSME9jg8QW(t3{ zlq#rIAmbhwdLVXi3)$>JNT#$RTDHWUCB@u=ig^H^Ix#I;mJ^xd<|k`3zY!e*dqdVv z9Lzu#Ns>*UgHE;}|LDSJ@|GTAUK)S;P@dS&*T6#%k4;tp-JCZqL#pJg{7w|#e%!77 zmurxAzP*NU*hX%%FJk`)*SVt`CP+~tQGj3@tm4P-tI!6T#T?#A#i z4Pw^1KY15~<$k{U7a$Nq`O7wc+2*ed3Do)@%8*2rkI)ixM4NJieTaw6WNJR- zM=1u_*DnX2$kG)_NSj`6???qhwxkJDBwbJBA%Z07UsEC>^NwSi&r>sE!qdQna;4vV zupon6r+EP|UkNA*^V(<5lb0JvtravrN!yYEXgV??n6fUS$s;xB{$$6@ZfxM@6VNw1 zO{?53LYopC`|TO$#8dmqQ{8Mll`Q;j6f`sjsCS2p?I)1sR>v=0@rGy3Hsn^{%hRYB z+pNylY!Yi|hB#XrFePK?Z_Pwc&$@Z^u%VVp5f!XHUvrKqjX|z}4)vF#j#36(YHbot zGiJR%KPjs$tLm|3T%ZYc@JOJC;R!BslbO^WOWIbLy>Z)oPhMZ?8zJpUSi%@(qt=Yt z&*?9ZB0+78@Qi1}QOzw_;~gobwWQ3bQkH0vQxT&Wvn-K3zTJ)M)#ugus9BdN-p%+7 z(WVs=MivHE9!FRE6=b=L(4++#g$FvGZnM2eDWy=35!9@X_&owVQ(15FCw2G++`Y~l zJ@pIY`;*P&ryrNUwqB5j3mfThXx|$|%&5Han3g-9a25|0*eo zrXIyfa8cD=Lx&@)9DJ=Y?tKSZetR)`J*iydv~wB9;9V$Mzkm&1sKqMi;~4h}6df_b zNcXj0ztXL01d*x@&J4 z9VuGyamUGE+s;i*C!9^k{d;N!i`nnKBxJ=%7_#-wmLXU5bpflc1FCbEFiJ7_6qSvT ztrc#>rddZGVBZN+b_DhJ`TJy^W1TD?Aao@Z#dW4Lq7%VX6bWBXuE z|C?RjwwlgW%y6ZELk&z6l$aX4N906J9jfzaD_^*2q2ab*NOVDh*o=lH+(1S9XLU8X z82&>jquVT|K{@h?KDNNZ&7@9G645pVqaKpInCv}Ad@}pDiZ&Re33%k7a(?d5%ivfy zDK|gQMDKWe;iehY)-8@_^uDWdtk;oOvOb;g9SSAlLkAMpQP}`1gOy=gYQfYd`(ybJ<9>s|@YjOc}GU9ET? zxS=UuQ_Yi=E!QgoR+e&wQHH zy>+Inb(WrYvf3D(f{?aL0R2GJAdVl}n5Gvg+Dv!ZQ5tP%>eaRB9=OD#wDo)f@f~)v zOMi`vx(YroG6sLAgE(j3^5)T#V)@kqY&o|AK6gAz$MbI_p8yl*DA+c7SXQpKstWC4 zFWmHR@qT(+a_7Ze)TM3ah>xn?b_W(>LWid8&WGG>7%zmrf(-8MWPji8$MQ0+Ho3ik zNb!wCb#0JS#RM)P0d@QWrGK2JmCSK|h{W?q!bV0#rjDc8fjsE~d2+lFgTZJV6+c8` zc)c)JdQ;&riEa1n%u8FNC2GRLB5N4k4r^gmVg72l`FTFPkm44X8-Iy?RMx8HfSNJx z9U@(;m{MyQMWy|tb@A8i)?eWe9Br84c~@;5rU9HHP}7OVO~uL97}>gQ&*H)836u1y zZr$g3HKIKxjgdW;eP-jJW$6;H!6P6HC48)B@S*?wn>ySovS2)uvCXOx9s=$ioDX-^ z4fS?|!z6|88`Yot;oI2d97osT)69gwEhwrG%Bx{3iV})r$&8ss@zIWYfH{1uQY=Q9 zLsSxSh|Z$~f^K2SIE&iRsrNALyDFJxc-v(~7hn1=q+I&ad2qr^Np3a-xc0sW4#iZ9 zxL7B@=kI<_RonIGLJw#D*Li&Y^rrlx>8DU)L7_)?S8BWwG#R8 zgXz?}WV)e~$|bhz@MQeXgIL@tEjPxI8CCAO?_KBD*pds@2vyk*t&heCU}4#!9Br}V8PvkJHeeG!QHJ11cGaD55Zj< z@8Is1;O_3)d6o0sd2`OEcfPqZ^WNO^MR?+(mQWK-oNp^EA3sn)tq3#Glaa1;Hy}>zLFT7;0T} zV|q|wk%+M~6+r?vzpwaW7h2+c;LNL{eB&3-B)rDK?btRCxuk1qQ|kTnBap7V;!ei# zcU@ta3pXEeG!K|G7^L9g;jiQLeuC7l?QY}V_s;0}W&-YG&}O+Hg9UMGa#`C-Qw0Z_ z6_IUe-cy}^YE?@7?`4BY06?|i<5qTCPr(e0&2n(|I5T@dspYu&#JA}&%?7{RqNm>? zI`xfaxk-N1UzF8lB#7N9Rw#?(2K^;UBMvgXE{2Im7{i)30gO9_QqxaR)WFE?PZ03L zW;wuJ2B!>G6c<}uFh9${rF&m}@XP}gHkO6aB1&k>@ZNuiDi&3#d*@kuy-`H|_brMD z5A1PkApgvnZ-GLg#&56DB2%VLEv22qHEct!C}^Rk8lKqEcL#y*4soM~psrebQ3S86 zrq?+3r4lc1jDHCx0)?2C)rtWoQ|K)3wzkqZ5u`S_I;xj3ZM`R=p%mo-{DHokcsP0G`wC<{yY9ngbsdQzq~YBSO3sFa$?RYbMSG`dl_Q>3E%;ir zXI}p8op71Q9lrO;wa0ZBdHm82uW3-!y990dh|-7@92GRpgcmb(bdR&(;)Y}x8M{`R z@sA%$dNznIF*exJn;O@s)06?ARpvdWJlr05FBiIeo1wn=`UK^a{Rnj%ziR%2lMA)I z7?$LtUCm?od9jMv1`Fimf%S4K-kA)(mWf*YPs+7*{%G|1#GfNF=XI*GKL%t-vu4rd z_df8sq+|x(3l+_EAQfg?XjF*qpGZ1bkcN@44B(-oAY@3BS?=HJ1@_GH-;rqfj)sxW zt*Df=XZ?W>Y9Ly};J6B9NG3zdrZEjlG@HGYn^~=||y{L{7A*N)R+%^xM2SH;Hw9K+V^+oeoSMk(Ax8*TNJ>ZzjOg``3n7^1!@vk zfz3>Sx1Rw%LomPq{D;P)13cL~10aHt6_^P`2LW>5KeV#`{NO(y^&iCPPvQD=I{kh% z`EvpJbIJU3llXsalfVoWd=BmtKH+)@WP+YsDeEPMds`HXtsXei>v6VQIk%=8$L$Z! zO-g;|K}M!Z8&m7QWA$jkw7XXR33}e+4^ZA|xiFd~!lI_#J#SHp^Dl8sCtq4fS^X^nE2pJS@lqmt+r+HNWn z_6%^&eMscSYtg{HS6yZHn7+hgI4AE1Np zcuk(^`m?o_Fbb^>e=7LFU&nbxz$JP}&tBudJFM;&qnSsoHAuxr5fsfS!IGeR01aT& z+_fi@RDtzPzRB}>&F(94BY0PAeWn_h@XekJ$6<)3Cy=SE=H+?Q2<{%2^058s2x3@e zlm!xN-jealVFlF;-ZjdyOt*WAJxCHz`x>Zb1OPg=)}2TBWDy+s7164KSQ-$cV@40C zO`MlwjueX;)xvr8lP!#_nssK|qa|Cy$cjKjbmfmq)%XlV7;7KD_!8Y7`XcMmKRM8$ zc;Md367Wpg(k)yO0r=#`15g=(A`*8J<^RO6VTT(V6UPMscF>>4KYj*qC%#Q<23Xow zo`Eeb*HT9HvFrxV*#gmpiRd#vt22ifzg-njjR7ocAZovD7K&)RI}#Mj&`9y|tH?*6 zS1W$!NK#g<<@|p$(cytN>-V_hq+~XYoGe2g+l)(OZQf>0i&hE}#ge0bqt$Nv3WbN# ze#!YzO+dTvXkQ=2&bEYx8n3>Ve)AbJKeGDUogfu~LYACQQJq)#HY*nsM;wYcUCy>+ zV>a2LyOQ!yYQNxETE!%+MFU|J#_)wn7>)U?H8Dolgf|)hW;jPu6UDo zXz0OHC)$mY9}k@On!M_oTbf!TrE_CfSK^$Ho)=YftEmyHDm@A$b>@iU>hMB_qnvW_ zGACZ7w^$8X>1vla+^MfI4MKy=zrwV)xPUc19SbRO?{=NsFLj>7kl_<6>Unn?CQbzT z9Q0gjW|I{itHVRMK?U9xZQz5r!TM$A)*pgoJT2$7zl7Y15wI z;EN<{?`pi#2A%gh9K(_c+BiMtHedO2jv%E9$a6}r5@fd?O4H(7GpeUV3`<$ z(_HwNlyv)77$m&mCvhZ=q>=8%K!wT;lWPr;+T-a6^3->y{8C5H+*DNt_q8G?)x_5` z@Psc*E%RjloTdLCuOe_K-L>S+E~#foQJZ3yA)G>&s&)--q-5P}8GKtQ^vNge-%rSk zIM16Bp?7AXpxfdV$@?&JG=O@af9aMKZ`)-n^RfH!h<_VkasQ>q`PZTd7iLwU3$`{8 zqi2X_9B(6r3ldrHzPTbY&Qy4n-)SSGN7qi^7H#koWL72psCEk=_H~S4rH35BDF+%4 zJVLZ>dvAw0)zzu|fujQ{<}6l9DQBlWG9&&;ZJt>1cM{oz7-QBhCSyv{p6B(um_*8% zmWs-yM4i{*Zg~XSX98EDhV_%g6LPJ!Qe1j)C^3C5ES;hiF>YnZ1Cd#AwRUS#?^_~i z#yL!DG9>+{Z^mhYHdWDGU$ENg?%NYhsjdaJskkxM^xC;#aGt71%NkJ)V5z*8mFRVI zm_YY5PU)&RwrR=B#b}%2klruN_e!2^SZm}q~OPfzdf3f7>83#XYgCIgviK{--^>5f`4t*IXENp z)7m=z)IF3DOz|zVUHkSrQ8MgpQ2Xxiv>`dX12yy3Gtj5ExRER)j+kWhmKDv6EA`$& zmshd_sdL3U&39p89|Hl-JS3UU;N)+65V{6#!i6H&?Z*$Ip)bC^{ulUoc;poTuap&dDlS#PFb_Z1>dKiu^lMxodZkwXu<$0M;k;-l{2>{6VHTDJD-- zj!pp8ag7o@K)WMb>MdJaSARmDY--GqvKaqfU|iUi(d6und*7=#e33Kycf#Qs+z8?7 zyVqQ@vSEFzccKCd_q^drag@>|NRP7uJ~9vmlPyFMmE0+QO2Fa|W6Cd@pG{&a{Zbph zirq%m0Z*w?8AM0rzu&VM;o*I8AK$tKGa`9Oe~`aJ<48(rCiMRMz+C4g^WxNyDR`R9#o0?M(*J+i1_?PPTqy5*6DRdXLNQ^1Oydge1xI5e_Ex^1I#ZcYQ{o zLY!OHo*z@9Z-V3^bz>$D@3)rn**99#0nh)fZoIFKz`?E1bPqH5gn0Jc%F{KmbwXpp zB$&5(dSXLvkHi5t)`oxW30|vF4>Fm=hgGTCAxRZTb!C%|7g5HKBeLw%MOAK-$JDHk zc<+0&A|*r+RxN&lo-i;{Mj}tSSS3BH)8TX9G#B>Ai{-&1u(nDgoV2yBBLs!dh@HwJx&j2U0Fo)<7Oo&-%54Q9Z zWIl>4`PVrLf42W7Zv(kqkT(8P2#3*!u6gJ!(U-;r0Q$^);B{2n^RoVI{Y=XBZZ6X6 zc1(P2=@`6DS`E{<1}7gaJr-KmJT`dv@GIi8TrT!^H1yxrX1q^pvUllRB3zs*9!@@a zvjTG>H~Q{lK`4hMl50BglG+o`ruH#%2c#;K-zBm{KQWHcbwLg<7^ww?6M8$?a28*3 zpQmf)=*hoJl;EBwVtW2W&MZtuW)B1<*9Hy@grkm3Ig8@AY4{L@l%T8Jj*LaL; zwRcF+QY~HWWEIraJ0A0u=%Cj|E2buhs{Z}D#z&5h@#ipTDHxNb$v|;W<5p*DozpH@ z+fvNK$JcM>Ku+j|W`2F6Qz1(8RX@_8B`$X0x8YGm3OO|! zySC}syezv3rAY?6&Xajbfy&^dbSn35{5PgNT7+cZE_&OtkMb`HayCU)z_|G#9H}1X zH(?eUyxMw_MBil^;-{+mrKoLs&^5ySJ;&ZZl&)gP+#X`s`f&F5pB!Y@Li}l;dYB-y zCF3RefAho2o?D{E26trORgY3jGnO%J#u%A%DeQIy$ehO7BlD%f2yZ8y+|`6?w^}Qv zF64Rn3K1Z#3FQ>=_RDbfhZ4>-!U)}cY46L~*K#z@?hm0D2!}HZH&)j%a{xDpjSTmb zMhVKf5#JSKrtuRU{EMoW$g>Bk~rt!uo0!^oOT);0xxY9UjHG zV0|Z)2p*jK5QBt50(sQ*VMxF3*ru5{R>4JHMTfAA_>hcKGJLL!%_IT&eUiOau)1T` zFZHW@S &g|ls=+1#3aYvP&RYozas%8ODI-h@j2ui-|>UNhFhYQW{o>WRSng+3+Y z*Yn^CF3*}|to0#Zd~rUSP$g+Q9zqK+>M`U_<{%2&cltfytd;-bKJ0ZBQX9r7CXH64 zr!CouK{|jlXn*Zyh-chKWx;^N+E9G#PL5eK+!eOzyG2-KW#!KmA_(S7a7Q}Pq^!$qkIo~^x)&JMp%AO!oT2#_aK^;N3F;j$e^5$nGj ztx#;|f;%ck_I2@%qv96Mb5mL+KNfXDS9JtKKPkkw-|)-d3zWhtODwTSco-O`H>E;q zL%yM7l^9kVsoF+2Im{#sCzP)QU!c06zMHhO&TaLlw@AVD7d8&>J3UC?QXv^Mbi^d= z=INt%hSlC5Jg_jc*^X;uOcR+x5@scZhtP9nyQS_*RO5Sh+NefT5(>>dOv zv<_K3?jT)O_|=R^Y$1`N}(Wh9o-Lxtz=s(d-J6DMN|0@ca{#pGJR+4EIuB z$9Fx})72Fxe5(7}f`W%S@UdXpi=7>%J#7=-mJc-z7WixoDx0iugO2o(Sts#CmtQZ4 z$I|pm*XWD0SHSymm#$6qAC4xA8bXLoKejuKCNi-i-&fhj(?Gj2(MC#^G|@_YVrZRM zhtN~+v%J4OmqzcGAUW!8=ppJI9{(5WVS&-HE_R2H$!u96ZG>}G)P9e7b3u5x=4S`O zB&^PuyLKe^We~Ba$KDOS&n(PGx~^5**Y+nU|2&kqJdA_;{V25_vSuxpM(np)uhQxv z`!5R%QuOrCF}^ttXF6|1<`ti?NsjM3TMg`aCE3)nsjXN~wPHg(Y54*Bqte=>!jdEO&{{NYJb|%(JU#_p(yA zeN?vxts`V~fI16jEVkYv^Dw^mo6Y2TBYvHkzx()9ZAU&}d+++wwD5Wvu$xnAT^^#P z-}O>~UaPR$OL5@GuYNz&P^g>Oul3Q_TGiV8jONTaR$Wy*kSM-oWk_k(PR{#Y?%Hzj z@Zq3ms31b_egIZu9GU4BneMY2nCZVfacI3cUTdS$mK8#o^v1}vF+#Jd0RgBA^}?@E8?7v$QzuQ_+7g@8B_>p`KAJwTQFi9Fw#vTH0~!p8I&|tNe~7 zBG*JxRIoUMyNm0%3_u}C&J4VL($kHPWnqgk)m?CTqFtr?yr=P6VeYx}W6_NyJpLDm zilBD|mcBws*KTho&*dM(Hu+?8Yo&<}Lgn5p>Ku@}o3))m%_yWogY&M<=mNyDu>@u782PW=@q`$d6{lKRbBknUU?_R@fa=+a~Mmu14aB z_yZ?s)**n>H)&gnYR16enqoS0Gto}*T4<)XkgoIKF$JEEyYHGe@5d@hgy1Xuxvb<# zyoel}n{Z!Kk{BYMyLlWOp%DCuA`$~kcYh~#R$U#$AUrNq62$mK=NvdROen-vV(6yS zivq1BvTSC$@vLRO2)dz@NsQlk8JpVf*1ug?)iI24D^C)MhLZc8`rg6lTAGwOKtGx6J?{|I%6cV@@jCCOr7QYOeF0Zu~BM zpkUH!V@kf&ww#@*{g=>}=r6v6f_{Gt{FB|l@+T-1x~@4bv^Q+`0GdLBUf(wZK88E+ zLyj;R*&Rgh@ywXqcv1K{BXK$1gC*}8 zd|LU2Hb=~ADTcRrjXkB2d7WcaxDjcF1+d`$@UWZ}17s+hLr80iSo;Sa@@+7eM@ z-T8vGt7z#ejf4dor5h|fM$Ry$UQ?VT~^M_#e>@W1xXlX_v zn1s>0n{}v6l&m*AnThFOIub+~l;z~FGL99GIYkj_(&+Kl5Lqe55nn|;>dK9ncdd(S zfzEz)myy}t(0x?`l+6^1&?qS4Bu9&q%NRP3uu`v(GW1_G|MHqwk3q~b86k%A$s(%! z$Ed8XA*v1*3)nO0bS|{1rL`$stkF3T!6AqN%R@Qakgd(J^T|iks&i-p^jN6;+Q`bT z35E&K6c%#V@-e;la z`oy5_Nm4(V*Yn?XkEO~HPL>V`igrm#n@Qe3#M|}UnvR!1kPkDSepV2B; zTTHa?!Kh1wP$#iKUU80|q+9+1T{7<2xzXs!B$fyQxd;L&wjR6Xozz~#>ZUv0$Kw2U z03q@G0asav-2C5MR{q{n^RN2gjv*l&Xp<-SMImnXMGzG~gc1+aIU z6&EbXyl_3r=uB`6*pvRXpHj*HpI}2C{gZ3|o8U&IrBgrv*)32$%J1*hAZYxpcR^zJ zHyVByl7hc2O`yCPK8lc>!$EF71d>i+Q$Eab`ThU;4r|Qe85qYkSNMsMiC&p+o+3DnF)XK^)M0wWV<-t%L?;oQA2nzaby3!86Ib>v2r!$Dz zhmB*GHladhK<`5 zvnf*LkeJmQrGj-)s5MiGb3?TUQuTFC8MK)Op3x4BzhW52pb zSff}AJzCE_a;E*5Za#a&%MM-T3}>OWnv$EUoE7pPd4gItl{eKW_!gu17X6s*u5!RF z%4aRR^u^nZjJfrVDcp>!V$`v{ZECpa3Dn0Rc%Cc_0oZwvoD0XAFX#2aN(-_xF$-+5 zm2h=dxNh%CkmB^d{zx&!MbBMP^qk!3cX-Lm4M%lZ7i2V3I=Ki3Y0mCiA z9W8|#Lr+5Mx>hRHlBVh%FyX!1aZmtazr~DvnI*P;g=WN9>|1+Uy9Nk1vc)^LD}^V5 zJ|{r8SY*6;HldjUfG^O)H4LQL$b#cFcP6 zslH5l`t!Lq`6UHI&L>NitIW)sr!Uk9l|bi@l3%ppP~Ie#lg8{Q3=x%J@7APL6t#VR z&5s=;o8m|DO3tBjSVB?aywFKZH2ko39$5Fd*v-NS27v+rsVQvY0ZBj)El|1fiE-93 zU1+&C!D_02n}Q-QPzthcQ$jq0meAy#&?8n9^dftQ(7ST6=@O0w+L^cGOe#RBM6Rw^ z&Q#gI_ChR?bu5uKyqler%cURCRkR)A`s3C@_K5r?=^1B9 zj5>L4COtpH7V-hr!Aj%O=xz02&R~(g3%Og1YbKN4*^9GRiK()`Bwzs$4E?_dhTf9I zPmpK+=G||iF$6nr+D%M7lHL4^^kn?yCY>b(Ox4cX=Y7KX9dADr?fxiK9Yy#OYR;4Y z_zy0T-@8Ztuby9X{b6s-`9muUvl#YQ+UMV52mbA^^1rqx2VvAA&kt)-Ve+!TgdL7F zN>#IE@BoJ=lD+$qOj_Vmt|GlEvBkh5c*Y2TMbUtS_OY(m0JU9j>E1%9dif#~V0eOF zPcsL{Z%*NJDDBqWT|z|8NYm8$ED~AkE~F+|ivy9XNik12&IpH}6@DsxrMk`I*aXBh zW~(NdC-MnHGGYRc?H{~(UH@{s+hnqMVdcWu%pq>GPVLmah zu*BLq+R&AC^0a~U)$mA3CfxO+H!vtW3iox`TvfP7l`2J;mAXLQX;*WBe>Z-*-JTFI zI{2id!2A8mW<_OV!_>aD_`31{u0|p%dQzP0s9L0>40lh_>wPOx8z<=i%}>&qZ!4qJ z(%rgDu25)WJT{clJH1PL$)a+dgA?y~mta7^9^lgIj@sV?-vU4C7ta=PU+YO^pq+8i zh)to^(g+YQUcanMWa)byq2cO!xJE@t2Ol$}l-WJHo#6WRx^stD+d!^zPTsDNVU#zX zvAH=68)TgJl7e+PEe+(H`C}SLPh0xMqXlCJzt{N*ngHJc99!2DiON-W%r+a9XS7z% zoyBJ|O%Ms5ji8?1UCvA~-Gilw^NC`?%v^m7w<<{sHwXSqJGICk%PbLbco-EFuh(PZ zAG@=|jsAYbv4?cv7XbNY04dj++EOR69B+DEqD#?E#qLCw`+mf@M;Qu#Q7q9Xs5O`URkX=OBnQzE_A#;l-nwU!!sUWi*N(bxY@Szda=mu}*R-ph!GPsRSxzllcMh z=?fJ@^s#X7ehFWLWM4y+br9bQ*kQk(oviGf)T~viYg4#1x+ND|$Du8?qp*7y>|BIIHuyW z`wXQG#wR|Q`nR@W@jaoZ+XRi?iI<+6i4Ml3{&WqYhg=c5YmYTa;d|HSl@Ou(b9T2j z{~0YoI^%N{~F+ra{p=yUOwL$0DRxS9DxImwh+J&fY;bH23QVG-we)~0afqAQ}Bt) zHm>TaWF=(U3e0!+1IVd8&gTcfQKIJt*Vw>YA&^=^YJSv#+%aYhYo!JF;`T<(b7BQP zo^WK&fxQ4PI1G2o54x=%_7n8z*X3=1h>ZtGPA2#QAlyTs*Nx|oUjQb{gBj!u+LGbz zi{XwCPJt;Nb$bm=lCa#rf49$H?gszWS9J!rryUbKppAi--z?qhc_QLEN>;$Cb#9gx zM*up)KYp&zih?^DEN~lo{M-)4)bc2lhw8iFf5E*H*Bs0E2o#uaL;wu`*I!R`CTmQR z+6!%u1DgJ@pZ|~wygs1&HxfHQ0)dJ8O9Y|UQ~j^PWx&66{GFLQ)&JsA{-q1_|Ck9B zznkJ5wxOWH-_Juy;KpC8A|QFi&Ps@iz&Zouk{$s|Km^5)W6u#lewOYn7jWU;-U(v< zy(>UNI``j!8k~J zr;UdqCEY)ej1Aihi11I_eR63^_r0_#<~BCKe1+@3(sstQM0FMN{SA^ZwP{~(yPuAM z>Q7L#>C%G(_yJ)QF?g|rO5K~ma^B335nl1F^2z$3-J8?4XXE#FrR;#NAcGm`1|(%+O{&WMLw}b77~X>^hM!Zu12ii zD>+L><|80c-R>dg<(aCdhR(?C!B0>X4an%aNZRH?>V4S8!>H1RNL$}d#smGcTE1=s zqVE^yYg7oBB9T+usv7-k+_rhooA<=9R=*xufiDM685IVMN!s%yD^j$o8?};8CAdtU zfcd9&Q@|nYrHZOHi0s8pjG}fmQ4mFHW{YRy>fhejaVU(=NsFQyH6hsSnU`m^8MPLR z;@bJDK^=9P_(PgG3ffl53`ECP#*bv(E&IDy_ms^<@uls=>eVEc;$n^a19}Eov@6`7 ztj=`B>amOd1SupOE}jj>=`=yyGhVEUq?#bT41QgR7`kqxxPWjgjyFjaIL=Q~V1e&T zafdPyIGt?c8vbNCin>duKzF%ffV^P~sZeA^z!o9laCktXGTCmqIY7$)RI%!%@T%k) zf3$L@uaxG=XN2`?;&aaz@WUe?FE%G_O5H3fckpj(7xN(W{6Q-pcZ3Eu_8;eJ`!)@W zUUG=sW0x=NjQyAw$(p6f|5SD^MLugmGH9VfBT3oKU-R&T2G09^u}0yTFge&|ML=(J zvV|#sAi-f!e_VJF34wxE*WjipnZcuYuy_k2BlrIR)qxgZlJ@41m3I>x*TS zSXn-uH#Q0GBT0+&M5J5}A}osx1uYA$phDd~8tCinl2A{OOP9ed@zf1pnYO_tt@!nA z)fWO`|C0feUhCB#Wd@c`H6G|EBN+XdD;sAF9wQVl*O%Wne(~dP@FrT7ZK2fMrTBjQ zkSXdzPT;?)ai*J8Nd-^%9W%jKxrw}VPMn{yY-sI{@!jnzk@W#HZ93`h(@OIUBC0p| zb8lW~c=~@!Fhr#`3E0L}LQc}T#?(ygNbybfqD_6Oxt%X9Ax&1;B%VcGT;&X%HTzu6Cy|R>9i?x7=3paA@_NHN!Ij^=lh4c9AnLFcrChOR#kZXGQ8xubTrEv5@ zIG0+38zf-D0ZxQbdF`Uc@_YXyp*>)~+@|#-K`o9U&c?KC!2@Y)M>`k9=90aDTMb40 zFG;+DJGKk?30gOug6hA>7ZAM-e2EO~#bW*~PyRmc6BKKcGbhHl1VrTr!MW|rQ71A z+iSp9wNRtuu<9__EeG$d{YpXuSu2ZdTlE7)ao%Bm@>Hm$3*q3Hq^`3H1k`E2IoW3< z{_|4L=Fq7Q4;jhfs2kWB^*-4!d6we!U&sCgsVAITF=Ik+)#@@CCyI(FSk+Z3Bol9h z8OR!=>KnM}_$PtIN)RX$VccE$6 zDGs-L8Qjip<&SAvs@^A`=Ws4F(ak^M|aiJtM&;Pxi>rUC{PIu&>vy0Q(Qz{S|K6eNVHodqeO4K>rvT!_u7&zqZLU(T5GP3rV7J96K|E0TZSr%$cX zpenjZt>rO}6qEj=Epoe3%&1cgt~)JQE*ZPE~H4@)oBp_dVWmh_4AU3sH@Bx(gm&4qv;j z=m0IJ?A%Kh=mI5bJs9UZA)bEzrmwz!J~g#zIq5H_8joCJ?tzi=-Twr^yM~?_gm_+T zCYOuZ*p*tQn3%O~25WuK?Q~S!e3g})L5H19jh+zhboEJj5)!gfQ`5qAEW^ZpW=A&O z38!}&*gcpb%)CSqL4DW&ErYIOO4{w^-=t&U^|!6*Xw_EcN3f}C%CGJG1lhWeifk2C zTi@LciypVhtS?79B3WF2GWGbXH%~(5qyXVHxeaWY6GO2u4#wD|)M|BMculQTI%%tK zQR-qaW6*2K*aX&#JPlnRi6}Lmnp5O;Ejkf%Bl|eB$=!)P@SKX0&fU0aP&r-&j(^!O zexljN#;5Ry4sCohyo?(_LGa*Op zO=S98k~I~OP>qCfZhedO=vL&Tm?>pZSKZhJiE#{iAtK#bLg#@Yz+s?1-8@k6SyP-C zH33;zHV)ylc`!0FmY4;J5IH9}JQ<63{E8_6M|o-eKD?$Jaxu#LeS5o%_^O+2elJC! zF4L$`#F#U0I>LuR`G)HmRib10pouO}mOu^J4#A)G&W==sJlTq-F0*WRn-S-9bLH7b zj%N8Z_5epDYkIOuB)i0XDmEV`KEAozeb-41)U`~k#h!f2xNWXH!V>ln7vvP~1o`3J zMJbZc0atpx@cgvy+)NYRaw+<8X8H!WR#yZwHg=B|b_y-*b>A46OGJX6qWC(p#0?la zsKcOez@nmiXkIQb?aS!yCRJUPaW@pI^U(uPluK6<5G74~+ND)_(8D>qb<^yhNVqWZ zyS>Lv2@aE=VtQU3%LnFtu{OtliZbXRnTSyBQQQY7@nlnf#|j{)v)RicbHN+1@MW)S znZ)m2lbbxhE3fs57~i4lbi5I?M~wN7^_KgUR4)}rr+ZWn>qwEJVDjqAnvRD=jLo=Q zUY(~!gX6>5u2nUWWmI90I91>S+W6Va_W8`0E?S}tzck1rcdE#i?-HBd#B5mIysMin z!e@^}(JiDxF8PFT(|HSXU2 z{idIw_&$Z5)}<}u;xC~u{syb0CSV5>p7{y7IHH63TW+XK11cQ`;2F_B1p^8s%fSeq z@6++>(ve3s&$7@8-!h6&$fSEJ!S7hS{IAI$1S|k2008wn;~GE#{La<}-FEzUHLgE* zA1UT>fZklFSk}_X6mo!+>iLNwD^V9*(2ElQpFdvZQhX=CIxO2FbBHFZdD3dJj{Rlb zkG1DRtnj@B6zyIz-#teX3LVS!DCt@WF*X0e6@zQC{2G~bEt;47JG-uT+03>pU3M9P z%&}_@SD^C)y~b2o2@V>#N>|4sj;g~2tM?{D%Dais@PAa9R_-6W*=7wY9Uz;&Mo$Ijj0=r>^a(mchOUaA`A=omL zutrOwhnKKLJHp{H^AjL;LL7UFb`!>B-66;9v=dZ zv0;2Qh&`03^pZd3)f(ZM+GH#es-b7b{d796GvuNPT;Kw|s4~dzu@rn%JIQXa-;}PQ z;$@L%aTLbbRC^Yi?;QArPimGksky42up5bk<3Vt9PwRN{^5iIJ_+%p;0#_;DT!2YO zw`ofHzSMS1o)0dd%w2y*bCP&-b@!AyVQfF&A74#+%{nHorZJv6TKV%WDF)p3r5$)_F*$ndkq; z5)RZ|ThVq_nwn~Spq$ON(K^BvlrnODEJtaA2@y`Njhxy~?+0 z)EysK`C1v0K|-<-D>@Pz6KpCM+e4S2Jb$K#h&$H=O>d*8_u#lncDu!ke>k7v3LOtA zS?re5A=l~bVL<72nk$#t+PVfKY{2i$Zhan`%N_JJq1LORdvVGV<$8!qmMexxgq(Ky zS*d2?b`NGPRK9m8L3lirgnBm@6{lOX$pV)su;(0&HnLghbUt`HQd;$Dp(CinJ5g3<||1>_aVDcwyki_vpbu5ddLF3y5?D_v6(s_r$lz7 z@)MIMz9PFnY-T;4!w{sdo);w2o4niPezhLJex>6G#%>CxIB4ai&R=vo0~hgsAI9QdipG;BdGhShryyCUfPG4a1f&CB3!Mkxy`;y zx>+}zd7TET9kpg-h?C!44vhj)(Do&lfIH!S!IuSO-+Z2*Ae8i+ZQkKThO(I5)NyG_ zrSM=SiO`05K~*()9)$3 zUTu8*av^l#iPZITLR#tbbSw4o!|Kttj>e4BCB~_h!f$y!c;6O2P3Ma^)vi0cH zV`mxFH+Odr`7ZEPM5}vPQKq!1UTR)r`-{b54n7f?)6>Ik5h{abWKVC!cdV2;u8B?B z98ylso@q~hNiVZKWbB+)mZ)S-eippH_{OI89fD)l+9t=gx;A5OLMg{X-MI(jv+C0i zB>3Dwxp~52uzN?j(e;k9!UMFFfnsLODG_??OhCZw_P)qc+vQAOV7Z}=1z+Wa!8$3H zQ|06HG%N)P5j@Z_S!R5;PF-$6OHkxkA7Y6=62@~DdMYX7Gcl)t+DYs-1pE;Lahlv_ zsC)o4bNBD1yW`0MQW4Gg6ZGKK_scubq*@ETd9+LMn>t_)kMsS!l+cRx*S}s$h}*ZS z14@$P`P!gp=Um)?+<(pv^m{M%KRd?^;Q!;6|5wfb)*3*O=VfL7HnG5TVabA|g^^{3 zNwt)_@aSP#(|~wxDy!y=kz>S!|Xs-_a+T&EhFw-PG% zvc?FE>*0&09tjx9BBl>VXvm|W*e3c>$9f1*YPeU74ZaUi++Crm#8MlUOPgJ~q-&tx zDw5zfuZquDD=DrUD_ZcF?HgW(Rf>B8?CG}s4fV6q_il69`Kt!ld*rk&I;CLc`qpHp z>Oo3s4-i=}NVQivJ?lLY566Y%e&SCMb^ji${TH=SeewEJ0|Vba@TpuGbf1nH78V-L zXY2NED4W>bl#rf2XO_sn(2Vj05%pz>Je4|hQceT>qf#ViFm*LUHgn0QTZ~=DzR2_8 z)LufE2j0wl+Fbu7lJaCRrm^luU}o@v^T>WzoPy>u#N2R_t4XGl39E*N)1RCA$k5)M zXsx>8Odx{K4$FK--OkOb*y2o^%Gx5QK|rLN+*`O+Ri8l3H)#x@CCv=Ch3CH7S&W2*B zc(P0=y_7DGA`^+{D=9*2v|Oyn1TkdBwT_G|vRH=0t6oqV8m`9;zs6j!lc}{Rv)~G` zzf8&fxMwXo{H|UCn>@*yA~AbU6EoXNgGKA1adXjQc6f7mSLNCSC;rty-D}bUB~0wC zax!|hPEUng+D|SHMLHI)t84Ze5zHq;hK*k+R%(@<+{`m~QxZ8Gru zzttThQ6eYCCNOHO%Q5+=WuC; z#KHXz6=RN@=o@%u`NKhWu}ASPjwKg<3T?Wb+ok-MRoT>>N5vKB*smkC>Y^3wkyiS) za3oi4s4Xh=mke|)c3#{i#!*{;#K~1qU?s$EqoVS+tnEsu&fj&LA!hLO8RQzQYIbvK zrX_lWF#kB`5aHE5lnI4D?Id{C^dbmqf%uWw<>C88-dV;@3LdR=03Q?HFxt~oH^Q6x zO}i>soizn`FZ=tvWus5+K}-73!&fdhie1B4Q;o!jDLT62qBE;oU9(N@qtg5aNZ^*2 zIdH+!gcFPO0>Q_q5mL4p&XnHQ$wM0%LNyIRl}E8Yqu)4r*0?uoZM=D$ zEE6znZE(E2_L}OfNnd}Kg=8UQrn61t>mzd3cwQlJyH_$e2fHw1F$PAY546{fcX(HQ z^%rYn==U@9?jZ?c72z)Xz+6fOPcw<0+bJ9Zhd3gBd#6Fk&r?+6Hqm8~t2w}Md4*4~cK= z!PnsU&5_;S2n;TtIi%!CK?1&py2jgp=fgM~PPV;YSHAV>E=M|qQ^?dlK=Q>I<7+pw z^E-T;L&roe<7wr7f}FUS*hW7LIdS@uO!-ZeZiUH2E-64VW?z1ZnUxO68|}1)V-;qA zvyPjI)T0Z!P_1p6Sdr&Auv-m$-{3)J>i5<1ljZ)ilWND<0e^WkaMJ||3=03=U?z7$ zdxg<@dSf||+ULx}kgXS+fKR7z-1z!>%;mz^0RsAwi^96= zp@0=YCnVZ92|SxF>en2X*~}?px?H_#TA~u2NNex>-1*~X*e!f1%#YX`*2ilic@J@`9nf)E2GK~(GQ-9}swt~N485rI zxTQqC^Y)l^4k^)Ayjm@gYU22qrg{;E*B*PVs%?DnPO-01d(X?P&564{w|l|m4^gFl zUocA^eWfUrRDvQFi;U<#a#f^9CpzW)ASw5n#GP@qE|mTU&PL_|4b?32=dl%gPu_a! zCnC#A(DEJ_@*`pLbPAcI!PcomV6ia&Ng)*M*T! zU1&7LX?&868rC7aPs;O%E+N36TCcI1_f|erQKnAXXer~y=Z<1;(Fye zD1|fETlI{poH9o9Hm|f4D9>=onWCT0&jlB*GEl&869}r?z^dat@pn3S``zMdTD#?b zEY+Y&U*F^K$-xQ&N}5B&+yveC+o{w6qW9A^bDbvGIt)e2adFK|EH}i8IoJl`Cm0F2 z{0Vtp=H=sB6Z;vSHMvyrIZKd$0EhthFq?)ohrEzd!YZTS?ewm!>kn2D)`pOV6+eD* zOyu!~_2Zg$5)%wNlCpd^FNToxE?OR&b;gh6X;#)WCN#| zY`wcE&ij>vKY>=Hd*miW7|AoI^F^|C|HnIndP&SJw zGqyO0E3iAxR^Ibv>+d!qeq_y!j}Ldy^>{ni#9qZ-wChGYN^q3GZ8k5=uevZd=wtH$ zHkc8s3D6&>3$nYQZs4w<@`3G%9?3F&A-b zs!f5IkyC+IhY$Cl`nX&%bwFn0*Y$G&0s5q{wo}PmN$WxrYI%&BK|hBUzrH)Db4=XQ zY^KM`gYt0p`^OgDJxcCh6L!9uX5bWrx|X$*M)(yn)YE16FqdB}-5O2Yp8f;{-H;G0 zKCggG9-MF6+PsH)OuuBDb~$^Fjym7h*P~Fs`;z%yI={oBK-$#B!pp(-LH>mL`YZ|H0l@M&-3^*?t6q zYXS)bO>lSj5Ind$1b27&2n2$=2X`kB+}+*XA-KDIc{}%>etmMf@9lnfoHxd8`N3dI zZEEkTVy&uGbIyei>oPLlh~;XYJ77v8o0wJg;;UA5fjxuaVm4%}P4y!@DrPdq$1Vy$ zBr@+dOj~EV_~^)rC-E?v0g4*kqtA)$N%UC=eovT)2&{~SqMK1c-riT1d9BNm1B!)L zlCE*WC^IkxJZBu&g-KV5WEr-)d*$MID3np0*rg|9T>3-=2h4{_;qBF2v7w*7?%9!z z-qiRRvlG166F}OoAm%4JYfV#TY53?g0F1ZnIBtBA{%x^HgGjv;&CIX8AD~t-dRfz) z*B_s(h+9fIn&TYA8GOv~*=CbH5NP8rZ{_5aq-HYhK>v zHgl=J*mfYP-?UhY5OqPXt}6_|dWzJi-VZ`dg%XNZN|vnzt9Z!a9*B-)Bv_J~zzUWw zQRB?m;c;)J$z{{*1s`e?9J0-t#1ULzs+_0FnKWUfS zCF>Vz_b+Eqm!I4J2hu!-XB?Z@1uI^vH*G3^{pM=g_%Pm#03XEZOoT_}(}M>sUKu+( z-W)Ji3XlN#s>iL3#vRP94@12ODRU~tdGZg(MplwE(OW1;h>$mR{n{28SVx}kH51Wd z`Hp1m!lYD)ELa^ygy?5l!rP~m#tq`~nA$Xkg`h5as@t0v$WT*Yd_GgT8maF$su zY7rAeB&N-P6g4c+_JIKo?KHj}t;|$zFUdlNtR$~s0nY?UQ$%brwGJ*yj7kbMz4L*qO&q zTR%W!wko}3&CQR%-u`By7I;=#=kX<$^I9`=-!S;&xoG7y)^QL^tsU*LMX5SnI#_?$?G?IBuoxL0hyeyb@BxQWNxt4plW1c{L`>I9i>3 zID2vt7FL)a>*_{$46YsTTXs7~ltB*zA=9Yu(~#(!JR!HXu5 z^j&4bvNW^0ZjxrLF4jjBGrF*$d$d4r~d>K^yaSo;4!5vzDzORSk4E ze8Kj}6|kHm4~nBl)GSSO#q=L5-L9@xzPcOUOX7PlS+TY2&_?9!kx+!O-EJK?>w)Mi17KHB{^3a5)BeAAueUpFSpkZ2R z{>{2@$nDVDc3X?cnlWJjTT|5M-r0(CRo80miU6*`r|U2~Xj$BH4P#+(s9Ej@Gdq-@0dFGYga3;2L3ILxcpTiyN;PIvzEvRY@bn@irA)va0<4#0%FJYn-(yq$ z(PQX!e)N5YuChJ36kN%OoWVk^ajButJjwj()Wltc|H?AWT=mrZqfF-c$S#3&%0Qe#%T>=1$FRj-*&! zUgJN%#9U1w`-V?3L1#OzjAR~=prDjouFG7IA<6eL}v`_dF>A-9*q#|9rEb1w{+BZ(LH&nJu`Q8 z#xw^^|G0=5gjz*Qxjl5=A-_S4_oL!8?}Mo>Lm~w9dN&>SHN*WLWXP{*tGXK)DA||l z=PD^_LrdYH=V}RRIhN)=w<&ch#7am!G?dm~GL!`7iO7YDT3Nm<(=Tz$bH=pqAYtx~ z5`GioV1rl@=>yLzSQI{9IG`pZnvorz$fLJ5*GOC1r@L%F$3J4q|jxOhw z3KAb3zZyDN=7NEqyrYe>i8C7K8On3Xb#?ypTZl7{N568$!HOp@|0+Sz2LJ7IAZT)u z_5&nb0D$W?}vVp*u2;gxXz?$ zO*~MoW2btgnR3S~_Q7YyLzOCkA1mPjoTfn9Ln7d0gR>x5d4Q9B4v-+30sdguW4ucJ z1Gx8$e`-+WT=W>c2{^-_P8M+jaI$~{?@I(|fc$IfE|QRs{I|@2hkq%0rKPWA`h!gluCvfS0WVyzCS3nGrw@4F9zu#(w*pe~z!o z2BsN*zXc{$#`#Z5Jbvw;vVZNL-?hN=zqSCooQ~KJPxAFJ-PHv_OdgLP!oQpfd%gy`bm5mS)o_vd`(5gZbrJqRZT*KXHUC|g(jU|} z&1^sfA*CO{N&M~rv~YWmdYAAEFCw(H~r>W6Q5&wnU4%y`C@HYSeUk zT<|%kU6Cz0tvB<4JK}D;ZlPSk2wAu&b>IFPbz#*jvk`M(G@@YTJVu&6&b9o;<9v~} z^aY@C0vL=gm3+_FUxZD;2I^oZ>wAE94ZtHsuY~iifguZ!m`@d<{`=h}@Vf@Y=UX7X zv2=iYC6W??G;RLmGpSZq1&!h8Dnos-UF-_vfG*%`F9JL-^d$H<&&zB+s$7i!)L_8@ zs|d~vG#XT#qZFK@CIL!xSMXzS%KKH{@^7!u{(iZe@J>FW$+ekFimb`9ahAGRC1ocl z0Xq;hFGZm?snQS7r(mU9(Ff0gg~xAz^OgFa<9vU%=y`Y`+gr5fCU;3iRErA(`qal9 z&M@N7VuzV9HSuRJVa}d@n8|ku7Ok4OFi&B+>HjJXH-Z%7V5r-_*O8$N3Y)|8;V5GO z;L|NAeb(kBnmtSdRYWZaTcjO7KsKe)easJ>x1XuUV!fb)DuPOjy2n+5B_P^fpGOT< zYtQa+OzsfGOifWd#1H*kr~KMYYt(Z-^((D6MfcT&3NGMA^n&o9{C96uGG}n8NNd8a zBVUpo4RiY&?d7QE!j*#vOWfyR8Q08)a@>2)Ac^bWXN7~>Yn#IWG+(b2m8Fo30!dK{ zOFohb>@E@BW*H7~USA)y-wx)XhE^Nc6n`qYh~`=8rsFXLZlOxxGTs$`kvTY&>76)| zFAI|`-UjyOYOF37!v$y)D!6k@HL*UBqVI8KCT(SLt!mMj4v);ATj8BLL729qM)T@Gp}>kFmm^E3Oyc30WEqD z2GZ1|D+6;0UpOF54GY+MpYQ^40uTw%1#|_BGBdqNAuH4TJ6L%@Z~#b=bTdS_aM$zr zq!PG`&Hn?0Q=DS2@Jg%LDuQ>YbDRcUAOy4bI|mLA2t<xNj-Hl z7w*d5T4wVeWE;j&Bz3~)?B9(RQ=N4;@NI16o6B;03UlM`LX-BaQa`BUOuio&dCeTf z!Lv~XG6fXWfBBT~Uuv4+BoAVlv&>2pZ}>Jjx-4w`y1GsUg65)#Gg9B<^AmH%A3paIajzpP!< zv{8P5)JnlKCqUb~n5zJ|uLy!HVAEv$C(fTUSbM4fPEbvGsYo3)2Fi=7B37BIG6sqw zFG%;#vY{&)(OR#DZhTeF*6-had48|VGT#seJHA0EJ*mRDZkpf{t&EMQHSkl)kpg<} z57EGxRF6NhN&my_Cx1)&^q(^;isEG`(}3Cp9m}Kq5}ifqOM^&$5yC-q8$moEs2o%$ zjG`j~7wnS6@$kGrefRpBo!RvKEx|lw19?ta(IBQQ!-2b3R><2GrgFQUKRE6b$@9gT zDsm9rP|VQR`T!%5r>b@!Q)Q^=6=;C#hg{6VYJ}LsQvXf@_9YW<;RShgTnMUrY!40| z{nnyT{6xnF9z~J8S-h0Hlk+Z+=Ezf8Da{Yz6N+kW(^4THHCVWUy!8&lc$RBgC#AWR&rG6JwG2Whnd+1M;WFTAi*;V^p6|U9d?6O0;nFmfrL^uw>;}1RROqhKDXJN$T!V zN;i1ZC)idy;9#)#qFIkwqh;>+$)V&YSyeQlw8q8@9_Q87aJ?I1+Rolxh^wefCPgN3S(d6s-4ELu=alUd8Qb?0 zaWZas?j0Z-EguBfRI@m9%;*88;<)#N4V%VoZ{(7#dISZKGjkxVfQh93X(EAj&dnv^ERfIP zDKN=?c-is;M39cm|7^F0{pzY>_e>c7F=l-mjRQYKfJ&~s7rD5Dn4_12qpf@Tpi!pC zbb9Y}R^w|zVhL@P_}Vkk%8f@-VpMnw{0tFWA6u=mE7)=%6siT--KWPuBBA_0)JyFE zJxs%c<_zoSYRav~J6KQSW?*M!G~aJPzOAcaJ(!voZZ;Y%FqOpXEY%e_QDqpLdOhq| z8=6X#zkF%o0~^Wlw1vcJF$mi_`aa6@+wx{^3~e1%rNyRY8>o+XLu@nUT0 za|-t2Ha4;yW)4ZMI(aY_TFTLKEt~SnYlxbhmc5P5^{X^Vwd9)1{-#88B}>ttcKnV5 z=Te(_(qj(IuK#RB_FK^2uu{^pTphj}#v@vdSxK2W#!jCx$*DMr^GhTvkMcOpB6O!P z8R}8{5u6=!mKKvL$n+?(v$mZTqxEb&Ha6bImTibZ*n&nn^=V^NGUjH@+=Z9S0|c@^ zS07w)AHXA;o?CdL*~YE5$F_-GD(8&ntc+)cm&*It%Tb*a{bgpN>Yb#gI289wZc?4& z*SwfSK#+yJD=IwtOvc#u2PT9B$ z2tW2n!-`@p_;uCm)Rk4-&pe>f*KTyJt_6lpKMvOUIj9v#k#EOr?L0;fJu~*%_6KO1?4d|U=u@X8f}B!V(TT}zP-TvU z<~Q{;nIh_ZgV!+^M4PYFZ)HT@H$AxYi`u>QU9clgdvHyF@Wp0q(O-*hY3E3jhLEi9 zLikTm@6_xIp0d(Dgy&I|efFX;Ics}j9%m=vLtC!d`H3o)9O~W<0lEdop{*6sQtA+K&fYdsGCvrzf?7L8BPT00gv2(+xR6+%7&~f7r`U0;Nx%VuY}`(OnU*A z$Y-3mU-80t?WEy0_9awn+w3LZy+11zcIIz=#K~qo?fL9MO^{GTyEx?Nz#vF+C=}Mg zbDk z42CebJAV%Z3XRU`rUiOe97Qp<=sTExRtbZo#xj_74&H+0sKrIUSifcRbT{cZBcshb=cq6Qa_i zWE2!`RP2|{^a3rI^vUySuiFfLk~Y; zlbIm#`cR(Ga{cAJjE^(3fWS(pa~EI`&}l5*E19l0GoK{C3d<=TK}|6+46W{-sW9lU z!hANz-?_r12L*FU0+n>Bh13z3B>b%hSIV9yOk4a&%$1NNf(wLc46w&`qr~S!O{c6* zDvmuNBBh9o(s#|D8|AcFuQ*!1M}b$~gqL^y0Pz5`^=4s*XYRCE8({rlh%2!8^9XvH ztaIMaf4?aUS0Sg(`SXDo@O5w2fz1!l2ry$ljuas15q3GAT?d93<V>Cv4IQ{Db zct1b|KaZgH9aN${!wCQKJf&C9Zv~+CF;!wb!_fYEc}4#-#HHsi^T{B}86O7f7dCJ2nrrt7ti0sfP(=MO7KA z&8Ym$n-p_R3Ud#n{-2dW`8(zKkWWQ_rzB7D>lySu+ON=r|Ne`SpU?|!xpf!5zKxU* zybF*i{H810(1wVPniUA|wee%Ien^^18Sl*(%guc*vh*iU6D0M?RvHgPzYusTy|ed3 zPDV>eI;oBNTs^R-;WGEQ0C~xMHlLgjaJyr}$K|iqNS=TD^j+kek+|J}S#1zt(TGc_AQ>5KMK+m+C_nEo6xS^Y+P}0_7IZR zG2__76jegol$CK{2-1TlPy*v#X;w`0s_Z4^5~Cr%qa_YFX$)p7&+qMGAHkGne9(Of z6R!Cr>lACkqPU5?gEHHk(4;akG|_KV=yhLcV$4I{eXaIGxW{QzMRm8bpG4!ua@fkI z$cvBy1=;wwA=9Tr&%2mtBDrE6Y$IAv1o68(Zr4jN8rjzoD%+1qp1!L-<6|02?ZIz@ zaT;d!X4DaL^_m)Zcze=%O7N)hR-8KRC}bmo$rDy=^HjTP%^J|s2_l<(tEG9y=DG7(uMID? z$>n<`#(N^B9+Ec$s+6>Kg1ucu_fj}HPApE;1^U?Z{=y=1tffLT8 z`q3daG`FrQ=zHJFk}_SvVa@PHH`{BkCUYS}_0k z684h6fUAiFMAl$Fg`B}|wmqV4X;;50Ng4Y-^>NjU_oQ*2zcW;(<0{e$Ty0SuDykIW zi%sZDQD%DMd~%2OIVssKH?OGAvE&{6Jys<3lPLJk5U(rd324}QjZk9Yrc#R4c6jNDsJmDlBB8@ntim4-RpNulWb;Seg2+9OBOwA(mSp!mi|S0o5W8)Ta|U zFV)N!wk_3dV^uhCxRhf}b4*WEcTY&0ijk^0CejHfqx;AK>HJbx?I~BiJXh8oCJdpz ztDG~lo6kWyRM}bleOdh_XjI{3-W0Bi%}P3FCTC6gPd>*=Zn*<{4`lKESLuiZDpeH0 zVX^LgIcND#0)k?MRXzblL2?-G@&ScA!SgY~hXR;CFKL}M#{f4J&UQTt8@3R2sOP;Y zi-q2lbP!6|geQG_CJPf$q8;d_h(W3mYVyRSOI1Da>3cvCOd8YYPXY=4?;`aNx!19J zJrpZm@;!4eDcLst*5!e(SrCfRle9=68fA# zwip7h7uma-8XM~-QN^j?&N8#CNU}ysI(nwQZt-Nd{yKm*+enOOt5Jwt`5aa?j1%`G zp+DD*OokL|cev5D!Iu_F)>p_MUD<~$d_Z_I5N@AgNoPNULh4}wH~Tvng}F%Y zYzg@bg?MSFZxXD|$QT!@?#KNA&8b(~1}8@NfAV=I%Xt3!@;KxO`v|1Jv3?>Q)X4gI zy=4_FQ+F{-<6%p1P?@$maus^lbTlM z9D2RR>_ZL|Mh%eD1bYE@x0sz-mwgZx*w3I6`R-IJ&Bp`DxeT1GBgC8Ht;;TvL!d;= z8RCrHGiU=4DBm=+KtHeti^)`)SM+$gNqTK5VxtqJsL=zzHlhSV8jyBX5}})eRXctD@>ED6OOD7^1T+LmhXI%@#qTez<6xnQdxng{7zq zRc`^JCRCZ3*BUc5+z_@-I!M=T)qU{3gu9>Z$+eHv>BfofA~dj*s*IECJ-xE4;9I== zSbI8ghNWZaK1)MmIG~ZFZXsZkL{jsDQG5U5QEo;)EI-;%ZiXR= zcY7mr3{%I+ItFbpX!dN+$F$<6cEwcPAQV}asrb%+XsnBfyPBeRc>^i3Ro0cWJ#`Q- zFR%z(Q0F0pT2R5)j^p0Nc=D3sVu*>6_rm)tVaKxzy6PlmWT>it zS)n_Y4|qmK9f@im8%#{((L+1cZ~_p-JC+H*jXKO86cfK;aOSR|r%o;HspEKH0JVaY z>xFbor9YV#HL0x&+ZDabjks4FK&#SJH50_*WLC{gYWJk{i2jSuG8#hUlcJARX)NR^ z6r#9QbX9Wi&+1P{Q*>Zyf-iCXXS1t7PAwHIR<@ zfl7y}6n@vE9w_|t;y}*X&Xcrw$t|T8x_IEe4_7Kn0gNLPDTu^W8N(FA%n%c_h4p4a zQPIa6Q^AiY=g*NyJr!wLTjOgekbEr9>S^8-3wY_MSXL|`>2oJ74B5ciYU!O>kR{*#vRl3Ir(R)-6y1-&IlFeb~5oK(s{AE zgLQBdJf}L+Dk%>lH^#>6zV6_>_ZF;Qf^CsMLsYe}h`NpB`V70VdWdsN*s_#2Nq^zn#xCa397c-|%n!wvf%t@qz8OG>?+YHSELwXJ9CcDDiY znTW!miwMG|XtQLl-WpW#Bno%Ug}li~g-M{Wu?xXh6PGXMgu&?LThDtFjj8$EbO|3e zy0pzEFmIofXE!`5Z1+slfB+2}W!ATC1m7w63Xor$WuS52jF!|~%eEXcV{RpH)U}Q7 z--uEnb?I9RTYnj3fQE~V#X56CcV_+t;qWMzS<;*+RBhxK2hj(o$#s!=#o7*`42|%U z;)gwj8}0o|otd?ai#jXLb;552r*ut235jHZB!RITHaKe1LeQhWiwf1#7B2{AQ}t(Q z!gY_d4i%02MwA0kZIh#tFK=x`rpLb4*R=dDc1?J~w^Y=VYM z&-}#tth&)lUlRQ=SE3JDhNQIM)sw+N8%)&f)b^;WGhE(aVyo2m0qOEU9S2!0 za?zux;?PNXSfA!Y#ObPD`RO8j?RAOy0jjn=uhF>@#fHh(&(_alsnnTXnF_SdTr4%N zn{v)gI#buk3Rz|mxXtptPj?{-dDzq+WwWCqNiLlQP6=rU$vq)|%=>@(7jlBr|O zs1B`^sG6a1&;j~>CY{3Exej(75i!k@Y(DHmv1?0kJdgmj=TYc0B-E^|y7Z=1zlRY# z%K_e*E}ShZZ)>@7aU;Y}EW1j?vKGAq0&4reaLn92*`{ACh>+A~1{d=UJwzxIa5e zy66RQlGs;L(_LG9|Ei*pntcCiF6H6dE79jew#>ISZRk(8>=5SDR~=xY#6VBPLC;tp zNKbBX7d)LidspW9bnC*Uo(0k#lFkNUN5Cag`Q5KLO5$e`ySnl{spf4kMFrwCnMaNr z)NlRDiVh4-ym0GIN%$P^%wB0HRd|#qx7pe$0T4J$+hlOXVcHt>_X`bkj*`_dT$d;c zec8ZQ6iUL-AP^UbTRAU=0z+j-^*t>OKEJUz_{$}qQwD3A04O*B>72U?WV=n%UkdFhJ+i<2J{<(Qd-*?AN>LUFXu_eKGPlaQR8P?zq;gAn zO)*;Ab!P6|n>)Xv%zN{*aA09|E8Z6n)r=s2bKHY9C`lf&rzr*$B0NEBPiA#+1n3}o0 zTwE@_xhCbHstDm?N&5Bug6RxQXqR)w&W=PfLodg^g393VvpjMfYG$0awz<$QiyJE8 zaE->mkF>n?TpQ^a<#7Dhm$n!DVSH5ApA8sX;$XJuSt^8qM4l|0-&Y_(SG1v1`x zc2ai(LrE4bIaZErSglfu3!(_Ms%HO3v(iw?V+V~U8>AUBVidDS9f|% z`?ar9Z5Txl(yLAULT=>f*2~f?tRWX&R|2Y2sbn463MrIU=~~z4boMh*aQJX$J4bmz z)38ZS3$HfHNuq2(&{2Te6(@-|wWijRu~jwL?R^lJ&^Q1Z!w(v;6fXUqv>=8tL_@zd z!jg#5K8t6==Y(^g9`@;lLP+Q9`k6O+o=EDZ3h(&G5@KtkIeQ~~&*)`h@KQJJs=i^0 zBa7pS6}$o!1~FiwdZV^~Gh?|1(#W2GOWa--SI_3;?)H7CAY?NS+$8DaIjmcV5?BRc z8mtL`3{LxsYV+1Zl;yufH&9Yjzu|G03yQ}45Zf&p#3=tWLdmnxO$?#VZ#j6ye_^g< zp)`Vnc2f#$!+bRX$h##<*naYZ04Ni2oWO?T7VA}?s;_7HObJ0Rop>4|VATT2@uIam znOH+?Qi;X7kCu+D&)7OX&rjOo*~FdK>nJ6P&z_4f9MX_l47`E8D4X)8=f3bFbad$B^j7QJ9!N#I61|uJk|F z2DT^QJFyH8amex63az@pap#_$p@&Xww5>x08H^C2exgQ8DJ!9`^i=mG*6`NYlLd*v zQBvWpi!Frq+PGd3c?&}CBW^*6ZkT$y-T3E9@k^}N2GmwW()+Bw&pvK(;KrQTaG@7- z*d|b{>(2{~OU8)~*JkpRKvLd(qt4mHrs^axKorFfD#yOgKYG(Lb{TlVkKS5c-&MQ# zHo3=^kR$Gm*BKrmFvEWWpKFFuS^bi+o9XyDRk*xhSzM8boK^A#bM6vVWc1F6N*8wi zA>EsXD*yGRnhquejISb!A-=u<{kpXw&&cy?{X^l3x@Q)E=ZkiH;ZYzk%seG_lm|^b zi{S(HVkZxWqaoewj(OzbQTl48XFjy$O0j+WYU$OxWgO@Xs#22HPGQ^V%IYJ=RO+IN zai=BHqb&9XNBHZ2E$Z?&%KVPcNl+Qs@yd^EyNt{TcfjZui2#pa;b6ORVZx}LWa&70 z1J7+nPHVQX{;jNXqsp4&wW&2<4MPsf#PkRRJ|PRUQU$6uAu}!rBtdDCxk`#zrF?a` z>Y`Wut)ZnU(WlGYl;9TIN{Pl!Kv906Zq^S6hbLrLB4%GoA-8np9i_OSz4#n~{VC!V z3V-*L?IVFmvIHhiu-hVNaUgm}xYs{wQ1(MgL&!c5rty94ETIk=6kqm|1KQW&+RKJJF317-aD2}By zPDxowUsONjbs}x{B|)JLH0A2YS#MDvm(QY;JhVWnG(&T}_aR6cT5k@+ju;;#AE$Ak zqB-S7Wfjv3iU_-!aVHv;G6!FZC%b-Y-V zTW46a>2mCwbMC>c%eK)cWIavcE^dQp#Q+n z=?L?P}`H$l>Px)6c8iFm!aXn18j#N&%3+@fXjFeB;kbcXWWIB+y5a>aCQ9YElECs6##J zGhM3)CTdc18gN74RQ0}%M1?z+Mu58pyNEU2dTHq}6ddf7sf@V+L_LPi52kAyLu|6% zW?ZG;P-8RH5|g8^igqy{lltEJo=0A9-bMs`L>BC$YGHLV{?tfsxb{UYYFeYH;mc=w z-mQhtN!sE{B%mjy>sXjiaX4^DQc%#uzK%KsYtf5Ug^jn*u?ZvV`wO9|0_t}DJ9cxa&CO`{L)p6qOL&;oQh%7CPae+Mw~|K%Q4)8%26UtQ{%ga7NL zVJ6#TG=;WRd!>seW0@&uB&6)v_(HpqFwS`!+urXv2Ky5Vii`2gyPjTab4NfTd93`O zaw1RuouB`H0=rP>GQeoO<&*(|7Xdi3BuQCL(RNxWkjUOH74!pC3x>pr>qx4M8>bz) z(4X)RcBggG%Vq{qZx8*gHv0G4?LTu3+4`l6we+cWFxi(Pk!_}SvE0CFNo%UdIeqIj z#{;kQ&1Yy)J&!q=WNiP$7&jKfoJc@gY(iF?RmU6oW z?OUv*c}**!$X+5J_)P{P^bQzwc%q;)dymXGW63ymaf^F!D>nlW3e0gV+zY43%$urQ zC_#Ks*I|r95PuQx0zC{eHunap3BVEAv|4F;^hc;{VKMeAAg4yL2#rTZy@P z!3hprIV0ZFxdJeYA~_D_V$tuSI`>JeGGZq;8F=A&yNq3mAi|#dkj8C*h=)Re1&|hX z0K{1t2lxU?YTsX59vq~zNt&aw3juGN0mHA~3`_g!YPk!eGzVduBaC(LtZpYDE8ac~ zOOX6)F77wBGT87u(W{aVE`#L@PXrWUph-fYFuD=$d!l_Xne}AAYlKe)v$&S`CVGnY zC630H`>e`?9W6p5a%JM!suB8(AY?=oI_Z5kUezBSvmfU@@9)5=J+RCS{QLOG3DiRyC zl*lBMs5|D2usZ>BS%<`55dWBRe~LEP-~OA*#)0c$I;eZp4E;2y56Qaui)hlfDN#q~LL+I>j06V8{-75zKwCOig_6CV; zK9NAl%iz#OtMCZ18fFy&dK8 z%-J)0wrfyc+l#CDLMY1iGjy0QxA*>Xv&Gm0K7ML-eM#1msp;9*Z~hyudnHvX&~}^X zDsVjZTE)!o$#8YHoi+*ln{l~wBoVhR5rf=xmdBT+idLpf9LBA5UX@=MSXGFW;ZkRT z`upwRdEr_1Hkz?}US3Hp_CiJGoz42rDWdbAZrsl3Ya78~&`1+t}6EXXQL9yqfPR`BaJyYIrSLNIN$&_qyyR zH2T$rJ?u-LvTQx7Di+| zy3Z8oY-_h0Z0m;9FH96lBx4mqOH=Mvv{)u)F0}cKc2;efLJ_!PDz8f{-FBNAN78pn z`CC`eFX&$iBC0RuH0Sms%?{2+upzugXpPVl@4spzawu*8`e{SXUU&&HMQkdZ1%DJU zlfr&~vR%Qd;zqKR?$+Sm`80hN!W1Pc6ai4i;9)R;A9P{Y7d6)IYbmBQRUb&d*6UWk z^47`}>A6d^Z69bO3ZcFN`BWWD$*4}yRHZO&NKes@Z}+b`i9f#}zV$(cCyo#xj?~sR zj~N>*I2%%zG+ux}P5E_=piuW%<)69gi)Xsz2uHEY7l$xm6QqZ&*OmG6pAql2T+IMJ zrO8pH9yMnTykz$LvF1I~ty4`W+7<$BV!^Ux#~veWXjq{6 z#x=_0YiBL5_$sQ*w)y#cY1nF1EQZV2BwO=u>Lq;Vy9FwK#;+pW)F7X=WL4GnyvXY6 zzm7HzaBRFKR83m(z^GP}=tLlJ_!tiZUFEuH#|B_P(Of>N3(rxtvCw39O-D-)1^k0W7>N&1Ls7MlE-*V>;vJ0z6&{$xho}0 zjnBlNw;E}U1;X;Q4NDNNgM9c=r(o+Rv|Zd4NR!l-lvRu@;yPeIi0`>2?eegb#IK;T zG?-lMYsr(C^4xQZsgY{Key|#D5bv>($+4L#;&Lpmt~xyDD}st&J5BtM9GjcF;b>^E zp44>Vwmf4#^#;0Z|GP(EXtyd%idF_l@4{I&qf;()shAqHh6L0L&`Td z$O~BGSC>rsoC`WVW~#!3(GvyEmAouqFL}^CDNs8;#zAvDn75XM z4lT2~<4Eou=1x5>P}^%+dLDYZ6VMs@su_HjXi82m%gdQr?Vn*sfQLpQDMszh!c7(0 zDVn?_OflR^^6Sn3=i_`(Eh&jM3H>}$7v3*3fpUAjul1N3Z=a#Du%xQ?5qgfa>+&Lq zBy~?ToKFI5>uEcxKi>GggGq|p+&MaTgwIiye;y`^A0+I)Ja1oueNgp)mVDPG5xa&T z-LkcEcboRkgE91Zn-fhy;W$gkCh`kDedII+Z@5+Jf-;;F_Rg2%QMBADD69dx<-@4z zPcMjXVr-9KZBw7RvpT0H{5$Jms1xHL{@-P7{r!mmq3XY(+5S@|Z7m+M+IGkEza){V zcq=pi#^TAI4V1jQ??SWf3?@{bHo|GkI_*|j0L?`UvY8CjS8KLC4d=Do5sVt_*8-ac z1++d)RfkC=GwjL;jt;W8;mbX*!ie9(PL0?vrYWfGzq-g##w(8vm!a$)YhA~3n{3Ld zmYOr4+Btq?ZuKJYpaEm4FStZ^bNL+r%FU1K3+2{KiZD-2Nvxb=6}sg|dR2Un`c4NFGCkNSZl0aB_G4u7-gxwo1J$sUjZbJHV_F5c07;VX6elKA zJ)nfdgDz^e?m+L?j5l`q+NHqNWlZbKzRNK=Q%++iMkCsWE~9_6D~tiUIC*_$reX$L z4yjW$rL>$B`Ol^`__Lkw-=5t6x_H2W5Vb%CMvsqu-<848?QSPidU&LtaU~-=4|zPrVCkx(;ihA?K(H*AGBseFt(ZP!DHT9 z(fG}bNvtbn4kz$P`XFigRBhPLju#Mh5K=EU&zqlHTwGM63?*Nvr}4<|;6=+Ak)C~k zu0mp&q}84`b_fiLGsGc!f<~yR&v&sq9>Xvky`pq|U~fxDhZ9Fu<%T4lWBmX{?UDNF z?mDoFdjyNe3pd5Mvbrh=Wvj&@?M(ssOqT6s5dreaL5)HR+gQ?(O3Vn&AX`4UkJxvl z+s#LTk``DOKCKV$!j_kc9h5p)3KPy5yD`%md$7rq^^=pK_lh0DVQ!qsui47In4|zz zqS1tn9nb;XvlD4qGkIrEm3P-Q0|je(Uz_{2$F0sDUS^y_N{k=V3YXQa&-q4}J6f=p zsse_&9RSR`RM9}ejd5RH6j@wfC*n(}PkJKl9p|9yh5cyl*Uq-IOOrF~D9xrR*-ouE z9{?sFzLZ-}>%FKHzfvQqM}eVOjB$kQGyB8y@acx(ZxjDsIQiF5a?U9i<0)NRWIq;X=LW<5LU%lh^#+l{UN-trzLY$G`jgqE|=23`$S~?Ezlqv@ojAp7wFCWOIx} z9!Bw9ILOt^y?|Fd%W~!srWAY}0ElLSY91T1!K2C@0NV5UgURpThE?Hr<=B?MqY~dC zH^G29XF3x2cW)8?yV{k0Uo6jbY)P|f)Kg>=J_o*5tPU5e?v__|^y%-L}EGtkKI>iOTtem2m5i6()HUDq;~jPFP)wgn`kiRUE>i@2gXGg_fp zv;b{`t?!TEg&&~9S5x=MfJE%`27r3n+>-3DQJG5E2m!n4mx?4j?1aMv54~L8Jym4IstP z5fw$G8IUFtYN$aB5cUD1BaCNv=gjQR&Yt}%=j43fci;Qn`@8qPb{}-F5KHOuWH?xP z{`7m8Hga=lrgOhD7z+7~34A}-c=1GM;62EN7wGpwEGEYHHMrIGOJPpD?+riZATJ&D z2xed+ac<0NZ8D$b!`FNj4XHU@&bkQ&zDz!&(iFl^{$3Xqf6qp$dgx_ zvfw;H&~$iVZej_x=fgO&R83w`@mluDeDAYXbIE;^k7~82b*g>%E$Q6yKD(Y`4z!^# zURIbC4>)6UH=WZ@*Y&l!c)il#8IQSmw|>d0uxr->1GLshAhgBkiqPKFlF+>2m@uAH zzbRr(U-@^^89O079vvn~qpAsLC9hG7IYX5=&C>zjetnMwy^c$76ICkek`;%io6en4 zjt-S_m3JQJZ=*y-MWKm7embY@3&vmMN-z?mvyN1HBA+)rQ>nTiap*iTAlt_Tn(N)- z5Tr)rqOolyX1>vPFLVnW-Ip_~O{;q%;n+G@Pm7sNsIp?hOKrpSo7nC1syA&B zz?Ml*UXFg*4G}f1nKFvp6(*fiZYgv!PX_|4_bl32`4($|qu_MQPj|#CA&#+>SNM$3 z;Rq#7eLiOALw(&a1mqQbsUM}+q%ORQ4}J*0w_ zkLkPR6L(9fQyyH!EpWU8s-iouHiySc6nUjDTKNFiJ-j%;_ySlkU z^SX#}A+FiNrR+tErCb?xOB^f64%taVD9$5Y^_6q*$A)@|+)$ zi8noMwe!@u=rZXW!o)?$x)MRd)A?Guc~~#0h?f{4v#W~iZh7;KFE$2svpXv`@8&~S zf4HJZjdC6Jgc(%O$HeGoh>1EA#Rhrz!Nu$+OLpd3Di*Yt4mIvruU%`T$YQ0RcAQ~N~0$FbHtodrBMxv^!iqyJ&o4_XF<6dW4n zJ67MU>@jDXkfGg4JEX>dC%d>GM0Dh>DJuY{7#&Qyl8B-^ER!HBGlrIM;7= zGAkQ_hz?s9Vf}j=je}=2NLg))q->EWX*ZsLA%ub8^9_62PH*7eTA@F)X+SMZ1turj zTi`0{Tp07dAYz}ZL@|pWq7IQ2eaJW$S#LWoz6epS>zY=f2^_#??Xhms_Q%47kHWNtTDRc3*zn!#a%P3O4b99HJ_(jk{_ZB}*h*0=wm_#j? cl;?wDPc z@Z5I9`>R&e_B8e6#}bWE%+5(}9h**^IimJWCr!xn+Hv-fD++NE-rW_Nh(g_bNcr(1B|A1MNIXr`Lg9Fb0^CZ* zk=;MSj}Mxh6I)rHf3(=}TWFGe|CU{bF@XrF&B=`e!Ob@x{tJ6>gl`b(fz0CaMMw&Y zgps!$hAvZlCzOz zUL?k0dQ%gA929n_0gDSuo78MTeWRKbkhYtEw7p_45#Qiw2J&`L9ZF0#nT@$Y z5yK1=3ukg5XTg!Abs{8?l!t+3J=Uaom!JF;+HsXtE$Qa%RW{FM4;j_^$OZV|(6LOx zBoTbWs~k{as=}Qqw<3vJoiwe6Ah^r9s|P`v}Gnujjwc)++IXp;BW_Y0U3M^ z7#2D(0}4QKF))~0#^4MnBQq^b1`>joBouh!8C+ce0`SEp2o{R7KnqZdfL*MTOC!-{ zaFkCT4;aS3)I{hEEq7^P3(Bp10|1!AS^)xrG=a$u7zPmdBZZ^4(HD+6isdIGM}eOJ zjAxac-KUze6>hncwAD+@wSeuXD_| zjt@HjH$hX}+>xeH?*rN>N?6|x4m;@!_x)>=)y#GeaA&+&3-@Ymt&ndO-hh0o^tDXB zUljfa_i2gy|32|7jwY?7U~)dH*^|>kE`ax0gn?lxmMlo(ex{>R4eq{^a*pOX5&2_M z>| zFtUrcBhp4TS!)9YbMpcE0URA$%{j8I&>OGy!@*WhY>X)*b&f@ReL}D{)5AlJfpRe;9K7)coNM@^c>xcrfZ`o{76!|&$@3h0D1=2l9u!^e-y zA;@IKm7-S#DAMWx_33*nPFUpE0qSR#eF{*YHTRi1l+^+1=hplZp#CG`TamrQLrj{C aZSinMtB%Z#IN!UWvTSi+*ALs`o4*5y{@?@v literal 0 HcmV?d00001 diff --git a/documentation/evidence/g1-20261018/cancel-retry-summary.jpg b/documentation/evidence/g1-20261018/cancel-retry-summary.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c255dd0befa453da4bfbc857d4169d2da6e365ef GIT binary patch literal 115620 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 literal 0 HcmV?d00001 diff --git a/documentation/evidence/g1-20261018/cancellation-assertions.json b/documentation/evidence/g1-20261018/cancellation-assertions.json new file mode 100644 index 00000000..d110cec4 --- /dev/null +++ b/documentation/evidence/g1-20261018/cancellation-assertions.json @@ -0,0 +1,13 @@ +{ + "Run": "cancel/000000_SAM_AnalyticalModel_OpenStudio_20261018-084042_454bf00b", + "CompletedResultPublished": false, + "EngineExitCode": -1, + "LastObservedNativeUtc": "2026-10-18T08:40:57.8459393Z", + "EnergyPlusPid": 45448, + "Status": "Cancelled", + "ExternalKillUsed": false, + "FinalNativeProcessObservationEmpty": true, + "ClickUtc": "2026-10-18T08:40:58.026Z", + "OpenStudioPid": 49008, + "UiPid": 25072 +} diff --git a/documentation/evidence/g1-20261018/candidate-dependency-pins.csv b/documentation/evidence/g1-20261018/candidate-dependency-pins.csv new file mode 100644 index 00000000..f5a10a02 --- /dev/null +++ b/documentation/evidence/g1-20261018/candidate-dependency-pins.csv @@ -0,0 +1,16 @@ +"Repository","Head","Branch","Dirty" +"SAM","618db819300df8b698b3bbe5174a203244134738","sow/2026-Q4","" +"SAM_Mollier","7f61916adad9ad913904d18047ec6bfe835d1611","sow/2026-Q4","" +"SAM_Systems","f0838ca3eba3e4b5f1cee008ba0831b6d7e95625","sow/2026-Q4","" +"SAM_Windows","11bbecfa8aa854f4d9b2494c8bca737298982751","sow/2026-Q4","" +"SAM_gbXML","43b5d018ac7a8a14f332e8bcde9cb0d613bf1efb","sow/2026-Q4","" +"SAM_SolarCalculator","277a3a4864f2bf900504a64a4830cb9438312d78","sow/2026-Q4","" +"SAM_Validation","68eded0060047af714853a02a152fb9c960bfeb1","sow/2026-Q4","" +"SAM_SQLite","ec2eb86d00cac6e4cadf52b429f9d293eeabbd5e","sow/2026-Q4","" +"SAM_OpenStudio","d4216f3525c01ca762c1b3e9b6d099733d037f54","sow/2026-Q4","" +"SAM_Tas","a34a298dde2803de514081a0ed72ac3ff790997b","sow/2026-Q4","" +"SAM_Excel","6669977d07cc6488c0dd91fe0a48ccd2dc833627","sow/2026-Q4","" +"SAM_GEM","1bf41916fefa6dd5fe44a735c294619d3d8df8d9","sow/2026-Q4","" +"SAM_LadybugTools","0ffbaecf1097a33de2044ee919c963eaeb0a0da2","sow/2026-Q4","" +"SAM_Solver","fd63b4670cd4baeb20a74312aacc17eb177ecc18","sow/2026-Q4","" +"SAM_UI","b7483443f53dd53a4d16f159d6bc327c901a7770","claude/openstudio-mcp-server-1jmjlo","" diff --git a/documentation/evidence/g1-20261018/dependency-binary-hashes.csv b/documentation/evidence/g1-20261018/dependency-binary-hashes.csv new file mode 100644 index 00000000..e8a47c46 --- /dev/null +++ b/documentation/evidence/g1-20261018/dependency-binary-hashes.csv @@ -0,0 +1,9 @@ +"File","SHA256","Match" +"SAM.Analytical.dll","9576DCD158E3545D73F6B29706B73AF7D20C09325193257927BC46EE31119970","True" +"SAM.Analytical.Tas.dll","DE942E4013CD65E181D5F4D4BFE3BAA9CC55C85F5ACAF9E3F8BE0492DBC90AEA","True" +"SAM.Core.Tas.dll","F1D5D82BEE8B0C75B58B61652593AB936DC16980FC24C070A92D7F99F7F4632C","True" +"SAM.Analytical.OpenStudio.dll","B1B5B9EFCE7EBB0938B8DDA3BF8BC497091EE79083DCD53F446EDD65E97402BB","True" +"SAM.Core.OpenStudio.dll","09C77B85B9A54D192C23878E5956E9B41A7C4E9DB5ED37030591E9A51247A842","True" +"Interop.TBD.dll","950B7A3B0F51AE5ECA103EAF51584F1377343ED7B8B19D2818141300EC90CE67","True" +"Interop.TSD.dll","EA48ADB648040A9FB43A633D9EDB24BFD2C985434EE2D6C7F85C88F2B18A0524","True" +"OpenStudio.dll","678BDACE11401E751FD661D9638944613B8802E6E8DC01809D1DBFA7FBEDE499","True" diff --git a/documentation/evidence/g1-20261018/equality-observed.json b/documentation/evidence/g1-20261018/equality-observed.json new file mode 100644 index 00000000..7b3b1d65 --- /dev/null +++ b/documentation/evidence/g1-20261018/equality-observed.json @@ -0,0 +1,30 @@ +[ + { + "Metric": "Consumption Cooling", + "Standalone": 5764.530483239447, + "Benchmark": 5764.530483144583, + "Difference": 9.486393537372351E-08, + "Relative": 1.6456489500941057E-11 + }, + { + "Metric": "Peak Heating Load", + "Standalone": 19.82144246485972, + "Benchmark": 19.821442464872938, + "Difference": -1.3216094885137863E-11, + "Relative": -6.667574728004329E-13 + }, + { + "Metric": "Consumption Heating", + "Standalone": 31072.86245449682, + "Benchmark": 31072.862454810253, + "Difference": -3.134337021037936E-07, + "Relative": -1.0087055949854157E-11 + }, + { + "Metric": "Peak Cooling Load", + "Standalone": 14.079292685507252, + "Benchmark": 14.07929268578085, + "Difference": -2.735980331181054E-10, + "Relative": -1.943265469538972E-11 + } +] diff --git a/documentation/evidence/g1-20261018/explicit-file-weather-summary.jpg b/documentation/evidence/g1-20261018/explicit-file-weather-summary.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bd05ba8d28adff4af6fa52c99e5b92df9b0c1ff8 GIT binary patch literal 137772 zcmeFa1yo&2moB<-2@oK-2X}WTI0TpA1b27K#uMBE1PBt`3GM-cdvJogyX)rdJfofC$Bm@)`Bs3HZ3^X*jv=2BR0F4HN{+vYw z_L-6a9H|2at6$6~c(NDeZJ5dW_#r7dGb=kMH!r`S zu%fc6x~8_SzTsUT9#wAfch5py7V#1p(;>zM#;cVV<+VqKhcO88|#6W%Yx{coFldybXbj zP5B7Z&~XG2i=2I#;`oPZKQ;T0DdzuQ((E6K{nBd&fCL2rHXaljKnQRHB|G*h4YR&} zktwNC{Z)02CrI3K>?40sLw9XJL30Qe^EcxZZ=cnKdH-L?OX zmYV+42UycJ)Vl8c9qwU4dAko2ZTYu2PBJeYLQO&Q&&K2)0Nu1x7dBCM*V@3voCg5n zdfqoNN;R)oBJTA#D=`VzSPV0v4$P=;MAhRK*%6fEg$JZCtwU@lq206t$J~XndGB(w zOkB(y`e>|~9=9V@X${=$n+4r7U8ylJDaTq#mzL(%uymzlOO3=Vy=LuOii;Im65w^} z)Zb4T-op_eiS2^I`Eb;Y8%>$rC7K8yboqhle$JgH9 z=pPmDHe0_t%dHYOaz9Q)9_r~u1QL8EPS4SvJfy6w(l76-nD1#LjqrOOr7|{6JnBmc z8Z3VRq|@2mp0zAXK9Cfm_q|xI zKO2-J%B@_~lC%~TrIpdBh&M5&WeM=-{pe2(+5K3lNARoLY!tX)o{yu!3%&})5q*Ap zIJCjD1>lDmE+O}fxSL`yApV|k!4)?U9}|kH7>L?fIsBn{h}j%U;g+)-Wy0C9`iUPuiimK~*x|SSS zKH`my9^@v-HhQ(t58II_j})lAR%PZUUoGXm$Up%8;+fK8EDN>u=7x*pZ1om6LZS`` zaim7h&|!z*himxE*e!0d=5`V}5By$l?j67_PP=~b*y}JN%!gcj457kfYeZSCAQ&Hw zG$&AZ9zlqS^2sv8D3o$W19|5@CzaAOc-ZT^r zH4PdkP9_=1PVaO&Gf@9Dv9~FWhaG=G`vv-Gg0elX1Z(R}cqkz5Um1WlzN;SENvom` zE0W?=GwXGaYJQtuR@{)dbp9^0rcNhpuSraf#vHlrENgZ^D-XZ(?jS((U&<9|87&qt zlrrcVE3W1b$8b`vauU()&#a&@l(4B5Ohzxe!O$vUjQ(P$Sk1||0|0~)Mt=Z2>WW#9 z#Wc0>9G}7~)S4r=B1qUKWerGO7scG&jui|}&D$+vnl)~mi6-wS{L*3Sff=m2k4qji z43z^g|JMyl%ydQvk)P@unhJ+KOYFPf%fJujTXX0xQ7@k&vEiNZ>YgQkXKa9By{wAP zMF3UhFn&Dg%lNO`Gb_z=p2}~jLrs~iru%%*`l5Bym90C+<{Qjoga6If6geyY&ioAm zc+~j~!fz1%h(CTa;Wrchk6^;%n2dG;1LD==(fo1L_rJ(gsheQGwMeE5+ttX?%Ri-! zS^UHfID8aC{cT9i)6$#Kv%94jf40|kNGm++G{${{S1yeCufn+!rGK3l_bPSYIc4_U zJ9KfVp6u`wj2OiyPbxAV09Ff|p!)U)K-bpagX1!fjBV_4_%i3BC-3~`E3};*(sj^O zwx2am#+f+Kz)HWC#_@}k@wc1@ynXbEz59h@*xX|#G8 z-+d{)pRV)(m@LHd4BLr=F#BK_RBk^2Vbfmx8pwIqEDTNjPc2%(buJ=$Q>`#CTG{P| z@!|XD_0?6q6YH5?TDFJ3;8;)+CQiM{^>fLybW2b%8mLKHw)QMS1;%5}dka4RVop2K zFVO2B03#*h0H4IH2S5*LH>i#Z233a#)y#!!vBjn*M5M{9ac zOgt!D@x!GAz60C_e_GOhTsQl66|@B<`A zlYL3!I&!2i;coUXZ8A`7eW>xn=)_oAUd3u=pY(`64y}cidyd zcrhjI{H*^v004ns>&$(&x={1;;Syb-?Yn#^_^l~81#RLQF`F#9b-Gr0Ve9?4jrMSd zaKtz9nLhqf#6uD%;oX+vd|b{t1B4QB<+{k+zO?RXkawvGLpx zcAa%NIyXP@*KA%A4?Lc{MWYS=e%Jxj;g9Q;J@_B|{KlO+ZLIAM()%KQ7(x*i{#&;D z*l^P#J4?3f3B9(f&Fi)g#s}nun;9goMQHRl9x)M3Q)6>NN%Yb0Mnu4qPiD|a5ObI3 zB{shd3FxjHJ1Cd&uV+Vbg@*@bkbScfLH1`=}C}DLMj48&8dh~IS zP(%cruGCzQP6ck~rJc|WP57Fk7EpIy!CX3G^P_NMe%t$H2{<99x9YN*hFtWxv6!z^ z+g^lKr8T#a9T%jFf9F%M;%%qxiNZ3P%f}K3lIrOp6X>F|dL%!~Gs(JO11Fd@E7vYj zx+?sb+WjTQB?-=ON1s!*x54r1i)Z zn9@>4WYO~(qoq$4zH?DzxtL|TgSG?lX?gt^$g_TW4hXHUbDGn$vvgRfUFE?7M=a^1 zd3lfA0hIaUI~eUo?a7sOFsY%_|ot3#ueedH|R`{F~EAh zNWXzE((^bkj^HAbug2X*2R>K#I4^ns@<8u&xP-{#ypaE9WVnPNU#IgBoZ3v+$^zfr zjPwP3Xa?W#pYE!9oM)wL@hCcBH=XWErukS#3067nO46bjUZ(k&gBwxWoQ(7_Ul$qp zrxtm_7Qj`91*;{&)z7oy;aI$e1*<$ZC-cGW2v#{}Y%qauqWEtnhM%O7uFU2GK%yFBkqFpxy25k|KlcFGn#?RW&6}F>9-wD< z8}qzFwuf#QY9a4*7UZ*jH+5%8$WUvMVB=pOgz{ABB(zeOy2C7O@$`^sqh(d{uY^LT zAJShH%>PPQoGC)_Uw{`0J%Ah!0K7*@9}K{-K+EQW{vfa`>aRq)IDl=~?)ozERR1{Z zuSDL6@P9|cVwZ0;`oHc7$dWt&z89p=pm_pUw;uqVYWqB*dM~A*3mKp0%9>pxj&{n% z%6C#YrGvhOjXeN}6+pC6`|!;|$7kSah@y;6oSdOXI69sOz(4+&|EpvJl2Rzo)a!LK zq5DtRc_6{`J2m2eJn5B4D2pWT9zk)N>_qf3nW>;(^aEgT`~mQn`ei$Xg1wDUwA%sO zrx5p+smgB8)Nwa!?{53A%dSTLN{nsgK2P%k4mY(VKL8?#{*e+41^io9@%^`2$bj|O z2d|NyfUH35zfw2U5WgG#1C-xT{DU9Aq4*8OZ(jlSz++qgm%2?s&g1XH5qB@_C0y_$ zpV}={V|?KUPl2y?=wG1K{hR`KY91Upzj)8N?P?V}9R#bOauQnQiC2*GWuJ3A+ll#P z+{Dn38;9Rdy<+jSYZY|Ya;1K#X7sGL3E#9qA;5Wd@@V+24QNUr)F+c^LDs3kg~&Lo z?9{Uy;Nh6Y;R!9vm?Mu@U!xOwjIrO!*h>On_m9_nGGpT zo_3v;lX#wYy?ce+I5$@77P~-|OokDjQDq$Pc{L`cty5Y~r!Yu^3K157DhRhNoA3Zg z<08IX2d`tKn7?Om5@bqaAUc(u%5@-YE{?Eq-pp)ggjE<74?7xkuD82hbpUVh(Z8d` zZ*(tX$gXXw@Yr9&anGqSRVNBW3y{7>_DFMMEa3_+{xojuyhYiP)^)1#z7A5=G?re1 zAR6;UML?RMNKdC$&9Op=^DagGG2{Da(M|R@uOqot#x1WaPL>hyp9=jhK~pUfCAbl7m^~(ClRf_ zB0J2~C;F2uYuE>7?xK2MCN^WAY}sU`4Lv8^jQhwibOG~CM}y0-S^kP zql~9?N6B&-?uI_fVxyRvYsu)9$Tu+yY!tj8av zGgIXYSat@#&9V4K&if_=rkJ{IlAE5B_VW-tggY5kx|3p7rf$hSQ1>qQ=I#MN#TYxWkxwHzTJ9@>!y#|Sw+lwaS&%8ZoL z?}@%er6r5$j2Y^?P{@+owx*U3C=&A@$SzZ@zBw;G-I~!YR-ZAA%lkenPLs@CvLDMX z4c~Qy0lc$|Hqp4_86 zMya9j-|60~d1_^_j%l9e4REV!W9CA4mz(qM51%qwN*R1}DgW^*OYRnP&M`iGFH(qu z8D&3&z0HH%=k%jl_)68Eg?N+sB&{ z8?&z3H8tG8m%_rJw?~-CKsw^NC~Ro_9P285Kv^pEP5b@|ym-k`h?!I5KS__K8F|L7 zMt;Cyf-f2DnNNXw|0D4ZqE!d`Esm8dkoUcZ|n|r=V$(Kcb&%Aws zR06$VWTTy)(yMM=Gn!}6=c~V=EZ}PVObonPl0Bv&-q_0Zx!(?aH))}sg*tX2)~U2? z5E{o9iV8;lny$6=H`_DygeY)1e3pxOyC4G}bWj5@rmKJDDVEl@dLnOgAg{4BeY$mH z?C?GW8NMr59CAAb9Q_lxINP~sh@P>4j!SfW7z0b9RgJo_4@jH+A}q>0x6=^{xd^K{ z=6Qj4{LwQVX}F&?N(lOG170eAt|v(lsa)p)ta&0I-q-7frmr%#SFKG$f6m9})i2HR<;lAQF>8YGBFLvCc&GX> zv#DG!N2?AIX1DOf=jT%vbmrvD>ITp*{L1lIr|0{z_}p>$Dg5_r&73H24nsK%WyNA{M>$5vbF zgSYrgxJ^vIa+{##q6S45Z3;QtwE4>!sg?VT*}bMCb6L$K${qgA^M zq=Po>B`nr9swT^!T=YouQmLwc8$oOc^M9L-jF2PJk3y61e~d~PIxv}W zk8FVZ4}7WXo`_Ta;xp@Cv6+(nzdd|sE-_&Il9BpXrx0(|qWM+(krZLRzt#8=DE_v_ z)o)UP-+GjO_YDBzZ%_4S0P)LZ{(sx)5PFH(KCj*< z@&|xT%79A>M2bf*6hG34&Y_dDkJ7Tr0|5Pr(4_(>(CQUO)Up%!79V_j%2AYTV<|KJ z#yzBK!Mo< zF{0{7YQbSUPI)G@k#JbLrapKFezPW-CnMTcn(TF7`#4%#0h=E9Lnb|BzQOV_m*J<| zTF%MqquSF8k|C54InWe!rz&=fB*-QH?U56^^|{p$*IDcXBgynor#iLa{7$*jQ2A}Rg4e1mM$RgWce#k0u)rI6DoE^glj;bL z1U$~l(ircIO19HcT}mWQ=0rF@2`YE1-p}H^o!2OZpy~d!QeLDc!e{$3$7uTy(S59a zfj&~=8;6u_8e7Qob&9C_t!Y@|cclRw$B9u*qOgtm;3bA>JjPEZE7TvP1xBBey2Elq z3fqf-j(fUgF7?0PcIZ8yVi!;+##msOpNQ!D8ViG8^BxXK7(YtDL7cWPH%bC6epq9W zV_nr)otx3MtiDaC2k+&CRo3mT(9I6;46bC9x;~lh3de45s~O~~ z_JwrDZ0+8EW)^o0zt(R8zP&AR(0ivx8M44m^VDqC|S$w%8? z=&lmm1=-_-k2yn7%IpZtyKW^UksyX}V?uDbZySS|Jp|~+?^sq!@H;LBIm3J~+vF+2 z;uFZWw(R@fWY#LneHW0bZ~m!4-fQBYzcX8fI0$Od#Ey$AGT9@lp_pMJ+5C3wk&%{F z%eP>yHr-tWh*yS++zNNl#T~3*Uw@o9;-=<I_(&|{YBe+_9?GpQM|rZ+ zXAQL}^1LH$kC#IZF6_`b?8Dxj2;v+pu6Bx2LifuGpwhLveGx8tcG9A0_yi%Fa@7Pw zP-oyazh>8~@-wo0!LE{xs&dg&35%pGb`7{c#X+IRK$iy`Shzubn<73o1}}2eO&x=$ zaJ#QV1D3n8TuAjTrcM&Q44$>uov!o0j%sxhCj4SPs4{M6Ft*3Y#Q2dM^?A(n4TM?~ zPri<&Cr9=E{O9Uemj%-KSd6pbFD&A|6F(FV9|7CTI=0vncL?G+5Zzu#MLN0U4bZ;j ze3I!N*&>^C!+em9-84Q}h}|?PnN8gH&CmNVz}-*yuzq#hzl;A9&7Y0`pf#8bzpMYx zf=*EAm@;SC{Z70vXEMNn;p@B%d9-fDTboTP!V2?J{Vw7Y&RyX7y$~qelG@9E`c|@? z3Pi4+evrOlrN9xfERB>#SnkNI#lJd6K3QYAuvYSRqseXM<6GTh>c~N$Tjp%94S%sc zp2YwoT5WqA(w$Qp-d%3og$uF$Fz|@-=K?iJY}h@VYwagVaW1 zo?TVI^E-9ne2`bo!Lj|82pPrk0QT$f9>Dt^*}6kR@7I+y1CoW>_a1gO_=hiDpj7g4JM z_-!+i9fZ%ixxz;+j`S9$Eo=4bUCrB>!-?adVQNZkVztum+s<(j)J~*?YF4YM!`6xp~6;4!?p5*9xc~(}?B))u4)#0jdJh?~G z^tSLi?DYA$IzhoDG~Ou!2u@pW1*6dpeJAgw)LpryYm)0GpZ7r{5P9LeUFC_=_-2^G z)Tfkyjr#R;co3l_UduZdS&j2|B@70UWNh7NZn(p}L@UBKAMfe5TVStLWRD^O6B=X& zUJh?4u%9H6#~()wC=kL411?IvbjJ3ZFqe(Xk6cR9QUu2PA%`geNFvwsvpoDR){}yH z7AwRk7B}i8D2)Us=x6?G}JPAHYk6PP1m|4YyUCz6lLo1Ko^)8q)6}iued&ntuA5=TU>ES8v6}n#6Mk z^LDYK=e7En)y0sjZo(ts_bfr?gIG|Taw_c!Ehye14t5bD>^z@>Yz}QhVwqcOl(L}^ z`jMa_^Dsy5xKD;Vw$`Hz7IXUCN(BuzD0vR``q>=@pLMd*$8gW|ETOi43%$Nn7}f72 zMsLzyW`Mld{aV9oQWrb74XkINp-J$59e@30i^L&DhY33C-OX1ZQ+)V+ddrXxS~8oS z=#ic3F+<|J>K6E`GPMBB6om-0;0qqHh^mh^PE&3q%k@Mn&2}7f)$D%^mKiXK4A1<= z{pr>T*+k2=1^6VVO7cdVq|H#p8B)A_B_y`ye9m`!$X`v=7tec%joyj8p7fju$FAv) zj?HyVR})aZ4aeK)G-z&8R<0D2=kIq~x5E<(u@%n?W~_c^R^BkrQg6<}BSyC7O<2sM zXU`Vtv**qv^SS&gXju)tdMI~lt8?9F)LOA)35Xc=nr@s!!JkFf-G6jtv7_NVo(>JE z2NITaGz&4U%$#5AdH`Bv)A4|XAhDeGN>oS_^78EL0{~fL`^IyiR$X3wWyR5mZzKBd zgy|4|whqaWC3!O^s0a?5$7Z(dJR=J(=lhwh`Jnq{+r4DRjDA>k8LWHRs{m~;I+sTO zbBa>}8k-z)A$Kk?N(4(W0ea2JXX?2De+-X+yD6&Gd}E8M-2mv=S<#J<(A@h^{!7t3 z-LMTGN0ODJSS>GrIT~mYWI3tPDdR8f^vOMdnFKl<3 zr6w<|WMeaLQ-CPYR++Z;!=BvBdW%R-b7@o@93hMob@ESRlk2saX4PqMLrBm?`HCssYnZsiFmAb#}nmIb!eAktn z5KX%?jwYZy@OC?Rx@B?^j^Ee@ORaaDYA}h`A%!Bczs~5%*Gcz2aG@QT=O@RcB z+1+`1SUtQpFTn#XfK z>c|nEDM`G$i0Lo4C5X*}(ZpXP=9E_Jf)UO2);PMzfjO&5^X|7SuhSs+UtX7tmcUh~ z!A(rikN?^t;X04UqN*}8pl18OPlHY?p$Pu_^|$k}1Ju5oi9^}vM0>3 z{z@Neb^M%=3xxg@)3PBgEH_i!BDcvrG$sQ=wc^MffR4dJcspg`wwmI_KnVh`y}tZX znb0LQx-z-rrJ;)nT0OJ~)K(BV-6RP&HVm^P+OAd7RIsu0;wb4%ya<~k{S>)?BFa_+ zvR4gfT=6o76l-(=Rkf^fyh)!DEsaoTR~1JrWCq{>R4R26{hQpf-M_4yAcH59y(|m& z1V^A}V?rSOf+e92(&In3*OitQey!UZNj?QWb#GL*fqEr-sd?_cX;RUbf2yvj$L$D! zdaJIoh!8i$VJC8I7WZkpHo1Cmza#y->*XtX(hx&6SK2X7W(j6lBi}3%WqI&s_V{kQ z-J1iKG?GyUmw8Gb-g{|(1Ao<}f<2KvtGKEwm#69A6ILuNl^13#0pqPY)=U=898E1D;qjKYm4 zP!HCz%3`gxbDqBUwuM)H7SS5XnWLADO;3DY+h4n6!poe}lz4t~c_+VR&kTnN(|dnj zcJC~71Eo3v(|xn6f3pQVgDoCqrw6-c^PJa&$!v-`N#aepb966JuMLJEtR2#=r=Bji zph=tME+`c5@Kzt>;e?ot9?)lnnwvUR(Lcu&l^8rJN^rSWIOH~xj2?ObaBMEHUOCQ8 zg5Pz`wayRUp3}`bSh;XiS+1D3^}uC8wO$9Ha2JibXL=RgQ!emXHM4H*kS-jI?i;as z*g%&yW${MK1jO5R5IE940fuP394->GIS3j`A$RDv!>GALM?bk1g{0Ak=2EjM*_V~T zE886``uw7SNRtyOTLmbuUBb{2 zM(qu;`pqeFtTP={kO(BH8{u_weK9=)O%-<)(6*k&sO(I4PK2RDV_RAyvQiU=npjv^ zLBVRo=ywAWPkZYCt+CYROomKB4*-;^;kT36O5YU(*7s-M)-|T%e+*v&@S;d}N%!)f zb=xJk)*LgGbXy31A-=X(c;o%K84ViCssp2ZOcTm1o}x$2NQY%s1*saiscDweNcwQMq-ve`J% z!j{;G=(-?v*u+slr?p_BQiM}UU);g8gm`$qX-F_WUhWW z0J@5c-SlBhT^E{+VA3doxd>WGa>uUx`8kbQ-*RnC z05u`3B;0QJ?bPeg{Lp-WA~RrLH8=}RYWgk2y156Ge`AG$fS`&h+&!J}A6rS;BJ*gSf>l`{v((MRo3Rmc4=#Guf+UJO^yPk{mhmU%?d7@lKy< z05ukgT9nM2UnCnBSQl9!F`o7qNk8FcErnd|s*ug!`IeJ&=E={AH5I+1 z{uNR~MjIN=(W4cL=8hqKd2lw0aJD;NAX|&G(*Df^MYy9Rh5==rutrBtHe9^2TQurx z|5ksRX2OQB;hO_jlp<1A-e3u6R8O>RJ)u%>bU6u#+?lH)unYd4lxM@p{jGF^hua}i z01CF#rSfW3A#{X8Ix-9CiGe`>OobTawPUe0L0o$F`edVdm!kKxckAEJk*Ucih1e5oNH}MaEQt-x? zEyKb|%5`u=ZG%zF@;!@vhWaxKc)Dmr+}G87kTaAX3fu>(lz#ZfKfQzvh6bD|*k@+8 z^0Awyh+{$ghbmFZfeU6-OUQ|x7!_nZ!QbYZblSn{v!6l@*wRq}R+RuZH;8YqsG$^m z@ORm6Wu`!H3?2YqI;k$=%kJ*LpRfaA0G4)HJ|^JtLmN0eAar@8bf07M01#q+04%l% zAEB}{8{)r3I zS-*_+ud}+ZzQN{#ZEp4#r+h+Tv#ipuuHS+{h=B2V+2jI@z9r1pt(R~dthLPmIq>v0 zY{Ji>@xMm;|58u+cPm{_X{4**H6KMXcxR-3{ZK+;+_f5!eIogZe?-q{SmC$73iyd@B3`4*(J?yH6m~D$Cdk*>dE$)&^d}?l5$Ob9|#>d>RtaFc(7eCs%dT z6VT<6%l2gbBKnm_6%a;OyXBo-_SlM*V!B=00(oT!rDzOeClw-Z&wxCfvd20{vm+le zPsq&oJzuV`qU*VKc`YmPe8grHQ@?FW@ap%g1cfSZ)*2f=760pyN{zD9 z&2Bn`EFyz;?{+e(4czmbCfk;h#q-@UZ9Xkm;AH;|sB~VaT}!Xg45c8~J@-v10d z=TlU$RUpEa)bqg?L!0qN8Vkail@T3b$5|7O+Jb~VQcZ%1kp8&O&{e;{>B4>WyS52vxJk7t7pA0Biuxvwl zb7)alR~;#h7!KJfLXI*w=4}DqclM?pJnFE4op?>2QeEyXG}$0|bD1V6ksg2&0q@W7T%Fn1$T})zPZ7fuIaw^K#s-7 z=~<1mN^Y1cJ{Qedbmx@SHBud;&yCfj?@4;$fm{RU%#Zb6;)NNNsY90)vD~qGCD&UH zy51&};^4RpAZcn&P$}Gro{@FJTuV^m ze}SFMDe<%q8<)CXu}y&rm#0+kursl1LQg<_rC&aFOu>Wc@cG+;YH2+s^5LM9Ha=7{ zSZ4Vp&N1f_JGBYhPvv7xN)(;N$&E9VIfP9}C&Khi-&FTbdKZU|aujm8b89WYyQ4U6 z8gF*%gmw==U$m?}b3`0K4O5^7V(`=?Rokn?R|^ES2_QSc9UjVBkI*3259{ui(Evbd zJqdu-y~HZ&e6r>I8`vJm!XdldyPk@ZLKX6PM)yUP1GmI8&xU5h55A{Pck^_bPo;?z zYFWJD@Zpmi-(v#JdXOjLSyA7bgy*upY=;wk)dx3_b?8q}I#FP|ICXySvs#k~YAM_8 zIaoN;pd5O?!xz;!@k%TVD2As*_bN3 z6Y^pA?5Z;vv*FM%tZQzPGDJX1Sg&cMEiAka61Ilwfle-^u3%kICzi-e%erRMs)(`z z-`d+#oT6)at3I}GI?<$pr)@E_CVQV};bg-vP6R1o%DIi(&Y}|t#o#ZEktn&a7`Bc; zN3{-Y*B`hj^7_E2HZx*7M<#DtQmtBRfidtQ9B-C07z!J(uYm0sLsFjYs)rbpqJuC0}sZ|?sWZ%s7~*MmZKz& z2GeJ}l}dIQuw!$AvK5nJU*HO(^Gr)A&l=%Saf?JFkT&$43P^TT7OxP#>R1&Xi9Jfny1U~NEK;n=PodGpvosnNvR=Uc2$4nX;gBq(-y195;*TGb^& zS}CBXoe@QxqA&ftx;?&T6jWWlQ=RT+f>(73d0-{(kQB-q#EsKChl0WvuGVOQG&v$A z@g&0#uCDOr>x&D9i;$)uq+$xP=NhOYJgd0fT8`@9J~Zx_QDi@xUzt4YuZ*2HP#_f( zG<{;L=jaaJMZQ^LE}lov1uJW@5ri^2!Z;e?7r7ME3gu77bSrNvJi;z||He2(qE{y4 zd9c&nu>3heEpMQG-^O)FgfgVkabh98+v*ew(ilm&!+% z{6x86XV&`)3u9CDXa0c^*{e9Z&BM0m>T+_U>m@TT&+f|=CH)%vxc9dYHA@O)E%LM( znm{VqrY}nSutb`UAe1$ZocvjKWp*8QYz33-2ztqDS>N4_?mnvsWNZzXh`^v!t8 zoDObBLO&OEQFTZg6ja_6N13|x(9RcZY|r;oGjGZYEwHf>(buM{G(J*)O+c4eVkWTF zEeSXNh-5tH&MR6fmTYs7m17aTU1UyPmB48sO?byCeO)2vhN1f1;@;Wn zoDe)~SPy#3;oh`2v5`P$A;!|Gw( zL-|3b1NKFBFb*!XQ91u4-5twVOJ(xVqS}OwVZw}+Y}NXN~uu46mc*bH8t<-;7!?Xv|@{ig=TwAVC^PIWWrt zN|wGvN{pZL6dS~E){d>a51>ljR`k6Hfo=U{nxOVzDi@9_bgcOSpxkmkDs+#edJgmWHT2T+U0Nu0HiS5a;(ziA z_C*vOO-LSxAc#;yXK`~kjQe1uxYx2k9?iDjwvw0FESd{G@$1DdsJ{DdAy*qCf82a{2 z|G+`5`ly)PthU4(9RgVXPU z>*7dflC>nV9mPm|3Y z;DzO375b-$-O{Q``3N~ML$GSe->KOM0XOMIWGe#d&`~rY_P4JmN@!OOtimQ5H2ftQ zC#J8v`%nb8&UX)m@z~WNLnud0$K?k49ibXll+ifjg1)C_I|M{~O|H@FksC5=ija*4 z!uTjpTFp}V&ww@+;>*LrOd?Y4y%5l*(modCJ2OxU5RFR3dVo*C7G=NWf_WJyW&ecp z8-_ig6?~!^WR-cA0gQ;#Uy*vDr~l@?%OA7-D#8l?E<-Rw5~~|OETqJdCE-zOM#YmZ zMK?N~L<=;UQO3FAz2e*|7TOOX3uDnt4CP)irL;@g+=7*)+OZt`l1Da|{Y<-1#?(B; zI>q;^Z4Wo@JvC+oFCBslr&SiuSBaVv!l>tnQgP<|D0y27>|sT^VD>-vBNH+=&yh6M zxeI!$I@}^Mw#cqyqp^@#QFX6d#^}$GT?A!2%Q)3dRIk`{%Tl5R*(Q#mf~q8r0r=-j z6}x5U6{tZHyl@(tmhsE2D%QgO`#S#%|0-o+fegTy%u~_wrR!hF7!z81?)CuCSq0gt z^e<$N#-uAY&ak}$-zs0=%~g9@5w2H?a_(pQBYtF!c7zvrM}jvv&YtM?WOZ}c!;PXi zy2FH;^FXB)5d-O?qYoTM<67_i;$#%1!U3on=EGp7I7#%NlM8(@Dt&4H7lAywS^!FO z56@w8IZ=AZ{zmeK$9lk$o3noc2a1e3O_4V{;_S=(%jlhkk{N_}R)!JAVY7GVhN8$r2et*yUb-N6%EVt{NNZ)FiJp@q|GUS9o1eSDLB=xE!5*OoFna``G(iaycEkA^= z@?ZtJoo66&y2{#YvLtBcdl?eh)LdWNYiht87~V{2QQ$3XnPgp5(i5djL3 zEw(7u(Y+-7QGKMgoK^zPZMKW_Y8PTJoNoDej0SqS0XJ;a@>5Y(%zpZ)=J)FgxZB}q zyV`%K`%`vdoVOyiGif@PXibI;kvY=(^r(69WLX5q3UXM~tF>Zv_4?FOjTPB-F}2Lr zW%-0Gf3Ms!tq6UxT2~)Q89^G4nTTE(jyz}V&^9Bka32qg0~-xnuU!nuZ4i! zXirT6|O zQyinpKfxD~I`hBv5~Mixw)WO8i56PF0p8<`zmi_je~JL!v)6xLo-O(1Kz;g@*`z3~LB+i5!;8j3j3`F*stORZwx9I6j|$zcEe^7Ry5&i8JC+*ATr8Yd?Q zf|E*F4{};)N7^MDW``;^}r?}-Y(GB z6p$a5{uM_$_)wFP`yj4+Ncxr|E1?Gfe%?Tksr7;W;nSg_`-JIPXR5FU^X?D!UYkWDnO;b12fQ0C!Dlb^^htEqeKOxf7 z-{hvsb@*r&S)KH^CuZFu+TB2F0+%L%ATIeW`hL6I@BAfXR0}qHX-3ed=QOF=AWSdE z2Y~w)4_)KcUHBx_#kLjSIA1U>)ZwzHC8k}7|q%*Ay1 zc2i?tmj%72%6G6yk4}eu?Cz47|w;$ys)zy zk;Yi2LqAGw{gm7YXdw3h5DsIy!vk-(?%MjhNeBK?5I^y@{j}Kb@1`RDyG%UMnkjrg z%4Pj8L6&5F!e;ifl(X#*j+D3jU7vpvYD45tE`j$9nti{{eUTm47(j=K-w<8jI;0@7 zQ1DOX|E9!f17VWa9_Jfv%C>5M8vNnsf`@O$<%}#iS9U}!_(%K6Xy(I>Q60HgL;J?r zyURb-v$dEqZFz?q+$7|6$+|Htl~9M*W#*Q; zNn6e|d{YaxHKO91;|d6yd8f3djdZR1n}Yk(U2bLq+`H<)WrEQMz-D0j zCFsWqMOTvSE!WFb_YZ)$2S8|663Rg6!qCiu3OU~xd1|Km_hG6hsaYpQ+CMPOZ~6D@ z!Xz>NGAcMWh2H>w?aB}SLZsycc&rNi%98_L3P2D#yaS(ZM9`yd-1x{)*mq>f`gcch zpa%drEbLUNvZB*u_ri{yfpzs~9T@SKp5b8!GmQ8b9o2!AdtgOI7eV)BS4#KkU=j)@ zJOD2DfnUM=GO_vPBP#!v8MSvSbbVF}mdXl*0dA7+r}ZO#6rV_coCh@f4wg5k<^ERx z=to!3enb|q*La+JD>w}D0q<@(oB@A}3+`ckvp-bJHVkL(lp69V(*J$|Jl(bfpXV@j zM-3VV_nvfF;OzzYKfhsp!dmkSGtIx{UHGKm-Drc?6sy7C41ZZ5i0WkRMgbDxamZQ*VR{KoXOtlwyq^*{8U5J7dY~R!P8)}nMOb>?qK`l z#4;O&J;y*gIZJtI!DbjrT|foPgJ~=OIot-`%RP2(O^6 zNHXj(hz7b>Ydv|w5A6QYFNv2`lV6xSR;+^EcN*@Ga3G1E{vSR;1$+keFQ1UkN;y#a zv&>JRCj9b#_3oViJ6QD7(fx-!*Y7_0XpH!OJr4Zeh^F9+W6FXo$rT1A$`SGewTAb6 zVUxPu9=%-)Y}?`ncftX7QQ+-ZwE5!)!ce|&$>VCbp6LUi;}f!7VmRCH8HYoM<+_^! zPMhNY4|{JJ6=&CFixy6T6WpbM1a}V-f(Iv9A;Gn9cL^l81rH8E3xc}^cTFLMySrOX zz2|h_e!m`lzdoaHk2}tf^Wz!g*;S)PLGAslz1Ey_%?)a2oUMf`{dX^H^lE>xc-{h> zr?_?_M5->IlOosDG1K2r#8w*y?B15;{C15N(1{Sd0t=7b3&OnFW-wlBM47?QfFumo zk|(&bpzaQMHNJj=Ggz_+k_Bg^(Z?_VlO&^CV%>MXJLwv7{jT$@@Rjr^vQe=FuN?qe z`3EuW8=}9&L*EVQu+O~YC!|S`7e!duYj#Uc0bhf;#}>v`7+T9bllcbs9dj_D>}_l0 z2A1kRB^(Y%8(F~M^958%!b6*$Qu!uDfB@$ZA&?6>K1!_Ec4WKYj0l1)`hMYa^p8ws zKhZryO@Eyj{shjo>yrzC{uYM%BOrL3Pr)ysM_5x&UEgN=c%z3XUXlE5t3on#2p$r{cWxUXWJ?jG~J3?hxGHiBj4*51HLq|k;LjGYXGb@0fVwIVk;c>9Zz9p z?K+$CTmAIDaN!g>(Zc9d+eo(KWZFf;m}A#a?_l92zd)A1=d4bane={2(Qy z!W!Iel+<8B?2rE@3bd#V}e zbS=as<~HG!%|o=F^613TLwADvn$-G*v7cElS;!@G-;axBO%K~*^>%5x$Klnj*y83G zYXgoxBB2o&RbKgbuy@cOxhkb~FDK|cd6&5QeyH_7!s%0>Ie}ha} zTyZN(Sr>1)A)`bteQ`MqdosB)4?QZ!!)6LRN^?Fe&Ed2oqH&7a3^Y&a9$!!Ul-RGw z7G=I(`P(x;^BJy8K@ynZUlR_<;=X?@_en*7~B=m=q+86 z;BGoTU(Iyw$c=^!tw_BD3ATc^Ovcx_$hd--O%%tfLtYdiGZ$(~r^{WPa(o7c3#bhd z3!ZtNPLA;{&Gu}h#=%E7FGCi|3>><#T#Bus{PnYJW(!g2nM)f(L4Z%NoR`?!i#nL# zzQwI-z#Buj0B{>}W4kk5EIzc7*s)TytrgkV;33dlAh4hXDO><8>hu%-iZr>)Tt}cF zr7lVQ&VkW_=FVa-PQ*G`GVV}d!)*}bGshvdiab5YEFbwE-#~(J`2ar`$3NfD!k{wNi_J!)UOJA~!&Nw9D%m^WPNOSoF|Ozpc9x$%Pd^sc z=2>4+DqL?a$-7@H^7>@Sh71UyN92Gv0cc{2>H)vd@()FqyuQehaV3uI3?h+NMYo*# zU%zcuy>>rre{y&>I{g)vpmgMMW9=||Z))#rjg`nfTx6roe_cWiJ6V(KAu3D)?JVve zg?{QE*6I{pFWGsPvYax2&0C+I#YapJO&}%9-nN8 zpxjHK4~z}pGN>ESc&$4IjNC$CXBoC%UQr+f)=@6VizI^!r)vOxUY=qagC$8K_!sxfi0 zbNYgL#?0bfk7ltdK4Whbg{7N*vNE9r5>xs&Jy2w~ zC)?VCZtM`xA^DJ{h=*IBykI_D%O-wHm5v037Ym93U00%zR^xTNP3z@X6Kv*9h}-*e zt6?-TC^J>7XpLWt8JwqZcv1!pW!x%7J$#C6*s$|$!N^3~%6xCg#Ty&UrCy+kCYVd8 zsKnp9AMlA|+y;DX2*c8NH&yv5bbdW%eM*Rk-!z$-1owq#g7EM8%NC5-TCZ#V>Ze>H zp@v_O?YteEdRZE?RjM@Jl&dFy>eDs2KqmVUnde>B`Hpl|wnl`YLtzjw{q;p1MW8~| zMb~=DyFY+9MmT0^2yd|8rK^ClN0(Zk?OwlOxGHV#A~CoAhU*@K!>8hh;FY2Ik>kiu z;5nEm;N}T#di}TiIAW_(qlJ5iCuDfpa{}MAqpAO41Te@e39#MkxWt8H4jl*2y#Fvj zaE~Z_s)U1h6Ys|1xC`7W`X5FUC=1Lf*XF$3Mx9Q*rxPlL3lo&Er5;nVxru_1v!K2^3CaE{jk*W;@N z2oziVu06R&*9%zLf?KfjvJ|t|VN8QXHBe$`KG>5}bQA)>e-VNB1o(0QXZdn0?Ot#H zY>N~Ti^k}h+V_MyflhH1LvlBygkz8LXCKmqy;!KAOgF&lxWktTy^h|NNQeFuv@sA%z;RPRj$m)1qz@$C!i zgsLlZxXkS4wI1}eQ%oGUv)wu$AIMBwv?TPMTc#^&T3SX!KHKR;C95h=&$w6ewfKt% zH%*&PT232Ma9r44qCy;aTJl=O z<%KbuExy_*RX=`sFzA5QQ{Se(KrXwE7gI^wv|G7}8O`87tF99jS|3%u=u_3h!Hql! zgK`|P^EzSDA6`50b}<4uQqj$$J%|=OOv$UQo;x@$UQG%-xxtN1XJ1!hPd=Kimz`kl z-<;c~s~eJ+y$&tsk#!Qw0H&A-#K^UNd(EGaYmix8@a07N@!g<{arxdd%NbP)uP}cl z_54bY*axkfHHf+-@_sJfPcsvA!x1vG?DcSd?xUd$` z7Q>0~dU^EZEtg1Fe>Yu0;N z#xrHm;3~)<5egw$(nG`#F5r6chP^+4`aghk*$Op7rnO8tfe0!^O2fDI7_kJ>xHD9O z`Xe3lW?Q-hG(secL7oH0F8OQXV?{;G@39jd6JEzG+NpNd???by z`-cbKS_c?~c2yqyuDhpdkoNqzoKmp2LcnTz#&8o#(?SM@bZ6SnGbUIsZ+j#jj+|HY zEqc=Mix~>;Ck|8*5t5u&xvAuv%Hjx~Ug1?MT?4R(tYAe#)w4r$#z- zT>Q*Rx%1b4jNfZ(v*&O9BToMSi1x|a>()jsKg@g(7%W^`(AAf6{2FigVd1m6K-?Fr^Y>@Dj%f;-m3 z@;!!HVE2!)4tcHVH~q0Cncz#DS9`YRwgvOb9AutaBtN`1bpyPI1}I8P13QbsO@>W- zbzmEp({?t)eoZ2Ld0XVXn~$EKK9y@Tz^uc~KFOh3EA==^*x}h%H|SEt#C1bDW-#CO9k%a{G)JtZqBD5`I#v9jCO8QAWZ?TI;7Qa=S6Xdx!di zK4?j;f>EA{^(*0L>!#ohs|C-k8Xy%dlw1aJ2&L8Fx=q<7z?`bk_IhrLH{oN@ z=0_mP0tPd{J!mGrc7s$nwD%-*%0NV-DQu>zaCfp-d@cu56gC@OjYoi27dr$%0!HC0 zy)b}HpEW7z`oURQ#jCf;5$BC{2I?z4$>~bhIc^+Pp7Ctz`}@myZ^AEkQqWA8%TP@O zUTZYO>V1QGQ2AR ze}VUmt~0hcIh8J1H^WBP zJo>vHF5@nywm50@>$9vLWp7M_5{8r!C@63%+wKDr19Eh3B3OD&&Kkn`FglRw_Pv!; zIW7-CO=Ra=Y|v-RIMynG8{|(Nr4EbBMM_~Hn3X#mWg|HN3bM#m;x84QdYBs{%;P;`+qa{|G(>%^Di-? zZ+C8Id+?vi?4RDPRc-B%#>YYkwfmldX};E#<>D5eeYuW=O+r+rpLTe)^*nuSVujWE zjAZWu;xDsHcdm*UD3HKAMGfHy5%A&AOW zk?ZtS<%d~bEzzKeY=ugSmPo#{XddGy_~RA|R>r{|XZ%`2o^y80e^#Cd1ofv*mid;i z2@oPv#0feyyV2A%1n;k}zwS(53z54U1in_gT$5E%h}Ek0c_0oZhn2mMN3my9xce$O zj_~{2z45nLn-5l7cD~wJF=;=#9oVbZBg<(fF=#TlnOmN@rTTkt)fe$M2Yn_jrypm$edPo1 z8Af}Tiy>%PQ^I{Y->gQ=2$dS~RslF@>B$dk?b$8}VU!wLH8CI_b61)KI{S&1CU!%9 z+Q@-J1;RmlX8;1^>KTszi>JL6uh>rNj{>u;XrzN!eoyiKj$7O>8YbGEjA{<*7%>qx zqty@Q=_-fE|FJK{^P=_qH^c((j#+qXgZIa@JmPhJ0Ch*`MX1B#_+_|~^^ZD2*mU+C zDP`542WQ^@@Z;q5m$?&rD6_lJOib={6u@^HW#|uOuc&=<*)mRWAfPtpcs`C2Sru!I z%Kc--^v#&EW|r^z z)%X*YQh4SnY?x+kY}*Q2_!TGH7D-tOAZ4mVgnSe+l4PrcE4AW&MZC^|htmJo3$ueT zV4$izVD|gUJwhpQz}cM_ytupm19*_Bye)f{jy8R6-G*26SgPTb`YT`r^Xq|DkS?0uq zJQ;6#h^m(76wI=a9*WVWF?I5i*mX>QterHvnO9=my7^e<-R`I~&r%+huW=WQZq*Qs z*mt%9yagErYq3;s9v_r^1)!cdc$TD){{)%mDjF) zx<#{pc`{2-6}SYA`Zj3BD&`B@#u9k?!(>CWnr2;#UCY8?Seq$M<=j-B+Dz7>R9~tt zi(56;M~Q#kn=aejTu)k%GKRh4W^JG)cG5{ob+9uH+Gj~NLO)2ig&A587cLt}dX>o4 zH)!J!Fp`%jhAq;YP&%UWuZB5g?TBdI`c+8hWOB%-d}s&7VpoLnrhl%aPSE6MkSKl# zS{X`coNN8A_T-QAjJC4Ln{@SD*RTbNl`(Kp6u5?B73(n;I^itP)p&hVK3je4;zQw_ls=I>9yW*$5`R=`VA*;gFWuG;TLbY`My2s+4?o2|Li)1iireUcOnqqDW!O z8ub#F;7(%GY+F{u+X7M)QR@B?&gq2Q>R&=Mw5Dq_j9p4s7IZ-g63N@<(ef{K&UG|PkgGN}i2Y^H)bTO+gpUcNn6~^{G^6B0Py?%-R0W`K5qFGd zariIx<#%85%51>7k=G39wne7#%=eir;u`h0alK+bNzw~*zeR)=_f>!iSEt+CJyDJI zw-|B_&9PcdwaMEH^H+F9Y4oxS${K6@tPhWDRwq4>ww8e6e%1=?Hm5E4KD%=Dp9*9bt_rR=7J~e$E#Fb)Z)y{|_e=wBU==Eh_ z17rHCuUI%RS8l62ZHN!ps|oEPcGQ}QwkTusTC*c_b6vF86nNh^wNq}(x|^XPYms2G z<-WIu$2Z-PxuQ<6#euly)!Ul~lXb!4BZ_YB0XI-; zI`n9{x77jceBpPG3 zuRR)@nz@#q3OABoqP=Pn5e$GoGxJWJ0BvJKqnul*Ub2s4$-BI4_xx#Irj{Z~EOpZZ zlc}3&zEwXhM1NxT1LKsuy?3mZqUUx9T#aUn);{_CMeN;0N)xC9@*-aUvkNiLx<0&Y zw4_|8Jsr8h%Y({P#zHM>Blu{HXM74WDGeY{`?pJVR(z8p;Gq03VKm!=`a$+Nw)kIu zvLv-I|KLD&22l;7tk($E)^Du-*;oEo-a}elc?B<0hsy$H7gz2{^J4#D6e!kp>T5zc zVWPgJK6EDO&f5PGV#4`^n~XPxhGUUfo)^N z>UX=AV@5$8{!WrdFlQrX?>PAE zC%;QhZrQ~TPiw3l`M{dGvR+TQRNtv+?GuSuN5nn0aTU4#h0Fs^wKB0MTJmLOufMe* zr)KT7wbz=5j=IEeC4a735L4SGCV9kS@UeZe>M)3K-+t&2xYvV&V+{p{@&QHNE_~6w zAp=KN3AHxfs$(K)Lv_0^8RbD&M=%A>zw!0c1U^JLjGGyIq|Qyq9|Ak=Y* zq{$A~SD#-zcO3lzTt@?3UH`W1|NaR4f4=`#`wc*5sxit{j9B{*xtmUQZt4C1li2Md zX~8p8WOK|y9Yh>ts;dFdkWOJk2;zG}I&^gP(}IzljZjOJZ%z}qEI;$$e(!;6ys=;S z-EjvIGWAF~DWn}JSXV8>ToJzRUNph|J3WF5BGjuvYT6f^@%`DSGXv=mXb*| zxLXr?In1)x$puZeFRbmT9?RhFYMZKL5U{!58inqZ^FWuv+`We8);owhCNxSyTmbBpF!DD#<_GXa8D>c<|HwXJuhMu$c7ad9X zEuq|E7-0P?K`lYbpv#it|4JD6k3NGK)&xhSH{k9BCh+6#B0n_jzPaCd42gYmi-e!0 z%f`KulY>#FLeO)hLI9|({r2D6sPR|hhZyM@V_C86I;9$YM~fz?k2Jbc=Ozuf_&4TQc(I+suaTo>08;2?Goj!`u+o@ z*6{`%o-d;~bcH0)f^uZ<*4e&a$4 z*cKw}SM?lPK*2*>m=0DT>li6 z7{>$7??MZ1;6@nx{lv!WM+T3SUd09mHrMyHP-5-VZWqGbFh1>QnQ_)vfuNTpiNp5e z!v-wA%BTCcb&ujZ+k0l7iscja4AQKFTQ5Wp*HlKgj>K9cT9|@r2YENEtxrS?f2JrS z3m>0vx|#T&EDuFdWqOwJXOY^n>1`i(gMPzvI0moH=^2R$uNW~4lyz=we>*gctT`Yd zBqjgx@==_croM9P&i3{h`5Aw9wx?NC?>j%SmU|80lsud^KnNXKIJLkj#wX5m5A-o~ z%>k=>4PGfW8|p7F87b{7>gxkvPw`K1YXRSnp&2y29qjBo(rA#--iOB++R*=`zm(Mf zpM)=?e+=loK+@A~vi*Izg!FCQT3FxGBKf#Y+-|Kq4o_nB^r^&U| zdf2JqaU%vja*XyDi{DWR*zcp>{bZ1(!Mo8j%+7cU;Gi8`F*-1RHi|rU9(O1<@Vrq> zIA7`Ew&8!KNtef9==vEmJ^+We#*bx(Opz-`8|#njvhzWn)ee~ZM?R&tkg{<%vlRZS zc|!>>?8tP~$~-|vRw*>-{9TUf3nae%n%hd*h~M^DBQddVd=cnJTkc-#_{0*Wh2c~h zmlPXOo0bAyRD7|${CeQ=Ig4t=2e=0f19k@|ja-N~`>FsfCcKSX*f~GXQ0uwfeTKnj z30?(uTr}iD)&{iZY&d1y)Z-TqHHzh?%+NQen=OFVJ_+*Rt1A7h>@%Eh;_C)t{)MQp zWekB1?zaV#Wt|~Ap2IX3h?}VM2?eXGXYwVt_3P-oPcq#~ikaBkI>xr)KYYA~_QO1j)SJ(!%JLVi;UoyON~G`9rhJWr zJ2Yk!-35sg+==xE;MT_N+R9XB<6Ui(sjXaH!#|6@$;W7CHjj@98oIZow)ekbab8b=p4H;ZQ~xliYc-E_SP$RMR(%+@O@X z6j*3|3v?c}Xbz1cnzaTd{?fq|J0t7caK>**^0i9IG6pY4tBrqO-LAy_Vp-5d8XnDXiIC%0vzaU zK?od>Kmt}*uSqaDEpW^7P4_ipfcm*wlZf71XeL0-;*OF`SgOA9pV2cP_8nHA4HQDV zwq0Gdh0Hg=hz~l#29V8IuN_4@0gysf?WFw*Zd~!Z4O`0GnxGbv?V3w*Y8}JfvXXr< zrO)&VA(}}7t+8Zs`lg=|nm%9^)KEm{NB1kj>p5r$oN=FxpP$s{`1(vgw+kH=tZn^n zGMS81tzWQanVGkEM&cZ32eeEUXGhhnPuhuCU}N03vLjQH>ytNZZ^qtPST>aCaXr94$VM3Hw zqMH>$3F6du4O~moMYN~$St8mqdOP?ps5n=@*2k&Ze`IT=>{*i|Ww?hEtA+u@u_rxv zPi2yF_9wYve#{6yEk_uvK?DlERa@N0GM|tG5gm1+h{a>vWVP#RCTOyC>xgmu>>P&r z@ueG%<+tz;*CvWzr|mE}4K{4tI^4M79Gt*T_7+cy%QHruNkm!L+mK%^fgowEa=H40 zbcf4`vFa?0u%7#%(-2z$A~LfYrJp+8MK&_qEQz!qqr83qkyz&jFabMEg*b{u6GZj4 zB~UeegW1?mUo=mnn{`{0(;wC4?0rZ4zQwY>Ht!em`Y0Ur>dtVoRjauuny(F2gkP?9 z&LqwtjhoTZQcJaQ!}=Xhma^x1W`|L?<6gjl#*e(8qKfP9Cpj*M-5V~F_dh5xKIJX5 z4P_Z`WM|3s39cq)rw~%EMAu>{IbDXI06}v*F$)rG7FO#C5&-q#++#lDHRE8u=CLZwh7|f7ZBk|o##I3vJ;*xFS8tiv zwa8ITuUQ_6n%8v^q`K)=`O5?Dxy)QqP2>_ZI|P-5{g$pRyY8CWT*T45Qq~XWpUU4~NeGmbBOBV3aImG4md&zXa&1$t(O*%;JA58Toff z&c6o`+R!v_!3@_$9`1Z{6Z#*{k2rVix0$GYmLsxUMR;~`(C#u^sYR$9<|=MBX2&Ao zNWx!Pdiq~k`d@tzkWz&K$$w5Hm3H7c@R8%7FOBBuv$f}$1-~{o(|T!WrYwah%yk5c z(}i`pIXMx0QgZAn@ZC%xczy4fUsNasv5wonMxEL!&>5*xOdUYu8mJHs>C?1aNSv{i zaq@16s;Kx9`Ug<0GQV)Vj@F@Gx(&2We)VGfoqpp0_4#14I-EW_0#}I2{?OGKW^5?b z9e0f*kJJ^Nq~ca6=#BFonv0_+97CWdY;MPznp!{iY@dkr2*A!~1PMhG|b8W2nQiLK~IfLIQ`s(T%6HP*@2%K}lEEk@G1DWtdg(ddClc;!*1zKv`-v+$($_vJhtb|qi!orZAVqBJl=MX)>6A=Rm?UoFQofz3s2 z26A|44_)rFtoP}+@@+`MCPfU#42e{(M;~-$ptp?5{>yv+=P^`d3L5ef=++QrUTDtCn#qD)!CIXjXE59)9wz zTf@Ed(^$L@a(cv~L7JA&8}m?Ai2;Hf5m|cg1Z80^l6Cm9#q||W)NY(%6o5)QRBp7T zPhIyPX^jxg8_(^vNv#&UnRe3n77>o`3g3JMv-1@Lo5l)@4}OAvIdqR=XH_o%d-+i{ zf`(8qn=H^oFRC2YpDfiP<*Mqy+_UP9$xlozS!g~ULlq=g(| zCk?yVcltyba2;UC9{_Swt|ztuqY6f;4gWS4(I6OTbwnm~+$m#Fv98pvCFj7JZ=6CC z;r1oC^61FUHTWhT(?^B1qUV8j|C3`Tjipzm1+YfHa-mlI3cX3od<%2s+H^vTST zE_9_)*8l+8Cl*X%{dO9Iu2h-g z_NR)y)F>MIKo=;)>Y1=@N|Y;aZ_*H^zqp5=(~vR98TJ_~lzclNwNJqfwA(@?I;RxFKmU(_WFLgfPW9e zv}j+8A778ay(#194YqsxDM3ln*E{Uh0^i2LQFgQ3<&`|cj#(KY!=n!IUpJ3K?PRwe zWh$!&AP&5JHEAcRQ1(OzWcP0VEa&35fnVQ+3!m!i zLg^wfM)~DO%*;gcS$9iEumuQ#*a%%T7cQO$JtMwGeh&HXd6gJ3wt~GriqFEL06oeE zA%v!}Y@A#d{4QGNEoWNwe13=^h#1R-rFF3+TS|rvrn=m^qI;rCbpjnTqXha=TuwxV z#naZo4g8_cc#f0zxOjT?XxHX%w+D7*Q+ib9^8=|@e+PB*5;^J3)uIr|sQdO=>kr8E z?)|i6qU3y_#sEpLwF$^KH@C$t7%%wPmO#j?y;zU71esijObX%?^<_efjm9@{FuDp1 zmgcQX9E$tBiuTo&yaX}{s#wBO$GX0<@(YX**dMfDxZ`~F2+!LUxY2@6@hyjVlr2f3 z(>DC7!YxT~eBn;9lXEGg_j=`i>KMLYA4P+t2VwVz+6|{GUy1vZ9i=g=ZY{>OvbA5S z5YW^NQUvBTkBoJ;j!0PLccKB$vL=0bFa|6Aer#{{mM$?25={@<0zt+RZ}a391s0Ca_io5s2iST9__>E&DBCA66@?l*2gxG|7-9r0kqE@sP@$;bCpf<52ylU9 zjctXhoT`885b5%dl#i`x@{}*vmkT< zlV1XcDPFF+(UvX1mIJJ91t8_S!fqiF$v5`#<037nmTE!l*OJs@MY%MHN(@i_;kRBoqs*-$|5o}?!h)1db&mL?xe-4x}QTvkIC=zjnqCzrHMI7Y7 zo1zPM8RVU>oqQENN+-Yh*xM%YWjb@IYMj1O-*E3sk3Y@n)mR||Bq?+@>qc9Jl}A7L zS_sTzFXxLoK(sP;LdB?Ooq3Zteg@L^;@nPVH#KyzhKWV`H=&KMi$K{)pL=oB2#}q z0iRPa>VVO#enpIAbf&~xr7I<8l!JQNvXWiH3z~jjOzG%q@-TZvRy|A3R9`dCk&K*$ z_Rgdy*Epv~UlQxRE&K-MpD+-$rXQp?Ykq^lc%COJ_=(dI0r)%G{rE!RcdN5G^op9n zRfnC%0{z$M(s2q`4tgutP-k=1-VPfLa|qkp+&t|teLgX9#u4;Ndul}?#+8Ui zR~pQspOaeCxqm8BvM$+;h8*2_Rl2iw`~W7@@?-2%qLXQ^QxZ@hf*v>;iCHFX3y=%Y z8Z4ez4A8oFuP%LT6@RKMIxt#LSHYT*kaS>JuGtKyL-v2Lm6Kc;@hA;ti~0O&YYFSS5=(ACBm`TeEajXVJKx=3kZ^HP+$H z+9yB$)iQ-CAkcE)aRZ001mLXZYzGyV(4IfLSt)TBfxvq&W+p(To0PB#v zy3QMeyVcCavw$8k($<;d^~Q#_;DrEoCa=~6*#+7-QI#6e+>wakM*MPsJ&*o&on`rg zXOU*ZRE7P~aUG@DzT)dYfI9PLc>_KA)`AYU8mwMT8ne4Q`jJZA+VguK27E`7&noS7u(LnP%w%v;-vQ?CdX_ret%esoW$?u{P+o?#{SsU|&_C<8FS=a}(t-?pIsmibvL_Gv) zFct~A`{|@h78_x2FZOyjIl~Rk*jDV+;8Kch(Kd@ICbEd9RDI(#Xfy#}_6PGrryS~3 zUM$$8yXQ=ahhy@eOAF1g^XXI=>KgJQzA>c5;6daM)7+$-)A(Gkb;isO7>OVqjP*F>~@>GFQXO`W>vkvF&nXL`Nlw#Y@3}9lF35UyFHe*h`ec}MiWY{LT>Y@DO z6gC?2n=6=(7To9X!@0--S*kIAj@z5{Dbo~XnT(_; zxr^jvO{26zA;2cJ;X(io2YVe3iZ!wJ;iwZULS&6Sdy|Mx)@B8^&ko+S;E6n7{j}&H zW1l;N2lp1wq{`?xL96uX@k5UuB>EXrX6-zVQ184l|GriQbJ>`G>xTnSZ~<}?zJTqc zoj<93d~?w;l40#|P;^I1MKam(^YD1}0>b@Hfa%9iwW-cne$xFFSr8#u)xFZjVc5Z2)(^lR0k<#j8M zCG~v$u+u}djDfuK@JNDJ8d_}2Ltp1X=XUkRDKn_w_8Kcdue!00yWmytwew^*E#{~0 zUqb^gOHjTw_AhU4vFtqs=si=Jy0>RTD=!F`n?F8f>{ZL85Z!3#b#@t%1D7w*>%ZSPI-~b_ zLddf*77Rf9RVq%dJL-5|C*QDAXI|4|1ZC!AiKUhUXi z3`r#^@>SmW1E_~A>1vT|@gAI%v;mW{bwK{Wcs_t_$<4xr5(J=?YG{|E`vdqQ%3_%# zmjKc?7^V9)VW0Us5;bWHxQgu|^vHEpynR|4U_0(-T(+O?>Y@I^{)o*`oO!Ji$!Rfa zS0V64bfVz6p>@AZ<<8xbKiP|=%9iulGx~J!#c824#^az^8&H6YPp;tJTKcp#;> zfmdOke8BJf=>_#%`h1JRcCn-l5f+22*yEh5HMr$llA;Kq-A0|wpgnJJ$gtnfJWybN3m2T*`*GTxtkzd3njOQaW;K&;tZ8~c?^D48L3?ew^lxj#W> zN(a;2MSJyBl-fES-j>G)mN~YlW#b!uhjT9qVg1DFR2q~_v+Dfzu4LoXEq$4^prtJx z!HaEQuPJsodP^Q(f-@+hA-x|Z9F2s=N$K!t=N@#0wX$?4^34Ax`zul0y#CV49@!`y z-5m_DpT(2SXjDb)K3oPsXzRn%r`E$_om;1ZE<{koYw27EvC zAs1j$&Usjl-UWzzSro`-IOYR-GS!)(;dj;nK}O%LLRmdR$+ zjkk}#kKbFoJg?}7tToO1205^wG;s^YYF{9b+PO)^73GqkwfAIu2fH^hv{)*rd|S>v z?7&tV6O>M>kP;Ptqf^2XKOHQa%g3fZaXIWqEL%Oz+TfQyMHu$BKeLom_>(^XAOa99 zt9^TkKL-yTQh!CozhB&s@Lo2$zAAXfGdv8T790El^l$Av1;G9Qj>tOJEANQ-V(%|9 z;68wS?@pe@Im8d1SKvk)6KJx3=VSjH?*Z0tlo$ZCKlnta$pV?jCuYe04HokHiy;me zkhyqn>U~@e4_hd zibReQ%g?Y?thP*a2wVZB$@hZ~WyYc4FcpI9l z;Q(eUReTz9r^}E+s|DBOEXq{Iv#(ex|){T`|!zt zGcjAm&AuHfdz7(X=}+BL?>(WlM_eGK`t<8zzpsghRgymkCXJOxo1{X!L_bk{9J~~0 z%p%XE2X#z=N$x6bO;L&?EG*c^md#jUsabNy2eXW=V-KAR(3%1RDZl*p5EqAvc$A(h zIr@Zc*Mt>8pyk$>jC<0)U`4m#>0^3!w+I_mzw`qUL-kUT#p}lc#jgvJ=UggqWvrIa z(I{W_NzwYsBSH)K;8t(NzevSpZ3+KCH&VN4@^ZdTr)q0?&?Z{g^aqgMu}{Uj1iVH` zM2)v>J8q8BSLVc-X3rE(c{C7C*Q3q2(`q29ccP>p4f3BmYqAX+u^$kf z8;Eql1yS>(VlmXsUctQ`5WGT+w&0 z8D%OEYye#;OBG?_*!v4f%dr7PbA|?f$;4SNjtILY+a7-^vZG^Hyt@_>B&}p`J5?@m z$~)kkyLI1Cn5wAD@Tn;PWiTdyKGwfC*L1$#zy~~#Y;0|O*Oo2x)Y~7{u8yxQ8y-fl zJ>p&#uQzy~`2KX9r7D2+h>gTt&?u=YDBap{@UKSHKY+DfCbNa3fd0q2KL8#d!<1iC z#3Ayrs?&$7F%zxzc%Z!>rZxoTo6^xFeff@yw*Y%m(HVXLD)i}AO=z=QOr}G*0T+%F zxCpH6MLfbh`!YkIIuNF4PmhL1m(oX+Uf?}tLuQzKpEp{hQdDcrYGvYKZti|TDx1=U zRh#_Ks4*rq?C`=CR}Tj(LsxHNS<36_XN_zv^ScPm=w-`PJyFL(_xKCTh;J~ZjsuXt z-ZS75c0Ualz$huvtKE8li)`SHs{R?a)_@4z_j-!&7^#fUv-r;Yzhj1MT6H7N!3GH# zuA5dHk#2)I>(dJ#T_oHv{1_JQxkz4aOLOt$#A0M~xmONnh&z4#YaBU$)64k`< zvji{Ufiy<0(_Tqn3og1vI(ZZhw*LcwH;}ZP?OGk4_8#YDQJ=}=EVDFO6XpunXJAhJ zIwJiP$?C`|IWP99;Fu;@kglGu#ps2nHx@HoxF!EHYQ7`!M`3&Bj^ZmSg)R!KF>C}N z&F%})ms{nol(JG`Z`rT0nhhYAWChKOi9J=Usy!JYTOnVTNU1&SyEEqpAZ-B}ldal$ z}XV#px=KCXSXRjoGB-zh??)$ng!L$(^)+-G{sVU0# zl^&Px^Nt7n_amWDq|>2H-MD90R!gx*gsbUkgIHF&&X zik2w)UT~}B&R$#?h3~&r@t<;M5B$cKXne79RJ?zX?JX-)L-OSm+t8 zO;g(xJwxC(8QdB_Sg)^1L`v#X9OROtYkApV`&_h$<^96zkWDi=t4tVs8@^4#D-vK3 zo(}$@c_Ze#zcE&Ope#Smx;4SNRZ~;f97MJfy)r1J4wI!Jyla?L6zX_j3h30BJ0F~4 zu7(Vr&g8btjxW8ZLCQM~W|s;_r=%34YJXMa1@>xgEl(6-+qh=iQ*Jvvv!Zx6#{AHi zwKMg_sciK@F$eRBwTRLr$kb;@r2$CmiYp39D*60z!l_UyTM3pu*kBbpPv*NGR7mUf3Y-h^me02L6pcL}s}XslK$0-Fzof^LEX0@I%QSB# z1a+#HP&o<3`{|9*+g?sPCd~RkIo>3&D%4C&W)Jq1r;~OJ?4t{1Z(^cOB1A5wr{C+P z42?vy7W3mlOHq#bFe(OfoN@A0+Ef(scs7XOlCXoxV9cw-Q4h&Y#CuoHADT+9TX$F8 zq53X&3Cr8g(>i>9XINr76FFmNjSA+O(R%V)`!QVINT#RAWk!U|vI4`(rN*;eIglYy zpP%>Eo=7#eVRoiDbKve^dI-m3?T^OmMt6zpsi%l<%}3B6*4kFw#jdQ{>RmzoeDl|# z+L8e4M;#pZ`gUp|GaA7wiQo3#($!T)H$r!cZGR2_1fq;r+_%Z9GgkUBT!v80jW&Xk z6pAl+$}#EDN;0=RH6J#AdN20#zQ=CmUPk7aH_58N9MMzQ@ibbBY$EDYQ`exiwED-4 z#1|mcm*H6IO{2ne->*#7<<3ONr{7>qYgW+tx+y)kWZ#Z9}i)?>`lfT30&ev~>+3^Enw1{0VMf8QH&eYuc8X zDR-`LbCK_tzRO&yw^=*^af?99>4E66t6z3GG1b3r=1(ThwvKxIe{s))-MCrkEioVm z&);0AB(50_pR3ks2<)O;h>$2A4Hpfp>TxL`j5Acd`R2QlOAy`t{3eWqz92%;xbFEY z85J>HgDDWhws>wR#Hn@A=I!$N^j&L?yEu>z z(T0~&ZW&LESEIJ8+MA_~sv`6Bg)(!Qgpex#WLh|qFpBqMVHACd>^qT3wGP4N(v9?@ z8vwhEYKk`hJdQcSx-UmNRwHEe%6e4?l7Wg8&Ga4m_z#d#N7=l#tMlCqnIdaV;+b6O z!P01okw!fG33cWYE!r2}wK!wLxN+dW1a@~(lHLcDW%jyO$bkZRuK1Hhd+Q{FBBEVnz7()UByki?{Bt?yBT5#^k6hh#Ms3n>D4w}#ULkn;-XUtDaO=ic~SJE8TFEXgMSaXDqHbC{*u6OR)E#c?IGKC$23bfl<;-eMPY$Ob? z%xq$#{0V8IqEf>%eOO$Z?=z2$%Y%P8D&S3jiqY{0ONB~^q;>R|5>s%??^eB`V03=b z?#BouN)S*ggAjlPQiGFICd`X{|j0OJM}(R-QAD$8c}rxlX=8U;W2#JfnTrzOGd3WGttA7!LPigSttr;@PCKU%Ts zNQDmI)`xmKkOr?62pda#7K%vMm=YAb_U~@HLT+jA)5;Dh-Om}z45X7jv8SHV4TSpq z0b)+cm9sfE{c*a-H-)@MVI-G2SS< zvNmsVkzBSObM`IA92+AI4L%*IG(9Q@t=ExHIzI?KJ^jmr{IYXvhN@M0d`3#^&ONn% zF<{3-boQ7)Vv0o(h-~9c-}`*3%K&##ebV3i)t0n6e^Fqqu;}g`u!E5ipWG~Ml32Zq z!(zS|CzD}OI^oL2k{tA^A3WO+|8y-*}{gqw3Q5U<57)L1!z7@58E zY*?8#oC*JQ1(qR}UTM+LT%yTdL%{LlXw{Lkj{&vDsEpY3HrJk=#7TtJuQVw$ox9e` z7I4m)ZO9C=QA(d4BF4b?Z1mmoI>BgriW{2x0!u2_6($siD6P3=foR6N#=GSrFJjev z-Y+`Y7;~GO!62##2v0(Y5?2egy4#&v(5Q)V0^&Eqwfx1ke8`vYra$YrZ&L(nO2O(C zX4JCuIE32P*&58nl&&*&_1)`pGX`93o!vK(txGllx~EP*T>g#I4R%g@(SU{Z8OLi5 zF1{Ql7>fL`PM)(l_pqKP4cClU3&N8dQNrf)aB(OC@4(pd6`*L|M1L zW8M8LEuP*hqzA81>V^YWnti31U+m5`U33p`{vf1veKX%7#Kf;y>8qq-JFIoy$Aj3@ zF`5gjQJLF?-{@AtRzxylwL%TewQ)uxinhWz6z`Z??{LmfCORsQ{k{={zdG3!i8N`H zBw$n?w!DP(rXfexo1iH_K~ifYEF#W`*c2t3I2U>OrnNqNe8);v+T9=qhcEtCCY{Ju zg3vaf)^7U6jH_1rs^@D1SiK^btgi;2+F+d?~!{Ps_N zia(^=jg1!>+TL{hI#`UV_OjIP`SHuJxc0oPxtMxzfNm1TGRIVijLOMtu#oFp_V#l~ zw>as>g+6X&^~1hyk*!KR#&(9Yut!fC>`^&@kkd1bKyN^1nb&seou6 zfS$er0qVb1^A5jN^Ok^W{$B!@G?~gRU5Z~v)MJ0UrQ2ZC6x@E05r_|~5b<$WDKn#9J8NAb^xQbDOhUkoU zNvMV_V#-q0VrbRNc)3)0vj;?b3ORgOJ<3fs!`V@`bKwlB`vpV*B@87SrHZ&1sEz{56fJ{%8gn1=;JHrs9tHsJaM~DZE_z|E%25r7v zg$982ryS$r<~&&+ZzV;odM?S5TYS^xM6T}{493PDw}iYqen(KfeI#e-W+_@|#k265 z>CK8^XeMoqy$EaVt(!}N*!75Jnr`IMtLa6CV_{v;%Z*1G;jmYIt)#Z-nr*;7* zLN1>Y%MMc{R?}em&?B+(E1I!^fxjuGXS%2dUdRS8>=IHKD&=($cfF9#Z~_>fPn@u) zNB!I_{xb@n|0rRO=;re7EBGHKK-useRmgE8Q)`=k}_g}B> z|BCy>|K>ADM>au!fYyyCTlWra?w^k7M-+O9`CqCuG;sYKVd|IuVhu!+=rD-^Q-iqs z?v`P(;RvrI_{|W(Lo=J$na77IK$!a{I&E3$Q{Ugz#_A@CmvTA7(xrAe%!Y&Ry{J;z zAJ%~#PDb~mL)=}lbd~Uj@8y9t=G;4M<;;drW625-=4!N$&Qa8Yar{K6_WZ&xUUOt8 zjq+G2$d0YmO>9jyNjMZKft9M+!E`@<5YX6t0Pqb7ho(?#%mF7jUqq=dn58VNWJ!OB z^n@psLu&KKM<+Rz0omuz!J!;j5wWSEvk5;mU$zs>39FS2xTCgMH6OC5YT4&%zbQfH zReeS^R^LuYiDM{#lop>R(zIje!qaIx@^XNy&^&awoHoJ_#mxcU{mEzGkj+aw`! zRa4m*J~i$Fzg3TTET>0W?DrwEAyVeJ=p0YFqup*NX0|1&)MD!K)92tJT z8ym2OS*$Lh?R)?l|Nj{;{CU*y&*%R`M-Frxh24o~NE%*o=n;RXo^Aou(`2tW>_44? zrvJ=DE$2UOu7>`Qzj+gY|G?xcq-p%~bx=^stI13gl>7d(FI!H}UZ&W*48ul9O`K!; z`3fZ&!z`V`2^SZUY&g{o`#Gp2)=qLQYZA}pYTSCKc)(CB%j5|RXe~F1Rt=jVG**VX zx79qudFuL2;cgCWQ z*^E!#Mww!rvZA@8wFcHGq^a-3-*l(2=AgVZCmZLUQT@;&?$C}(&QBREv8wnq_cYA% z9g`u0|9(ipu?>~gciOED1K0NU5!}N|=rjN^`)C7WclbgC>6FJ*LXX^i?d#^c$+M8a z1C!?&EP4mL{dgaA3&bdCe}3CyiFUe^T(x<=oorJ5v7x_zDtQ85Myu7;O0l^qeus63 zRD6tWxSfwM@VZ;ttz15#^X94AyaX#eH)ooIc2s)W&Oe@4=);65b50}@=?jap*3|U`PI^uw&jYO9H+_0Qf;lk&y>nCNGseSE1BRYcMo1F)Z>u>tWz}bOEp}n=n+B4zulPZvV+;FE#{BCQp=WGLF~d{pRufjD zlSo~)?boXdjSWy&hp%(BjzF5HIh@$1vKiJiez*z_s8{&KB30pM;JmcEpZHq%^OJbO zSF||6%Z&gi!ku<_PQw3U3CE60L9ig4TJ{C6@)P-VWl{=x`|9eQ)-^k(;_G5B{JV4E zj4s=jB$4iL8bp@=+`Oa}j90;me65gONRzq0$u>8Th<`ox;EJzPaI^TB0$klPQPWus z3~Q-!QgZlIvIGP3o?lb_sJiP44bLAW#2jx%?@_6oz~%AVs2xun|M)3R7uQyv@6ln! zqetI+@N|@)n~g#AwB?F-`rOQlE}!%CKc>>?9^XqX5K2Hj?>+x+c7A$ib*)9BXufg9 zZB zV8l=>KU1%2W(De2F#h+-ag`6XOfzSU|>VMoHlZao;@m3L?k@N^#kHwKZ>zc+C6*roWb@bZ6g3rCBj4|!P^r!6?eRW#9+XecEO9Gkxa;tLrs9hxNSoG*h zqi+0Uo{X^%RAW~A8W(Gth^%TeuhCcTv08)LC|;{}aOP|gPMK0rE%$aw?J<7fm{xy7 zcd}tCUYbk1`mX7AS1O7c-EA2rK5-IH1j z<&uGwA0||bK0l17+cM{RzfPNFd`#*{1jO(%#wQf*%vHU+`EZ}REAiS_1D0fj(<_*5 z_39}n=QEzDa@Uq=nMu(ey14uP?x;Q&2kQcZYB|y@?vzB1KCB<;l*qCuM4%mpBAxK! zeDes4_vG>I5;Sti#s5TUUs2p)Zu;KDi*QOZ3+>OrvRIkFZacPy|3)o=eSi{ zOws-5Uk=G@kn*KWAXfoWh-^0=EQnHV*em=J#6lKYV%QH(x!d*U&gVVcJ5Gz#Bq@#N zP70`XHK9XxFLf!+3_&jrx#HdvDJc`uOnGyg70o%_r{^2vZKk-`xS28xI?VUdhIQLT zwne((1+j%37#1WFS862CuZNmRTn*cl}2Ag|5DijxuRX zXTf92y#253q-)6wz8{h?HpJgF_!I5*o$JoD#wj6f1-4qJ2o%co7g-;nY$l&;Dc%g4cEx@FT$m@_YqoIS2x3T~)_1XgsA2NvEP^n8S@iE?+nV==&*Y z9+%w&|L$YYn;P0M&_1nCIesS| z)gzLY)9_7YXLVh{l6szQramtAqa2Zm>4%>bQP|>?)8%7t9Uq#-q->f#Z* zS69PfunEBH+1E5u*5m|*3N6n6`AMCygMNY(#q`$0Cr_4pM`#xN9gks=4%QrEMputS z!F8k2U!-b;(SHd7LawK=2JJ39U9IaCMuFNCx`wM+8N1rFOj%i%oh#&hAb5%?eUb7` zLcDjOG#(>6G+IP7n7r%{KyegeCXKzrp-2sM()W7(+gLQg3&-*I3LN4&ERHKt40 z*f=R|+KTDj^V@a0f2J}m{OCT3b9R0gOyxirm+Ot>;JA+qh^_19D>m}e7vQ%p{k{uJNH_^B zJ#^%0A)b9+odS#IR;85neLm}m)#&Ut4{vrkQ`ON~#A}5NvF)yXS-OYjUsqxBrCVZ< zAL99LtZ78kd9L!(#9{fQl5_c-m7(AM(5ZGM5g#=`)Ce^;GSPm$eY3gw)}1Jx-Ph8# z5}#Rs@-XyBfT;IO=QZHfQQDazyME`gGH`DxU!h08%U>%bXP@x05)!p$mMg{}#@l0n z&QZrEzlCU+J*lo-ZFBJvp4qy)FXrSfXbPjzI;*QvlE&Zu%^IwPC~-YznZA%BfH>Gy zO%B1bj>xX7Jvz9EVq#*~NOp>NilH035GqF_yoKJZ8Z1^mayPT~ioj{_Cf&{HC%DgW zTAnAc4k**+dvoZj3O}=4B0F!1HN;qRT?Wv+B7AOslkFjiIIBDRCE7m#ZkSwFb+`OR zMH~F?yGx+7?Rb%Iv;dV1=GO>=thDpibHrU_%gAqQhhqK=bg-o;1#g4MWUR@sHl5iE zl7w^?!C4&So-J;9-2^el3e?y91}|}4Q#y2VAMy+7VzkNFwEYR$bj^ftC^%m-hemQyMRO3u4=~s!QUxDS z$qJO|JPY6w&0Up%lB#tSV0Ob=tW-DVXaumT_jBA7YSy+i`evG(dh*BAY^IONfbBr} z%Aw!MCg4ljVN!N;TWw2=bfc&Ij70)3j?y$OKDC*q9cB%KhAwAJsz!R{Pld)IuC9v< zgaqa;9KU)VFZr#|$MEMg(Nahg_(A>~wBECOU0=v>Z-dMYV~_NjyTdhQ1SM)h-(JQH z@;v^fHWaP#qXa=|PUt;2+r3cGzJR43)1i}XS=H6hyREuwUQFaMP4Hy5IPjahb5t{m z%@X!wz2-ewR@y$|0p7Y|eEGOI4;WX*Wo$m2Mo-mX>Fe3(Pn?A`x?6@cQ!_Ei7`VuA z3J=w{s3JccyRDzEg}ZrDv^Cs+3vqk+hRCZYFMuH|;Cz(QETY5x)^u<7XX*Sk2|*ss z%^JZ9imjzK*I|vzBX_0Ok2>el^Gg<%^mQuh5l&1PIiAw1;ty^R+G{#gTQqef zUt}dt1>$ose=>VWHV~v(n#||Lk7?lcIx%-@0L>KRwXBngJ~|0LYhB zLbtmLN^hPd08T)Wme6S}Afa(Wrd|KY>H7lh2 z3leyePxbZb*ORsHQ(#>vfi;S*o>UpLQaU98avRvA)%?`=Vaw&_572oA-%WGVYGL>I z#wmQw=1SD}i{<_2jJ?bBG#4iu(`P9z!tbT()jZ1ZT)5CwViux7WPQl-B!TqNt}Dp` zv_8J_1#O8l1s@5W`HlHS0!8+Egg@lzTR4j{!jsu>ATsFr=FV`O<~!QVhJh|z0i5p|8QBfbyXculn9R_@>U`ZxZ zc)l83RSmf8|3io2|7hVpy?1|*0MrD3w=`1$I~O|rx<-fp!_rLBX55>NPM(prPzuEV zo&guIO!zlM;Q!3h`#-%$6zf>*F0=uD?>Y1b=zB85U(ZnXl`)|uW6-^EAmu`)OV7z( z6#oy9b{1eylDqW~5!|r*U(T=nuf}wdk^KjLS^p85{_nkxl#|Qt|GP5)yq6=y@m_6P zkWu{8$LgH1K3#861O1 zM*}&0`4z4vgE$x1K&(f*lN_6Tl;hOnWzKu=d=Xf^M)p4RGS4;mQhYLRg7TQ$hrBf3 zJVuIG0Fj|0>X3JVOdHmJpqjyVtF=bDz2vI2^sB41M49*2jd`dB_Blxtn)J4QL@#_N z)ShIng6_(W##K#uY+2p+JhQK7RGA$5xX5=W!d2P<9_?UBh|+;k8?_-P*U{ zjxJ5=9(Qn;)LcenX@j za8ygb_fH(~{gxVsQ9p<7I%Ej{(a69Jt3~jLydg41uyXgUH`FKZ=+V8y*IH7nj9h_W zdb^RG;KKmFpS^PF(!p|A#u2o9XMVzqO2&M}6XipMVl+5RX_LgXhV#JEV4T@Lo_}k= zdCqlxEzd!ZAm}`A?BGCSYWg7AZ+~@ee4(G_8I{K8YSM%EMT4?WZLyK~A7wOOLDAZq zIF`9h+)7Qv4bVPuD3C^55mD?tmCKME5n+5N|9Mr0t7{Iwgf*mU`ra(9Zmxnm!*w~M zHhQmcsu~O5zHa~Ni-db{^*{`5Kc(h_{f@PHcOcWFsUs3z(l8Z;)l&R1QemUVy=8JO zsh>H|S&A{Z?fP4OFS>09(H^&Z$b1;*>vMkQpYp3+)wD8dlfbSP`O9r_i{D z%G*bIjoVu(#Pxy%L`kSBM~c$8N~Ui`AsxPA^#5G0Q=%*UA&owY?8L}>_A|fkZn8i3ru^ij&yKskj(p*^M0}NW)`W!-#aL3aMX$$F0 zrzdv#W;o5==z5M;XK4(Rqcg*o5DpAhurkQL^u8Z=-O--%5~=lFI`ELRo^rW>hZ!B2 zuj+{lFoH5G!^d9X9M>Zk#tO>wN0gfZxd$hABEr8j z&W)S^r~TGU}6|CHNC%4{wmdpfE+s|6}WKvF4n6_BTYC8ThSb`Q%ows9j!T)P$B{O}co z&$`NtO7sUvtL-%?(v|1C(;D>I+@502kUM3w+!`#BrDTZIUKY2zoKi2O@yo%$({yxM z>be8SisEqLilUH2{S^0gX-UaurKDXhk#8{?PJgh;k6~||O^3^HT7YpCgStXB85B^iB=#_v6B(s!*tfhKJx!%(vAf$3{kye9m)j-Jka{E4M% zbvv^=OtzoUMrz%!4@F3>eO*<{b-CkmE<_u=T#;s&{N5NI&%eYU_(Had)6WRi2e^Z$ zzWl0o1(r;aR8%5p3}2nwym0ST7gt$5)k}*@v3qvP(T?Q0|7AMu3fe9>d2l^mn^?wj z$MY#y-<&ss**0ffMnHfOX^8-;(NiXc#)H4D7?(#qOJu|zE@3YA zQF8VyFZe3zw3F3{qTat%b7RhCI=Ndgqz#U?A$9d)!Jq$N*_S-LlJ-6~XM~bLHpb%< zX6Bn5j*rNfT}H0Zm75*sWMS}`7KPFT+OeR1G;{pgb7678Ad;=?KDL9f>{7KUQGyOH zSQ)}xQ*C}}S&z}8L8}SQ___wTb`AAMr3_!GwL{E#L_&b4TW#{7^{3Lu~#Jvk?ieaX4W`_p?M>#A}HQIi<-wdS~8B z=$2!J+YLdUdWa-+jGK*^7V12!ko%&~U2(GNT4tpEL^^~L=YTPjBGFLz3)>!$cqY~> z2$U0d0(mVWqpRa*#f^KV88$F*rq$1MfKmUGz!@ikRXEiql5!962%ojdCR1n6CTHXy zS0ko&GXHwy>o9%sMgr&a`Fek46j~hJl`AVd{1D5$SxXfulAXs{yU*yNoa=mCKK9(U zZ-|mh#58$ygfr<}wqx4iR}(|r%nNq$UE16PPW)P~?T~OEr|Ie3~Ze(0hA9w)16`7h=?F7CnUg>_>ekULPgQLCM5`>kHRo%^_ z{1|28g97xieCso|CN8@|w+JUIJ7A#%!QRp>fZm!K;Glqtbbm4s^~m0eLXRLjpNjP$ zo64qZ5ziK9cllKGdn;A3%b3>y`gi+= z@XRS}w6Gs?pMUT=v~ZDc2(#k(Mwe)L6e)`79EndHvgPq@zNW9NsSUgqILU=4ZOT0x zI>iDs8vJS_!VEDb$C$qd=9HgIUsZW3}N+E;Pry!EZ5b@*%_2$-$)S zATJrs#V4FoC9psJ5e*p{*?ULRlvfewy=U6z0&55(g=YLq%_?7hGM&+OIL`39052DB z`ETtSgj*q2YZTATT@W3mP@{pTuMORp3P{d}gSu~^va1+O;7@Bz~I^<)hj%%3H1X-)Qh0?!o3w$`_ zXtXp9tKHG@_sg;1!`CGCkNe~#5@S;v?e6Fd|NJ$vk4P<2&@eN%e)KG*7*e&cymE;9d#tZNA)A1r>RI9+>mEx4HQZD zK{@7gE{Py$6_{4Yo7UUeCtXe~D3^@IYkA8y9?mg$)n;1jL-i=_h^WR*+1&}#Cg^sj2i`mKN-zC|1%R#}s#)T8X06Rug8^hyiq z6Fp$&l_J16-#}K^w{s|rw=zE&<)la5qZU?1+wis(7H)^x=X=Zdx{cQ8Hsc*q0k40_mrM-}PPqL3JMwvH!6!6XnmZ5Bjm)J|K#;*Tym>qwlz7#0vn(BG zmi&%j0QIB@S`Ngw2c|ZnGxm_{d^FtryqR;%7b+~1JF}EXH-@&9lEqtTZwil;5nWxO ziFmQ$ynmf|xFG+N)%6h4kxa6@1Q89(t36nk#!UHY;V-vFi5xyN@EY`#G#t(FYPwAa z5=uUBt15?&`CeU;ths(6pTyfGDCeEe*NrMtRWRMX)AXsC zrYN~r^I8+k9y}M83PiPJnr|B>h!d z6f>~Wrt@3rOk77AD*Jjw|8n0%fBC2Nq9kuybSFgwGr3M-x0p_coODezJS4Z{(e7eBnIw%05O@a~>EC4W25r zlDmGDg-_w%JElo*E-O|w!Ywh9*^TOxR*~X1x+i~RwA2#`=pK8CJ$IclKVxA9E3zp} z+I(zIHf@4)G6w2XkzlN*c`sDix0v_nrheRWRajXHSZVZBV#oqdPP~`0Wo0Q{lMY3> zZDl0Pj<6Z*ysH;jPv;mlpCgaSld&RC$(@;#`CJys(%c|Ttw~w;9yCYjElVa#l+VVt z=kB>2#54lvWzSE9FAzNs)RTuzT=)T5w41+_U=y`SC(jF+4nBsSN^4qA3t&~GF_GbGSOKYuyzt{K1U@ONr;mrx~4=*;yE)kFB3)*E!A!r5d z&<8wAO!w>B$u(s9Mm-lC@vIyhQBN*r=E@Ub`J5nU@n4$t-86=6DPvX;eNJVJZIsOmZ7nc&pY626A7a4K!MZh(g&Eu*&tA>bvLQO}q8^2z0!8s!yEWIuL5GPew5y?c zv(%*=0+_QWtGSvW-dieH4Y2#ma2bWl^O5yC_@O0O9BJB}Gg&by*W&w5{TRnF$MIi~ zc~Txj)UCoU`aww3rw3)cSj_*759iTX%@hu}Hpi`2vI?EhEP#}X6mJ^{a27j-*g}-| z8cfr*uC}@e-sh!X%z5U)cq(&yFEy5_vvqjd3~@DIfZDt{Hd7-GV|?^Sdgg{6f?u`z zcXA)?5FD{o#Iv!mvfky%e4^J4t4FnZ#BWR^a5f~?kxZY0tFkl4n_^C?`Z!ybMU_1o zje!)zZy+ih$9OXjTSSzE=qH50xsT`pu~Qm;}Px(2!y& zz)C~xaq(iv>cTM@vp9o+i+Y3!sm2;Dm`^yfM>MZNKfOhNomn7b zBU+?DOsU~oAdrYSavoszU=wara!{rmdt_o3_Xo)NYAH3MVTOnd8{KTXwJiSboY*pn z4}M4RV2VT#%CjYRcKI-<_o3F+al7nchzcG?3j=$PP$bm{qUK}Q8{~(_-a-lX1VeSC z!ivq~8{#_QJ0c55Li2SsF$0Fgk8#7+{fP`~&~ImkoZ(;aW8BPLEZuTvl&zdUlu^Ym z645h)RClFGkkp@^&51AywPKsOBs&2)huP-UGdg&@7vpo;Qjb;q7;-+@@)MG(MmGTK z6q?>*RF(ihct7UI4Of(jT+^+@+LN7QKHij6ne)Qu{5l82hoeP*NH+CKAZdr7#n2YC z4J#^)JhyPJTpqTu&U@azs*S2_N2zgQD)F37i+zq0*Y}C9bCiB1pMTBk;Z)Nx$3E;- ziK=BwqFYvWnYgGEM+z4*w0Af3anubhNe2C^A3j=*`oBo+e?}TWiT`lvG0Eowh4k3e z<+!_0di~CyXxs=-z5$`E{nU5$+y7ASA9F$Yno(@kJTx9U!*=16=&5EkwC=N zwMJ$D!O>zQV>ajevT(x>H(Ng7xCZR6el6D=npL5X`O%cw3&oGuY--1qusj)}R$yQ+ zBSTnsTMIB%+A1q%lc72E{bXT#co}geZxSt6-a+t|9h_DCdFHWWkg*4=_|iVQSK>=e z2;fZybt8GR2>l5N>eoLUW7n2|T_bdBM-Nmtcd=Nn0MfwU)d+x%b1WFHX;8YmDk?OvR&s+}vr|AhpHo0T;#xf6y zF&&mS!({Bd<*4yv9W;;Qmp1u3UT&^AFV+buAzHsSVlDv#K8{SN0n`xsX$LxUy?8-U zC9`fSRK2lg?J%O$gjhW~408GjPwGhh6Qf{A?nBSLA2@7^rox>BU( z0S-u%FNtGSq$qz+inz}I(!{C#No?RdUkidLO;Q$Q9{|2vwg6cz{{Q`idgpuu8$42K z@uCL)v(Jv^IV>fBS^1H0FcZX(hRy2b&hnE#Kz|)k;r(?))jRR$p6CDO`TxKf6?b0b zD2k%=J)@*bGe|AtdqIuOHHJQPn!hz=0#1e{^^aEXx6jUBTfM=DSFRQSDmb~Gj74$_ z9zuk{GDNQuZs~uyiJ1>nd`j(hktPa=3$f4t* zs(8KKXkfB(!cY|O!ePaP<6ama}$a`1;^87d5Q*WKGo|7;pNSY zjD=V5{$*bv3T>l2sdKl5uo+?P;ZnRCX%XS#V(E_8++UjstCy>w3}8g-vpb;<==a4& z^p=~|$b?Vf#%@YUJ#|P;bI|2g8=_|vzDcMUaxit`lv!WsBB4%DEt7rpC6W*&T$a?tuqycA8mdWJ zYt{1WH?Ix;(V?DejYf$M+j=ec7S!X^? zL9OAIu2I*YL)uw5be{kXR>UzMw_wZ1YX7>}^Wvf9M6IE9a4D+}OR_VaZhRF0t`9z+ zW9f{OxF=eFKA=09BQi2_;ayqmi?HPFvez{v6cLQTgut>h!Ar3G{M{Ba6M`=u(hRyr zXKFN&GLom{5}FexMnCwt75h$Ms{D?}vnZq#Mg62k;QST-bJ^lgw!u%@ z1x|H2KEsKm@8|7C$TY(|Akgm}FLfj>HqI38Wv`2RE-Pr?ef6h!%}E;G%r2#-@z4zI zi_Kbyg_dP(x~Oa7WL~vgzMraL5!_tDFioG@Ue3fy-2B!amU`d);*hA1aR8C5jOUu5 zSus&dfY4|&Z{TJh@qpt9DeyZB#q&Nzwvrl_Z;?YmA)?WMCp})&J!B}uR6J&Fb}7)Q zC;o^y*JjN`texb%cynw$Gv0DS${sdT@L|5KZ%>CDclw;9Fu!(UE&SGMZ%(RUXQ~{p z(JxSli%IAJ=~5;3zg~uv&dm9}lqa@nrlo)_qj@Df!sD8ecl-qrIC*Q;P zq*88<{>}w&vS;bSd!?w9q?}}JoDa^jeW!ThnUNB&oQ2*jzx;%-s=aN+nU%|zF)ola zw6Wxl?Be2TCrxxQ_ei}Pc4%T9n@G<_Kmji#!`h37n%4C%Ja}6z)K_sfkNk2bnnXT1 z6~3F3+$~ah-(y9NsLUG-mSryCAYVIyTU+K&-bs+hSrlcLD=qDQ&WOev#qp#wL5RN2Xf)P#X9EmnraxWg2?L>3h!BS5LT^B`Q^Je5^J zY*PG`OMfI^#*^7DkbITwHuBTJ35@}XH3A{fiw)!l?fQ*xL8R`skyK8^C?U$6 zu%xGz;_sVkCGh||DstV1O4a_3$MqGZZFx&~ZxCk(Uei*|u+&`w-X#y}*QGOqZx!h$ zLxupaR`#d81T-Y|L@B@@SbmK?a&rw$7LsQo5kJODZ#oGRF)_>bf7~<$dVQ+)rC>|Q z_kb4XPO|j#BsZd(PH5Nn-^4? zK)i4LlZ~jJ?w0KTMv?h1`sM$_Ye)(It_R@cAE19X^xRue@V}W~^iS>)iX!)#A~(oC z+bj0;omVW9(i%{@K&~;C{N}pylSE6z)=Q{d2 z>19T&C?8Van#hoT*~`^I4GmHJ#z}gPHl0&Nf|tFw>M~^OMlWN$(KiJyH^Yl>mL+mM zv4bJlS_7+2(~vhcL)ALSJH_@ z`t-%hrPrUZ$Arh&@u+OY8@0aXSN@vK z5FoOJxLlLb<##O7Ps`LJ4C`9hm9z5#2ghH3LUv31=zRYNXbCRDPx@tkQkWp$LQ_>) zc-rDb()2OLF8aLr;Mlo-Zum3!JEwBd#%a2V2THRFeM`4y_%Z3|AD~YMfu8BO@KhN- z%uSCy{{arQR?t&*=N6u+6xk_O%BhFh0+}p`{?eSAEycb<-SI}3pZJ#q5@TlNg!H7| zoWbf!ZuGQso$Y&I0f`Usg4;Tmk8Z}^{t>%m z4I#0mrScGu^8EsIg*k5bR zDT_yQ_p+TSQuW~ptYlo;XRib9gL@9($Cdfk`uy98MRV3Gr||}cwi^2)Fd_10e`;E%;OlRP`eyPk%)({1(FZXj$c$9h zYI86+(hy&n$MCFuj z9T9uYJq_DV?MX$_9|P{gAs6m~R}q#H~#e{MZzT4u*qT;IdM&P0%u2!G!7) z-cz#p0d+FDwYGJi=be8mMnT0=N9hs*+M$KR{ek`pmr<&(pk>74R4pa-<=$0FC5;V& zPvJ3`~75QebF#&S2PFWO9HQBvcXsxx$ zQ_@o-A~AW|&ERir4(58M;|YBgU~hqVHd;5ThO(+ zwuNzm?M&bXks}>@?jw!!9K;!J$RL`;;7}TvaoBYYe5teefUK`@$L8GTTiX<(7aRkC zMK@2j6-&(a5H}=zkb#ZwnXA%xMwMA+aM)JN>H(=vd zu@f-M7`)zrYkQr1@8ucFOJ{fRAJMJ<3q=iTsR3%h$d zEZ6L~`qi=9fi%e>Mwq*J8zgSD&Y1Sa1nyd;2wlr!?DNQ>$lwq)r=VChC69Zt$GA>s zVmZb3UY_9IH=&mj+9kI&q34eGlUHz&Ipfuy3kY35YasDHtms8^ZqDr8EBy7^SY$^EBmXm zlBT!D%(!8nccn`u>>$sTS555BrIH69{sLGjKeWHB^RGuJ7|PT>C6>1;oPlb1GlnMc zN$sndPEwGZUIEtY_>8fX3ZnQEjb^}fb@sgkrC>aiIW;+Ll3Wxy=NA+>;@k$DJtQ<| zR#C0OMA><}&FAIq#n_3Z$*}|p!Za~I{PqSdOymJp8G_}?qCNV_Q5&OZ-P{Kt?>8;| z`OCm1gAbPOKpCd2x45J)t3Qh_n7KeL{Subobxqam||eDnBp^eWmxm)5kc;@-c!Ae>9_VG=9n;S4hf^5 zfelmbc4M0QvyYW8?1-DAZv=JV%9}8cs>4BrYq;R4A9d zgb=K)qg%ny~RyVZ{(wbq=;2&82eyxm+MG;Ls@h?77V2v&3Zq=Wv_EKIN#{qwks3sRi!JmE;yu_$z|{t-}NL6P=CvF z>|hx=flHpgAZ*y#l6U0xI{4?FxRHIf;>AL)^zsm=JQ z+Uo7355EaBnYlb*1w)tSM=e-X?L6!?M?0WzQ5}uZ4hw@dv+U+>~ zW|Kt~+2xD3ygnqZ)ekar@$|sZmtz^Sgum@3w1fk}sA&9xCB zNp<5d8VrAa)mDxMtUAStnnf}l7dm8bBce`%m&flX{L%<$Pf?)dZP{~f<)*Xuv)-w* zPh`ZY?SBwCDcJb58gr5!bk?1OVEt3W0%(yfv3|_eWwzba_LMdktvZ+>N9OPg)w;?b zKX(&sDb~?f)-kIqs7z6^O_LpKWQg6ISZL1S`U3%@C-2eNh|h{Y*z3#GuNe-%-ja{s zZlApyX?b>@SVVd4qv#m@z)YwH8(Tb9lKcW~J5(z>!+!y2Q)=L(mHU$?$gZ0o-6>c`P z`yJzFd}6@WbYnbKC)R!atSpDabVL)XDhV+TWe+P@t`Ae-)sZCk;M-EgRV7bo$P7F9 zWLbg3Z{H2sG{*$K3J)X! zl8@wf;J5OwxbI^!>o@%x`$NuSH)C`~Gls5lJFH5#eBZqK>i|{kB=X}OyASR!A+LU4 z5hSO1Jy%|~gzM{+Ys7x;{Wss?sj$LCovf^(?43d3eLT{b8Pj#osNkw)w zd%SQs;sRnBvMzvhlw6>?gsjKYWg(S=p(AQ+gXAtfVf;*<-%$}TlYZr2(J|ZKqHg4L zrgy2w)=Kuw5ZT2}3N`2LFD_wwCowF66m}!`YseXLuFChDlT3X!*v_@YCy>)hb=YX#) z;AGehF6t#sCj2@A91Z1=|L$J=VFxn+6Z^-#vOw9#FR}z0B>%5n8nFp*|C?XBtwCCw z|1aPURq)?D5jyp|?_NIomZ+=C{}Y7HBd7z^{Rf*a!GFW|KIH5EccgCM`-gPIImD;_ zpPs3q&1L-$5c8(bf07za|F5iQ|FhTp-@3LHX`_X~JeZoy#Ao5*-<-h)gghO^zl7C#wfx1&195O3= zUXba6hFFD>7!s`B&q^;1SR7~qxb|H}-Q2ovJG$TnrNy2hhsqHRGnYh@H_E)ZvhOY; zGjq@_Bs`dCV%o_0vhSW{WjWf7(>m5%a;I9Ae%T7>c({AjXY;rHU_6@KA_1D1N1zM6 z2MCXUBI6X3E$CeH?!Z}Cl=sbFSWtA^o^Kwa|A3tNl``)!&+Wj#KSB%%Qq*6P|Fyn; zV$sH(D4yO~OgI569$Hhck4K|>OWTC*ANRyLLng=4ZVJlGWt3FM0JV_3Wv z+n( zYsk|DCu#a@11f;LZ^Z1ee^nr-g6VWXeyeF@>gGh1%%50RQNo6@m~9CF`es{YZaEAZ zXEdb1qCEUe2UH0pb_+Zp?{XGkq((DVreh9f^z!c`e=X_qZ_0sEY*gsY9_@xlLMZ z5gd|$!LMhoOSxcYsFFbQeuy_j8~F?tyjhM(f) znd9?5e_;EaGNRlkVhS~%VS9V=xNx9#POo6O#1qH9;?U#ZX}R2pme^=kR3YEnj@39@ z*{bS9Jy%=2i=^1Vv%}1|7r}m>!Dueir#d_ps0Z&4ew5~)%|(fyT<%wIt7=b!9GmNz z*}0&*B67BWhrf8O>pVx-hC2)UCmAlid%5uZ@(K75+w4#5>9DN#E4xQTOyl>uu=_#{$h;&f<`FDwrlJc z%3r^S>Asp4ivGYUA29A@PeO>v{bh^bI_?*b0uQ6CaS>$5WQ4QTZ27LYL`SXNd~~A^ zVnMuH!HmYR?ng65Wr4h6~FtqVn^$3a3OgqV-PD)s9^e&sa%71 zcyJjeMQp_O87nu9PXRv~8Ual9$*p7S4xgP6mc5-I>Z{Zv!ja-eSYKGWH|xRkU3a~) zNnvR?fdJ5hpHPNYF}0_XVmL|L)KZ_KRizZAFapEn??MgbdcmyIqC& z#~vk5r*@kWd6kI0T#%R^b$-no}zG3t;Fd&Eu}K%5;N<Nti`&2*rX-c3uq zAxtjp409AyIZr^=wBc=O_pCe74b1B}2_>luQnjcAA?s%`e>2px8eJ0|cY>{dL44{T z?wVS6moNlBUkBs%7s-P;a$LN=mCUt5lGn93B-}`x3rP*Ig3761dj>1ciV4h$_@(;# zRolYw??&J1EeyKwsaBigR+B9LwvaX{zj1by?cVV`z|%;V|s27|*4`D1jJ!w%9<<7H+f@wUK{b5B--8G9)5^j|=&>s}>$ zS=~9`Ln`%PB$^d(UmyQl`-TDTuPlWwW(3PI2xlB(n|pW+dGf=2#$IwLwDnQSV@teC z3rPcZlPSR1-H1~z1||Y;Y9w4)69Dw9c+xNIA60)E-DR613_)=m*igwN5AwsXXDL zUzKURUZY*{q^`?3RiK0e78Vy-+^uBjis#Y2AA-(`|FiPHkOH(6rZZ(VWZgqomia4Ak@u+^bJd%-h*(5Oft~z0fXq`38PTiSzH}dFyr7L6|L`^`F-(Y$b5~` z>k2Nwowq9J^!(sKzGubSVxcI17dkCh?0hbBoq^Y3K{sUJx?G-s>$$lmPCR_6@8|ER zC+gE7cn>@gdBX063$&Fk=~_2b8K-;FA;ijh8oG{$2X#EvcY)EH-jPjqh+3O? z&eTpz4f2vSeAj~T`>CwqxCzy}YcD%zh3v=}B$SkfCpNcJt<_&Dp^`2p`_fL-ujzv2c0)rE?xNKZ~fhx0QA=@!U z`nE(Nkr79hdTR004jOWHulhfoQ5d~!tV&diaJwKF1`B^5s>TBjY0^d$!&|hPK4q8( zdClHBt+mN_A5;hwOavDhmiIVSi20;OW=bwS0eLFo`g0&|Q3KOg`p|)f$TV=h=BK zbQe}s@xH&y>nSDFHAeXDq%iD$9#3@d&!=~LyUg3@2c z#_6PQYW6i$@e+m!Qk?VBO^2dO0uB=EzIi!I8B$+OUHLod8{a>-c&!ZVpZLiB(iOw- zF0+|E5o33HHS8L05u@WG5(H8EnII2v(bJdg!N%P8!b&N9W2XwOpY{W~HMc~Nbdbi8 zhcENIP*Wr=Gse7?*PCEGt&zKSVu;P8jLmhToT_g6po59?wZFl(78TDyo0_W=4GmlS zlsbx245`r5LHLk})mOp}4R=3ms07ArjK>x)mal_3)D&{Y(>nfpX=yl24Zx3%(Tpz@`@Fb~2Z z{l!5L;W%D%qap>x7Q5D?S1Gj?%@Td|>X znIbyFRpRv|xXv01w41R1lA_+!(vU!^mzrRs|4Ah2g~C!SrWNT%K8D9L;*KhKgLzoE zcPDv^CX3h#0ly;OA@TMk^b>v8*U{4CW5J|&ovQZYiazjmT6?M3=d*o^zGMomNvRW< zX?Q;|7kfsQp$%XZm;Z@{Q;QtWWhkE-TX+47fMDh{5xMm9RpS8~ZR|jBo6ZJoZ zN|OKXr3d_L&H3Mbw74yOmW?rcZbhI-f8MCIAoA#j#}RlpLdON?_wO}6XS1We+7WyX zunk#x^h1b)o;sc=3;3*=Sk ztuwLLi62U+hvix^j3BV(0h7;C@87BKqO$JA&Fwsk`{+DBHJm56Tk~Ib9J(NKDBD^8 z0{j;4lvJ_Le(|~{6DdOctS0KzWxde)L;giQI~wEp=#|(Ac+FIXm8~V8_ba5Rr>*Nf z);i<~MgJoBLT4!`s$0}`CEV))9l4F`rlL3#_<6cNxMRd#9I5-IEt$yMgB}!b=C=Gb zv~N{Tx?eaCaRaV=`)d;Mp#P(MgS=40}@RDH6vD4@95KM3NK5=T=ejh)SrUMDq2XlU-D4C*_D> z4w1ll#kRuMt9+f2a4to3G(b%Pm+-1-TV>ECrn)sv)f_vR>X}WMX;^f}g*rWcdzmoZG@4{n&KGBB&jc*I8s_EbS!3yX>1L)FUSr^j>&p zWCN*)GJ+0kXI*A6e_>xl`x^%+QBm3UR@H5@mFOq~`2~q0(;yRa(VhJ0sDo!|XT2Z8 ztn0$)d+(5-vE_9n0(?cJjx@8Kk(il)mptgl# zGhC6}7xX^Z@tsDk&NlMn_bbn6cS(g;PhNikom^lsum`x*aDERCnPyDUj#6pRJ5DBn z`F_g~_+TDFB8=wktT2x8nXiN70NxQTCJuTNl3D(JVjtJ|H_Re(6fE+g7dz?V#SFx- zbL{;Q>ES}Rmy#{xBiuhf9ooLKEqT8cHuxrbk9HuEgY_T3|MZZE{n?M+?00nk9z zg}mR1CG$ey&L#9NDIK}g!jr<0xzy0#ko|5c7@>jlzom{)dFbJ`d1me~)KssZy0pVY zw@6k>QOM;{W-VenntI8GB_;ZB7VH0v$F2gV=;yD`=gXq>o;$)_SI{2}mO|Hf@Hr70 z_#KKi1lO{1mvtY`M?RxZYgP(Po&Z@yftTkF2j-7rj=5Lp3WST9zFyk!Pn5Qmrgze$ zQ(Gqv@`S+YxsK0A(mj`T+yOg?L^FRw|KZ~)Xb4CBKk^cIzn|@d^T&`ICg^TWuhoUH z!)M9uUhqTbZC(x4j#jtUpf2UQ`g$&_Ow8DE*_BuBd62m+I_=?v30C2?rhP1HZD>p|k0 z>Ix1FHlOKr9}5$0LnCE3X$Si}0cP%7wZ*rX9~*0?f7S>R`GaE>@{H@0>2b@l4?Z~( zpKrLM^lhn0n?eTBa#|;LB*;rn*=a0>`nwCXQ9v z;v4mV-O(j__7jo8YA>xAX5NerM zH;~p2rH;v!(+{U%;Z`tz=-bxn*rDUDwJ+8i86#!ocpqb0Y|pi&(EE|8RP{IN77(qA z0wJYyqXMly+SSrR4XJ#mL;~MSp{4KUJh1?&5hMnIS-!-olWcW&l@_&Mdl@!Z$2#Xu zEMm+w2RB|t3iW@wDr@ma-6Oh&Imx++-$)YyLuVY)R!b5-f7n*#*1}VnF%cGXw)Wne zOR8_lFoCrq+{>`820wM(bUXh)pTixt;7|*WqS!+ zt={R4V|PkGF_xBdo#Ew3BaR$%($~boVlxZaSbOfcdh#IqPWz?JD4&X*5ucOzC_KZl z?csXhwgZIET7qiIl_1k~z(SgvymdH&u`BvWcDdj7b;jE@ITgStw$>lFj;kks!#LX0 zmFQL(r!{sNjW~m8FjHK&%RVtRxGHkx5GL({8vs!-k6t&(Q0QQJT>Rz@V(Jy?{R@b` z#KbIT(wHpg;5$g&A`YDi>COqZV~&)kBVPz^IKgV%a5qM^=GjY5^VZF-(T6LV;jv9J z<0!Nk@pRSZnw`jnSnRY}_e)q;%Iwq8F1^)@q^arbtdi@^2DixHf+h!}7J4`|1QKy(`E%#`v%1E9CVut4atK0s4ePh` zr>qFH$TM7o7b_fdCNM{Koe-xry``gC%74NBwjOvKKWfkU)%A;=o5S^#66I+4lqIjB z65XJK;2LHv(O*Dv+=Z2gxF<>S|H55uK?lKVg#85s$ktsn>~^eX`~^fkI(hs&nA8PY z4|>1mf)BGDLAG!ln5=Q%9}0J~BsdE(H3GKx{{rv}ro{NtGSZY=mSou%J?hmLM_K#W zH_bhw`yCb%S#K5*Txn1@Kit-ceA11zsR9fVo8QvKT^Mm22-Reh0c?cPKU@k^Xgd_H zV!zo}Yt?brB*|DLC1M?1$HQ3hDS4o9&~|XImpVlGxL|xx?Erh|VE4x-H#)ogCK+yT zQkBHvx+DOS-B$eFL#4fI{(hord9=wriPoo{iO$+`=}~HW%D`8oUn*$LZ-z2jQ>h5z zz3r{;%!4d%d$fq@?2P(iaA9K6lUKSC7|0)C=2%NVx-&o~o6H|G{cWD*GmhEMxyDW; z{5Z_r^-IGj$;&|JhQLP{V(zHAdo?#E6t~r{ay!l^-fmoZ=O>NMU*tC|0PXa$Hvd-0O7 z>)#Kp*8B9PTc@6AR#SJZzWzGyFL|>v-eaSG3++jF_g}XkfYNTjQf@aLBr}7%6R@<=hk2#Fk`!w;sIW@2b zNf==ZSH7>FKotC7v6C&&qoz_&TLL{8V8eX^ne+5!v36v`zo{r{6}4GKBg7_N)~fo7 zjn-p`4SeTqqG5Fg2pvsDdbt=EK1x0U_7L^yk9g&UG2zqcsxxIr_8g$R?4uDdFJUWp zPuvdJ+@Scvj3T5@@kkdAi{k{jEva0{D2ao+>(kiu6YF%sO9&K&;(xhmUr>bi5q#@l zzWaW4z!!(jUl_^n>wdn+!BP2{Cc^A%U)B3mT8QQ1W_D`h*vzVFqT#7!NX5P}c>0JT zd9&x6FtFH6&rHrz%T@c;K~n_F@8Cs>S4xN}$rbD1eo68|&UYtf79E<3*F9n=@jTY! z_dsRccrM}Ja(;Ai?~>Uj=eb=jrne5^A7-^fU!67r##p>*Juk1b03EBp9f>06g69== zWh4mtd%Am72Gz0aXo-Xzm7R!+Y4GGPPV}7MqsG7)9HWP{zC<3WSoBCr}?xFL3%ZR_MbH zf%ob^aghzh|HJd2m}i&8Au^PRxP$fNZyJAIPW*?$83eicKV$v=cYgNb)GA{9QS09W z+n9Y+5aJ08j`H*D+lTaq2g}HRL^vW;q^kcaqc=oEIR2+a^#3Ojj>goF;8PB$_r?m& zfry<%Ax#s83;JgrbXxi7K2$*zIo-2iyrvy@;=@-Ls^K`k*?sPb$4l2oVg-w4R`HB3 zCoM-3bMq@=5Yi>vMjyILCC~Z!!`bo2aT&H04qDfyGd>=+B2sMXp=_gvGo-c5l<>R< z_k=%t%_YZd2h_*M7=t|l9&CPp0ZfVCJo|$TJ6*o`i-+bT0gZnz(1+Xy!|0}Q2k3&Z zyj+a@j8oP7yDl&7+-CgKE*{3K3XM*Zy(BvkqgLpo#-t9Uh0G4&-}NZ{HtA4ItS zp{(6F^%6v&ZWM9W`L7H*BfSkoj&bW5BD{+nb@ofvN_RDX)SMFAd!;<@eNH)DFti*a_k@eINn8 z@`m(^z!5?fLp$ZkEOto6+cUyx7+yN$F|N91kxyzwu1__Mh5)|~vDg`+wrqT#xO`H9 zxZcrc^*!qS!26V<9L4;dvh5e!ZNCOH?Oyl^9c5-W(5rA4QGpWS1hm}ZFI z!XqR_79QH5b~S?)(_eiaHSpZ&{zIMhlL$~Wa7_1h zL8^T=GzkQuGa}uBl0s9>cx79BOf_;a1IpZw$55sE`JPz&^r=cqV|exS<3r<^|7XkY)bfeOF;Lj&Lv)PA01EpQqd-q~jLzO!>0^~g8 z6NsJM2C=x$FSIxMF$lvVD`aE+tIM~VLO#tsm^+-B8mSR=@`*cpf@N1-*n_`w}9}6NhdVvvuL1DDKKXDtQp;e<_t>Y@UDZY%6 z@Yvj+@ZSl$i3je*;G)#1ejE)AgPtrsQ5Z6qLahguib-zp+83GtY+@d%8el2VrAXuhn>x112RoSxy+mw6C61^XJh_ZK!AAA`L zN=P3naY^o)zCA8F{)`S*M)XxwxMr%Xvl_Bi&FWwYlfk_2uQbZ_Gj)V>@5 z^kFc)m`g9HaGTa4HQOLRXp=QlCX=jMf{y6B{sq|I9n*jPCX*vYrw!jyuoN=*#v9qR z_7^~qK0J7NWC_Ql)DW$;q^r-YFpckd3r>C??kO{1VSpR!Iiw%6>w2k!yG~6Zkg`!~ zj3t*w59Y%eqn~yI*N7D;QVPgWe}6W6lgT4-N_8a;>&bovAN3%Bf9*Wd*Gd7!bfa)f z3@Xr~(_$~v(Mlt);wV7p{_#f4jCDnB(w!YAXE9B?0*|hzfQH>R6u*S&W95?HEeSR% z#}o0`tBqdZ_NgLia}w;H+rqr8TUcFeh-vA5rMFu0{P^_p5tE_bHD^# zL!BF+2Y7gL(X}$(j0a}i;{wwVoznR>xVB_biWC}$pA~*V@;v+^!z1;^Yl1wPe)6H2 zX+&=D{RM=3eSqW6fLjlA$_)%Ua1?Au^>wuEdFDWDduH|R zg2@+Rj3)X+F8HRrv|1^a{U#;-wh1fD8zz5ch3uu2fT%rp2|8icr@ zn*Ie$M14MbP(!)hN0^r21^NKb{Qn~oDscJUEVyi?Wnn9A{k`gSZ;kn}WS0)>CBnHY zX&m)YG(Z+H@>XQBPlv3l2Vj%IcRbmlgzb4Ce;Mcr(nkNlI98pBRHlidcD+Oq5Coz8N2PB#5 zV{vgU@i*Rf*=|pHiuK=s_4=PI_%qvWo4dt((7hBd-OK(DQ&O9OWMA}!dlr%M{{&T6 zPyE>6Ybvgs*GA0Uzx5S3_?6ye7H3&c>}fskawkxyH1;;;I_eFc-GkD>Kz{OtN|^1( z&+2|K63|cAMT*cXz$>CXfBjwZUBlMX%(j&%pl%lE`dlyF#(tg$k;=yt;gZ!tIYqK5 z2sKeUU6(s8$j)sqMmdmng%M*H>-iRtSIMxHeY=aqP}8)b4=_VREj)uoLP2kzpZF@P zO<_s6I%+ZDW4d8mQ(IU0#h%^9!P+yHA$+|PmrEb}23HeE-}IC^ zR+)!k5t4qIe<*J$9FC6X01+EsG;9lYT+RC>BhU$^sb}&iNo>PCv(L*+r+}D z0&8c6t@8E+A6bbEwsjp~*ttmtKHUj?e8HeDV$v4tr7!$nS6S;*CiNyo8OXj;WEnU+8jQ6O{9;PY zjk`m)HRjZ@)`7dPRAIEY%#{7nus%8Eo3ee(tIDi%Ia<*1!Vew*323S1IJnnEu(_`k zL|dnHP2h4hOKGH7*~n1godgfJowU(0Uy48wrrg z5ns<#ZadUa!{nYv%%98m=!amX_xBqQFJ+-i7-b!w{}C zW>cLv+?l~Ry7u57@0MWhg!JhRR}RnFl@+-Q_s{i@Zw#^5{IYYct8J29WZyvhGVa|= zXzFo&TM1}BI{N8JvtLlozm^_Hme~2-oK7l8n?QDN#OCIGnf8ESX+_;E%Q!9yBPZM)%l zQW2jS==U#F;7L{~TJX2Z=5mbCX|fEIk&@fn7E(Nx262z*ETdXwDU`V>zMZUCk0gKa zu4Y)QrMDju7&&*)=!~p3xl;oyM8nvv&RBs|rjd49oX8Wbn4XPR@XYJ~Po;~U>>Vw~w(Z~}VZQZ3;clZQi@o+h_ z0vGOA9#`&gW|BI}QxFO<s>%ZO=e&FZA}&%48s*>m6!T0M2AuB(X?BDen~cM6oL6qMyRVyV z?L;#0fVSjEm&!Va_7*WYYKA=%!PQaB$O#yd%-iV&p0&nPK8ioB)6%<(r0E#bz1{1( z#1KSk(i!a!;)kDS00YV8f!>c^#`g#J&(_Y`Fc^YY58QMkiw#7e=v^lF+i@jxK>FEl za8;C<;4wY31o@$wk#xli^i4r&-J1?9i77-B?{&pWolL20cI^&$ArCvdZEVEssq)$` z)tKzya2b92#Ii2d(6Vdm`a=Rkev_F!o?@prL0DIn+ZE*G;qF)^B-cs~s34 z=UR8ccK|U@B?y{qrkBpZiM*u~qW877OY%K9akp41MpS&;+z~LI5^gq^F9<-1uVuHk z%8z;r=Q_Mb9paHcr;Kz3{VApXp5e$n$PItwtqD^*qidXmFX$^JK@ydC}A;$p8OH9r-wMn-n zW6kMHWf}SDN{+RQtJ0o;kzP(3rJ^qRx-5V9Lwrfsqg`HAUva;q4pl=89Yx^qiO!=+ z`7`ytNA*6Q?K4e~_xuq%`_JSRRjxdC5UË@vkYVuGyr#{{u{p@bND{m#ljL$A` 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%0Dn!9Fr+S=a75|IP#)7u9X#A@I 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 F{{#C2-=qKl literal 0 HcmV?d00001 diff --git a/documentation/evidence/g1-20261018/idf-semantic-audit.json b/documentation/evidence/g1-20261018/idf-semantic-audit.json new file mode 100644 index 00000000..6fc65d74 --- /dev/null +++ b/documentation/evidence/g1-20261018/idf-semantic-audit.json @@ -0,0 +1,23 @@ +[ + { + "path": "C:\\TasOut\\pr237-g1-20261018\\explicit\\000000_SAM_AnalyticalModel_OpenStudio_20261018-084639_45a832b9\\run\\in.idf", + "objects": 163, + "normalizedSha256": "3b0dbe8f96a18c8b99b311811b2cccdc15c7b34046a549a0981a385cdf0da397", + "sameEngineeringFields": true, + "differentObjects": [] + }, + { + "path": "C:\\TasOut\\pr237-g1-20261018\\explicit\\benchmark-repeat-work\\SAM_OpenStudio_1b6415a0\\run\\in.idf", + "objects": 163, + "normalizedSha256": "3b0dbe8f96a18c8b99b311811b2cccdc15c7b34046a549a0981a385cdf0da397", + "sameEngineeringFields": true, + "differentObjects": [] + }, + { + "path": "C:\\TasOut\\pr237-g1-20261018\\explicit\\benchmark-work\\SAM_OpenStudio_2e63e0bb\\run\\in.idf", + "objects": 163, + "normalizedSha256": "3b0dbe8f96a18c8b99b311811b2cccdc15c7b34046a549a0981a385cdf0da397", + "sameEngineeringFields": true, + "differentObjects": [] + } +] \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/input-hashes.csv b/documentation/evidence/g1-20261018/input-hashes.csv new file mode 100644 index 00000000..02223a4e --- /dev/null +++ b/documentation/evidence/g1-20261018/input-hashes.csv @@ -0,0 +1,6 @@ +"Algorithm","Hash","Path" +"SHA256","B2AB6826E085D621CFD219D58D924F38CC02A3406852D39BFAD8AEB205ABF32D","C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\tests\resources\models\rawModel-WindowsWeatherDataDDYAdiabaticAirPanel.sam" +"SHA256","EDED5C982C1DA37E35930622BADF7F0E0A0A82B30FD9410723EA3F1C4B52B80B","C:\Users\michal\Documents\GitHub\SAM-BIM\SAM_OpenStudio\tests\resources\weather\USA_MA_Boston-Logan.Intl.AP.725090_TMYx.2004-2018.epw" +"SHA256","B2AB6826E085D621CFD219D58D924F38CC02A3406852D39BFAD8AEB205ABF32D","C:\TasOut\pr237-g1-20261018\inputs\two-cell.sam" +"SHA256","EDED5C982C1DA37E35930622BADF7F0E0A0A82B30FD9410723EA3F1C4B52B80B","C:\TasOut\pr237-g1-20261018\inputs\Boston.epw" +"SHA256","286B1E6A98687F0CDF2975F4AFE8030206223A7C47F03B256BEAE8B04567AE43","C:\TasOut\pr237-g1-20261018\inputs\box-aperture.sam" diff --git a/documentation/evidence/g1-20261018/isolation-assertions.json b/documentation/evidence/g1-20261018/isolation-assertions.json new file mode 100644 index 00000000..f6035e71 --- /dev/null +++ b/documentation/evidence/g1-20261018/isolation-assertions.json @@ -0,0 +1,11 @@ +{ + "status": "Succeeded", + "startedUtc": "2026-10-18T08:55:02.4628828Z", + "finishedUtc": "2026-10-18T08:56:14.1641905Z", + "spaceGuid": "c7df54b3c0064fc5a7c6e6012dbb9b8e", + "snapshotName": "GF_07 LivingRoom", + "resultName": "GF_07 LivingRoom", + "liveSavedName": "G1_ISOLATION_EDIT", + "snapshotSha256": "8247570edfe72ebc801f97a048ffd7e53207f949baa378c591090716d001491b", + "passed": true +} \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/isolation-completed-live-edit.jpg b/documentation/evidence/g1-20261018/isolation-completed-live-edit.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9dc6c9abc758948ad61e2bbfedd301c1bf93f54c GIT binary patch literal 128613 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 z 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 NIpdaOVf1zU{{RFb>RbQ- literal 0 HcmV?d00001 diff --git a/documentation/evidence/g1-20261018/isolation-edit-commit-utc.txt b/documentation/evidence/g1-20261018/isolation-edit-commit-utc.txt new file mode 100644 index 00000000..afd1b1d3 --- /dev/null +++ b/documentation/evidence/g1-20261018/isolation-edit-commit-utc.txt @@ -0,0 +1 @@ +2026-10-18T08:56:09.092Z \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/provenance-audit.json b/documentation/evidence/g1-20261018/provenance-audit.json new file mode 100644 index 00000000..a88101e3 --- /dev/null +++ b/documentation/evidence/g1-20261018/provenance-audit.json @@ -0,0 +1,12 @@ +{ + "fixturePreserved": true, + "weatherSource": "File", + "weatherSha256": "sha256:eded5c982c1da37e35930622badf7f0e0a0a82b30fd9410723ea3f1c4b52b80b", + "modelGuid": "b74990da-73b2-4097-8846-cc12560be0aa", + "benchmarkCanonicalModelHash": "sha256:356dcbed711b91d47a0f391ff306aaa352b102581f6a8f062da4858578026317", + "samCommit": "618db819300df8b698b3bbe5174a203244134738", + "openStudioCommit": "d4216f3525c01ca762c1b3e9b6d099733d037f54", + "designDaySource": "EmbeddedModel", + "strictMetricEquality": false, + "gate": "HOLD: required bit-exact standalone/benchmark equality not achieved; same-engine CLI repeats also vary. No tolerance change or deferral authorized." +} \ No newline at end of file diff --git a/documentation/evidence/g1-20261018/tas-baseline-settings.jpg b/documentation/evidence/g1-20261018/tas-baseline-settings.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8fbb21e79dc9d7a77d1651f9017716a7dad0476d GIT binary patch literal 41480 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 Date: Sun, 18 Oct 2026 11:21:49 +0200 Subject: [PATCH 11/11] docs: accept observed G1 numerical reproducibility for integration --- documentation/OpenStudio-Simulation-PR229.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/documentation/OpenStudio-Simulation-PR229.md b/documentation/OpenStudio-Simulation-PR229.md index 0c121469..bd08f213 100644 --- a/documentation/OpenStudio-Simulation-PR229.md +++ b/documentation/OpenStudio-Simulation-PR229.md @@ -174,3 +174,13 @@ The existing paths above are preserved evidence: use fresh output paths for a re Machine-local evidence root: `C:\TasOut\pr237-g1-20261018` (must be copied/provisioned elsewhere). `cancel/...084042_454bf00b`; `isolation/...085502_021b72af`; `explicit/...084639_45a832b9`; `explicit/benchmark-work`, `explicit/benchmark-repeat-work`; `tas-baseline`, `tas-candidate`; `opt-in/real-run.trx`; logs/builds/process CSV/audit scripts. Portable summaries, verifier scripts and selected screenshots are committed under `documentation/evidence/g1-20261018/`; the verifiers use this evidence root and require the preserved full run artifacts. Originals remain untouched; `inputs/HungaryHouse.json` is the intentionally edited disposable live model. The original `C:\TasOut\pr238-ui\inputs\HungaryHouse.json` still hashes to `E16CCBD2BFE5ABA710D6C2EE88C68019A3265A75C41D50483E7867018E28B2CD`. The two-cell original/copy and EPW hashes are recorded in `input-hashes.csv`. Existing successful Both/partial runs, 2835/2835 suite and presentation evidence were inspected, not rerun. Exact next step: resolve the strict equality specification with the owner/domain reviewer, or prepare a separately reviewed deterministic conversion fix if bit identity is required. Do not merge #237 or dependent #238 while this required gate fails. Do not change physics, comparison tolerances/arithmetic or deployment to satisfy it. Documentation-only final heads are authorized by the 2026-10-18 instruction once all gates pass; the current hold is **acceptance**, not a request to reapprove documentation pins. Numerical Tas/OpenStudio disagreement, HungaryHouse Tas crash, unavailable input manifests and producer deployment remain separate open follow-ups. No PROJECT_PROGRESS.md change or UI branch cleanup is permitted before merge. + +## Owner acceptance of explicit-EPW reproducibility - 2026-10-18 + +**Status: ACCEPTED for integration; merge authorized by the owner in the current review conversation.** This decision supersedes the strict-equality HOLD above. It accepts the observed numerical residuals for this prescribed two-cell/Boston explicit-EPW G1 scenario; it does not claim bit-exact reproducibility or introduce a general numerical tolerance. + +Independent review inspected the committed equality, CLI-repeat, semantic-IDF, cancellation, isolation and Tas-baseline evidence. The four standalone/benchmark metrics have maximum absolute energy difference `3.134337021037936e-7 kWh`, maximum absolute peak difference `2.735980331181054e-10 kW`, and maximum relative difference approximately `1.9433e-11`. A CLI-only repeat also varies (heating `6.598711479455233e-7 kWh`), and the recorded semantic audit matches all 163 IDF objects without rounding/omitting engineering fields. Matching source/weather provenance and these observations support numerical equivalence for G1 integration. The exact origin of run-to-run residuals is not claimed proven. Deterministic conversion is a separate task if bit identity is later required. + +The original instruction that standalone/benchmark outputs be "identical" is therefore satisfied for this integration acceptance by the documented numerical equivalence, not literal bit identity. No product code, engine/conversion physics, units, comparator tolerance, gate, arithmetic or deployment changed. The real Cancel/process cleanup, concurrent-edit isolation, 608/608 exact persisted Tas baseline comparison and actually executed opt-in real-run test remain PASS as recorded above. No additional simulation or local suite was run for this acceptance-only documentation update. Tested product/build content remains `b7483443f53dd53a4d16f159d6bc327c901a7770` (standalone product code `3393331`). + +Next: pass final-head hosted Build/SPDX, recheck exact head/base/reviews and merge #237 with an expected-head guard; then verify post-merge Q4 checks and refresh #238 against merged Q4. This is integration acceptance only. Numerical Tas/OpenStudio disagreement, the HungaryHouse Tas crash, unavailable input manifests and producer deployment remain open.