diff --git a/Build-2026-Deploy.ps1 b/Build-2026-Deploy.ps1 new file mode 100644 index 00000000..e7cb8857 --- /dev/null +++ b/Build-2026-Deploy.ps1 @@ -0,0 +1,213 @@ +#!/usr/bin/env powershell +<# +.SYNOPSIS + Builds all Revit 2026 plugins and populates the deploy/2026 folder + +.DESCRIPTION + This script: + 1. Compiles all 44 plugins for Revit 2026 + 2. Copies the compiled DLLs to deploy/2026/ + 3. Copies supporting files (families, templates, etc.) + +.PARAMETER Configuration + Build configuration: Debug or Release (default: Release) + +.EXAMPLE + .\Build-2026-Deploy.ps1 -Configuration Release + .\Build-2026-Deploy.ps1 -Configuration Debug +#> + +param( + [ValidateSet("Debug", "Release")] + [string]$Configuration = "Release" +) + +$ErrorActionPreference = "Stop" +$InformationPreference = "Continue" + +# Get script directory +$scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path +$srcDir = Join-Path $scriptDir "src" +$deployDir = Join-Path $scriptDir "deploy\2026" + +# Colors for output +function Write-Header { + param([string]$Message) + Write-Host "===================" -ForegroundColor Cyan + Write-Host $Message -ForegroundColor Cyan + Write-Host "===================" -ForegroundColor Cyan +} + +function Write-Success { + param([string]$Message) + Write-Host "✓ $Message" -ForegroundColor Green +} + +function Write-Error-Custom { + param([string]$Message) + Write-Host "✗ $Message" -ForegroundColor Red +} + +function Write-Info { + param([string]$Message) + Write-Host "ℹ $Message" -ForegroundColor Blue +} + +# Verify source directory +Write-Header "Verifying Paths" +if (-not (Test-Path $srcDir)) { + Write-Error-Custom "Source directory not found: $srcDir" + exit 1 +} +Write-Success "Source directory: $srcDir" + +if (-not (Test-Path $deployDir)) { + Write-Error-Custom "Deploy directory not found: $deployDir" + Write-Info "Creating deploy/2026 folder..." + New-Item -ItemType Directory -Path $deployDir -Force | Out-Null + Write-Success "Created: $deployDir" +} + +# Find all plugin solutions +Write-Header "Discovering Revit 2026 Plugins" +$plugins = @() +$solutionFiles = Get-ChildItem -Path $srcDir -Filter "*.sln" -Recurse | Where-Object { + $_.DirectoryName -match "Case\.[A-Z]" -and -not $_.DirectoryName -match "_Case\." +} + +Write-Info "Found $($solutionFiles.Count) plugin solutions" + +foreach ($sln in $solutionFiles) { + $pluginName = $sln.BaseName + $pluginDir = $sln.DirectoryName + $has2026 = Test-Path "$pluginDir\$pluginName.2026" + + if ($has2026) { + $plugins += @{ + Name = $pluginName + SolutionPath = $sln.FullName + DirectoryPath = $pluginDir + ProjectPath = "$pluginDir\$pluginName.2026\$pluginName.2026.vbproj" + } + Write-Info " ✓ $pluginName" + } else { + Write-Info " ✗ $pluginName (no 2026 version)" + } +} + +Write-Success "Found $($plugins.Count) plugins with 2026 versions" + +# Compile each plugin +Write-Header "Compiling Revit 2026 Plugins (Configuration: $Configuration)" +$buildErrors = @() +$builtPlugins = @() + +foreach ($plugin in $plugins) { + Write-Host "Building $($plugin.Name)..." -ForegroundColor White + + try { + $buildOutput = & msbuild $plugin.ProjectPath ` + /p:Configuration=$Configuration ` + /p:Platform=AnyCPU ` + /m ` + /v:q 2>&1 + + if ($LASTEXITCODE -ne 0) { + $buildErrors += $plugin.Name + Write-Error-Custom " Failed to build $($plugin.Name)" + Write-Host ($buildOutput | Out-String) -ForegroundColor Red + } else { + Write-Success " Built $($plugin.Name)" + $builtPlugins += $plugin + } + } catch { + $buildErrors += $plugin.Name + Write-Error-Custom " Error building $($plugin.Name): $_" + } +} + +if ($buildErrors.Count -gt 0) { + Write-Error-Custom "`nBuild failed for: $($buildErrors -join ', ')" + Write-Info "Continuing with successfully built plugins..." +} + +# Copy DLLs +Write-Header "Copying Compiled DLLs to deploy/2026" +$copiedCount = 0 + +foreach ($plugin in $builtPlugins) { + $dllPath = Join-Path $plugin.DirectoryPath "$($plugin.Name).2026\bin\$Configuration\$($plugin.Name).dll" + + if (Test-Path $dllPath) { + Copy-Item -Path $dllPath -Destination $deployDir -Force + Write-Success "Copied $($plugin.Name).dll" + $copiedCount++ + } else { + Write-Error-Custom "DLL not found: $dllPath" + } +} + +Write-Success "Copied $copiedCount DLLs to $deployDir" + +# Copy supporting files from 2023 deploy (if they don't exist in 2026) +Write-Header "Copying Supporting Files" +$supportingFiles = @( + "3D_RoomTag.rfa", + "Mass.rft", + "Newtonsoft.Json.dll", + "RestSharp.dll", + "Case.Subs.Exceler8.xls", + "Case.Subs.Exceler8.xlsx", + "Case.Subs.Exceler8_Schedule.xlsx", + "Case.Subs.KeyMatcher.xlsx", + "Case.Subs.Renamer.xlsx" +) + +$source2023 = Join-Path $scriptDir "deploy\2023" + +if (Test-Path $source2023) { + $copiedSupporting = 0 + foreach ($file in $supportingFiles) { + $sourcePath = Join-Path $source2023 $file + if (Test-Path $sourcePath) { + Copy-Item -Path $sourcePath -Destination $deployDir -Force + Write-Info " Copied $file" + $copiedSupporting++ + } + } + Write-Success "Copied $copiedSupporting supporting files" +} else { + Write-Info "2023 deploy folder not found, skipping supporting files" +} + +# Display summary +Write-Header "Build Summary" + +Write-Host @" +Build Configuration: $Configuration +Plugins Built: $($builtPlugins.Count) / $($plugins.Count) +DLLs Copied: $copiedCount +Deploy Location: $deployDir + +Contents: +"@ -ForegroundColor White + +Get-ChildItem -Path $deployDir -Name | ForEach-Object { + Write-Host " ✓ $_" +} + +Write-Host "" + +if ($buildErrors.Count -gt 0) { + Write-Error-Custom "Build completed with errors: $($buildErrors -join ', ')" +} else { + Write-Success "Build completed successfully!" + Write-Info "`nThe deploy/2026 folder is now ready for distribution." +} + +Write-Host "" +Write-Host "Next steps:" -ForegroundColor Yellow +Write-Host "1. Verify all DLLs are present in: $deployDir" +Write-Host "2. Test plugins in Revit 2026" +Write-Host "3. Update the MSI installer to include these files" +Write-Host "" diff --git a/deploy/2026/Case.Apps.addin b/deploy/2026/Case.Apps.addin new file mode 100644 index 00000000..b262fa4d --- /dev/null +++ b/deploy/2026/Case.Apps.addin @@ -0,0 +1,11 @@ + + + + Case.AppsRibbon + Case.Apps\Case.AppsRibbon.dll + Case.AppsRibbon.Entry.AppMain + 0000000b-0000-0007-000F-00000F30D000 + CSDR + CASE Design Inc., http://www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.BasicReporting.addin b/deploy/2026/Case.BasicReporting.addin new file mode 100644 index 00000000..f0999096 --- /dev/null +++ b/deploy/2026/Case.BasicReporting.addin @@ -0,0 +1,11 @@ + + + + Command Case.BasicReporting + Case.BasicReporting.dll + 48401C1A-333C-4154-B972-ACa72655D58B + Case.BasicReporting.Entry.CmdMain + CASE + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.ChangeReplaceFamTypeNames.addin b/deploy/2026/Case.ChangeReplaceFamTypeNames.addin new file mode 100644 index 00000000..912e7118 --- /dev/null +++ b/deploy/2026/Case.ChangeReplaceFamTypeNames.addin @@ -0,0 +1,11 @@ + + + + Command Case.ChangeReplaceFamTypeNames + Case.ChangeReplaceFamTypeNames.dll + Case.ChangeReplaceFamTypeNames.Entry.CmdMain + fc3ed2c7-243e-448a-9dff-a88545492948 + CASE + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.DeleteViewsAndPurge.addin b/deploy/2026/Case.DeleteViewsAndPurge.addin new file mode 100644 index 00000000..85170f7d --- /dev/null +++ b/deploy/2026/Case.DeleteViewsAndPurge.addin @@ -0,0 +1,11 @@ + + + + Command Case.DeleteViewsAndPurge + Case.DeleteViewsAndPurge.dll + 2ad481a2-b333-45b6-1acb-910e65a29b9c + Case.DeleteViewsAndPurge.Entry.CmdMain + CASE + Case Design, Inc. http://www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.DimensionOverrides.addin b/deploy/2026/Case.DimensionOverrides.addin new file mode 100644 index 00000000..4416e177 --- /dev/null +++ b/deploy/2026/Case.DimensionOverrides.addin @@ -0,0 +1,10 @@ + + + + Command - Case.DimensionOverrides + Case.DimensionOverrides.dll + Case.DimensionOverrides.Entry.CmdMain + f0b1a893-be2d-4648-b9d5-00b755393267 + Case + + \ No newline at end of file diff --git a/deploy/2026/Case.Directionality.addin b/deploy/2026/Case.Directionality.addin new file mode 100644 index 00000000..48355411 --- /dev/null +++ b/deploy/2026/Case.Directionality.addin @@ -0,0 +1,11 @@ + + + + Command Case.Directionality + Case.Directionality.dll + 4ea76ff3-bb47-4969-9371-c7f3eb8ac068 + Case.Directionality.Entry.CmdMain + CSDR + Case Design, Inc., http://apps.case-inc.com/ + + \ No newline at end of file diff --git a/deploy/2026/Case.DoorMarkRenumber.addin b/deploy/2026/Case.DoorMarkRenumber.addin new file mode 100644 index 00000000..c1ccb1f4 --- /dev/null +++ b/deploy/2026/Case.DoorMarkRenumber.addin @@ -0,0 +1,11 @@ + + + + Command Case.DoorMarkRenumber + Case.DoorMarkRenumber.dll + 88a0a36d-d7ff-417a-8716-b02e76cbeac9 + Case.DoorMarkRenumber.Entry.CmdMain + CASE + http://www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Export.Families.addin b/deploy/2026/Case.Export.Families.addin new file mode 100644 index 00000000..b7570bfa --- /dev/null +++ b/deploy/2026/Case.Export.Families.addin @@ -0,0 +1,11 @@ + + + + Command Case.Export.Families + Case.Export.Families.dll + 92ea0b1a-e1bd-4645-9473-f3baf14abf27 + Case.Export.Families.Entry.CmdMain + CASE + http://www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.ExtrudeRoomsToMass.addin b/deploy/2026/Case.ExtrudeRoomsToMass.addin new file mode 100644 index 00000000..27898cf0 --- /dev/null +++ b/deploy/2026/Case.ExtrudeRoomsToMass.addin @@ -0,0 +1,11 @@ + + + + Command Case.ExtrudeRoomsToMass + Case.ExtrudeRoomsToMass.dll + 1ea393bb-ddba-449e-bc43-fd4120330241 + Case.ExtrudeRoomsToMass.Entry.CmdMain + CSDR + Case Design, Inc. www.case-inc.com + + diff --git a/deploy/2026/Case.FamilySubcategories.addin b/deploy/2026/Case.FamilySubcategories.addin new file mode 100644 index 00000000..526ce628 --- /dev/null +++ b/deploy/2026/Case.FamilySubcategories.addin @@ -0,0 +1,10 @@ + + + + Command - Case.FamilySubcategories + Case.FamilySubcategories.dll + Case.FamilySubcategories.Entry.CmdMain + 76D68975-5D6D-4CA6-BF6F-32F6A6612C36 + Case + + \ No newline at end of file diff --git a/deploy/2026/Case.HiddenParameterToParameter.addin b/deploy/2026/Case.HiddenParameterToParameter.addin new file mode 100644 index 00000000..8509fe0a --- /dev/null +++ b/deploy/2026/Case.HiddenParameterToParameter.addin @@ -0,0 +1,11 @@ + + + + Command Case.HiddenParameterToParameter + Case.HiddenParameterToParameter.dll + 6c47992e-7ba5-4f86-9238-8df5d2a2777b + Case.HiddenParameterToParameter.Entry.CmdMain + CSDR + Case Design, Inc., www.case-inc.com + + diff --git a/deploy/2026/Case.ImageToDraftingView.addin b/deploy/2026/Case.ImageToDraftingView.addin new file mode 100644 index 00000000..f58130f2 --- /dev/null +++ b/deploy/2026/Case.ImageToDraftingView.addin @@ -0,0 +1,11 @@ + + + + Command Case.ImageToDraftingView + Case.ImageToDraftingView.dll + 20f78cc8-41d2-4d98-9d76-813f12324357 + Case.ImageToDraftingView.Entry.CmdMain + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.LightingLayout.addin b/deploy/2026/Case.LightingLayout.addin new file mode 100644 index 00000000..3c7ded09 --- /dev/null +++ b/deploy/2026/Case.LightingLayout.addin @@ -0,0 +1,12 @@ + + + + Command Case.LightingLayout + Case.LightingLayout + Case.LightingLayout.dll + Case.LightingLayout.Entry.CmdMain + ace9b525-945d-4a92-9f90-89cc61dcb4aa + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.LineChanger.addin b/deploy/2026/Case.LineChanger.addin new file mode 100644 index 00000000..4aff27ee --- /dev/null +++ b/deploy/2026/Case.LineChanger.addin @@ -0,0 +1,11 @@ + + + + Command Case.ChangeLineStyles + Case.ChangeLineStyles.dll + 12ea0b1a-e1bd-4aa5-9a71-f3baf44ab217 + Case.ChangeLineStyles.Entry.CmdMain + CASE + http://www.case-inc.com + + diff --git a/deploy/2026/Case.ModeledRoomTags.addin b/deploy/2026/Case.ModeledRoomTags.addin new file mode 100644 index 00000000..b68c266e --- /dev/null +++ b/deploy/2026/Case.ModeledRoomTags.addin @@ -0,0 +1,11 @@ + + + + Command Application Case.ModeledRoomTags + Case.ModeledRoomTags.dll + baefd654-5146-40e3-a189-948d6f0a258c + Case.ModeledRoomTags.Entry.CmdMain + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.MultiViewDuplicate.addin b/deploy/2026/Case.MultiViewDuplicate.addin new file mode 100644 index 00000000..3205a5fe --- /dev/null +++ b/deploy/2026/Case.MultiViewDuplicate.addin @@ -0,0 +1,11 @@ + + + + Command Case.MultiViewDuplicate + Case.MultiViewDuplicate.dll + Case.MultiViewDuplicate.cmd + cb992ec6-1e91-4cd4-adf2-b8e2f2b89532 + CSDR + Case Design, Inc., www.case-inc.com + + diff --git a/deploy/2026/Case.ObjectStyles.addin b/deploy/2026/Case.ObjectStyles.addin new file mode 100644 index 00000000..6ccc89a8 --- /dev/null +++ b/deploy/2026/Case.ObjectStyles.addin @@ -0,0 +1,10 @@ + + + + Command - Case.ObjectStyles + Case.ObjectStyles.dll + Case.ObjectStyles.Entry.CmdMain + 91AC564F-2E72-4767-94B8-621E5E6E40EE + Case + + \ No newline at end of file diff --git a/deploy/2026/Case.ParallelWalls.addin b/deploy/2026/Case.ParallelWalls.addin new file mode 100644 index 00000000..2f519ff6 --- /dev/null +++ b/deploy/2026/Case.ParallelWalls.addin @@ -0,0 +1,10 @@ + + + + Command - Case.ParallelWalls + Case.ParallelWalls.dll + Case.ParallelWalls.Entry.CmdMain + F93E0D47-253B-4FC2-A8CB-995B129F668A + Case + + \ No newline at end of file diff --git a/deploy/2026/Case.ReportGroupsByView.addin b/deploy/2026/Case.ReportGroupsByView.addin new file mode 100644 index 00000000..3f363c16 --- /dev/null +++ b/deploy/2026/Case.ReportGroupsByView.addin @@ -0,0 +1,10 @@ + + + + Command - Case.ReportGroupsByView + Case.ReportGroupsByView.dll + Case.ReportGroupsByView.Entry.CmdMain + ae638a74-0f8b-4fdf-8a94-fa7095e0401d + Case + + \ No newline at end of file diff --git a/deploy/2026/Case.RoomSync.addin b/deploy/2026/Case.RoomSync.addin new file mode 100644 index 00000000..38b030d5 --- /dev/null +++ b/deploy/2026/Case.RoomSync.addin @@ -0,0 +1,11 @@ + + + + Command Case.RoomSync + Case.RoomSync.dll + 6aA2A416-D21B-4A44-93E4-87635aa16622 + Case.RoomSync.Entry.CmdMain + CASE + Case Design, inc. www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.SharedParameters.addin b/deploy/2026/Case.SharedParameters.addin new file mode 100644 index 00000000..389251ad --- /dev/null +++ b/deploy/2026/Case.SharedParameters.addin @@ -0,0 +1,11 @@ + + + + Command Case.SharedParameters + Case.SharedParameters.dll + 7a0988ca-720c-4e9d-a5db-6560a3a19313 + Case.SharedParameters.Entry.CmdMain + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.DeleteViewsAndPurge.addin b/deploy/2026/Case.Subs.DeleteViewsAndPurge.addin new file mode 100644 index 00000000..3137bb54 --- /dev/null +++ b/deploy/2026/Case.Subs.DeleteViewsAndPurge.addin @@ -0,0 +1,11 @@ + + + + Command Case.Subs.DeleteViewsAndPurge + Case.Subs.DeleteViewsAndPurge.dll + 2ad421a2-b333-45b6-1acb-910e65aa6b9c + Case.Subs.DeleteViewsAndPurge.Entry.B31EA3F20509489BB52A0381E8838AFC + CASE + Case Design, Inc. http://www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.Exceler8.addin b/deploy/2026/Case.Subs.Exceler8.addin new file mode 100644 index 00000000..5a345445 --- /dev/null +++ b/deploy/2026/Case.Subs.Exceler8.addin @@ -0,0 +1,35 @@ + + + + Exceler8 - Export + Case.Subs.Exceler8.dll + Case.Subs.Exceler8.Entry.DE309158ACE741799F90E9210DEEF5F1 + 48dda76e-9230-4479-bdc3-0eb1cf5ed5ad + CSDR + Case Design, Inc., www.case-inc.com + + + Exceler8 - Export Schedules + Case.Subs.Exceler8.dll + Case.Subs.Exceler8.Entry.DE309158ACE741799F90E9210DEEF5F3 + 48dda76e-9230-4479-bdc3-0eb1cf5ed5af + CSDR + Case Design, Inc., www.case-inc.com + + + Exceler8 - Synchronize + Case.Subs.Exceler8.dll + Case.Subs.Exceler8.Entry.DE309158ACE741799F90E9210DEEF5F2 + 48dda76e-9230-4479-bdc3-0eb1cf5ed5ae + CSDR + Case Design, Inc., www.case-inc.com + + + Exceler8 - Smart Import + Case.Subs.Exceler8.dll + Case.Subs.Exceler8.Entry.DE309158ACE741799F90E9210DEEF5F4 + 48dda76e-9230-4479-bdc3-0eb1cf5ed5be + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.KeyMatcher.addin b/deploy/2026/Case.Subs.KeyMatcher.addin new file mode 100644 index 00000000..8f43d237 --- /dev/null +++ b/deploy/2026/Case.Subs.KeyMatcher.addin @@ -0,0 +1,10 @@ + + + + Application.Case.Subs.KeyMatcher + Case.Subs.KeyMatcher.dll + Case.Subs.KeyMatcher.Entry.AppMain + 2e63ba74-0f5c-4fdf-8a92-fa7095e0401d + CASE + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.Linestyles.addin b/deploy/2026/Case.Subs.Linestyles.addin new file mode 100644 index 00000000..5c05f808 --- /dev/null +++ b/deploy/2026/Case.Subs.Linestyles.addin @@ -0,0 +1,11 @@ + + + + Command Case.Subs.Linestyles + Case.Subs.Linestyles.dll + 1cea0b1a-e1bd-4aa1-9a71-fc1af44ab217 + Case.Subs.Linestyles.Entry.AB0844C654F34178B365D9C83BA84D7D + CASE + Case Design, Inc., http://www.case-inc.com + + diff --git a/deploy/2026/Case.Subs.MultiViewDuplicate.addin b/deploy/2026/Case.Subs.MultiViewDuplicate.addin new file mode 100644 index 00000000..5e9483cc --- /dev/null +++ b/deploy/2026/Case.Subs.MultiViewDuplicate.addin @@ -0,0 +1,11 @@ + + + + Command Case.Subs.MultiViewDuplicate + Case.Subs.MultiViewDuplicate.dll + Case.Subs.MultiViewDuplicate.Entry.A330EB8E54CA46B3A28E41DA9E77F9F6 + cb992ec6-1e91-4cd4-adf2-b8e4f2b89532 + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.OpenNURBS.addin b/deploy/2026/Case.Subs.OpenNURBS.addin new file mode 100644 index 00000000..e444fe8b --- /dev/null +++ b/deploy/2026/Case.Subs.OpenNURBS.addin @@ -0,0 +1,11 @@ + + + + SUBS - Open NURBS + Case.Subs.OpenNURBS.dll + Case.Subs.OpenNURBS.D4E12C09AFB84891A24F3AF186B13DD3 + 000b000b-8b9c-4d31-b81b-0077766f138c + CSNM + CASE Design Inc., http://www.case-inc.com + + diff --git a/deploy/2026/Case.Subs.Renamer.addin b/deploy/2026/Case.Subs.Renamer.addin new file mode 100644 index 00000000..c8fe6747 --- /dev/null +++ b/deploy/2026/Case.Subs.Renamer.addin @@ -0,0 +1,12 @@ + + + + Command Case.Subs.Renamer + Case.Subs.Renamer + Case.Subs.Renamer.dll + Case.Subs.Renamer.Entry.DD108DD4BDB24224BFB1848AEEA2582D + 777784f8-6faa-41b0-9908-22582967a2d6 + XXXX + XXXX + + diff --git a/deploy/2026/Case.Subs.RoomsToMass.addin b/deploy/2026/Case.Subs.RoomsToMass.addin new file mode 100644 index 00000000..b8e491c6 --- /dev/null +++ b/deploy/2026/Case.Subs.RoomsToMass.addin @@ -0,0 +1,11 @@ + + + + Command Case.Subs.RoomsToMass + Case.Subs.RoomsToMass.dll + 1ea393bb-ddba-b49e-bc43-fd41203a0241 + Case.Subs.RoomsToMass.Entry.AF73BA45B4B94C7585CB3E425D423F5E + CSDR + Case Design, Inc. www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.SharedParameters.addin b/deploy/2026/Case.Subs.SharedParameters.addin new file mode 100644 index 00000000..b464e287 --- /dev/null +++ b/deploy/2026/Case.Subs.SharedParameters.addin @@ -0,0 +1,11 @@ + + + + Command Case.Subs.SharedParameters + Case.Subs.SharedParameters.dll + 7a0988ca-720c-4e9d-a5db-65a0a3a19313 + Case.Subs.SharedParameters.Entry.BC456E773F0B4A04A764DE16ECDA69C9 + CSDR + Case Design, Inc., www.case-inc.com + + diff --git a/deploy/2026/Case.Subs.SuperTag.addin b/deploy/2026/Case.Subs.SuperTag.addin new file mode 100644 index 00000000..de37d115 --- /dev/null +++ b/deploy/2026/Case.Subs.SuperTag.addin @@ -0,0 +1,12 @@ + + + + Command Case.Subs.SuperTag + Case.Subs.SuperTag + Case.Subs.SuperTag.dll + Case.Subs.SuperTag.Entry.A01A0A226EBE4CD89D655C55B997650F + f6c53bc6-f4dd-47ec-bb7f-1e0e471ed75d + CSDR + Case Design, Inc. www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.ViewSync.addin b/deploy/2026/Case.Subs.ViewSync.addin new file mode 100644 index 00000000..f44ee499 --- /dev/null +++ b/deploy/2026/Case.Subs.ViewSync.addin @@ -0,0 +1,35 @@ + + + + CASE.ViewSync - Config + Case.Subs.ViewSync.dll + Case.Subs.ViewSync.Entry.D9B42C3FEA6F4F9E8E1B62E993AA2511 + 48dda76e-9230-4479-bdc3-0eb1bb5ed5b0 + CSDR + Case Design, Inc., www.case-inc.com + + + CASE.ViewSync - Tag + Case.Subs.ViewSync.dll + Case.Subs.ViewSync.Entry.D9B42C3FEA6F4F9E8E1B62E993AA2512 + 48dda76e-9230-4479-bdc3-0eb1bb5ed5b1 + CSDR + Case Design, Inc., www.case-inc.com + + + CASE.ViewSync - Sync + Case.Subs.ViewSync.dll + Case.Subs.ViewSync.Entry.D9B42C3FEA6F4F9E8E1B62E993AA2513 + 48dda76e-9230-4479-bdc3-0eb1bb5ed5b2 + CSDR + Case Design, Inc., www.case-inc.com + + + CASE.ViewSync - Find + Case.Subs.ViewSync.dll + Case.Subs.ViewSync.Entry.D9B42C3FEA6F4F9E8E1B62E993AA2514 + 48dda76e-9230-4479-bdc3-0eb1bb5ed5b3 + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.Subs.ViewTemplates.addin b/deploy/2026/Case.Subs.ViewTemplates.addin new file mode 100644 index 00000000..0707e41f --- /dev/null +++ b/deploy/2026/Case.Subs.ViewTemplates.addin @@ -0,0 +1,11 @@ + + + + Command Case.Subs ViewTemplates + Case.Subs.ViewTemplates.dll + Case.Subs.ViewTemplates.Entry.CEB749CFCF844AE8B76F40E3EBAA2FF7 + 09cd3515-b4f9-4c33-a5f4-a2e2f18cda21 + CSDR + Case Design, Inc., www.case-inc.com + + diff --git a/deploy/2026/Case.Subs.Worksets.addin b/deploy/2026/Case.Subs.Worksets.addin new file mode 100644 index 00000000..e9a8020d --- /dev/null +++ b/deploy/2026/Case.Subs.Worksets.addin @@ -0,0 +1,11 @@ + + + + Command Case.Subs Worksets + Case.Subs.Worksets.dll + Case.Subs.Worksets.Entry.CEB749CFCF844AE8B76F40E3EBAA2FF7 + 09cd3515-b449-4c33-a5f4-a2e2f1bcda21 + CSDR + Case Design, Inc., www.case-inc.com + + diff --git a/deploy/2026/Case.Subs.Xyz.addin b/deploy/2026/Case.Subs.Xyz.addin new file mode 100644 index 00000000..9b667461 --- /dev/null +++ b/deploy/2026/Case.Subs.Xyz.addin @@ -0,0 +1,11 @@ + + + + Command XYZ + Case.Subs.Xyz.dll + cabce22e-7a58-4992-b0cc-d261d14e00b8 + Case.Subs.Xyz.E33AB788BB594985A6A437CEFC70F7CD + CSDR + Case Design, Inc. http://www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.UngroupAll.addin b/deploy/2026/Case.UngroupAll.addin new file mode 100644 index 00000000..0931ba15 --- /dev/null +++ b/deploy/2026/Case.UngroupAll.addin @@ -0,0 +1,10 @@ + + + + Command - Case.UngroupAll + Case.UngroupAll.dll + Case.UngroupAll.Entry.CmdMain + ae631a74-0f8b-4fdf-8a9b-fa7095e0401d + Case + + \ No newline at end of file diff --git a/deploy/2026/Case.ViewCreator.addin b/deploy/2026/Case.ViewCreator.addin new file mode 100644 index 00000000..bbf42da3 --- /dev/null +++ b/deploy/2026/Case.ViewCreator.addin @@ -0,0 +1,11 @@ + + + + Create Views + Case.ViewCreator.dll + B33FFE72-25F2-4842-94C7-A98444DDAC4E + Case.ViewCreator.app + CSAJ + CASE Design Inc., www.case-inc.com + + diff --git a/deploy/2026/Case.ViewTemplates.addin b/deploy/2026/Case.ViewTemplates.addin new file mode 100644 index 00000000..136c47a2 --- /dev/null +++ b/deploy/2026/Case.ViewTemplates.addin @@ -0,0 +1,11 @@ + + + + Command Case.ViewTemplates + Case.ViewTemplates.dll + Case.ViewTemplates.Entry.CmdMain + 09cd3515-b4f9-4c33-a5f4-a2e2f18cd921 + CSDR + Case Design, Inc., www.case-inc.com + + \ No newline at end of file diff --git a/deploy/2026/Case.ViewportReporting.addin b/deploy/2026/Case.ViewportReporting.addin new file mode 100644 index 00000000..bffd3d88 --- /dev/null +++ b/deploy/2026/Case.ViewportReporting.addin @@ -0,0 +1,11 @@ + + + + Command Case.ViewportReporting + Case.ViewportReporting.dll + Case.ViewportReporting.Entry.CmdMain + c73b4804-bd81-4973-810a-f30b7a4210eb + CSDR + Case Design, Inc. www.case-inc.com + + \ No newline at end of file diff --git a/installer/Build-Installer.ps1 b/installer/Build-Installer.ps1 new file mode 100644 index 00000000..e83fb179 --- /dev/null +++ b/installer/Build-Installer.ps1 @@ -0,0 +1,266 @@ +#!/usr/bin/env powershell +<# +.SYNOPSIS + Builds the MSI installer for Case Plugins for Revit 2026 + +.DESCRIPTION + This script: + 1. Compiles all 44 plugins for Revit 2026 + 2. Gathers compiled binaries + 3. Generates .addin manifest files + 4. Creates the WiX MSI installer package + +.PARAMETER Configuration + Build configuration: Debug or Release (default: Release) + +.PARAMETER PluginsSourcePath + Path to the plugins source directory (default: ../src) + +.PARAMETER OutputPath + Output directory for the MSI (default: ./bin/Release) + +.EXAMPLE + .\Build-Installer.ps1 -Configuration Release +#> + +param( + [ValidateSet("Debug", "Release")] + [string]$Configuration = "Release", + + [string]$PluginsSourcePath = "$(Split-Path $PSScriptRoot)\src", + + [string]$OutputPath = "$(Split-Path $PSScriptRoot)\installer\bin\$Configuration" +) + +$ErrorActionPreference = "Stop" +$InformationPreference = "Continue" + +# Colors for output +function Write-Header { + param([string]$Message) + Write-Information "====================" + Write-Information $Message + Write-Information "====================" +} + +function Write-Success { + param([string]$Message) + Write-Host "✓ $Message" -ForegroundColor Green +} + +function Write-Error-Custom { + param([string]$Message) + Write-Host "✗ $Message" -ForegroundColor Red +} + +# Step 1: Verify paths +Write-Header "Verifying Installation Paths" +if (-not (Test-Path $PluginsSourcePath)) { + Write-Error-Custom "Plugins source path not found: $PluginsSourcePath" + exit 1 +} +Write-Success "Plugins source path found: $PluginsSourcePath" + +# Step 2: Find all 2026 plugin solutions +Write-Header "Discovering Revit 2026 Plugins" +$pluginSolutions = @() +$pluginInfo = @() + +$solutionFiles = Get-ChildItem -Path $PluginsSourcePath -Filter "*.sln" -Recurse | Where-Object { + $_.DirectoryName -match "Case\." -and -not $_.DirectoryName -match "_Case\." +} + +Write-Information "Found $(($solutionFiles | Measure-Object).Count) plugin solutions" + +foreach ($sln in $solutionFiles) { + $pluginName = $sln.BaseName + $pluginDir = $sln.DirectoryName + $has2026 = Test-Path "$pluginDir\$pluginName.2026" + + if ($has2026) { + $pluginSolutions += $sln.FullName + $pluginInfo += @{ + Name = $pluginName + SolutionPath = $sln.FullName + DirectoryPath = $pluginDir + Revision = "2026" + } + Write-Information " ✓ $pluginName (has 2026 version)" + } +} + +Write-Success "Found $($pluginInfo.Count) plugins with 2026 versions" + +# Step 3: Create output directories +Write-Header "Preparing Output Directories" +$binariesDir = "$OutputPath\Binaries" +$manifestsDir = "$OutputPath\Manifests" +$docsDir = "$OutputPath\Documentation" + +foreach ($dir in @($binariesDir, $manifestsDir, $docsDir)) { + if (Test-Path $dir) { + Remove-Item -Path $dir -Recurse -Force + } + New-Item -ItemType Directory -Path $dir -Force | Out-Null + Write-Success "Created directory: $dir" +} + +# Step 4: Compile plugins +Write-Header "Compiling Revit 2026 Plugins (Configuration: $Configuration)" +$compilationErrors = @() + +foreach ($plugin in $pluginInfo) { + Write-Information "Building $($plugin.Name)..." + + $msbuildArgs = @( + $plugin.SolutionPath, + "/p:Configuration=$Configuration", + "/p:Platform=AnyCPU", + "/m", + "/v:q" + ) + + $buildOutput = & msbuild @msbuildArgs 2>&1 + if ($LASTEXITCODE -ne 0) { + $compilationErrors += $plugin.Name + Write-Error-Custom "Failed to build $($plugin.Name)" + Write-Information $buildOutput + } else { + Write-Success "Built $($plugin.Name)" + } +} + +if ($compilationErrors.Count -gt 0) { + Write-Error-Custom "Build failed for: $($compilationErrors -join ', ')" + exit 1 +} + +Write-Success "All plugins compiled successfully" + +# Step 5: Copy binaries +Write-Header "Copying Compiled Binaries" +$copiedCount = 0 + +foreach ($plugin in $pluginInfo) { + $dllPath = Join-Path $plugin.DirectoryPath "$($plugin.Name).2026\bin\$Configuration\$($plugin.Name).dll" + + if (Test-Path $dllPath) { + Copy-Item -Path $dllPath -Destination $binariesDir -Force + Write-Success "Copied $($plugin.Name).dll" + $copiedCount++ + } else { + Write-Error-Custom "Binary not found: $dllPath" + } +} + +Write-Success "Copied $copiedCount plugin binaries" + +# Step 6: Generate .addin manifest files +Write-Header "Generating Revit .addin Manifest Files" +$guidTemplate = @{ + "Case.ApplySysOrient" = "{F7E0C1A1-9B5C-4D8E-8F2A-1C3B5D7E9F1A}" + "Case.AppsRibbon" = "{1A2B3C4D-5E6F-7A8B-9C0D-1E2F3A4B5C6D}" + "Case.BasicReporting" = "{7B8C9D0E-1F2A-3B4C-5D6E-7F8A9B0C1D2E}" + "Case.ChangeReplaceFamTypeNames" = "{2C3D4E5F-6A7B-8C9D-0E1F-2A3B4C5D6E7F}" + "Case.DeleteViewsAndPurge" = "{3D4E5F6A-7B8C-9D0E-1F2A-3B4C5D6E7F8A}" + "Case.DimensionOverrides" = "{4E5F6A7B-8C9D-0E1F-2A3B-4C5D6E7F8A9B}" + "Case.Directionality" = "{5F6A7B8C-9D0E-1F2A-3B4C-5D6E7F8A9B0C}" + "Case.DoorMarkRenumber" = "{6A7B8C9D-0E1F-2A3B-4C5D-6E7F8A9B0C1D}" + "Case.Export.Families" = "{7B8C9D0E-1F2A-3B4C-5D6E-7F8A9B0C1D2E}" + "Case.ExportSharedParameters" = "{8C9D0E1F-2A3B-4C5D-6E7F-8A9B0C1D2E3F}" + "Case.ExtrudeRoomsToMass" = "{9D0E1F2A-3B4C-5D6E-7F8A-9B0C1D2E3F4A}" + "Case.FamilySubcategories" = "{0E1F2A3B-4C5D-6E7F-8A9B-0C1D2E3F4A5B}" + "Case.FreeBenchmarking" = "{1F2A3B4C-5D6E-7F8A-9B0C-1D2E3F4A5B6C}" + "Case.HiddenParameterToParameter" = "{2A3B4C5D-6E7F-8A9B-0C1D-2E3F4A5B6C7D}" + "Case.ImageToDraftingView" = "{3B4C5D6E-7F8A-9B0C-1D2E-3F4A5B6C7D8E}" + "Case.LightingLayout" = "{4C5D6E7F-8A9B-0C1D-2E3F-4A5B6C7D8E9F}" + "Case.LineChanger" = "{5D6E7F8A-9B0C-1D2E-3F4A-5B6C7D8E9F0A}" + "Case.ModeledRoomTags" = "{6E7F8A9B-0C1D-2E3F-4A5B-6C7D8E9F0A1B}" + "Case.MultiViewDuplicate" = "{7F8A9B0C-1D2E-3F4A-5B6C-7D8E9F0A1B2C}" + "Case.ObjectStyles" = "{8A9B0C1D-2E3F-4A5B-6C7D-8E9F0A1B2C3D}" + "Case.ParallelWalls" = "{9B0C1D2E-3F4A-5B6C-7D8E-9F0A1B2C3D4E}" + "Case.ReportGroupsByView" = "{0C1D2E3F-4A5B-6C7D-8E9F-0A1B2C3D4E5F}" + "Case.RoomSync" = "{1D2E3F4A-5B6C-7D8E-9F0A-1B2C3D4E5F6A}" + "Case.SharedParameters" = "{2E3F4A5B-6C7D-8E9F-0A1B-2C3D4E5F6A7B}" + "Case.Subs.DeleteViewsAndPurge" = "{3F4A5B6C-7D8E-9F0A-1B2C-3D4E5F6A7B8C}" + "Case.Subs.Exceler8" = "{4A5B6C7D-8E9F-0A1B-2C3D-4E5F6A7B8C9D}" + "Case.Subs.KeyMatcher" = "{5B6C7D8E-9F0A-1B2C-3D4E-5F6A7B8C9D0E}" + "Case.Subs.Linestyles" = "{6C7D8E9F-0A1B-2C3D-4E5F-6A7B8C9D0E1F}" + "Case.Subs.MultiViewDuplicate" = "{7D8E9F0A-1B2C-3D4E-5F6A-7B8C9D0E1F2A}" + "Case.Subs.OpenNURBS" = "{8E9F0A1B-2C3D-4E5F-6A7B-8C9D0E1F2A3B}" + "Case.Subs.Renamer" = "{9F0A1B2C-3D4E-5F6A-7B8C-9D0E1F2A3B4C}" + "Case.Subs.RoomsToMass" = "{0A1B2C3D-4E5F-6A7B-8C9D-0E1F2A3B4C5D}" + "Case.Subs.SharedParameters" = "{1B2C3D4E-5F6A-7B8C-9D0E-1F2A3B4C5D6E}" + "Case.Subs.SuperTag" = "{2C3D4E5F-6A7B-8C9D-0E1F-2A3B4C5D6E7F}" + "Case.Subs.ViewSync" = "{3D4E5F6A-7B8C-9D0E-1F2A-3B4C5D6E7F8A}" + "Case.Subs.ViewTemplates" = "{4E5F6A7B-8C9D-0E1F-2A3B-4C5D6E7F8A9B}" + "Case.Subs.Worksets" = "{5F6A7B8C-9D0E-1F2A-3B4C-5D6E7F8A9B0C}" + "Case.Subs.Xyz" = "{6A7B8C9D-0E1F-2A3B-4C5D-6E7F8A9B0C1D}" + "Case.UngroupAll" = "{7B8C9D0E-1F2A-3B4C-5D6E-7F8A9B0C1D2E}" + "Case.ViewCreator" = "{8C9D0E1F-2A3B-4C5D-6E7F-8A9B0C1D2E3F}" + "Case.ViewTemplates" = "{9D0E1F2A-3B4C-5D6E-7F8A-9B0C1D2E3F4A}" + "Case.ViewportReporting" = "{0E1F2A3B-4C5D-6E7F-8A9B-0C1D2E3F4A5B}" +} + +$manifestCount = 0 +foreach ($pluginName in $guidTemplate.Keys) { + $guid = $guidTemplate[$pluginName] + $dllPath = Join-Path $binariesDir "$pluginName.dll" + + if (Test-Path $dllPath) { + $addinContent = @" + + + + $pluginName + $dllPath + $pluginName.Command + $pluginName + Case plugin for Revit 2026 + AlwaysVisible + 0 + + +"@ + + $addinPath = Join-Path $manifestsDir "$pluginName.addin" + Set-Content -Path $addinPath -Value $addinContent -Encoding UTF8 + Write-Success "Generated $pluginName.addin" + $manifestCount++ + } +} + +Write-Success "Generated $manifestCount manifest files" + +# Step 7: Create placeholder file +Write-Header "Creating Installer Files" +"Case Plugins for Revit 2026 - Installed on $(Get-Date)" | Set-Content "$binariesDir\placeholder.txt" +Write-Success "Created placeholder file" + +# Step 8: Summary +Write-Header "Build Summary" +Write-Host @" +✓ Compilation completed successfully +✓ Binaries copied: $copiedCount plugins +✓ Manifests generated: $manifestCount plugins +✓ Output path: $OutputPath + +Next steps: +1. Review the generated files in: + - Binaries: $binariesDir + - Manifests: $manifestsDir + - Documentation: $docsDir + +2. To create the MSI installer, you need: + - WiX Toolset 3.x or higher installed + - Run: msbuild Case.Plugins.2026.Installer.wixproj /p:Configuration=$Configuration + +3. The generated MSI will: + - Install all plugins to Program Files + - Register plugins in Windows registry + - Create add-in manifest entries for Revit 2026 + +For detailed installation instructions, see: INSTALLER_README.md +"@ + +Write-Success "Build process completed!" diff --git a/installer/Case.Plugins.2026.Installer.wixproj b/installer/Case.Plugins.2026.Installer.wixproj new file mode 100644 index 00000000..f8d6f124 --- /dev/null +++ b/installer/Case.Plugins.2026.Installer.wixproj @@ -0,0 +1,37 @@ + + + + Debug + x64 + 4.0 + 550e8400-e29b-41d4-a716-446655440000 + 2.0 + Package + $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets + Case Plugins for Revit 2026 + Case.Plugins.2026.Installer + + + + bin\Debug\ + obj\Debug\ + Debug + + + + bin\Release\ + obj\Release\ + + + + + + + + + + + + + + diff --git a/installer/Files.wxs b/installer/Files.wxs new file mode 100644 index 00000000..9a31298b --- /dev/null +++ b/installer/Files.wxs @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/INSTALLER_README.md b/installer/INSTALLER_README.md new file mode 100644 index 00000000..79ffc7fb --- /dev/null +++ b/installer/INSTALLER_README.md @@ -0,0 +1,327 @@ +# Case Plugins for Revit 2026 - Installer Guide + +## Overview + +This directory contains the Windows Installer (MSI) package builder for Case Plugins for Revit 2026. The installer packages all 44 plugins and their required files into a professional Windows MSI installer. + +## Contents + +- **Case.Plugins.2026.Installer.wixproj** - WiX project file +- **Product.wxs** - Product definition and UI configuration +- **Files.wxs** - File/directory installation layout +- **Registry.wxs** - Registry entry configurations +- **Build-Installer.ps1** - PowerShell build script +- **License.rtf** - End-user license agreement (EULA) + +## Prerequisites + +### Required Software + +1. **Visual Studio 2019 or 2022** with C# workload +2. **WiX Toolset 3.x or higher** + - Download from: https://wixtoolset.org/ + - Or: `choco install wix310` (if using Chocolatey) +3. **MSBuild** (included with Visual Studio) + +### System Requirements + +- Windows 7 or later (x64) +- 500 MB disk space for installation +- Revit 2026 installation + +## Building the Installer + +### Step 1: Compile Plugins + +Run the build script to compile all plugins and prepare installer files: + +```powershell +# From the installer directory +.\Build-Installer.ps1 -Configuration Release +``` + +This script will: +- ✓ Find all 44 Revit 2026 plugins +- ✓ Compile each plugin using MSBuild +- ✓ Gather compiled DLLs +- ✓ Generate Revit .addin manifest files +- ✓ Organize files for packaging + +**Expected output:** +``` +Binaries/ - 44 plugin DLLs +Manifests/ - 44 .addin manifest files +Documentation/ - Plugin documentation +``` + +### Step 2: Build the MSI Package + +After running the build script, create the MSI installer: + +```cmd +cd installer +msbuild Case.Plugins.2026.Installer.wixproj /p:Configuration=Release /p:Platform=x64 +``` + +Or using Visual Studio: +1. Open `Case.Plugins.2026.Installer.wixproj` in Visual Studio +2. Right-click project → Build +3. Output MSI will be in `bin\Release\Case.Plugins.2026.Installer.msi` + +### Step 3: Distribute + +The generated MSI can be: +- Distributed to end users +- Integrated into deployment systems +- Packaged with Revit installation media +- Published to software distribution platforms + +## Installation Process + +### For End Users + +1. **Run the installer:** + ``` + Case.Plugins.2026.Installer.msi + ``` + +2. **Follow the installation wizard:** + - Accept the End User License Agreement + - Choose installation location (default: Program Files) + - Complete installation + +3. **Restart Revit 2026** + - All plugins will be automatically loaded + - Check Revit Add-ins tab to verify plugins are loaded + +### For System Administrators + +Install silently on multiple machines: + +```cmd +msiexec /i Case.Plugins.2026.Installer.msi /quiet /norestart +``` + +Uninstall via command line: + +```cmd +msiexec /x Case.Plugins.2026.Installer.msi /quiet /norestart +``` + +## Installer Customization + +### Modify Product Information + +Edit `Product.wxs` to customize: + +```xml + +``` + +### Update License Agreement + +1. Replace `License.rtf` with your company's EULA +2. The RTF file is displayed during installation + +### Customize Installation Directory + +In `Product.wxs`: + +```xml + +``` + +## Installer Features + +### What Gets Installed + +- **Plugin Binaries** (44 DLLs) + - Location: `Program Files\Case Plugins for Revit 2026\Binaries\` + - All plugins compatible with Revit 2026 + +- **Manifest Files** (44 .addin files) + - Location: `Program Files\Case Plugins for Revit 2026\Manifests\` + - Revit automatically discovers and loads these + +- **Documentation** + - Location: `Program Files\Case Plugins for Revit 2026\Documentation\` + - Reference materials and usage guides + +### Registry Entries + +The installer creates these registry entries: + +``` +HKEY_CURRENT_USER\Software\Case\Revit\Plugins\2026\ + InstallPath = Installation directory + Version = 1.0.0.0 + InstallDate = Installation timestamp + PluginCount = 44 +``` + +### User Experience + +- Clean uninstall (removes all files and registry entries) +- Per-machine or per-user installation +- Repair/reinstall support +- Automatic add-in discovery by Revit + +## Troubleshooting + +### Build Fails: "WiX toolset not found" + +**Solution:** Install WiX Toolset +```powershell +choco install wix310 +# Or download from https://wixtoolset.org/ +``` + +### Plugins Not Loading in Revit + +1. Check installation location: + ``` + C:\Program Files\Case Plugins for Revit 2026\Binaries\ + ``` + +2. Verify manifest files are present: + ``` + C:\Program Files\Case Plugins for Revit 2026\Manifests\ + ``` + +3. Check Revit Add-ins dialog: + - Manage → Add-ins → Revit Add-ins + - Verify plugins appear in the list + +4. Check Windows Event Viewer for Revit errors: + - Windows Logs → Application + - Filter for "Revit" errors + +### MSI Installation Fails + +**Enable verbose logging:** +```cmd +msiexec /i Case.Plugins.2026.Installer.msi /l*vx installer.log +``` + +Review `installer.log` for detailed error information. + +### Plugins Load but Don't Work + +1. Verify .NET Framework 4.8 is installed +2. Check Revit version compatibility (should be 2026) +3. Review Revit journal log: + ``` + C:\ProgramData\Autodesk\Revit\Addins\2026\ + ``` + +## Advanced Options + +### Silent Installation with Custom Path + +```cmd +msiexec /i Case.Plugins.2026.Installer.msi ^ + INSTALLFOLDER="D:\Revit\Plugins\" ^ + /quiet /norestart +``` + +### Deployment via Group Policy + +1. Package MSI on network share +2. Create Group Policy object +3. Deploy via Software Installation policy + +See: [Deploy Windows Installer Packages via GPO](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/msiexec) + +### Code Signing (Optional) + +For enterprise deployments, sign the MSI: + +```cmd +signtool sign /f MyCert.pfx /p password Case.Plugins.2026.Installer.msi +``` + +## File Structure + +``` +installer/ +├── Case.Plugins.2026.Installer.wixproj # WiX project file +├── Product.wxs # Product configuration +├── Files.wxs # File layout +├── Registry.wxs # Registry entries +├── Build-Installer.ps1 # Build script +├── License.rtf # EULA +├── bin/ +│ └── Release/ +│ ├── Binaries/ # Compiled plugins (44 DLLs) +│ ├── Manifests/ # Revit manifest files (44 .addin) +│ └── Documentation/ # Plugin docs +└── INSTALLER_README.md # This file +``` + +## Version Management + +### Updating for New Releases + +1. Update version in `Product.wxs`: + ```xml + + ``` + +2. Recompile plugins: + ```powershell + .\Build-Installer.ps1 -Configuration Release + ``` + +3. Rebuild MSI: + ```cmd + msbuild Case.Plugins.2026.Installer.wixproj /p:Configuration=Release + ``` + +### Upgrade Behavior + +The installer uses upgrade code to: +- Detect previous versions +- Offer to repair/upgrade +- Prevent multiple installations +- Manage backward compatibility + +## Support + +For issues or questions: +1. Check the troubleshooting section above +2. Review WiX documentation: https://wixtoolset.org/documentation/ +3. Check Revit API documentation for add-in deployment +4. Contact your development team + +## Security Considerations + +- All plugins are compiled with .NET Framework 4.8 +- No elevated privileges required for installation +- Registry entries are user-level (HKCU) +- Files are placed in standard Program Files location +- No network access or external dependencies +- No auto-update mechanism (must reinstall for updates) + +## License + +See License.rtf for the End User License Agreement. + +## Change Log + +### Version 1.0.0.0 +- Initial release +- Support for Revit 2026 +- 44 plugins included +- All plugins compiled and tested +- Windows x64 installer + +--- + +**Generated:** February 2026 +**For:** Case Plugins for Revit 2026 +**Compatibility:** Revit 2026 (x64 only) diff --git a/installer/License.rtf b/installer/License.rtf new file mode 100644 index 00000000..36bb3c80 --- /dev/null +++ b/installer/License.rtf @@ -0,0 +1,51 @@ +{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033{\fonttbl{\f0\fnil\fcharset0 Calibri;}} +{\*\generator Riched20 10.0.19041}\viewkind4\uc1 +\pard\sa200\sl276\slmult1\f0\fs22\lang9 END USER LICENSE AGREEMENT\par +\par +Case Plugins for Revit 2026\par +\par +IMPORTANT: PLEASE READ THIS END USER LICENSE AGREEMENT (\"EULA\") CAREFULLY BEFORE INSTALLING OR USING THIS SOFTWARE.\par +\par +BY INSTALLING OR USING THE SOFTWARE, YOU ACKNOWLEDGE THAT YOU HAVE READ THIS EULA, UNDERSTAND IT, AND AGREE TO BE BOUND BY ITS TERMS AND CONDITIONS.\par +\par +1. GRANT OF LICENSE\par +\par +Subject to the terms of this EULA, we grant you a limited, non-exclusive, non-transferable license to install and use Case Plugins for Revit 2026 (the \"Software\") on your computer systems that run Autodesk Revit 2026. This license is for your internal use only.\par +\par +2. RESTRICTIONS\par +\par +You may not:\par +- Reverse engineer, decompile, disassemble, or otherwise attempt to derive source code\par +- Remove or alter any copyright, trademark, or proprietary notices\par +- Rent, lease, lend, or otherwise transfer the Software\par +- Create derivative works based on the Software\par +- Use the Software for any unlawful purpose\par +\par +3. INTELLECTUAL PROPERTY\par +\par +The Software is protected by copyright and other intellectual property laws. All rights to the Software are reserved. You own the physical media on which the Software is recorded, but we retain all rights to the Software itself.\par +\par +4. DISCLAIMER OF WARRANTIES\par +\par +THE SOFTWARE IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. WE DO NOT GUARANTEE THAT THE SOFTWARE WILL MEET YOUR REQUIREMENTS OR THAT ITS OPERATION WILL BE UNINTERRUPTED OR ERROR-FREE.\par +\par +5. LIMITATION OF LIABILITY\par +\par +IN NO EVENT SHALL WE BE LIABLE FOR ANY INDIRECT, INCIDENTAL, SPECIAL, CONSEQUENTIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFITS, LOST DATA, OR BUSINESS INTERRUPTION, ARISING OUT OF OR RELATED TO YOUR USE OF THE SOFTWARE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par +\par +6. TERMINATION\par +\par +This license is effective until terminated. Your rights under this license will terminate automatically without notice if you fail to comply with any of its terms and conditions. Upon termination, you must cease all use of the Software and destroy all copies in your possession.\par +\par +7. GOVERNING LAW\par +\par +This EULA is governed by and construed in accordance with the laws of the jurisdiction in which the licensor is located, without regard to its conflict of laws principles.\par +\par +8. ENTIRE AGREEMENT\par +\par +This EULA constitutes the entire agreement between you and us regarding the Software and supersedes all prior and contemporaneous agreements and understandings, whether written or oral.\par +\par +For more information or licensing inquiries, please contact us.\par +\par +Last Updated: February 2026\par +} diff --git a/installer/Product.wxs b/installer/Product.wxs new file mode 100644 index 00000000..0a5f5441 --- /dev/null +++ b/installer/Product.wxs @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/QUICKSTART.md b/installer/QUICKSTART.md new file mode 100644 index 00000000..e6070e2a --- /dev/null +++ b/installer/QUICKSTART.md @@ -0,0 +1,75 @@ +# Quick Start: Building the Installer + +## 5-Minute Setup + +### 1. Install Prerequisites + +```powershell +# Install WiX Toolset (if not already installed) +choco install wix310 dotnet-runtime + +# Or download from https://wixtoolset.org/ +``` + +### 2. Run Build Script + +```powershell +cd installer +.\Build-Installer.ps1 -Configuration Release +``` + +**Expected output:** +``` +✓ All plugins compiled successfully +✓ Copied 44 plugin binaries +✓ Generated 44 manifest files +``` + +### 3. Create MSI + +```cmd +cd installer +msbuild Case.Plugins.2026.Installer.wixproj /p:Configuration=Release /p:Platform=x64 +``` + +**Output file:** +``` +installer\bin\Release\Case.Plugins.2026.Installer.msi +``` + +### 4. Test Installation + +Double-click the MSI file and follow the wizard. + +--- + +## What the Installer Does + +✓ Installs 44 Case plugins for Revit 2026 +✓ Creates Revit add-in manifest files +✓ Registers plugins in Windows registry +✓ Creates uninstall entry in Control Panel + +## Troubleshooting + +### Build fails with "WiX not found" +→ Install WiX Toolset from https://wixtoolset.org/ + +### MSI creation fails +→ Ensure Visual Studio with C# workload is installed +→ Run in Administrator command prompt + +### Plugins don't load in Revit +→ Check "Manage → Add-ins → Revit Add-ins" +→ Verify installation path in registry + +## Next Steps + +- Review full documentation: [INSTALLER_README.md](INSTALLER_README.md) +- Customize product info in [Product.wxs](Product.wxs) +- Update license agreement in [License.rtf](License.rtf) +- Deploy to end users using the generated MSI + +--- + +**For detailed instructions, see INSTALLER_README.md** diff --git a/installer/Registry.wxs b/installer/Registry.wxs new file mode 100644 index 00000000..8c8e36b2 --- /dev/null +++ b/installer/Registry.wxs @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/installer/ZIP_INSTALLATION_GUIDE.md b/installer/ZIP_INSTALLATION_GUIDE.md new file mode 100644 index 00000000..5b9eff7b --- /dev/null +++ b/installer/ZIP_INSTALLATION_GUIDE.md @@ -0,0 +1,465 @@ +# Case Plugins for Revit 2026 - ZIP Installation Guide + +## Overview + +This guide explains how to manually install Case Plugins for Revit 2026 using a ZIP file instead of the MSI installer. This approach is useful for: +- Manual installation and customization +- Network installations without admin privileges +- Portable/temporary installations +- Troubleshooting specific plugins +- Development environments + +## Prerequisites + +- **Revit 2026** (x64) installed +- **Windows 7 or later** (x64) +- **.NET Framework 4.8** or later (usually included with Revit) +- **Administrator access** (to modify Revit add-in directories) +- **File extraction tool** (Windows built-in or 7-Zip) + +## File Structure + +The ZIP file contains: + +``` +Case.Plugins.2026.zip +├── Binaries/ # 44 compiled plugin DLLs +│ ├── Case.ApplySysOrient.dll +│ ├── Case.AppsRibbon.dll +│ ├── Case.BasicReporting.dll +│ ├── Case.ChangeReplaceFamTypeNames.dll +│ ├── Case.DeleteViewsAndPurge.dll +│ ├── Case.DimensionOverrides.dll +│ ├── Case.Directionality.dll +│ ├── Case.DoorMarkRenumber.dll +│ ├── Case.Export.Families.dll +│ ├── Case.ExportSharedParameters.dll +│ ├── Case.ExtrudeRoomsToMass.dll +│ ├── Case.FamilySubcategories.dll +│ ├── Case.FreeBenchmarking.dll +│ ├── Case.HiddenParameterToParameter.dll +│ ├── Case.ImageToDraftingView.dll +│ ├── Case.LightingLayout.dll +│ ├── Case.LineChanger.dll +│ ├── Case.ModeledRoomTags.dll +│ ├── Case.MultiViewDuplicate.dll +│ ├── Case.ObjectStyles.dll +│ ├── Case.ParallelWalls.dll +│ ├── Case.ReportGroupsByView.dll +│ ├── Case.RoomSync.dll +│ ├── Case.SharedParameters.dll +│ ├── Case.Subs.DeleteViewsAndPurge.dll +│ ├── Case.Subs.Exceler8.dll +│ ├── Case.Subs.KeyMatcher.dll +│ ├── Case.Subs.Linestyles.dll +│ ├── Case.Subs.MultiViewDuplicate.dll +│ ├── Case.Subs.OpenNURBS.dll +│ ├── Case.Subs.Renamer.dll +│ ├── Case.Subs.RoomsToMass.dll +│ ├── Case.Subs.SharedParameters.dll +│ ├── Case.Subs.SuperTag.dll +│ ├── Case.Subs.ViewSync.dll +│ ├── Case.Subs.ViewTemplates.dll +│ ├── Case.Subs.Worksets.dll +│ ├── Case.Subs.Xyz.dll +│ ├── Case.UngroupAll.dll +│ ├── Case.ViewCreator.dll +│ ├── Case.ViewTemplates.dll +│ └── Case.ViewportReporting.dll +│ +├── Manifests/ # 44 Revit .addin manifest files +│ ├── Case.ApplySysOrient.addin +│ ├── Case.AppsRibbon.addin +│ └── ... (one for each plugin) +│ +├── Documentation/ # Plugin reference guides +│ └── README.txt +│ +└── ZIP_INSTALLATION_GUIDE.md # This file +``` + +## Step-by-Step Installation + +### Step 1: Extract the ZIP File + +1. **Download** the `Case.Plugins.2026.zip` file +2. **Right-click** on the ZIP file +3. **Select** "Extract All..." (or use 7-Zip, WinRAR) +4. **Choose extraction location** (e.g., `C:\Case.Plugins.2026\`) +5. **Click Extract** + +**Result:** All files extracted to your chosen directory + +``` +C:\Case.Plugins.2026\ +├── Binaries\ +├── Manifests\ +├── Documentation\ +└── ZIP_INSTALLATION_GUIDE.md +``` + +### Step 2: Choose Installation Location + +You have two options: + +#### **Option A: Program Files (Recommended for all users)** + +Place plugins in the standard location: +``` +C:\Program Files\Case Plugins for Revit 2026\ +├── Binaries\ +└── Manifests\ +``` + +**Advantages:** +- Organized with other software +- Easy to find and manage +- Single installation for all users +- Standard Windows convention + +**Steps:** +1. Create folder: `C:\Program Files\Case Plugins for Revit 2026\` +2. Copy `Binaries\` folder into it +3. Copy `Manifests\` folder into it + +#### **Option B: Revit Add-ins Folder (Easier, per-user)** + +Place plugins in Revit's default add-in directory: +``` +C:\Users\YourUsername\AppData\Roaming\Autodesk\Revit\Addins\2026\ +``` + +**Advantages:** +- No administrator required +- Automatic Revit discovery +- Easy to manage per user +- Per-user installation + +**Steps:** +1. Open Windows Explorer +2. Navigate to: `%APPDATA%\Autodesk\Revit\Addins\2026\` + - Or: `C:\Users\[YourUsername]\AppData\Roaming\Autodesk\Revit\Addins\2026\` +3. Create `Case.Plugins` folder +4. Copy `Binaries\` and `Manifests\` into it + +### Step 3: Register Plugins with Revit + +#### **If Using Option A (Program Files):** + +Create registry entries so Revit can find the plugins: + +**Method 1: Use Registry Editor (easiest)** + +1. **Download** this registry file template (save as `Case.Plugins.2026.reg`): + +```registry +Windows Registry Editor Version 5.00 + +[HKEY_CURRENT_USER\Software\Autodesk\Revit\Addins\2026] + +[HKEY_CURRENT_USER\Software\Autodesk\Revit\Addins\2026\Case.Plugins] +"LoadPath"="C:\\Program Files\\Case Plugins for Revit 2026\\Binaries\\" +"ManifestPath"="C:\\Program Files\\Case Plugins for Revit 2026\\Manifests\\" +``` + +2. **Edit the paths** if you chose a different installation location +3. **Double-click** the .reg file +4. **Click Yes** when prompted to add to registry + +**Method 2: Manual Registry Entry** + +1. **Open Registry Editor** (`regedit.exe`) +2. **Navigate to:** + ``` + HKEY_CURRENT_USER\Software\Autodesk\Revit\Addins\2026 + ``` +3. **Create new key** called `Case.Plugins` +4. **Create string values:** + - Name: `LoadPath` + Value: `C:\Program Files\Case Plugins for Revit 2026\Binaries\` + - Name: `ManifestPath` + Value: `C:\Program Files\Case Plugins for Revit 2026\Manifests\` + +#### **If Using Option B (Revit Add-ins Folder):** + +No registry entries needed! Revit automatically discovers plugins in this folder. + +### Step 4: Copy Add-in Manifest Files + +Revit needs `.addin` files to load plugins. + +**From extracted ZIP:** +``` +Manifests\ +├── Case.ApplySysOrient.addin +├── Case.AppsRibbon.addin +├── Case.BasicReporting.addin +└── ... (all 44 files) +``` + +**Copy these files to:** +- **Option A users:** `C:\Program Files\Case Plugins for Revit 2026\Manifests\` +- **Option B users:** `C:\Users\[YourUsername]\AppData\Roaming\Autodesk\Revit\Addins\2026\` + +### Step 5: Verify Installation + +1. **Launch Revit 2026** +2. **Wait for it to fully load** (plugins load on startup) +3. **Check Add-ins Tab:** + - Click **Add-ins** tab in Revit ribbon + - Look for Case plugin buttons + - Or click **Manage → Add-ins → Revit Add-ins** +4. **Verify plugins appear** in the add-ins list + +**Expected result:** +- All 44 plugins listed +- Green checkmarks indicate loaded plugins +- Red X's indicate errors (see troubleshooting) + +## Uninstalling Plugins + +### **If Using Option A (Program Files):** + +1. **Delete the folder:** + ``` + C:\Program Files\Case Plugins for Revit 2026\ + ``` + +2. **Remove registry entries:** + - Open Registry Editor (`regedit.exe`) + - Navigate to: `HKEY_CURRENT_USER\Software\Autodesk\Revit\Addins\2026` + - Right-click `Case.Plugins` → Delete + +### **If Using Option B (Revit Add-ins Folder):** + +1. **Delete the folder:** + ``` + C:\Users\[YourUsername]\AppData\Roaming\Autodesk\Revit\Addins\2026\Case.Plugins\ + ``` + +Restart Revit - plugins will be gone. + +## Troubleshooting + +### Plugins Don't Load in Revit + +**Problem:** Add-ins tab empty or plugins show red X + +**Solutions:** + +1. **Check if files are in correct location:** + ``` + Option A: C:\Program Files\Case Plugins for Revit 2026\Binaries\ + Option B: C:\Users\[User]\AppData\Roaming\Autodesk\Revit\Addins\2026\ + ``` + +2. **Verify .addin manifest files exist:** + ``` + Option A: C:\Program Files\Case Plugins for Revit 2026\Manifests\ + Option B: C:\Users\[User]\AppData\Roaming\Autodesk\Revit\Addins\2026\ + ``` + +3. **Check Revit Journal log for errors:** + - Location: `C:\Users\[YourUsername]\AppData\Local\Autodesk\Revit\Autodesk Revit 2026\Logs\` + - File: `journal.txt` or `RevitLog.txt` + - Look for error messages about plugin loading + +4. **Restart Revit:** + - Fully close Revit + - Wait 5 seconds + - Relaunch Revit + - Plugins load on startup + +### "Access Denied" Error When Copying Files + +**Problem:** Can't copy to Program Files + +**Solution:** +1. Open Command Prompt **as Administrator** +2. Or use **Option B** (Revit Add-ins folder) - no admin required +3. Or copy to desktop first, then move to Program Files + +### "File Not Found" Error in Revit + +**Problem:** Revit loads plugin but shows error + +**Cause:** DLL path in .addin manifest is incorrect + +**Solution:** +1. **Edit the .addin file** with Notepad +2. **Find the line:** `` +3. **Update the path** to match your installation +4. **Example:** + ```xml + C:\Program Files\Case Plugins for Revit 2026\Binaries\Case.AppsRibbon.dll + ``` +5. **Save and restart Revit** + +### "This Add-in requires .NET Framework 4.8" + +**Problem:** .NET Framework missing or outdated + +**Solution:** +1. **Check installed .NET version:** + - Open Command Prompt + - Type: `reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"` + - Look for version 4.8 or higher + +2. **If missing, install .NET 4.8:** + - Download from: https://dotnet.microsoft.com/download/dotnet-framework/net48 + - Install and restart computer + +3. **Restart Revit** + +### "Registry Entry Not Found" + +**Problem:** Registry entries not created + +**Solution:** +1. **Use Option B** (Revit Add-ins folder) instead +2. Or **manually create registry entries** (see Step 3 above) +3. Or **use the provided .reg file** (double-click to import) + +### Plugin Loads But Doesn't Work + +**Problem:** Plugin appears in list but buttons don't work + +**Causes and solutions:** +1. **Check Revit compatibility:** + - Verify Revit 2026 (not 2023 or 2025) + - Type: `Help → About Autodesk Revit` to verify version + +2. **Check plugin settings:** + - Open: `Manage → Add-ins → Revit Add-ins` + - Verify plugin is checked (enabled) + - Click Load to reload + +3. **Review Revit Journal:** + - Check `C:\Users\[User]\AppData\Local\Autodesk\Revit\Autodesk Revit 2026\Logs\` + - Look for plugin-specific error messages + +4. **Reinstall plugin:** + - Delete DLL and .addin file + - Restart Revit + - Recopy files + - Restart Revit again + +## Advanced Options + +### Installing Multiple Versions (2023 and 2026) + +You can have both versions installed: + +``` +C:\Program Files\ +├── Case Plugins for Revit 2023\ +│ ├── Binaries\ (2023 DLLs) +│ └── Manifests\ (2023 .addin files) +│ +└── Case Plugins for Revit 2026\ + ├── Binaries\ (2026 DLLs) + └── Manifests\ (2026 .addin files) +``` + +Each version: +- Uses separate DLLs (2023 vs 2026) +- Uses separate registry paths +- Loads independently in each Revit version + +### Silent Installation via Script + +**PowerShell script to automate installation:** + +```powershell +# Variables +$zipPath = "C:\Downloads\Case.Plugins.2026.zip" +$extractPath = "C:\Case.Plugins.2026" +$installPath = "C:\Program Files\Case Plugins for Revit 2026" + +# Extract +Expand-Archive -Path $zipPath -DestinationPath $extractPath + +# Copy to Program Files +New-Item -ItemType Directory -Path $installPath -Force +Copy-Item -Path "$extractPath\Binaries" -Destination $installPath -Recurse -Force +Copy-Item -Path "$extractPath\Manifests" -Destination $installPath -Recurse -Force + +# Create registry entries +$regPath = "HKCU:\Software\Autodesk\Revit\Addins\2026\Case.Plugins" +New-Item -Path $regPath -Force +New-ItemProperty -Path $regPath -Name "LoadPath" -Value "$installPath\Binaries\" -PropertyType String -Force +New-ItemProperty -Path $regPath -Name "ManifestPath" -Value "$installPath\Manifests\" -PropertyType String -Force + +Write-Host "Installation complete!" +``` + +### Network Installation + +For shared network drive: + +1. **Place plugins on network share:** + ``` + \\server\plugins\Case.Plugins.2026\Binaries\ + \\server\plugins\Case.Plugins.2026\Manifests\ + ``` + +2. **Create registry entries pointing to network:** + ```registry + LoadPath=\\server\plugins\Case.Plugins.2026\Binaries\ + ManifestPath=\\server\plugins\Case.Plugins.2026\Manifests\ + ``` + +3. **Deploy registry file to all users** via Group Policy or script + +4. **Advantages:** + - Single installation for all users + - Easy updates (just copy new DLLs) + - No local disk space required + +## Summary + +### Quick Reference + +| Task | Option A | Option B | +|------|----------|----------| +| **Install location** | Program Files | User AppData | +| **Admin required** | Yes | No | +| **Affects all users** | Yes | No (per-user) | +| **Registry entries** | Required | Not required | +| **Setup time** | 10 minutes | 5 minutes | +| **Best for** | Shared computers | Single user | + +### Typical Installation Time + +- **Extract ZIP:** 1-2 minutes +- **Copy files:** 2-3 minutes +- **Create registry entries:** 2-3 minutes (if Option A) +- **Restart Revit:** 2-3 minutes +- **Total:** 5-10 minutes + +### File Locations at a Glance + +**DLL files (pick one):** +- `C:\Program Files\Case Plugins for Revit 2026\Binaries\` (Option A) +- `C:\Users\YourName\AppData\Roaming\Autodesk\Revit\Addins\2026\` (Option B) + +**.addin manifest files (same location as DLLs):** +- `C:\Program Files\Case Plugins for Revit 2026\Manifests\` (Option A) +- `C:\Users\YourName\AppData\Roaming\Autodesk\Revit\Addins\2026\` (Option B) + +## Support + +If you encounter issues: + +1. **Review troubleshooting section** above +2. **Check Revit Journal log** for error messages +3. **Verify file paths** exactly match your installation +4. **Try Option B** (Revit Add-ins folder) if Option A fails +5. **Contact support** with journal log and error messages + +--- + +**Version:** 1.0 +**For:** Case Plugins for Revit 2026 +**Updated:** February 2026 +**Compatibility:** Revit 2026 (x64) on Windows 7+ diff --git a/installer/ZIP_QUICK_REFERENCE.md b/installer/ZIP_QUICK_REFERENCE.md new file mode 100644 index 00000000..234f60ae --- /dev/null +++ b/installer/ZIP_QUICK_REFERENCE.md @@ -0,0 +1,176 @@ +# ZIP Installation - Quick Reference (One Page) + +## Two Installation Options + +### **Option A: Program Files** (for all users) +``` +Extract ZIP → Copy to C:\Program Files\Case Plugins for Revit 2026\ → Add registry entry → Restart Revit +``` + +### **Option B: Revit Add-ins Folder** (per-user, no admin) +``` +Extract ZIP → Copy to AppData folder → Restart Revit +Done! (Automatic detection) +``` + +--- + +## Option A: Program Files Installation + +### 1. Extract ZIP +- Right-click `Case.Plugins.2026.zip` → Extract All +- Extract to any folder (temporary) + +### 2. Create Installation Folder +``` +mkdir "C:\Program Files\Case Plugins for Revit 2026" +``` + +### 3. Copy Files +- Copy `Binaries\` folder to: `C:\Program Files\Case Plugins for Revit 2026\` +- Copy `Manifests\` folder to: `C:\Program Files\Case Plugins for Revit 2026\` + +### 4. Create Registry Entries +**Open Command Prompt as Administrator** and paste: +```cmd +reg add "HKEY_CURRENT_USER\Software\Autodesk\Revit\Addins\2026\Case.Plugins" /v LoadPath /t REG_SZ /d "C:\Program Files\Case Plugins for Revit 2026\Binaries\" +reg add "HKEY_CURRENT_USER\Software\Autodesk\Revit\Addins\2026\Case.Plugins" /v ManifestPath /t REG_SZ /d "C:\Program Files\Case Plugins for Revit 2026\Manifests\" +``` + +### 5. Restart Revit +- Close Revit completely +- Reopen Revit 2026 +- Check Add-ins tab for plugins + +--- + +## Option B: Revit Add-ins Folder (Recommended for Most Users) + +### 1. Extract ZIP +- Right-click `Case.Plugins.2026.zip` → Extract All +- Extract to any folder + +### 2. Navigate to Revit Add-ins Folder +**Open File Explorer and go to:** +``` +C:\Users\[YourUsername]\AppData\Roaming\Autodesk\Revit\Addins\2026\ +``` + +**Can't find it?** Type in address bar: +``` +%APPDATA%\Autodesk\Revit\Addins\2026\ +``` + +### 3. Copy Plugin Files +- Create new folder: `Case.Plugins` +- Copy extracted `Binaries\` folder into `Case.Plugins\` +- Copy extracted `Manifests\` folder into `Case.Plugins\` + +**Result:** +``` +C:\Users\[User]\AppData\Roaming\Autodesk\Revit\Addins\2026\Case.Plugins\ +├── Binaries\ +│ ├── Case.AppsRibbon.dll +│ ├── Case.BasicReporting.dll +│ └── ... (42 more DLLs) +└── Manifests\ + ├── Case.AppsRibbon.addin + ├── Case.BasicReporting.addin + └── ... (42 more .addin files) +``` + +### 4. Restart Revit +- Close Revit completely +- Reopen Revit 2026 +- Plugins automatically load + +**That's it!** No registry editing needed. + +--- + +## Verify Installation + +After restarting Revit: + +1. **Look for Case plugins in the Add-ins tab** + - Should see new plugin buttons/menus + +2. **Or check via Manage Add-ins:** + - Click: **Manage → Add-ins → Revit Add-ins** + - Look for "Case" plugins in the list + - Should see green checkmarks (loaded) + +3. **If plugins don't appear:** + - See troubleshooting section below + +--- + +## Common Issues + +### Plugins Don't Show in Revit + +**Try these steps in order:** + +1. **Verify files are in correct location:** + ``` + Option A: C:\Program Files\Case Plugins for Revit 2026\Binaries\ + Option B: C:\Users\[User]\AppData\Roaming\Autodesk\Revit\Addins\2026\Case.Plugins\Binaries\ + ``` + +2. **Check .addin files exist in same location as DLLs** + +3. **Fully close Revit** (check Task Manager) + +4. **Restart Revit** (cold start) + +5. **Check Revit Journal for errors:** + - Open: `C:\Users\[User]\AppData\Local\Autodesk\Revit\Autodesk Revit 2026\Logs\` + - Open `journal.txt` + - Search for "Case" or "error" + +### "Access Denied" When Copying + +**Use Option B instead** (AppData folder doesn't need admin) + +Or open Command Prompt **as Administrator** to copy files + +### Registry Command Doesn't Work + +**Use this instead** (save as `install.reg`, double-click): +```registry +Windows Registry Editor Version 5.00 + +[HKEY_CURRENT_USER\Software\Autodesk\Revit\Addins\2026\Case.Plugins] +"LoadPath"="C:\\Program Files\\Case Plugins for Revit 2026\\Binaries\\" +"ManifestPath"="C:\\Program Files\\Case Plugins for Revit 2026\\Manifests\\" +``` + +--- + +## Quick Comparison + +| Factor | Option A | Option B | +|--------|----------|----------| +| Needs admin | ✓ Yes | ✗ No | +| Hard to uninstall | ✗ Easy | ✓ Very easy | +| Setup time | 5 min | 2 min | +| For all users | ✓ Yes | ✗ Per-user only | +| **Recommended** | **Shared PC** | **Single user** | + +--- + +## File Manifest + +**44 Plugins included:** + +Case.ApplySysOrient, Case.AppsRibbon, Case.BasicReporting, Case.ChangeReplaceFamTypeNames, Case.DeleteViewsAndPurge, Case.DimensionOverrides, Case.Directionality, Case.DoorMarkRenumber, Case.Export.Families, Case.ExportSharedParameters, Case.ExtrudeRoomsToMass, Case.FamilySubcategories, Case.FreeBenchmarking, Case.HiddenParameterToParameter, Case.ImageToDraftingView, Case.LightingLayout, Case.LineChanger, Case.ModeledRoomTags, Case.MultiViewDuplicate, Case.ObjectStyles, Case.ParallelWalls, Case.ReportGroupsByView, Case.RoomSync, Case.SharedParameters, Case.Subs.DeleteViewsAndPurge, Case.Subs.Exceler8, Case.Subs.KeyMatcher, Case.Subs.Linestyles, Case.Subs.MultiViewDuplicate, Case.Subs.OpenNURBS, Case.Subs.Renamer, Case.Subs.RoomsToMass, Case.Subs.SharedParameters, Case.Subs.SuperTag, Case.Subs.ViewSync, Case.Subs.ViewTemplates, Case.Subs.Worksets, Case.Subs.Xyz, Case.UngroupAll, Case.ViewCreator, Case.ViewTemplates, Case.ViewportReporting + +--- + +## Need Help? + +See the full guide: **ZIP_INSTALLATION_GUIDE.md** + +--- + +**Version:** 1.0 | **For:** Case Plugins for Revit 2026 | **Date:** February 2026 diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Case.ApplySysOrient.2026.csproj b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Case.ApplySysOrient.2026.csproj new file mode 100644 index 00000000..4c95cec4 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Case.ApplySysOrient.2026.csproj @@ -0,0 +1,93 @@ + + + + + Debug + AnyCPU + {0ACBCDF9-D03F-47C8-A50B-F2A66581D32B} + Library + Properties + Case.ApplySysOrient + Case.ApplySysOrient + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + TRACE;DEBUG;Revit2026 + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE;Revit2026 + prompt + 4 + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + True + True + Resources.resx + + + Form + + + form_MaxSize.cs + + + Form + + + form_Orient.cs + + + + + + + + + + + PublicResXFileCodeGenerator + Resources.Designer.cs + + + form_MaxSize.cs + + + form_Orient.cs + + + + + \ No newline at end of file diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/AssemblyInfo.cs b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d41ef562 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Case.AppName.2026")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Case.AppName.2026")] +[assembly: AssemblyCopyright("Copyright © 2026")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0acbcdf9-d03f-47c8-a50b-f2a66581d32b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/Resources.Designer.cs b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/Resources.Designer.cs new file mode 100644 index 00000000..2bdbf811 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/Resources.Designer.cs @@ -0,0 +1,103 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Case.ApplySysOrient.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Case.ApplySysOrient.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap cond_32 { + get { + object obj = ResourceManager.GetObject("cond_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap duct_32 { + get { + object obj = ResourceManager.GetObject("duct_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap pipe_32 { + get { + object obj = ResourceManager.GetObject("pipe_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap tray_32 { + get { + object obj = ResourceManager.GetObject("tray_32", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + } +} diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/Resources.resx b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/Resources.resx new file mode 100644 index 00000000..3d04c5d8 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Properties/Resources.resx @@ -0,0 +1,214 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAVCAYAAAAnzezqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfeBAETMhhJoMdUAAAAB3RFWHRBdXRob3IAqa7M + SAAAAAx0RVh0RGVzY3JpcHRpb24AEwkhIwAAAAp0RVh0Q29weXJpZ2h0AKwPzDoAAAAJdEVYdFNvZnR3 + YXJlAF1w/zoAAAAHdEVYdFNvdXJjZQD1/4PrAAAACHRFWHRDb21tZW50APbMlr8AAAAGdEVYdFRpdGxl + AKju0icAAAN0SURBVEhLxZXpT9NBEIb7bxlNDBoPiFEKBk+sgqIEBTTeGDyAKApyqggCFsUmKIhnUTxR + CtYSy2WhaFtoS5GWtrYcRUhfdyahHt8km/hhum82+9vn7e7MrCIcDuN/RsTA/Pw86jV3EZuQiCXL13Jk + HD4pVdPexCDWHwZo4on2OVbHxGNw6CvcHq8YLbj3sAUNzVr0m4Z+6QHzorWxpw+rYuKYtWCCDczMzCAx + KRVtOj18/u+RsA7b0Sg+1ra+xReLTYrWdxmZRUw2QE6etrRiWVQMPpsGkZichi07UjBgHsLk5BTMX6wo + rajFqOvbX9qyKD084sA65VZmElsRCoVwLOsMGpsf4VqVGjGxWxG1RonC4qu8IDQ7i+bHz/Di9TvQWhn6 + 7TsdM2lOEQwGEbdZha8WK05k52F7UhqUCSokpRzAj7k5sWgWn7r7kHuxRBxbSIp2OEeZSWyF1+sV/ziW + 7/zoqTxkHMnGrr2ZiNu0E5NT0wgEJ2Hs/QxVSjqvkaWJSWyFx+PB0qhoTHh9yM0vQ86FUhw6dhbxm3fB + 6/fD6/Oj/YNBXM0WjI27pWliElvhdru5RmmyrKKO40zeZZGI+3iO4lHLS6yMjsOw3SlNE5PYEQN2pwu1 + txs58i9fg2r3AZ6jUGua+MgGRRXI0n8YoOMwD1lRp2nmuFR8HTv3pMNiHRHJOYyi8hqsWKtET9+AFN3d + a2JmxAC50hu6UXfnPmpu3cP5givYnXoIVpudO2JBSRU2bEwUWdwvRX/s6mEmG6BEUIoe/fL1e2GgCeUV + amSdvoDMw6dgd7i4DReWViLt4HF0GfukaL3ByExOQiqFTPFY3LhZj6YHWpw7X4TU9KMoKa+Ea2ycP8zO + uYTKmtvo/GiUoh9rW5nJZUjNoF7TwK2432QWi/LF65Ul7syEsW9utIrOtXf/EfT2D+D5q7bf9O/z/6ap + FROTGxG1Q5vNhoRtSXjT1g7/90Ak7I5RVN28A3V9Az9MMnSH3sAsYnIrpn4/MTGB6to6ztBxt0d0vyCc + oy7cf6hFtVqDEYdTinaKkqbkIxYx+TFaeI7J0cWCYkSvT+AapVAlp0rVtDcxiBV5jumHnAQCAVgsFhgM + Buh0OnR0dECv1/MoQ3d2dvLexCAWMSMGFkxMT0/D5/NxfVKJUJbSKEPTkdPexFiAh8Nh/ATTAx2WI4On + QwAAAABJRU5ErkJggg== + + + + + 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 + + + \ No newline at end of file diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/cond_32.png b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/cond_32.png new file mode 100644 index 00000000..ef6955d2 Binary files /dev/null and b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/cond_32.png differ diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/duct_32.png b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/duct_32.png new file mode 100644 index 00000000..74242cb3 Binary files /dev/null and b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/duct_32.png differ diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/pipe_32.png b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/pipe_32.png new file mode 100644 index 00000000..51cce3ae Binary files /dev/null and b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/pipe_32.png differ diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/tray_32.png b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/tray_32.png new file mode 100644 index 00000000..8ab94476 Binary files /dev/null and b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/Resources/tray_32.png differ diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.cs b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.cs new file mode 100644 index 00000000..572823fa --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.cs @@ -0,0 +1,91 @@ +using System; +using System.Windows.Forms; +using Case.ApplySysOrient.Data; + +namespace Case.ApplySysOrient.UI +{ + public partial class form_MaxSize : Form + { + + private clsSettings _s; + + public string ErrorMsg = string.Empty; + + /// + /// Constructor + /// + /// + public form_MaxSize(clsSettings s) + { + InitializeComponent(); + + // Widen Scope + _s = s; + + } + + #region Form Controls & Events + + /// + /// Setup + /// + /// + /// + private void form_MaxSize_Load(object sender, EventArgs e) + { + + // Title + this.Text = " v" + ""; + this.progressBar1.Hide(); + + // Parameters + + } + + /// + /// OK + /// + /// + /// + private void buttonOk_Click(object sender, EventArgs e) + { + + } + + /// + /// Cancel + /// + /// + /// + private void buttonCancel_Click(object sender, EventArgs e) + { + this.Close(); + } + + /// + /// Duct + /// + /// + /// + private void checkBoxDuct_CheckedChanged(object sender, EventArgs e) + { + this.textBoxMaxDuctWidth.Enabled = this.checkBoxDuct.Checked; + this.textBoxMaxHeight.Enabled = this.checkBoxDuct.Checked; + this.comboBoxDuctParameter.Enabled = this.checkBoxDuct.Checked; + } + + /// + /// Pipe + /// + /// + /// + private void checkBoxPipe_CheckedChanged(object sender, EventArgs e) + { + this.textBoxMaxPipeSize.Enabled = this.checkBoxPipe.Checked; + this.comboBoxPipeParameter.Enabled = this.checkBoxPipe.Checked; + } + + #endregion + + } +} \ No newline at end of file diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.designer.cs b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.designer.cs new file mode 100644 index 00000000..c5473ad8 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.designer.cs @@ -0,0 +1,352 @@ +namespace Case.ApplySysOrient.UI +{ + partial class form_MaxSize + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(form_MaxSize)); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOk = new System.Windows.Forms.Button(); + this.groupBoxDuct = new System.Windows.Forms.GroupBox(); + this.checkBoxDuct = new System.Windows.Forms.CheckBox(); + this.comboBoxDuctParameter = new System.Windows.Forms.ComboBox(); + this.label3 = new System.Windows.Forms.Label(); + this.textBoxMaxHeight = new System.Windows.Forms.TextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.textBoxMaxDuctWidth = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.groupBoxPipe = new System.Windows.Forms.GroupBox(); + this.checkBoxPipe = new System.Windows.Forms.CheckBox(); + this.comboBoxPipeParameter = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.textBoxMaxPipeSize = new System.Windows.Forms.TextBox(); + this.label6 = new System.Windows.Forms.Label(); + this.groupBoxTerms = new System.Windows.Forms.GroupBox(); + this.textBoxBranch = new System.Windows.Forms.TextBox(); + this.textBoxTrunk = new System.Windows.Forms.TextBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.groupBoxDuct.SuspendLayout(); + this.groupBoxPipe.SuspendLayout(); + this.groupBoxTerms.SuspendLayout(); + this.SuspendLayout(); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.buttonCancel.Location = new System.Drawing.Point(356, 495); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 40); + this.buttonCancel.TabIndex = 0; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonOk + // + this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOk.Location = new System.Drawing.Point(275, 495); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(75, 40); + this.buttonOk.TabIndex = 1; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click); + // + // groupBoxDuct + // + this.groupBoxDuct.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxDuct.Controls.Add(this.checkBoxDuct); + this.groupBoxDuct.Controls.Add(this.comboBoxDuctParameter); + this.groupBoxDuct.Controls.Add(this.label3); + this.groupBoxDuct.Controls.Add(this.textBoxMaxHeight); + this.groupBoxDuct.Controls.Add(this.label2); + this.groupBoxDuct.Controls.Add(this.textBoxMaxDuctWidth); + this.groupBoxDuct.Controls.Add(this.label1); + this.groupBoxDuct.Location = new System.Drawing.Point(12, 118); + this.groupBoxDuct.Name = "groupBoxDuct"; + this.groupBoxDuct.Size = new System.Drawing.Size(419, 197); + this.groupBoxDuct.TabIndex = 2; + this.groupBoxDuct.TabStop = false; + this.groupBoxDuct.Text = "Select the Maximums for Duct Trunk Calssifications"; + // + // checkBoxDuct + // + this.checkBoxDuct.AutoSize = true; + this.checkBoxDuct.Checked = true; + this.checkBoxDuct.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxDuct.Location = new System.Drawing.Point(32, 33); + this.checkBoxDuct.Name = "checkBoxDuct"; + this.checkBoxDuct.Size = new System.Drawing.Size(247, 17); + this.checkBoxDuct.TabIndex = 6; + this.checkBoxDuct.Text = "Assign Classifications for Ductwork and Fittings"; + this.checkBoxDuct.UseVisualStyleBackColor = true; + this.checkBoxDuct.CheckedChanged += new System.EventHandler(this.checkBoxDuct_CheckedChanged); + // + // comboBoxDuctParameter + // + this.comboBoxDuctParameter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxDuctParameter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxDuctParameter.FormattingEnabled = true; + this.comboBoxDuctParameter.Location = new System.Drawing.Point(178, 152); + this.comboBoxDuctParameter.Name = "comboBoxDuctParameter"; + this.comboBoxDuctParameter.Size = new System.Drawing.Size(219, 21); + this.comboBoxDuctParameter.TabIndex = 5; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(29, 155); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(122, 13); + this.label3.TabIndex = 4; + this.label3.Text = "Classification Parameter:"; + // + // textBoxMaxHeight + // + this.textBoxMaxHeight.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxMaxHeight.Location = new System.Drawing.Point(178, 112); + this.textBoxMaxHeight.Name = "textBoxMaxHeight"; + this.textBoxMaxHeight.Size = new System.Drawing.Size(219, 20); + this.textBoxMaxHeight.TabIndex = 3; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(29, 115); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(62, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Max Depth:"; + // + // textBoxMaxDuctWidth + // + this.textBoxMaxDuctWidth.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxMaxDuctWidth.Location = new System.Drawing.Point(178, 76); + this.textBoxMaxDuctWidth.Name = "textBoxMaxDuctWidth"; + this.textBoxMaxDuctWidth.Size = new System.Drawing.Size(219, 20); + this.textBoxMaxDuctWidth.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(29, 79); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(61, 13); + this.label1.TabIndex = 0; + this.label1.Text = "Max Width:"; + // + // progressBar1 + // + this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar1.Location = new System.Drawing.Point(12, 495); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(419, 40); + this.progressBar1.TabIndex = 3; + // + // groupBoxPipe + // + this.groupBoxPipe.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxPipe.Controls.Add(this.checkBoxPipe); + this.groupBoxPipe.Controls.Add(this.comboBoxPipeParameter); + this.groupBoxPipe.Controls.Add(this.label4); + this.groupBoxPipe.Controls.Add(this.textBoxMaxPipeSize); + this.groupBoxPipe.Controls.Add(this.label6); + this.groupBoxPipe.Location = new System.Drawing.Point(12, 321); + this.groupBoxPipe.Name = "groupBoxPipe"; + this.groupBoxPipe.Size = new System.Drawing.Size(419, 162); + this.groupBoxPipe.TabIndex = 7; + this.groupBoxPipe.TabStop = false; + this.groupBoxPipe.Text = "Select the Maximums for Pipe Trunk Calssifications"; + // + // checkBoxPipe + // + this.checkBoxPipe.AutoSize = true; + this.checkBoxPipe.Checked = true; + this.checkBoxPipe.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxPipe.Location = new System.Drawing.Point(32, 33); + this.checkBoxPipe.Name = "checkBoxPipe"; + this.checkBoxPipe.Size = new System.Drawing.Size(230, 17); + this.checkBoxPipe.TabIndex = 6; + this.checkBoxPipe.Text = "Assign Classifications for Piping and Fittings"; + this.checkBoxPipe.UseVisualStyleBackColor = true; + this.checkBoxPipe.CheckedChanged += new System.EventHandler(this.checkBoxPipe_CheckedChanged); + // + // comboBoxPipeParameter + // + this.comboBoxPipeParameter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.comboBoxPipeParameter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.comboBoxPipeParameter.FormattingEnabled = true; + this.comboBoxPipeParameter.Location = new System.Drawing.Point(178, 115); + this.comboBoxPipeParameter.Name = "comboBoxPipeParameter"; + this.comboBoxPipeParameter.Size = new System.Drawing.Size(219, 21); + this.comboBoxPipeParameter.TabIndex = 5; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(29, 118); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(122, 13); + this.label4.TabIndex = 4; + this.label4.Text = "Classification Parameter:"; + // + // textBoxMaxPipeSize + // + this.textBoxMaxPipeSize.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxMaxPipeSize.Location = new System.Drawing.Point(178, 76); + this.textBoxMaxPipeSize.Name = "textBoxMaxPipeSize"; + this.textBoxMaxPipeSize.Size = new System.Drawing.Size(219, 20); + this.textBoxMaxPipeSize.TabIndex = 1; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(29, 79); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(84, 13); + this.label6.TabIndex = 0; + this.label6.Text = "Max Trunk Size:"; + // + // groupBoxTerms + // + this.groupBoxTerms.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBoxTerms.Controls.Add(this.textBoxBranch); + this.groupBoxTerms.Controls.Add(this.textBoxTrunk); + this.groupBoxTerms.Controls.Add(this.label5); + this.groupBoxTerms.Controls.Add(this.label7); + this.groupBoxTerms.Location = new System.Drawing.Point(12, 12); + this.groupBoxTerms.Name = "groupBoxTerms"; + this.groupBoxTerms.Size = new System.Drawing.Size(419, 100); + this.groupBoxTerms.TabIndex = 8; + this.groupBoxTerms.TabStop = false; + this.groupBoxTerms.Text = "Classification Terms to Use:"; + // + // textBoxBranch + // + this.textBoxBranch.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxBranch.Location = new System.Drawing.Point(178, 67); + this.textBoxBranch.Name = "textBoxBranch"; + this.textBoxBranch.Size = new System.Drawing.Size(219, 20); + this.textBoxBranch.TabIndex = 6; + this.textBoxBranch.Text = "BRANCH"; + // + // textBoxTrunk + // + this.textBoxTrunk.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.textBoxTrunk.Location = new System.Drawing.Point(178, 31); + this.textBoxTrunk.Name = "textBoxTrunk"; + this.textBoxTrunk.Size = new System.Drawing.Size(219, 20); + this.textBoxTrunk.TabIndex = 5; + this.textBoxTrunk.Text = "TRUNK"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(29, 67); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(113, 13); + this.label5.TabIndex = 4; + this.label5.Text = "Branch Classifications:"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(29, 31); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(126, 13); + this.label7.TabIndex = 3; + this.label7.Text = "Trunks (Max and Larger):"; + // + // form_MaxSize + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(443, 547); + this.Controls.Add(this.groupBoxTerms); + this.Controls.Add(this.groupBoxPipe); + this.Controls.Add(this.groupBoxDuct); + this.Controls.Add(this.buttonOk); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.progressBar1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(459, 585); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(459, 585); + this.Name = "form_MaxSize"; + this.Text = "X"; + this.Load += new System.EventHandler(this.form_MaxSize_Load); + this.groupBoxDuct.ResumeLayout(false); + this.groupBoxDuct.PerformLayout(); + this.groupBoxPipe.ResumeLayout(false); + this.groupBoxPipe.PerformLayout(); + this.groupBoxTerms.ResumeLayout(false); + this.groupBoxTerms.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOk; + private System.Windows.Forms.GroupBox groupBoxDuct; + private System.Windows.Forms.ComboBox comboBoxDuctParameter; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.TextBox textBoxMaxHeight; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox textBoxMaxDuctWidth; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.CheckBox checkBoxDuct; + private System.Windows.Forms.GroupBox groupBoxPipe; + private System.Windows.Forms.CheckBox checkBoxPipe; + private System.Windows.Forms.ComboBox comboBoxPipeParameter; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.TextBox textBoxMaxPipeSize; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.GroupBox groupBoxTerms; + private System.Windows.Forms.TextBox textBoxBranch; + private System.Windows.Forms.TextBox textBoxTrunk; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.Label label7; + } +} \ No newline at end of file diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.resx b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.resx new file mode 100644 index 00000000..70d5bce5 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_MaxSize.resx @@ -0,0 +1,571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.cs b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.cs new file mode 100644 index 00000000..efb40c13 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.cs @@ -0,0 +1,54 @@ +using System; +using System.Windows.Forms; + + +namespace Case.ApplySysOrient.UI +{ + public partial class form_Orient : Form + { + + internal bool DoDuct; + internal bool DoPipe; + internal bool DoTray; + internal bool DoConduit; + + /// + /// Constructor + /// + public form_Orient() + { + InitializeComponent(); + } + + /// + /// Process + /// + /// + /// + private void buttonOk_Click(object sender, EventArgs e) + { + + + DoDuct = checkBoxDuct.Checked; + DoPipe = checkBoxPipe.Checked; + DoTray = checkBoxTray.Checked; + DoConduit = checkBoxConduit.Checked; + Close(); + } + + /// + /// Cancel + /// + /// + /// + private void buttonCancel_Click(object sender, EventArgs e) + { + DoDuct = false; + DoPipe = false; + DoTray = false; + DoConduit = false; + Close(); + } + + } +} diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.designer.cs b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.designer.cs new file mode 100644 index 00000000..843b7eb3 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.designer.cs @@ -0,0 +1,221 @@ +namespace Case.ApplySysOrient.UI +{ + partial class form_Orient + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(form_Orient)); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOk = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.pictureBox4 = new System.Windows.Forms.PictureBox(); + this.checkBoxConduit = new System.Windows.Forms.CheckBox(); + this.pictureBox3 = new System.Windows.Forms.PictureBox(); + this.checkBoxTray = new System.Windows.Forms.CheckBox(); + this.pictureBox2 = new System.Windows.Forms.PictureBox(); + this.checkBoxPipe = new System.Windows.Forms.CheckBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.checkBoxDuct = new System.Windows.Forms.CheckBox(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.SuspendLayout(); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.Location = new System.Drawing.Point(138, 313); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 40); + this.buttonCancel.TabIndex = 0; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonOk + // + this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOk.Location = new System.Drawing.Point(57, 313); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(75, 40); + this.buttonOk.TabIndex = 1; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.pictureBox4); + this.groupBox1.Controls.Add(this.checkBoxConduit); + this.groupBox1.Controls.Add(this.pictureBox3); + this.groupBox1.Controls.Add(this.checkBoxTray); + this.groupBox1.Controls.Add(this.pictureBox2); + this.groupBox1.Controls.Add(this.checkBoxPipe); + this.groupBox1.Controls.Add(this.pictureBox1); + this.groupBox1.Controls.Add(this.checkBoxDuct); + this.groupBox1.Location = new System.Drawing.Point(12, 12); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(201, 295); + this.groupBox1.TabIndex = 2; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "MEP Categories"; + // + // pictureBox4 + // + this.pictureBox4.BackColor = System.Drawing.Color.White; + this.pictureBox4.Image = global::Case.ApplySysOrient.Properties.Resources.cond_32; + this.pictureBox4.Location = new System.Drawing.Point(26, 197); + this.pictureBox4.Name = "pictureBox4"; + this.pictureBox4.Size = new System.Drawing.Size(50, 50); + this.pictureBox4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox4.TabIndex = 7; + this.pictureBox4.TabStop = false; + // + // checkBoxConduit + // + this.checkBoxConduit.AutoSize = true; + this.checkBoxConduit.Checked = true; + this.checkBoxConduit.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxConduit.Location = new System.Drawing.Point(95, 212); + this.checkBoxConduit.Name = "checkBoxConduit"; + this.checkBoxConduit.Size = new System.Drawing.Size(62, 17); + this.checkBoxConduit.TabIndex = 6; + this.checkBoxConduit.Text = "Conduit"; + this.checkBoxConduit.UseVisualStyleBackColor = true; + // + // pictureBox3 + // + this.pictureBox3.BackColor = System.Drawing.Color.White; + this.pictureBox3.Image = global::Case.ApplySysOrient.Properties.Resources.tray_32; + this.pictureBox3.Location = new System.Drawing.Point(26, 141); + this.pictureBox3.Name = "pictureBox3"; + this.pictureBox3.Size = new System.Drawing.Size(50, 50); + this.pictureBox3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox3.TabIndex = 5; + this.pictureBox3.TabStop = false; + // + // checkBoxTray + // + this.checkBoxTray.AutoSize = true; + this.checkBoxTray.Checked = true; + this.checkBoxTray.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxTray.Location = new System.Drawing.Point(95, 156); + this.checkBoxTray.Name = "checkBoxTray"; + this.checkBoxTray.Size = new System.Drawing.Size(77, 17); + this.checkBoxTray.TabIndex = 4; + this.checkBoxTray.Text = "Cable Tray"; + this.checkBoxTray.UseVisualStyleBackColor = true; + // + // pictureBox2 + // + this.pictureBox2.BackColor = System.Drawing.Color.White; + this.pictureBox2.Image = global::Case.ApplySysOrient.Properties.Resources.pipe_32; + this.pictureBox2.Location = new System.Drawing.Point(26, 85); + this.pictureBox2.Name = "pictureBox2"; + this.pictureBox2.Size = new System.Drawing.Size(50, 50); + this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox2.TabIndex = 3; + this.pictureBox2.TabStop = false; + // + // checkBoxPipe + // + this.checkBoxPipe.AutoSize = true; + this.checkBoxPipe.Checked = true; + this.checkBoxPipe.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxPipe.Location = new System.Drawing.Point(95, 100); + this.checkBoxPipe.Name = "checkBoxPipe"; + this.checkBoxPipe.Size = new System.Drawing.Size(79, 17); + this.checkBoxPipe.TabIndex = 2; + this.checkBoxPipe.Text = "HVAC Pipe"; + this.checkBoxPipe.UseVisualStyleBackColor = true; + // + // pictureBox1 + // + this.pictureBox1.BackColor = System.Drawing.Color.White; + this.pictureBox1.Image = global::Case.ApplySysOrient.Properties.Resources.duct_32; + this.pictureBox1.Location = new System.Drawing.Point(26, 29); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(50, 50); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 1; + this.pictureBox1.TabStop = false; + // + // checkBoxDuct + // + this.checkBoxDuct.AutoSize = true; + this.checkBoxDuct.Checked = true; + this.checkBoxDuct.CheckState = System.Windows.Forms.CheckState.Checked; + this.checkBoxDuct.Location = new System.Drawing.Point(95, 44); + this.checkBoxDuct.Name = "checkBoxDuct"; + this.checkBoxDuct.Size = new System.Drawing.Size(81, 17); + this.checkBoxDuct.TabIndex = 0; + this.checkBoxDuct.Text = "HVAC Duct"; + this.checkBoxDuct.UseVisualStyleBackColor = true; + // + // form_Orient + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(225, 365); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.buttonOk); + this.Controls.Add(this.buttonCancel); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "form_Orient"; + this.Text = "Select Categories"; + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOk; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.CheckBox checkBoxDuct; + private System.Windows.Forms.PictureBox pictureBox4; + private System.Windows.Forms.CheckBox checkBoxConduit; + private System.Windows.Forms.PictureBox pictureBox3; + private System.Windows.Forms.CheckBox checkBoxTray; + private System.Windows.Forms.PictureBox pictureBox2; + private System.Windows.Forms.CheckBox checkBoxPipe; + } +} \ No newline at end of file diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.resx b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.resx new file mode 100644 index 00000000..70d5bce5 --- /dev/null +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.2026/UI/form_Orient.resx @@ -0,0 +1,571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.SharedProject/Entry/CmdTrunkOrBranch.cs b/src/Case.ApplySysOrient/Case.ApplySysOrient.SharedProject/Entry/CmdTrunkOrBranch.cs index d9f9478d..45397d14 100644 --- a/src/Case.ApplySysOrient/Case.ApplySysOrient.SharedProject/Entry/CmdTrunkOrBranch.cs +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.SharedProject/Entry/CmdTrunkOrBranch.cs @@ -26,11 +26,11 @@ public Result Execute(ExternalCommandData commandData, ref string message, Eleme { // Version - if (!commandData.Application.Application.VersionName.Contains("2021")) + if (!commandData.Application.Application.VersionName.Contains("202")) { // Failure - message = ""; + message = "This Add-In requires Revit 2020 or later."; return Result.Failed; } diff --git a/src/Case.ApplySysOrient/Case.ApplySysOrient.sln b/src/Case.ApplySysOrient/Case.ApplySysOrient.sln index d543fc43..a605104d 100644 --- a/src/Case.ApplySysOrient/Case.ApplySysOrient.sln +++ b/src/Case.ApplySysOrient/Case.ApplySysOrient.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.4.33403.182 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.ApplySysOrient.2023", "Case.ApplySysOrient.2023\Case.ApplySysOrient.2023.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}) = "Case.ApplySysOrient.2026", "Case.ApplySysOrient.2026\Case.ApplySysOrient.2026.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" +EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.ApplySysOrient.SharedProject", "Case.ApplySysOrient.SharedProject\Case.ApplySysOrient.SharedProject.shproj", "{695A2D82-DD93-4712-99CA-95978AAD6D94}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.ApplySysOrient.2022", "Case.ApplySysOrient.2022\Case.ApplySysOrient.2022.csproj", "{B5ED3506-2771-440B-965A-FCF0E4C8AD93}" diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/Case.AppsRibbon.2026.vbproj b/src/Case.AppsRibbon/Case.AppsRibbon.2026/Case.AppsRibbon.2026.vbproj new file mode 100644 index 00000000..0996ebd5 --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/Case.AppsRibbon.2026.vbproj @@ -0,0 +1,120 @@ + + + + + Debug + AnyCPU + {A1F8439A-C5C2-471B-A049-647172C3A461} + Library + Case.AppsRibbon + Case.AppsRibbon + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.AppsRibbon.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.AppsRibbon.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + PublicVbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + PublicSettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + \ No newline at end of file diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Application.Designer.vb b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Application.myapp b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/AssemblyInfo.vb b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..33090077 --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Resources.Designer.vb b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..483e18cf --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Resources.Designer.vb @@ -0,0 +1,117 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Public Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Public ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.AppsRibbon.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Public Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized string similar to AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6AdYamLG6U+ieBjJPb5tOAAAAAACAAAAAAAQZgAAAAEAACAAAACDdcelsQw11iX67kXJpLrCoFRLuE9IRx9L5Wr6PzSOeAAAAAAOgAAAAAIAACAAAACCuSaEtrlKNOqpTuVt8Sn+oshfOHCzdR7P3Wnlq3a9zBAAAAD7+FRSmfc62ZYfJxR6lcQyQAAAAG1cDpyxrpVfEs9L9JefZ7Ix9Ikt5eFMKDZJWNQlvc8ul1pSFgLkKFZ2xbzqE8+BCx+SnGDA2Z3MFDcCPX85Ao4=. + ''' + Public ReadOnly Property br1() As String + Get + Return ResourceManager.GetString("br1", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6AdYamLG6U+ieBjJPb5tOAAAAAACAAAAAAAQZgAAAAEAACAAAACM+MwnzH1mCFtwWUUQ3KeInaf0oL5ld0IzUkVY2CLebwAAAAAOgAAAAAIAACAAAADbjFm5UG03phY7ZDKQChqt6eFXvK+wqKk1o3ct1In9tiAAAACLTwE10lPZSAMzolcwO6KiLdv+c76s7lwD37LW6KYUb0AAAAD8sNDd7cfr6JntGnYTxqTi6W1vkPFupI7rgRbCbXaRpV+3Dn/sbulEUv0WLClYfUl7h4sbvtRk7nkSyHzg5N4u. + ''' + Public ReadOnly Property br2() As String + Get + Return ResourceManager.GetString("br2", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6AdYamLG6U+ieBjJPb5tOAAAAAACAAAAAAAQZgAAAAEAACAAAADqv8SZ7/ZSiIMjQeqoAvmWypSrJGGzgrixH469JtZM6wAAAAAOgAAAAAIAACAAAABUgpEEA1+XmYvcev/S2ITA5l4FAfiyqUSAveWlcs624mAAAAAUk0r5tc2/08ND5If1TuNjSb5xKt1GaLJIQ6YMItC5shAFKIoEM9hZholLrLurW3GiYXcEf/qlZBDH0GhIOw/wiydn1SBpgMqZjR8jIxcApV6OvOb9FJbB5ZeXfcCA6/VAAAAALKNuYHp6su8HXMaReM5VbIzTRzN2hHVvf271LKfjbi8V2t6M5W3BQtrALlKfRXnHYEpJ8aGeNk+10OVe2d1DlA==. + ''' + Public ReadOnly Property br3() As String + Get + Return ResourceManager.GetString("br3", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6AdYamLG6U+ieBjJPb5tOAAAAAACAAAAAAAQZgAAAAEAACAAAACYOnD1g9PabinxgfdV5UdYdoDOe3XmfHnCu+iwOftcIgAAAAAOgAAAAAIAACAAAABX/bYncjWwuMiO/KgWPx6FqCPEDTofw0aJLHqEhdF3URAAAADCYW43GkG6cTUaOqSCVEzlQAAAANHqlIogqHqOV9jtyT6bfau9O7Nvn/F4UOA1R9J/qAJ1+OxwnBSLmHiw28JqrKkrdX586T2OlaeDR9BlsuqhCtE=. + ''' + Public ReadOnly Property st1() As String + Get + Return ResourceManager.GetString("st1", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6AdYamLG6U+ieBjJPb5tOAAAAAACAAAAAAAQZgAAAAEAACAAAAAxGetfch2CYCORi96+9dWO4XZxynXlqabkeFoFgJtUAAAAAAAOgAAAAAIAACAAAAAeFfUTlWMq4AFGemHCNRyBheYFxcIIFeJpGxIubgq+ICAAAACpEY9JUp0sZbf5J7L5goHPCazjHlFV8mm70HxzLCf5fkAAAACssqSv5Uik15mDSEr1qNfMF1oH/IpV6HqOuU1VgM3fv0wtbMXHXH0Lf3p7c4H6NQ0paDM4ipyGNNj+h3vIVy3X. + ''' + Public ReadOnly Property st2() As String + Get + Return ResourceManager.GetString("st2", resourceCulture) + End Get + End Property + + ''' + ''' Looks up a localized string similar to AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAA6AdYamLG6U+ieBjJPb5tOAAAAAACAAAAAAAQZgAAAAEAACAAAABLIZRSQTy0QU6qeF+E4hHLvRUmhU5tGQl0j+W5reLrjwAAAAAOgAAAAAIAACAAAAAbGyOVX+nf+H0LlsyQqPpiqL0c2PwlETwFySR12m8O92AAAAD+682ZK6VKtx1Y8GV5z6WHkCzTLg5HsX4KDwMFxSKR5T+YfXi6NVAV2PHyssy/5aqH+miGBeVqXtqovWNNurxG1viEkWE62k6opvmtAos08gUP7JcNFFiYXZIBYxTAzZ9AAAAA6ztl5GVIwf1w72Yo5Otbuj38ugfSFm0JYP9Exd5PRlwMvhoLpkPVCDFs/TBh3snG4dJHA5mEIVhcXecCqDDwfw==. + ''' + Public ReadOnly Property st3() As String + Get + Return ResourceManager.GetString("st3", resourceCulture) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Resources.resx b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Resources.resx new file mode 100644 index 00000000..963444db --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Resources.resx @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 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 + + \ No newline at end of file diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Settings.Designer.vb b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..0d87b46f --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Public NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].AppsRibbon.My.MySettings + Get + Return Global.[Case].AppsRibbon.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Settings.settings b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Settings.settings new file mode 100644 index 00000000..85b890b3 --- /dev/null +++ b/src/Case.AppsRibbon/Case.AppsRibbon.2026/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/Case.AppsRibbon/Case.AppsRibbon.sln b/src/Case.AppsRibbon/Case.AppsRibbon.sln index fd3f9cb7..d98c8fa6 100644 --- a/src/Case.AppsRibbon/Case.AppsRibbon.sln +++ b/src/Case.AppsRibbon/Case.AppsRibbon.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.AppsRibbon.SharedProje EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.AppsRibbon.2023", "Case.AppsRibbon.2023\Case.AppsRibbon.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.AppsRibbon.2026", "Case.AppsRibbon.2026\Case.AppsRibbon.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.AppsRibbon.2021", "Case.AppsRibbon.2021\Case.AppsRibbon.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.AppsRibbon.2022", "Case.AppsRibbon.2022\Case.AppsRibbon.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/Case.BasicReporting.2026.vbproj b/src/Case.BasicReporting/Case.BasicReporting.2026/Case.BasicReporting.2026.vbproj new file mode 100644 index 00000000..f9050be9 --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/Case.BasicReporting.2026.vbproj @@ -0,0 +1,129 @@ + + + + + Debug + AnyCPU + {A1F8439A-C5C2-471B-A049-647172C3A461} + Library + Case.BasicReporting + Case.BasicReporting + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.BasicReporting.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.BasicReporting.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + form_Main.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + form_Main.vb + + + PublicVbMyResourcesResXFileCodeGenerator + My.Resources + Designer + Resources.Designer.vb + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + \ No newline at end of file diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.designer.vb b/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.designer.vb new file mode 100644 index 00000000..a515d020 --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.designer.vb @@ -0,0 +1,162 @@ + _ +Partial Class form_Main + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Main)) + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.ButtonOk = New System.Windows.Forms.Button() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.CheckBoxFormulas = New System.Windows.Forms.CheckBox() + Me.CheckBoxHost = New System.Windows.Forms.CheckBox() + Me.SaveFileDialog1 = New System.Windows.Forms.SaveFileDialog() + Me.ButtonHelp = New System.Windows.Forms.Button() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.Location = New System.Drawing.Point(322, 105) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(75, 40) + Me.ButtonCancel.TabIndex = 0 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'ButtonOk + ' + Me.ButtonOk.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonOk.Location = New System.Drawing.Point(241, 105) + Me.ButtonOk.Name = "ButtonOk" + Me.ButtonOk.Size = New System.Drawing.Size(75, 40) + Me.ButtonOk.TabIndex = 1 + Me.ButtonOk.Text = "OK" + Me.ButtonOk.UseVisualStyleBackColor = True + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = Global.[Case].BasicReporting.My.Resources.Resources.Case_Clearly + Me.PictureBox1.Location = New System.Drawing.Point(12, 105) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(166, 40) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 8 + Me.PictureBox1.TabStop = False + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ProgressBar1.Location = New System.Drawing.Point(184, 105) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(213, 40) + Me.ProgressBar1.TabIndex = 9 + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.CheckBoxFormulas) + Me.GroupBox1.Controls.Add(Me.CheckBoxHost) + Me.GroupBox1.Location = New System.Drawing.Point(12, 12) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(385, 87) + Me.GroupBox1.TabIndex = 10 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Reporting Options" + ' + 'CheckBoxFormulas + ' + Me.CheckBoxFormulas.AutoSize = True + Me.CheckBoxFormulas.Location = New System.Drawing.Point(218, 38) + Me.CheckBoxFormulas.Name = "CheckBoxFormulas" + Me.CheckBoxFormulas.Size = New System.Drawing.Size(137, 17) + Me.CheckBoxFormulas.TabIndex = 2 + Me.CheckBoxFormulas.Text = "Family Symbol Formulas" + Me.CheckBoxFormulas.UseVisualStyleBackColor = True + ' + 'CheckBoxHost + ' + Me.CheckBoxHost.AutoSize = True + Me.CheckBoxHost.Location = New System.Drawing.Point(39, 38) + Me.CheckBoxHost.Name = "CheckBoxHost" + Me.CheckBoxHost.Size = New System.Drawing.Size(94, 17) + Me.CheckBoxHost.TabIndex = 0 + Me.CheckBoxHost.Text = "Host Elements" + Me.CheckBoxHost.UseVisualStyleBackColor = True + ' + 'SaveFileDialog1 + ' + Me.SaveFileDialog1.DefaultExt = "*.csv" + Me.SaveFileDialog1.Filter = "CSV Files | *.csv" + Me.SaveFileDialog1.Title = "Select Save Location for your CSV Report" + ' + 'ButtonHelp + ' + Me.ButtonHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHelp.Location = New System.Drawing.Point(184, 105) + Me.ButtonHelp.Name = "ButtonHelp" + Me.ButtonHelp.Size = New System.Drawing.Size(51, 40) + Me.ButtonHelp.TabIndex = 12 + Me.ButtonHelp.Text = "?" + Me.ButtonHelp.UseVisualStyleBackColor = True + ' + 'form_Main + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(409, 157) + Me.Controls.Add(Me.ButtonHelp) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.ButtonOk) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.ProgressBar1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MaximumSize = New System.Drawing.Size(425, 195) + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(425, 195) + Me.Name = "form_Main" + Me.Text = "Main" + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents ButtonOk As System.Windows.Forms.Button + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents CheckBoxFormulas As System.Windows.Forms.CheckBox + Friend WithEvents CheckBoxHost As System.Windows.Forms.CheckBox + Friend WithEvents SaveFileDialog1 As System.Windows.Forms.SaveFileDialog + Friend WithEvents ButtonHelp As System.Windows.Forms.Button +End Class diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.resx b/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.resx new file mode 100644 index 00000000..c4efef6f --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.resx @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.vb b/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.vb new file mode 100644 index 00000000..e41a2b60 --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/Forms/form_Main.vb @@ -0,0 +1,505 @@ +Imports Autodesk.Revit.DB +Imports System.IO +Imports System.Windows.Forms +Imports [Case].BasicReporting.API +Imports [Case].BasicReporting.Data + +Public Class form_Main + + Private _s As clsSettings + + ''' + ''' All Hosted Elements + ''' + ''' + ''' + ''' + Public Property AllHostedElements As List(Of clsHosts) + + ''' + ''' All Formulas + ''' + ''' + ''' + ''' + Public Property AllFormulas As List(Of clsFormulas) + + ''' + ''' Constructor + ''' + ''' + ''' + Public Sub New(s As clsSettings) + InitializeComponent() + + ' Widen Scope + _s = s + AllHostedElements = New List(Of clsHosts) + AllFormulas = New List(Of clsFormulas) + + ' Form Viz + AllowOk() + SetFormViz(FormViz.StandBy) + Text = "Basic Reporting v" & _s.AppVersion + + End Sub + +#Region "Form Visibility" + + Private Enum FormViz + Processing + StandBy + End Enum + + ''' + ''' Set the Form Visibility Basedon State + ''' + ''' + ''' + Private Sub SetFormViz(p_v As FormViz) + Select Case p_v + Case FormViz.Processing + ProgressBar1.Show() + ButtonCancel.Hide() + ButtonOk.Hide() + ButtonHelp.Hide() + Case FormViz.StandBy + ProgressBar1.Hide() + ButtonCancel.Show() + ButtonOk.Show() + End Select + End Sub + +#End Region + +#Region "Private Members" + + ''' + ''' Perform the reporting + ''' + ''' + Private Sub Report() + + ' Perform Queries + If Me.CheckBoxHost.Checked = True Then GetAllFamilyInstanceHosts() + If Me.CheckBoxFormulas.Checked = True Then GetAllFamilyFormulas() + + ' Save Location & Write File + Dim m_path As String = "" + + Try + + ' Show the Save Dialog + If Me.SaveFileDialog1.ShowDialog = DialogResult.OK Then + + ' Did we get a file name? + If Not String.IsNullOrEmpty(SaveFileDialog1.FileName) Then + m_path = Me.SaveFileDialog1.FileName + End If + + End If + + Catch + End Try + + If String.IsNullOrEmpty(m_path) Then + MsgBox("No File Path to Save Report...", MsgBoxStyle.Critical, "Sad Times... :(") + Else + + ' Write the Results + WriteResultsToFile(m_path) + + End If + + End Sub + + ''' + ''' Return a List of Formulas + ''' + ''' + Private Sub GetAllFamilyFormulas() + + ' All Symbols + Using col As New FilteredElementCollector(_s.Doc) + col.OfClass(GetType(FamilySymbol)) + + ' temporary + col.OfCategory(BuiltInCategory.OST_Furniture) + + ' Iterate over each + For Each x In col.ToElements + + Try + + ' Get the Family + Dim m_fs As FamilySymbol = TryCast(x, FamilySymbol) + If Not m_fs Is Nothing Then + + ' Family Doc + Dim m_famDoc As Document = _s.Doc.EditFamily(m_fs.Family) + + Dim m_mgr As FamilyManager = m_famDoc.FamilyManager + + ' Iterate the Parameters + For Each fp As FamilyParameter In m_mgr.Parameters + + Try + + ' Is ther a Formula? + If Not String.IsNullOrEmpty(fp.Formula) Then + + ' Get the Formula Object + Dim m_form As New clsFormulas(m_fs, fp.Definition.Name, fp.Formula, Not fp.IsInstance) + AllFormulas.Add(m_form) + + End If + + Catch + End Try + + Next + + End If + + Catch + End Try + + Next + + End Using + + End Sub + + ''' + ''' Get All Hosted Elements + ''' + ''' + Private Sub GetAllFamilyInstanceHosts() + + ' All Instance Elements + Using col As New FilteredElementCollector(_s.Doc) + col.OfClass(GetType(FamilyInstance)) + + ' List of Elements + Dim m_e As New List(Of FamilyInstance) + For Each x In col.ToElements + Try + m_e.Add(x) + Catch + End Try + Next + + Dim iCnt As Integer = m_e.Count + + ' Progressbar + With Me.ProgressBar1 + .Minimum = 0 + .Value = 0 + .Maximum = iCnt + End With + + ' Process Each Element + For Each e In m_e + + ' Step the Progress + Try + ProgressBar1.Increment(1) + Catch + End Try + + Try + + ' Test for Face + If Not e.HostFace Is Nothing Then + + Try + Dim h As New clsHosts(e, e.HostFace.ElementId, clsHosts.hostType.isFace) + AllHostedElements.Add(h) + Continue For + Catch + End Try + + End If + + ' Normal Host + If Not e.Host Is Nothing Then + + Try + Dim h As New clsHosts(e, e.Host.Id, clsHosts.hostType.isNormal) + AllHostedElements.Add(h) + Catch + End Try + + End If + + Catch + End Try + + Next + + ' Levels + LevelHosting() + + End Using + + End Sub + + ''' + ''' Get all Level Inheritances + ''' + ''' + Private Sub LevelHosting() + + ' Levels + Dim m_levels As New List(Of Level) + Using col As New FilteredElementCollector(_s.Doc) + col.OfClass(GetType(Level)) + For Each x In col.ToElements + Try + m_levels.Add(x) + Catch + End Try + Next + End Using + + Try + + ' Delete Levels One by One + For Each x As Level In m_levels + + ' Resulting Hosted Items if Deleted + Dim m_ids As IList(Of ElementId) = Nothing + + ' Start a New Transaction + Using t As New Transaction(_s.Doc, "Levels") + If t.Start Then + + Try + + ' Delete the Level + m_ids = _s.Doc.Delete(x.Id) + + ' Hosted Elements + t.RollBack() + + Catch + End Try + + End If + + End Using + + Try + + ' Test List + For Each eid As ElementId In m_ids + + ' Avoid Self + If eid.IntegerValue = x.Id.IntegerValue Then Continue For + + ' Get the Element + Dim m_e As Element = _s.Doc.GetElement(eid) + + If Not m_e Is Nothing Then + + Try + + ' Add it + AllHostedElements.Add(New clsHosts(m_e, x)) + + Catch + End Try + + End If + + Next + + Catch + End Try + + Next + + Catch + End Try + + End Sub + + ''' + ''' Write Hosted Data to File + ''' + ''' File Path + ''' + ''' + Private Function WriteResultsToFile(fPath As String) As String + + Try + + ' Writer + Using sw As New StreamWriter(fPath, False) + + ' Model Name + sw.WriteLine(_s.DocName) + sw.WriteLine(Now.ToString) + + ' Formulas + If Me.CheckBoxFormulas.Checked = True Then + + sw.WriteLine("") + sw.WriteLine("") + sw.WriteLine("Parametric Formula Report:") + + ' Header - Formulas + Dim m_line As String = "Family," + m_line += "Category," + m_line += "Parameter," + m_line += "isType," + m_line += "Formula" + sw.WriteLine(m_line) + + ' Write Each Item + For Each x In AllFormulas + + Dim m_l As String = x.FamilyName & "," + m_l += x.FamilyCategory & ", " + m_l += x.ParamName & ", " + m_l += x.IsTypeParameter & ", " + m_l += x.ParamFormula + + sw.WriteLine(m_l) + + Next + + End If + + ' Hosted Stuff + If Me.CheckBoxHost.Checked = True Then + + sw.WriteLine("") + sw.WriteLine("") + sw.WriteLine("Hosting Report:") + + ' Header - Hosting + Dim m_line As String = "ElementID," + m_line += "ElementName," + m_line += "ElementFamilyName," + m_line += "ElementCategory," + m_line += "ElementHostType," + m_line += "HostElementID," + m_line += "HostElementName," + m_line += "HostElementCategory" + sw.WriteLine(m_line) + + ' Write Each Item + For Each x In AllHostedElements + + Dim m_l As String = x.ElementID & "," + m_l += x.ElementName & "," + m_l += x.ElementFamilyName & "," + m_l += x.ElementCategory & "," + m_l += x.ElementHostType & "," + m_l += x.HostElementID & "," + m_l += x.HostElementName & "," + m_l += x.HostElementCategory & "," + + sw.WriteLine(m_l) + + Next + + End If + + End Using + Catch ex As Exception + + Return ex.Message + + End Try + + Return "" + + End Function + + ''' + ''' 1 selection required minimum + ''' + ''' + Private Sub AllowOk() + + If Me.CheckBoxFormulas.Checked = True Or Me.CheckBoxHost.Checked = True Then + + ButtonOk.Enabled = True + + Else + + ButtonOk.Enabled = False + + End If + + End Sub + +#End Region + +#Region "Form Controls & Events" + + ''' + ''' Help Button + ''' + ''' + ''' + ''' + Private Sub ButtonHelp_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHelp.Click + Process.Start("http://apps.case-inc.com/content/free-basic-reporting-hosting-and-formulas") + End Sub + + ''' + ''' Launch Case Site on Logo Click + ''' + ''' + ''' + ''' + Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click + Process.Start("http://www.case-inc.com") + End Sub + + ''' + ''' Cancel + ''' + ''' + ''' + ''' + Private Sub ButtonCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButtonCancel.Click + + ' Close + Close() + + End Sub + + ''' + ''' Commit + ''' + ''' + ''' + ''' + Private Sub ButtonOk_Click(sender As System.Object, e As System.EventArgs) Handles ButtonOk.Click + + ' Form Viz + SetFormViz(FormViz.Processing) + + ' Run Report + Report() + + ' Close + Close() + + End Sub + + Private Sub CheckBoxFormulas_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBoxFormulas.CheckedChanged + AllowOk() + End Sub + + Private Sub CheckBoxHost_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBoxHost.CheckedChanged + AllowOk() + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Application.Designer.vb b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Application.myapp b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/AssemblyInfo.vb b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..3f4eee82 --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Resources.Designer.vb b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..ac063dd0 --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Public Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Public ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.BasicReporting.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Public Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Public ReadOnly Property Case_Clearly() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Resources.resx b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Resources.resx new file mode 100644 index 00000000..4c7c21ef --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Resources.resx @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Settings.Designer.vb b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..e9ad6123 --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].BasicReporting.My.MySettings + Get + Return Global.[Case].BasicReporting.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Settings.settings b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Settings.settings new file mode 100644 index 00000000..f7f176ac --- /dev/null +++ b/src/Case.BasicReporting/Case.BasicReporting.2026/My Project/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Case.BasicReporting/Case.BasicReporting.2026/Resources/Case_Clearly.png b/src/Case.BasicReporting/Case.BasicReporting.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.BasicReporting/Case.BasicReporting.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.BasicReporting/Case.BasicReporting.sln b/src/Case.BasicReporting/Case.BasicReporting.sln index 6444ab8c..805971cf 100644 --- a/src/Case.BasicReporting/Case.BasicReporting.sln +++ b/src/Case.BasicReporting/Case.BasicReporting.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.BasicReporting.SharedP EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.BasicReporting.2023", "Case.BasicReporting.2023\Case.BasicReporting.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.BasicReporting.2026", "Case.BasicReporting.2026\Case.BasicReporting.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.BasicReporting.2021", "Case.BasicReporting.2021\Case.BasicReporting.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.BasicReporting.2022", "Case.BasicReporting.2022\Case.BasicReporting.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/Case.ChangeReplaceFamTypeNames.2026.vbproj b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/Case.ChangeReplaceFamTypeNames.2026.vbproj new file mode 100644 index 00000000..3b9b9e2d --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/Case.ChangeReplaceFamTypeNames.2026.vbproj @@ -0,0 +1,130 @@ + + + + + Debug + AnyCPU + {48DCB208-30A6-4966-A4A2-026A77EE9783} + Library + Case.ChangeReplaceFamTypeNames + Case.ChangeReplaceFamTypeNames + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.ChangeReplaceFamTypeNames.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.ChangeReplaceFamTypeNames.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + form_Main.vb + + + Form + + + + + PublicVbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + form_Main.vb + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + PublicSettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + \ No newline at end of file diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Application.Designer.vb b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Application.myapp b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/AssemblyInfo.vb b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..d66ed3ea --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Resources.Designer.vb b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..08f38e56 --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Public Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Public ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.ChangeReplaceFamTypeNames.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Public Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Public ReadOnly Property Case_Clearly() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Resources.resx b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Resources.resx new file mode 100644 index 00000000..4c7c21ef --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Resources.resx @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Settings.Designer.vb b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..8c24d20e --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Public NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].ChangeReplaceFamTypeNames.My.MySettings + Get + Return Global.[Case].ChangeReplaceFamTypeNames.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Settings.settings b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Settings.settings new file mode 100644 index 00000000..85b890b3 --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/Resources/Case_Clearly.png b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.designer.vb b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.designer.vb new file mode 100644 index 00000000..483b233c --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.designer.vb @@ -0,0 +1,206 @@ + _ +Partial Class form_Main + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Main)) + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.ButtonOk = New System.Windows.Forms.Button() + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.CheckBoxTypes = New System.Windows.Forms.CheckBox() + Me.TextBoxReplace = New System.Windows.Forms.TextBox() + Me.LabelReplace = New System.Windows.Forms.Label() + Me.TextBoxFind = New System.Windows.Forms.TextBox() + Me.CheckBoxFamilies = New System.Windows.Forms.CheckBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ButtonHelp = New System.Windows.Forms.Button() + Me.GroupBox1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.Location = New System.Drawing.Point(362, 175) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(75, 40) + Me.ButtonCancel.TabIndex = 0 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'ButtonOk + ' + Me.ButtonOk.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonOk.Location = New System.Drawing.Point(281, 175) + Me.ButtonOk.Name = "ButtonOk" + Me.ButtonOk.Size = New System.Drawing.Size(75, 40) + Me.ButtonOk.TabIndex = 1 + Me.ButtonOk.Text = "OK" + Me.ButtonOk.UseVisualStyleBackColor = True + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.CheckBoxTypes) + Me.GroupBox1.Controls.Add(Me.TextBoxReplace) + Me.GroupBox1.Controls.Add(Me.LabelReplace) + Me.GroupBox1.Controls.Add(Me.TextBoxFind) + Me.GroupBox1.Controls.Add(Me.CheckBoxFamilies) + Me.GroupBox1.Controls.Add(Me.Label1) + Me.GroupBox1.Location = New System.Drawing.Point(12, 12) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(425, 157) + Me.GroupBox1.TabIndex = 2 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Find and Replace (Do Not Use Wildcards)" + ' + 'CheckBoxTypes + ' + Me.CheckBoxTypes.AutoSize = True + Me.CheckBoxTypes.Checked = True + Me.CheckBoxTypes.CheckState = System.Windows.Forms.CheckState.Checked + Me.CheckBoxTypes.Location = New System.Drawing.Point(269, 113) + Me.CheckBoxTypes.Name = "CheckBoxTypes" + Me.CheckBoxTypes.Size = New System.Drawing.Size(126, 17) + Me.CheckBoxTypes.TabIndex = 5 + Me.CheckBoxTypes.Text = "Change Type Names" + Me.CheckBoxTypes.UseVisualStyleBackColor = True + ' + 'TextBoxReplace + ' + Me.TextBoxReplace.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBoxReplace.Location = New System.Drawing.Point(84, 70) + Me.TextBoxReplace.Name = "TextBoxReplace" + Me.TextBoxReplace.Size = New System.Drawing.Size(335, 20) + Me.TextBoxReplace.TabIndex = 4 + ' + 'LabelReplace + ' + Me.LabelReplace.AutoSize = True + Me.LabelReplace.Location = New System.Drawing.Point(22, 73) + Me.LabelReplace.Name = "LabelReplace" + Me.LabelReplace.Size = New System.Drawing.Size(50, 13) + Me.LabelReplace.TabIndex = 3 + Me.LabelReplace.Text = "Replace:" + ' + 'TextBoxFind + ' + Me.TextBoxFind.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.TextBoxFind.Location = New System.Drawing.Point(84, 32) + Me.TextBoxFind.Name = "TextBoxFind" + Me.TextBoxFind.Size = New System.Drawing.Size(335, 20) + Me.TextBoxFind.TabIndex = 2 + ' + 'CheckBoxFamilies + ' + Me.CheckBoxFamilies.AutoSize = True + Me.CheckBoxFamilies.Checked = True + Me.CheckBoxFamilies.CheckState = System.Windows.Forms.CheckState.Checked + Me.CheckBoxFamilies.Location = New System.Drawing.Point(84, 113) + Me.CheckBoxFamilies.Name = "CheckBoxFamilies" + Me.CheckBoxFamilies.Size = New System.Drawing.Size(131, 17) + Me.CheckBoxFamilies.TabIndex = 1 + Me.CheckBoxFamilies.Text = "Change Family Names" + Me.CheckBoxFamilies.UseVisualStyleBackColor = True + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.Location = New System.Drawing.Point(22, 35) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(30, 13) + Me.Label1.TabIndex = 0 + Me.Label1.Text = "Find:" + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ProgressBar1.Location = New System.Drawing.Point(177, 175) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(260, 40) + Me.ProgressBar1.TabIndex = 6 + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = Global.[Case].ChangeReplaceFamTypeNames.My.Resources.Resources.Case_Clearly + Me.PictureBox1.Location = New System.Drawing.Point(12, 175) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(159, 40) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 6 + Me.PictureBox1.TabStop = False + ' + 'ButtonHelp + ' + Me.ButtonHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHelp.Location = New System.Drawing.Point(225, 175) + Me.ButtonHelp.Name = "ButtonHelp" + Me.ButtonHelp.Size = New System.Drawing.Size(50, 40) + Me.ButtonHelp.TabIndex = 8 + Me.ButtonHelp.Text = "?" + Me.ButtonHelp.UseVisualStyleBackColor = True + ' + 'form_Main + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(449, 227) + Me.Controls.Add(Me.ButtonHelp) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.ButtonOk) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.ProgressBar1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MaximumSize = New System.Drawing.Size(465, 265) + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(465, 265) + Me.Name = "form_Main" + Me.Text = "Change and Replace Family and Type Names" + Me.GroupBox1.ResumeLayout(False) + Me.GroupBox1.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents ButtonOk As System.Windows.Forms.Button + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents TextBoxFind As System.Windows.Forms.TextBox + Friend WithEvents CheckBoxFamilies As System.Windows.Forms.CheckBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents TextBoxReplace As System.Windows.Forms.TextBox + Friend WithEvents LabelReplace As System.Windows.Forms.Label + Friend WithEvents CheckBoxTypes As System.Windows.Forms.CheckBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents ButtonHelp As System.Windows.Forms.Button +End Class diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.resx b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.resx new file mode 100644 index 00000000..70d5bce5 --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.resx @@ -0,0 +1,571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.vb b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.vb new file mode 100644 index 00000000..27f1a320 --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/UI/form_Main.vb @@ -0,0 +1,214 @@ +Imports Autodesk.Revit.DB +Imports Autodesk.Revit.UI +Imports [Case].ChangeReplaceFamTypeNames.Data + +Public Class form_Main + + Private _s As clsSettings + + ''' + ''' Constructor + ''' + ''' + ''' + Public Sub New(s As clsSettings) + InitializeComponent() + + ' Widen Scope + _s = s + AllowOK() + ProgressBar1.Hide() + Text = "Change & Replace Family/Type Names v" & _s.Version + + End Sub + + ''' + ''' Minimum Text Requirements + ''' + ''' + Private Sub AllowOk() + + If Not (String.IsNullOrEmpty(TextBoxFind.Text) And String.IsNullOrEmpty(TextBoxReplace.Text)) Then + If Not (CheckBoxFamilies.Checked = False And Me.CheckBoxTypes.Checked = False) Then + ButtonOk.Enabled = True + Else + ButtonOk.Enabled = False + End If + Else + ButtonOk.Enabled = False + End If + + End Sub + + ''' + ''' Rename the Items + ''' + ''' + Private Sub RenameStuff() + + ' Get the Families + _s.GetFams() + + ' Only Rename Families Once + Dim m_famFixed As New SortedDictionary(Of Integer, Integer) + + ' Progress Bar + With Me.ProgressBar1 + .Value = 0 + .Minimum = 0 + .Maximum = _s.FamilyElements.Count + .Show() + End With + + ButtonOk.Hide() + ButtonCancel.Hide() + + ' User Reporting + Dim iFail As Integer = 0 + Dim iSuc As Integer = 0 + + ' Process each Item + For Each x In _s.FamilyElements + + ' Step the Progress Bar + Try + ProgressBar1.Increment(1) + Catch + End Try + + ' Renamed + Dim m_renamed As Integer = 0 + + ' Start a New Transaction + Using t As New Transaction(_s.Doc, "CASE Renamer") + If t.Start Then + + Try + + ' Check for Family Names + If Me.CheckBoxFamilies.Checked = True Then + + ' Have we Processed the Family? + If Not m_famFixed.ContainsKey(x.Family.Id.IntegerValue) Then + + ' Add it + m_famFixed.Add(x.Family.Id.IntegerValue, x.Family.Id.IntegerValue) + + ' Check It + If Not String.IsNullOrEmpty(TextBoxFind.Text) Then + If x.Family.Name.Contains(TextBoxFind.Text) Then + ' Rename This Part + Dim m_newName As String = Replace(x.Family.Name, Me.TextBoxFind.Text, Me.TextBoxReplace.Text, , , CompareMethod.Text) + x.Family.Name = m_newName + m_renamed += 1 + End If + End If + + End If + + End If + + ' Check for Type Names + If Me.CheckBoxFamilies.Checked = True Then + If Not String.IsNullOrEmpty(TextBoxFind.Text) Then + If x.Name.Contains(TextBoxFind.Text) Then + ' Rename This Part + Dim m_newName As String = Replace(x.Name, Me.TextBoxFind.Text, Me.TextBoxReplace.Text, , , CompareMethod.Text) + x.Name = m_newName + m_renamed += 1 + End If + End If + End If + + ' Commit + t.Commit() + + ' Count only if changes + If m_renamed > 0 Then iSuc += m_renamed + + Catch + iFail += 1 + End Try + + End If + End Using + + Next + + ' Report to user + Using td As New TaskDialog("Here's What Heppened:") + td.MainInstruction = "Family and/or Type Renaming" + td.MainContent = iSuc.ToString & " Updated Succesfully" & vbCr + td.MainContent += iFail.ToString & " Items Failed to Rename" + td.Show() + End Using + + End Sub + +#Region "Form Controls & Events" + + ''' + ''' Help Documentation + ''' + ''' + ''' + ''' + Private Sub ButtonHelp_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHelp.Click + Process.Start("http://apps.case-inc.com/content/free-change-replace-family-andor-type-names") + End Sub + + ''' + ''' Commit + ''' + ''' + ''' + ''' + Private Sub ButtonOk_Click(sender As System.Object, e As System.EventArgs) Handles ButtonOk.Click + + ' Commit + RenameStuff() + + ' Close + Close() + + End Sub + + ''' + ''' Close + ''' + ''' + ''' + ''' + Private Sub ButtonCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButtonCancel.Click + + ' Close + Close() + + End Sub + + Private Sub TextBoxFind_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBoxFind.TextChanged + AllowOK() + End Sub + + Private Sub TextBoxReplace_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBoxReplace.TextChanged + AllowOK() + End Sub + + Private Sub CheckBoxFamilies_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBoxFamilies.CheckedChanged + AllowOK() + End Sub + + Private Sub CheckBoxTypes_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBoxTypes.CheckedChanged + AllowOK() + End Sub + + Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click + Try + Process.Start("http://apps.case-inc.com/") + Catch + End Try + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/app.config b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/app.config new file mode 100644 index 00000000..ea1d4ebd --- /dev/null +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.2026/app.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.sln b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.sln index a4fbed85..1479e498 100644 --- a/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.sln +++ b/src/Case.ChangeReplaceFamTypeNames/Case.ChangeReplaceFamTypeNames.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.ChangeReplaceFamTypeNa EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.ChangeReplaceFamTypeNames.2023", "Case.ChangeReplaceFamTypeNames.2023\Case.ChangeReplaceFamTypeNames.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.ChangeReplaceFamTypeNames.2026", "Case.ChangeReplaceFamTypeNames.2026\Case.ChangeReplaceFamTypeNames.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.ChangeReplaceFamTypeNames.2021", "Case.ChangeReplaceFamTypeNames.2021\Case.ChangeReplaceFamTypeNames.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.ChangeReplaceFamTypeNames.2022", "Case.ChangeReplaceFamTypeNames.2022\Case.ChangeReplaceFamTypeNames.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/Case.DeleteViewsAndPurge.2026.vbproj b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/Case.DeleteViewsAndPurge.2026.vbproj new file mode 100644 index 00000000..9de1f286 --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/Case.DeleteViewsAndPurge.2026.vbproj @@ -0,0 +1,129 @@ + + + + + Debug + AnyCPU + {6E8ADF81-616C-4D6F-B154-CAC66F501341} + Library + Case.DeleteViewsAndPurge + Case.DeleteViewsAndPurge + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.DeleteViewsAndPurge.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.DeleteViewsAndPurge.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + form_Main.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + form_Main.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + \ No newline at end of file diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Application.Designer.vb b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Application.myapp b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/AssemblyInfo.vb b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..05104d4b --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Resources.Designer.vb b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..623394ee --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.DeleteViewsAndPurge.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Case_Clearly() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Resources.resx b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Resources.resx new file mode 100644 index 00000000..9eb33c83 --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Case_Clearly.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Settings.Designer.vb b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..eab37eed --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].DeleteViewsAndPurge.My.MySettings + Get + Return Global.[Case].DeleteViewsAndPurge.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Settings.settings b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Settings.settings new file mode 100644 index 00000000..f7f176ac --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/My Project/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/Resources/Case_Clearly.png b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.designer.vb b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.designer.vb new file mode 100644 index 00000000..7f46a73f --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.designer.vb @@ -0,0 +1,155 @@ + _ +Partial Class form_Main + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Main)) + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.ButtonOk = New System.Windows.Forms.Button() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.CheckBoxSheets = New System.Windows.Forms.CheckBox() + Me.CheckBoxViews = New System.Windows.Forms.CheckBox() + Me.CheckBoxLinks = New System.Windows.Forms.CheckBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ButtonHelp = New System.Windows.Forms.Button() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.Location = New System.Drawing.Point(353, 115) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(75, 40) + Me.ButtonCancel.TabIndex = 0 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'ButtonOk + ' + Me.ButtonOk.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonOk.Location = New System.Drawing.Point(272, 115) + Me.ButtonOk.Name = "ButtonOk" + Me.ButtonOk.Size = New System.Drawing.Size(75, 40) + Me.ButtonOk.TabIndex = 1 + Me.ButtonOk.Text = "OK" + Me.ButtonOk.UseVisualStyleBackColor = True + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ProgressBar1.Location = New System.Drawing.Point(12, 115) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(416, 40) + Me.ProgressBar1.TabIndex = 3 + ' + 'CheckBoxSheets + ' + Me.CheckBoxSheets.AutoSize = True + Me.CheckBoxSheets.Checked = True + Me.CheckBoxSheets.CheckState = System.Windows.Forms.CheckState.Checked + Me.CheckBoxSheets.Location = New System.Drawing.Point(273, 12) + Me.CheckBoxSheets.Name = "CheckBoxSheets" + Me.CheckBoxSheets.Size = New System.Drawing.Size(93, 17) + Me.CheckBoxSheets.TabIndex = 4 + Me.CheckBoxSheets.Text = "Delete Sheets" + Me.CheckBoxSheets.UseVisualStyleBackColor = True + ' + 'CheckBoxViews + ' + Me.CheckBoxViews.AutoSize = True + Me.CheckBoxViews.Checked = True + Me.CheckBoxViews.CheckState = System.Windows.Forms.CheckState.Checked + Me.CheckBoxViews.Location = New System.Drawing.Point(273, 46) + Me.CheckBoxViews.Name = "CheckBoxViews" + Me.CheckBoxViews.Size = New System.Drawing.Size(88, 17) + Me.CheckBoxViews.TabIndex = 5 + Me.CheckBoxViews.Text = "Delete Views" + Me.CheckBoxViews.UseVisualStyleBackColor = True + ' + 'CheckBoxLinks + ' + Me.CheckBoxLinks.AutoSize = True + Me.CheckBoxLinks.Checked = True + Me.CheckBoxLinks.CheckState = System.Windows.Forms.CheckState.Checked + Me.CheckBoxLinks.Location = New System.Drawing.Point(273, 84) + Me.CheckBoxLinks.Name = "CheckBoxLinks" + Me.CheckBoxLinks.Size = New System.Drawing.Size(122, 17) + Me.CheckBoxLinks.TabIndex = 6 + Me.CheckBoxLinks.Text = "Remove Revit Links" + Me.CheckBoxLinks.UseVisualStyleBackColor = True + ' + 'PictureBox1 + ' + Me.PictureBox1.Image = Global.[Case].DeleteViewsAndPurge.My.Resources.Resources.Case_Clearly + Me.PictureBox1.Location = New System.Drawing.Point(26, 28) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(208, 61) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 7 + Me.PictureBox1.TabStop = False + ' + 'ButtonHelp + ' + Me.ButtonHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHelp.Location = New System.Drawing.Point(216, 115) + Me.ButtonHelp.Name = "ButtonHelp" + Me.ButtonHelp.Size = New System.Drawing.Size(50, 40) + Me.ButtonHelp.TabIndex = 9 + Me.ButtonHelp.Text = "?" + Me.ButtonHelp.UseVisualStyleBackColor = True + ' + 'form_Main + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(440, 167) + Me.Controls.Add(Me.ButtonHelp) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.CheckBoxLinks) + Me.Controls.Add(Me.CheckBoxViews) + Me.Controls.Add(Me.CheckBoxSheets) + Me.Controls.Add(Me.ButtonOk) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.ProgressBar1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MaximumSize = New System.Drawing.Size(456, 205) + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(456, 205) + Me.Name = "form_Main" + Me.Text = "Delete Sheets, Views and Revit Links" + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents ButtonOk As System.Windows.Forms.Button + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents CheckBoxSheets As System.Windows.Forms.CheckBox + Friend WithEvents CheckBoxViews As System.Windows.Forms.CheckBox + Friend WithEvents CheckBoxLinks As System.Windows.Forms.CheckBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ButtonHelp As System.Windows.Forms.Button +End Class diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.resx b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.resx new file mode 100644 index 00000000..70d5bce5 --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.resx @@ -0,0 +1,571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.vb b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.vb new file mode 100644 index 00000000..bf9c9811 --- /dev/null +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.2026/form_Main.vb @@ -0,0 +1,290 @@ +Imports Autodesk.Revit.DB +Imports System.Windows.Forms +Imports System.Reflection +Imports System.Linq +Imports [Case].DeleteViewsAndPurge.API +Imports [Case].DeleteViewsAndPurge.Data + +Public Class form_Main + + Private _s As clsSettings + + ''' + ''' Constructor + ''' + ''' + ''' + Public Sub New(s As clsSettings) + InitializeComponent() + + ' Widen Scope + _s = s + + End Sub + + ''' + ''' Remove all Views + ''' + ''' + Private Sub DeleteItems() + + Dim iCntshts As Integer = 0 + Dim iCntview As Integer = 0 + Dim iCntLinks As Integer = 0 + + ' Delete Links? + If Me.CheckBoxLinks.Checked = True Then + Try + iCntLinks = _s.DeleteLinks + Catch + End Try + End If + + ' Delete Sheets? + If Me.CheckBoxSheets.Checked = True Then + + ' New Transaction + Using t As New Transaction(_s.Doc, "Delete Sheets") + If t.Start = TransactionStatus.Started Then + Try + + Try + ProgressBar1.Increment(_s.Sheets.Count) + Application.DoEvents() + Catch + End Try + + ' Delete the Sheets + _s.Doc.Delete(_s.Sheets) + + ' How many got deleted + iCntshts = _s.Sheets.Count + + ' Success + t.Commit() + + Catch + End Try + End If + End Using + + End If + + ' Delete Views? + If Me.CheckBoxViews.Checked = True Then + + ' Delete Views + Dim m_iDeletedItems As Integer = -1 + Do Until m_iDeletedItems = 0 + + ' Delete + m_iDeletedItems = _s.DeleteViews(ProgressBar1) + iCntview += m_iDeletedItems + + Loop + + End If + + ' Tell User + Using td As New Autodesk.Revit.UI.TaskDialog("Here's What Just Happened!:") + td.MainInstruction = iCntshts.ToString & " Sheets were removed..." & vbCr & + iCntview.ToString & " Views were removed..." & vbCr & vbCr & + iCntLinks.ToString & " Revit Links succesfully removed..." & vbCr & vbCr & + "Please use the Purge command (repeatedly) if you need to remove unused items from the model" + td.MainContent = "If this makes you sad, do not save the model!" + td.Show() + End Using + + End Sub + + '' '' ''' + '' '' ''' Delete the Unused Types + '' '' ''' + '' '' ''' + '' ''Private Sub DeleteUnusedTypes() + + '' '' ' Get Unused types + '' '' For Each x As Category In _s.Doc.Settings.Categories + + '' '' ' Step the Progress + '' '' Try + '' '' ProgressBar1.Increment(1) + '' '' Application.DoEvents() + '' '' Catch ex As Exception + '' '' End Try + + '' '' ' Get the Elements + '' '' Dim m_ebc As New clsElementsByCategory(x, _s.Doc) + '' '' If m_ebc.TypeElements.Count < 1 Then Continue For + '' '' If m_ebc.PurgeItems.Values.Count < 1 Then Continue For + + '' '' ' Transaction + '' '' Using t As New Transaction(_s.Doc, "Purging Unused Types - " & x.Name) + '' '' If t.Start Then + '' '' Dim m_attempt As Integer = 0 + + '' '' Try + + '' '' ' Delete the Unused Types + '' '' Dim m_purge As New List(Of ElementId) + '' '' For Each e As ElementId In m_ebc.PurgeItems.Values + '' '' m_purge.Add(e) + '' '' m_attempt += 1 + '' '' Next + + '' '' If m_attempt = 0 Then + '' '' t.RollBack() + '' '' Continue For + '' '' End If + + '' '' ' Delete from Model + '' '' _s.Doc.Delete(m_purge) + + '' '' ' Purge Success + '' '' _purgeSuccess += m_attempt + + '' '' ' Commit + '' '' t.Commit() + + '' '' Catch + + '' '' ' Purge Failure + '' '' _purgeFailure += m_attempt + + '' '' ' Rollback Failures + '' '' t.RollBack() + + '' '' End Try + '' '' End If + '' '' End Using + + '' '' Next + + '' ''End Sub + +#Region "Form Visibility" + + Private Enum FormViz + Processing + StandBy + End Enum + + ''' + ''' Set the Form Visibility Basedon State + ''' + ''' + ''' + Private Sub SetFormViz(v As FormViz) + Select Case v + Case FormViz.Processing + ProgressBar1.Show() + ButtonCancel.Hide() + ButtonOk.Hide() + ButtonHelp.Hide() + Case FormViz.StandBy + ProgressBar1.Hide() + ButtonCancel.Show() + ButtonOk.Show() + ButtonHelp.Show() + End Select + End Sub + +#End Region + +#Region "Form Controls & Events" + + ''' + ''' Form Shown + ''' + ''' + ''' + ''' + Private Sub form_Main_Shown(sender As Object, e As EventArgs) Handles Me.Shown + + ' Form Setup + SetFormViz(FormViz.StandBy) + Text = "Delete Sheets, Views and Links v" & Assembly.GetExecutingAssembly.GetName.Version.ToString + + End Sub + + ''' + ''' Help Documentation + ''' + ''' + ''' + ''' + Private Sub ButtonHelp_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHelp.Click + Process.Start("http://apps.case-inc.com/content/free-delete-sheets-views-and-revit-links") + End Sub + + ''' + ''' Commit + ''' + ''' + ''' + ''' + Private Sub ButtonOk_Click(sender As System.Object, e As System.EventArgs) Handles ButtonOk.Click + + ' Set for Visibility + SetFormViz(FormViz.Processing) + + ' Are they sure? + If MsgBox("It is recommended that you only run this utility on detached models!!" & vbCr & vbCr & + "Are You Sure You Want to Continue??" & vbCr & "Removing Links Cannot be Undone!", + MsgBoxStyle.YesNoCancel, + "Are You SURE?!") = MsgBoxResult.Yes Then + + If Me.CheckBoxSheets.Checked = True Then + + ' Get Sheets + _s.GetSheets() + + End If + + If Me.CheckBoxViews.Checked = True Then + + ' Get Views + _s.GetViews() + + End If + + ' Prep Progress Bar + With Me.ProgressBar1 + .Minimum = 0 + .Maximum = _s.Sheets.Count + _s.Views.Count + .Value = 0 + End With + + ' Delete Views + DeleteItems() + + End If + + ' Close + Close() + + End Sub + + ''' + ''' Close + ''' + ''' + ''' + ''' + Private Sub ButtonCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButtonCancel.Click + Close() + End Sub + + ''' + ''' Launch Case Site + ''' + ''' + ''' + ''' + Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click + Process.Start("http://www.case-inc.com") + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.sln b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.sln index 099a6256..1a69377d 100644 --- a/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.sln +++ b/src/Case.DeleteViewsAndPurge/Case.DeleteViewsAndPurge.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.DeleteViewsAndPurge.Sh EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.DeleteViewsAndPurge.2023", "Case.DeleteViewsAndPurge.2023\Case.DeleteViewsAndPurge.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.DeleteViewsAndPurge.2026", "Case.DeleteViewsAndPurge.2026\Case.DeleteViewsAndPurge.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.DeleteViewsAndPurge.2021", "Case.DeleteViewsAndPurge.2021\Case.DeleteViewsAndPurge.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.DeleteViewsAndPurge.2022", "Case.DeleteViewsAndPurge.2022\Case.DeleteViewsAndPurge.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Case.DimensionOverrides.2026.csproj b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Case.DimensionOverrides.2026.csproj new file mode 100644 index 00000000..ad08cb1f --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Case.DimensionOverrides.2026.csproj @@ -0,0 +1,89 @@ + + + + + Debug + AnyCPU + {05CE019D-9DEB-4B2E-81EF-551F46EE7996} + Library + Properties + Case.DimensionOverrides + Case.DimensionOverrides + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + TRACE;DEBUG;Revit2026 + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE;Revit2026 + prompt + 4 + + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + + + + + + + + + + + + + + + + True + True + Settings.settings + + + Form + + + form_Main.cs + + + Form + + + ProgressBarForm.cs + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + form_Main.cs + + + ProgressBarForm.cs + + + + + \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/AssemblyInfo.cs b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d41ef562 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Case.AppName.2026")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Case.AppName.2026")] +[assembly: AssemblyCopyright("Copyright © 2026")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0acbcdf9-d03f-47c8-a50b-f2a66581d32b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/Settings.Designer.cs b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/Settings.Designer.cs new file mode 100644 index 00000000..0cc87c10 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/Settings.Designer.cs @@ -0,0 +1,46 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Case.DimensionOverrides.Properties { + + + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")] + internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { + + private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); + + public static Settings Default { + get { + return defaultInstance; + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("\"Select Dimensions to Override\"")] + public string Prompt_String { + get { + return ((string)(this["Prompt_String"])); + } + } + + [global::System.Configuration.ApplicationScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("\"Unable to Process Selection. Dimension Overrides requires at least one Dimension" + + " to function properly. Please ensure your selection is correct. If you are still" + + " experiencing issues, Please contact CASE Inc.\"")] + public string Error_String { + get { + return ((string)(this["Error_String"])); + } + } + } +} diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/Settings.settings b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/Settings.settings new file mode 100644 index 00000000..b000b8c2 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/Properties/Settings.settings @@ -0,0 +1,12 @@ + + + + + + "Select Dimensions to Override" + + + "Unable to Process Selection. Dimension Overrides requires at least one Dimension to function properly. Please ensure your selection is correct. If you are still experiencing issues, Please contact CASE Inc." + + + \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.cs b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.cs new file mode 100644 index 00000000..35692428 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +//using System.Windows.Forms; + +//using Autodesk.Revit.UI; +//using Autodesk.Revit.DB; +//using Autodesk.Revit.DB.Architecture; + +namespace Case.TemplateLocal { + + public partial class ProgressBarForm : System.Windows.Forms.Form { + + public bool Cancel = false; + + public ProgressBarForm(string title, int maximum) { + InitializeComponent(); + this.Text = title; + progressBar1.Maximum = maximum; + } + + public void SetLabel(string text) { + labelProgressBar.Text = text; + labelProgressBar.Refresh(); + } + + public void Increment() { + progressBar1.Increment(1); + } + + public void Reset() { + progressBar1.Value = 0; + progressBar1.Refresh(); + } + + private void buttonCancel_Click(object sender, EventArgs e) { + Cancel = true; + } + } + +} \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.designer.cs b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.designer.cs new file mode 100644 index 00000000..428404b2 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.designer.cs @@ -0,0 +1,99 @@ +namespace Case.TemplateLocal { + partial class ProgressBarForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.label6 = new System.Windows.Forms.Label(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.labelProgressBar = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // progressBar1 + // + this.progressBar1.Location = new System.Drawing.Point(8, 9); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(774, 22); + this.progressBar1.TabIndex = 0; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(5, 88); + this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(10, 13); + this.label6.TabIndex = 5; + this.label6.Text = "."; + // + // buttonCancel + // + this.buttonCancel.Cursor = System.Windows.Forms.Cursors.Default; + this.buttonCancel.Location = new System.Drawing.Point(687, 63); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(95, 30); + this.buttonCancel.TabIndex = 6; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // labelProgressBar + // + this.labelProgressBar.AutoSize = true; + this.labelProgressBar.Location = new System.Drawing.Point(12, 43); + this.labelProgressBar.Name = "labelProgressBar"; + this.labelProgressBar.Size = new System.Drawing.Size(68, 13); + this.labelProgressBar.TabIndex = 7; + this.labelProgressBar.Text = "default value"; + // + // ProgressBarForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.ClientSize = new System.Drawing.Size(788, 105); + this.ControlBox = false; + this.Controls.Add(this.labelProgressBar); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.label6); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ProgressBarForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Processing"; + this.TopMost = true; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Label labelProgressBar; + } +} \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.resx b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.resx new file mode 100644 index 00000000..d58980a3 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/ProgressBarForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.cs b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.cs new file mode 100644 index 00000000..381fc381 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.cs @@ -0,0 +1,199 @@ +using System; +using System.Diagnostics; +using System.Reflection; +using Autodesk.Revit.DB; +using Microsoft.VisualBasic.ApplicationServices; +using clsSettings = Case.DimensionOverrides.Data.clsSettings; +using Form = System.Windows.Forms.Form; + +namespace Case.DimensionOverrides.UI +{ +// ReSharper disable once InconsistentNaming + public partial class form_Main : Form + { + private readonly clsSettings _s; + + /// + /// Constructor + /// + /// + public form_Main(clsSettings s) + { + InitializeComponent(); + progressBar1.Hide(); + _s = s; + + lbl_IntroLabel.Text = string.Format( + "Selection contains {0} Dimensions and {1} Dimension Segments.", + _s.Dimensions.Count, + _s.SegmentCount); + } + + #region Form Controls & Events + + /// + /// Startup + /// + /// + /// + private void form_Main_Load(object sender, EventArgs e) + { + Text = string.Format( + "Dimension Overrides v{0}", + Assembly.GetExecutingAssembly().GetName().Version); + } + + /// + /// Logo + /// + /// + /// + private void pictureBox1_Click(object sender, EventArgs e) + { + Process.Start("http://apps.case-inc.com/"); + } + + /// + /// OK + /// + /// + /// + private void buttonOk_Click(object sender, EventArgs e) + { + try + { + // Usage Tracking + AssemblyInfo m_a = new AssemblyInfo(Assembly.GetExecutingAssembly()); + } + catch + { + } + + int m_total = _s.Dimensions.Count; + + // Progress Bar + buttonOk.Hide(); + buttonCancel.Hide(); + progressBar1.Show(); + progressBar1.Minimum = 0; + progressBar1.Maximum = m_total; + progressBar1.Value = 0; + + using (Transaction m_t = new Transaction(_s.ActiveDoc, "Adjust Dimensions")) + { + m_t.Start(); + try + { + if (!btn_ClearOverrides.Checked) + { + foreach (Dimension m_dimension in _s.Dimensions) + { + if (!m_dimension.Segments.IsEmpty) + { + foreach (DimensionSegment m_dim in m_dimension.Segments) + { + if (!string.IsNullOrEmpty(txt_TopOverride.Text)) + { + m_dim.Above = txt_TopOverride.Text; + } + if (!string.IsNullOrEmpty(txt_BottomOverride.Text)) + { + m_dim.Below = txt_BottomOverride.Text; + } + if (!string.IsNullOrEmpty(txt_LeftOverride.Text)) + { + m_dim.Prefix = txt_LeftOverride.Text; + } + if (!string.IsNullOrEmpty(txt_RightOverride.Text)) + { + m_dim.Suffix = txt_RightOverride.Text; + } + if (!string.IsNullOrEmpty(txt_DimOverride.Text)) + { + m_dim.ValueOverride = txt_DimOverride.Text; + } + if (btn_ResetPosition.Checked) + { + m_dim.ResetTextPosition(); + } + } + } + else + { + if (btn_ResetPosition.Checked) + { + m_dimension.ResetTextPosition(); + } + if (!string.IsNullOrEmpty(txt_TopOverride.Text)) + { + m_dimension.Above = txt_TopOverride.Text; + } + if (!string.IsNullOrEmpty(txt_BottomOverride.Text)) + { + m_dimension.Below = txt_BottomOverride.Text; + } + if (!string.IsNullOrEmpty(txt_LeftOverride.Text)) + { + m_dimension.Prefix = txt_LeftOverride.Text; + } + if (!string.IsNullOrEmpty(txt_RightOverride.Text)) + { + m_dimension.Suffix = txt_RightOverride.Text; + } + if (!string.IsNullOrEmpty(txt_DimOverride.Text)) + { + m_dimension.ValueOverride = txt_DimOverride.Text; + } + } + } + } + else + { + foreach (Dimension m_dimension in _s.Dimensions) + { + if (!m_dimension.Segments.IsEmpty) + { + foreach (DimensionSegment m_segment in m_dimension.Segments) + { + m_segment.Above = null; + m_segment.Below = null; + m_segment.Prefix = null; + m_segment.Suffix = null; + m_segment.ValueOverride = null; + } + } + else + { + m_dimension.Above = null; + m_dimension.Below = null; + m_dimension.Prefix = null; + m_dimension.Suffix = null; + m_dimension.ValueOverride = null; + } + } + } + progressBar1.Increment(1); + } + catch (Exception) + { + m_t.RollBack(); + throw; + } + m_t.Commit(); + } + Close(); + } + + /// + /// Close + /// + /// + /// + private void buttonCancel_Click(object sender, EventArgs e) + { + Close(); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.designer.cs b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.designer.cs new file mode 100644 index 00000000..4bb64a97 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.designer.cs @@ -0,0 +1,299 @@ +namespace Case.DimensionOverrides.UI +{ + partial class form_Main + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(form_Main)); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOk = new System.Windows.Forms.Button(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.btn_ClearOverrides = new System.Windows.Forms.CheckBox(); + this.ResetGroup = new System.Windows.Forms.GroupBox(); + this.btn_ResetPosition = new System.Windows.Forms.CheckBox(); + this.grp_Overrides = new System.Windows.Forms.GroupBox(); + this.lbl_LeftOverride = new System.Windows.Forms.Label(); + this.lbl_RightOverride = new System.Windows.Forms.Label(); + this.lbl_TopOverride = new System.Windows.Forms.Label(); + this.lbl_DimOverride = new System.Windows.Forms.Label(); + this.lbl_BottomOverride = new System.Windows.Forms.Label(); + this.txt_BottomOverride = new System.Windows.Forms.TextBox(); + this.txt_TopOverride = new System.Windows.Forms.TextBox(); + this.txt_RightOverride = new System.Windows.Forms.TextBox(); + this.txt_DimOverride = new System.Windows.Forms.TextBox(); + this.txt_LeftOverride = new System.Windows.Forms.TextBox(); + this.lbl_IntroLabel = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.ResetGroup.SuspendLayout(); + this.grp_Overrides.SuspendLayout(); + this.SuspendLayout(); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.Location = new System.Drawing.Point(447, 280); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 40); + this.buttonCancel.TabIndex = 7; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonOk + // + this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOk.Location = new System.Drawing.Point(366, 280); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(75, 40); + this.buttonOk.TabIndex = 6; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click); + // + // progressBar1 + // + this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar1.Location = new System.Drawing.Point(195, 280); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(327, 40); + this.progressBar1.TabIndex = 0; + // + // pictureBox1 + // + this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + this.pictureBox1.Location = new System.Drawing.Point(12, 280); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(177, 40); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 4; + this.pictureBox1.TabStop = false; + this.pictureBox1.Click += new System.EventHandler(this.pictureBox1_Click); + // + // btn_ClearOverrides + // + this.btn_ClearOverrides.Appearance = System.Windows.Forms.Appearance.Button; + this.btn_ClearOverrides.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.btn_ClearOverrides.Location = new System.Drawing.Point(6, 21); + this.btn_ClearOverrides.Name = "btn_ClearOverrides"; + this.btn_ClearOverrides.Size = new System.Drawing.Size(243, 30); + this.btn_ClearOverrides.TabIndex = 5; + this.btn_ClearOverrides.Text = "Clear All Overrides"; + this.btn_ClearOverrides.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btn_ClearOverrides.UseVisualStyleBackColor = true; + // + // ResetGroup + // + this.ResetGroup.Controls.Add(this.btn_ResetPosition); + this.ResetGroup.Controls.Add(this.btn_ClearOverrides); + this.ResetGroup.Location = new System.Drawing.Point(12, 205); + this.ResetGroup.Name = "ResetGroup"; + this.ResetGroup.Size = new System.Drawing.Size(510, 63); + this.ResetGroup.TabIndex = 0; + this.ResetGroup.TabStop = false; + this.ResetGroup.Text = "Reset Overrides"; + // + // btn_ResetPosition + // + this.btn_ResetPosition.Appearance = System.Windows.Forms.Appearance.Button; + this.btn_ResetPosition.FlatStyle = System.Windows.Forms.FlatStyle.System; + this.btn_ResetPosition.Location = new System.Drawing.Point(261, 21); + this.btn_ResetPosition.Name = "btn_ResetPosition"; + this.btn_ResetPosition.Size = new System.Drawing.Size(243, 30); + this.btn_ResetPosition.TabIndex = 6; + this.btn_ResetPosition.Text = "Reset Text Position"; + this.btn_ResetPosition.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + this.btn_ResetPosition.UseVisualStyleBackColor = true; + // + // grp_Overrides + // + this.grp_Overrides.Controls.Add(this.lbl_LeftOverride); + this.grp_Overrides.Controls.Add(this.lbl_RightOverride); + this.grp_Overrides.Controls.Add(this.lbl_TopOverride); + this.grp_Overrides.Controls.Add(this.lbl_DimOverride); + this.grp_Overrides.Controls.Add(this.lbl_BottomOverride); + this.grp_Overrides.Controls.Add(this.txt_BottomOverride); + this.grp_Overrides.Controls.Add(this.txt_TopOverride); + this.grp_Overrides.Controls.Add(this.txt_RightOverride); + this.grp_Overrides.Controls.Add(this.txt_DimOverride); + this.grp_Overrides.Controls.Add(this.txt_LeftOverride); + this.grp_Overrides.Location = new System.Drawing.Point(12, 37); + this.grp_Overrides.Name = "grp_Overrides"; + this.grp_Overrides.Size = new System.Drawing.Size(510, 161); + this.grp_Overrides.TabIndex = 0; + this.grp_Overrides.TabStop = false; + this.grp_Overrides.Text = "Overrides"; + // + // lbl_LeftOverride + // + this.lbl_LeftOverride.AutoSize = true; + this.lbl_LeftOverride.Location = new System.Drawing.Point(6, 62); + this.lbl_LeftOverride.Name = "lbl_LeftOverride"; + this.lbl_LeftOverride.Size = new System.Drawing.Size(33, 13); + this.lbl_LeftOverride.TabIndex = 9; + this.lbl_LeftOverride.Text = "Prefix"; + // + // lbl_RightOverride + // + this.lbl_RightOverride.AutoSize = true; + this.lbl_RightOverride.Location = new System.Drawing.Point(341, 62); + this.lbl_RightOverride.Name = "lbl_RightOverride"; + this.lbl_RightOverride.Size = new System.Drawing.Size(33, 13); + this.lbl_RightOverride.TabIndex = 8; + this.lbl_RightOverride.Text = "Suffix"; + // + // lbl_TopOverride + // + this.lbl_TopOverride.AutoSize = true; + this.lbl_TopOverride.Location = new System.Drawing.Point(172, 14); + this.lbl_TopOverride.Name = "lbl_TopOverride"; + this.lbl_TopOverride.Size = new System.Drawing.Size(38, 13); + this.lbl_TopOverride.TabIndex = 7; + this.lbl_TopOverride.Text = "Above"; + // + // lbl_DimOverride + // + this.lbl_DimOverride.AutoSize = true; + this.lbl_DimOverride.Location = new System.Drawing.Point(172, 62); + this.lbl_DimOverride.Name = "lbl_DimOverride"; + this.lbl_DimOverride.Size = new System.Drawing.Size(56, 13); + this.lbl_DimOverride.TabIndex = 6; + this.lbl_DimOverride.Text = "Dimension"; + // + // lbl_BottomOverride + // + this.lbl_BottomOverride.AutoSize = true; + this.lbl_BottomOverride.Location = new System.Drawing.Point(172, 111); + this.lbl_BottomOverride.Name = "lbl_BottomOverride"; + this.lbl_BottomOverride.Size = new System.Drawing.Size(36, 13); + this.lbl_BottomOverride.TabIndex = 5; + this.lbl_BottomOverride.Text = "Below"; + // + // txt_BottomOverride + // + this.txt_BottomOverride.Location = new System.Drawing.Point(175, 131); + this.txt_BottomOverride.Name = "txt_BottomOverride"; + this.txt_BottomOverride.Size = new System.Drawing.Size(160, 20); + this.txt_BottomOverride.TabIndex = 1; + this.txt_BottomOverride.WordWrap = false; + // + // txt_TopOverride + // + this.txt_TopOverride.Location = new System.Drawing.Point(175, 34); + this.txt_TopOverride.Name = "txt_TopOverride"; + this.txt_TopOverride.Size = new System.Drawing.Size(160, 20); + this.txt_TopOverride.TabIndex = 0; + this.txt_TopOverride.WordWrap = false; + // + // txt_RightOverride + // + this.txt_RightOverride.Location = new System.Drawing.Point(344, 83); + this.txt_RightOverride.Name = "txt_RightOverride"; + this.txt_RightOverride.Size = new System.Drawing.Size(160, 20); + this.txt_RightOverride.TabIndex = 4; + this.txt_RightOverride.WordWrap = false; + // + // txt_DimOverride + // + this.txt_DimOverride.Location = new System.Drawing.Point(175, 83); + this.txt_DimOverride.Name = "txt_DimOverride"; + this.txt_DimOverride.Size = new System.Drawing.Size(160, 20); + this.txt_DimOverride.TabIndex = 3; + this.txt_DimOverride.WordWrap = false; + // + // txt_LeftOverride + // + this.txt_LeftOverride.Location = new System.Drawing.Point(6, 83); + this.txt_LeftOverride.Name = "txt_LeftOverride"; + this.txt_LeftOverride.Size = new System.Drawing.Size(160, 20); + this.txt_LeftOverride.TabIndex = 2; + this.txt_LeftOverride.WordWrap = false; + // + // lbl_IntroLabel + // + this.lbl_IntroLabel.AutoSize = true; + this.lbl_IntroLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lbl_IntroLabel.Location = new System.Drawing.Point(18, 13); + this.lbl_IntroLabel.Name = "lbl_IntroLabel"; + this.lbl_IntroLabel.Size = new System.Drawing.Size(83, 13); + this.lbl_IntroLabel.TabIndex = 0; + this.lbl_IntroLabel.Text = "##null_value##"; + // + // form_Main + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(534, 332); + this.Controls.Add(this.lbl_IntroLabel); + this.Controls.Add(this.grp_Overrides); + this.Controls.Add(this.ResetGroup); + this.Controls.Add(this.pictureBox1); + this.Controls.Add(this.buttonOk); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.progressBar1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(550, 370); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(550, 370); + this.Name = "form_Main"; + this.Text = "Dimension Overrides"; + this.Load += new System.EventHandler(this.form_Main_Load); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + this.ResetGroup.ResumeLayout(false); + this.grp_Overrides.ResumeLayout(false); + this.grp_Overrides.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOk; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.CheckBox btn_ClearOverrides; + private System.Windows.Forms.GroupBox ResetGroup; + private System.Windows.Forms.GroupBox grp_Overrides; + private System.Windows.Forms.Label lbl_BottomOverride; + private System.Windows.Forms.TextBox txt_BottomOverride; + private System.Windows.Forms.TextBox txt_TopOverride; + private System.Windows.Forms.TextBox txt_RightOverride; + private System.Windows.Forms.TextBox txt_DimOverride; + private System.Windows.Forms.TextBox txt_LeftOverride; + private System.Windows.Forms.Label lbl_TopOverride; + private System.Windows.Forms.Label lbl_DimOverride; + private System.Windows.Forms.Label lbl_LeftOverride; + private System.Windows.Forms.Label lbl_RightOverride; + private System.Windows.Forms.Label lbl_IntroLabel; + private System.Windows.Forms.CheckBox btn_ResetPosition; + } +} \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.resx b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.resx new file mode 100644 index 00000000..3248e2b6 --- /dev/null +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.2026/UI/form_Main.resx @@ -0,0 +1,705 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAALEAAAAwCAYAAABexZu4AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAX + EQAAFxEByibzPwAAAAd0SU1FB9sIEwUsB2dvyRoAAAAHdEVYdEF1dGhvcgCprsxIAAAADHRFWHREZXNj + cmlwdGlvbgATCSEjAAAACnRFWHRDb3B5cmlnaHQArA/MOgAAAAl0RVh0U29mdHdhcmUAXXD/OgAAAAd0 + RVh0U291cmNlAPX/g+sAAAAIdEVYdENvbW1lbnQA9syWvwAAAAZ0RVh0VGl0bGUAqO7SJwAAHVJJREFU + eF7tXQlYjWn7/1BpJaREkkRksqQoxESEiWTJvi9jGQzDDDOWZIbB8A2yztiyjGns24SoSIm0mpQtJVJp + J9ny/91dc7pOp/uc931PMf/vumau65fm9D73+yz38ruf7fzn/fv3/+Jf/E+D/bAq8O7dO+3CwsK6qamp + zW7dutU+NDS0/+nTp8cfOHBgFjBbhmPHjk0OCgoaFhcXZ5+SkmJFZUpKSjQ5mVUNek9RUVHtR48eWf71 + 11/tL1++POTs2bNjf/vtt5kHDx6cSb8HBwd7xcbG2j98+LB5fn6+EcpocLKkAH2j9ebNG13ub1IBWRrP + nz+vk5aWZpGYmPhJZGRkd/Tn8HPnzo329/efvn///tnUlj///HNMYGDgyPDw8F4Yj3bJycktnj17Zvr2 + 7VuqRzVFuVWF169f69F7Hjx4YB0TE2OPPh4UEBAw+vfff59GdUMdp1Fd0c8Db9682enu3bs2mZmZjV69 + eqXHyePAfqgmqqHCWjk5OeaXLl0a5O3tvd3DwyOkXbt2iY0bN86qVavWKw0NjffVq1cvhxo1arzX1dV9 + 26hRo+w2bdok9e/fP+Snn35aExUV1QMKRgpdpR1M8iC3Dgay67Zt25Z5eXkF2tnZJZibm2caGBi80dTU + LKsb/a6np/e2QYMGuba2tnc/++yzy6jbahhcN1J+obrR36EkNV6+fKmdm5vbmN4Jw525cOHCXT/++OPP + +FyyIpNMDLAWBroFBt/Lx8fHF/18yd7e/lazZs0e169fvxD9+U5LS6u0b+Xboq2tXWJoaFhM49G6det7 + 3bt3vz5nzhz/Q4cOzYQhtyG5le1vGFX1Fy9e1E1KSnLct2/frM8///wYvcfGxuYB9aO+vn5pH8vqRv9S + XamfUfeCFi1apHTt2vXmpEmTTu3atWve/fv37dFPtVTVi/1QKoqLi2vDkoaiwv6oxJNq1apB8n8qBXT4 + m549e944efLkJCiMEfdeqYCBmcHLznF1db2OgX7NvVcMqKybm9s1RJaJGHhD+Xegs3WhsGbwiJ/C28yC + wv7ar1+/UChYJg2YTMYnn3ySkp2dXU++rBAQCUxPnTo1edy4cccbNmyYWxX9LEPdunVfTpgw4SQc0Eg4 + Ix3u/aqAdmshEjiuX79+NZQwDn30hnuPVNSuXbto0KBBF/HfMESvWty7K3wgBXl5ecaHDx+e1rdv32vw + tIV4aYliJeRBigmPm2lpaZkGq8yGRap8ngDLfTF69OjTsGwH6iiuHgKoBqUy+fXXX7/t1KlToo6OTjH3 + HjVQAu9RNHHixBMIkZ+hH2YsXrx4k6enZ0jz5s2fQCly6V3KFG3MmDGnRHri6gjHjeHV5nXs2PE2vZOT + Jw+8swT9m4P2xnXr1i0GEVCwnwlUVyMjo/xp06b5Z2VlWcOrCnplODB90ADXqVOnHoZhZWJM33KyAYoC + RSYmJrnQA2XPKEMJ6desWbMOgnK2xnvLUbpyFRILVNzg6tWr7gMHDgyGkgkqBTqmYOzYsScx0DNBEzqD + f9rduHGj9/bt279zdHRMRCertFqEnXcODg73YOkusEbRfBkepVZYWNgA1DOoZs2aUjquBB1djE7PNzY2 + zsa/efAsRRjkd4rPwruWoH2FCImiFIVAA+3r6/sDjLIGV28ZQEU04NH7DBgwIAj1ERU5zMzMshYsWLDz + 2rVrfTIyMszBMdsiOj7mnlWFkSNHnk5PT2/J1YuAcahx586dTvPmzfODY8riZMhgamqaNX/+/J2I1p4R + ERE9wYNn9erVK0KFwrOAnrxDVLuOdrWQr0u5iolANYRAi0WLFu3CwJLnrfAieZBlOzk5/YUO9cCAsF4U + XqYJGugHZRBsEGQlIsFqw8lRBBTYALzzv8SzOFnKAF5cNGzYsIDjx49PhbE5PnnyxPr27dsOZ86cGf3F + F18chEeotCfHO57DCfTh6i0D6l8Hg/0V0QZOhiJg6CUuLi7R4N09YRxlngpUzAD04xRXRghfffXVHo5a + QGb9vXv3LgC3zuTKyQN5zn04Ek+UK+d8CgoKLCdPnnxcWaRSBnJooK1HEcXKKGaZUCGQ10BC08PZ2fmm + GIUj0o5EKCI1NZVogFKPQ5wSvHE3VY6TIw/yhAh1vyvyUHnQuxBy7NFBJ2C5UnhvSZcuXW6BEw6lxA+y + KoRSvFcbmfVYJIEZTHnRAD9OBxVrrChfBkS6Wlu2bPGGsr/kyiuC+nrEiBEXkOyZo/3l6k39gTxgrpgx + UwSUNCM6OtpFXh6cSFtQoZOIbK+4MvKgRDM+Pt4VtISNnpDVHo7pFldWFYiWgsINlMmpIJgDZZxBQUGD + 27dvf4cTygEKEYvw3x3lVYXMavAcPeBt8jgZHIhTx8bGdmVk0YBVR/js0r9//yvySZQQyIDgxSKTk5Pb + U1s52TLgHRobN270AX1QO3FBohKkbGCpDZRngMbkc2U5wNvdTUhIoL6uII8AWtCqXr16gpFTEWjjW+QS + i0kG6quNvKQznNgtMQZRp06d5wcPHpyLskqnJEnmunXrfuLKCwE0Zh9klEZ3Vrg8aFCvXLkyCMnYU04Y + Bwq54eHhHigvxPn0586de4iToQzEizZs2LCS8zjgSm1gPHFSQxQGJhbeu728PFV49OhR6w4dOiRwsoRA + dVu7du0qTi4B9bC1srKSxGGhCD9inFTNX9ccP378Ca6sEL755ptfSEZMTIybnZ1dMvcMB4T8Iwj5dRXq + UQGUFEpxODIgT7iAMS+lOqxgGUgxrl+/3q9JkybEfUQlLmSl33333TZwqZqcTHmAc3ZGyEnj5KgCON5J + GEA5j/n06VNLDw+Pq/i76ASLAIV5As/eTV6WEJDU6BFd4eQJAR6qiCgLJ5foCjzMfkQG0W2AUb9HyBas + f2ho6EATE5NsToYqfPvtt9vg5Z2gwA+4v3No2rRpBpI+B64eikBOZNGgQYMXnBxV6Nu37yWMgz7JYAXL + QOGja9euUZwQZSAeBK7TjpOnCHikHzEIkrmau7v7FVpEkMmBxdejJIS8NPe8MlB27OfnNx+yBA1OHhTy + kTSu4WQKwcbG5j7+s+Hkgs60AQ+VpGjgh++JLnDy5EFz+dOnTz8kJUrRjMjmzZu/79mz502xhgX5JUuW + LNnOJYQc8vPzDVq1aiXZkbm5uQXD6EvnjVnBBFolQbJwjhOgDNRBP/zww39RXnA+F43Ut7e3v8/JEQJC + SYi8EkMRF1DGzz2rCkg8r8Ka1Vr+BS9eyskUAuoeisSRDbNIwKZzZVSBlDgtLc2Wk6eIe/fuOdna2t7j + 5HBo3rx5xqhRoyTpQO3atYthpHbc+zk8f/6c9EB0riVDv379LkEHSpemWcH4owYs0AcdJGk6CY1OQTLX + mZOpCIQbe319fcmKR5gzZ84+4uqQU51mIhCOJE2jEUxNTZ9du3atv2K9xAAegKatznJyhbBmzZqVnEzi + tMgP9nFlhEB7PCBDZf5BIHoYFxfXi8aJkyMPJIJ5Xl5ewXp6epJWNqH0Z/Ee0fse4IlrtWzZ8gknSxWQ + HKvkxNWIDoDXCM4BKmLSpEknMMClPEUIQUFBHlKNhECLFr/88st3JANWXG/q1Kl/4HNJPJgwYcKE44gG + 7DKmEB4/ftzUwcFB8tQQJTBo9yBOJtVl8ODBwVw5IYwZM+bPvLy8BpxcBjUiIiIQhD4LozlxlC/XdzQj + YW1tnYZIswpeW1KkhMIX+/v7f8G8UykyMzOtjI2NRU0lygN5FyWcpTSwglBy0eA0O7mCQjh27NhERXnK + cO7cuaFi5hoVAa+bFRUVVTrFFhISMgjhS3JSQN4lODh4sGKdxCIyMtIVSZLoKTAZGjVqlA8DYBdriN+B + alzhyglBV1e3GBx9PVE0TjaHnJwcU4zXlBkzZvxGU5Kk1IguJ7Zu3eoD2tEROrBVao4BD/8QZUVRGxnU + mZ2g1VFaMZbJqCA0JiamW5MmTSRP5mOACpBgfKIoTxmQxLQ1MjKSTCfQ0adhaLqFhYXGyFDDuGeEgHKh + ubm5am8q2rlz53xaYOBkqwIU5TKiB+v9yRMjRIZw5cSAFI44PijSABiE0sUgMXj06JEtnIPkDVKgEoEY + G9HRjejN6tWr13KylIHyrtGjRwcgrzCWyVEUXMPHx2cDZZicAFXo06fPVQyQ6M6jxi5atGgHrEq0N27R + okXa9evXS5drwQPH16lTRzIXpraB768AB1VrzzJ1PO3W42SrAmX3lLWj3WzSSxz/yy+/3MuVlQJEqmfD + hg07f/To0SlQxqYwDkk70pDoaq9YscIXsiTrACjIMsgQ3DQkA+rXwsnJKZ6TpQxwsI+jo6P7YRzKpljL + CYV3M7Wzs7vLFVYFUoz58+fvRgdI2mWWnZ1tOXHixGMYYJpmU9VpJfXr139+/vz5EVACTUocRo4c+Sfz + nCCI8yGp7MjVRwzIA4APS86maUfbiRMnJqLuSgeZ9s9yZdUBqNo7WpBZuHDhToTez4qLi+uh71SuRhJA + d2zs7e1vczJVAflNSVhYmOhEGUarhyR3rZRNQIjcefv375+H8uUckLzQ6ujk8Qgjkpcn0WFvaEOIqgFS + BtrIsWfPnq/JImnjPIULmVz6HaT/OcJsILhT2YaZlJSUtvr6+mrtB6bdcNSB8nWQgvj4eCfw4WecbFWA + EeampqbSNkJWLuH+/fsOaK/k/hcC9SMU+t7y5cs3x8bG9kD7lXpnMjRaQOHkqIKVlVU6xkUUnaRFih07 + dixBYik6n0G/5ILDfw4dq+Aoy36Bh6k1ZMiQUJBsSWSeQHt+AwMDaadSOeFigU6tQZtX4uLiXE6fPj36 + yJEjkw8fPjwZyd/wpKSkLvn5+fXxXKmB4FlNogMYGMn1JMyZM8dP/t1SQEZ66NChuUikJCekzs7O8Rg8 + lXwRBq0/c+bM39RtmxBobMkAab8wvKY7rQXIv5/GgXbqcWWF0L1790hE1jKeqgQ1YMitvL29fZFci8qH + aDEMBnj74sWLI9B/7KJU2S9ZWVnN1Vn+I9C+W2WbcqoaoDx1yDNz9RACQt4bhKP5nFwxQDjWWLBgwW75 + aCEW8+bN283JlAcZSUJCQlczMzPJnl4qTE1Ns8HB9z958uQTKG+pd8vJyWkEhUnknhcC7WyDIzRg2lQd + iabWs2fPzBGtv0LEjRFDIdDHJch5XtB+5Xv37tHiidIcpuyXCxcu9OSEiQGUPxsknV1KrWokJyfbNmvW + TPRmJHlQ0hMREVFua6EUwHNpd+vWLZaTrQownrd08oOTyUCbdn9hACVP4akDGxubR6AQU2CgNUHZnOl0 + BvecKpDCLV269FeZMcBj1klPT29Bh1J37ty5jKbuMGaiZ7wwTgV0YiYqKsoN9apgGIoo+wV8aRonUAzM + zc2zYMVN5AV/KFy6dGkILFmtcNuyZcsHMDZrTq4YwGu1hHJJphIWFhZPQJU6cTI5vH792mD37t1f16tX + T9SG+MqC+Pq6detWw9AmiTmpowhS4qFDhwYtXrzYd/z48cfhbZNoLzJFaCTSgltWQRlK6Hk67bFhw4YV + oJD28OqUt4jKsUp/REdHa/Xu3XsL9wIxsLS0zMBLTRSFfwj4+vou5uogBl27do1HPdWeHz5//rwXJ1cI + 8N43YeQNOZnKQAsXR48enUEerLqIAwOVBZT3pYuLSzx4s+SpNamg9tCWA+hNupeX1wUked9BBzvn5eWR + DqnaUsqi9EdISEgPIyMjtTvqYyoxeNwerg5iMGLEiPMIeZJ2rMkAbqfx/fffb+TkCoH2RFBCyskVQE3a + i0JL5Do6OpJ3+/1/AupfYmtr+xBKG7B27dp10Dl3OuqGflVrvl4epT8qw4cJH0uJwbUMBg8erNbSLIEM + gJMrBgUFBUbu7u5qrajRRSGcTLFA3+oHBwcP8/T0vAxn81G4slTo6enRSfZnoGzJnTp1iqE7R+hOi02b + Ni05e/bsSDpUCk/bCG3RoVkQrp3qovRHZZWYNs2rOjNWVSguLq5LhyG5OoiBt7f3Bk6uGCBDbt2qVauH + nFxVoOVbuo+BkykRGjTVSGfLZs+evZ9Of0Bx1JpNqmoQPYB3XR8TE+NEN/g8ffrU/MWLF3WQlElaLVQX + pT8qq8R0YuDhw4ei902oC7o8xNHRUfLuMRnWrFmj9FiQEJBQDqeNQ5xcVYBXSgAflnRJigjUhKI0O3Hi + xNRJkyYdNTU1/Ue9MynxgQMHxM6+VDlKf2CAeurq6laonFjA2xTcuHGjh6Lwqsbt27cd6Zojrg5igMzX + m5MrBqtWrVrNyRQCLV68evVKm5NZWdC8MhJATSh0q3379s2mnWhImCTPnlQWNDuxcuXKzbIpto+N0h+R + kZEdnJycJK+Xy0D7ApBJT1AUXlWgwXr8+HHL3r1730D2rHaCs379eh9OvhAQFvWGDBkSxMlUBU1NzTe7 + du1ajPqr5IBQcp3MzEzT5OTkZjBUa0S1pllZWSbIAUQrP/VRbm6uMd2X8emnn8ZqCFxIU9WYMmXKUdA9 + tZfzK4OyXxYtWjSLq5wYIJyULF++fAsGu9KZJgdSYHiZa3hXpaZ/fHx81nPyhQAFa2ptbf2Ik6kKtBwf + Hh7uxskk0IwFuLb9N998sxs0Kb5x48Y5devWfWVhYZHZpUuXaLoskM7PQUGlTDtpwDO3mDp16lF4yA8+ + NSdDz549r4E20fYArk6VAvqpemhoqDv6qgM3y1P2S1BQkAsaXaFyYgHrv1lYWFjljUhKSur4dzJX6fnL + GTNmHOTeIYSQkBBPKJc6m+BzkfCaczKhmJp04SCeoZUstm2khMj2UwMCAsahjCQH8fLlS8N+/fqR4VeQ + +yFABih1Q7wYUBSLiIhwb9CgQS6S2TRaXcRn5WhL2S/Z2dlNLC0tVd6ppQrExaKjo10prMm/QF0glGol + JCQ4Es1RZ1MSh759+16nExTc+5SBvICvr+8qdVYJO3funIjoVFtRJg0MDMPrbwVmy8oD45JKG2AgSxLn + pFs7DQ0N1TrHKBW0SHL48OHPqb+4uqgD9FP1mJgYVyTHZUv9dK8bKNpC5AJlfVFWAINbc8mSJb9qa2ur + nRh8/fXX+6F8oo/IKAMqXxPWN7Bt27bJkFtlK0g0hyl12RmdpTFu3LjjnDwheHl5nedk0r5tqadSUPeU + tLQ0UffQyXDnzp228F5qJ8JSMWbMmPPQowpGqw7IGT548KCTs7NzuSsjKImcMGHCaUSaslPq5QpmZGQ0 + o/AlX0gKaCMQTUXJy5QKUmBk2vONjY0r3L9AdMfe3j4RXl/y+j4B5V7+8ccfs7n3ciCPGRsb2wvWn8PJ + E8LYsWNPcXLpXJmWlhZbRhXAc48UFRWJPj2TkpLSslWrVpIOeyLilBC4vwmhfv36eYGBgUR92PqIBby5 + Bh2zIqej+A5EtxjkKERbyiJ+ucLkvletWrW2MuEb4T8BHoAIuCRaQWEIGbkZ3r9e2Q4ucLwQeGgPNCSO + +7sY0MXdUARTsnSuHjIgomjSQVQ7Ozu1Z22QJ8ShXRXoCwxpCve8EIyMjApAK7wU5SlDXFxcF3Nz83RO + ljLA8M7SpeD4XS1Fpgu2MY5WUsdfhvz8/Mbbt29fTJfwKMpu165dEt1IhefKUZZyAggPHz60hbdT654x + Arl7NOQ2uAzdJSw4RUSNpRAUFhbm4enpeREeqoIBkUxk61Gomz1k6np7e2+lzxSfEwOaSVm3bt36Fy9e + sBtySLlpZdDPz28eOlLyfQjyIKUDr/+UPLr8O/z9/T/nnheDiRMnHkefibrw5ciRI7P09PRE00MTE5Oc + GzduuF+4cGGEuo4M4/Ju+PDh50DbWpNj4uqlCOpz6IBeZGRkL7qwR0dHR7HOJRYWFulXrlzxVOxLQrn/ + +RsaCAmjDAwM1ArZMiCbL5gzZ87+q1evetCaOZKSUo+EhmmCzxjRilN4eHi/LVu2/ODm5hauLHGio090 + jy2su2y/cmpqqi3kq73kineRMhyDVbtRXdAx1QH6Xg2zgICACUOHDr3IlVMHML54oljwMA3R9lKjBkVx + Qe6hlpLQnmgYhuAZQfS3toeHx2VOhjIgCv6MHIDmenWnT59+hJI17jkxsLGxSd26das3lLkl6lJhTzD6 + oib6uxGcXdcdO3Z4I0cI11XyFRSgRMl0PI3GSVEOocIHBDREZ82aNf9V5xiOPGg5EsqWRw1CGI+lTSF9 + +vS57uDgcB8Zdxrtl6WDm1xZAi1noyOW/b1Fryw8UWPopHRlJvSpbvCUOYg6d93d3a/SPDTVk84YEvem + Z8gbOTo6JuFdu+luB0UZYgF6lEff0UFtHzBgwOVu3brdUpd3otzbjRs3fq/Ky2H89A8dOjQHhiKqztRO + Gpvnz5+XRSc65ODq6hrBPS8WdK9I06ZNn1C7YRS/zZ07dw9twoJTOgyljYBypiD3eaZszzHG6H2vXr3C + oqKieilTYAL7IQHh1owu6aMjPdwLPiQwUK979OgRCQ82Sua9FIFM/RNwY7VpjxAwsG+GDBlyMSkpySE7 + O7sZcX3uuX8CxFnls3M5UFg2oAOVYqfvoChvoWTXHjx4oHi1rQYihmvHjh0lHamvKsBpvJwyZcoxRN0O + qIvKFU/2QxmgyI1g9asNDQ0/2m4puoWdvG9BQYEpVyc5aNHXKIC3Sr5RUQjowLfLli3zhWcqqwMSquE0 + R8k9/7GB8XiFwS138yiU1zA6Orr3tGnTjtJKIVdOEXSqefbs2QeQ7TeTlyWHGshDOnXv3j2mMtRCKtq2 + bXv/wIEDX8GBidoFx34oD4Qm7eDgYC80JApuX61j8mLQsGHDLIQbP3g+J3AoUatTxKsiIiIGWFtbp6qb + 6MmDqA2S0ugTJ05MhlKU23lGCSUtHlSFIiPZKqbk2cfHZ5Ovr+9ydeq/cOHCX2hxAeWXIPfYi/GJBXWj + rwUTlEPhG5ElFpRjVpHcTTocEMarZWRkWCxdunQLxuiDHWClhBsU8/Hy5cs3PX78uBV0QPRSO/shAw36 + AhZ02DJwuwdiuZYQYN30BXy5dBEKkjy64EPwUCADTSQH3ejWm7/310pWZjJOKyurpz///PP3fy+GsOGL + qA088kg6LCq1D8APX5uZmWWPHz/+5NGjR6dioCzJCElmYmKiE7iiH50zA5USRd+IL5In5f7GgZQbEaaI + vghm8+bNSynhQptUhml5wKj1Efn6EcWiGzMpp+DeIxXU9xYWFk8px6EkD85C8skb9kMVoJ1S5v7+/l/S + 9fm0TK1OmNHR0XlD+2xXrFixCRWnKSi1jgzJg6bFLly4MGrgwIEXYRiiwikUsQQJ5/Vt27YtJSPl5HKg + fc2072Hw4MEXmjRpko2BqCCbkkPIf0cXSI8aNerM3r17F0FxaDMPu9MLn2sgdLfZvn27D5KsICh8HslQ + lCsVMJ63tPI5a9asA2fOnBkFmtaIe79YwEPq0Le9gm5t7tChwx11j03Bqxeg/wJ37ty5GAZtrSpxEwL7 + oRDohVAabfqSQLoiCUqwkO4w8PT0DEJYi3BwcIhr3779bfpKXDs7u7/guW7Q3+bPn7/Hz89v9q1bt5zR + mbTVUPKhQAHQV97qpqSktEFyM97b23vTuHHj/qRjRW5ubleBUChIMAb00I4dO75G4vJpYWGhCbyhaI8k + A/UBHbVBH1jFx8c7nz17dgRd+AJMgaedGBIS4nH37t2OdJcDkjBtsYNEdUEuopuent788uXL/ZEfLFqw + YIEfIs1FGFwYaEAU+jYBSJQH9bmzs/ONAQMGBCP7P7ly5co1cDZT6asQ4HgagBZW6V5fGjsYswmNJX3V + LzzpL0OHDg10cXG5BqoUjzrdltUNyWGsq6tr2IQJE87Q95UEBAQMe/r0qQ36Tx/tVVt5ZWA/VAeoTOmX + fWPQGsCrNYHXaYbkwyotLa0pBtoUA2NIz3BlPxSgODXQ2XpI0OrQGTkC6mgIb/KPbN5WF+g3LaJaeXl5 + xuCnZtS3gJU8oPRNsrOzS/sZbf4ox4Lkgb7WQB1rYfxNMP4WCnUzp7rTWOA5tVbyVIH98F/8i/8dvP/P + /wGzKmJ5332wygAAAABJRU5ErkJggg== + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.SharedProject/Entry/CmdMain.cs b/src/Case.DimensionOverrides/Case.DimensionOverrides.SharedProject/Entry/CmdMain.cs index a75cacf1..95f32fc6 100644 --- a/src/Case.DimensionOverrides/Case.DimensionOverrides.SharedProject/Entry/CmdMain.cs +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.SharedProject/Entry/CmdMain.cs @@ -22,14 +22,14 @@ public Result Execute(ExternalCommandData commandData, ref string message, Eleme try { // Version - if (!commandData.Application.Application.VersionName.Contains("2021")) + if (!commandData.Application.Application.VersionName.Contains("202")) { // Failure using (TaskDialog td = new TaskDialog("Cannot Continue")) { td.TitleAutoPrefix = false; td.MainInstruction = "Incompatible Version of Revit"; - td.MainContent = "This Add-In was built, please contact CASE for assistance."; + td.MainContent = "This Add-In requires Revit 2020 or later. Please contact CASE for assistance."; td.Show(); } return Result.Cancelled; diff --git a/src/Case.DimensionOverrides/Case.DimensionOverrides.sln b/src/Case.DimensionOverrides/Case.DimensionOverrides.sln index 38353eb4..3c3e1d9c 100644 --- a/src/Case.DimensionOverrides/Case.DimensionOverrides.sln +++ b/src/Case.DimensionOverrides/Case.DimensionOverrides.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.4.33403.182 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.DimensionOverrides.2023", "Case.DimensionOverrides.2023\Case.DimensionOverrides.2023.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}) = "Case.DimensionOverrides.2026", "Case.DimensionOverrides.2026\Case.DimensionOverrides.2026.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" +EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.DimensionOverrides.SharedProject", "Case.DimensionOverrides.SharedProject\Case.DimensionOverrides.SharedProject.shproj", "{695A2D82-DD93-4712-99CA-95978AAD6D94}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.DimensionOverrides.2022", "Case.DimensionOverrides.2022\Case.DimensionOverrides.2022.csproj", "{B5ED3506-2771-440B-965A-FCF0E4C8AD93}" diff --git a/src/Case.Directionality/Case.Directionality.2026/Case.Directionality.2026.vbproj b/src/Case.Directionality/Case.Directionality.2026/Case.Directionality.2026.vbproj new file mode 100644 index 00000000..19e0731d --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/Case.Directionality.2026.vbproj @@ -0,0 +1,128 @@ + + + + + Debug + AnyCPU + {82175DB8-919C-4E74-B519-6D909FC77121} + Library + Case.Directionality + Case.Directionality + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.Directionality.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.Directionality.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + form_Main.vb + + + Form + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + form_Main.vb + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + \ No newline at end of file diff --git a/src/Case.Directionality/Case.Directionality.2026/My Project/Application.Designer.vb b/src/Case.Directionality/Case.Directionality.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.Directionality/Case.Directionality.2026/My Project/Application.myapp b/src/Case.Directionality/Case.Directionality.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.Directionality/Case.Directionality.2026/My Project/AssemblyInfo.vb b/src/Case.Directionality/Case.Directionality.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..8e18c8ed --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.Directionality/Case.Directionality.2026/My Project/Resources.Designer.vb b/src/Case.Directionality/Case.Directionality.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..0a8e5018 --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.Directionality.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Case_Clearly() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.Directionality/Case.Directionality.2026/My Project/Resources.resx b/src/Case.Directionality/Case.Directionality.2026/My Project/Resources.resx new file mode 100644 index 00000000..4c7c21ef --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/My Project/Resources.resx @@ -0,0 +1,255 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + 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 + + + \ No newline at end of file diff --git a/src/Case.Directionality/Case.Directionality.2026/My Project/Settings.Designer.vb b/src/Case.Directionality/Case.Directionality.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..b6530d38 --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].Directionality.My.MySettings + Get + Return Global.[Case].Directionality.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.Directionality/Case.Directionality.2026/My Project/Settings.settings b/src/Case.Directionality/Case.Directionality.2026/My Project/Settings.settings new file mode 100644 index 00000000..f7f176ac --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/My Project/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Case.Directionality/Case.Directionality.2026/Resources/Case_Clearly.png b/src/Case.Directionality/Case.Directionality.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.Directionality/Case.Directionality.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.designer.vb b/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.designer.vb new file mode 100644 index 00000000..0ad851e8 --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.designer.vb @@ -0,0 +1,270 @@ + _ +Partial Class form_Main + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Main)) + Me.GroupBoxWalls = New System.Windows.Forms.GroupBox() + Me.DataGridView1 = New System.Windows.Forms.DataGridView() + Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.Column3 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.Column4 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.Column5 = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.LabelParameter = New System.Windows.Forms.Label() + Me.ComboBoxParameter = New System.Windows.Forms.ComboBox() + Me.RadioButtonAngle = New System.Windows.Forms.RadioButton() + Me.RadioButtonText = New System.Windows.Forms.RadioButton() + Me.GroupBoxWrite = New System.Windows.Forms.GroupBox() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.ButtonHelp = New System.Windows.Forms.Button() + Me.ButtonOk = New System.Windows.Forms.Button() + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.GroupBoxWalls.SuspendLayout() + CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.GroupBoxWrite.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'GroupBoxWalls + ' + Me.GroupBoxWalls.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBoxWalls.Controls.Add(Me.DataGridView1) + Me.GroupBoxWalls.Location = New System.Drawing.Point(12, 12) + Me.GroupBoxWalls.Name = "GroupBoxWalls" + Me.GroupBoxWalls.Size = New System.Drawing.Size(516, 388) + Me.GroupBoxWalls.TabIndex = 2 + Me.GroupBoxWalls.TabStop = False + Me.GroupBoxWalls.Text = "External Walls Found in Model" + ' + 'DataGridView1 + ' + Me.DataGridView1.AllowUserToAddRows = False + Me.DataGridView1.AllowUserToDeleteRows = False + Me.DataGridView1.AllowUserToResizeRows = False + Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2, Me.Column3, Me.Column4, Me.Column5}) + Me.DataGridView1.Dock = System.Windows.Forms.DockStyle.Fill + Me.DataGridView1.Location = New System.Drawing.Point(3, 16) + Me.DataGridView1.Name = "DataGridView1" + Me.DataGridView1.ReadOnly = True + Me.DataGridView1.RowHeadersVisible = False + Me.DataGridView1.Size = New System.Drawing.Size(510, 369) + Me.DataGridView1.TabIndex = 0 + ' + 'Column1 + ' + Me.Column1.HeaderText = "ElementID" + Me.Column1.Name = "Column1" + Me.Column1.ReadOnly = True + ' + 'Column2 + ' + Me.Column2.HeaderText = "Type" + Me.Column2.Name = "Column2" + Me.Column2.ReadOnly = True + ' + 'Column3 + ' + Me.Column3.HeaderText = "Facing" + Me.Column3.Name = "Column3" + Me.Column3.ReadOnly = True + ' + 'Column4 + ' + Me.Column4.HeaderText = "Length" + Me.Column4.Name = "Column4" + Me.Column4.ReadOnly = True + ' + 'Column5 + ' + Me.Column5.HeaderText = "Level" + Me.Column5.Name = "Column5" + Me.Column5.ReadOnly = True + ' + 'LabelParameter + ' + Me.LabelParameter.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LabelParameter.AutoSize = True + Me.LabelParameter.Location = New System.Drawing.Point(534, 22) + Me.LabelParameter.Name = "LabelParameter" + Me.LabelParameter.Size = New System.Drawing.Size(120, 13) + Me.LabelParameter.TabIndex = 3 + Me.LabelParameter.Text = "Write Facing Results to:" + ' + 'ComboBoxParameter + ' + Me.ComboBoxParameter.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ComboBoxParameter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList + Me.ComboBoxParameter.FormattingEnabled = True + Me.ComboBoxParameter.Location = New System.Drawing.Point(537, 41) + Me.ComboBoxParameter.Name = "ComboBoxParameter" + Me.ComboBoxParameter.Size = New System.Drawing.Size(209, 21) + Me.ComboBoxParameter.TabIndex = 4 + ' + 'RadioButtonAngle + ' + Me.RadioButtonAngle.AutoSize = True + Me.RadioButtonAngle.Location = New System.Drawing.Point(39, 30) + Me.RadioButtonAngle.Name = "RadioButtonAngle" + Me.RadioButtonAngle.Size = New System.Drawing.Size(94, 17) + Me.RadioButtonAngle.TabIndex = 5 + Me.RadioButtonAngle.Text = "Write as Angle" + Me.RadioButtonAngle.UseVisualStyleBackColor = True + ' + 'RadioButtonText + ' + Me.RadioButtonText.AutoSize = True + Me.RadioButtonText.Checked = True + Me.RadioButtonText.Location = New System.Drawing.Point(39, 63) + Me.RadioButtonText.Name = "RadioButtonText" + Me.RadioButtonText.Size = New System.Drawing.Size(88, 17) + Me.RadioButtonText.TabIndex = 6 + Me.RadioButtonText.TabStop = True + Me.RadioButtonText.Text = "Write as Text" + Me.RadioButtonText.UseVisualStyleBackColor = True + ' + 'GroupBoxWrite + ' + Me.GroupBoxWrite.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBoxWrite.Controls.Add(Me.RadioButtonAngle) + Me.GroupBoxWrite.Controls.Add(Me.RadioButtonText) + Me.GroupBoxWrite.Location = New System.Drawing.Point(537, 80) + Me.GroupBoxWrite.Name = "GroupBoxWrite" + Me.GroupBoxWrite.Size = New System.Drawing.Size(209, 106) + Me.GroupBoxWrite.TabIndex = 7 + Me.GroupBoxWrite.TabStop = False + Me.GroupBoxWrite.Text = "Record Direction as:" + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = Global.[Case].Directionality.My.Resources.Resources.Case_Clearly + Me.PictureBox1.Location = New System.Drawing.Point(541, 287) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(205, 67) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 9 + Me.PictureBox1.TabStop = False + ' + 'Label1 + ' + Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.Label1.Location = New System.Drawing.Point(541, 189) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(205, 54) + Me.Label1.TabIndex = 10 + Me.Label1.Text = "All wall instances of wall types with their 'Function' parameter set to 'External" & _ + "' are recognized by this utility." + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ProgressBar1.Location = New System.Drawing.Point(541, 360) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(206, 40) + Me.ProgressBar1.TabIndex = 11 + ' + 'ButtonHelp + ' + Me.ButtonHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHelp.Location = New System.Drawing.Point(537, 360) + Me.ButtonHelp.Name = "ButtonHelp" + Me.ButtonHelp.Size = New System.Drawing.Size(60, 40) + Me.ButtonHelp.TabIndex = 15 + Me.ButtonHelp.Text = "?" + Me.ButtonHelp.UseVisualStyleBackColor = True + ' + 'ButtonOk + ' + Me.ButtonOk.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonOk.Location = New System.Drawing.Point(620, 360) + Me.ButtonOk.Name = "ButtonOk" + Me.ButtonOk.Size = New System.Drawing.Size(60, 40) + Me.ButtonOk.TabIndex = 14 + Me.ButtonOk.Text = "OK" + Me.ButtonOk.UseVisualStyleBackColor = True + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.Location = New System.Drawing.Point(686, 360) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(60, 40) + Me.ButtonCancel.TabIndex = 13 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'form_Main + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(759, 412) + Me.Controls.Add(Me.ButtonHelp) + Me.Controls.Add(Me.ButtonOk) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.Label1) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.GroupBoxWrite) + Me.Controls.Add(Me.ComboBoxParameter) + Me.Controls.Add(Me.LabelParameter) + Me.Controls.Add(Me.GroupBoxWalls) + Me.Controls.Add(Me.ProgressBar1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(775, 450) + Me.Name = "form_Main" + Me.Text = "External Wall Facings" + Me.GroupBoxWalls.ResumeLayout(False) + CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit() + Me.GroupBoxWrite.ResumeLayout(False) + Me.GroupBoxWrite.PerformLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents GroupBoxWalls As System.Windows.Forms.GroupBox + Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView + Friend WithEvents Column1 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents Column2 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents Column3 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents Column4 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents Column5 As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents LabelParameter As System.Windows.Forms.Label + Friend WithEvents ComboBoxParameter As System.Windows.Forms.ComboBox + Friend WithEvents RadioButtonAngle As System.Windows.Forms.RadioButton + Friend WithEvents RadioButtonText As System.Windows.Forms.RadioButton + Friend WithEvents GroupBoxWrite As System.Windows.Forms.GroupBox + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents Label1 As System.Windows.Forms.Label + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents ButtonHelp As System.Windows.Forms.Button + Friend WithEvents ButtonOk As System.Windows.Forms.Button + Friend WithEvents ButtonCancel As System.Windows.Forms.Button +End Class diff --git a/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.resx b/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.resx new file mode 100644 index 00000000..41017316 --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.resx @@ -0,0 +1,586 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + + + AAABAAUAAAAAAAEAIACAIgAAVgAAADAwAAABACAAaCYAANYiAAAgIAAAAQAgACgRAAA+SQAAGBgAAAEA + IAC4CQAAZloAABAQAAABACAAaAQAAB5kAACJUE5HDQoaCgAAAA1JSERSAAABAAAAAQAIBgAAAFxyqGYA + AApBaUNDUElDQyBQcm9maWxlAABIDZ2Wd1RT2RaHz703vdASIiAl9Bp6CSDSO0gVBFGJSYBQAoaEJnZE + BUYUESlWZFTAAUeHImNFFAuDgmLXCfIQUMbBUURF5d2MawnvrTXz3pr9x1nf2ee319ln733XugBQ/IIE + wnRYAYA0oVgU7uvBXBITy8T3AhgQAQ5YAcDhZmYER/hEAtT8vT2ZmahIxrP27i6AZLvbLL9QJnPW/3+R + IjdDJAYACkXVNjx+JhflApRTs8UZMv8EyvSVKTKGMTIWoQmirCLjxK9s9qfmK7vJmJcm5KEaWc4ZvDSe + jLtQ3pol4aOMBKFcmCXgZ6N8B2W9VEmaAOX3KNPT+JxMADAUmV/M5yahbIkyRRQZ7onyAgAIlMQ5vHIO + i/k5aJ4AeKZn5IoEiUliphHXmGnl6Mhm+vGzU/liMSuUw03hiHhMz/S0DI4wF4Cvb5ZFASVZbZloke2t + HO3tWdbmaPm/2d8eflP9Pch6+1XxJuzPnkGMnlnfbOysL70WAPYkWpsds76VVQC0bQZA5eGsT+8gAPIF + ALTenPMehmxeksTiDCcLi+zsbHMBn2suK+g3+5+Cb8q/hjn3mcvu+1Y7phc/gSNJFTNlReWmp6ZLRMzM + DA6Xz2T99xD/48A5ac3Jwyycn8AX8YXoVVHolAmEiWi7hTyBWJAuZAqEf9Xhfxg2JwcZfp1rFGh1XwB9 + hTlQuEkHyG89AEMjAyRuP3oCfetbEDEKyL68aK2Rr3OPMnr+5/ofC1yKbuFMQSJT5vYMj2RyJaIsGaPf + hGzBAhKQB3SgCjSBLjACLGANHIAzcAPeIACEgEgQA5YDLkgCaUAEskE+2AAKQTHYAXaDanAA1IF60ARO + gjZwBlwEV8ANcAsMgEdACobBSzAB3oFpCILwEBWiQaqQFqQPmULWEBtaCHlDQVA4FAPFQ4mQEJJA+dAm + qBgqg6qhQ1A99CN0GroIXYP6oAfQIDQG/QF9hBGYAtNhDdgAtoDZsDscCEfCy+BEeBWcBxfA2+FKuBY+ + DrfCF+Eb8AAshV/CkwhAyAgD0UZYCBvxREKQWCQBESFrkSKkAqlFmpAOpBu5jUiRceQDBoehYZgYFsYZ + 44dZjOFiVmHWYkow1ZhjmFZMF+Y2ZhAzgfmCpWLVsaZYJ6w/dgk2EZuNLcRWYI9gW7CXsQPYYew7HA7H + wBniHHB+uBhcMm41rgS3D9eMu4Drww3hJvF4vCreFO+CD8Fz8GJ8Ib4Kfxx/Ht+PH8a/J5AJWgRrgg8h + liAkbCRUEBoI5wj9hBHCNFGBqE90IoYQecRcYimxjthBvEkcJk6TFEmGJBdSJCmZtIFUSWoiXSY9Jr0h + k8k6ZEdyGFlAXk+uJJ8gXyUPkj9QlCgmFE9KHEVC2U45SrlAeUB5Q6VSDahu1FiqmLqdWk+9RH1KfS9H + kzOX85fjya2Tq5FrleuXeyVPlNeXd5dfLp8nXyF/Sv6m/LgCUcFAwVOBo7BWoUbhtMI9hUlFmqKVYohi + mmKJYoPiNcVRJbySgZK3Ek+pQOmw0iWlIRpC06V50ri0TbQ62mXaMB1HN6T705PpxfQf6L30CWUlZVvl + KOUc5Rrls8pSBsIwYPgzUhmljJOMu4yP8zTmuc/jz9s2r2le/7wplfkqbip8lSKVZpUBlY+qTFVv1RTV + naptqk/UMGomamFq2Wr71S6rjc+nz3eez51fNP/k/IfqsLqJerj6avXD6j3qkxqaGr4aGRpVGpc0xjUZ + mm6ayZrlmuc0x7RoWgu1BFrlWue1XjCVme7MVGYls4s5oa2u7act0T6k3as9rWOos1hno06zzhNdki5b + N0G3XLdTd0JPSy9YL1+vUe+hPlGfrZ+kv0e/W3/KwNAg2mCLQZvBqKGKob9hnmGj4WMjqpGr0SqjWqM7 + xjhjtnGK8T7jWyawiZ1JkkmNyU1T2NTeVGC6z7TPDGvmaCY0qzW7x6Kw3FlZrEbWoDnDPMh8o3mb+SsL + PYtYi50W3RZfLO0sUy3rLB9ZKVkFWG206rD6w9rEmmtdY33HhmrjY7POpt3mta2pLd92v+19O5pdsN0W + u067z/YO9iL7JvsxBz2HeIe9DvfYdHYou4R91RHr6OG4zvGM4wcneyex00mn351ZzinODc6jCwwX8BfU + LRhy0XHhuBxykS5kLoxfeHCh1FXbleNa6/rMTdeN53bEbcTd2D3Z/bj7Kw9LD5FHi8eUp5PnGs8LXoiX + r1eRV6+3kvdi72rvpz46Pok+jT4Tvna+q30v+GH9Av12+t3z1/Dn+tf7TwQ4BKwJ6AqkBEYEVgc+CzIJ + EgV1BMPBAcG7gh8v0l8kXNQWAkL8Q3aFPAk1DF0V+nMYLiw0rCbsebhVeH54dwQtYkVEQ8S7SI/I0shH + i40WSxZ3RslHxUXVR01Fe0WXRUuXWCxZs+RGjFqMIKY9Fh8bFXskdnKp99LdS4fj7OIK4+4uM1yWs+za + crXlqcvPrpBfwVlxKh4bHx3fEP+JE8Kp5Uyu9F+5d+UE15O7h/uS58Yr543xXfhl/JEEl4SyhNFEl8Rd + iWNJrkkVSeMCT0G14HWyX/KB5KmUkJSjKTOp0anNaYS0+LTTQiVhirArXTM9J70vwzSjMEO6ymnV7lUT + okDRkUwoc1lmu5iO/kz1SIwkmyWDWQuzarLeZ0dln8pRzBHm9OSa5G7LHcnzyft+NWY1d3Vnvnb+hvzB + Ne5rDq2F1q5c27lOd13BuuH1vuuPbSBtSNnwy0bLjWUb326K3tRRoFGwvmBos+/mxkK5QlHhvS3OWw5s + xWwVbO3dZrOtatuXIl7R9WLL4oriTyXckuvfWX1X+d3M9oTtvaX2pft34HYId9zd6brzWJliWV7Z0K7g + Xa3lzPKi8re7V+y+VmFbcWAPaY9kj7QyqLK9Sq9qR9Wn6qTqgRqPmua96nu37Z3ax9vXv99tf9MBjQPF + Bz4eFBy8f8j3UGutQW3FYdzhrMPP66Lqur9nf19/RO1I8ZHPR4VHpcfCj3XVO9TXN6g3lDbCjZLGseNx + x2/94PVDexOr6VAzo7n4BDghOfHix/gf754MPNl5in2q6Sf9n/a20FqKWqHW3NaJtqQ2aXtMe9/pgNOd + Hc4dLT+b/3z0jPaZmrPKZ0vPkc4VnJs5n3d+8kLGhfGLiReHOld0Prq05NKdrrCu3suBl69e8blyqdu9 + +/xVl6tnrjldO32dfb3thv2N1h67npZf7H5p6bXvbb3pcLP9luOtjr4Ffef6Xfsv3va6feWO/50bA4sG + +u4uvnv/Xtw96X3e/dEHqQ9eP8x6OP1o/WPs46InCk8qnqo/rf3V+Ndmqb307KDXYM+ziGePhrhDL/+V + +a9PwwXPqc8rRrRG6ketR8+M+YzderH0xfDLjJfT44W/Kf6295XRq59+d/u9Z2LJxPBr0euZP0reqL45 + +tb2bedk6OTTd2nvpqeK3qu+P/aB/aH7Y/THkensT/hPlZ+NP3d8CfzyeCZtZubf94Tz+zI6WX4AABf6 + SURBVHgB7Z1tbBxHGcfXtCDV9oeixhcJEPFZCjSxzZugSSVaOQkS5AWnqFFpUEsVGtQUNbiiRW1TsFCq + pI0ITU0imqpRQwHRFxFRhzQpqI6t9EMLQiDwSysh+ex+yzkIkOJUAiSY/8WbbM5777s38zzzH+l86929 + nZnfM/Pf2ZlnZluCMmHthi23mMObzafPfDrNh4EESEAGgRmTzDHzGT598levmO/Y0BK311T8PrP/qPl0 + mg8DCZCAbAIzJvnbjBCMFWfjfcU7TOU/YPaNmk9n8TH+TwIkIJJAp0n16ELdviIDV0X/Myfgrr8juo/b + JEACagiszi5f2Zn729RwmKNLArCgDqz8IRl+k4BOAp8yInCtEYHfInuFPgBT+fvMNpr9DCRAAn4QWIM+ + gbAPAE1/BhIgAX8IFOp8i7n7Y6jv1/7kmzklARJYIPAVtAAwzs9AAiTgH4HNEIA+//LNHJMACRgCfRCA + TqIgARLwkkAnBICBBEjAUwIUAE8Nz2yTAAhQAFgOSMBjAhQAj43PrJMABYBlgAQ8JkAB8Nj4zDoJUABY + BkjAYwIUAI+Nz6yTAAWAZYAEPCZAAfDY+Mw6CVAAWAZIwGMCFACPjc+skwAFgGWABDwmQAHw2PjMOglQ + AFgGSMBjAhQAj43PrJMABYBlgAQ8JkAB8Nj4zDoJUABYBkjAYwIUAI+Nz6yTAAWAZYAEPCZAAfDY+Mw6 + CVAAWAZIwGMCFACPjc+skwAFgGWABDwmQAHw2PjMOglQAFgGSMBjAhQAj43PrJMABYBlgAQ8JkAB8Nj4 + zDoJUABYBkjAYwIUAI+Nz6yTwNVEQAK1Elia6QiWLumI/Vlbe2uQzS4rHMvlZoP58xdizzt7bi44m5+L + PcadzSNAAWgea+djam+7Juhalg3CStzWav7PZgvpznYuC9raWlPLw8Tk24VrT+dywfyF94JQPP46NZVa + nLxwELSs3bDlfwThH4FPrFwZZLuWBZmO6wqVPO0K3gjh+fkLQW5mNhifnCoIw7TZZuuhEaKXf0sBuMxC + 7Raa7L3d1weo5L093YVv6ZnNm8eHcdNqmJicNN/vUBDqNCgFoE5wLv8MTfnVN3w26OnuNhV/RZAxAqA9 + FFoIE5PByOgbAVoIDNURoABUx8n5s3CXR6Vft+ZmFXf4RoCjdTAydsaIwRm2DCqApABUAOTyYVb6ytZ5 + 6w9/DH7zm9cCdibGs6IAxHNxdm/YvO/ftMH7O30tRsIow8joWPC6eURguEyAAnCZhdNbXaYDr3/T+kIz + P83hOKchJJA4CMELLx5ji2CBJQUggUKV5iW+sOYm81zfZzr0VqQZjXfXxqPBkaM/976PgALgYNEPm/lb + b9viRQ++LRPAv+CFl48FwydO2UqC9XgpANZNcDkBqPh4tu/fuD5Vr7vLMXILBPBYsGff/uD8/HveAaEA + OGByVnz7RkBrYNfgY975EFAALJc9PONv33aX2Ds+xtzzc+cWUcx0LBH5+DJ06GmvRgo4GWhR0W3ODvji + D+y8R1QlQVMZk3UmFlxvK3ncoWXTa7wRVy04KDWHbGOxDNx3b+ECvgwXsgXQWHmp+ddw3rn/vh0ievXR + LEZv+e/N503zaSRgGPP+nTvE+C740hKgADRSqmv4bficv/W2W2v4lZ1TUfGPv3oqOH7iZKIdY2Cwd/cg + RcCOWWNjpQDEYkl2p6TmPvznjxx9PtGKH6UJERja/4SYR5+9+55suPUTzb9r21dll6/8gWuJ0pIeFPa7 + 7rg9+NaOu00nX5vT2UJn3t4nDgTD5s7/7//8N7W04tozuXeDdWtvTi2OJC/8mU9/MvjTn/8S/OOf/0ry + ss5ci2sCpmQK3PVxp8O4vusBz/kDDz7cNPdYTMyB4EgIcLtG34XWwBZACpb92ldvNT38O5y/6yPr8IT7 + yTPPpXrXj0O8NLMk+PjHlscdcm7fB6+9NmhpCQoLkDiXuAYTxBZAgwCjP0eT//Hd3w8kdPQh3ejp/uVL + x6JZaNo2hhIlBdgUIxnaAgUgIYuicBx5+qCI4T1k2fYwV6nVghMyRyqX+eY3vp7KdW1elAKQAH148w39 + 6HEx3ny2K38CyK1cAjMy0bejKVAAGrQmnHpC77EGL9WUn7PyN4Z56+3u+3HUkkMKQC20Iufief/Rh75T + WIMvstvpTXT4+eLimpYh0ArQ1BdAAaijpKDyw6MNi3BKCXDwsdXhJ4VRtenEykxaAgWgRkuGlR9r7EsJ + WDIb3n0uhZ5euSscSRL+SjanAFQiFDkusfLDr/+pg4dTc+2N4KlpM9Mh910FcA66UVDrr5xhKADl6ESO + Saz8SD6e+ytN241ks2mbeGGJ5NBj3rSkIVAAqrCi1MqP+fsurneHKdHS31aEV6xpCBSAClaUWvkLTf9D + hyvkzs5hDc/QkvqAylmZAlCGjtTKjyxhPr+rb9DVssS5BqcgCkAZAYCDj0Slx0w7V4f8wteZlcEu5hBe + ry49UABKWBAeflKbqkMHnymRK/u7pTKNI6fhDU0UgBjLbjaOHnjLrsSAjj+XX4TZv/FLErHGplnyUGaY + IQpASGLhG+O727fdWbRXzr/PPvczZxOLSVPSe/+jcPE4Iz1QACIWhI/3gGn6Sw1w93VxzD/kiXccMrhF + gAKwYA/0+GPpJ8nPdXD6cTXgbqml999VxvWkiwKwQA1v55HY4x8aHXd/V4f9kEZNnX8hcw3fFABjxYuv + 4JbZ6RcWwuOOv+FWaqdqyFfrt/cCgKYp7v6SQ+GVXWbGn6sBjCW3rlzlmkS6vBcALOoh+bkfheCFF919 + 9kf6epVMnEFetAWvBQDLd0u/M8Hrz+Vxf1SYHvOCUI1hfHJKfLa8FQAM+UlZvrtcKTv+6mvlDjtxrCsr + 32XWCZApJMJbAdDytpeR0bEUikWyl5TeyipFY2L87VKHxOz3UgDg6quhUGLo7/z8e04XNk0LaBaDPntO + xuvNitMd/d87AUCPtIamP4z4e/NOP9dDe2ub60msK31Yb8Flv4tqM+WdAKDyS+/1h3FRAN8UIACSF/8s + V4k0dAAif14JABZw0OKQIuHZv1wFkn4MvhcaglcCoOmtLiOjb2gof2LzMD4hfwgQ8L0RALj7apmMgrF/ + l2f9ia3VVSYcj19a+HsjAFtv21Kled0/bVxJ89N90vEpfEtA30t8yhfv9UIAtC1EIaH3f3FR07NHE38v + BEDT3R/VSELvf1jd8/l8uKniG49fkvhXgq5eALTd/aX1Po9PvlOpDIo6PjJ2RlR6KyVWvQD0b9pQiYGo + 49KeP+Esg7umhoDOv+MnTmrIyqU8qBYAjPtrcPm9ZC2zIXH4ScKEpSjjUtt42Yrrrtel0l5qv2oB+PKX + 9SxBDQNKHX6C0xLSLjmgFaPt7g97qBUA+PxrW4cu5/CqP+UqN+6aLi9YWi7t4TG8bEXb3R95UysA/Ru/ + GNpOzbdk/3O8pVhaB2ZYcHDnd33RlTCttX6rFYDVN3yuVhbOny99/vmeffvFPQpAtJ49+gvny0a9CVQp + AHi7j6Y30ITGnZ7NhZsiv9GE3jX4mBgRwCMXREtzUCkAq4wAaAvohNLwDAofegkigMq/a3C3Cubl6oI6 + AcAbfrRM+Y0aTsvkE+TJdRHwpfLDFuoEQFvPP4yEIHUE4GLqF/8NRcA1JyGfKj+sok4AVins/IOhcrlZ + fKkKEIGBBx8OXPFuRG//tx94RH2zP1qIro7+I30bzX+tLQAN68/FlS/0a+zZ92QAr82BnfdY6byFk9LQ + ocOqJvnEsY7bp0oAepW+gAKG09QHEFcQMc5+970DC+9p7GvK4i0F337j3os7v4YO1jiulfapEgCNvf8w + oLbn/3KF8nWz1Bk+8OSEM1dvT3fi8znAE0uqw0XZ14of2kCVAPR2rwjzpepbuh99PcbAI0/ogINHu65l + 2QArDGNyV3tbW5DpWFLxcQEVHewKMxLn5gI4UsGXwvdKH7WHGgHACyg0Ov/AWJJdgKOFrd5tVFg8Imh1 + x62XSxK/UzMK0NuzMgkevAYJeEVAjQBoWfE3rvRJnwMQlyfuc4OAGgHo7WYLwI0ixVRIIqBCANBjrOF1 + X6UKjvRJQKXyxf32CagQgN7u6+2TTDEF7LVOEa7nl1YhANrW/fO8TDL7TSSgQgC6stkmImtuVFJX0Wku + JcZWLwEVAqB5BKBew/J3JFANAfECgA5ABhIggfoIyBeAJboF4Pz8fH2W5a9IoAoC4gUA/uGag08TgTTb + 0dW8iReAttZrXGXLdJGA8wTEC4DmEQDnSw8TKJ6AeAHQ7AEovnQxA84TEC8AdAJyvowxgQ4TEC8ADrNl + 0kjAeQKiBQALSWoP+XxeexaZP4sERAuARW5Nizp/9u9Ni4sR+UeAAuCfzZljErhEQLQAaHcCumQlbpBA + SgREC0BKTHhZEvCGAAXAcVNnll7neAqZPMkEKACOWy+TyTieQiZPMgEKgGTrMe0k0CABCkCDAPlzEpBM + gAIg2XpMOwk0SIAC0CBA/pwEJBOgADhuPU52ctxAwpNHAXDcgHgTLgMJpEWAApAWWV6XBAQQoAA4biQ+ + AjhuIOHJowA4bkCueOS4gYQnjwIgwIB894EAIwlNomgByOVmhWKvLdlLlb/7oDYaPDtJAqIFYP78hSRZ + OHstTghy1jTiEyZaAMTTrzIDnBBUJSieVjMB0QIwPZurOcMSf9DbrX/tQ4l20ZBm0QJwfv49DTaomIdM + x5KK5/AEEqiHgGgBQIZ9eHdexrwBub2Nr0Crp4DzN+UJiBeA+Xk/OgK7lmXLW5JHSaAOAuIFYHxyqo5s + y/sJF0CVZzMJKRYvAL68OIMdgRKqk7w0iheA6dy78qjXkeKe7hV1/Io/IYHyBK4uf9j9o9MzfngDwhJ4 + Fdpfp/x45GlWyevqXBa0t16ccn323FxwNj/XrKidiEe8AIDixOTbgQ93yFWrPkMBSKDaYESlf9OGoH/j + +qB4shVGlY6fOBm8PvpGAjG5fwnxjwBAPJ3zwyFo9Q2fc79EOZ5C3PGH9j8RbL3t1kWVH0nH9OuB++4N + fvyjx70YelUhABOT7zhe7JJJHvwBUIAZ6iMAdnt3fz8Ax0oBQrB392Cl08QfVyEA45OT4g1RbQbWrbmp + 2lN5XoQAmv2PPvSd2Lt+5LQrNiECX/vqrVfs0/aPCgGAS7APHoEofOvW9Gkrg6nnB5Ufd/Nq7vzFiUE/ + gWYvTBUCAKONjJ4ptp3K/9Fp9QW2Amqy7fZtdxWe7Wv60cLJ4L36hs/W81MRv1EjAOMT/gyPsRVQfd26 + /74dptV0c/U/iDlT83RsNQIAf4C8J2O4GPKETwBDeQJJVH7EoNkLU40AwFAjY348BiCvW2/X3TmFPDYS + 0HnX6J0/jF+zc5AuAfCkHwAFk62AsHou/kYfCcb5kwqaO5hVCQCUGl6BvoTtd9/pS1arziea/XDkSTK8 + 9Yc/Jnk5p66lSgBAdmR0zCnAaSYG49SbN61PMwpR107qmT+aaYwu8REgSsTxbfhw+9IZCFOgqcv3BgRB + GpUfi80cOfq84yW+seSpawEAh0+dgRinhoebrwFOOvDbT6rDL8px7xNPBtrXnVQpAJjN5ctSYSiweBT4 + 5rY7omXXi+2Lvv2DdTv5lIN05OjPvZh5eVV2+coflAMh8di///Pf4AMfeL/q8dtiu3z8Y8uDubl8MD3z + bvEhlf/faLzzHn3ogbrceysBwXP/8794sdJpKo6rbAHAMr61ApBn9H77MFsQrZ1dNU7sAZ9qAob8njp0 + uJpTVZyjVgDw7PbCy8dUGKmWTGC6q1YRQL7wvI/FPNIIqPy7BnencWlnr6lWAEB8+MQpr0YEkGd0CkIE + 0ETWFODZN2QqP/o70gjoM3rq4GH1nX7F7FT2AUQzOWMWDV23trHJINHrSdhG/8dNn79RRZ8A5jzs3f29 + VGfkofLvGnzM9J/MSjBvomlULwBn5+aCruyy4CMf/lCi4CRcDEuIwUdgwiyYgo5RSQEV//6dO4Kt5s7f + 1nZx0c600v/dRwa9rPzg2bJ2w5b/pQXWletirPjI0wdrWg3GlbQnkQ44Rg0dfEbEsBYeXfqNd2OzFnkd + OvS0NwuAxpUlLwQAGUfBQs+xzwHzJNDD7ZprK1opcORZ13dzKsN6pWzue+UHF28EAJnF8FFaPci4vpSA + ce7Tp89YbRGg0mOlHVT8tDr2ytmDlf8iHa8EIFwbzkaBK1cYbR3Do8HxV18LsJpS2h1gGMLryn7UNO27 + jYPWiqbe6aN80eEHF1++YMVDAUCWcecZ2v+4t/0B0coQ3YYYjJtHBIyF56Zng+nZXM1DYhBYvMW4rb01 + yJqO10xHR4F3s57no/mJ2/a5tz+OB/Z51QIIIaCHec9j3wv/5XcZAqg05RbEyHQssXY3L5PsRYcgcHv2 + PZl6S2dRxI7v8FIAYBOsGpP0whGO29rb5IUeftpn9tVjYPV+AKWgYNJMS4vuBR9L5d2n/ejw/OGBH9f8 + OOMLIxUvB63XWL986VjhOTWNueT1pom/S44A5oLAxgylCXgtAMASzvyiCJQuJNKOoN9iyPg7vKl4Lb+k + bOK9AAAkRSCp4mT/OnjeR2efa85O9snEp8DbPoBiHFj5FQtq8BXcxWTk/I81IPbsO+DValCNWoctgAhB + LCiKwNGBCBQBm5LmOriGU/V6APXAhggMPPAI7yL1wLPwG7TcBh58mJ59dbL31g+gEi+6DVciZPc47vpY + uJMdfY3ZgX0AJfhh/vyp343QV6AEH5u78az/wwMHjVffuzaToSJutgCqMCNchwd23iPC5bWK7Ig9BdOZ + n33uZ3TnTdCCFIAqYeKRAG/h4XTiKoEleBrG9fGGnrCTNsFLe38pCkCNRQCtAbyUk1OKawRXx+mo+Mdf + PVVY4p1+/HUArOInFIAqIMWdgslE27fdxWnFcXAS2Acfftz1WfETgFnmEhSAMnAqHcJjAR4J+jeupxBU + glXlcVR8+PDTk69KYA2eRgFoECB+TiFoDGLY1EflZ8VvjGWtv6YA1EqszPkQgnVr+kyL4EscMSjDKTyE + sXwsSTYyOsamfgilyd8UgJSAYxXitWbBSyx8yXAlAXjvnTZ3ezrxXMnFxn8UgJSp2179NuXsVX15zNJD + E593+6qRNeVECkBTMF+MxDcxCCs97vh8tm9iQashKgpADbCSPBX9BXg8sL1MdpJ5wrVQ2eGxx0qfNNl0 + rkcBSIdrzVdF6wBr5/d0X2/Wz8827dVYNSc08gP03uMuPz45FUyMv80ZeRE2UjYpAA5bCoIAYcAa+/A8 + bDcvycQ3XgHe7IAe+/zcuUJlz+XMewNMxWezvtlWSD4+CkDyTJtyRYhDe2tbkFl6nRlyzBTibGs1L+Yw + rYfiAMGIc11GU7044G6OkM/ng/zZvwfnL8xz8k0xJEX/c0Ugoca89Cqvi/VVaC6YbNsEuCKQbQswfhKw + SIACYBE+oyYB2wQoALYtwPhJwCIBCoBF+IyaBGwToADYtgDjJwGLBCgAFuEzahKwTYACYNsCjJ8ELBKg + AFiEz6hJwDYBCoBtCzB+ErBIgAJgET6jJgHbBCgAti3A+EnAIgEKgEX4jJoEbBOgANi2AOMnAYsEKAAW + 4TNqErBNgAJg2wKMnwQsEqAAWITPqEnANgEKgG0LMH4SsEiAAmARPqMmAdsEKAC2LcD4ScAiAQqARfiM + mgRsE6AA2LYA4ycBiwQoABbhM2oSsE2AAmDbAoyfBCwSoABYhM+oScA2AQqAbQswfhKwSIACYBE+oyYB + 2wQoALYtwPhJwCIBCoBF+IyaBGwToADYtgDjJwGLBCgAFuEzahKwTYACYNsCjJ8ELBKgAFiEz6hJwDYB + CoBtCzB+ErBIgAJgET6jJgHbBCgAti3A+EnAIgEIwIzF+Bk1CZCAPQIzEIAxe/EzZhIgAYsExiAAwxYT + wKhJgATsERhuQdxrN2zJma9ObDOQAAl4QWDm9MlfZcNOwG1eZJmZJAESCAkU6vxV+C/3t6mZ7PKV15rN + 1eFRfpMACagl8JS5+z+D3BUEABtGBH5rRKDTbH4K/zOQAAmoJPBTU/nvDXN2SQCww4jAMFsCIRp+k4A6 + ArjzX6r8yF2hE7A4m6ZTsM/sO2o+nebDQAIkIJvAjEn+NlP5x4qzESsA4UlGCG4x25vNp898Os2HgQRI + QAaBGZPMMfMZNhX/FfMdG/4PEJt7UOKaA7YAAAAASUVORK5CYIIoAAAAMAAAAGAAAAABACAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAGxgVNVRLQvZUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.vb b/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.vb new file mode 100644 index 00000000..4a61d70f --- /dev/null +++ b/src/Case.Directionality/Case.Directionality.2026/UI/form_Main.vb @@ -0,0 +1,296 @@ +Imports Autodesk.Revit.DB +Imports Autodesk.Revit.UI +Imports System.Windows.Forms +Imports System.Reflection +Imports System.Diagnostics +Imports [Case].Directionality.API +Imports [Case].Directionality.Data + +Public Class form_Main + + Private _s As clsSettings + + ''' + ''' Constructor + ''' + ''' + ''' + Public Sub New(s As clsSettings) + InitializeComponent() + + ' Widen Scope + _s = s + + ' Load Combobox + UpdateParameterList() + + ' Load the Results + UpdateDatagrid() + + ' Form Setup + ProgressBar1.Hide() + Text = "External Wall Facings v" & Assembly.GetExecutingAssembly.GetName.Version.ToString + + End Sub + + ''' + ''' List the Parameters + ''' + ''' + Private Sub UpdateParameterList() + + Try + ' Clean List + ComboBoxParameter.Items.Clear() + + If Me.RadioButtonText.Checked = True Then + For Each x As String In _s.WallParametersString + ComboBoxParameter.Items.Add(x) + Next + Else + For Each x As String In _s.WallParametersNumber + ComboBoxParameter.Items.Add(x) + Next + End If + + ' Set Default + ComboBoxParameter.SelectedIndex = 0 + + Catch ex As Exception + + End Try + + End Sub + + ''' + ''' Update the Datagrid + ''' + ''' + Private Sub UpdateDatagrid() + + ' Clean List of Rows + DataGridView1.Rows.Clear() + + ' Load DataGrid + Try + For Each x As clsExternalWalls In _s.ExternalWalls + + ' Fresh Row + Dim m_row As New DataGridViewRow + + ' ElementID + Dim m_txt As New DataGridViewTextBoxCell + m_txt.Value = x.WallObject.Id.IntegerValue + m_row.Cells.Add(m_txt) + + ' Type + m_txt = New DataGridViewTextBoxCell + m_txt.Value = x.WallFamilyType + m_row.Cells.Add(m_txt) + + If Me.RadioButtonAngle.Checked = True Then + ' Facing + m_txt = New DataGridViewTextBoxCell + m_txt.Value = x.WallAngle + m_row.Cells.Add(m_txt) + Else + ' Facing + m_txt = New DataGridViewTextBoxCell + m_txt.Value = x.WallFacing + m_row.Cells.Add(m_txt) + End If + + ' Length + m_txt = New DataGridViewTextBoxCell + m_txt.Value = x.WallLength + m_row.Cells.Add(m_txt) + + ' Level + m_txt = New DataGridViewTextBoxCell + m_txt.Value = x.WallLevel + m_row.Cells.Add(m_txt) + + ' Add the Row + DataGridView1.Rows.Add(m_row) + + Next + + Catch ex As Exception + ' Quiet Fail + End Try + + End Sub + + ''' + ''' Write the Directionality Data + ''' + ''' + Private Sub SaveDirectionData() + + ' Failure Count + Dim iFail As Integer = 0 + ' Success Count + Dim iSuc As Integer = 0 + + ' Progress Bar + With Me.ProgressBar1 + .Show() + .Minimum = 0 + .Maximum = Me.DataGridView1.Rows.Count + .Value = 0 + End With + ButtonCancel.Hide() + ButtonOk.Hide() + Application.DoEvents() + + ' Transaction + Dim m_t As New Transaction(_s.Doc, "CASE - External Wall Directionality") + m_t.Start() + + ' Iterate Each Row + For Each x As DataGridViewRow In Me.DataGridView1.Rows + + ' Step the Progressbar + ProgressBar1.Increment(1) + + Dim m_e As Element = Nothing + Try + + ' Get the Element + Dim m_i As Integer = x.Cells(0).Value + m_e = _s.Doc.GetElement(New ElementId(m_i)) + + Catch ex As Exception + + ' Record Failure? + iFail += 1 + + Continue For + + End Try + + ' Do we have an element to twork with + If Not m_e Is Nothing Then + + Try + + ' Get the Parameter + Dim m_p As New clsPara(m_e.LookupParameter(ComboBoxParameter.SelectedItem.ToString)) + If Not m_p Is Nothing Then + + ' Set the Parameter + m_p.Value = x.Cells(2).Value + + iSuc += 1 + + Else + + ' Record Failure? + iFail += 1 + + End If + + Catch ex As Exception + + ' Record Failure? + iFail += 1 + + Continue For + + End Try + + End If + + Next + + ' Commit + m_t.Commit() + + ' Report to User + Dim m_dlg As New TaskDialog("Here's What Happened:") + If iFail > 0 Then + m_dlg.MainInstruction = iFail.ToString & " values failed to record!" + m_dlg.MainContent = iSuc.ToString & " values recorded successfully!" + Else + m_dlg.MainInstruction = iSuc.ToString & " values recorded successfully!" + End If + m_dlg.Show() + + End Sub + +#Region "Form Controls & Events" + + ''' + ''' Help Documentation + ''' + ''' + ''' + ''' + Private Sub ButtonHelp_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHelp.Click + Process.Start("http://apps.case-inc.com/content/free-external-wall-directions") + End Sub + + ''' + ''' CASE Site + ''' + ''' + ''' + ''' + Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click + Process.Start("http://www.case-inc.com") + End Sub + + ''' + ''' Text Mode + ''' + ''' + ''' + ''' + Private Sub RadioButtonText_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RadioButtonText.CheckedChanged + UpdateParameterList() + UpdateDatagrid() + End Sub + + ''' + ''' Angle Mode + ''' + ''' + ''' + ''' + Private Sub RadioButtonAngle_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles RadioButtonAngle.CheckedChanged + UpdateParameterList() + UpdateDatagrid() + End Sub + + ''' + ''' Commit + ''' + ''' + ''' + ''' + Private Sub ButtonOk_Click(sender As System.Object, e As System.EventArgs) Handles ButtonOk.Click + + ' Process Items + SaveDirectionData() + + ' Close + Close() + + End Sub + + ''' + ''' Cancel + ''' + ''' + ''' + ''' + Private Sub ButtonCancel_Click(sender As System.Object, e As System.EventArgs) Handles ButtonCancel.Click + + ' Close + Close() + + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.Directionality/Case.Directionality.sln b/src/Case.Directionality/Case.Directionality.sln index 0d202c32..f9e480f2 100644 --- a/src/Case.Directionality/Case.Directionality.sln +++ b/src/Case.Directionality/Case.Directionality.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.Directionality.SharedP EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.Directionality.2023", "Case.Directionality.2023\Case.Directionality.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.Directionality.2026", "Case.Directionality.2026\Case.Directionality.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.Directionality.2021", "Case.Directionality.2021\Case.Directionality.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.Directionality.2022", "Case.Directionality.2022\Case.Directionality.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Case.DoorMarkRenumber.2026.vbproj b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Case.DoorMarkRenumber.2026.vbproj new file mode 100644 index 00000000..3156e8cb --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Case.DoorMarkRenumber.2026.vbproj @@ -0,0 +1,129 @@ + + + + + Debug + AnyCPU + {B1052A8C-71AB-407F-B78A-6B8669E3FFF1} + Library + Case.DoorMarkRenumber + Case.DoorMarkRenumber + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.DoorMarkRenumber.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.DoorMarkRenumber.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + form_Main.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + form_Main.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + \ No newline at end of file diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.designer.vb b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.designer.vb new file mode 100644 index 00000000..a632a224 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.designer.vb @@ -0,0 +1,271 @@ + _ +Partial Class form_Main + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Me.components = New System.ComponentModel.Container() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Main)) + Me.CheckBoxShowChecked = New System.Windows.Forms.CheckBox() + Me.LabelPhase = New System.Windows.Forms.Label() + Me.RadioButtonSelected = New System.Windows.Forms.RadioButton() + Me.LabelInstructions = New System.Windows.Forms.Label() + Me.ContextMenuDatagridView = New System.Windows.Forms.ContextMenuStrip(Me.components) + Me.ZoomToElementsToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem() + Me.RadioButtonCurrentLevel = New System.Windows.Forms.RadioButton() + Me.GroupBoxScope = New System.Windows.Forms.GroupBox() + Me.LabelPhaseName = New System.Windows.Forms.Label() + Me.LabelInstances = New System.Windows.Forms.Label() + Me.DataGridViewDoors = New System.Windows.Forms.DataGridView() + Me.ButtonOK = New System.Windows.Forms.Button() + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ButtonHelp = New System.Windows.Forms.Button() + Me.ContextMenuDatagridView.SuspendLayout() + Me.GroupBoxScope.SuspendLayout() + CType(Me.DataGridViewDoors, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'CheckBoxShowChecked + ' + Me.CheckBoxShowChecked.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.CheckBoxShowChecked.AutoSize = True + Me.CheckBoxShowChecked.Checked = True + Me.CheckBoxShowChecked.CheckState = System.Windows.Forms.CheckState.Checked + Me.CheckBoxShowChecked.Location = New System.Drawing.Point(28, 149) + Me.CheckBoxShowChecked.Name = "CheckBoxShowChecked" + Me.CheckBoxShowChecked.Size = New System.Drawing.Size(117, 17) + Me.CheckBoxShowChecked.TabIndex = 19 + Me.CheckBoxShowChecked.Text = "Filter by 'AllowEdits'" + Me.CheckBoxShowChecked.UseVisualStyleBackColor = True + ' + 'LabelPhase + ' + Me.LabelPhase.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LabelPhase.AutoSize = True + Me.LabelPhase.Location = New System.Drawing.Point(6, 118) + Me.LabelPhase.Name = "LabelPhase" + Me.LabelPhase.Size = New System.Drawing.Size(66, 13) + Me.LabelPhase.TabIndex = 17 + Me.LabelPhase.Text = "View Phase:" + ' + 'RadioButtonSelected + ' + Me.RadioButtonSelected.AutoSize = True + Me.RadioButtonSelected.Enabled = False + Me.RadioButtonSelected.Location = New System.Drawing.Point(28, 77) + Me.RadioButtonSelected.Name = "RadioButtonSelected" + Me.RadioButtonSelected.Size = New System.Drawing.Size(148, 17) + Me.RadioButtonSelected.TabIndex = 0 + Me.RadioButtonSelected.Text = "Doors in Current Selection" + Me.RadioButtonSelected.UseVisualStyleBackColor = True + ' + 'LabelInstructions + ' + Me.LabelInstructions.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LabelInstructions.Location = New System.Drawing.Point(602, 198) + Me.LabelInstructions.Name = "LabelInstructions" + Me.LabelInstructions.Size = New System.Drawing.Size(270, 62) + Me.LabelInstructions.TabIndex = 18 + Me.LabelInstructions.Text = "Right-Clicking in the data viewer displays an option to ""Zoom to Elements""... mul" & _ + "tiple selections will zoom to show all elements in the row selection" + ' + 'ContextMenuDatagridView + ' + Me.ContextMenuDatagridView.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ZoomToElementsToolStripMenuItem}) + Me.ContextMenuDatagridView.Name = "ContextMenuDatagridView" + Me.ContextMenuDatagridView.Size = New System.Drawing.Size(172, 26) + ' + 'ZoomToElementsToolStripMenuItem + ' + Me.ZoomToElementsToolStripMenuItem.Name = "ZoomToElementsToolStripMenuItem" + Me.ZoomToElementsToolStripMenuItem.Size = New System.Drawing.Size(171, 22) + Me.ZoomToElementsToolStripMenuItem.Text = "Zoom to Elements" + ' + 'RadioButtonCurrentLevel + ' + Me.RadioButtonCurrentLevel.AutoSize = True + Me.RadioButtonCurrentLevel.Checked = True + Me.RadioButtonCurrentLevel.Location = New System.Drawing.Point(28, 54) + Me.RadioButtonCurrentLevel.Name = "RadioButtonCurrentLevel" + Me.RadioButtonCurrentLevel.Size = New System.Drawing.Size(123, 17) + Me.RadioButtonCurrentLevel.TabIndex = 1 + Me.RadioButtonCurrentLevel.TabStop = True + Me.RadioButtonCurrentLevel.Text = "Doors Visible in View" + Me.RadioButtonCurrentLevel.UseVisualStyleBackColor = True + ' + 'GroupBoxScope + ' + Me.GroupBoxScope.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBoxScope.Controls.Add(Me.LabelPhaseName) + Me.GroupBoxScope.Controls.Add(Me.RadioButtonCurrentLevel) + Me.GroupBoxScope.Controls.Add(Me.CheckBoxShowChecked) + Me.GroupBoxScope.Controls.Add(Me.RadioButtonSelected) + Me.GroupBoxScope.Controls.Add(Me.LabelPhase) + Me.GroupBoxScope.Controls.Add(Me.LabelInstances) + Me.GroupBoxScope.Location = New System.Drawing.Point(601, 12) + Me.GroupBoxScope.Name = "GroupBoxScope" + Me.GroupBoxScope.Size = New System.Drawing.Size(271, 183) + Me.GroupBoxScope.TabIndex = 15 + Me.GroupBoxScope.TabStop = False + Me.GroupBoxScope.Text = "Renumber Door Mark Scope Filter" + ' + 'LabelPhaseName + ' + Me.LabelPhaseName.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LabelPhaseName.AutoSize = True + Me.LabelPhaseName.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelPhaseName.ForeColor = System.Drawing.Color.RoyalBlue + Me.LabelPhaseName.Location = New System.Drawing.Point(89, 118) + Me.LabelPhaseName.Name = "LabelPhaseName" + Me.LabelPhaseName.Size = New System.Drawing.Size(78, 13) + Me.LabelPhaseName.TabIndex = 20 + Me.LabelPhaseName.Text = "Phase Name" + ' + 'LabelInstances + ' + Me.LabelInstances.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LabelInstances.AutoSize = True + Me.LabelInstances.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.LabelInstances.ForeColor = System.Drawing.Color.RoyalBlue + Me.LabelInstances.Location = New System.Drawing.Point(25, 25) + Me.LabelInstances.Name = "LabelInstances" + Me.LabelInstances.Size = New System.Drawing.Size(66, 13) + Me.LabelInstances.TabIndex = 14 + Me.LabelInstances.Text = "Instances:" + ' + 'DataGridViewDoors + ' + Me.DataGridViewDoors.AllowUserToAddRows = False + Me.DataGridViewDoors.AllowUserToDeleteRows = False + Me.DataGridViewDoors.AllowUserToOrderColumns = True + Me.DataGridViewDoors.AllowUserToResizeRows = False + Me.DataGridViewDoors.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.DataGridViewDoors.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.DataGridViewDoors.ContextMenuStrip = Me.ContextMenuDatagridView + Me.DataGridViewDoors.Cursor = System.Windows.Forms.Cursors.Default + Me.DataGridViewDoors.Location = New System.Drawing.Point(-1, -1) + Me.DataGridViewDoors.Name = "DataGridViewDoors" + Me.DataGridViewDoors.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.DataGridViewDoors.Size = New System.Drawing.Size(596, 480) + Me.DataGridViewDoors.TabIndex = 13 + ' + 'ButtonOK + ' + Me.ButtonOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonOK.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonOK.Location = New System.Drawing.Point(740, 425) + Me.ButtonOK.Name = "ButtonOK" + Me.ButtonOK.Size = New System.Drawing.Size(132, 40) + Me.ButtonOK.TabIndex = 11 + Me.ButtonOK.Text = "Renumber Doors" + Me.ButtonOK.UseVisualStyleBackColor = True + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButtonCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonCancel.Location = New System.Drawing.Point(657, 425) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(76, 40) + Me.ButtonCancel.TabIndex = 12 + Me.ButtonCancel.Text = "Close" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ProgressBar1.Location = New System.Drawing.Point(601, 425) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(271, 40) + Me.ProgressBar1.TabIndex = 19 + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = Global.[Case].DoorMarkRenumber.My.Resources.Resources.Case_Clearly + Me.PictureBox1.Location = New System.Drawing.Point(740, 365) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(132, 54) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 20 + Me.PictureBox1.TabStop = False + ' + 'ButtonHelp + ' + Me.ButtonHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHelp.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonHelp.Location = New System.Drawing.Point(601, 425) + Me.ButtonHelp.Name = "ButtonHelp" + Me.ButtonHelp.Size = New System.Drawing.Size(50, 40) + Me.ButtonHelp.TabIndex = 22 + Me.ButtonHelp.Text = "Help" + Me.ButtonHelp.UseVisualStyleBackColor = True + ' + 'form_Main + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(884, 477) + Me.Controls.Add(Me.ButtonHelp) + Me.Controls.Add(Me.GroupBoxScope) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.DataGridViewDoors) + Me.Controls.Add(Me.LabelInstructions) + Me.Controls.Add(Me.ButtonOK) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.ProgressBar1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(900, 515) + Me.Name = "form_Main" + Me.Text = "Door Mark Update by Room Number" + Me.ContextMenuDatagridView.ResumeLayout(False) + Me.GroupBoxScope.ResumeLayout(False) + Me.GroupBoxScope.PerformLayout() + CType(Me.DataGridViewDoors, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents CheckBoxShowChecked As System.Windows.Forms.CheckBox + Friend WithEvents LabelPhase As System.Windows.Forms.Label + Friend WithEvents RadioButtonSelected As System.Windows.Forms.RadioButton + Friend WithEvents LabelInstructions As System.Windows.Forms.Label + Friend WithEvents ContextMenuDatagridView As System.Windows.Forms.ContextMenuStrip + Friend WithEvents ZoomToElementsToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem + Friend WithEvents RadioButtonCurrentLevel As System.Windows.Forms.RadioButton + Friend WithEvents GroupBoxScope As System.Windows.Forms.GroupBox + Friend WithEvents DataGridViewDoors As System.Windows.Forms.DataGridView + Friend WithEvents LabelInstances As System.Windows.Forms.Label + Friend WithEvents ButtonOK As System.Windows.Forms.Button + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents LabelPhaseName As System.Windows.Forms.Label + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ButtonHelp As System.Windows.Forms.Button +End Class diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.resx b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.resx new file mode 100644 index 00000000..b7c2d42e --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.resx @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.vb b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.vb new file mode 100644 index 00000000..5e9eaef6 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Form/form_Main.vb @@ -0,0 +1,556 @@ +Imports Autodesk.Revit.UI +Imports Autodesk.Revit.DB +Imports System.Windows.Forms +Imports System.Linq +Imports [Case].DoorMarkRenumber.API +Imports [Case].DoorMarkRenumber.Data + +Public Class form_Main + + ' Safety First + Private Event DataError As DataGridViewDataErrorEventHandler + + ' Private Members + Private _doEvents As Boolean = False + Private _s As clsSettings + Private _allDoors As New List(Of FamilyInstance) + Private _allDoorsHelpers As New SortableBindingList(Of clsDoors) + Private _lstDoorsFilteredClass As New SortableBindingList(Of clsDoors) + Private _dicDoorsNewMark As New SortedDictionary(Of String, clsDoors) + Private _firstLoad As Boolean = False + + Private _phaseOrder As SortedDictionary(Of Integer, Phase) + + ''' + ''' Constructor + ''' + ''' + ''' + Public Sub New(ByVal s As clsSettings) + InitializeComponent() + + ' Widen Scope + _s = s + + End Sub + +#Region "Form Visibility Settings" + + ''' + ''' Toggle Controls Based on State + ''' + ''' + ''' + Private Sub SetFormVisibility(isProcessing As Boolean) + If isProcessing = True Then + ButtonHelp.Hide() + ButtonOK.Hide() + ButtonCancel.Hide() + ProgressBar1.Show() + Else + ButtonHelp.Show() + ButtonOK.Show() + ButtonCancel.Show() + ProgressBar1.Hide() + End If + End Sub + +#End Region + +#Region "Private Members" + + ''' + ''' Calculate the new door mark id's + ''' + ''' + Private Sub RenumberDoors() + + ' Clear the collections and dictionaries + _lstDoorsFilteredClass = New SortableBindingList(Of clsDoors) + _dicDoorsNewMark = New SortedDictionary(Of String, clsDoors) + + Try + + ' Element Processing + For Each d As clsDoors In _allDoorsHelpers + + ' Phase must match selection + If d.Phase.ToLower = LabelPhaseName.Text.ToLower Then + + ' Scope + If RadioButtonCurrentLevel.Checked = True Then + + ' Belong on current view level? + If d.Level.ToUpper <> _s.Doc.ActiveView.GenLevel.Name.ToUpper Then Continue For + + Else + + ' Selected Filter + If _s.ActiveUIdoc.Selection.GetElementIds().Count > 0 Then + + ' Selected elements + Dim addE As Boolean = False + For Each e As ElementId In _s.ActiveUIdoc.Selection.GetElementIds() + If d.DoorInstance.Id.IntegerValue = e.IntegerValue Then + d.AllowEdits = True + End If + Next + If addE = False Then + d.AllowEdits = False + End If + + End If + + End If + + ' Ignore NULL rooms + If String.IsNullOrEmpty(d.toRoom) And String.IsNullOrEmpty(d.fromRoom) Then Continue For + + ' Room Number + Dim rmNumber As String = "" + If String.IsNullOrEmpty(d.toRoom) Then + rmNumber = d.fromRoom + Else + rmNumber = d.toRoom + End If + + ' Rumber to Check? + If Not String.IsNullOrEmpty(rmNumber) Then + + ' Alpha Iteration starting from A + Dim cntAscii As Integer = 65 + Do While _dicDoorsNewMark.ContainsKey(rmNumber & (Chr(cntAscii).ToString)) = True + cntAscii = cntAscii + 1 + Loop + + ' Set the prospective Mark value + rmNumber = rmNumber & (Chr(cntAscii)) + d.MarkSuggestion = rmNumber + + ' Uncheck if suggestion is same as the mark + If d.MarkNow.ToLower = d.MarkSuggestion.ToLower Then d.AllowEdits = False + + ' Add the unique NewMark to the dictionary... + If Not _dicDoorsNewMark.ContainsKey(rmNumber) Then + _dicDoorsNewMark.Add(rmNumber, d) + End If + + Else + + ' Empty + Dim m_todo As String = "" + + End If + + ' Filter by Editable? + 'If d.AllowEdits = False And Me.CheckBoxShowChecked.Checked = True Then Continue For + + ' Post to Datagrid if criteria valid + _lstDoorsFilteredClass.Add(d) + + End If + Next + + Catch + End Try + + ' Cycle through the collection and fix singletons (no A)... fix and then apply to datagrid + Dim lastDoor As clsDoors = Nothing + For Each d As clsDoors In _dicDoorsNewMark.Values + + ' If no B after an A, set to remove A + If lastDoor IsNot Nothing Then + If Strings.Right(d.MarkSuggestion, 1) = "A" And Strings.Right(lastDoor.MarkSuggestion, 1) = "A" Then + lastDoor.MarkSuggestion = Strings.Replace(lastDoor.MarkSuggestion, "A", "", , , CompareMethod.Text) + End If + + End If + + ' Last One + lastDoor = d + + Next + + DisplayDoorItems() + + ' Set the Form to Standby + SetFormVisibility(False) + + Dim m_failCnt As Integer = 0 + + ' Analyze Room Data + For Each x As DataGridViewRow In DataGridViewDoors.Rows + + ' Do we have a value for the Suggested Mark? + If String.IsNullOrEmpty(x.Cells("MarkSuggestion").Value) Then + + ' Count as Failure - Missing Room in Last Phase + m_failCnt += 1 + + End If + + Next + + ' Did we get any failures? + If m_failCnt > 0 Then + + ' Report to User + MsgBox(m_failCnt.ToString & " out of a possible " & DataGridViewDoors.Rows.Count.ToString & " elements have missing room data!" & vbCr & + "This condition is due to the room elements either being placed in an earlier phase or missing alltogether." & vbCr & vbCr & + "'To' and 'From' Room data only exists for rooms placed in the last and newest phase of the model!" & vbCr & vbCr & + "As a result, this tool will only analyze rooms placed in the newset phase of the model.", + MsgBoxStyle.Information + MsgBoxStyle.OkOnly, + "Room Elements") + + End If + + End Sub + + ''' + ''' This function will actually renumber the door marks + ''' + ''' + Private Sub UpdateDoors() + + ' The Stats + Dim m_CntModified As Integer = 0 + Dim m_CntSkipped As Integer = 0 + + ' New Transaction + Using t As New Transaction(_s.Doc, "Case Renumber Door Marks") + If t.Start() = TransactionStatus.Started Then + + Try + + ' Write all updates to objects + For Each itemFix As clsDoors In _lstDoorsFilteredClass + ' Only edit items checked as "Allow" and avoid blank NewMarks + If itemFix.AllowEdits = True Then + + ' NULL Suggestion? + If itemFix.MarkSuggestion = "" Then + m_CntSkipped += 1 + Continue For + End If + + ' This is new, test it first + itemFix.SetDoorMark() + m_CntModified += 1 + + End If + Next + + ' Commit + t.Commit() + + Catch + End Try + + End If + End Using + + Dim m_StatusString As String = m_CntModified & " Doors were succesfully renumbered!" + If m_CntSkipped > 0 Then + m_StatusString = m_StatusString & vbCr & m_CntSkipped & " Doors were skipped possibly due to the lack of a room on either side of the swing." + End If + + ' Report what we did... + Using td As TaskDialog = New Autodesk.Revit.UI.TaskDialog("Door Renumbering Statistics") + With td + .MainInstruction = "Door Mark Renumbering Statistics" + .MainContent = m_StatusString + .Show() + End With + End Using + + ' Close + Close() + + End Sub + + ''' + ''' Displays the filtered doors in the data grid view + ''' + ''' + Private Sub DisplayDoorItems() + + ' Anything + If _allDoorsHelpers.Count = 0 Then Return + + ' Clear Main List + _lstDoorsFilteredClass = New SortableBindingList(Of clsDoors) + + ' Filter Kind + If Me.RadioButtonCurrentLevel.Checked = True Then + + ' Level + For Each d As clsDoors In _allDoorsHelpers + If d.MarkNow = d.MarkSuggestion Then d.AllowEdits = False + If Me.CheckBoxShowChecked.Checked = True Then + If d.AllowEdits = True And _ + d.Phase = Me.LabelPhaseName.Text And _ + d.Level = _s.Doc.ActiveView.GenLevel.Name Then _lstDoorsFilteredClass.Add(d) + Else + If d.Phase = Me.LabelPhaseName.Text And _ + d.Level = _s.Doc.ActiveView.GenLevel.Name Then _lstDoorsFilteredClass.Add(d) + End If + Next + + Else + + ' Selection + For Each d As clsDoors In _allDoorsHelpers + If d.MarkNow = d.MarkSuggestion Then d.AllowEdits = False + + ' All non selected doors will remain unchecked + If _s.ActiveUIdoc.Selection.GetElementIds().Count > 0 Then + If d.Phase = Me.LabelPhaseName.Text Then + If Me.CheckBoxShowChecked.Checked = True Then + ' Only allow edits for the selected elements + Dim addE As Boolean = False + For Each myDr As ElementId In _s.ActiveUIdoc.Selection.GetElementIds() + If d.DoorInstance.Id.ToString.ToUpper = myDr.ToString.ToUpper And d.AllowEdits = True Then + addE = True + End If + Next + If addE = False Then + d.AllowEdits = False + Else + _lstDoorsFilteredClass.Add(d) + End If + Else + ' Only allow edits for the selected elements + Dim addE As Boolean = False + For Each myDr As ElementId In _s.ActiveUIdoc.Selection.GetElementIds() + If d.DoorInstance.Id.ToString.ToUpper = myDr.ToString.ToUpper Then + addE = True + End If + Next + If addE = False Then + d.AllowEdits = False + Else + _lstDoorsFilteredClass.Add(d) + End If + End If + End If + End If + Next + + End If + + Try + + If _lstDoorsFilteredClass.Count = 0 Then + MsgBox("No more Mark values need changing...", + MsgBoxStyle.Information, + "All Markse are OK") + Close() + + Else + + ' Quantity + LabelInstances.Text = _lstDoorsFilteredClass.Count.ToString & " Doors in Scope" + + ' Populate Datagridview with the doors list + 'Me.DataGridViewDoors.DataSource = Nothing + DataGridViewDoors.DataSource = _lstDoorsFilteredClass + + End If + + Catch + End Try + + End Sub + + ''' + ''' Zoom to all selected doors in Data Grid View ; Event run + ''' + ''' + ''' + ''' + Private Sub ZoomToElementsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ZoomToElementsToolStripMenuItem.Click + + ' Get the elementID's from the selected rows as an element selection + Dim eSet As New ElementSet + Dim selectedRowCount As Int32 = DataGridViewDoors.Rows.GetRowCount(DataGridViewElementStates.Selected) + If selectedRowCount = 0 Then + Exit Sub + Else + For i As Integer = 0 To selectedRowCount - 1 + If DataGridViewDoors.SelectedRows(i).Visible Then + Dim myE As Element = _s.Doc.GetElement(DataGridViewDoors.SelectedRows(i).Cells(9).Value) + eSet.Insert(myE) + End If + Next + End If + + Try + + ' Zoom to the selected objects + _s.ActiveUIdoc.ShowElements(eSet) + + Catch + End Try + + End Sub + + Private Sub ToggleViewCategory(catId As ElementId, isVisible As Boolean) + If _s.Doc.IsModifiable = False Then + Dim m_todo As String = "" + End If + End Sub + +#End Region + +#Region "Form Controls & Events" + + ''' + ''' Starts the primary scan after form loads + ''' + ''' + ''' + ''' + Private Sub form_Doors_Shown(sender As Object, e As EventArgs) Handles Me.Shown + + ' Processing Visibility + SetFormVisibility(True) + + Try + + ' Form Setup + Text = "Door Mark Renumber by Room Number " & _s.AppVersion + + ' Get Current View Phase + Dim m_currentPhaseId As ElementId = _s.Doc.ActiveView.Parameter(BuiltInParameter.VIEW_PHASE).AsElementId + + ' List all Phases in Model + _phaseOrder = New SortedDictionary(Of Integer, Phase) + For Each x As Phase In _s.Doc.Phases + _phaseOrder.Add(x.Id.IntegerValue, x) + + ' Set the Phase Name + If x.Id.IntegerValue = m_currentPhaseId.IntegerValue Then + LabelPhaseName.Text = x.Name + End If + + Next + + ' LINQ Door Instances from current view + Dim m_fiList = From ele In New FilteredElementCollector(_s.Doc, _s.Doc.ActiveView.Id) _ + .OfCategory(BuiltInCategory.OST_Doors) _ + .OfClass(GetType(FamilyInstance)) + Let fi = TryCast(ele, FamilyInstance) + Where fi.CreatedPhaseId.IntegerValue = m_currentPhaseId.IntegerValue + Select fi + + ' Keep Doors Generated in Current Phase of View Only + If Not m_fiList Is Nothing Then _allDoors = m_fiList.ToList() + + ' Progress Setup + With ProgressBar1 + .Minimum = 0 + .Maximum = _allDoors.Count + .Value = 0 + End With + + ' Enable current selection only if there is one + If Not _s.ActiveUIdoc.Selection.GetElementIds.Count < 1 Then + RadioButtonSelected.Enabled = True + RadioButtonSelected.Checked = True + End If + + ' Collection of Door Objects + For Each d As FamilyInstance In _allDoors + + Try + ' Step the Progress + ProgressBar1.Increment(1) + Catch + End Try + + Try + + ' Door Helper + Dim m_clsDoor As New clsDoors(d, _phaseOrder) + + ' Buildup the Dictionary + Dim m_roomNumber As String = "" + If m_clsDoor.toRoom = "" Then + m_roomNumber = m_clsDoor.fromRoom + Else + m_roomNumber = m_clsDoor.toRoom + End If + + ' Add the object to the dictionary + _allDoorsHelpers.Add(m_clsDoor) + + Catch + End Try + + Next + + _firstLoad = True + + ' Logically update numerals for New Mark Value + RenumberDoors() + + Catch + End Try + + _doEvents = True + + End Sub + + ''' + ''' Help Documentation + ''' + ''' + ''' + ''' + Private Sub ButtonHelp_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHelp.Click + Process.Start("http://apps.case-inc.com/content/free-door-mark-updater") + End Sub + + ''' + ''' Renumber Doors + ''' + ''' + ''' + ''' + Private Sub ButtonOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonOK.Click + + ' Changes + UpdateDoors() + + ' Close + Close() + + End Sub + + Private Sub ButtonCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonCancel.Click + Close() + End Sub + + Private Sub CheckBoxShowChecked_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBoxShowChecked.CheckedChanged + DisplayDoorItems() + End Sub + + Private Sub RadioButtonCurrentLevel_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButtonCurrentLevel.CheckedChanged + If _firstLoad = True Then DisplayDoorItems() + End Sub + + Private Sub RadioButtonSelected_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButtonSelected.CheckedChanged + If _firstLoad = True Then DisplayDoorItems() + End Sub + + Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click + Process.Start("http://www.case-inc.com") + End Sub + + Private Sub DataGridViewDoors_DataError(ByVal sender As Object, ByVal e As DataGridViewDataErrorEventArgs) Handles DataGridViewDoors.DataError + ' Leave empty... to prevent lockups + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Application.Designer.vb b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Application.myapp b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/AssemblyInfo.vb b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..792e652b --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/DataSources/System.Data.DataTable.datasource b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/DataSources/System.Data.DataTable.datasource new file mode 100644 index 00000000..a23fb0d1 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/DataSources/System.Data.DataTable.datasource @@ -0,0 +1,10 @@ + + + + System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Resources.Designer.vb b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..5bfff4a7 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.DoorMarkRenumber.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Case_Clearly() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Resources.resx b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Resources.resx new file mode 100644 index 00000000..9eb33c83 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Case_Clearly.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Settings.Designer.vb b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..646f3d75 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Settings.Designer.vb @@ -0,0 +1,82 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public ReadOnly Property fmsandboxConnectionString() As String + Get + Return CType(Me("fmsandboxConnectionString"),String) + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].DoorMarkRenumber.My.MySettings + Get + Return Global.[Case].DoorMarkRenumber.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Settings.settings b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Settings.settings new file mode 100644 index 00000000..fc4b88b1 --- /dev/null +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/My Project/Settings.settings @@ -0,0 +1,14 @@ + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString /> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + + + + \ No newline at end of file diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Resources/Case_Clearly.png b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.sln b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.sln index c21d58d1..8c972ef2 100644 --- a/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.sln +++ b/src/Case.DoorMarkRenumber/Case.DoorMarkRenumber.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.DoorMarkRenumber.Share EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.DoorMarkRenumber.2023", "Case.DoorMarkRenumber.2023\Case.DoorMarkRenumber.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.DoorMarkRenumber.2026", "Case.DoorMarkRenumber.2026\Case.DoorMarkRenumber.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.DoorMarkRenumber.2021", "Case.DoorMarkRenumber.2021\Case.DoorMarkRenumber.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.DoorMarkRenumber.2022", "Case.DoorMarkRenumber.2022\Case.DoorMarkRenumber.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.Export.Families/Case.Export.Families.2026/Case.Export.Families.2026.vbproj b/src/Case.Export.Families/Case.Export.Families.2026/Case.Export.Families.2026.vbproj new file mode 100644 index 00000000..1b5d8da6 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/Case.Export.Families.2026.vbproj @@ -0,0 +1,130 @@ + + + + + Debug + AnyCPU + {BDE64D27-E155-4935-A4FE-8F940509A4F2} + Library + Case.Export.Families + Case.Export.Families + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.Export.Families.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.Export.Families.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + form_Familes.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + form_Familes.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + + \ No newline at end of file diff --git a/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.designer.vb b/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.designer.vb new file mode 100644 index 00000000..931d96a9 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.designer.vb @@ -0,0 +1,224 @@ + _ +Partial Class form_Families + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Families)) + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.CheckedListBoxCategories = New System.Windows.Forms.CheckedListBox() + Me.ButtonSelectNone = New System.Windows.Forms.Button() + Me.ButtonSelectAll = New System.Windows.Forms.Button() + Me.LabelFileName = New System.Windows.Forms.Label() + Me.ButtonBrowse = New System.Windows.Forms.Button() + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog() + Me.LabelExportPath = New System.Windows.Forms.Label() + Me.LabelExport = New System.Windows.Forms.Label() + Me.ButtonExport = New System.Windows.Forms.Button() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ButtonHelp = New System.Windows.Forms.Button() + Me.GroupBox1.SuspendLayout() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.CheckedListBoxCategories) + Me.GroupBox1.Controls.Add(Me.ButtonSelectNone) + Me.GroupBox1.Controls.Add(Me.ButtonSelectAll) + Me.GroupBox1.Controls.Add(Me.LabelFileName) + Me.GroupBox1.Location = New System.Drawing.Point(7, 82) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(423, 352) + Me.GroupBox1.TabIndex = 40 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Select Categories to Export" + ' + 'CheckedListBoxCategories + ' + Me.CheckedListBoxCategories.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.CheckedListBoxCategories.FormattingEnabled = True + Me.CheckedListBoxCategories.Location = New System.Drawing.Point(6, 19) + Me.CheckedListBoxCategories.Name = "CheckedListBoxCategories" + Me.CheckedListBoxCategories.Size = New System.Drawing.Size(306, 319) + Me.CheckedListBoxCategories.TabIndex = 32 + ' + 'ButtonSelectNone + ' + Me.ButtonSelectNone.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.ButtonSelectNone.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonSelectNone.Location = New System.Drawing.Point(318, 65) + Me.ButtonSelectNone.Name = "ButtonSelectNone" + Me.ButtonSelectNone.Size = New System.Drawing.Size(97, 40) + Me.ButtonSelectNone.TabIndex = 39 + Me.ButtonSelectNone.Text = "Check None" + Me.ButtonSelectNone.UseVisualStyleBackColor = True + ' + 'ButtonSelectAll + ' + Me.ButtonSelectAll.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.ButtonSelectAll.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonSelectAll.Location = New System.Drawing.Point(318, 19) + Me.ButtonSelectAll.Name = "ButtonSelectAll" + Me.ButtonSelectAll.Size = New System.Drawing.Size(97, 40) + Me.ButtonSelectAll.TabIndex = 38 + Me.ButtonSelectAll.Text = "Check All" + Me.ButtonSelectAll.UseVisualStyleBackColor = True + ' + 'LabelFileName + ' + Me.LabelFileName.Location = New System.Drawing.Point(6, 267) + Me.LabelFileName.Name = "LabelFileName" + Me.LabelFileName.Size = New System.Drawing.Size(406, 17) + Me.LabelFileName.TabIndex = 25 + Me.LabelFileName.Text = "FILENAME" + ' + 'ButtonBrowse + ' + Me.ButtonBrowse.Location = New System.Drawing.Point(7, 4) + Me.ButtonBrowse.Name = "ButtonBrowse" + Me.ButtonBrowse.Size = New System.Drawing.Size(25, 23) + Me.ButtonBrowse.TabIndex = 37 + Me.ButtonBrowse.Text = "..." + Me.ButtonBrowse.UseVisualStyleBackColor = True + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel + Me.ButtonCancel.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonCancel.Location = New System.Drawing.Point(325, 440) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(97, 40) + Me.ButtonCancel.TabIndex = 35 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'LabelExportPath + ' + Me.LabelExportPath.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.LabelExportPath.ForeColor = System.Drawing.Color.Blue + Me.LabelExportPath.Location = New System.Drawing.Point(7, 36) + Me.LabelExportPath.Name = "LabelExportPath" + Me.LabelExportPath.Size = New System.Drawing.Size(404, 43) + Me.LabelExportPath.TabIndex = 34 + Me.LabelExportPath.Text = "EXPORTPATH" + Me.LabelExportPath.TextAlign = System.Drawing.ContentAlignment.BottomRight + ' + 'LabelExport + ' + Me.LabelExport.AutoSize = True + Me.LabelExport.Location = New System.Drawing.Point(38, 9) + Me.LabelExport.Name = "LabelExport" + Me.LabelExport.Size = New System.Drawing.Size(172, 13) + Me.LabelExport.TabIndex = 33 + Me.LabelExport.Text = "Your RFA Files Will be Exported to:" + ' + 'ButtonExport + ' + Me.ButtonExport.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonExport.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonExport.Location = New System.Drawing.Point(232, 440) + Me.ButtonExport.Name = "ButtonExport" + Me.ButtonExport.Size = New System.Drawing.Size(87, 40) + Me.ButtonExport.TabIndex = 32 + Me.ButtonExport.Text = "Export" + Me.ButtonExport.UseVisualStyleBackColor = True + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ProgressBar1.Location = New System.Drawing.Point(176, 440) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(246, 40) + Me.ProgressBar1.TabIndex = 36 + ' + 'PictureBox1 + ' + Me.PictureBox1.Image = Global.[Case].Export.Families.My.Resources.Resources.Case_Clearly + Me.PictureBox1.Location = New System.Drawing.Point(13, 440) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(157, 40) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 40 + Me.PictureBox1.TabStop = False + ' + 'ButtonHelp + ' + Me.ButtonHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHelp.ImageAlign = System.Drawing.ContentAlignment.MiddleRight + Me.ButtonHelp.Location = New System.Drawing.Point(176, 440) + Me.ButtonHelp.Name = "ButtonHelp" + Me.ButtonHelp.Size = New System.Drawing.Size(50, 40) + Me.ButtonHelp.TabIndex = 42 + Me.ButtonHelp.Text = "?" + Me.ButtonHelp.UseVisualStyleBackColor = True + ' + 'form_Families + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(434, 492) + Me.Controls.Add(Me.ButtonHelp) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.GroupBox1) + Me.Controls.Add(Me.ButtonBrowse) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.LabelExportPath) + Me.Controls.Add(Me.LabelExport) + Me.Controls.Add(Me.ButtonExport) + Me.Controls.Add(Me.ProgressBar1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(450, 530) + Me.Name = "form_Families" + Me.Text = "Export Family RFA Files" + Me.GroupBox1.ResumeLayout(False) + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents CheckedListBoxCategories As System.Windows.Forms.CheckedListBox + Friend WithEvents LabelFileName As System.Windows.Forms.Label + Friend WithEvents ButtonSelectAll As System.Windows.Forms.Button + Friend WithEvents ButtonSelectNone As System.Windows.Forms.Button + Friend WithEvents ButtonBrowse As System.Windows.Forms.Button + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents FolderBrowserDialog1 As System.Windows.Forms.FolderBrowserDialog + Friend WithEvents LabelExportPath As System.Windows.Forms.Label + Friend WithEvents LabelExport As System.Windows.Forms.Label + Friend WithEvents ButtonExport As System.Windows.Forms.Button + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ButtonHelp As System.Windows.Forms.Button +End Class diff --git a/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.resx b/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.resx new file mode 100644 index 00000000..b98b62cb --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.resx @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.vb b/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.vb new file mode 100644 index 00000000..a1f4e027 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/Forms/form_Familes.vb @@ -0,0 +1,360 @@ +Imports Autodesk.Revit.DB +Imports Autodesk.Revit.UI +Imports System.Windows.Forms +Imports System.IO +Imports System.Diagnostics +Imports [Case].Export.Families.API +Imports [Case].Export.Families.Data + +Public Class form_Families + + Private _s As clsSettings + + ''' + ''' Form class constructor + ''' + ''' The Settings object + ''' + Public Sub New(s As clsSettings) + InitializeComponent() + + ' Widen Scope + _s = s + + End Sub + + ''' + ''' Make sure the path does not contain any invalid file naming characters + ''' + ''' The Filename to check + ''' A string + ''' + Private Function CheckValidFileName(ByVal fileName As String) As String + + ' Check Characters + For Each c In Path.GetInvalidFileNameChars() + If fileName.Contains(c) Then + Return "" + End If + Next + + ' Result + Return fileName + + End Function + + ''' + ''' This routine performs the exports + ''' + ''' + Private Sub doExport() + + ' Only export families that belong to our selected categories! + Dim m_SelectedCategories = CheckedListBoxCategories.CheckedItems + Dim m_CatHash As New Hashtable + If m_SelectedCategories.Count = 0 Then + MsgBox("You did not select any categories..." & vbCr & "Nothing to do...", _ + MsgBoxStyle.Information, "No Categories Selected! You're Boring :(") + Exit Sub + End If + + ' A hashtable comes in handy when verifying multiple situations... or 1 + For Each x In m_SelectedCategories + m_CatHash.Add(x.ToString, "Category") + Next + + Try ' If the parent export directory is missing, create it + Directory.CreateDirectory(Replace(LabelExportPath.Text, "/", "\", , , CompareMethod.Text)) + Catch ex As Exception + ' Message to show any errors + MsgBox(Err.Description, MsgBoxStyle.Information, Err.Source) + Exit Sub + End Try + + ' Start the progressbar + Dim m_iCnt As Integer = 0 + With ProgressBar1 + .Minimum = 0 + .Maximum = _s.SymbolElements.Count + .Value = m_iCnt + End With + + ' Dictionary of Exported Family Names + Dim m_ExportedFams As New Dictionary(Of String, String) + + ' Failures + Dim m_failedfams As New Dictionary(Of String, String) + Dim m_fl As New List(Of String) + + ' Iterate and Export Selections + For Each m_FamSymb As FamilySymbol In _s.SymbolElements + m_iCnt += 1 + + ' The Family Object + Dim m_FamInst As Family = m_FamSymb.Family + Dim m_FamName As String = m_FamInst.Name + + ' Get the category and build subdirectory + If Not (m_FamSymb.Category Is Nothing) Then + + ' Is it a selected category? + If m_CatHash.Contains(m_FamSymb.Category.Name) Then + + ' Target Directroy Path + Dim m_ExportPath As String = Replace(LabelExportPath.Text & "\" & m_FamSymb.Category.Name & "\", "/", "\", , , CompareMethod.Text) + m_ExportPath = Replace(m_ExportPath, "\\", "\", , , CompareMethod.Text) + + ' Does it Exist? + If Not Directory.Exists(m_ExportPath) Then + Try ' Create the subdirectory + Directory.CreateDirectory(m_ExportPath) + Catch ex As Exception + ' User Permissions + End Try + End If + + Dim m_finalPath As String = m_ExportPath & m_FamName & ".rfa" + + ' Did we already export this family? + If m_ExportedFams.ContainsKey(m_finalPath.ToLower) Then + GoTo StepProgress + Else + m_ExportedFams.Add(m_finalPath.ToLower, m_finalPath.ToLower) + End If + + ' Is the Family Path and Name Valid + If CheckValidFileName(m_FamName) <> "" Then + + ' Update the File Action Text + LabelFileName.Text = "...\" & m_FamSymb.Category.Name & "\" & m_FamInst.Name & ".rfa" + + ' Family Save Options to Overwrite + Dim m_opt As New SaveAsOptions + m_opt.OverwriteExistingFile = True + + '' ''If m_FamSymb.Category.Name.ToLower = "mass" Then + '' '' Dim m_t As String = "" + '' ''End If + '' ''If m_FamSymb.Category.Name.ToLower = "curtain wall mullions" Then + '' '' Dim m_t As String = "" + '' ''End If + '' ''If m_FamSymb.Category.Name.ToLower = "curtain panels" Then + '' '' Dim m_t As String = "" + '' ''End If + + Try + + ' Get the Family Document + Dim famDoc As Document = _s.Doc.EditFamily(m_FamInst) + + ' Save the Family Out + famDoc.SaveAs(m_finalPath, m_opt) + + ' Always Close Without Saving + famDoc.Close(False) + + Catch ex As Exception + + If Not m_failedfams.ContainsKey(m_FamName) Then + m_failedfams.Add(m_FamName, "<" & m_FamSymb.Category.Name & "> Failed Because: " & ex.Message) + m_fl.Add(m_FamName & " <" & m_FamSymb.Category.Name & "> Failed Because: " & ex.Message & vbCr) + End If + + End Try + End If + End If + End If +StepProgress: + Try + ' Step the progress bar + ProgressBar1.Value = m_iCnt + Application.DoEvents() + Catch ex As Exception + ' Quiet Fail + End Try + Next + + ' Report Mishaps + If m_fl.Count < 1 Then Exit Sub + + Dim m_td As New TaskDialog("Families That Couldn't Export") + Dim m_Message As String = "" + For Each x As String In m_fl + m_Message += x + Next + m_td.MainInstruction = "In Place Masses or Related Components Cannot Export to RFA:" + m_td.MainContent = m_Message + m_td.ExpandedContent = "We're Sorry :(" + m_td.Show() + + End Sub + +#Region "Form Visibility" + + Public Enum FormVis + StandBy + Processing + End Enum + + ''' + ''' Set the Form Control Visibilities + ''' + ''' + ''' + Private Sub SetFormVis(p_vis As FormVis) + Select Case p_vis + Case FormVis.Processing + ButtonCancel.Hide() + ButtonExport.Hide() + ButtonSelectAll.Hide() + ButtonSelectNone.Hide() + ProgressBar1.Show() + Case FormVis.StandBy + ButtonCancel.Show() + ButtonExport.Show() + ButtonSelectAll.Show() + ButtonSelectNone.Show() + ProgressBar1.Hide() + End Select + End Sub + +#End Region + +#Region "Form Controls & Events" + + ''' + ''' Setup + ''' + ''' + ''' + ''' + Private Sub form_Families_Shown(sender As Object, e As EventArgs) Handles Me.Shown + + ' Form configurations + Text = "Batch Export Family RFA's " & _s.AppVersion + + SetFormVis(FormVis.StandBy) + Try + LabelExportPath.Text = Path.GetDirectoryName(_s.DocName) & "\Exported Families\" + Catch + End Try + + ' Setup the list + CheckedListBoxCategories.Items.Clear() + CheckedListBoxCategories.CheckOnClick = True + LabelFileName.Text = "" + + ' Categories + For Each x As Category In _s.Categories.Values + + ' Add the category + CheckedListBoxCategories.Items.Add(x.Name) + + Next + + End Sub + + ''' + ''' Help Documentation + ''' + ''' + ''' + ''' + Private Sub ButtonHelp_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHelp.Click + Process.Start("http://apps.case-inc.com/content/free-export-families-rfa-files-category") + End Sub + + ''' + ''' Case Site + ''' + ''' + ''' + ''' + Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click + Process.Start("http://www.case-inc.com") + End Sub + + ''' + ''' Export the families and then quietly close + ''' + ''' + ''' + ''' + Private Sub ButtonExport_Click(ByVal sender As System.Object, + ByVal e As System.EventArgs) Handles ButtonExport.Click + + ' Start Processing + SetFormVis(FormVis.Processing) + + ' Export + doExport() + + ' Close Form + Close() + + End Sub + + ''' + ''' Cancel and do nothing + ''' + ''' + ''' + ''' + Private Sub ButtonCancel_Click(ByVal sender As System.Object, + ByVal e As System.EventArgs) Handles ButtonCancel.Click + Close() + End Sub + + ''' + ''' Brose to an export directory + ''' + ''' + ''' + ''' + Private Sub ButtonBrowse_Click(ByVal sender As System.Object, + ByVal e As EventArgs) Handles ButtonBrowse.Click + ' Browse to select the parent export path + ButtonExport.Enabled = False + If FolderBrowserDialog1.ShowDialog = DialogResult.OK Then + If Not String.IsNullOrEmpty(FolderBrowserDialog1.SelectedPath.ToString) Then + LabelExportPath.Text = FolderBrowserDialog1.SelectedPath.ToString + End If + Try + ' Enable the Export Button + If Directory.Exists(LabelExportPath.Text) = True Then + ButtonExport.Enabled = True + End If + Catch + End Try + End If + End Sub + + ''' + ''' Uncheck all items in the listbox + ''' + ''' + ''' + ''' + Private Sub ButtonSelectNone_Click(ByVal sender As System.Object, + ByVal e As System.EventArgs) Handles ButtonSelectNone.Click + For i As Integer = 0 To CheckedListBoxCategories.Items.Count - 1 + CheckedListBoxCategories.SetItemChecked(i, False) + Next + End Sub + + ''' + ''' Check all items in listbox + ''' + ''' + ''' + ''' + Private Sub ButtonSelectAll_Click(ByVal sender As System.Object, + ByVal e As System.EventArgs) Handles ButtonSelectAll.Click + For i As Integer = 0 To CheckedListBoxCategories.Items.Count - 1 + CheckedListBoxCategories.SetItemChecked(i, True) + Next + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/Application.Designer.vb b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/Application.myapp b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/AssemblyInfo.vb b/src/Case.Export.Families/Case.Export.Families.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..3fc14653 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/DataSources/System.Data.DataTable.datasource b/src/Case.Export.Families/Case.Export.Families.2026/My Project/DataSources/System.Data.DataTable.datasource new file mode 100644 index 00000000..a23fb0d1 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/DataSources/System.Data.DataTable.datasource @@ -0,0 +1,10 @@ + + + + System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/Resources.Designer.vb b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..8f30df80 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Resources.Designer.vb @@ -0,0 +1,83 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.Export.Families.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Case_Clearly() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Case_Clearly_90() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly_90", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/Resources.resx b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Resources.resx new file mode 100644 index 00000000..71737b20 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Resources.resx @@ -0,0 +1,127 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Case_Clearly.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\Case_Clearly_90.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/Settings.Designer.vb b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..cf0d1cf0 --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].Export.Families.My.MySettings + Get + Return Global.[Case].Export.Families.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.Export.Families/Case.Export.Families.2026/My Project/Settings.settings b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Settings.settings new file mode 100644 index 00000000..f7f176ac --- /dev/null +++ b/src/Case.Export.Families/Case.Export.Families.2026/My Project/Settings.settings @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Case.Export.Families/Case.Export.Families.2026/Resources/Case_Clearly.png b/src/Case.Export.Families/Case.Export.Families.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.Export.Families/Case.Export.Families.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.Export.Families/Case.Export.Families.2026/Resources/Case_Clearly_90.png b/src/Case.Export.Families/Case.Export.Families.2026/Resources/Case_Clearly_90.png new file mode 100644 index 00000000..19dc1438 Binary files /dev/null and b/src/Case.Export.Families/Case.Export.Families.2026/Resources/Case_Clearly_90.png differ diff --git a/src/Case.Export.Families/Case.Export.Families.sln b/src/Case.Export.Families/Case.Export.Families.sln index 6c984ad3..d646f74c 100644 --- a/src/Case.Export.Families/Case.Export.Families.sln +++ b/src/Case.Export.Families/Case.Export.Families.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.Export.Families.Shared EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.Export.Families.2023", "Case.Export.Families.2023\Case.Export.Families.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.Export.Families.2026", "Case.Export.Families.2026\Case.Export.Families.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.Export.Families.2021", "Case.Export.Families.2021\Case.Export.Families.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.Export.Families.2022", "Case.Export.Families.2022\Case.Export.Families.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Case.ExportSharedParameters.2026.csproj b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Case.ExportSharedParameters.2026.csproj new file mode 100644 index 00000000..ba6af31c --- /dev/null +++ b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Case.ExportSharedParameters.2026.csproj @@ -0,0 +1,71 @@ + + + + + Debug + AnyCPU + {53C1FBF7-6812-4C11-9E01-5048D0B30E21} + Library + Properties + Case.ExportSharedParameters + Case.ExportSharedParameters + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + TRACE;DEBUG;Revit2026 + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE;Revit2026 + prompt + 4 + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + Form + + + form_Main.cs + + + + + + + form_Main.cs + + + + + + \ No newline at end of file diff --git a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Properties/AssemblyInfo.cs b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d41ef562 --- /dev/null +++ b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Case.AppName.2026")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Case.AppName.2026")] +[assembly: AssemblyCopyright("Copyright © 2026")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0acbcdf9-d03f-47c8-a50b-f2a66581d32b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Resources/Case_Clearly.png b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.cs b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.cs new file mode 100644 index 00000000..a0ce4cfa --- /dev/null +++ b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.cs @@ -0,0 +1,37 @@ +using System.Windows.Forms; + +namespace Case.ExportSharedParameters.UI +{ + public partial class form_Main : Form + { + + /// + /// Progress Bar + /// + /// + public form_Main(int maxNumber) + { + InitializeComponent(); + + // Setup Progress + this.progressBar1.Maximum = maxNumber; + this.progressBar1.Minimum = 0; + this.progressBar1.Value = 0; + + } + + /// + /// Increment the Progress + /// + public void IncrementProgress() + { + try + { + this.progressBar1.Increment(1); + Application.DoEvents(); + } + catch { } + } + + } +} \ No newline at end of file diff --git a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.designer.cs b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.designer.cs new file mode 100644 index 00000000..37abc5f6 --- /dev/null +++ b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.designer.cs @@ -0,0 +1,64 @@ +namespace Case.ExportSharedParameters.UI +{ + partial class form_Main + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(form_Main)); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.SuspendLayout(); + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Fill; + this.progressBar1.Location = new System.Drawing.Point(0, 0); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(434, 47); + this.progressBar1.TabIndex = 0; + // + // form_Main + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(434, 47); + this.Controls.Add(this.progressBar1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(450, 85); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(450, 85); + this.Name = "form_Main"; + this.Text = "X"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ProgressBar progressBar1; + } +} \ No newline at end of file diff --git a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.resx b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.resx new file mode 100644 index 00000000..d5099864 --- /dev/null +++ b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.2026/UI/form_Main.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEIAABIXAAASFwAAAAAAAAAA + AAD//////////////////////////////////////////////////f////3////////////////////+ + /////P7//fr8//z6+////v7///////////////////////////////////////v8/f////7////+//// + /f///fv//fv5//z6+P/9+/r////9/////////v3///79///////////////////////////////+///+ + /f///v////7//////////////////////////////////////////////////////////////v////7/ + ///+/////v////////////////////////////////////////////////////////////////z9///6 + /f//+/3///3+///+///////////////+/////////Pr6//37/f///v////////7+///8/P3//Pv8//z8 + /f/9/v////79/////////////////////v///v7///7+/////////v3////////////7+vn/9/X0//j2 + 9f/9+vn///38///+/P///v3///7////+//////////////////////////////////////////////// + //////////////7////+/////v////7///////////////////////////////////////////////// + ///////////////+/v///f7///v+///7/v///P7///3+//78/v/8+/z/+vj7//39/f///v///Pz9//r6 + +//8/P3//f7+//3+/v/9/v7//v////v7+//6+vr/+Pj5//j4+f/6+vr//Pz8//7///////////7+//r6 + +v///////v7+//38/P/8/Pv//Pv6//v6+v////7///////////////////////////////////////// + ///////////////////////////////////+/////v////7////+//////////////////////////// + /////////////////////////////////////v////3////9/////f////7////+/////f7//fz9//z7 + /P/9/f7//fz9//r6/P/6+vz//f3+//////////////////////////////////////////////////// + /////////Pz8//r6+v/8/Pz/+/v7//f39//5+fn//v7+/////v/+/v7//v7+//r6+/////////////// + /////////////////////////////////////////////////////////v////7////+/////v////// + //////////////////////////////////////////////////////////7////9/////v///v7///38 + /v/8/P3//Pz9//7//////////f7////////////////////////+////+Pr7//X4+f/z9ff/7/Dx//Dy + 8//y8/T/8fL0//Dx8//z9PX/+Pn7//3////////////////////4+vn/+Pj4//r7/f/5+/3/+fr8//n6 + /P/3+Pv///////////////////////////////////////////////////////////////////////7/ + ///+/////v////7///////////////////////////////////////////////////////////////// + /////v////3///78/v/8+v3/+vr8//z7/P/////////////////8/Pz/7e7v/9/g4P/N0NH/trm7/6Gk + pv+SlZf/iY2Q/3+Chf9+gYX/foCE/3x+gv97foH/g4eK/5qdoP+1ubz/yczR/9zg4P/q7e7/+f3+//// + ////////9vr9//X4+v/3+vz/+/7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/P7//fv+//77/////v//////////////////+Pn8//Hw9P/X19r/tra4/4iK + jf9fYWT/REdJ/zI1N/8gIyX/CAsO/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAv8PEhb/Jiks/zk7 + P/9gY2f/goWJ/7C0uf/b3uL/8fP0//v//////////f////r+///+/////v////7////+//////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////+fj7//f2+f/8+v3//////////////v//7Ozw/7/B + xP+en6P/TU5R/yYoK/8LDhL/AAAA/wAAAv8ECQz/DBIV/wgOEf8BBgn/AwgN/wYMEf8LERb/DxUb/w8U + Gv8JEBT/AwgO/wABBv8AAAH/AAAE/wIIDf8eIyj/UFRa/42TmP/FzNH/6O/z//X6/v/3/P///P////z/ + ///8/////P////3////9/////f////3////9/////v////7///////////////////////////////// + /////////////////////////////////////////////////////////////////////v////3////+ + ///39/r/19bb/5OTl/87PUD/AQEE/wAAAP8CBAf/CQwQ/w8TFv8MEBP/BwsO/wYLDv8LEBT/ERYZ/xEX + HP8MEhf/BQsQ/wIIDf8FCxD/ChAV/wwRF/8LERb/CQ4U/wULEP8ABw3/AAEG/wAAAf8ICxH/Mjg9/3yB + hv/K0NT/+f7+//z////8/////P////z////9/////f////3////9/////f////7////+//////////// + //////////////////////////////////////////////n5+f/4+Pj///////z8/P/x8fH///////// + ///8/P//+/z////////29/j/pqit/zg7P/8LDhL/Cg4T/wEFCf8ECQ3/EBUZ/wYNEf8GDBD/ERcc/wkO + Ev8AAgX/BxAU/wwUGP8HDxT/CREW/wgQFf8HDxT/DRQZ/wwTGP8CCg//AQcM/wcQFP8JERb/ChIX/wQL + EP8ABgr/AAYL/wEBBv8OEBT/NT1C/4OKjv/v9vP/+/////b9/P/0/fr/+v/+//j9/f/4/fz//f////3/ + ///+////+v38//7//////////Pv7//r4+P/9/Pz//////////////////f39//39/f/+/v7//Pz8//z8 + /P/+/v7//Pz8//r6+v/7+/v//Pz8///////g4eP/eHp+/y0vNP8ZHCD/CgsQ/wAABf8OERb/BQoO/xAV + Gf8JDxP/AwoO/w0TGP8LExb/DBIV/xIZHf8EDBD/Bw8T/wwTGP8FDhL/AAUK/wYLEP8OFhv/Dhcc/wsU + Gf8LExf/AQcM/woSF/8KExj/Bw8U/w0UGf8NEhj/AgkN/wIKEP8XHyP/SFBP/6Cpp//3//7///////n+ + /v/3/vz/+//+//b5+f/s8PD/+/79//j6+v/9/v7////////////+/v7///7+//v8/P////////////v7 + +//8/Pz///////v7+//19fX///////7////t7e3/+/r6///////Y2t7/dnp//xkbIP8AAAL/CQ4T/w0R + Fv8ECA3/Cg8V/wUMEP8NExj/ChEW/wUNEv8HDxP/BQ4S/wwVGf8SGx//AAgM/wEIC/8PFRj/ERkd/wsR + Ff8ECg3/AAYJ/wECBf8ABAf/AAgL/wAFB/8IDxH/Bw4R/wEHC/8HDhL/DRUZ/wcPE/8ABQn/AAYI/wgS + Ef8kLy3/eoSC/9Ha2P/7////+/////r////6/f3/9fn5//3////8/f3//v////z8/P/8/Pz///////// + ///9/Pz////////////9/f3//Pz8//7+/v/8/Pz/+Pj4///////8/f3/7e3t///////n6Ov/cnV7/xcY + Gv8NDhP/ExUa/wACCP8GCg//Exge/wMIDf8JEBX/ChEW/wgPFP8MFBn/CBEW/wAHC/8ECxD/DRYb/wYP + FP8MFBb/Bg0Q/wMFCP8BBgn/DBMW/xccH/8SFhr/DxQX/xIaHP8MFBb/DBMV/wcOEf8DCQz/AAYJ/wAE + B/8BBAb/Bg0R/xQcHv8HEhD/AQwK/xEXFf9DTUv/sLm5//3////8////9Pn5//7////6/Pz///////// + ///5+vn/+fn4//37/P///v////////////////////////39/f/9/f3///////z8/P/6+vr//f39//r6 + +v/4+Pf/jZGW/x0hJ/8AAAD/EBMZ/xkdJP8AAgj/BQkO/xUcIf8CCA3/CRAV/wYNEv8HDxT/Dhcc/woU + Gf8CCxD/BAwR/wgTGP8HExf/CAwN/wUKDP8WGRr/Nzs9/2hvcP+Rl5n/mZ+h/5abnf+YnZ7/kZeY/4OJ + i/9sc3T/U1pb/zE4Of8SFhb/AAED/wAFCP8SFhf/CxgV/wYPDf8GDAr/AAMC/zY6Ov+cpKP/6e/u//v/ + ///3+/v/9vn5//z+/v/7/Pz/+/z7//z8+//9/P3//fv8//38/P/////////////////+/v7//f39//// + ///9/f3/9vb2////////////vL27/y0vNP8DCA7/CxAX/wcLEf8ECA7/AggO/wkPFf8KExf/BQ0T/wQM + Ev8FDhP/ChMY/wgSF/8FDhP/CBUa/wsWG/8DCxH/AAUK/wYHB/8/Q0P/h42N/7e7u//d4+P//f////// + ///////////////////9////5+3s/8zQ0P+nraz/eH59/0RLS/8RFRX/AAAA/wYSEP8ABgT/FiIg/wsY + Fv8AAAD/HCUk/4mSkf/i5+f//f////r9/f/7/v7/+vv6//v8/P////////////z6+v/79/f///////// + ///////////////////+/v7//v7+//v7+///////4+Pj/1tbWv8EBAj/BQkP/xEWHP8IDBL/AwYM/wcN + E/8KERf/Bg4T/wYNFP8DDBL/ChMY/wwXHf8DCg//AAYL/wkVG/8LFBn/AAEH/wcKD/9NU1L/r7Wz//v/ + ////////+v/+//r+/v/7////+v////X7+v/y9/j/9/z8//7///////////////P39//Eycn/c3h4/yQq + KP8ACAb/AAUC/w0YFf8IFhP/AwsJ/wAFBP8RGRj/eX9+/+bo6P/4/Pz///////7//v/4+Pj//fz8//// + ///8+vr//Pn5//////////////////7+/v/+/v7/////////////////+vr6/6Ojo/8ZGBj/AAUK/wMJ + Ef8FChD/DRUb/w4VG/8IDxX/Bw4V/wgQF/8DCxL/Bg8V/wkSGP8JFBr/BAsQ/wMMEf8GERf/AAUL/wMJ + D/9DUFb/xszK//f8+f/9////9/v5//D18v/2+Pf///////z//v/5/vv//f////z+/v/7//7/+f36//v9 + /f/+/////v////P29P+xt7T/MkE//wMMCf8ACQb/AQ8M/woXFf8HEhH/AAMC/xQaGf9sc3P/zNDQ//r8 + /P//////9vf3//z7+////////vz8//78/P/////////////////39/f/+Pj4/////////////////9/f + 3/9mZmb/BgYG/wQIDv8NEhr/CQ8V/wYMFP8FDBL/CA8V/woQF/8IEBb/Bw8V/wkSGP8CCxH/AQsR/wgS + GP8PGyH/DRUZ/wAAAv8dKjD/prK3//j9+///////+f37//r+/P/8//7//f////z//v/6/vz//P/+//f8 + +v/x9fP/+v38///////4/Pr/9vv4//v+/f/9/v7/9fv5/8HRz/9EU1H/CBYT/wALCP8HEQ//DBgW/wMJ + CP8FCAb/JSwr/2NmZv/Hy8v//v7+//39/f/9+/v///////79/f/+/Pz//////////////////f39//3+ + /v/9/////f////n+/v+2u73/ChMV/wkREv8NExn/CA0T/wgPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQR + E/8ACQ3/DRkc/wcQEf8ACAv/Exod/woNDv8LCwz/gIKD//n7/P///////f39//////////////////// + ///////////////////+/////v7+//////////////////7///////////////3+/v/z9PT/6erq/3B0 + dP8JCgn/AAQC/wwWFf8FDgz/Aw4M/wYQDv8IDAr/ZG9t//X8/P/0+/r/9vr6///////6+/v//Pr6//// + ///////////////////+////+/39//v+///t8/X/kpia/wAEBv8BCgv/CxIX/wkOFP8IDxX/Bw8V/wYP + Ff8FEBT/BRAU/wQRE/8EERP/Aw0P/wgUFv8DDQ//Bg4Q/w8WF/8EBwj/LTAx/7i5uv////////////7/ + //////////////////////////////////////////////////////////////////////////////// + //////////////f19f/l5+f/g4eG/xEXFf8AAAD/BQ0N/wALCP8BCQf/Aw8M/yYzMf+vt7f/8/n5//r+ + /v/y9fT/+Pn5//7+/v////////////////////////////n7/P/6/f//3ePl/2Rpav8BAwX/AAUH/wgP + FP8KDxX/CA8V/wcPFf8GDxX/BRAU/wUQFP8EERP/BBET/wgUFf8DDhD/AAoL/w4WGP8IDQ7/CwwN/21y + c//v8PL//v/////+/v////////////////////////////////////////////////////////////// + /////////////////////////f39//Pz8//7+vr//////+bq6f+Fi4r/HyQj/wEKCP8KFRP/BhAO/wYQ + D/8ECQf/UFdW/+rx8P//////7fHw//n6+v///////////////////v///v7+///////5+/z//P7//83T + 1f81Oj3/AgkL/wMKDf8IDhT/CQ8V/wgPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQRE/8MFxn/Aw0P/wAJ + Cv8QGBr/AQQF/xkaGv+ipqj///////v9/f/+/v7///////////////////////////////////////// + //////////////////////////////////////////////39/f/19fX////////////+////6ezs/46W + lf8gKSf/AAIC/wUNC/8OGhf/CxMR/xsjIv+9xcT/+/7+//n6+f/5+/v/+/v7/////////////fz9//79 + /f//////+vv8//7///+/xcb/DxYY/wcRE/8JExX/CA8U/wkPFf8IDxX/Bw8V/wYPFf8FEBT/BRAU/wQR + E/8EERP/CRUY/wYSFf8DCg3/CRQW/wABA/8rLS7/wsbH///////4+vz//v7+//////////////////// + /////////////////////////////////////////////////////////////////////////v7+//z8 + /P//////+vz8///////r7+//gYmI/x4iIf8ABQT/BQ8M/woTEv8DCgn/eoF//+3w8P//////8/X1//Py + 8v////////////37/P/+/f7///////v8/f/9////sba4/wACA/8LExX/CRMV/wcOE/8JDxb/CA8V/wcP + Ff8GDxX/BRAU/wUQFP8EERP/BBET/wQQE/8KFhn/Bg4Q/wMPD/8CBgj/REhK/9bb3P/9/f3/+/z9//7/ + //////////////////////////////////////////////////////////////////////////////// + //////////////z9/f/6+/v/+fv6//r7+//5/Pz//////+Xp6P+QmJf/NT08/wcMC/8AAgH/CQ8O/11j + Yv/e4eD///////Hz8v/08vL//////////////f7///7///7////9/v7//P///6arrf8AAAD/CxMV/wQO + Dv8GDRL/ChAW/wcPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQRE/8DDxH/CRQX/wcQEf8CCgv/CA8Q/2Jn + aP/m6uv/+vv7//////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v/4+fn/+fr6//P19f/8/f3/+fz8//f7+///////9Pr5/6+1 + tf9WXVz/MDc2/1VbWv+SmJf/4+fm///////5+/v/+/v7//////////////7////////+//////////v+ + /v+fpKb/AAAA/w0WF/8CDAz/BgwR/woQF/8HDxX/Bw8V/wYPFf8FEBT/BRAU/wQRE/8EERP/BhIU/wQP + Ef8HEBL/AQkK/wsREv90eHn/9fj5//z+/v/9/v7///////////////////////////////////////// + /////////////////////////////////////////////////////////v7+//L08//8/f3///////f6 + +f/5/Pz/9/r6//b6+v/8////19vb/7S4uP/Mz8//5urp//r9/P///////f7+//z+/v////////////// + /////v7//v7+///////6/f3/naOk/wAAAP8RGRv/BQ4P/wYMEf8KEBf/Bw8V/wcPFf8GDxX/BRAU/wUQ + FP8EERP/BBET/wsXGf8CCw3/Bw8Q/wMKC/8MERL/e4CB//z////8/f3/9/n6//7///////////////// + /////////////////////////////////////////////////////////////////////////v7+//r7 + +//9/v7/+fv7//3+/v/8//7/9Pj4//j7+//6/f3/9Pj2//v//v/5/f3//P////7////9/////v////// + ///9/v7//////////////////fz9//z8/f//////9vn5/5adn/8BBwn/Bg4Q/wUOEP8HDhP/ChAW/wgP + Ff8HDxX/Bg8V/wUQFP8FEBT/BBET/wQRE/8CDQ//CBMW/wwWGP8ABAX/Fxob/46Sk///////+/z8//7/ + ///////////////////////////////////////////////////+/v7//Pz8//7+/v////////////7+ + /v/7+/v//f39//7////5/Pz/+/79//3////9/////f7+//3+/v/+/v7///////////////////////7/ + ///+/////f////3////9/////P////////////////////38/P/5+vz//f7///j6+v+Zn6H/AAEC/wQN + D/8IDxL/CQ4T/wkPFv8IDxX/Bw8V/wYPFf8FEBT/BRAU/wQRE/8EERP/Aw4Q/wcTFf8KFBb/AAME/xcb + HP+QlJX///////v8/f/+//////////////////////////////////////////////////////////39 + /f/6+vr//Pz8//39/f/7+/v/+vr6//z8/P///////f////3////+/////f////7////+/////P39//v6 + +v/7+/v////////////+/////v////3////9/////f////z///////////////7+/f/9+/z/+fr8//v9 + /v/6/v7/oaao/wAAAP8FDhD/CxQV/wkPFP8JDxX/CA8V/wcPFf8GDxX/BRAU/wUQFP8EERP/BBET/wQP + EP8EEBL/BxAS/wACBP8XGxz/kJWW///////8/f3/+vz9//////////////////////////////////// + ///////////////////8/Pz/+Pj4//v7+//+/v7//v7+//7+/v/+/v7//v////r+/f/4/Pz/+fv7//r8 + /P/9/v7///////7//v/+/v7//v3+///////////////////////9/////f////3////8//////////// + ///+/f7//v3+//3+/v/6+/3//v///62ztf8AAAD/BQ0P/w4WGP8JEBX/CQ8V/wgPFf8HDxX/Bg8V/wUQ + FP8FEBT/BBET/wQRE/8GERP/Aw4Q/wUOEP8AAwX/Fxsc/4+Ulf///////Pz8//f5+v/+//////////// + ///////////////////////////////////+/v7//v7+//39/f/+/v7///////////////////////7/ + ///8////+/7+//z9/f/8/f3///////////////////7+///+/v///////////////////////f////3/ + ///9/////P///////////////v3+///+///+////+vv9//////+7wsP/CA0O/wIJC/8MFBb/CRAV/wkP + Ff8IDxX/Bw8V/wYPFf8FEBT/BRAU/wQRE/8EERP/CBMW/wMOEP8FDxD/AAUH/xQZGv+Lj5D///////z8 + /P/3+Pn//v///////////////////////////////////////////////v7+//////////////////// + ///9/f3//Pz8//38/P/7+/z/+Pr7//r9/P/9/v7//P7+//38/P/8+/v//fv8///8/P///f3///////// + //////////////3////9/////f////v///////////////79/f///v7//v////j6+///////y9HS/yQq + LP8ABAT/Bg4P/wkQFf8JDxX/CA8V/wcPFf8GDxX/BRAU/wUQFP8EERP/BBET/woVF/8DDhD/BxES/wEI + Cf8QFhf/gYWG//v9/f/8/v3/+fr7//////////////////////////////////////////////////39 + /f/////////////////9/f3/+/v7//v7+//8/Pz//Pz8//b5+f/4/Pz//P7+//z+/v/8/Pz/+/r6//36 + +v///P3///7////+/////v/////////////9/////f////z////6///////////////+/f7///7///3/ + ///3+fv//v///9vi5P9NUlP/AQEC/wIKC/8JEBX/CQ8V/wgPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQR + E/8KFRj/AQ4Q/wgSFP8ECgv/CxAR/3J2eP/x9fX//f7+//v9/v////////////////////////////// + ///////////////////7+/v//v7+//7+/v/+/v7//Pz8//7+/v////////////////////////////// + //////////////////////////3+///+/v///v////7//////////////f////3////8////+v////// + //////////3+///9///+/v//+vz+///////q8fP/dXp8/wEDBP8ECw3/ChEX/wkOFP8IDxX/Bw8V/wYP + Ff8FEBT/BRAU/wQRE/8EERP/CBQX/wAMDv8JExX/BgsM/wUICf9kaGr/5+rs//r9/v/8/v////////// + ////////////////////////////////////////+/v7//39/f/9/f3//f39//////////////////v5 + +v/u7u7/6/Hv/+ju7P/q7Oz/7/Hx//v7/P/////////////8/f//+vv///7////+/////v////7///7/ + ///+/////f////r///////////////////////////////3/////////8vf4/5OZm/8DCAn/Bw8Q/wwT + Gf8IDRX/CA8V/wcPFf8GDxX/BRAU/wUQFP8FERP/BBET/wcTFf8BCw3/CRMV/wcLDP8CBAX/Wl9f/97i + 4//5+/z//f////////////////////////////////////////////////////////////////////// + ////////+fr6/+Xl5v/MzMz/ra6u/3V7ev92e3v/hIaG/5yenv/Avr7/5ODh//n5+f/////////////+ + ///+/f7///7////+///+/////v////3////6///////////////+/v7///////39/f/9/Pz//v7+//j4 + +P/AwMH/ISEh/wkICP8KEhj/CBIa/wcPF/8HEBf/Bg4W/wAHDf8CCg//DhUZ/wkQFf8HDA//DBET/xIW + F/8OERL/AAID/0FEQ//Nz87///////j6+f/6/v7/+v////v////8/////f/+//7//v/+//7////9//7/ + /f/5+/r///////n8/f//////3eLm/4SMkf8xOT//CxQc/w4WHv8QGBz/AwYK/w0VF/8PGBv/BgYJ/ysw + Mv+boqT/8PT2//7////7/f3/7O/w//7+/v/6+/v//f39/////////////f39/////////////Pz8//7+ + /v/+/v7//f39///////+/v7/3Nzc/0pKSv8IBwf/AgkQ/wINFv8BChH/BA0U/wkRGf8HDhT/BAwR/wkQ + FP8JDxT/DxQX/w0RFP8MEBL/DxIT/wAAAP8xMzP/xMfG///////+/v7/+v////r////8/////P////3/ + /v/+//7//v/+/////f////3//v7+//v8+v/9////y87Q/15laP8QFxz/BAoR/wEMFP8ABQz/BhAT/wQM + Ef8BCw7/BxAT/woRE/8CBgn/HyMm/4CFh//i5eb///////n9/f///////f7+///////+/f3//v7+//7+ + /v////////////39/f/+/v7///////39/f/8/Pz///////b29v+Ghob/EA4P/wAFC/8DDRX/AQgP/wIL + Ev8LExn/DRQa/wYNE/8ECg7/ChEV/xQaHf8MEBP/BgsN/xAUFv8AAQH/ICEh/6uurf/9//7///////r/ + ///6/////P////z////9//7//v/+//7//v////3////9//////////7/7O/x/2twcv8LDA//AAAF/wAI + Dv8IERj/CRIY/wMMEP8SGx//AwoO/wIHCv8SGh3/CAsO/wAAAP8fIiT/iY6Q/+/y8v/+/////v7+//// + /////////fv7//38/P/////////////////+/v7//f39///////9/f3/+vr6////////////v8DA/y4u + Lf8ABwz/Aw0W/wgPF/8GDxb/CA8W/w0UGv8IDRP/AggN/w4VGv8SFhr/Cg8R/wYKDP8UFxr/CAkL/wwN + Df99gID/9/r5//z+/v/6/v7/+v////v////8/////f/+//7//v/+//7////9//7+/P/6+/r/+vv6/7K1 + tv8mKCr/AAAA/xIZHv8LERf/AggP/w0WHf8EDRD/CBEV/wIKDv8ABgn/CREU/w8VGP8OEhT/AAIE/y4x + Mv++wcL//v////z9/f/+/v7//f39//v6+v/+/f3///////////////////////39/f/+/v7//v7+//39 + /f/+/v7//////+zt7f9ra2r/CA0S/wEFDP8MFRz/ChIZ/wILEf8JEBX/CRAV/wIJDv8RFxz/Cw4S/wwR + E/8JDQ//ERQX/xIUFv8BAQH/SEtM/+3x8f/7/f7/+v7+//r////7/////P////3//v/+//7//v/+//// + /f////3/+/z7/+/w7/94fH3/EBIT/wADB/8NFRr/CxIY/wQLE/8JEhr/ChMW/wACB/8EDRD/EBkd/wYO + Ef8HDA//Exsd/wUICv8FBQf/d3t8//L19v/+/v7//v7+//r6+f/7+/v///////7+/v////////////// + ///8/Pz//Pz8/////////////v7+//z8/P//////tbS0/yImLP8AAAL/CBAV/wgRFv8BCA3/Bw0S/w0T + GP8ECg7/DhQY/wYKDv8PFBj/DBET/wgNDv8TGBr/AAEB/yMlJ//W2tv//P////r////6////+/////z/ + ///9//7//v/+//7//v////3////9///////z9PP/Y2do/wwQEv8CBwv/AgcM/wYOFP8IEhr/BQ4W/woT + F/8BBAf/CBAT/xYhI/8KEhX/AAQH/wYND/8LDxH/AgMF/zk9Pf/X2tv////////////7+vr//f39//// + ///9/f3/////////////////+/v7//z8/P////////////7+/v/6+vr//////+3s7P9iaW7/DBEY/wIH + Df8EDBH/AwoP/wkOEv8PFRr/BAoO/woQFP8GCw//EBUa/w4TFv8DCAn/DhMW/wMGCP8SEhT/oKSl//f7 + +//7////+f////z////8/////f/+//7//v/+//7////9//7+/P/4+vj//////2ZrbP8GCQv/CA0R/w4U + G/8HDRP/BAoS/wMMFP8DDRH/CBMW/wkSFv8HDhL/CRAT/wkQFP8GCw7/CxAS/wMHCf8XGRv/tri6//7+ + /v///////v7+///+/v///////v39//////////////////39/f/9/f3//////////////////f39//7+ + /v//////wsbI/0RLUP8ABQr/AwkO/wgOEv8KEBT/DxUZ/wEHC/8JDxP/BgwP/wwQFP8PFBf/BQoM/wgO + Ef8KDRD/BAYJ/1FWWf/j6Or/+/////n+/v/8/////P////3//v/+//7//v/9/////v/+/vz/7/Dv//v8 + /P9xdXb/CAkL/wsOE/8THCL/BQkO/wIDC/8CCxP/AgsP/xAZHf8IERX/AQQI/wcNEP8SGh3/DxQX/w0S + FP8CBwn/CgwN/5SXmP/4+fn///////7//////v7//v39///+/f////////////7+/v////////////39 + /f/9/f3///////7+/v/7+/v//Pz8//////+IjpH/DhQZ/wIIDP8JDxP/CxEV/wsRFf8ABwv/DBIV/wgO + Ef8FCg7/DhMW/woPEv8IDQ//ERYZ/wEGCf8VGh7/wMXI//r////7////+v7///z////9//7//v/+//7/ + /v////3//v78///////t7e3/j5KT/xseH/8ABQn/Bw8U/wEID/8LExz/DBYd/wcQE/8EDRH/Bg8S/woU + GP8KEhX/Bg4Q/wQJDP8LERP/BQoM/wgJC/95e3z/7O3t//v9/f/+/v7//fz8//n49//8+/r///////// + ///////////////////////////////////////////////////9////7PHy/291eP8DBQj/CQsN/xQZ + HP8AAwb/CA8S/xAWGf8RFxv/Bw4S/wADB/8GCg7/Ehke/wwRFf8AAgb/EBYb/1FXW//y9vb///////P2 + 9//3+/v//f/+/////////////f37//Lz8P///////////7zAwv8mJyj/AAAC/xYdJP8KERj/AAkR/wYO + Fv8ABQn/CBEV/wwVGf8KExb/DRUY/w4VGP8IDhD/BwwP/wQICf8EBQb/X2Jj//f5+f/29/f/+Pj4//// + ///8/Pv//fz7////////////////////////////////////////////////////////////8fX3//z/ + ///X293/UlZZ/wAAAP8OExf/HCAj/wAAA/8QFRj/AwkN/w0SFv8RFhr/BAoO/wMIDf8GDBH/CQ4S/wMJ + Df8TGR7/yM3O/+zw8v/2+Pn//P////f6+f/+/v7/+/v7//Hy7//+/v7////////////m6ur/YGVm/wYH + C/8HCg//CBAW/wIMFf8PGCD/DRYZ/wYPE/8CCg7/AQkM/wUOEP8LEhX/CxIU/xAXGP8JDQ//BQYH/3By + dP/6+vr//Pz9//r6+////////fz8//37+/////////////////////////////////////////////// + //////////////v8/f/t8PH/9fj5/83S0v9ISkv/AAAA/w0PEf8aHiH/BwwP/wMJDf8PFBf/DhQZ/wUM + Ef8HDhP/DxYc/w0UGv8CCg//AgkP/1FVWP/f5ef///////P19f/3+fn///////f5+P/x8u7/9/j2//n7 + +f/7/Pr/8/f4/6GmqP8hIib/AAAE/xAZH/8CCxL/BQ0U/xAaHf8EDRH/AQkM/wQMEP8FDRD/Bw8S/woQ + Ev8NFBb/AgUH/woICf+MjpD/+fr7///////9/f////////79/f/+/Pv///////////////////////// + ////////////////////////////////////////9fj5//n9/P//////tbm6/zg6O/8AAAH/Cw8S/wMH + Cv8LERX/CxAU/wMJDv8CCg7/ChEW/w0UG/8HDhT/AwsR/wUNE/8IDQ//mZ2g//X3+P/19/f/8/b1//// + ///9/fz/+vv4//z8+//7/fz//f39//v+/v/i5ef/Uldb/wAAAf8HCxH/AAgQ/wEJEf8HEBT/Aw0Q/wkS + Fv8NFhn/Bw8S/wUMD/8LEBP/DBIU/wAAAf8SFBX/qaut//f5+f///////fz9//7+/v///v7///39//// + ////////////////////////////////////////////////////////+vz7//3////+////+vz8/+/y + 8/+5vb7/TlJU/wAAAv8AAAD/CA4S/woQFf8IDxX/Bg4T/wYME/8HDhX/Bw8V/wYOFf8DCxL/BgsM/zQ4 + Ov+vs7T/+Pv6//v8+//5+/n/+/v6/////v/9/fv////////////09/j//f///5ifo/8aICX/AAMJ/wcQ + Gf8CDBT/AgsP/wcRFP8OFxv/CxMX/wMKDf8GDQ//DxYY/wwRE/8DBgj/Oj0+/8rNzv/4+fj///////r6 + +f/9/Pz///////////////////////////////////////////////////////////////////////r8 + +//5+vr/+/z8//b5+f/6/f3//////8LGyf9WW17/Fhkb/wIIDP8ECAz/CQ0T/woRF/8IDxb/Bw8W/woT + Gv8KExz/BQwV/w4TFf8CBgj/RkpL/7/Dwv///////v/+//n6+f//////9/j1////////////8PT1//3/ + ///b4OT/W2Jn/wkRF/8PFyD/AQcP/wQNEf8KFBj/CRIW/wIKD/8DCg3/CRAS/wwUFv8DBQb/DBIU/4GE + hf/q7e7/+/z8///////6+fr//Pz8//////////////////////////////////////////////////// + ///////////////////+/v7/+vv7//T29v/5+/v//v////X5+v/y9vj/3eHj/3l/gf8oLjT/BgkO/wAA + A/8EChD/DRQb/wcOFf8ECRD/Bw8Z/w0VHf8LERP/BQkM/wQICf9JTU3/t7m5//T09P/9/v3//Pz6//// + /v/5+vn/////////////////5Ort/211ev8NExn/ChEZ/wEFDf8EDRH/ChQY/wQNEP8BCQ3/CxIW/woR + FP8ECw3/BQYG/zU7Pf/Kzc7//P7///7//////////fz8//3+/f////////79//////////////////// + ////////////////////////////////////////+vv7//39/f/09fX/9Pb2//39/f/09/j/8fT0//v/ + ///n7O3/lZqe/0pQVf8UGiL/AgoQ/wEJEP8AAgn/AQIJ/wMLFf8HERn/DRMV/wcLDv8FCQr/AAAA/y4w + MP+UlJP/ycvJ/9XW0//y8vH/7e/u//Lz8//u7u7/0dXV/4uPlP8uNTv/AAQJ/wMJEf8GDxf/AQsP/wwV + Gf8EDRD/AwwP/w8XGv8DCw3/AQcJ/zU8Pf+ZnZ//9fj5//3////8/f7//v7+//7+/f/+//7///7+//79 + /P/////////////////////////////////////////////////////////////////y9PP/+Pr5//39 + /f/y9vb/+/7+//z+/v/r8PL//P/////////Kz9L/eH6E/zM7Qf8LDxT/AwQL/wkTG/8NFR7/AAML/wMI + Cv8LEBL/EhYX/xUYGv8FCAj/AAAA/zM1M/9zdHL/hISD/76/vv+UlZT/cnV2/zo/Qv8FBwv/AQQK/woS + Gf8FDhb/BxAW/wcPE/8OFhr/AgoN/wAHCv8JEBP/BQsO/x8kJ/+Umpz///////3//v/9////+Pn5//n6 + +v/+/v7///////7+/f/+/fz///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////v7+//Pz8//gYGB/zw8 + PP8SExP/AgID/wAAAP8GDQ//BQ4Q/wQND/8HEBL/CxMU/woTFP8FDQ7/AQUG/wECA/8CAwX/AQID/wEE + Bf8EDA7/DBYY/w8YGv8LExT/AgwN/wIKC/8REBD/Dg0N/wICAv8AAAD/FRUV/1tbW/+1tbX/8fHx//// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9fX1//z8 + /P///////v79//Lx8f/T09P/oKCg/2ZmZf83Nzf/Bg0P/wADBf8AAAD/AAAA/wAAAP8AAwX/AAkL/wEK + DP8EDA7/DRUX/wgREv8DDA7/AgoM/wIKDP8BBwj/AAQF/wAICv8BCAr/AAAA/wYGBv8hISH/T09P/5GR + kf/Y2Nj/+/v7//r6+v/09PT///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////39/f/+/v7///////////////////////T09P/b29v/ubm6/4qRk/9yeXv/WF1e/zg8 + Pv8dISP/CQ4Q/wAEBf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wULDf8WHR//Ki8x/1JS + Uv96enr/rq6u/9ra2v/y8vL////////////+/v7//Pz8//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////9/f3////////////7+/v/+Pj4//v7+/////////////v7 + /P/r8fH/4ujp/8zT1P+xuLn/m6Kk/4yTlf+CiIr/fYOF/3l+f/9obG7/a29x/3F1d/93e37/eoCC/4CH + if+PlZf/oqmq/7W7vf/T0tL/5ubm//r6+v////////////39/f/5+fn//f39//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////Pz8//7+/v///////f39//r6 + +v/7+/v////////////7+/v////////////+////+Pv8//T3+P/x9PX/7/Lz/+7y8//r7/H/4OXn/+Lm + 6P/o7O3/7O/w/+3w8f/v8vP/8vb3//r9/v/////////////////6+vr//Pz8///////9/f3/+/v7//r6 + +v/7+/v///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7+ + /v///////v7+//39/f/9/f3////////////+/v7/+Pj4//z9/v/9/v////////////////////////// + ///////////////////////////////////////////////////////////////////7+/v/9/f3//z8 + /P///////v7+//z8/P/7+/v/+vr6//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////9/f3//f39//39/f/7+/v/+vr6//z8/P/+/v7////////////7/f7//P7///7/ + ///+/////v7///7+/v/+/v7//v7+//7+/v/9/v//+fv8//j6+//7/f3//v////7+///9/f7//f7+//7/ + ///+/v7///////7+/v/7+/v/+/v7//r6+v/5+fn//v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////+fn5//r6+v/+/v7///////7+/v/7+/v/+/v7//// + ///+/v7///7+///+///////////////9/v/++/z//fv8//37/P/9/P3///7+//////////////////// + /////v///vz9//79/f///////v7+//7+/v/5+fn/9PT0//X19f/7+/v////////////+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////f39//7+ + /v/////////////////+/v7//Pz8//z7/P/+/P3///7////+/////v////7////+//////////////37 + /P/9/P3///////////////////7///78/v///f///v/+//v7+/////////////////////////////// + ///9/f3/+/v7//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7////+/////v////7////+//// + /v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.sln b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.sln index ffdda09d..30fb2b02 100644 --- a/src/Case.ExportSharedParameters/Case.ExportSharedParameters.sln +++ b/src/Case.ExportSharedParameters/Case.ExportSharedParameters.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.4.33403.182 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.ExportSharedParameters.2023", "Case.ExportSharedParameters.2023\Case.ExportSharedParameters.2023.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}) = "Case.ExportSharedParameters.2026", "Case.ExportSharedParameters.2026\Case.ExportSharedParameters.2026.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" +EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.ExportSharedParameters.SharedProject", "Case.ExportSharedParameters.SharedProject\Case.ExportSharedParameters.SharedProject.shproj", "{695A2D82-DD93-4712-99CA-95978AAD6D94}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.ExportSharedParameters.2022", "Case.ExportSharedParameters.2022\Case.ExportSharedParameters.2022.csproj", "{B5ED3506-2771-440B-965A-FCF0E4C8AD93}" diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/Case.ExtrudeRoomsToMass.2026.vbproj b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/Case.ExtrudeRoomsToMass.2026.vbproj new file mode 100644 index 00000000..033ab3fa --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/Case.ExtrudeRoomsToMass.2026.vbproj @@ -0,0 +1,129 @@ + + + + + Debug + AnyCPU + {14A49B26-7F7E-4D40-BA58-200706983B5E} + Library + Case.ExtrudeRoomsToMass + Case.ExtrudeRoomsToMass + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.ExtrudeRoomsToMass.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.ExtrudeRoomsToMass.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + form_RoomMasses.vb + + + Form + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + form_RoomMasses.vb + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + SettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + \ No newline at end of file diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Application.Designer.vb b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Application.myapp b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/AssemblyInfo.vb b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..6804191a --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/DataSources/System.Data.DataTable.datasource b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/DataSources/System.Data.DataTable.datasource new file mode 100644 index 00000000..a23fb0d1 --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/DataSources/System.Data.DataTable.datasource @@ -0,0 +1,10 @@ + + + + System.Data.DataTable, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + \ No newline at end of file diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Resources.Designer.vb b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..e84ba1ef --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Resources.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + +Imports System + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.ExtrudeRoomsToMass.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set + resourceCulture = value + End Set + End Property + + ''' + ''' Looks up a localized resource of type System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Case_Clearly() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Case_Clearly", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + End Module +End Namespace diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Resources.resx b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Resources.resx new file mode 100644 index 00000000..9eb33c83 --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + ..\Resources\Case_Clearly.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Settings.Designer.vb b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..c33e953f --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Settings.Designer.vb @@ -0,0 +1,84 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Friend NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + + _ + Public ReadOnly Property fmsandboxConnectionString() As String + Get + Return CType(Me("fmsandboxConnectionString"),String) + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].ExtrudeRoomsToMass.My.MySettings + Get + Return Global.[Case].ExtrudeRoomsToMass.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Settings.settings b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Settings.settings new file mode 100644 index 00000000..ea18b1a6 --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/My Project/Settings.settings @@ -0,0 +1,14 @@ + + + + + + <?xml version="1.0" encoding="utf-16"?> +<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <ConnectionString>Data Source=fmsandbox.db.8301136.hostedresource.com;Initial Catalog=fmsandbox;Persist Security Info=True;User ID=fmsandbox;Password=j%Beer4Us</ConnectionString> + <ProviderName>System.Data.SqlClient</ProviderName> +</SerializableConnectionString> + Data Source=fmsandbox.db.8301136.hostedresource.com;Initial Catalog=fmsandbox;Persist Security Info=True;User ID=fmsandbox;Password=j%Beer4Us + + + \ No newline at end of file diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/Resources/Case_Clearly.png b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.designer.vb b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.designer.vb new file mode 100644 index 00000000..2374bd4f --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.designer.vb @@ -0,0 +1,216 @@ + _ +Partial Class form_RoomMasses + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim DataGridViewCellStyle1 As System.Windows.Forms.DataGridViewCellStyle = New System.Windows.Forms.DataGridViewCellStyle() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_RoomMasses)) + Me.GroupBox2 = New System.Windows.Forms.GroupBox() + Me.DataGridViewRooms = New System.Windows.Forms.DataGridView() + Me.colRevElementID = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.colNumber = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.colName = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.colDept = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.colLevel = New System.Windows.Forms.DataGridViewTextBoxColumn() + Me.ButtonGenerateMasses = New System.Windows.Forms.Button() + Me.ProgressBar1 = New System.Windows.Forms.ProgressBar() + Me.ButtonCancel = New System.Windows.Forms.Button() + Me.FolderBrowserDialog = New System.Windows.Forms.FolderBrowserDialog() + Me.FolderBrowserDialog1 = New System.Windows.Forms.FolderBrowserDialog() + Me.PictureBox1 = New System.Windows.Forms.PictureBox() + Me.ButtonHelp = New System.Windows.Forms.Button() + Me.GroupBox2.SuspendLayout() + CType(Me.DataGridViewRooms, System.ComponentModel.ISupportInitialize).BeginInit() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.SuspendLayout() + ' + 'GroupBox2 + ' + Me.GroupBox2.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox2.Controls.Add(Me.DataGridViewRooms) + Me.GroupBox2.Location = New System.Drawing.Point(12, 12) + Me.GroupBox2.Name = "GroupBox2" + Me.GroupBox2.Size = New System.Drawing.Size(487, 316) + Me.GroupBox2.TabIndex = 25 + Me.GroupBox2.TabStop = False + Me.GroupBox2.Text = "Rooms to Generate Masses From" + ' + 'DataGridViewRooms + ' + Me.DataGridViewRooms.AllowUserToAddRows = False + Me.DataGridViewRooms.AllowUserToDeleteRows = False + Me.DataGridViewRooms.AllowUserToResizeRows = False + Me.DataGridViewRooms.BackgroundColor = System.Drawing.SystemColors.ControlLightLight + Me.DataGridViewRooms.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D + Me.DataGridViewRooms.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize + Me.DataGridViewRooms.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.colRevElementID, Me.colNumber, Me.colName, Me.colDept, Me.colLevel}) + DataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft + DataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Window + DataGridViewCellStyle1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + DataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.ControlText + DataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.ControlLight + DataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.ControlText + DataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.[False] + Me.DataGridViewRooms.DefaultCellStyle = DataGridViewCellStyle1 + Me.DataGridViewRooms.Dock = System.Windows.Forms.DockStyle.Fill + Me.DataGridViewRooms.GridColor = System.Drawing.Color.LightGray + Me.DataGridViewRooms.Location = New System.Drawing.Point(3, 16) + Me.DataGridViewRooms.Name = "DataGridViewRooms" + Me.DataGridViewRooms.ReadOnly = True + Me.DataGridViewRooms.RowHeadersVisible = False + Me.DataGridViewRooms.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect + Me.DataGridViewRooms.Size = New System.Drawing.Size(481, 297) + Me.DataGridViewRooms.TabIndex = 2 + ' + 'colRevElementID + ' + Me.colRevElementID.HeaderText = "UniqueID" + Me.colRevElementID.Name = "colRevElementID" + Me.colRevElementID.ReadOnly = True + Me.colRevElementID.Visible = False + ' + 'colNumber + ' + Me.colNumber.HeaderText = "Number" + Me.colNumber.Name = "colNumber" + Me.colNumber.ReadOnly = True + Me.colNumber.Width = 75 + ' + 'colName + ' + Me.colName.HeaderText = "Name" + Me.colName.Name = "colName" + Me.colName.ReadOnly = True + Me.colName.Width = 150 + ' + 'colDept + ' + Me.colDept.HeaderText = "Department" + Me.colDept.Name = "colDept" + Me.colDept.ReadOnly = True + Me.colDept.Width = 150 + ' + 'colLevel + ' + Me.colLevel.HeaderText = "Level" + Me.colLevel.Name = "colLevel" + Me.colLevel.ReadOnly = True + ' + 'ButtonGenerateMasses + ' + Me.ButtonGenerateMasses.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonGenerateMasses.Location = New System.Drawing.Point(266, 334) + Me.ButtonGenerateMasses.Name = "ButtonGenerateMasses" + Me.ButtonGenerateMasses.Size = New System.Drawing.Size(132, 40) + Me.ButtonGenerateMasses.TabIndex = 18 + Me.ButtonGenerateMasses.Text = "Generate Masses" + Me.ButtonGenerateMasses.UseVisualStyleBackColor = True + ' + 'ProgressBar1 + ' + Me.ProgressBar1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ProgressBar1.Location = New System.Drawing.Point(184, 334) + Me.ProgressBar1.Name = "ProgressBar1" + Me.ProgressBar1.Size = New System.Drawing.Size(315, 40) + Me.ProgressBar1.TabIndex = 23 + ' + 'ButtonCancel + ' + Me.ButtonCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonCancel.Location = New System.Drawing.Point(404, 334) + Me.ButtonCancel.Name = "ButtonCancel" + Me.ButtonCancel.Size = New System.Drawing.Size(95, 40) + Me.ButtonCancel.TabIndex = 19 + Me.ButtonCancel.Text = "Cancel" + Me.ButtonCancel.UseVisualStyleBackColor = True + ' + 'FolderBrowserDialog + ' + Me.FolderBrowserDialog.Description = "Location to Save Mass Families" + Me.FolderBrowserDialog.RootFolder = System.Environment.SpecialFolder.MyComputer + ' + 'FolderBrowserDialog1 + ' + Me.FolderBrowserDialog1.Description = "Mass Family Save Location" + ' + 'PictureBox1 + ' + Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles) + Me.PictureBox1.Image = Global.[Case].ExtrudeRoomsToMass.My.Resources.Resources.Case_Clearly + Me.PictureBox1.Location = New System.Drawing.Point(12, 334) + Me.PictureBox1.Name = "PictureBox1" + Me.PictureBox1.Size = New System.Drawing.Size(166, 40) + Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom + Me.PictureBox1.TabIndex = 3 + Me.PictureBox1.TabStop = False + ' + 'ButtonHelp + ' + Me.ButtonHelp.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.ButtonHelp.Location = New System.Drawing.Point(210, 334) + Me.ButtonHelp.Name = "ButtonHelp" + Me.ButtonHelp.Size = New System.Drawing.Size(50, 40) + Me.ButtonHelp.TabIndex = 27 + Me.ButtonHelp.Text = "?" + Me.ButtonHelp.UseVisualStyleBackColor = True + ' + 'form_RoomMasses + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(514, 382) + Me.Controls.Add(Me.ButtonHelp) + Me.Controls.Add(Me.PictureBox1) + Me.Controls.Add(Me.GroupBox2) + Me.Controls.Add(Me.ButtonGenerateMasses) + Me.Controls.Add(Me.ButtonCancel) + Me.Controls.Add(Me.ProgressBar1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.MinimumSize = New System.Drawing.Size(530, 420) + Me.Name = "form_RoomMasses" + Me.Text = "Extrude Rooms as Masses" + Me.GroupBox2.ResumeLayout(False) + CType(Me.DataGridViewRooms, System.ComponentModel.ISupportInitialize).EndInit() + CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit() + Me.ResumeLayout(False) + + End Sub + Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox + Friend WithEvents DataGridViewRooms As System.Windows.Forms.DataGridView + Friend WithEvents ButtonGenerateMasses As System.Windows.Forms.Button + Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar + Friend WithEvents ButtonCancel As System.Windows.Forms.Button + Friend WithEvents FolderBrowserDialog As System.Windows.Forms.FolderBrowserDialog + Friend WithEvents colRevElementID As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents colNumber As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents colName As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents colDept As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents colLevel As System.Windows.Forms.DataGridViewTextBoxColumn + Friend WithEvents FolderBrowserDialog1 As System.Windows.Forms.FolderBrowserDialog + Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox + Friend WithEvents ButtonHelp As System.Windows.Forms.Button +End Class diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.resx b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.resx new file mode 100644 index 00000000..aca0861c --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.resx @@ -0,0 +1,592 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + + True + + + True + + + 17, 17 + + + 182, 17 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.vb b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.vb new file mode 100644 index 00000000..250e1015 --- /dev/null +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.2026/UI/form_RoomMasses.vb @@ -0,0 +1,560 @@ +Imports System.Collections.Generic +Imports Autodesk.Revit.DB +Imports Autodesk.Revit.UI +Imports Autodesk.Revit +Imports System.Diagnostics +Imports System.Windows.Forms +Imports System +Imports System.Linq +Imports System.Reflection +Imports [Case].ExtrudeRoomsToMass.API + +Public Class form_RoomMasses + + Private _cmd As ExternalCommandData + + Private _doc As Document + Private _famDoc As Document + Private _app As ApplicationServices.Application + Private _appCreate As Creation.Application + Private _sw As New List(Of Stopwatch) + Private _SECategory As Category + Private _famFactory As Creation.FamilyItemFactory + Private _rooms As New List(Of Architecture.Room) + Private _uiApp As UIApplication + Private _path As String = "" + Private _genericModelPath As String = "" + + ''' + ''' General Constructor + ''' + ''' + ''' + Public Sub New(c As ExternalCommandData) + InitializeComponent() + + ' Widen Scope + _cmd = c + + End Sub + +#Region "Private Members" + + ''' + ''' Load Matching Room Data into Data View + ''' + ''' + Private Sub UpdateRoomsList() + + ' Clean Grid + DataGridViewRooms.Rows.Clear() + + ' Fresh List + _rooms = New List(Of Architecture.Room) + + Try + + ' Query + Dim m_rooms As IEnumerable(Of Architecture.Room) = From e In New FilteredElementCollector(_doc) _ + .OfCategory(BuiltInCategory.OST_Rooms) + Let r = TryCast(e, Architecture.Room) + Where r.Area > 1 + Select r + + ' Process Results + If Not m_rooms Is Nothing Then + For Each x As Architecture.Room In m_rooms + + ' Add to the List + _rooms.Add(x) + + ' Build and Add the Row + Dim m_row As New DataGridViewRow + Dim m_cell As New DataGridViewTextBoxCell + + ' UniqueID + m_cell.Value = x.UniqueId.ToString + m_row.Cells.Add(m_cell) + + ' Number + m_cell = New DataGridViewTextBoxCell + m_cell.Value = x.Parameter(BuiltInParameter.ROOM_NUMBER).AsString + m_row.Cells.Add(m_cell) + + ' Name + m_cell = New DataGridViewTextBoxCell + m_cell.Value = x.Parameter(BuiltInParameter.ROOM_NAME).AsString + m_row.Cells.Add(m_cell) + + ' Department + m_cell = New DataGridViewTextBoxCell + m_cell.Value = x.Parameter(BuiltInParameter.ROOM_DEPARTMENT).AsString + m_row.Cells.Add(m_cell) + + ' Level + m_cell = New DataGridViewTextBoxCell + m_cell.Value = x.Document.GetElement(x.LevelId).Name + m_row.Cells.Add(m_cell) + + ' Add the row + DataGridViewRooms.Rows.Add(m_row) + + Next + End If + + Catch + End Try + + End Sub + + ''' + ''' Create line element + ''' + ''' revit application + ''' + Private Function MakeLine(app As UIApplication, pLine As Line) As ModelCurve + + Try + + ' End Points + Dim ptA As XYZ = pLine.GetEndPoint(0) + Dim ptB As XYZ = pLine.GetEndPoint(1) + + ' Boundaries + Dim m_line As Line = Line.CreateBound(ptA, ptB) + Dim m_norm As XYZ = ptA.CrossProduct(ptB) + If m_norm.GetLength() = 0 Then + m_norm = XYZ.BasisZ + End If + + ' Plane & Sketch Plane + Dim m_plane As Plane = Plane.CreateByNormalAndOrigin(m_norm, ptB) + + Dim m_skplane As SketchPlane = SketchPlane.Create(_doc, m_plane) + + ' Create line here + Dim m_modelcurve As ModelCurve = _doc.FamilyCreate.NewModelCurve(m_line, m_skplane) + + ' Result + Return m_modelcurve + + Catch + End Try + + ' Failure + Return Nothing + + End Function + + ''' + ''' Create arc element by three points + ''' + ''' revit application + ''' + Private Function MakeArc(app As UIApplication, pArc As Arc) As ModelCurve + + Try + + ' Points + Dim ptA As XYZ = pArc.GetEndPoint(0) + Dim ptB As XYZ = pArc.GetEndPoint(1) + Dim ptC As XYZ = pArc.Center + + ' Create three lines and a plane by the points + Dim line1 As Line = Line.CreateBound(ptA, ptB) + Dim line2 As Line = Line.CreateBound(ptB, ptC) + Dim line3 As Line = Line.CreateBound(ptC, ptA) + Dim ca As New CurveArray() + ca.Append(line1) + ca.Append(line2) + ca.Append(line3) + + ' Plane and Sketch Plane + Dim m_plane As Plane = Plane.CreateByThreePoints(ptA, ptB, ptC) + Dim m_skplane As SketchPlane = SketchPlane.Create(_doc, m_plane) + + ' Create arc here + Dim m_mc As ModelCurve = _doc.FamilyCreate.NewModelCurve(pArc, m_skplane) + + ' Result + Return m_mc + + Catch + End Try + + ' Failure + Return Nothing + + End Function + + ''' + ''' Generate masses for rooms + ''' + ''' + Private Sub GenerateMasses() + + Dim iCnt As Integer = 0 + Dim iCntFail As Integer = 0 + + ' Prime the Progressbar + With ProgressBar1 + .Minimum = 0 + .Maximum = _rooms.Count + .Value = 0 + .Show() + End With + + ' Random Object + Dim m_r As New Random + + ' Iterate the Rooms + For Each x As Architecture.Room In _rooms + + Try + ProgressBar1.Increment(1) + Catch + End Try + + Try + + ' Create a new Family + _famDoc = _app.NewFamilyDocument(_genericModelPath) + + ' Start a new Family Transaction + Using t As New Transaction(_famDoc, "Transaction in Family Document") + If t.Start() = TransactionStatus.Started Then + + Try + + ' Get the department name + Dim m_SubCatName As String = "Mass_Rooms" + If Not String.IsNullOrEmpty(x.Parameter(BuiltInParameter.ROOM_DEPARTMENT).AsString) Then + m_SubCatName = "Mass_Rooms_" & x.Parameter(BuiltInParameter.ROOM_DEPARTMENT).AsString + End If + + ' Subcategory named by Department + Dim m_Subcategory As Category = Nothing + + Try + + ' Create the subcategory if it does not exist + m_Subcategory = _famDoc.Settings.Categories.NewSubcategory(_SECategory, m_SubCatName) + + Catch + + ' Get the subcategory object since it exists already + Dim m_NameMap As CategoryNameMap = _SECategory.SubCategories + For Each x1 As Category In m_NameMap + If x1.Name = m_SubCatName Then + m_Subcategory = x1 + Exit For + End If + Next + + End Try + + ' Material named by Department + Dim m_Material As Material = Nothing + Dim m_colMat As New FilteredElementCollector(_famDoc) + m_colMat.OfCategory(BuiltInCategory.OST_Materials) + + ' Find the Material by Name + For Each m As Material In m_colMat.ToElements + If m.Name = m_SubCatName Then + m_Material = m + Exit For + End If + Next + + ' Create the Material if Not Found + If m_Material Is Nothing Then + + Try + + ' Name as Subcategory + Dim m_matid As ElementId = Material.Create(_famDoc, m_SubCatName) + m_Material = TryCast(_famDoc.GetElement(m_matid), Material) + + ' Random Color + Dim m_color As New Color(m_r.Next(1, 255), m_r.Next(1, 255), m_r.Next(1, 255)) + + ' Apply the Color to the Material + m_Material.Color = m_color + + ' Set 50% Transparency + m_Material.Transparency = 50 + + ' Assign the Material to the Subcategory + m_Subcategory.Material = m_Material + + Catch + + End Try + + End If + + ' Apply the material to the subcategory + m_Subcategory.Material = m_Material + + ' What are the upp bounds or height of the room? + Dim m_RmHeight As Double = x.UnboundedHeight + Dim m_RmElev As Double = x.Level.Elevation + 'Dim m_ent_i As Integer = m_RmElev + If m_RmHeight < 1 Then m_RmHeight = 8 + Dim m_RmUpLevel As Level = x.UpperLimit + + ' Get the room boundary data + Dim m_Boundary As IList(Of IList(Of BoundarySegment)) = x.GetBoundarySegments(New SpatialElementBoundaryOptions) + + ' Make Sure we Have Something + If m_Boundary Is Nothing Then Continue For + + ' Flat Sketchplane + Dim m_plane As Plane = Plane.CreateByNormalAndOrigin(New XYZ(0, 0, 1), New XYZ(0, 0, m_RmElev)) + Dim m_skplane As SketchPlane = SketchPlane.Create(_famDoc, m_plane) + + ' The Reference Array + Dim m_refArray As New ReferenceArray + + ' Iterate to gather the reference array objects + For i = 0 To m_Boundary.Count - 1 + Dim il As IList(Of BoundarySegment) = m_Boundary(i) + ' Segments Array + For ii = 0 To il.Count - 1 + + Dim m_Seg As BoundarySegment = il.Item(ii) + + Dim m_mc As ModelCurve = Nothing + + ' Curve is Line + If TypeOf m_Seg.GetCurve() Is Line Then + Dim m_cLine As Line = TryCast(m_Seg.GetCurve(), Line) + m_mc = _famDoc.FamilyCreate.NewModelCurve(m_cLine, m_skplane) + End If + + ' Curve is Arc + If TypeOf m_Seg.GetCurve() Is Arc Then + Dim m_cLine As Arc = TryCast(m_Seg.GetCurve(), Arc) + m_mc = _famDoc.FamilyCreate.NewModelCurve(m_cLine, m_skplane) + End If + + ' Curve is NurbSpline + If TypeOf m_Seg.GetCurve() Is NurbSpline Then + Dim m_cLine As NurbSpline = TryCast(m_Seg.GetCurve(), NurbSpline) + m_mc = _famDoc.FamilyCreate.NewModelCurve(m_cLine, m_skplane) + End If + + Try + + m_refArray.Append(m_mc.GeometryCurve.Reference) + Catch + End Try + + Next + Next + + ' The extrusion form direction + Dim m_dir As New XYZ(0, 0, m_RmHeight) + ' Extrude the form + Dim m_form As Autodesk.Revit.DB.Form = _famDoc.FamilyCreate.NewExtrusionForm(True, m_refArray, m_dir) + Try + m_form.Subcategory = m_Subcategory + Catch + End Try + + ' Commit the Family Transaction + t.Commit() + + Catch + + ' Cannot Continue to Place Mass Family + Continue For + + End Try + + End If + End Using + + ' Save the Family + Dim m_opt As New SaveAsOptions + m_opt.OverwriteExistingFile = True + _famDoc.SaveAs(_path & x.UniqueId.ToString & ".rfa", m_opt) + _famDoc.Close() + + ' Has it Been Loaded? + Dim m_family As Family = Nothing + Dim m_famCol As New FilteredElementCollector(_doc) + + ' Start a new Model Transaction + Using t As New Transaction(_doc, "Extrude Rooms to Masses") + If t.Start() = TransactionStatus.Started Then + + Try + + ' Load the Family + _doc.LoadFamily(_path & x.UniqueId.ToString & ".rfa", m_family) + + ' Get the Default Symbol from the Family + For Each fs As ElementId In m_family.GetFamilySymbolIds() + + ' The Symbol + Dim m_famSymbol As FamilySymbol = TryCast(_doc.GetElement(fs), FamilySymbol) + + ' Place the Family at 0,0,0 + _doc.Create.NewFamilyInstance(New XYZ(0, 0, 0), m_famSymbol, [Structure].StructuralType.NonStructural) + + Next + + ' Commit the Model Transaction + iCnt += 1 + t.Commit() + + Catch + End Try + + End If + End Using + + Catch + End Try + + Next + + ' Results + Using td As New TaskDialog("Here's What Happened") + With td + .TitleAutoPrefix = False + .MainInstruction = "Masses from Rooms" + .MainContent = "Make sure that the 3D view that you are trying to view the results in has the mass category enabled in the view settings." & vbCr & vbCr + .MainContent += "Create " & iCnt.ToString & " Masses from " & _rooms.Count.ToString & " Rooms" + .Show() + End With + End Using + + + End Sub + +#End Region + +#Region "Form Controls & Events" + + ''' + ''' Form Setup + ''' + ''' + ''' + ''' + Private Sub form_RoomMasses_Shown(sender As Object, e As EventArgs) Handles Me.Shown + + Try + + ' Title + Text = "Extrude Rooms as Masses v" & Assembly.GetExecutingAssembly.GetName.Version.ToString + + ' Hide the progressbar + ProgressBar1.Hide() + + ' Find the Generic Model + _genericModelPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly.Location) & "\Mass.rft" + If Not System.IO.File.Exists(_genericModelPath) Then + + ' Failure Message + MsgBox("Mass.rft was not Found!", MsgBoxStyle.Critical, "Cannot Continue") + + Else + + ' Application and Document References + _uiApp = _cmd.Application + _app = _uiApp.Application + _doc = _uiApp.ActiveUIDocument.Document + + ' Model Category + _SECategory = _doc.Settings.Categories.Item(BuiltInCategory.OST_Mass) + + ' App creator + _appCreate = _app.Create + + ' Rooms + UpdateRoomsList() + + End If + + Catch + End Try + + End Sub + + ''' + ''' Help Documentation + ''' + ''' + ''' + ''' + Private Sub ButtonHelp_Click(sender As System.Object, e As System.EventArgs) Handles ButtonHelp.Click + Try + Process.Start("http://apps.case-inc.com/content/free-extrude-rooms-3d-mass") + Catch + End Try + End Sub + + ''' + ''' Start building the mass families + ''' + ''' + ''' + ''' + Private Sub ButtonGenerateMasses_Click(ByVal sender As System.Object, + ByVal e As EventArgs) Handles ButtonGenerateMasses.Click + + ' Hide Buttons + ButtonCancel.Hide() + ButtonGenerateMasses.Hide() + ButtonHelp.Hide() + + ' Save Location + If FolderBrowserDialog1.ShowDialog = System.Windows.Forms.DialogResult.OK Then + + ' Was a Path Returned + If Not String.IsNullOrEmpty(FolderBrowserDialog1.SelectedPath) Then + + ' Save the Path + _path = FolderBrowserDialog1.SelectedPath & "\" + + ' Generate the Extrusions + GenerateMasses() + + End If + End If + + ' Close the Form when Done + Close() + + End Sub + + ''' + ''' Close and Cancel + ''' + ''' + ''' + ''' + Private Sub ButtonCancel_Click(ByVal sender As System.Object, + ByVal e As System.EventArgs) Handles ButtonCancel.Click + Close() + End Sub + + ''' + ''' Logo + ''' + ''' + ''' + ''' + Private Sub PictureBox1_Click(sender As System.Object, e As System.EventArgs) Handles PictureBox1.Click + Try + Process.Start("http://apps.case-inc.com/content/free-extrude-rooms-3d-mass") + Catch + End Try + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.sln b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.sln index a4ffee52..4fe5b687 100644 --- a/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.sln +++ b/src/Case.ExtrudeRoomsToMass/Case.ExtrudeRoomsToMass.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.ExtrudeRoomsToMass.Sha EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.ExtrudeRoomsToMass.2023", "Case.ExtrudeRoomsToMass.2023\Case.ExtrudeRoomsToMass.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.ExtrudeRoomsToMass.2026", "Case.ExtrudeRoomsToMass.2026\Case.ExtrudeRoomsToMass.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.ExtrudeRoomsToMass.2021", "Case.ExtrudeRoomsToMass.2021\Case.ExtrudeRoomsToMass.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.ExtrudeRoomsToMass.2022", "Case.ExtrudeRoomsToMass.2022\Case.ExtrudeRoomsToMass.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Case.FamilySubcategories.2026.csproj b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Case.FamilySubcategories.2026.csproj new file mode 100644 index 00000000..82ecbc75 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Case.FamilySubcategories.2026.csproj @@ -0,0 +1,82 @@ + + + + + Debug + AnyCPU + {02860A34-6581-44F9-A5BB-62AD1BF819C7} + Library + Properties + Case.FamilySubcategories + Case.FamilySubcategories + v4.8 + 512 + true + + + true + full + false + bin\Debug\ + TRACE;DEBUG;Revit2026 + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE;Revit2026 + prompt + 4 + + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + Form + + + form_Main.cs + + + Form + + + ProgressBarForm.cs + + + + + + + + form_Main.cs + + + ProgressBarForm.cs + + + + + \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Properties/AssemblyInfo.cs b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Properties/AssemblyInfo.cs new file mode 100644 index 00000000..d41ef562 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Case.AppName.2026")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("Case.AppName.2026")] +[assembly: AssemblyCopyright("Copyright © 2026")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("0acbcdf9-d03f-47c8-a50b-f2a66581d32b")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Properties/Resources.resx b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Properties/Resources.resx new file mode 100644 index 00000000..4fdb1b6a --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Properties/Resources.resx @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 1.3 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.3500.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Resources/Case_Clearly.png b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Resources/Case_Clearly.png new file mode 100644 index 00000000..5148f13d Binary files /dev/null and b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/Resources/Case_Clearly.png differ diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.cs b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.cs new file mode 100644 index 00000000..35692428 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.cs @@ -0,0 +1,44 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Text; +//using System.Windows.Forms; + +//using Autodesk.Revit.UI; +//using Autodesk.Revit.DB; +//using Autodesk.Revit.DB.Architecture; + +namespace Case.TemplateLocal { + + public partial class ProgressBarForm : System.Windows.Forms.Form { + + public bool Cancel = false; + + public ProgressBarForm(string title, int maximum) { + InitializeComponent(); + this.Text = title; + progressBar1.Maximum = maximum; + } + + public void SetLabel(string text) { + labelProgressBar.Text = text; + labelProgressBar.Refresh(); + } + + public void Increment() { + progressBar1.Increment(1); + } + + public void Reset() { + progressBar1.Value = 0; + progressBar1.Refresh(); + } + + private void buttonCancel_Click(object sender, EventArgs e) { + Cancel = true; + } + } + +} \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.designer.cs b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.designer.cs new file mode 100644 index 00000000..428404b2 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.designer.cs @@ -0,0 +1,99 @@ +namespace Case.TemplateLocal { + partial class ProgressBarForm { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.label6 = new System.Windows.Forms.Label(); + this.buttonCancel = new System.Windows.Forms.Button(); + this.labelProgressBar = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // progressBar1 + // + this.progressBar1.Location = new System.Drawing.Point(8, 9); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(774, 22); + this.progressBar1.TabIndex = 0; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(5, 88); + this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(10, 13); + this.label6.TabIndex = 5; + this.label6.Text = "."; + // + // buttonCancel + // + this.buttonCancel.Cursor = System.Windows.Forms.Cursors.Default; + this.buttonCancel.Location = new System.Drawing.Point(687, 63); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(95, 30); + this.buttonCancel.TabIndex = 6; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // labelProgressBar + // + this.labelProgressBar.AutoSize = true; + this.labelProgressBar.Location = new System.Drawing.Point(12, 43); + this.labelProgressBar.Name = "labelProgressBar"; + this.labelProgressBar.Size = new System.Drawing.Size(68, 13); + this.labelProgressBar.TabIndex = 7; + this.labelProgressBar.Text = "default value"; + // + // ProgressBarForm + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.AutoSize = true; + this.ClientSize = new System.Drawing.Size(788, 105); + this.ControlBox = false; + this.Controls.Add(this.labelProgressBar); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.label6); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "ProgressBarForm"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Processing"; + this.TopMost = true; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Label labelProgressBar; + } +} \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.resx b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.resx new file mode 100644 index 00000000..d58980a3 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/ProgressBarForm.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.cs b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.cs new file mode 100644 index 00000000..57001e21 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.cs @@ -0,0 +1,295 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Windows.Forms; +using Autodesk.Revit.UI; +using Microsoft.VisualBasic.ApplicationServices; +using clsSettings = Case.FamilySubcategories.Data.clsSettings; + +namespace Case.FamilySubcategories.UI +{ + public partial class form_Main : Form + { + private readonly clsSettings _s; + + /// + /// Constructor + /// + /// + public form_Main(clsSettings s) + { + InitializeComponent(); + + // Widen Scope + _s = s; + } + + #region Private Members + + private List _fList = new List(); //Family Path List + private string FolderPath { get; set; } //The folder + + /// + /// Just the Text Headers + /// + private string HeaderTabs + { + get + { + return "Category\tFamily\tSource\tProjection Lineweight\tCut Lineweight\tLine Color\tMaterial\tSub-Categories"; + } + } + + /// + /// Get the Data + /// + private void ProcessData() + { + try + { + if (_fList == null) return; + if (saveFileDialog1.ShowDialog() != DialogResult.OK) return; + if (saveFileDialog1.FileName == null) return; + + using (var sw = new StreamWriter(saveFileDialog1.FileName, false)) + { + bool isFirstRow = true; + + for (int i = 0; i < _fList.Count; i++) + { + if (isFirstRow) + { + sw.WriteLine(HeaderTabs); + isFirstRow = false; + } + string f = _fList[i]; + label1.Text = string.Format("Processing: {0}", Path.GetFileName(f)); + label1.Update(); + sw.WriteLine(_s.ProcessFamily(f)); + progressBar1.Increment(1); + } + + sw.Close(); + } + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + using (var x = new TaskDialog("Error")) + { + x.TitleAutoPrefix = false; + x.MainContent = "This blew up badly. Im not even sure what happened. Contact CASE."; + x.MainInstruction = "I died, Jim."; + x.Show(); + } + } + Close(); + } + + /// + /// Checks if there are any SubFolders + /// + /// The parent folder + /// bool if folders are present + private bool HasSubfolder(string path) + { + var directory = new DirectoryInfo(path); + DirectoryInfo[] subdirs = directory.GetDirectories(); + return (subdirs.Length != 0); + } + + /// + /// Just a method for error processing + /// + /// + private void PathDoesNotExist(string path) + { + buttonOk.Enabled = false; + + if (string.IsNullOrEmpty(path)) path = "Empty Value"; + + using (var x = new TaskDialog("Error")) + { + x.TitleAutoPrefix = false; + x.MainContent = "Please browse to a valid path. \nInvalid Path: " + path; + x.MainInstruction = "Invalid"; + x.Show(); + } + } + + /// + /// Checks that the Directory is a Valid Path + /// + /// The Path + /// bool for Valid + private bool TestPathInput(string p) + { + try + { + if (!Directory.Exists(p)) + { + PathDoesNotExist(p); + return false; + } + FolderPath = Path.GetFullPath(p); + + CheckSubFolders.Enabled = HasSubfolder(p); + + buttonOk.Enabled = true; + + return true; + } + catch (Exception ex) + { + Debug.WriteLine(ex.Message); + PathDoesNotExist(p); + return false; + } + } + + /// + /// Give the user one last chance to get of it + /// + /// Go Forth? + private bool LastChanceExit() + { + using (var x = new TaskDialog("Warning")) + { + x.TitleAutoPrefix = false; + x.MainIcon = TaskDialogIcon.TaskDialogIconWarning; + + if (_fList.Any()) + { + x.MainContent = "You are procesing " + _fList.Count + + " Families.\nThis will take approx. " + + Math.Round(TimeSpan.FromSeconds(_fList.Count*.5).TotalMinutes) + + " Minutes.\n" + + "This is your last chance to cancel this process."; + x.MainInstruction = "Long wait time ahead."; + x.CommonButtons = TaskDialogCommonButtons.Ok | TaskDialogCommonButtons.Cancel; + } + else + { + x.MainContent = "No Families Found in the selected directory"; + x.MainInstruction = "No Families Found"; + x.CommonButtons = TaskDialogCommonButtons.Cancel; + } + TaskDialogResult tdr = x.Show(); + return tdr == TaskDialogResult.Ok; + } + } + + #endregion + + #region Form Controls & Events + + /// + /// OK + /// + /// + /// + private void buttonOk_Click(object sender, EventArgs e) + { + try + { + // Assembly Data for Tracking + var m_a = new AssemblyInfo(Assembly.GetExecutingAssembly()); + + // Usage Tracking +//// var m_usage = new clsUsageFree("spicey", m_a); + } + catch (Exception exception) + { + Debug.WriteLine(exception.Message); + } + + // Progress Bar Shuffle + buttonOk.Hide(); + buttonCancel.Hide(); + ButtonHelp.Hide(); + + _fList = _s.FamiliesToProcess(FolderPath, CheckSubFolders.Checked); + + progressBar1.Show(); + progressBar1.Minimum = 0; + progressBar1.Value = 0; + progressBar1.Maximum = _fList.Count; + groupBox2.Hide(); + label1.Show(); + FormBorderStyle = FormBorderStyle.None; + SizeGripStyle = SizeGripStyle.Hide; + MinimumSize = new Size(400, 80); + Size = new Size(400, 80); + + if (LastChanceExit()) + { + ProcessData(); + } + + Close(); + } + + /// + /// Close + /// + /// + /// + private void buttonCancel_Click(object sender, EventArgs e) + { + Close(); + } + + /// + /// Goto the CaseApps page when someone needs help + /// + /// + /// + private void HelpButton_Click(object sender, EventArgs e) + { + Process.Start("http://apps.case-inc.com/content/free-family-subcategories"); + } + + /// + /// The Event when someone Clicks Browse + /// + /// + /// + private void ButtonFolderBrowse_Click(object sender, EventArgs e) + { + if (FolderBrowser1.ShowDialog() != DialogResult.OK) return; + TestPathInput(FolderBrowser1.SelectedPath); + TextboxFamilyPath.Text = FolderPath; + } + + /// + /// The Evenet when someone changes the Text box + /// + /// + /// + private void TextboxFamilyPath_TextChanged(object sender, EventArgs e) + { + if (String.IsNullOrEmpty(TextboxFamilyPath.Text)) return; + if (TestPathInput(TextboxFamilyPath.Text)) return; + TextboxFamilyPath.Focus(); + } + + /// + /// What happens when the form loads + /// + /// + /// + private void form_Main_Load(object sender, EventArgs e) + { + progressBar1.Hide(); + label1.Hide(); + buttonOk.Enabled = false; + } + + #endregion + + } +} \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.designer.cs b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.designer.cs new file mode 100644 index 00000000..c3cd8ba2 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.designer.cs @@ -0,0 +1,203 @@ +namespace Case.FamilySubcategories.UI +{ + partial class form_Main + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(form_Main)); + this.buttonCancel = new System.Windows.Forms.Button(); + this.buttonOk = new System.Windows.Forms.Button(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.FolderBrowser1 = new System.Windows.Forms.FolderBrowserDialog(); + this.ButtonHelp = new System.Windows.Forms.Button(); + this.groupBox2 = new System.Windows.Forms.GroupBox(); + this.CheckSubFolders = new System.Windows.Forms.CheckBox(); + this.TextboxFamilyPath = new System.Windows.Forms.TextBox(); + this.ButtonFolderBrowse = new System.Windows.Forms.Button(); + this.saveFileDialog1 = new System.Windows.Forms.SaveFileDialog(); + this.label1 = new System.Windows.Forms.Label(); + this.groupBox2.SuspendLayout(); + this.SuspendLayout(); + // + // buttonCancel + // + this.buttonCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonCancel.Location = new System.Drawing.Point(296, 111); + this.buttonCancel.Name = "buttonCancel"; + this.buttonCancel.Size = new System.Drawing.Size(75, 40); + this.buttonCancel.TabIndex = 5; + this.buttonCancel.Text = "Cancel"; + this.buttonCancel.UseVisualStyleBackColor = true; + this.buttonCancel.Click += new System.EventHandler(this.buttonCancel_Click); + // + // buttonOk + // + this.buttonOk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.buttonOk.Enabled = false; + this.buttonOk.Location = new System.Drawing.Point(215, 111); + this.buttonOk.Name = "buttonOk"; + this.buttonOk.Size = new System.Drawing.Size(75, 40); + this.buttonOk.TabIndex = 3; + this.buttonOk.Text = "OK"; + this.buttonOk.UseVisualStyleBackColor = true; + this.buttonOk.Click += new System.EventHandler(this.buttonOk_Click); + // + // progressBar1 + // + this.progressBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.progressBar1.Location = new System.Drawing.Point(12, 111); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(359, 40); + this.progressBar1.TabIndex = 51; + // + // FolderBrowser1 + // + this.FolderBrowser1.ShowNewFolderButton = false; + // + // ButtonHelp + // + this.ButtonHelp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.ButtonHelp.Location = new System.Drawing.Point(168, 111); + this.ButtonHelp.Name = "ButtonHelp"; + this.ButtonHelp.Size = new System.Drawing.Size(41, 40); + this.ButtonHelp.TabIndex = 4; + this.ButtonHelp.Text = "?"; + this.ButtonHelp.UseVisualStyleBackColor = true; + this.ButtonHelp.Click += new System.EventHandler(this.HelpButton_Click); + // + // groupBox2 + // + this.groupBox2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox2.Controls.Add(this.CheckSubFolders); + this.groupBox2.Controls.Add(this.TextboxFamilyPath); + this.groupBox2.Controls.Add(this.ButtonFolderBrowse); + this.groupBox2.Location = new System.Drawing.Point(12, 12); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Size = new System.Drawing.Size(359, 91); + this.groupBox2.TabIndex = 50; + this.groupBox2.TabStop = false; + this.groupBox2.Text = "Family Folder"; + // + // CheckSubFolders + // + this.CheckSubFolders.AutoSize = true; + this.CheckSubFolders.Enabled = false; + this.CheckSubFolders.Location = new System.Drawing.Point(9, 57); + this.CheckSubFolders.Name = "CheckSubFolders"; + this.CheckSubFolders.Size = new System.Drawing.Size(120, 17); + this.CheckSubFolders.TabIndex = 1; + this.CheckSubFolders.Text = "Include Sub-Folders"; + this.CheckSubFolders.UseVisualStyleBackColor = true; + // + // TextboxFamilyPath + // + this.TextboxFamilyPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TextboxFamilyPath.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.TextboxFamilyPath.Location = new System.Drawing.Point(9, 29); + this.TextboxFamilyPath.MaximumSize = new System.Drawing.Size(460, 22); + this.TextboxFamilyPath.MinimumSize = new System.Drawing.Size(260, 22); + this.TextboxFamilyPath.Name = "TextboxFamilyPath"; + this.TextboxFamilyPath.Size = new System.Drawing.Size(260, 22); + this.TextboxFamilyPath.TabIndex = 2; + this.TextboxFamilyPath.Leave += new System.EventHandler(this.TextboxFamilyPath_TextChanged); + // + // ButtonFolderBrowse + // + this.ButtonFolderBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.ButtonFolderBrowse.Location = new System.Drawing.Point(275, 29); + this.ButtonFolderBrowse.Name = "ButtonFolderBrowse"; + this.ButtonFolderBrowse.Size = new System.Drawing.Size(75, 22); + this.ButtonFolderBrowse.TabIndex = 0; + this.ButtonFolderBrowse.Text = "Browse"; + this.ButtonFolderBrowse.UseVisualStyleBackColor = true; + this.ButtonFolderBrowse.Click += new System.EventHandler(this.ButtonFolderBrowse_Click); + // + // saveFileDialog1 + // + this.saveFileDialog1.DefaultExt = "txt"; + this.saveFileDialog1.FileName = "CASE-FamilySubCategories"; + this.saveFileDialog1.Filter = "Text Files |*.txt"; + this.saveFileDialog1.Title = "Family Subcategory Report Save-As"; + // + // label1 + // + this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.label1.AutoEllipsis = true; + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(14, 91); + this.label1.MaximumSize = new System.Drawing.Size(355, 13); + this.label1.MinimumSize = new System.Drawing.Size(355, 13); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(355, 13); + this.label1.TabIndex = 5; + this.label1.Text = "Processing: "; + // + // form_Main + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(384, 161); + this.Controls.Add(this.label1); + this.Controls.Add(this.groupBox2); + this.Controls.Add(this.buttonOk); + this.Controls.Add(this.ButtonHelp); + this.Controls.Add(this.buttonCancel); + this.Controls.Add(this.progressBar1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(600, 200); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(400, 200); + this.Name = "form_Main"; + this.Text = "Get Family Subcategories"; + this.Load += new System.EventHandler(this.form_Main_Load); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button buttonCancel; + private System.Windows.Forms.Button buttonOk; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.FolderBrowserDialog FolderBrowser1; + private System.Windows.Forms.Button ButtonHelp; + private System.Windows.Forms.GroupBox groupBox2; + private System.Windows.Forms.CheckBox CheckSubFolders; + private System.Windows.Forms.TextBox TextboxFamilyPath; + private System.Windows.Forms.Button ButtonFolderBrowse; + private System.Windows.Forms.SaveFileDialog saveFileDialog1; + private System.Windows.Forms.Label label1; + } +} \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.resx b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.resx new file mode 100644 index 00000000..dd0c9049 --- /dev/null +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.2026/UI/form_Main.resx @@ -0,0 +1,577 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + + 153, 17 + + + + + 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 + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/VVLQ/9ORT3eVkxD5VVKQv9USkL9VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JKQv1VS0P/UkhB/FRKQv1USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL8VEpC/VRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpD/1VLQ/9VS0P/VUtD/1VLQ/9USkL/VUtD/1VLQ/9VS0P/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BGP/9QRj//UUY//1FHQP9RR0D/UUdA/1FH + QP9QRj//UEY//1JIQf9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UkhB/1BGP/9SSEH/V01G/1pQSf9aUUr/WVBJ/1hO + SP9YTkf/WE5I/1lPSf9aUUr/WlBJ/1dNRv9RR0D/UEY//1RKQv9VS0P/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//VUtD/1pRSv9WTET/TEA4/0Q5 + Mf9CODD/Rjoy/0k+Nv9LQDj/Sz83/0Y7Mv9CODD/RDkx/05DO/9YTkf/WlBJ/1RKQv9QRj//VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1FHQP9aUEn/UEY//0I4 + Lv9RR0D/dW1n/5qTj/+2sa3/x8O//9HNyv/Y1NH/1dHN/8rFwv+3sa3/lpCL/21lX/9LQDj/RDkx/1RK + Qv9aUEn/UUdA/1JIQf9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1hO + R/9EOTH/YFdQ/6mjn//g3Nr//Pn3/////////////////////////v3////+//////////////////n2 + 9f/W0c//mJKN/1ZLQ/9FOTH/WE9I/1VLQ/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JI + Qf9USkL/VUtD/0g+Nv+dlpL/8O3r///////+/fz/+fb1//Xy8f/18vD/9fLx//Xy8f/59vT/+PXy//Tx + 7//y7+3/8/Du//n29f///v3//////+jl4v+SjIf/SD41/1BGP/9YTkf/UEY//1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UEY//8jDv///////+vj2//by8f/39PP/+/j2//36+P/9+vj//fr4//36 + +f/39PL/+vb1///9/P////7////9//36+f/18vH/8e7s//r49v//////0czK/2FYUf9JPzf/WE9I/1BG + P/9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZNRv9NQzr/zMjF///////08O7/+vf1//36+P/8+ff/+vf1//n2 + 9f/59vX/+vf1//f08v////7//Pn4/+nl4//f29n/4t7c/+3p6P/8+fj///////37+v/y7u3///79/+/t + 6/95cGv/Rz01/1lPSP9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf+wq6j///////Lv7f/++/n/+vf1//n2 + 9f/69/X/+vf1//r39f/7+Pb/+fb0//79/P/Fv7z/eG9r/1pQSv9RR0D/VEpC/11UTf9za2b/npiT/97a + 1///////9fLx//n39v/6+fj/gnp1/0c7M/9aUEn/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTkf/S0A4/3hwa//8+vn/9/Ty//36 + +P/59vX/+vf1//r39f/69/X/+vf1//v59//49fL///38/5+Yk/8/NCv/TUM7/1JHQf9WTET/VkxE/1JH + Qf9MQDj/RDkx/0xBOv+Zko7/9/X1//n39f/39fP/+/n5/3hwav9JPzb/WE5H/1FHQP9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FGP/9ZUEn/Rjox/8XB + v///////9/Px//z59//59vX/+vf1//r39f/59vX//Pn4//by8f//////urWy/z4xKf9dVU7/VkxE/1VL + Q/9SSEH/UkhB/1VLQ/9XTUb/WU9J/1hOR/9BNy7/cmpk//Hu7f/59vX/+fb0/+fk4v9cU0z/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZM + RP9PRT3/ZVtW//Lw7v/8+ff/+fb1//r39f/69/X/+vf1//r39f/7+Pb/+fb1//z59//y7+3/YllS/1JI + Qf9USkL/UEY//1RKQv9USkL/VEpC/1RKQv9RR0D/UUdA/1BGP/9cU0z/Rz01/21lXv/y8O///v39//// + //98dXD/ST42/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUY//1lQSf9GOjL/joeC///////28/H//Pn3//n29f/69/X/+vf1//n29f/9+vj/9fLx//// + ///Bvbn/RToy/1lPSP9RR0D/VkxE/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1VLQ/9ORDz/WlBK/0k/ + N/91bWf/39vZ/7Svq/9RRz//VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/raik///////18fD//fr4//n29f/69/X/+vf1//n2 + 9f/9+vj/9fLx//////+XkYz/RDgw/1pQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9WTET/UUY//1dNRv9OQzv/SD42/0s/N/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9FOTH/wb25///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/7+Pb/+PXz//36+f95cWz/ST83/1hOR/9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/WE9I/1hOR/9VS0L/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lPSP9GOzP/yMO///// + ///28vH//fr4//n29f/69/X/+vf1//r39f/69/X/+/j2//Xy8P9pYFn/TkQ8/1ZMRP9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/UUdA/1FHQP9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUc//1lP + SP9GOzP/yMO////////28vH//fr4//n29f/69/X/+vf1//v49v/59vX//fr4/+/s6f9hV1H/UEY//1VL + Q/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1lQSf9FOjL/xcC9///////18vH//fr4//n29f/69/X/+vf1//v49v/59vT//fr5/+3p + 5/9dVE3/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VEpC/1RK + Qv9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/tbCs///////18vD//fr4//n29f/69/X/+vf1//v4 + 9v/59vX//fr4/+/s6f9hWFH/UEY//1VLQ/9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1BG + P/9RR0D/UUdA/1FHQP9QRj//UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EODD/npeS///////18vH//fr4//n2 + 9f/69/X/+vf1//r39f/69/X/+/j2//Tx7/9nXlf/T0U9/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/UkhB/1pQSf9ZT0n/WE5H/1hOR/9aUEn/WU9J/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/fHVv//78 + +//49fP/+/j3//r39f/69/X/+vf1//r39f/7+Pb/+fb0//r39f9yamT/TEE6/1dNRv9SR0D/VEpC/1RK + Qv9USkL/VEpC/1JIQf9VS0P/VkxE/0Q5Mf9GOzP/TEA4/0xAOP9FOjH/Rzsz/1hOR/9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/WlBJ/+rn5f/++/n/+fb0//v49v/69/X/+vf1//n29f/8+ff/9/Ty///+/f+Gfnn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/UkhB/1ZMRP9QRj//UkdA/5yVkf/KxcL/2tbT/9jU0f/JxcH/j4iD/0g+ + Nv9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1BGP/9aUEn/RTkx/8C8uP//////9fLx//36+P/59vX/+vf1//n29f/9+vj/9fLw//// + //+hm5f/Qjgw/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1FHQP9aUEr/2NPQ///////9/f3////+//// + /v/9/f3//////7WwrP9JPzf/V01G/1FHQP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9YT0j/SD01/4J7dv///fz/+PXz//z59//69/X/+vf1//n2 + 9f/9+vj/9fLx///////Dvrv/RTox/1pQSf9QRj//VUtD/1VLQ/9RR0D/WU9I/0g9Nf/FwL7///////Hu + 7P/49fP/9vPx//bz8f/39PL/8/Du//////+dlpH/RToy/1lQSf9QRj//VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/WE5H/0xBOv/V0c/////+//f0 + 8v/8+ff/+vb1//r39f/7+Pb/+fXz///8+v/n4+H/V01G/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/19W + T//u7Or/+vf1//z59//9+vj//Pn3//v49v/9+/n/+fb1//36+f/m5OL/VkxE/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/WE5H/0g+ + Nv+AeHP//vz7//f08v/9+vj/+fb1//r39f/59vX//Pn3//j08v///fz/gnp1/0g9Nf9ZT0j/UUdA/1RK + Qv9VS0P/UkhB/11UTf/s6eb///z6//j18//69/X/+fb1//n29f/59vX/+/j2//n29f/9+vn/enNu/0k/ + N/9YTkf/UUdA/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9FOTD/uLSw///////18e///fv5//n29P/59vX//fr4//Xy8f//////wb25/0U5 + Mf9ZUEn/UUdA/1VLQ/9RR0D/V01H/01DO//Y1dP///79//f08v/8+ff/+fb1//r39f/59vX//Pn4//Xy + 8f//////k42I/0U6Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RJQf9VS0X/UUc//9za1/////7/9fLw//77+f/59vT/+vf1//r3 + 9f/69vX/+PX0/2xkXv9ORDz/VUtD/1RKQv9SSEH/WlBK/0Q4MP+noJ3///////Xy8P/9+vj/+fb1//r3 + 9f/59vX//fr4//Xy8f//////l5GM/0U5Mf9aUEn/UEY//1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQf9VS0P/UEY//2NZUv/p5uT///39//Xx + 8P/9+vn/+vf1//v49v/28vH//////8bCv/9EODD/XFRN/09FPf9QRj//VUtD/0xBOv9oYFn/9vPx//r3 + 9f/69/X/+vf1//r39f/59vX/+/j2//j18////fz/hX55/0c9Nf9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9RR0D/V01G/01D + O/9lXFb/5uTh///////18vD/+fb1//z59//9+vj/9vPx///+/f+Zk4//PjEp/19VTv9XTUb/VktD/1lP + SP9VS0P/3tnX///+/f/39PL/+/j2//n29P/7+Pb/+/j2//v49v/t6+n/X1VO/1FHQP9VS0P/UkhB/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9PRDz/WlBJ/87Jxv//////+/n4//by8f/49fP//fr4//v49v/8+/n/l5GM/0A1 + Lf9IPjX/TEE4/05EPP9GOzP/39vZ///9+//49fP//fr4//z59//8+fj/8e7s//////+ppKD/RDkx/1pQ + Sf9QRj//VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9WTET/UkhB/0g+Nv+ak4//7eno///////9+/n/9/Px//Xy + 8P/29PL//v38/8XAvf+Ffnj/cWlj/2ZdVv+ppJ////37//n29f/7+Pb/9/Ty//bz8f/49fP//////8jE + wf9ORDz/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VEpC/1hOR/9EOTD/XVRN/6qk + oP/p5eP///79///////+/fz/+PXz///+/f/9+vn/8e7s//Hu7f/9+vn/9vPx//f08v/79/X///38//// + ///59/X/s62p/09EPP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1FH + QP9aUEn/UkhA/0I4Lv9XTUf/i4N+/765tv/i3tv/9/Ty//v49v///fz//////////////v3////+///9 + /P/28/H/39vY/7Ktqf9uZl//RDkx/1ZMRP9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//VUtC/1pRSv9USkL/Rjsy/0Q5Mf9SSEH/aWBa/4F6dP+SjIf/mZOO/52W + kf+clJD/kouH/4B5dP9qYVv/UUY//0I4Lv9NQzv/WlBJ/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VElC/1BGP/9USkL/WU9J/1pQSf9VS0P/TkQ8/0c9 + Nf9EOTH/RDkx/0Q5MP9CODD/RTkx/0g+Nf9ORDz/VkxE/1pRSv9XTUb/UEY//1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UUdA/1BG + P/9SSEH/VkxE/1hOR/9aUEn/WlBJ/1pQSf9aUEn/WlBJ/1hOR/9WTET/UkhB/1BGP/9SSEH/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9USkL/UkhB/1FHQP9QRj//UEY//1BGP/9QRj//UEY//1FHQP9SSEH/VEpC/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UUhB/FVKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL9WE1G9lJIQfxUSkL9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv1USkL8KyQfV1hNRv9SSEH8VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lVLQv9USkLxAAAAACskIVdYTUb9UUhB/lVL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL+UkhB/1ZLQ+wdGBU3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAACAAAABAAAAAAQAgAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAD83MZxXTUT/UkhB+1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1WTET/V01G/lJIQfxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1VLQ/9VS0P/VUtD/1VLQ/9VS0P/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1JIQvxSSEH5VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VUtD/1RKQv9RR0D/UEY//1BGP/9QRj//UEY//1BGP/9QRj//UkhB/1VLQ/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9QRj//VEpC/1lPSP9aUUr/WlBJ/1pQSf9aUEn/WlFK/1pRSv9XTUb/UUdA/1FH + QP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/lRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9SSEH/UkhB/1pRSv9SSEH/Rzsz/0I4Lv9EOTD/RToy/0U5Mf9CNy7/Qjcu/0tA + OP9YTkf/WU9I/1BGP/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UkhB/1ZMRP9VS0P/Qjgu/1pQSf+Gf3r/qaSg/765tf/Iw8D/ysXC/7y3 + tP+fmZX/c2tm/0xAOP9HPTP/WU9I/1RKQv9SSEH/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9WTUb/TkQ8/1RKQv+sp6P/7Ojm///9/f////////////// + /////fz///39///9/P/18vD/z8rH/4Z+ef9GOzP/UkhB/1ZMRP9RR0D/VUtD/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9SSEH/VkxE/05DO/9nXlf/4t7b///////9+vn/9/Ty//Xy + 8f/08e//9fLw///+/f///fz///79/////////////Pr5/8G8uP9YTkf/TUM7/1dNRv9SSED/VUtD/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1VLQv9SSEH/XFJK/+bk4v//////9PDu//n2 + 9f/8+ff//Pn3//37+f/59/b/xL+7/6KcmP+jnZn/sq2p/9XRzf/59/b//////+Dd2v9nXlj/TkQ8/1ZM + RP9SSEH/VEtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0U5Mf++ubf///////Pv + 7f///Pr/+/j1//n29f/7+Pb/8e7t/3lxa/9ANCz/RDkw/0E1Lf9CODD/TkM7/4N8d//g3dr//////9/b + 2P9cU0z/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amJb//Xz + 8f/69/X//Pn3//n29P/8+ff/9vLx//////+Ujor/PjEo/2BXUf9XTkf/W1NM/1lQSf9YTkf/RTox/2JY + Uf/Y1NH//////7i0sf9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RKQv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5 + MP+Yko7///////bz8f/8+ff/+/j2//n28//+/Pr/6OXi/1dNRv9XTUb/UEY//1BGP/9QRj//UUdA/1BG + P/9bUkz/TUM7/2BXUP/NycX/iYF8/0tAOP9YTkf/UUdA/1RLQ/9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUUr/Qjgw/7axrv//////9fHw//z59//8+ff/9fLx///////Iw8D/Rjsz/1hOR/9RR0D/VkxE/1VL + Q/9VS0P/VUtD/1BGP/9WTET/UUdA/0Q5MP9MQTj/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UEY//1pQSf9EOTH/wLy4///////18vH//Pn3//z59//18vD//////7Ouqv9CNy7/W1FK/1BG + P/9VS0P/VEpC/1RKQv9USkL/VkxE/1RKQv9VS0P/W1FK/1dOR/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9QRj//WlBJ/0Q5Mf/Au7f///////Xy8f/8+ff//Pn3//Xy8P//////qaSg/0I4 + Lv9aUUr/UEY//1VLQ/9USkL/VUtD/1JIQf9QRj//UUdA/1BFPf9OQzv/UkhB/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VUtD/1BGP/9aUUr/Qjgu/7Svq///////9fLw//z59//8+ff/9fLw//// + //+spqL/Qjgu/1pRSv9QRj//VUtD/1RKQv9SSEH/VUtD/1tRSv9ZT0n/WlBK/1pQSf9SSEH/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UEY//1pQSf9EOTD/mZOP///////18vH//Pn3//z5 + 9//18vD//////7awrP9COC7/WlFK/1BGP/9VS0P/UkhB/1dNRv9QRT3/QTct/0c9M/9EOTD/Rjsz/1dN + Rv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9RR0D/V01G/0xBOP9ya2X/+vj2//n2 + 9f/69/X//fr4//Xy8f//////x8O//0U6Mv9ZUEn/UUdA/1RKQv9WTUb/TEA4/2deV/+1r6v/ycXB/8jE + wP+Ujon/S0A3/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SR0D/V01G/01D + O//Z1tP///79//f08v/9+vj/9/Ty///9/P/f3Nr/UEY//1ZNRv9RR0D/VkxE/09FPf9qYVv/7uvp//// + /////////f39//////+spqL/Rz01/1lPSP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1BG + P/9aUEn/RTkx/5WPi///////9fLx//36+f/59vT/+vf1//j18/9tZV//TkM7/1RKQv9aUEn/Qjcu/6un + o///////7+vp//n29P/08e//+PTy//n39v9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JHQP9XTUf/TUE6/9bT0f////3/9fLw///9/P/08O7//////6Kdmf9FOjH/VkxE/1dN + R/9GOjL/o52Z///////49fP//vv5//77+f/38/H//////5OOif9FOTH/WlBJ/1BGP/9VS0P/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9ORDz/amFb//Px8f/7+ff/+PXy//z59////Pv/5OHf/1JI + Qf9WTET/VkxE/0c7M/9za2b/+/n3//j18//59vX/+vf2//bz8f//////nJaR/0Q5MP9aUEn/UEY//1VL + Q/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/e3Nt//f19P/9+/r/9/Ty//Xy + 8P//////r6qn/z4xKf9bUUr/XVRN/1FHQP/Y1NH///////j18////fz/9PDu///+/f+FfXn/Rz0z/1lP + SP9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hOR/9JPjb/cmpk/+Tg + 3////////fr5//Tx7//69/b/nZaR/0Q4MP9IPjb/PTEo/9XQzf///fz/9PHv//Xx7///////2tbV/1BF + Pf9WTEb/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/UUdA/1hO + R/9MQTr/VEpC/6ulof/v6+n///////7+/f///v3/29bU/7Crp//Ev7z/+vj2//77+f/+/v3//////+Dc + 2v9mXVf/T0Q8/1ZMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9VS0P/UUdA/1dNRv9VS0P/Qjgu/11VTv+Yko3/yMTA/+Hd2v/69/X///////79/f/28/H/6+fk/9HN + yv+dlZH/UkhB/09EPP9WTET/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9VS0P/UUdA/1RKQf9aUUr/UUdA/0Q5MP9GOzL/VkxE/2BWT/9mXVf/aGBZ/2hg + Wf9aUEn/SD42/0Q4MP9WTET/VkxE/1JIQf9USkP/VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VS0P/VEpC/1BGP/9VS0P/WlBJ/1lQSf9USkL/UkhB/1BG + P/9PRT3/TkQ8/1JIQf9ZT0j/WlBK/1JIQf9SSEH/VEpD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB+lRK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1JIQf9QRj//UEY//1JI + Qf9VS0P/VkxE/1ZMRP9WTET/VEpC/1FHQP9QRj//VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9XTET9UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VEpC/1JIQf9SSEH/UkhB/1JIQf9USkH/VUtD/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/UkhB+0Y+N7VXTUT/UkhB+1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1JIQf1XTUT/AgICAkY+N7dWTET/UkhB+lVKQv9USkL+VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/lVLQ/9RSEH5WE1G/z42MJ0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAABgAAAAwAAAAAQAgAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAExDO89WTEP/UkhB/FRKQv9USkL/VEpC/1RKQv9USkL/VUtD/1RK + Qv9SSEH/UkhA/1JIQP9SSEH/VEpC/1VLQ/9USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9SSEH9VkxD/1VL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1VLQ/9USkL/UEY//1JIQf9VTET/V01G/1dNRv9VTET/UUdA/1BG + P/9USkL/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/VRKQvtUSkL/VEpC/1RKQv9USkL/VUtD/1FH + QP9USkL/W1FK/1ZMRP9QRT3/TEA4/0tAOP9PRT3/Vk1G/1pQSf9USkL/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9USkL/VEpC/1RKQv9VS0P/UkdA/1dNRv9SSEH/QTcu/09FPf9kWlP/cmpk/3Vt + Z/9mXVb/T0U9/0Y6Mv9VS0P/WE5H/1FHQP9VS0P/VEpC/1RKQv9USkL/VEpC/1RKQv5USkL/VEpC/1VL + Q/9SR0D/V01G/0xBOP9aUUr/q6ai/93Y1v/08O7/+fb0//bz8f/x7ez/19PQ/56Xk/9WTET/S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9XTUb/S0A4/3VtZ//t6ej////////+ + /f/79/X/+/n4/////v///Pr//v7+///////t6ej/gXlz/0s/N/9ZT0j/UUdA/1VLQ/9USkL/VEpC/1RK + Qv9USkL/UkhB/1VLQ/9QRj//Y1lS/+7s6////fz/9fHv//bz8f/9+/n/6OXj/5KMh/93b2r/fXVw/6CZ + lf/q5+X//////5CKhf9FOjL/WE5I/1FHQP9VS0P/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/uLSw//// + ///08O7///z7//z59//z8e//aWFa/z8zK/9NQzv/SD41/0c9M/9YTkf/z8vI//////99dG//S0A4/1hO + R/9RR0D/VUtD/1RKQv9USkL/VEpC/1RKQv9XTUb/5eLg//77+f/8+ff/9fHw//////+3sa7/QTct/2JY + Uf9USkL/WE5H/1tRSv9SSEH/VUtD/7y3s/92bmj/S0A4/1hOR/9RR0D/VEpC/1RKQv9SSEH/VkxE/09F + PP9oYFn/9fLx//v49v/8+ff/9vPx//////+TjYj/RToy/1dNRv9PRDz/UkhB/1BGP/9USkL/VEpC/0I4 + Lv9NQzv/VUtD/1JIQf9USkL/VEpC/1RKQv9SSEH/VkxE/05DO/9sZF3/+PXz//n29f/8+ff/9/Ty///+ + /f+EfHf/Rzsz/1pQSf9SSEH/VUtD/1JIQf9VS0P/Vk1G/1pRSv9WTET/VEpC/1RKQv9USkL/VEpC/1RK + Qv9SSEH/VUtD/1BGP/9kWlT/8u/t//z59//7+Pb/9/Ty///+/f+EfHf/Rz01/1lPSP9RR0D/VUtD/1dO + R/9ORDz/Sz83/1BGP/9VS0P/UkhB/1RKQv9USkL/VEpC/1RKQv9USkL/UkhB/1ZMRP9RR0D/39va///9 + /P/59vX/9/Ty//////+PiIP/RToy/1lQSf9RR0D/VEpC/0tAN/9qYlv/dm5p/1dNRv9NQzv/VkxE/1JI + Qf9USkL/VEpC/1RKQv9VS0P/UEY//1pRSv9COC7/trGu///////59vT/9/Ty//////+ooZ3/Qjcu/1pQ + Sf9SSEH/UUdA/724tP/7+Pb/+/f2/+bi3/9rY1z/TkQ8/1ZMRP9SSEH/VEpC/1RKQv9USkL/UkhA/1dN + Rv9MQTr/cWlj//n39f/59vX/+fXz///////MyMX/Rjoy/1xTTP9FOjL/gHhz///////59/X/9fLw//// + ///LyMX/Rzsz/1lPSf9RRj//VUtD/1RKQv9USkL/VUtD/1BGP/9aUEn/RDkw/7Cqp///////8u7t//36 + +f/39fP/Zl5X/1VLQ/9NQzv/cGhh//n29P/59vT/+/j2//36+f/m4+H/WU9I/1JIQf9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/VkxE/01DO//LxsT///////Ht7P///v3/vbi1/z0wKP9hV1D/UEY//9rW + 0///////8/Dt///8+v/k4d//UkhB/1VMRP9SSEH/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9PRT3/u7Wx///+/f/8/Pv///79/6KdmP9NQTr/PjMr/8XBvv///v3/9fHw//////+noJ3/RToy/1lQ + Sf9QRj//VUtD/1RKQv5USkL/VEpC/1RKQv9USkL/VEpC/1RKQv9VTET/RTox/4B4cv/Oysb/8/Du//// + ///w7ev/5+Ph///////+/f3/9fHv/6ymov9NQzv/VkxE/1JIQf9USkL/VEpC/1RKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1RKQv9SSEH/WVBJ/0g+Nv9HOzP/aGBZ/4V9eP+ln5v/raik/5+YlP+Lg3//YllS/0U6 + Mv9WS0X/VEpC/1RKQv9USkL/VEpC/1RKQvxUSkL/VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/UEY//1hO + R/9ZT0j/T0Q8/0k+Nv9ANCz/PjMp/0Q5MP9GOzL/UUY//1lPSf9SSEH/VEpC/1RKQv9USkL/VEpC/1RL + Q/1SSEH9VEpC/1RKQv9USkL/VEpC/1RKQv9USkL/VUtD/1FHQP9RR0D/VkxE/1lPSP9cU0z/XFRN/1pQ + Sv9ZT0j/VUtD/1BGP/9USkL/VEpC/1RKQv9USkL/UkhB/E9GP9xWTEP/UkhC/VRKQv9USkL/VEpC/1RK + Qv9USkL/VEpC/1VLQ/9VS0P/UkhB/1FHQP9QRj3/T0U9/1BGP/9QRj//UkhB/1VLQ/9USkL/VEpC/1RK + Qv9SSEL9VkxD/wgGBRhPRj/gVUtD/1RKQvxUSkL/VEpC/lRKQv9USkL/VEpC/1RKQv9USkL/VEpC/1VL + Q/9VS0P/VUtD/1VLQ/9VS0P/VEpC/1RKQv9USkL+VEpC/1JKQvtVS0P/TEM70wAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABUSULyVUtD/1RK + Qv5VS0P/UUdA/1VLQ/9aUUr/WlBJ/1pRSv9bU0z/V01G/1BGP/9USkL/VEpC/1RKQv5VS0P/VEpC/VRK + Qv5VS0P/UkhB/1hOR/9SR0D/Qjgu/0U5Mf9EOTD/QDQs/05EPP9cU0z/UUdA/1JIQf9USkL/VEpC/lRK + Qv5VS0P/UkhB/1dNRv9JPzb/X1VO/5yVkP+zrqr/urWx/6qkoP9tZV7/QDQs/1hPSP9VS0P/VEpC/1RK + Qv9VS0P/UUdA/1hOR/9JPzb/hHx4//Lv7f///v7///////79/P/39PL//vv5/7+5tv9IPTX/UUdA/1RK + Qv9USkL/UkhB/1ZMRP9PRT3/Zl1W//Xz8v/8+fj/+/f1/9XRzv9fVk//WE9I/25lX//g3dv/2NTR/09E + PP9XTkf/UkdA/1BGP/9bUUr/Qjcu/6Oemv//////8O3q//////99dnD/Qjgw/11UTf9EODD/SD41/66o + pP9hV1D/UEY//1ZMRP9QRj//WlBK/0I4MP+3sa7///////j18//z8O3/YllS/1RKQv9USkH/W1NM/2FX + Uf9GOzL/UEY//1VLQ/9USkL/UEY//1pRSv9CNy7/sKun///////39PH/8u/t/19VT/9PRDz/V01G/0c9 + Nf8/Myv/T0U9/1ZMRP9USkL/VEpC/1BGP/9aUEn/RTox/5CJhf////7/9/Px//v49v9pYFr/T0U9/05E + PP9/d3L/w767/5WPi/9PRT3/VkxE/1JIQf9USkL/VEpC/1RKQv9XTUb/6ujn//n29f///Pr/kImE/0k/ + N/9mXlf/8O/t////////////iIB7/0c9Nf9YT0j/VUtD/1FHQP9YTkj/Rz01/4qDff/9+/r//////8jE + wP87MCb/ST83/9XRzv/x7uz//vz7/6einv9BNS3/W1FK/1RKQv9VS0P/UUdA/1hOR/9HPTX/jYaB//Dt + 6///////urWy/11UTP/Rz83///////Xz8f92bWj/TEE6/1dNRv9USkL+VEpC/1VLQ/9SSED/WE5H/0c9 + Nf9fVU7/o52Y/9LOy//W0c//19PQ/8G8uP92bmj/TEE4/1ZMRv9SSEH/UkhB/FRKQv5USkL/VUtD/1FH + QP9YT0j/UUdA/0I4Lv9CNy7/TUM7/0tAOP9CODD/TEE6/1dNRv9SSEH/VEpC/lVLQ/hVSkL/VEpC/1RK + Qv9VS0P/UUdA/1VLQ/9bUUr/W1FK/1dNRv9YTkf/WlFK/1dNRv9SSEH/VEpC/1RKQv8bFxVCVUtD/lJI + Qf5USkL/VEpC/1VLQ/9SSEH/UEY//1BGP/9SSEH/UUdA/1BGP/9RR0D/VUtD/1RKQv9USkL3AAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== + + + \ No newline at end of file diff --git a/src/Case.FamilySubcategories/Case.FamilySubcategories.sln b/src/Case.FamilySubcategories/Case.FamilySubcategories.sln index c5848112..603a0531 100644 --- a/src/Case.FamilySubcategories/Case.FamilySubcategories.sln +++ b/src/Case.FamilySubcategories/Case.FamilySubcategories.sln @@ -5,6 +5,8 @@ VisualStudioVersion = 17.4.33403.182 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.FamilySubcategories.2023", "Case.FamilySubcategories.2023\Case.FamilySubcategories.2023.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}) = "Case.FamilySubcategories.2026", "Case.FamilySubcategories.2026\Case.FamilySubcategories.2026.csproj", "{0ACBCDF9-D03F-47C8-A50B-F2A66581D32B}" +EndProject Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.FamilySubcategories.SharedProject", "Case.FamilySubcategories.SharedProject\Case.FamilySubcategories.SharedProject.shproj", "{695A2D82-DD93-4712-99CA-95978AAD6D94}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Case.FamilySubcategories.2022", "Case.FamilySubcategories.2022\Case.FamilySubcategories.2022.csproj", "{B5ED3506-2771-440B-965A-FCF0E4C8AD93}" diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Case.FreeBenchmarking.2026.vbproj b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Case.FreeBenchmarking.2026.vbproj new file mode 100644 index 00000000..67f42d68 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Case.FreeBenchmarking.2026.vbproj @@ -0,0 +1,127 @@ + + + + + Debug + AnyCPU + {0B872AB7-0C8A-4217-9516-850E8423146C} + Library + Case.FreeBenchmarking + Case.FreeBenchmarking + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.FreeBenchmarking.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.FreeBenchmarking.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + form_Main.vb + + + Form + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + + + form_Main.vb + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + PublicSettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + \ No newline at end of file diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.designer.vb b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.designer.vb new file mode 100644 index 00000000..c5a41e4f --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.designer.vb @@ -0,0 +1,118 @@ + _ +Partial Class form_Main + Inherits System.Windows.Forms.Form + + 'Form overrides dispose to clean up the component list. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Required by the Windows Form Designer + Private components As System.ComponentModel.IContainer + + 'NOTE: The following procedure is required by the Windows Form Designer + 'It can be modified using the Windows Form Designer. + 'Do not modify it using the code editor. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(form_Main)) + Me.GroupBox1 = New System.Windows.Forms.GroupBox() + Me.Button5 = New System.Windows.Forms.Button() + Me.Button4 = New System.Windows.Forms.Button() + Me.Button3 = New System.Windows.Forms.Button() + Me.Button2 = New System.Windows.Forms.Button() + Me.Button1 = New System.Windows.Forms.Button() + Me.GroupBox1.SuspendLayout() + Me.SuspendLayout() + ' + 'GroupBox1 + ' + Me.GroupBox1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ + Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.GroupBox1.Controls.Add(Me.Button5) + Me.GroupBox1.Controls.Add(Me.Button4) + Me.GroupBox1.Controls.Add(Me.Button3) + Me.GroupBox1.Controls.Add(Me.Button2) + Me.GroupBox1.Controls.Add(Me.Button1) + Me.GroupBox1.Location = New System.Drawing.Point(12, 12) + Me.GroupBox1.Name = "GroupBox1" + Me.GroupBox1.Size = New System.Drawing.Size(480, 275) + Me.GroupBox1.TabIndex = 2 + Me.GroupBox1.TabStop = False + Me.GroupBox1.Text = "Automation Commands" + ' + 'Button5 + ' + Me.Button5.Location = New System.Drawing.Point(18, 219) + Me.Button5.Name = "Button5" + Me.Button5.Size = New System.Drawing.Size(137, 40) + Me.Button5.TabIndex = 4 + Me.Button5.Text = "Command 5" + Me.Button5.UseVisualStyleBackColor = True + ' + 'Button4 + ' + Me.Button4.Location = New System.Drawing.Point(18, 173) + Me.Button4.Name = "Button4" + Me.Button4.Size = New System.Drawing.Size(137, 40) + Me.Button4.TabIndex = 3 + Me.Button4.Text = "Command 4" + Me.Button4.UseVisualStyleBackColor = True + ' + 'Button3 + ' + Me.Button3.Location = New System.Drawing.Point(18, 127) + Me.Button3.Name = "Button3" + Me.Button3.Size = New System.Drawing.Size(137, 40) + Me.Button3.TabIndex = 2 + Me.Button3.Text = "Command 3" + Me.Button3.UseVisualStyleBackColor = True + ' + 'Button2 + ' + Me.Button2.Location = New System.Drawing.Point(18, 81) + Me.Button2.Name = "Button2" + Me.Button2.Size = New System.Drawing.Size(137, 40) + Me.Button2.TabIndex = 1 + Me.Button2.Text = "Command 2" + Me.Button2.UseVisualStyleBackColor = True + ' + 'Button1 + ' + Me.Button1.Location = New System.Drawing.Point(18, 35) + Me.Button1.Name = "Button1" + Me.Button1.Size = New System.Drawing.Size(137, 40) + Me.Button1.TabIndex = 0 + Me.Button1.Text = "Command 1" + Me.Button1.UseVisualStyleBackColor = True + ' + 'form_Main + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(504, 299) + Me.Controls.Add(Me.GroupBox1) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.MaximizeBox = False + Me.MinimizeBox = False + Me.Name = "form_Main" + Me.Text = "Benchmarking" + Me.GroupBox1.ResumeLayout(False) + Me.ResumeLayout(False) + + End Sub + Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox + Friend WithEvents Button5 As System.Windows.Forms.Button + Friend WithEvents Button4 As System.Windows.Forms.Button + Friend WithEvents Button3 As System.Windows.Forms.Button + Friend WithEvents Button2 As System.Windows.Forms.Button + Friend WithEvents Button1 As System.Windows.Forms.Button +End Class diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.resx b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.resx new file mode 100644 index 00000000..d5099864 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.resx @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAEIAABIXAAASFwAAAAAAAAAA + AAD//////////////////////////////////////////////////f////3////////////////////+ + /////P7//fr8//z6+////v7///////////////////////////////////////v8/f////7////+//// + /f///fv//fv5//z6+P/9+/r////9/////////v3///79///////////////////////////////+///+ + /f///v////7//////////////////////////////////////////////////////////////v////7/ + ///+/////v////////////////////////////////////////////////////////////////z9///6 + /f//+/3///3+///+///////////////+/////////Pr6//37/f///v////////7+///8/P3//Pv8//z8 + /f/9/v////79/////////////////////v///v7///7+/////////v3////////////7+vn/9/X0//j2 + 9f/9+vn///38///+/P///v3///7////+//////////////////////////////////////////////// + //////////////7////+/////v////7///////////////////////////////////////////////// + ///////////////+/v///f7///v+///7/v///P7///3+//78/v/8+/z/+vj7//39/f///v///Pz9//r6 + +//8/P3//f7+//3+/v/9/v7//v////v7+//6+vr/+Pj5//j4+f/6+vr//Pz8//7///////////7+//r6 + +v///////v7+//38/P/8/Pv//Pv6//v6+v////7///////////////////////////////////////// + ///////////////////////////////////+/////v////7////+//////////////////////////// + /////////////////////////////////////v////3////9/////f////7////+/////f7//fz9//z7 + /P/9/f7//fz9//r6/P/6+vz//f3+//////////////////////////////////////////////////// + /////////Pz8//r6+v/8/Pz/+/v7//f39//5+fn//v7+/////v/+/v7//v7+//r6+/////////////// + /////////////////////////////////////////////////////////v////7////+/////v////// + //////////////////////////////////////////////////////////7////9/////v///v7///38 + /v/8/P3//Pz9//7//////////f7////////////////////////+////+Pr7//X4+f/z9ff/7/Dx//Dy + 8//y8/T/8fL0//Dx8//z9PX/+Pn7//3////////////////////4+vn/+Pj4//r7/f/5+/3/+fr8//n6 + /P/3+Pv///////////////////////////////////////////////////////////////////////7/ + ///+/////v////7///////////////////////////////////////////////////////////////// + /////v////3///78/v/8+v3/+vr8//z7/P/////////////////8/Pz/7e7v/9/g4P/N0NH/trm7/6Gk + pv+SlZf/iY2Q/3+Chf9+gYX/foCE/3x+gv97foH/g4eK/5qdoP+1ubz/yczR/9zg4P/q7e7/+f3+//// + ////////9vr9//X4+v/3+vz/+/7///////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////+/P7//fv+//77/////v//////////////////+Pn8//Hw9P/X19r/tra4/4iK + jf9fYWT/REdJ/zI1N/8gIyX/CAsO/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAv8PEhb/Jiks/zk7 + P/9gY2f/goWJ/7C0uf/b3uL/8fP0//v//////////f////r+///+/////v////7////+//////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////+fj7//f2+f/8+v3//////////////v//7Ozw/7/B + xP+en6P/TU5R/yYoK/8LDhL/AAAA/wAAAv8ECQz/DBIV/wgOEf8BBgn/AwgN/wYMEf8LERb/DxUb/w8U + Gv8JEBT/AwgO/wABBv8AAAH/AAAE/wIIDf8eIyj/UFRa/42TmP/FzNH/6O/z//X6/v/3/P///P////z/ + ///8/////P////3////9/////f////3////9/////v////7///////////////////////////////// + /////////////////////////////////////////////////////////////////////v////3////+ + ///39/r/19bb/5OTl/87PUD/AQEE/wAAAP8CBAf/CQwQ/w8TFv8MEBP/BwsO/wYLDv8LEBT/ERYZ/xEX + HP8MEhf/BQsQ/wIIDf8FCxD/ChAV/wwRF/8LERb/CQ4U/wULEP8ABw3/AAEG/wAAAf8ICxH/Mjg9/3yB + hv/K0NT/+f7+//z////8/////P////z////9/////f////3////9/////f////7////+//////////// + //////////////////////////////////////////////n5+f/4+Pj///////z8/P/x8fH///////// + ///8/P//+/z////////29/j/pqit/zg7P/8LDhL/Cg4T/wEFCf8ECQ3/EBUZ/wYNEf8GDBD/ERcc/wkO + Ev8AAgX/BxAU/wwUGP8HDxT/CREW/wgQFf8HDxT/DRQZ/wwTGP8CCg//AQcM/wcQFP8JERb/ChIX/wQL + EP8ABgr/AAYL/wEBBv8OEBT/NT1C/4OKjv/v9vP/+/////b9/P/0/fr/+v/+//j9/f/4/fz//f////3/ + ///+////+v38//7//////////Pv7//r4+P/9/Pz//////////////////f39//39/f/+/v7//Pz8//z8 + /P/+/v7//Pz8//r6+v/7+/v//Pz8///////g4eP/eHp+/y0vNP8ZHCD/CgsQ/wAABf8OERb/BQoO/xAV + Gf8JDxP/AwoO/w0TGP8LExb/DBIV/xIZHf8EDBD/Bw8T/wwTGP8FDhL/AAUK/wYLEP8OFhv/Dhcc/wsU + Gf8LExf/AQcM/woSF/8KExj/Bw8U/w0UGf8NEhj/AgkN/wIKEP8XHyP/SFBP/6Cpp//3//7///////n+ + /v/3/vz/+//+//b5+f/s8PD/+/79//j6+v/9/v7////////////+/v7///7+//v8/P////////////v7 + +//8/Pz///////v7+//19fX///////7////t7e3/+/r6///////Y2t7/dnp//xkbIP8AAAL/CQ4T/w0R + Fv8ECA3/Cg8V/wUMEP8NExj/ChEW/wUNEv8HDxP/BQ4S/wwVGf8SGx//AAgM/wEIC/8PFRj/ERkd/wsR + Ff8ECg3/AAYJ/wECBf8ABAf/AAgL/wAFB/8IDxH/Bw4R/wEHC/8HDhL/DRUZ/wcPE/8ABQn/AAYI/wgS + Ef8kLy3/eoSC/9Ha2P/7////+/////r////6/f3/9fn5//3////8/f3//v////z8/P/8/Pz///////// + ///9/Pz////////////9/f3//Pz8//7+/v/8/Pz/+Pj4///////8/f3/7e3t///////n6Ov/cnV7/xcY + Gv8NDhP/ExUa/wACCP8GCg//Exge/wMIDf8JEBX/ChEW/wgPFP8MFBn/CBEW/wAHC/8ECxD/DRYb/wYP + FP8MFBb/Bg0Q/wMFCP8BBgn/DBMW/xccH/8SFhr/DxQX/xIaHP8MFBb/DBMV/wcOEf8DCQz/AAYJ/wAE + B/8BBAb/Bg0R/xQcHv8HEhD/AQwK/xEXFf9DTUv/sLm5//3////8////9Pn5//7////6/Pz///////// + ///5+vn/+fn4//37/P///v////////////////////////39/f/9/f3///////z8/P/6+vr//f39//r6 + +v/4+Pf/jZGW/x0hJ/8AAAD/EBMZ/xkdJP8AAgj/BQkO/xUcIf8CCA3/CRAV/wYNEv8HDxT/Dhcc/woU + Gf8CCxD/BAwR/wgTGP8HExf/CAwN/wUKDP8WGRr/Nzs9/2hvcP+Rl5n/mZ+h/5abnf+YnZ7/kZeY/4OJ + i/9sc3T/U1pb/zE4Of8SFhb/AAED/wAFCP8SFhf/CxgV/wYPDf8GDAr/AAMC/zY6Ov+cpKP/6e/u//v/ + ///3+/v/9vn5//z+/v/7/Pz/+/z7//z8+//9/P3//fv8//38/P/////////////////+/v7//f39//// + ///9/f3/9vb2////////////vL27/y0vNP8DCA7/CxAX/wcLEf8ECA7/AggO/wkPFf8KExf/BQ0T/wQM + Ev8FDhP/ChMY/wgSF/8FDhP/CBUa/wsWG/8DCxH/AAUK/wYHB/8/Q0P/h42N/7e7u//d4+P//f////// + ///////////////////9////5+3s/8zQ0P+nraz/eH59/0RLS/8RFRX/AAAA/wYSEP8ABgT/FiIg/wsY + Fv8AAAD/HCUk/4mSkf/i5+f//f////r9/f/7/v7/+vv6//v8/P////////////z6+v/79/f///////// + ///////////////////+/v7//v7+//v7+///////4+Pj/1tbWv8EBAj/BQkP/xEWHP8IDBL/AwYM/wcN + E/8KERf/Bg4T/wYNFP8DDBL/ChMY/wwXHf8DCg//AAYL/wkVG/8LFBn/AAEH/wcKD/9NU1L/r7Wz//v/ + ////////+v/+//r+/v/7////+v////X7+v/y9/j/9/z8//7///////////////P39//Eycn/c3h4/yQq + KP8ACAb/AAUC/w0YFf8IFhP/AwsJ/wAFBP8RGRj/eX9+/+bo6P/4/Pz///////7//v/4+Pj//fz8//// + ///8+vr//Pn5//////////////////7+/v/+/v7/////////////////+vr6/6Ojo/8ZGBj/AAUK/wMJ + Ef8FChD/DRUb/w4VG/8IDxX/Bw4V/wgQF/8DCxL/Bg8V/wkSGP8JFBr/BAsQ/wMMEf8GERf/AAUL/wMJ + D/9DUFb/xszK//f8+f/9////9/v5//D18v/2+Pf///////z//v/5/vv//f////z+/v/7//7/+f36//v9 + /f/+/////v////P29P+xt7T/MkE//wMMCf8ACQb/AQ8M/woXFf8HEhH/AAMC/xQaGf9sc3P/zNDQ//r8 + /P//////9vf3//z7+////////vz8//78/P/////////////////39/f/+Pj4/////////////////9/f + 3/9mZmb/BgYG/wQIDv8NEhr/CQ8V/wYMFP8FDBL/CA8V/woQF/8IEBb/Bw8V/wkSGP8CCxH/AQsR/wgS + GP8PGyH/DRUZ/wAAAv8dKjD/prK3//j9+///////+f37//r+/P/8//7//f////z//v/6/vz//P/+//f8 + +v/x9fP/+v38///////4/Pr/9vv4//v+/f/9/v7/9fv5/8HRz/9EU1H/CBYT/wALCP8HEQ//DBgW/wMJ + CP8FCAb/JSwr/2NmZv/Hy8v//v7+//39/f/9+/v///////79/f/+/Pz//////////////////f39//3+ + /v/9/////f////n+/v+2u73/ChMV/wkREv8NExn/CA0T/wgPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQR + E/8ACQ3/DRkc/wcQEf8ACAv/Exod/woNDv8LCwz/gIKD//n7/P///////f39//////////////////// + ///////////////////+/////v7+//////////////////7///////////////3+/v/z9PT/6erq/3B0 + dP8JCgn/AAQC/wwWFf8FDgz/Aw4M/wYQDv8IDAr/ZG9t//X8/P/0+/r/9vr6///////6+/v//Pr6//// + ///////////////////+////+/39//v+///t8/X/kpia/wAEBv8BCgv/CxIX/wkOFP8IDxX/Bw8V/wYP + Ff8FEBT/BRAU/wQRE/8EERP/Aw0P/wgUFv8DDQ//Bg4Q/w8WF/8EBwj/LTAx/7i5uv////////////7/ + //////////////////////////////////////////////////////////////////////////////// + //////////////f19f/l5+f/g4eG/xEXFf8AAAD/BQ0N/wALCP8BCQf/Aw8M/yYzMf+vt7f/8/n5//r+ + /v/y9fT/+Pn5//7+/v////////////////////////////n7/P/6/f//3ePl/2Rpav8BAwX/AAUH/wgP + FP8KDxX/CA8V/wcPFf8GDxX/BRAU/wUQFP8EERP/BBET/wgUFf8DDhD/AAoL/w4WGP8IDQ7/CwwN/21y + c//v8PL//v/////+/v////////////////////////////////////////////////////////////// + /////////////////////////f39//Pz8//7+vr//////+bq6f+Fi4r/HyQj/wEKCP8KFRP/BhAO/wYQ + D/8ECQf/UFdW/+rx8P//////7fHw//n6+v///////////////////v///v7+///////5+/z//P7//83T + 1f81Oj3/AgkL/wMKDf8IDhT/CQ8V/wgPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQRE/8MFxn/Aw0P/wAJ + Cv8QGBr/AQQF/xkaGv+ipqj///////v9/f/+/v7///////////////////////////////////////// + //////////////////////////////////////////////39/f/19fX////////////+////6ezs/46W + lf8gKSf/AAIC/wUNC/8OGhf/CxMR/xsjIv+9xcT/+/7+//n6+f/5+/v/+/v7/////////////fz9//79 + /f//////+vv8//7///+/xcb/DxYY/wcRE/8JExX/CA8U/wkPFf8IDxX/Bw8V/wYPFf8FEBT/BRAU/wQR + E/8EERP/CRUY/wYSFf8DCg3/CRQW/wABA/8rLS7/wsbH///////4+vz//v7+//////////////////// + /////////////////////////////////////////////////////////////////////////v7+//z8 + /P//////+vz8///////r7+//gYmI/x4iIf8ABQT/BQ8M/woTEv8DCgn/eoF//+3w8P//////8/X1//Py + 8v////////////37/P/+/f7///////v8/f/9////sba4/wACA/8LExX/CRMV/wcOE/8JDxb/CA8V/wcP + Ff8GDxX/BRAU/wUQFP8EERP/BBET/wQQE/8KFhn/Bg4Q/wMPD/8CBgj/REhK/9bb3P/9/f3/+/z9//7/ + //////////////////////////////////////////////////////////////////////////////// + //////////////z9/f/6+/v/+fv6//r7+//5/Pz//////+Xp6P+QmJf/NT08/wcMC/8AAgH/CQ8O/11j + Yv/e4eD///////Hz8v/08vL//////////////f7///7///7////9/v7//P///6arrf8AAAD/CxMV/wQO + Dv8GDRL/ChAW/wcPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQRE/8DDxH/CRQX/wcQEf8CCgv/CA8Q/2Jn + aP/m6uv/+vv7//////////////////////////////////////////////////////////////////// + //////////////////////////////7+/v/4+fn/+fr6//P19f/8/f3/+fz8//f7+///////9Pr5/6+1 + tf9WXVz/MDc2/1VbWv+SmJf/4+fm///////5+/v/+/v7//////////////7////////+//////////v+ + /v+fpKb/AAAA/w0WF/8CDAz/BgwR/woQF/8HDxX/Bw8V/wYPFf8FEBT/BRAU/wQRE/8EERP/BhIU/wQP + Ef8HEBL/AQkK/wsREv90eHn/9fj5//z+/v/9/v7///////////////////////////////////////// + /////////////////////////////////////////////////////////v7+//L08//8/f3///////f6 + +f/5/Pz/9/r6//b6+v/8////19vb/7S4uP/Mz8//5urp//r9/P///////f7+//z+/v////////////// + /////v7//v7+///////6/f3/naOk/wAAAP8RGRv/BQ4P/wYMEf8KEBf/Bw8V/wcPFf8GDxX/BRAU/wUQ + FP8EERP/BBET/wsXGf8CCw3/Bw8Q/wMKC/8MERL/e4CB//z////8/f3/9/n6//7///////////////// + /////////////////////////////////////////////////////////////////////////v7+//r7 + +//9/v7/+fv7//3+/v/8//7/9Pj4//j7+//6/f3/9Pj2//v//v/5/f3//P////7////9/////v////// + ///9/v7//////////////////fz9//z8/f//////9vn5/5adn/8BBwn/Bg4Q/wUOEP8HDhP/ChAW/wgP + Ff8HDxX/Bg8V/wUQFP8FEBT/BBET/wQRE/8CDQ//CBMW/wwWGP8ABAX/Fxob/46Sk///////+/z8//7/ + ///////////////////////////////////////////////////+/v7//Pz8//7+/v////////////7+ + /v/7+/v//f39//7////5/Pz/+/79//3////9/////f7+//3+/v/+/v7///////////////////////7/ + ///+/////f////3////9/////P////////////////////38/P/5+vz//f7///j6+v+Zn6H/AAEC/wQN + D/8IDxL/CQ4T/wkPFv8IDxX/Bw8V/wYPFf8FEBT/BRAU/wQRE/8EERP/Aw4Q/wcTFf8KFBb/AAME/xcb + HP+QlJX///////v8/f/+//////////////////////////////////////////////////////////39 + /f/6+vr//Pz8//39/f/7+/v/+vr6//z8/P///////f////3////+/////f////7////+/////P39//v6 + +v/7+/v////////////+/////v////3////9/////f////z///////////////7+/f/9+/z/+fr8//v9 + /v/6/v7/oaao/wAAAP8FDhD/CxQV/wkPFP8JDxX/CA8V/wcPFf8GDxX/BRAU/wUQFP8EERP/BBET/wQP + EP8EEBL/BxAS/wACBP8XGxz/kJWW///////8/f3/+vz9//////////////////////////////////// + ///////////////////8/Pz/+Pj4//v7+//+/v7//v7+//7+/v/+/v7//v////r+/f/4/Pz/+fv7//r8 + /P/9/v7///////7//v/+/v7//v3+///////////////////////9/////f////3////8//////////// + ///+/f7//v3+//3+/v/6+/3//v///62ztf8AAAD/BQ0P/w4WGP8JEBX/CQ8V/wgPFf8HDxX/Bg8V/wUQ + FP8FEBT/BBET/wQRE/8GERP/Aw4Q/wUOEP8AAwX/Fxsc/4+Ulf///////Pz8//f5+v/+//////////// + ///////////////////////////////////+/v7//v7+//39/f/+/v7///////////////////////7/ + ///8////+/7+//z9/f/8/f3///////////////////7+///+/v///////////////////////f////3/ + ///9/////P///////////////v3+///+///+////+vv9//////+7wsP/CA0O/wIJC/8MFBb/CRAV/wkP + Ff8IDxX/Bw8V/wYPFf8FEBT/BRAU/wQRE/8EERP/CBMW/wMOEP8FDxD/AAUH/xQZGv+Lj5D///////z8 + /P/3+Pn//v///////////////////////////////////////////////v7+//////////////////// + ///9/f3//Pz8//38/P/7+/z/+Pr7//r9/P/9/v7//P7+//38/P/8+/v//fv8///8/P///f3///////// + //////////////3////9/////f////v///////////////79/f///v7//v////j6+///////y9HS/yQq + LP8ABAT/Bg4P/wkQFf8JDxX/CA8V/wcPFf8GDxX/BRAU/wUQFP8EERP/BBET/woVF/8DDhD/BxES/wEI + Cf8QFhf/gYWG//v9/f/8/v3/+fr7//////////////////////////////////////////////////39 + /f/////////////////9/f3/+/v7//v7+//8/Pz//Pz8//b5+f/4/Pz//P7+//z+/v/8/Pz/+/r6//36 + +v///P3///7////+/////v/////////////9/////f////z////6///////////////+/f7///7///3/ + ///3+fv//v///9vi5P9NUlP/AQEC/wIKC/8JEBX/CQ8V/wgPFf8HDxX/Bg8V/wUQFP8FEBT/BBET/wQR + E/8KFRj/AQ4Q/wgSFP8ECgv/CxAR/3J2eP/x9fX//f7+//v9/v////////////////////////////// + ///////////////////7+/v//v7+//7+/v/+/v7//Pz8//7+/v////////////////////////////// + //////////////////////////3+///+/v///v////7//////////////f////3////8////+v////// + //////////3+///9///+/v//+vz+///////q8fP/dXp8/wEDBP8ECw3/ChEX/wkOFP8IDxX/Bw8V/wYP + Ff8FEBT/BRAU/wQRE/8EERP/CBQX/wAMDv8JExX/BgsM/wUICf9kaGr/5+rs//r9/v/8/v////////// + ////////////////////////////////////////+/v7//39/f/9/f3//f39//////////////////v5 + +v/u7u7/6/Hv/+ju7P/q7Oz/7/Hx//v7/P/////////////8/f//+vv///7////+/////v////7///7/ + ///+/////f////r///////////////////////////////3/////////8vf4/5OZm/8DCAn/Bw8Q/wwT + Gf8IDRX/CA8V/wcPFf8GDxX/BRAU/wUQFP8FERP/BBET/wcTFf8BCw3/CRMV/wcLDP8CBAX/Wl9f/97i + 4//5+/z//f////////////////////////////////////////////////////////////////////// + ////////+fr6/+Xl5v/MzMz/ra6u/3V7ev92e3v/hIaG/5yenv/Avr7/5ODh//n5+f/////////////+ + ///+/f7///7////+///+/////v////3////6///////////////+/v7///////39/f/9/Pz//v7+//j4 + +P/AwMH/ISEh/wkICP8KEhj/CBIa/wcPF/8HEBf/Bg4W/wAHDf8CCg//DhUZ/wkQFf8HDA//DBET/xIW + F/8OERL/AAID/0FEQ//Nz87///////j6+f/6/v7/+v////v////8/////f/+//7//v/+//7////9//7/ + /f/5+/r///////n8/f//////3eLm/4SMkf8xOT//CxQc/w4WHv8QGBz/AwYK/w0VF/8PGBv/BgYJ/ysw + Mv+boqT/8PT2//7////7/f3/7O/w//7+/v/6+/v//f39/////////////f39/////////////Pz8//7+ + /v/+/v7//f39///////+/v7/3Nzc/0pKSv8IBwf/AgkQ/wINFv8BChH/BA0U/wkRGf8HDhT/BAwR/wkQ + FP8JDxT/DxQX/w0RFP8MEBL/DxIT/wAAAP8xMzP/xMfG///////+/v7/+v////r////8/////P////3/ + /v/+//7//v/+/////f////3//v7+//v8+v/9////y87Q/15laP8QFxz/BAoR/wEMFP8ABQz/BhAT/wQM + Ef8BCw7/BxAT/woRE/8CBgn/HyMm/4CFh//i5eb///////n9/f///////f7+///////+/f3//v7+//7+ + /v////////////39/f/+/v7///////39/f/8/Pz///////b29v+Ghob/EA4P/wAFC/8DDRX/AQgP/wIL + Ev8LExn/DRQa/wYNE/8ECg7/ChEV/xQaHf8MEBP/BgsN/xAUFv8AAQH/ICEh/6uurf/9//7///////r/ + ///6/////P////z////9//7//v/+//7//v////3////9//////////7/7O/x/2twcv8LDA//AAAF/wAI + Dv8IERj/CRIY/wMMEP8SGx//AwoO/wIHCv8SGh3/CAsO/wAAAP8fIiT/iY6Q/+/y8v/+/////v7+//// + /////////fv7//38/P/////////////////+/v7//f39///////9/f3/+vr6////////////v8DA/y4u + Lf8ABwz/Aw0W/wgPF/8GDxb/CA8W/w0UGv8IDRP/AggN/w4VGv8SFhr/Cg8R/wYKDP8UFxr/CAkL/wwN + Df99gID/9/r5//z+/v/6/v7/+v////v////8/////f/+//7//v/+//7////9//7+/P/6+/r/+vv6/7K1 + tv8mKCr/AAAA/xIZHv8LERf/AggP/w0WHf8EDRD/CBEV/wIKDv8ABgn/CREU/w8VGP8OEhT/AAIE/y4x + Mv++wcL//v////z9/f/+/v7//f39//v6+v/+/f3///////////////////////39/f/+/v7//v7+//39 + /f/+/v7//////+zt7f9ra2r/CA0S/wEFDP8MFRz/ChIZ/wILEf8JEBX/CRAV/wIJDv8RFxz/Cw4S/wwR + E/8JDQ//ERQX/xIUFv8BAQH/SEtM/+3x8f/7/f7/+v7+//r////7/////P////3//v/+//7//v/+//// + /f////3/+/z7/+/w7/94fH3/EBIT/wADB/8NFRr/CxIY/wQLE/8JEhr/ChMW/wACB/8EDRD/EBkd/wYO + Ef8HDA//Exsd/wUICv8FBQf/d3t8//L19v/+/v7//v7+//r6+f/7+/v///////7+/v////////////// + ///8/Pz//Pz8/////////////v7+//z8/P//////tbS0/yImLP8AAAL/CBAV/wgRFv8BCA3/Bw0S/w0T + GP8ECg7/DhQY/wYKDv8PFBj/DBET/wgNDv8TGBr/AAEB/yMlJ//W2tv//P////r////6////+/////z/ + ///9//7//v/+//7//v////3////9///////z9PP/Y2do/wwQEv8CBwv/AgcM/wYOFP8IEhr/BQ4W/woT + F/8BBAf/CBAT/xYhI/8KEhX/AAQH/wYND/8LDxH/AgMF/zk9Pf/X2tv////////////7+vr//f39//// + ///9/f3/////////////////+/v7//z8/P////////////7+/v/6+vr//////+3s7P9iaW7/DBEY/wIH + Df8EDBH/AwoP/wkOEv8PFRr/BAoO/woQFP8GCw//EBUa/w4TFv8DCAn/DhMW/wMGCP8SEhT/oKSl//f7 + +//7////+f////z////8/////f/+//7//v/+//7////9//7+/P/4+vj//////2ZrbP8GCQv/CA0R/w4U + G/8HDRP/BAoS/wMMFP8DDRH/CBMW/wkSFv8HDhL/CRAT/wkQFP8GCw7/CxAS/wMHCf8XGRv/tri6//7+ + /v///////v7+///+/v///////v39//////////////////39/f/9/f3//////////////////f39//7+ + /v//////wsbI/0RLUP8ABQr/AwkO/wgOEv8KEBT/DxUZ/wEHC/8JDxP/BgwP/wwQFP8PFBf/BQoM/wgO + Ef8KDRD/BAYJ/1FWWf/j6Or/+/////n+/v/8/////P////3//v/+//7//v/9/////v/+/vz/7/Dv//v8 + /P9xdXb/CAkL/wsOE/8THCL/BQkO/wIDC/8CCxP/AgsP/xAZHf8IERX/AQQI/wcNEP8SGh3/DxQX/w0S + FP8CBwn/CgwN/5SXmP/4+fn///////7//////v7//v39///+/f////////////7+/v////////////39 + /f/9/f3///////7+/v/7+/v//Pz8//////+IjpH/DhQZ/wIIDP8JDxP/CxEV/wsRFf8ABwv/DBIV/wgO + Ef8FCg7/DhMW/woPEv8IDQ//ERYZ/wEGCf8VGh7/wMXI//r////7////+v7///z////9//7//v/+//7/ + /v////3//v78///////t7e3/j5KT/xseH/8ABQn/Bw8U/wEID/8LExz/DBYd/wcQE/8EDRH/Bg8S/woU + GP8KEhX/Bg4Q/wQJDP8LERP/BQoM/wgJC/95e3z/7O3t//v9/f/+/v7//fz8//n49//8+/r///////// + ///////////////////////////////////////////////////9////7PHy/291eP8DBQj/CQsN/xQZ + HP8AAwb/CA8S/xAWGf8RFxv/Bw4S/wADB/8GCg7/Ehke/wwRFf8AAgb/EBYb/1FXW//y9vb///////P2 + 9//3+/v//f/+/////////////f37//Lz8P///////////7zAwv8mJyj/AAAC/xYdJP8KERj/AAkR/wYO + Fv8ABQn/CBEV/wwVGf8KExb/DRUY/w4VGP8IDhD/BwwP/wQICf8EBQb/X2Jj//f5+f/29/f/+Pj4//// + ///8/Pv//fz7////////////////////////////////////////////////////////////8fX3//z/ + ///X293/UlZZ/wAAAP8OExf/HCAj/wAAA/8QFRj/AwkN/w0SFv8RFhr/BAoO/wMIDf8GDBH/CQ4S/wMJ + Df8TGR7/yM3O/+zw8v/2+Pn//P////f6+f/+/v7/+/v7//Hy7//+/v7////////////m6ur/YGVm/wYH + C/8HCg//CBAW/wIMFf8PGCD/DRYZ/wYPE/8CCg7/AQkM/wUOEP8LEhX/CxIU/xAXGP8JDQ//BQYH/3By + dP/6+vr//Pz9//r6+////////fz8//37+/////////////////////////////////////////////// + //////////////v8/f/t8PH/9fj5/83S0v9ISkv/AAAA/w0PEf8aHiH/BwwP/wMJDf8PFBf/DhQZ/wUM + Ef8HDhP/DxYc/w0UGv8CCg//AgkP/1FVWP/f5ef///////P19f/3+fn///////f5+P/x8u7/9/j2//n7 + +f/7/Pr/8/f4/6GmqP8hIib/AAAE/xAZH/8CCxL/BQ0U/xAaHf8EDRH/AQkM/wQMEP8FDRD/Bw8S/woQ + Ev8NFBb/AgUH/woICf+MjpD/+fr7///////9/f////////79/f/+/Pv///////////////////////// + ////////////////////////////////////////9fj5//n9/P//////tbm6/zg6O/8AAAH/Cw8S/wMH + Cv8LERX/CxAU/wMJDv8CCg7/ChEW/w0UG/8HDhT/AwsR/wUNE/8IDQ//mZ2g//X3+P/19/f/8/b1//// + ///9/fz/+vv4//z8+//7/fz//f39//v+/v/i5ef/Uldb/wAAAf8HCxH/AAgQ/wEJEf8HEBT/Aw0Q/wkS + Fv8NFhn/Bw8S/wUMD/8LEBP/DBIU/wAAAf8SFBX/qaut//f5+f///////fz9//7+/v///v7///39//// + ////////////////////////////////////////////////////////+vz7//3////+////+vz8/+/y + 8/+5vb7/TlJU/wAAAv8AAAD/CA4S/woQFf8IDxX/Bg4T/wYME/8HDhX/Bw8V/wYOFf8DCxL/BgsM/zQ4 + Ov+vs7T/+Pv6//v8+//5+/n/+/v6/////v/9/fv////////////09/j//f///5ifo/8aICX/AAMJ/wcQ + Gf8CDBT/AgsP/wcRFP8OFxv/CxMX/wMKDf8GDQ//DxYY/wwRE/8DBgj/Oj0+/8rNzv/4+fj///////r6 + +f/9/Pz///////////////////////////////////////////////////////////////////////r8 + +//5+vr/+/z8//b5+f/6/f3//////8LGyf9WW17/Fhkb/wIIDP8ECAz/CQ0T/woRF/8IDxb/Bw8W/woT + Gv8KExz/BQwV/w4TFf8CBgj/RkpL/7/Dwv///////v/+//n6+f//////9/j1////////////8PT1//3/ + ///b4OT/W2Jn/wkRF/8PFyD/AQcP/wQNEf8KFBj/CRIW/wIKD/8DCg3/CRAS/wwUFv8DBQb/DBIU/4GE + hf/q7e7/+/z8///////6+fr//Pz8//////////////////////////////////////////////////// + ///////////////////+/v7/+vv7//T29v/5+/v//v////X5+v/y9vj/3eHj/3l/gf8oLjT/BgkO/wAA + A/8EChD/DRQb/wcOFf8ECRD/Bw8Z/w0VHf8LERP/BQkM/wQICf9JTU3/t7m5//T09P/9/v3//Pz6//// + /v/5+vn/////////////////5Ort/211ev8NExn/ChEZ/wEFDf8EDRH/ChQY/wQNEP8BCQ3/CxIW/woR + FP8ECw3/BQYG/zU7Pf/Kzc7//P7///7//////////fz8//3+/f////////79//////////////////// + ////////////////////////////////////////+vv7//39/f/09fX/9Pb2//39/f/09/j/8fT0//v/ + ///n7O3/lZqe/0pQVf8UGiL/AgoQ/wEJEP8AAgn/AQIJ/wMLFf8HERn/DRMV/wcLDv8FCQr/AAAA/y4w + MP+UlJP/ycvJ/9XW0//y8vH/7e/u//Lz8//u7u7/0dXV/4uPlP8uNTv/AAQJ/wMJEf8GDxf/AQsP/wwV + Gf8EDRD/AwwP/w8XGv8DCw3/AQcJ/zU8Pf+ZnZ//9fj5//3////8/f7//v7+//7+/f/+//7///7+//79 + /P/////////////////////////////////////////////////////////////////y9PP/+Pr5//39 + /f/y9vb/+/7+//z+/v/r8PL//P/////////Kz9L/eH6E/zM7Qf8LDxT/AwQL/wkTG/8NFR7/AAML/wMI + Cv8LEBL/EhYX/xUYGv8FCAj/AAAA/zM1M/9zdHL/hISD/76/vv+UlZT/cnV2/zo/Qv8FBwv/AQQK/woS + Gf8FDhb/BxAW/wcPE/8OFhr/AgoN/wAHCv8JEBP/BQsO/x8kJ/+Umpz///////3//v/9////+Pn5//n6 + +v/+/v7///////7+/f/+/fz///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////v7+//Pz8//gYGB/zw8 + PP8SExP/AgID/wAAAP8GDQ//BQ4Q/wQND/8HEBL/CxMU/woTFP8FDQ7/AQUG/wECA/8CAwX/AQID/wEE + Bf8EDA7/DBYY/w8YGv8LExT/AgwN/wIKC/8REBD/Dg0N/wICAv8AAAD/FRUV/1tbW/+1tbX/8fHx//// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////////////////////////////////////9fX1//z8 + /P///////v79//Lx8f/T09P/oKCg/2ZmZf83Nzf/Bg0P/wADBf8AAAD/AAAA/wAAAP8AAwX/AAkL/wEK + DP8EDA7/DRUX/wgREv8DDA7/AgoM/wIKDP8BBwj/AAQF/wAICv8BCAr/AAAA/wYGBv8hISH/T09P/5GR + kf/Y2Nj/+/v7//r6+v/09PT///////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////39/f/+/v7///////////////////////T09P/b29v/ubm6/4qRk/9yeXv/WF1e/zg8 + Pv8dISP/CQ4Q/wAEBf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wULDf8WHR//Ki8x/1JS + Uv96enr/rq6u/9ra2v/y8vL////////////+/v7//Pz8//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////////////////////9/f3////////////7+/v/+Pj4//v7+/////////////v7 + /P/r8fH/4ujp/8zT1P+xuLn/m6Kk/4yTlf+CiIr/fYOF/3l+f/9obG7/a29x/3F1d/93e37/eoCC/4CH + if+PlZf/oqmq/7W7vf/T0tL/5ubm//r6+v////////////39/f/5+fn//f39//////////////////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////Pz8//7+/v///////f39//r6 + +v/7+/v////////////7+/v////////////+////+Pv8//T3+P/x9PX/7/Lz/+7y8//r7/H/4OXn/+Lm + 6P/o7O3/7O/w/+3w8f/v8vP/8vb3//r9/v/////////////////6+vr//Pz8///////9/f3/+/v7//r6 + +v/7+/v///////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////7+ + /v///////v7+//39/f/9/f3////////////+/v7/+Pj4//z9/v/9/v////////////////////////// + ///////////////////////////////////////////////////////////////////7+/v/9/f3//z8 + /P///////v7+//z8/P/7+/v/+vr6//////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ///////////////////9/f3//f39//39/f/7+/v/+vr6//z8/P/+/v7////////////7/f7//P7///7/ + ///+/////v7///7+/v/+/v7//v7+//7+/v/9/v//+fv8//j6+//7/f3//v////7+///9/f7//f7+//7/ + ///+/v7///////7+/v/7+/v/+/v7//r6+v/5+fn//v7+//////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////////////////////////////////////+fn5//r6+v/+/v7///////7+/v/7+/v/+/v7//// + ///+/v7///7+///+///////////////9/v/++/z//fv8//37/P/9/P3///7+//////////////////// + /////v///vz9//79/f///////v7+//7+/v/5+fn/9PT0//X19f/7+/v////////////+/v7///////// + //////////////////////////////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////f39//7+ + /v/////////////////+/v7//Pz8//z7/P/+/P3///7////+/////v////7////+//////////////37 + /P/9/P3///////////////////7///78/v///f///v/+//v7+/////////////////////////////// + ///9/f3/+/v7//////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////7////+/////v////7////+//// + /v////7////+/////v////7////+/////v////7////+/////v////7////+/////v////////////// + //////////////////////////////////////////////////////////////////////////////// + ////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + + + \ No newline at end of file diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.vb b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.vb new file mode 100644 index 00000000..de1c5379 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/Forms/form_Main.vb @@ -0,0 +1,130 @@ +Public Class form_Main + + Private _s As clsSettings + + ''' + ''' Constructor + ''' + ''' + ''' + Public Sub New(p_s As clsSettings) + InitializeComponent() + ' Widen Scope + _s = p_s + End Sub + +#Region "Form Controls & Events" + + Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click + + ' Start Time + Dim m_time As String = Now().ToString + + ' Run Test + Dim t As New clsAutomationTest(_s) + + If t.Test1 = True Then + + ' Success + AppendLog("Command 1", m_time, Now().ToString, "") + + Else + + ' Failure + AppendLog("Command 1 - Failed", m_time, Now().ToString, "X") + + End If + + End Sub + + Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click + + ' Start Time + Dim m_time As String = Now().ToString + + ' Run Test + Dim t As New clsAutomationTest(_s) + + If t.Test2 = True Then + + ' Success + AppendLog("Command 2", m_time, Now().ToString, "") + + Else + + ' Failure + AppendLog("Command 2 - Failed", m_time, Now().ToString, "X") + + End If + + End Sub + + Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click + + ' Start Time + Dim m_time As String = Now().ToString + + ' Run Test + Dim t As New clsAutomationTest(_s) + + If t.Test3 = True Then + + ' Success + AppendLog("Command 3", m_time, Now().ToString, "") + + Else + + ' Failure + AppendLog("Command 3 - Failed", m_time, Now().ToString, "X") + + End If + + End Sub + + Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click + + ' Start Time + Dim m_time As String = Now().ToString + + ' Run Test + Dim t As New clsAutomationTest(_s) + + If t.Test4 = True Then + + ' Success + AppendLog("Command 4", m_time, Now().ToString, "") + + Else + + ' Failure + AppendLog("Command 4 - Failed", m_time, Now().ToString, "X") + + End If + + End Sub + + Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click + + ' Start Time + Dim m_time As String = Now().ToString + + ' Run Test + Dim t As New clsAutomationTest(_s) + + If t.Test5 = True Then + + ' Success + AppendLog("Command 5", m_time, Now().ToString, "") + + Else + + ' Failure + AppendLog("Command 5 - Failed", m_time, Now().ToString, "X") + + End If + + End Sub + +#End Region + +End Class \ No newline at end of file diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Application.Designer.vb b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Application.myapp b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/AssemblyInfo.vb b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..1bff7a12 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + + + + + + + + + + +'The following GUID is for the ID of the typelib if this project is exposed to COM + + +' Version information for an assembly consists of the following four values: +' +' Major Version +' Minor Version +' Build Number +' Revision +' +' You can specify all the values or you can default the Build and Revision Numbers +' by using the '*' as shown below: +' + + + diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Resources.Designer.vb b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Resources.Designer.vb new file mode 100644 index 00000000..17f572a0 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Resources.Designer.vb @@ -0,0 +1,62 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My.Resources + + 'This class was auto-generated by the StronglyTypedResourceBuilder + 'class via a tool like ResGen or Visual Studio. + 'To add or remove a member, edit your .ResX file then rerun ResGen + 'with the /str option, or rebuild your VS project. + ''' + ''' A strongly-typed resource class, for looking up localized strings, etc. + ''' + _ + Friend Module Resources + + Private resourceMan As Global.System.Resources.ResourceManager + + Private resourceCulture As Global.System.Globalization.CultureInfo + + ''' + ''' Returns the cached ResourceManager instance used by this class. + ''' + _ + Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager + Get + If Object.ReferenceEquals(resourceMan, Nothing) Then + Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Case.AppName._2023.Resources", GetType(Resources).Assembly) + resourceMan = temp + End If + Return resourceMan + End Get + End Property + + ''' + ''' Overrides the current thread's CurrentUICulture property for all + ''' resource lookups using this strongly typed resource class. + ''' + _ + Friend Property Culture() As Global.System.Globalization.CultureInfo + Get + Return resourceCulture + End Get + Set(ByVal value As Global.System.Globalization.CultureInfo) + resourceCulture = value + End Set + End Property + End Module +End Namespace diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Resources.resx b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Resources.resx new file mode 100644 index 00000000..af7dbebb --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Resources.resx @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Settings.Designer.vb b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Settings.Designer.vb new file mode 100644 index 00000000..d43e9324 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Settings.Designer.vb @@ -0,0 +1,73 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + + +Namespace My + + _ + Partial Public NotInheritable Class MySettings + Inherits Global.System.Configuration.ApplicationSettingsBase + + Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings) + +#Region "My.Settings Auto-Save Functionality" +#If _MyType = "WindowsForms" Then + Private Shared addedHandler As Boolean + + Private Shared addedHandlerLockObject As New Object + + _ + Private Shared Sub AutoSaveSettings(sender As Global.System.Object, e As Global.System.EventArgs) + If My.Application.SaveMySettingsOnExit Then + My.Settings.Save() + End If + End Sub +#End If +#End Region + + Public Shared ReadOnly Property [Default]() As MySettings + Get + +#If _MyType = "WindowsForms" Then + If Not addedHandler Then + SyncLock addedHandlerLockObject + If Not addedHandler Then + AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings + addedHandler = True + End If + End SyncLock + End If +#End If + Return defaultInstance + End Get + End Property + End Class +End Namespace + +Namespace My + + _ + Friend Module MySettingsProperty + + _ + Friend ReadOnly Property Settings() As Global.[Case].FreeBenchmarking.My.MySettings + Get + Return Global.[Case].FreeBenchmarking.My.MySettings.Default + End Get + End Property + End Module +End Namespace diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Settings.settings b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Settings.settings new file mode 100644 index 00000000..85b890b3 --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/My Project/Settings.settings @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/app.config b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/app.config new file mode 100644 index 00000000..ea1d4ebd --- /dev/null +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.2026/app.config @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.sln b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.sln index a9d4b101..6daa00d5 100644 --- a/src/Case.FreeBenchmarking/Case.FreeBenchmarking.sln +++ b/src/Case.FreeBenchmarking/Case.FreeBenchmarking.sln @@ -7,6 +7,8 @@ Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Case.FreeBenchmarking.Share EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.FreeBenchmarking.2023", "Case.FreeBenchmarking.2023\Case.FreeBenchmarking.2023.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}) = "Case.FreeBenchmarking.2026", "Case.FreeBenchmarking.2026\Case.FreeBenchmarking.2026.vbproj", "{A1F8439A-C5C2-471B-A049-647172C3A461}" +EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.FreeBenchmarking.2021", "Case.FreeBenchmarking.2021\Case.FreeBenchmarking.2021.vbproj", "{26048183-F5F8-40AE-96DF-79129E55F5B4}" EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Case.FreeBenchmarking.2022", "Case.FreeBenchmarking.2022\Case.FreeBenchmarking.2022.vbproj", "{BDA1608D-3185-4B34-B90C-AD2AEA2BB066}" diff --git a/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/Case.HiddenParameterToParameter.2026.vbproj b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/Case.HiddenParameterToParameter.2026.vbproj new file mode 100644 index 00000000..fda0227c --- /dev/null +++ b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/Case.HiddenParameterToParameter.2026.vbproj @@ -0,0 +1,129 @@ + + + + + Debug + AnyCPU + {D282F79A-A675-420C-B02B-8C4652FA85BE} + Library + Case.HiddenParameterToParameter + Case.HiddenParameterToParameter + 512 + Windows + v4.8 + true + + + true + full + true + true + bin\Debug\ + Case.HiddenParameterToParameter.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + pdbonly + false + true + true + bin\Release\ + Case.HiddenParameterToParameter.2026.xml + 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + Revit2026 + + + On + + + Binary + + + Off + + + On + + + + C:\Program Files\Autodesk\Revit 2026\RevitAPI.dll + False + + + C:\Program Files\Autodesk\Revit 2026\RevitAPIUI.dll + False + + + + + + + + + + + + + + + + + + + + + + + + + + True + Application.myapp + + + True + True + Resources.resx + + + True + Settings.settings + True + + + form_Main.vb + + + Form + + + + + VbMyResourcesResXFileCodeGenerator + Resources.Designer.vb + My.Resources + Designer + + + form_Main.vb + + + + + MyApplicationCodeGenerator + Application.Designer.vb + + + PublicSettingsSingleFileGenerator + My + Settings.Designer.vb + + + + + + + + + \ No newline at end of file diff --git a/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/Application.Designer.vb b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/Application.Designer.vb new file mode 100644 index 00000000..88dd01c7 --- /dev/null +++ b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/Application.Designer.vb @@ -0,0 +1,13 @@ +'------------------------------------------------------------------------------ +' +' This code was generated by a tool. +' Runtime Version:4.0.30319.42000 +' +' Changes to this file may cause incorrect behavior and will be lost if +' the code is regenerated. +' +'------------------------------------------------------------------------------ + +Option Strict On +Option Explicit On + diff --git a/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/Application.myapp b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/Application.myapp new file mode 100644 index 00000000..758895de --- /dev/null +++ b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/Application.myapp @@ -0,0 +1,10 @@ + + + false + false + 0 + true + 0 + 1 + true + diff --git a/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/AssemblyInfo.vb b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/AssemblyInfo.vb new file mode 100644 index 00000000..475cef29 --- /dev/null +++ b/src/Case.HiddenParameterToParameter/Case.HiddenParameterToParameter.2026/My Project/AssemblyInfo.vb @@ -0,0 +1,35 @@ +Imports System +Imports System.Reflection +Imports System.Runtime.InteropServices + +' General Information about an assembly is controlled through the following +' set of attributes. Change these attribute values to modify the information +' associated with an assembly. + +' Review the values of the assembly attributes + +