From f761ff2ed63eeba1a40ca30f8ec00e31b901cd78 Mon Sep 17 00:00:00 2001 From: AnD Date: Fri, 15 May 2026 16:26:08 -0600 Subject: [PATCH] Bug fix: network interfaces team. --- FormConfiguration.cs | 83 +-- .../20260515/PS/3D USI screensaver.ps1 | 3 + .../20260515/PS/ACC8 Antivirus Exclusions.ps1 | 38 ++ .../20260515/PS/Avigilon Servername.ps1 | 1 + .../20260515/PS/Firewall Rule.ps1 | 33 ++ .../20260515/PS/Folder Options.ps1 | 62 +++ ...workInterfacePowermanagementDisableALL.ps1 | 8 + .../20260515/PS/Power Options.ps1 | 8 + .../20260515/PS/Remote Desktop Enable.ps1 | 9 + .../20260515/PS/Windows Update Restart.ps1 | 49 ++ .../20260515/profile.json | 520 ++++++++++++++++++ .../20260515/tasklist.json | 310 +++++++++++ bin/Debug/FHT.exe | Bin 452608 -> 453120 bytes bin/Debug/FHT.pdb | Bin 128512 -> 128512 bytes bin/Debug/PS/ACC8 Antivirus Exclusions.ps1 | 38 ++ bin/Debug/PS/Avigilon Servername.ps1 | 1 + bin/Debug/PS/Firewall Rule.ps1 | 33 ++ bin/Debug/PS/Folder Options.ps1 | 62 +++ ...workInterfacePowermanagementDisableALl.ps1 | 8 + bin/Debug/PS/Power Options.ps1 | 8 + bin/Debug/PS/Remote Desktop Enable.ps1 | 9 + bin/Debug/PS/Windows Update Restart.ps1 | 49 ++ bin/Debug/profile.json | Bin 13508 -> 14212 bytes bin/Debug/tasklist.json | Bin 7924 -> 7924 bytes profile.json | 9 +- 25 files changed, 1304 insertions(+), 37 deletions(-) create mode 100644 Unencrypted PS and Json files/20260515/PS/3D USI screensaver.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/ACC8 Antivirus Exclusions.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/Avigilon Servername.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/Firewall Rule.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/Folder Options.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/NetworkInterfacePowermanagementDisableALL.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/Power Options.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/Remote Desktop Enable.ps1 create mode 100644 Unencrypted PS and Json files/20260515/PS/Windows Update Restart.ps1 create mode 100644 Unencrypted PS and Json files/20260515/profile.json create mode 100644 Unencrypted PS and Json files/20260515/tasklist.json create mode 100644 bin/Debug/PS/ACC8 Antivirus Exclusions.ps1 create mode 100644 bin/Debug/PS/Avigilon Servername.ps1 create mode 100644 bin/Debug/PS/Firewall Rule.ps1 create mode 100644 bin/Debug/PS/Folder Options.ps1 create mode 100644 bin/Debug/PS/NetworkInterfacePowermanagementDisableALl.ps1 create mode 100644 bin/Debug/PS/Power Options.ps1 create mode 100644 bin/Debug/PS/Remote Desktop Enable.ps1 create mode 100644 bin/Debug/PS/Windows Update Restart.ps1 diff --git a/FormConfiguration.cs b/FormConfiguration.cs index d59d772..006c670 100644 --- a/FormConfiguration.cs +++ b/FormConfiguration.cs @@ -68,63 +68,74 @@ namespace FHT private void buttonTasklistEnc_Click(object sender, EventArgs e) { Utilities utilities = new Utilities(log); + //Enable selecting multiple files + openFileDialog.Multiselect = true; + + if (openFileDialog.ShowDialog() == DialogResult.OK) { - string Jsonfilename = openFileDialog.FileName; - string buttonTasklistPath = openFileDialog.SafeFileName; - if (File.Exists(Jsonfilename)) + string[] Jsonfilenames = openFileDialog.FileNames; + foreach (string Jsonfilename in Jsonfilenames) { - try + if (File.Exists(Jsonfilename)) { - //read tasklist data from file - string sData = File.ReadAllText(Jsonfilename); - log.Info(string.Format("Read {0} to String", Jsonfilename)); - //encrypt data - byte[] bData = Utilities.EncryptStringAES(sData, aes.Key); + try + { + //read tasklist data from file + string sData = File.ReadAllText(Jsonfilename); + log.Info(string.Format("Read {0} to String", Jsonfilename)); + //encrypt data + byte[] bData = Utilities.EncryptStringAES(sData, aes.Key); - //write encrypted data to file - File.WriteAllBytes(Jsonfilename, bData); + //write encrypted data to file + File.WriteAllBytes(Jsonfilename, bData); + } + catch (Exception ex) + { + //could not read tasklist.json properly + log.Error(string.Format("Could not load {0} for encrypting", Jsonfilename)); + log.Error(ex); + } } - catch (Exception ex) - { - //could not read tasklist.json properly - log.Error(string.Format("Could not load {0} for encrypting", Jsonfilename)); - log.Error(ex); - } - - } + } + //disable multiselect + openFileDialog.Multiselect = false; } private void buttonTasklistDec_Click(object sender, EventArgs e) { Utilities utilities = new Utilities(log); + //Enable selecting multiple files + openFileDialog.Multiselect = true; if (openFileDialog.ShowDialog() == DialogResult.OK) { - string JsonFileName = openFileDialog.FileName; - string buttonTasklistPath = openFileDialog.SafeFileName; - if (File.Exists(JsonFileName)) + string[] Jsonfilenames = openFileDialog.FileNames; + foreach (string JsonFileName in Jsonfilenames) { - try + if (File.Exists(JsonFileName)) { - //read json data from file - byte[] bData = File.ReadAllBytes(JsonFileName); - - //decrypt data and save to file + try + { + //read json data from file + byte[] bData = File.ReadAllBytes(JsonFileName); + + //decrypt data and save to file + + File.WriteAllText(JsonFileName, Utilities.DecryptStringFromBytes(bData, aes.Key)); + + } + catch (Exception ex) + { + //could not read tasklist.json properly + log.Error(string.Format("Could not load {0} for encrypting", JsonFileName)); + log.Error(ex); + } - File.WriteAllText(JsonFileName, Utilities.DecryptStringFromBytes(bData, aes.Key)); } - catch (Exception ex) - { - //could not read tasklist.json properly - log.Error(string.Format("Could not load {0} for encrypting", JsonFileName)); - log.Error(ex); - } - - } } } diff --git a/Unencrypted PS and Json files/20260515/PS/3D USI screensaver.ps1 b/Unencrypted PS and Json files/20260515/PS/3D USI screensaver.ps1 new file mode 100644 index 0000000..d818439 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/3D USI screensaver.ps1 @@ -0,0 +1,3 @@ +REG ADD "HKEY_CURRENT_USER\Control Panel\Desktop" /v ScreenSaveActive /t REG_SZ /d 1 /f +REG ADD "HKCU\Control Panel\Desktop" /v SCRNSAVE.EXE /t REG_SZ /d "C:\WINDOWS\system32\sstext3d.scr" /f +REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Screensavers\ssText3d" /v DisplayString /t REG_SZ /d "Unified Systems Inc." /f diff --git a/Unencrypted PS and Json files/20260515/PS/ACC8 Antivirus Exclusions.ps1 b/Unencrypted PS and Json files/20260515/PS/ACC8 Antivirus Exclusions.ps1 new file mode 100644 index 0000000..60268e5 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/ACC8 Antivirus Exclusions.ps1 @@ -0,0 +1,38 @@ +#Add exclusions +Add-MpPreference -ExclusionProcess "C:\Program Files\Avigilon\Avigilon Control Center Server\VmsAdminPanel.exe", +"C:\Program Files\Avigilon\Avigilon Unity Server\VmsAdminPanel.exe", +"C:\Program Files\Avigilon\Avigilon Unity Server\VmsAdminPanelLauncher.exe", +"C:\Program Files\Avigilon\Avigilon Unity Server\VmsDaemonService.exe", +"C:\Program Files\Avigilon\Avigilon Unity Daemon\VmsDaemon.exe", +"C:\Program Files\Avigilon\Avigilon Unity Core\VmsCore.exe", +"C:\Program Files\Avigilon\Avigilon Unity Server\VmsUpgraderApp.exe", +"C:\Program Files\Avigilon\Avigilon Unity Server\LPR6\LprDaemonApp.exe", +"C:\Program Files\Avigilon\Avigilon Unity Device Management\VmsDeviceManagement.exe", +"C:\Program Files\Avigilon\Avigilon Unity Analytics Add-on\AnalyticsDaemonService.exe", +"C:\Program Files\Avigilon\Avigilon Unity Client\VmsClientApp.exe", +"C:\Program Files\Avigilon\Avigilon Unity Client Framework\AvigilonUnityClientFramework.exe", +"C:\Program Files\Avigilon\Avigilon Unity Web Endpoint\WebEndpointService.exe", +"C:\Program Files\Avigilon\Avigilon Unity Web Endpoint\node.exe", +"C:\Program Files\Avigilon\Avigilon Unity API Gateway\VmsApiGateway.exe", +"C:\Program Files\Avigilon\Avigilon Unity Cloud Bridge\VmsCloudBridge.exe", +"C:\Program Files\Avigilon\Avigilon Unity Orchestrator Service\VmsOrchestratorService.exe", +"C:\Program Files\Avigilon\Avigilon Unity Virtual Matrix\VmsVirtualMatrixApp.exe", +"C:\Program Files\Avigilon\Avigilon Unity Software Manager\Service\VmsLocalUpdaterService.exe", +"C:\Program Files\Avigilon\Avigilon Unity Player\VmsPlayerApp.exe", +"C:\Program Files (x86)\Avigilon\Avigilon Unity Player\VmsPlayerApp.exe" +Add-MpPreference -ExclusionExtension ".avd" +Add-MpPreference -ExclusionPath "$Env:programdata\Avigilon", +"$Env:appdata\Avigilon", +"$Env:localappdata\Avigilon", +"C:\Program Files\Avigilon", +"D:\AvigilonData", +"E:\AvigilonData", +"D:\AvigilonConfig", +"C:\AvigilonConfig" + +#Check what is already excluded +Get-MpPreference | Select-Object -Property ExclusionExtension -ExpandProperty ExclusionExtension +Get-MpPreference| Select-Object -Property ExclusionPath | Format-table -wrap +Get-MpPreference | Select-Object -Property ExclusionProcess | Format-list + + diff --git a/Unencrypted PS and Json files/20260515/PS/Avigilon Servername.ps1 b/Unencrypted PS and Json files/20260515/PS/Avigilon Servername.ps1 new file mode 100644 index 0000000..fa7622a --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/Avigilon Servername.ps1 @@ -0,0 +1 @@ +Select-String -Path "C:\ProgramData\Avigilon\Avigilon Unity Core\Logs\VmsCore.clef" -Pattern "Acc.ServerName" -List \ No newline at end of file diff --git a/Unencrypted PS and Json files/20260515/PS/Firewall Rule.ps1 b/Unencrypted PS and Json files/20260515/PS/Firewall Rule.ps1 new file mode 100644 index 0000000..6b6a278 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/Firewall Rule.ps1 @@ -0,0 +1,33 @@ +# Create incoming rule for Ping +New-NetFirewallRule -DisplayName "Ping" -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -Action Allow + +# Create incoming rule for CIW on Total Care PC +New-NetFirewallRule -DisplayName "CIW Syslog" ` + -Direction Inbound ` + -Protocol UDP ` + -LocalPort 514 ` + -Action Allow ` + -Profile Private +New-NetFirewallRule -DisplayName "CIW Email" ` + -Direction Inbound ` + -Protocol TCP ` + -LocalPort 25 ` + -Action Allow ` + -Profile Private + +# Create outgoing rule for CIW on NVRs +New-NetFirewallRule -DisplayName "CIW Email" ` + -Direction Outbound ` + -Protocol TCP ` + -LocalPort 25 ` + -RemotePort 25 ` + -Action Allow ` + -Profile Private,Public +New-NetFirewallRule -DisplayName "CIW Syslog" ` + -Direction Outbound ` + -Protocol UDP ` + -LocalPort 514 ` + -RemotePort 514 ` + -Action Allow ` + -Profile Private,Public + diff --git a/Unencrypted PS and Json files/20260515/PS/Folder Options.ps1 b/Unencrypted PS and Json files/20260515/PS/Folder Options.ps1 new file mode 100644 index 0000000..6066975 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/Folder Options.ps1 @@ -0,0 +1,62 @@ +# Show favorites in navigation pane +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'NavPaneShowFavorites' -Value 1 + +# Show all folders in navigation pane +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'NavPaneShowAllFolders' -Value 1 + +# Automatically expand to current folder +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'NavPaneExpandToCurrentFolder' -Value 1 + +# Show libraries in navigation pane +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'NavPaneShowLibraries' -Value 1 + +# Always show menus +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'AlwaysShowMenus' -Value 1 + +# Display file icon on thumbnails +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'IconsOnly' -Value 0 + +# Display file size information in folder tips +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'FolderContentsInfoTip' -Value 1 + +# Show hidden files and folders +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'Hidden' -Value 1 + +# Unhide empty drives +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideDrivesWithNoMedia' -Value 0 + +# Uncheck "Hide extensions for known file types" +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFileExt' -Value 0 + +# Uncheck "Hide folder merge conflicts" +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'HideFolderMergeConflicts' -Value 0 + +# Hide protected operating system files +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowSuperHidden' -Value 0 + +# Restore previous folder windows at logon +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'PersistBrowsers' -Value 1 + +# Show drive letters +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowDriveLetters' -Value 1 + +# Show encrypted or compressed NTFS files in color +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowEncryptedCompressedColor' -Value 1 + +# Show pop-up description for folders and desktop items +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowInfoTip' -Value 1 + +# Show previous handlers in preview pane +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'ShowPreviewHandlers' -Value 1 + +# Show status bar +Set-ItemProperty -Path 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced' -Name 'StatusBar' -Value 1 + +# Apply the changes by restarting File Explorer +Stop-Process -Name explorer -Force +Start-Process explorer + +# Apply settings to all folders (This usually requires user action; automate if necessary) +$wshell = New-Object -ComObject wscript.shell +$wshell.SendKeys('%(ve)') # Opens Folder Options -> View +$wshell.SendKeys('{TAB}{TAB}{TAB}{TAB}{TAB}{TAB}{ENTER}') # Select "Apply to Folders" and Confirm diff --git a/Unencrypted PS and Json files/20260515/PS/NetworkInterfacePowermanagementDisableALL.ps1 b/Unencrypted PS and Json files/20260515/PS/NetworkInterfacePowermanagementDisableALL.ps1 new file mode 100644 index 0000000..fe913cb --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/NetworkInterfacePowermanagementDisableALL.ps1 @@ -0,0 +1,8 @@ + $adapters = Get-NetAdapter -Physical | Get-NetAdapterPowerManagement + foreach ($adapter in $adapters) + { + $adapter.WakeOnMagicPacket = 'Enabled' + $adapter.WakeOnPattern = 'Enabled' + $adapter.AllowComputerToTurnOffDevice = 'Disabled' + $adapter | Set-NetAdapterPowerManagement + } diff --git a/Unencrypted PS and Json files/20260515/PS/Power Options.ps1 b/Unencrypted PS and Json files/20260515/PS/Power Options.ps1 new file mode 100644 index 0000000..a038c5c --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/Power Options.ps1 @@ -0,0 +1,8 @@ +# Set computer to never sleep +powercfg /change standby-timeout-ac 0 + +# Set monitor to never turn off +powercfg /change monitor-timeout-ac 0 + +# Set hard drives to never turn off +powercfg /change disk-timeout-ac 0 diff --git a/Unencrypted PS and Json files/20260515/PS/Remote Desktop Enable.ps1 b/Unencrypted PS and Json files/20260515/PS/Remote Desktop Enable.ps1 new file mode 100644 index 0000000..ff62a24 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/Remote Desktop Enable.ps1 @@ -0,0 +1,9 @@ +# Enable Remote Desktop +Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name "fDenyTSConnections" -Value 0 + +# Enable Remote Desktop through Windows Firewall +Enable-NetFirewallRule -DisplayGroup "Remote Desktop" + +# Allow "Everyone" group to connect +$rdpAccessGroup = "Remote Desktop Users" +Add-LocalGroupMember -Group $rdpAccessGroup -Member "Everyone" diff --git a/Unencrypted PS and Json files/20260515/PS/Windows Update Restart.ps1 b/Unencrypted PS and Json files/20260515/PS/Windows Update Restart.ps1 new file mode 100644 index 0000000..d8cfea6 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/PS/Windows Update Restart.ps1 @@ -0,0 +1,49 @@ +# Import the Update Session COM object +$updateSession = New-Object -ComObject Microsoft.Update.Session + +# Create an update searcher object +$updateSearcher = $updateSession.CreateUpdateSearcher() + +# Search for available updates +$searchResult = $updateSearcher.Search("IsInstalled=0") + +# Check if updates are available +if ($searchResult.Updates.Count -gt 0) { + Write-Output "$($searchResult.Updates.Count) updates found. Installing..." + + # Create an update downloader object + $updateDownloader = $updateSession.CreateUpdateDownloader() + $updateDownloader.Updates = $searchResult.Updates + + # Download updates + $downloadResult = $updateDownloader.Download() + + if ($downloadResult.ResultCode -eq 2) { + Write-Output "Updates downloaded successfully." + + # Create an update installer object + $updateInstaller = $updateSession.CreateUpdateInstaller() + $updateInstaller.Updates = $searchResult.Updates + + # Install updates + $installResult = $updateInstaller.Install() + + if ($installResult.ResultCode -eq 2) { + Write-Output "Updates installed successfully." + + # Check if a restart is required + if ($installResult.RebootRequired) { + Write-Output "Restart is required. Restarting the computer..." + Restart-Computer -Force + } else { + Write-Output "No restart is required." + } + } else { + Write-Error "Failed to install updates. Result code: $($installResult.ResultCode)" + } + } else { + Write-Error "Failed to download updates. Result code: $($downloadResult.ResultCode)" + } +} else { + Write-Output "No updates are available." +} diff --git a/Unencrypted PS and Json files/20260515/profile.json b/Unencrypted PS and Json files/20260515/profile.json new file mode 100644 index 0000000..cb1c9b0 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/profile.json @@ -0,0 +1,520 @@ +[ + { + "ProfileName": "Do nothing", + "ProfileType": "", + "ProfileCommands": [ + ], + "ProfileParameters": [ + "{P00}", + "{P01}", + "{P02}", + "{P03}" + ] + }, + { + "ProfileName": "Test", + "ProfileType": "CMD", + "ProfileCommands": [ + "command 1 {P00} {P01} {P02}", + "command 2 {P00} {P01}", + "command 3 {P00} {P03}" + ], + "ProfileParameters": [ + "{P00}", + "{P01}", + "{P02}", + "{P03}" + ] + }, + { + "ProfileName": "Change Hostname", + "ProfileType": "Powershell", + "ProfileCommands": [ + "Rename-Computer -NewName {New Host Name} -Force -PassThru", + "hostname" + ], + "ProfileParameters": [ + "{New Host Name}" + ] + }, + + { + "ProfileName": "CMD_Show_NetworkInterfaces", + "ProfileType": "CMD", + "ProfileCommands": [ + "netsh interface show interface" + ], + "ProfileParameters": [ + ] + }, + + { + "ProfileName": "CMD_Assign_IPv4Address", + "ProfileType": "CMD", + "ProfileCommands": [ + "netsh interface ipv4 set address name=\"{Name of Interface}\" source=static addr={IP Address} mask={Net mask} gateway={Gateway}", + "netsh interface set interface \"{Name of Interface}\" admin=disable", + "netsh interface set interface \"{Name of Interface}\" admin=enable", + "netsh interface ipv4 show config name=\"{Name of Interface}\" " + ], + "ProfileParameters": [ + "{Name of Interface}", + "{IP Address}", + "{Net mask}", + "{Gateway}" + ] + }, + + { + "ProfileName": "Powershell_Assign_IPv4Address", + "ProfileType": "Powershell", + "ProfileCommands": [ + "New-NetIPAddress -InterfaceAlias \"{Name of Interface}\" -IPAddress {IP Address} -PrefixLength {PrefixLength} -DefaultGateway {Gateway}", + "Get-NetIPAddress -InterfaceAlias \"{Name of Interface}\"" + ], + "ProfileParameters": [ + "{Name of Interface}", + "{IP Address}", + "{PrefixLength}", + "{Gateway}" + ] + }, + { + "ProfileName": "SSH_Cisco_Tftp_Running", + "ProfileType": "SSH", + "ProfileCommands": [ + "copy run tftp://" + ], + "ProfileParameters": [ + "{IP Address}", + "{User Name}", + "{Password}" + ] + }, + { + "ProfileName": "SSH_Cisco_Catalyst_Tftp_Running", + "ProfileType": "SSH_Catalyst", + "ProfileCommands": [ + "copy running-config tftp://" + ], + "ProfileParameters": [ + "{IP Address}", + "{User Name}", + "{Password}" + ] + }, + { + "ProfileName": "SSH_Cisco_Tftp_Startup", + "ProfileType": "SSH", + "ProfileCommands": [ + "copy startup-config tftp://" + ], + "ProfileParameters": [ + "{IP Address}", + "{User Name}", + "{Password}" + ] + }, + { + "ProfileName": "SSH_Cisco_Catalyst_Tftp_Startup", + "ProfileType": "SSH_Catalyst", + "ProfileCommands": [ + "copy startup-config tftp://" + ], + "ProfileParameters": [ + "{IP Address}", + "{User Name}", + "{Password}" + ] + }, + { + "ProfileName": "RAC9_PS_status_dual", + "ProfileType": "RAC9", + "ProfileCommands": [ + "get system.power.supply.1", + "get system.power.supply.2" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "RAC9_storage_pdisks", + "ProfileType": "RAC9", + "ProfileCommands": [ + "storage get get pdisks -o" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "RAC9_networkinterfaces", + "ProfileType": "RAC9", + "ProfileCommands": [ + "gethostnetworkinterfaces" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "CMD_OS_name", + "ProfileType": "CMD", + "ProfileCommands": [ + "systeminfo | findstr /B /C:\"OS Name\" /B /C:\"OS Version\"" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "CMD_Windows_Activation_status", + "ProfileType": "CMD", + "ProfileCommands": [ + "cscript c:\\Windows\\System32\\slmgr.vbs /dlv" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "CMD_Windows_Enable_RemoteDesktop", + "ProfileType": "CMD", + "ProfileCommands": [ + "REG ADD \"HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal Server\" /v fDenyTSConnections /t REG_DWORD /d 0 /f", + "netsh advfirewall firewall add rule name=\"Remote Desktop (TCP-In)\" dir=in action=allow protocol=TCP localport=3389", + "net start TermService" + ], + "ProfileParameters": [] + }, + + + { + "ProfileName": "CMD_Avigilon_Version", + "ProfileType": "Powershell", + "ProfileCommands": [ + "Get-WmiObject -Class Win32_Product | where vendor -eq Avigilon | select Name, Version" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "Powershell_VideoController", + "ProfileType": "Powershell", + "ProfileCommands": [ + "Get-CimInstance -ClassName Win32_VideoController" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "Powershell_Avigilon_Servername", + "ProfileType": "Powershell", + "ProfileCommands": [ + "-File \"Avigilon_Servername.ps1\"" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "Powershell_Get_NetworkInterface", + "ProfileType": "Powershell", + "ProfileCommands": [ + "Get-NetAdapter | Select-Object Name, MacAddress, InterfaceDescription| Sort-Object -Property Name" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "Powershell_NetworkInterface_Team_LACP_Dynamic", + "ProfileType": "Powershell", + "ProfileCommands": [ + "New-NetLbfoTeam -Name \"{Team Name}\" -TeamMembers \"{NIC1}\", \"{NIC2}\" -TeamingMode LACP -LoadBalancingAlgorithm Dynamic -Confirm:$false", + "Set-NetAdapterAdvancedProperty -Name \"{NIC1}\" -DisplayName \"Speed & Duplex\" -DisplayValue \"10 Gbps Full Duplex\" ", + "Set-NetAdapterAdvancedProperty -Name \"{NIC2}\" -DisplayName \"Speed & Duplex\" -DisplayValue \"10 Gbps Full Duplex\" ", + "Set-NetAdapterAdvancedProperty -Name \"{NIC1}\" -DisplayName \"Energy-Efficient Ethernet\" -DisplayValue \"Disabled\" ", + "Set-NetAdapterAdvancedProperty -Name \"{NIC2}\" -DisplayName \"Energy-Efficient Ethernet\" -DisplayValue \"Disabled\" ", + "Get-NetAdapterAdvancedProperty -Name \"{NIC1}\" ", + "Get-NetAdapterAdvancedProperty -Name \"{NIC2}\" ", + "Get-NetAdapterAdvancedProperty -Name \"{Team Name}\" " + ], + "ProfileParameters": [ + "{Team Name}", + "{NIC1}", + "{NIC2}" + ] + }, + + { + "ProfileName": "Powershell_ACC8 Antivirus Exclusions", + "ProfileType": "Powershell", + "ProfileCommands": [ + "-File \"ACC8 Antivirus Exclusions.ps1\"" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "Powershell_Firewall Rule", + "ProfileType": "Powershell", + "ProfileCommands": [ + "-File \"Firewall Rule.ps1\"" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "Powershell_Folder Options", + "ProfileType": "Powershell", + "ProfileCommands": [ + "-File \"Folder Options.ps1\"" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "Powershell_Power Options", + "ProfileType": "Powershell", + "ProfileCommands": [ + "-File \"Power Options.ps1\"" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "Powershell_Remote Desktop Enable", + "ProfileType": "Powershell", + "ProfileCommands": [ + "-File \"Remote Desktop Enable.ps1\"" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "Powershell_Windows Update Restart", + "ProfileType": "Powershell", + "ProfileCommands": [ + "-File \"Windows Update Restart.ps1\"" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "CMD_Add_Local_Admin_User", + "ProfileType": "CMD", + "ProfileCommands": [ + "Net user {Local Admin User 1} {Password 1} /add /Y", + "net localgroup administrators {Local Admin User 1} /add ", + "net localgroup administrators" + ], + "ProfileParameters": [ + "{Local Admin User 1}", + "{Password 1}" + + ] + }, + + { + "ProfileName": "CMD_Add_Local_2_Admin_Users", + "ProfileType": "CMD", + "ProfileCommands": [ + "Net user {Local Admin User 1} {Password 1} /add /Y", + "net localgroup administrators {Local Admin User 1} /add ", + "Net user {Local Admin User 2} {Password 2} /add /Y", + "net localgroup administrators {Local Admin User 2} /add ", + "net localgroup administrators" + ], + "ProfileParameters": [ + "{Local Admin User 1}", + "{Password 1}", + "{Local Admin User 2}", + "{Password 2}" + + ] + }, + + { + "ProfileName": "CMD_ScreenSaver", + "ProfileType": "CMD", + "ProfileCommands": [ + "cd C:\\USI\\Images\\ & C:\\USI\\Images\\bg.bat" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "CMD_Install_FoxitReader", + "ProfileType": "CMD", + "ProfileCommands": [ + "C:\\USI\\Apps\\FoxitPDFReader.exe /QUIET" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "CMD_Install_TeamViewer.msi", + "ProfileType": "CMD", + "ProfileCommands": [ + "C:\\USI\\Apps\\TeamViewer.msi /qn", + "winget list --disable-interactivity --accept-source-agreements| FINDSTR /i \"TeamViewer\"" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "CMD_ShowAllSoftwareVersion", + "ProfileType": "CMD", + "ProfileCommands": [ + + "winget list --disable-interactivity --accept-source-agreements " + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "CMD_Timezone_CanCentralStandardTime_6", + "ProfileType": "CMD", + "ProfileCommands": [ + "tzutil /s \"Central Standard Time\"", + "tzutil /g" + ], + "ProfileParameters": [] + }, + + + { + "ProfileName": "CMD_Meinberg ntp-4.2.8", + "ProfileType": "CMD", + "ProfileCommands": [ + "C:\\USI\\Apps\\\"Meinberg ntp-4.2.8p15a-win32-setup.exe\" /USE_FILE=\"C:\\USI\\Apps\\MeinbergSetup.ini\"", + "ntpd --version", + "echo server {IP Address 1} iburst minpoll 6 maxpoll 7 >> C:\\\"Program Files (x86)\"\\NTP\\etc\\ntp.conf", + "echo server {IP Address 2} iburst minpoll 6 maxpoll 7 >> C:\\\"Program Files (x86)\"\\NTP\\etc\\ntp.conf" + + ], + "ProfileParameters": [ + "{IP Address 1}", + "{IP Address 2}" + ] + }, + + { + "ProfileName": "CMD_Ipv6_Disable_ALL", + "ProfileType": "CMD", + "ProfileCommands": [ + "powershell \"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6\"", + "powershell \"Get-NetAdapterBinding -ComponentID ms_tcpip6| Sort-Object -Property Name\"" + + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "CMD_Ipv6_Disable_Interface", + "ProfileType": "CMD", + "ProfileCommands": [ + "powershell \"Disable-NetAdapterBinding -Name \"{Interface Name}\" -ComponentID ms_tcpip6\"", + "powershell \"Get-NetAdapterBinding -ComponentID ms_tcpip6| Sort-Object -Property Name\"" + ], + "ProfileParameters": [ + "{Interface Name}" + ] + }, + + { + "ProfileName": "RAC9_IDRAC_Assign_IP_Network_Interface", + "ProfileType": "CMD", + "ProfileCommands": [ + "racadm setniccfg -s {IP Address} {Network Mask} {Gateway}" + ], + "ProfileParameters": [ "{IP Address}", "{Network Mask}", "{Gateway}" ] + }, + + { + "ProfileName": "RAC9_IDRAC_Configure_User", + "ProfileType": "CMD", + "ProfileCommands": [ + "racadm set iDRAC.Users.{Index}.Username {Username}", + "racadm set iDRAC.Users.{Index}.Password {Password}", + "racadm get iDRAC.Users.{Index}.Username", + "racadm set iDRAC.Users.{Index}.Enable 1", + "racadm set iDRAC.Users.{Index}.IpmiLanPriv 4" + + ], + "ProfileParameters": [ "{Index}", "{Username}", "{Password}" ] + }, + + { + "ProfileName": "RAC9_IDRAC_Configure_Users_at_234", + "ProfileType": "CMD", + "ProfileCommands": [ + "racadm set iDRAC.Users.2.Password {Password 2 root}", + "racadm set iDRAC.Users.3.Username {Username 3}", + "racadm set iDRAC.Users.3.Password {Password 3}", + "racadm set iDRAC.Users.4.Username {Username 4}", + "racadm set iDRAC.Users.4.Password {Password 4}", + "racadm get iDRAC.Users.2.Username", + "racadm get iDRAC.Users.3.Username", + "racadm get iDRAC.Users.4.Username", + "racadm set iDRAC.Users.3.Enable 1", + "racadm set iDRAC.Users.3.IpmiLanPriv 4", + "racadm set iDRAC.Users.4.Enable 1", + "racadm set iDRAC.Users.4.IpmiLanPriv 4" + ], + "ProfileParameters": [ + "{Password 2 root}", + "{Username 3}", + "{Password 3}", + "{Username 4}", + "{Password 4}" + ] + }, + + { + "ProfileName": "RAC9_IDRAC_Get_ServiceTag", + "ProfileType": "CMD", + "ProfileCommands": [ + "racadm getsvctag" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "RAC9_ACPwrRcvry_On", + "ProfileType": "RAC9", + "ProfileCommands": [ + "set bios.Syssecurity.ACPwrRcvry On" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "RAC9_Power_redundancy", + "ProfileType": "RAC9", + "ProfileCommands": [ + " get system.power.RedundancyPolicy" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "RAC9_storage_vdisks", + "ProfileType": "RAC9", + "ProfileCommands": [ + "storage get vdisks -o -p layout,status,size" + ], + "ProfileParameters": [] + }, + + { + "ProfileName": "RAC9_Commit_Changes_reboot_NOW", + "ProfileType": "RAC9", + "ProfileCommands": [ + "jobqueue create BIOS.Setup.1-1 -r pwrcycle -s TIME_NOW" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "RAC9_Jobview_checkresult", + "ProfileType": "RAC9", + "ProfileCommands": [ + "jobqueue view" + ], + "ProfileParameters": [] + }, + { + "ProfileName": "RAC9_Reboot", + "ProfileType": "RAC9", + "ProfileCommands": [ + "serveraction hardreset" + ], + "ProfileParameters": [] + } +] \ No newline at end of file diff --git a/Unencrypted PS and Json files/20260515/tasklist.json b/Unencrypted PS and Json files/20260515/tasklist.json new file mode 100644 index 0000000..b1a9a26 --- /dev/null +++ b/Unencrypted PS and Json files/20260515/tasklist.json @@ -0,0 +1,310 @@ +[ + { + "iTaskNum": 1, + "sTaskDescription": "Remote Desktop Enable", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_Remote Desktop Enable", + "dParameters": {} + }, + { + "iTaskNum": 2, + "sTaskDescription": "Bios enable Power on AC Recovery", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_ACPwrRcvry_On", + "dParameters": {} + }, + { + "iTaskNum": 3, + "sTaskDescription": "Change HostName", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Change Hostname", + "dParameters": { + "{New Host Name}": "dfghdfhdfgh" + } + }, + { + "iTaskNum": 4, + "sTaskDescription": "Create 2 Windows Admins", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Add_Local_2_Admin_Users", + "dParameters": { + "{Local Admin User 1}": "USI-Admin", + "{Password 1}": "", + "{Local Admin User 2}": "SIGA-Admin", + "{Password 2}": "" + } + }, + { + "iTaskNum": 5, + "sTaskDescription": "Reboot by IDRAC", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_Commit_Changes_reboot_NOW", + "dParameters": {} + }, + { + "iTaskNum": 6, + "sTaskDescription": "Get Service Tag", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_IDRAC_Get_ServiceTag", + "dParameters": {} + }, + { + "iTaskNum": 7, + "sTaskDescription": "Server have 2nd power supply?", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_PS_status_dual", + "dParameters": {} + }, + { + "iTaskNum": 8, + "sTaskDescription": "10GB ports", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_networkinterfaces", + "dParameters": {} + }, + { + "iTaskNum": 9, + "sTaskDescription": "OS", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_OS_name", + "dParameters": {} + }, + { + "iTaskNum": 10, + "sTaskDescription": "GPU", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_VideoController", + "dParameters": {} + }, + { + "iTaskNum": 11, + "sTaskDescription": "Power redundancy", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_Power_redundancy", + "dParameters": {} + }, + { + "iTaskNum": 12, + "sTaskDescription": "Raid volume check", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_storage_vdisks", + "dParameters": {} + }, + { + "iTaskNum": 13, + "sTaskDescription": "Windows Activation Status", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Windows_Activation_status", + "dParameters": {} + }, + { + "iTaskNum": 14, + "sTaskDescription": "Avigilon Version", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Avigilon_Version", + "dParameters": {} + }, + { + "iTaskNum": 15, + "sTaskDescription": "Get Network Interface Name", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_Get_NetworkInterface", + "dParameters": {} + }, + { + "iTaskNum": 16, + "sTaskDescription": "Create NIC team for Cameras", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_NetworkInterface_Team_LACP_Dynamic", + "dParameters": { + "{Team Name}": "Camera Lan", + "{NIC1}": "Integrated NIC 1 Port 1-1", + "{NIC2}": "Integrated NIC 1 Port 2-1" + } + }, + { + "iTaskNum": 17, + "sTaskDescription": "IDRAC Assigned IP address", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_IDRAC_Assign_IP_Network_Interface", + "dParameters": { + "{IP Address}": "192.168.39.2", + "{Network Mask}": "255.255.255.0", + "{Gateway}": "192.168.39.1" + } + }, + { + "iTaskNum": 18, + "sTaskDescription": "IDRAC Set User Password root, 3,4", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "RAC9_IDRAC_Configure_Users_at_234", + "dParameters": { + "{Password 2 root}": "", + "{Username 3}": "USI-Admin", + "{Password 3}": "", + "{Username 4}": "SIGA-Admin", + "{Password 4}": "" + } + }, + { + "iTaskNum": 19, + "sTaskDescription": "Firewall", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_Firewall Rule", + "dParameters": {} + }, + { + "iTaskNum": 20, + "sTaskDescription": "ACC Antivirus Exclusions", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_ACC8 Antivirus Exclusions", + "dParameters": {} + }, + { + "iTaskNum": 21, + "sTaskDescription": "Folder Options", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_Folder Options", + "dParameters": {} + }, + { + "iTaskNum": 22, + "sTaskDescription": "Power Options", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_Power Options", + "dParameters": {} + }, + { + "iTaskNum": 23, + "sTaskDescription": "Show network Interface names, using CMD ", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Show_NetworkInterfaces", + "dParameters": { + "{P00}": "", + "{P01}": "", + "{P02}": "", + "{P03}": "" + } + }, + { + "iTaskNum": 24, + "sTaskDescription": "Assign an IPv4 address to an interface Camera Lan", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Assign_IPv4Address", + "dParameters": { + "{Name of Interface}": "LAN 1 (Workstation)", + "{IP Address}": "192.168.38.41", + "{Net mask}": "255.255.255.0", + "{Gateway}": "192.168.38.1" + } + }, + { + "iTaskNum": 25, + "sTaskDescription": "Assign an IPv4 address to an interface Workstation", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Assign_IPv4Address", + "dParameters": { + "{Name of Interface}": "", + "{IP Address}": "", + "{Net mask}": "", + "{Gateway}": "" + } + }, + { + "iTaskNum": 26, + "sTaskDescription": "Enable ScreenSaver for current user", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_ScreenSaver", + "dParameters": {} + }, + { + "iTaskNum": 27, + "sTaskDescription": "Install Foxit Reader", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Install_FoxitReader", + "dParameters": {} + }, + { + "iTaskNum": 28, + "sTaskDescription": "Set timezone to SK Canada Central Standard -6", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Timezone_CanCentralStandardTime_6", + "dParameters": {} + }, + { + "iTaskNum": 29, + "sTaskDescription": "IPv6 Disable All", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Ipv6_Disable_ALL", + "dParameters": { + "{P00}": "", + "{P01}": "", + "{P02}": "", + "{P03}": "" + } + }, + { + "iTaskNum": 30, + "sTaskDescription": "Install Meinberg ntp-4.2.8p", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Meinberg ntp-4.2.8", + "dParameters": { + "{IP Address 1}": "", + "{IP Address 2}": "" + } + }, + { + "iTaskNum": 31, + "sTaskDescription": "Windows Update Restart", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "Powershell_Windows Update Restart", + "dParameters": {} + }, + { + "iTaskNum": 32, + "sTaskDescription": "Install Teamviewer 15", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_Install_TeamViewer.msi", + "dParameters": {} + }, + { + "iTaskNum": 33, + "sTaskDescription": "Show all software version", + "sTaskDevice": "", + "bTaskSelect": false, + "sProfile": "CMD_ShowAllSoftwareVersion", + "dParameters": {} + } +] \ No newline at end of file diff --git a/bin/Debug/FHT.exe b/bin/Debug/FHT.exe index da7c141eecf83266ee237f27bdefb26739e265b8..0eb03f8c055375ffaf10ae72b2836bd5e01a0738 100644 GIT binary patch delta 25623 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 delta 25526 zcmb__37izwwf?QD?&@XMo}THRy?geW=@}UI9cRRaO>t!3lo4DIwV($<7@Z`rQ7dwkb|DUVh43qk9{OU-{nOM9Us$Tr==Fc$ z6+^dnANICdGnJ;`d%uNV9BPNG>y?CZ*m^=~Qa-Q_DYZ3wp-F$n;;$;a;-$4heCJ9b z$mld7^m)5$)E5=y7VBfJG-Z|x5sVI4t@c(3;W0siIW}JjKG$bd;nI4JVZ*>4# zNmyF!GhzVDI7mP>3Sif)0dJfOF6{AzJVq_VLk(fC?9-I#Q-=lyL*5#bghQf5DTH@o zm>8B64H#IdXxBsvh-Q7F6+2#@|1Z2e)o0YhT%Iq>qj~ViXpqi$zQGxfdiO-bI z^m*GJSO%*}b@^fB!@SxHpFK|8tcSgosYVQ_Y6hkqY!M=i>0BO!ju4?&Rji9)prNN3 zB&ha4A-F1sEc7IZ&1JTg*gR%g0RuS-2scIWE3J9 z7K@E;Y=UPbEtF=^vJ8u0IJ!}0`_RagMrv;!jc@h^p!U-EHcKPfERAHdWL~m{>_MT3 zn%E5JO?<34R@u`JqS-%Qo?eJQp{>W$wA;6#*}EO(tRvvsU>lPL&a+IU&Mlxh)fx{9(p2>kP_@ za4%uy2=H(HSplYCB!83XN^<;}uLPLj3fm`&l(XK%!<)fwZwO0jN_x#$XPC>I6cUBN zQkTJGh&mw6(MBb zPf|_J&$vmlOqW4!Hwmt^-6S5_k{&;~JmWGsVXs<8F9|1ZQ^JyKGvl#N_BQ2yv`dHN zWF-;JBza?|E6HE8O9^&%Dc2Sm2d*u0m%30cGhacYFd<`>>Lum)0NOuUaU(eSK*kwX z`y-Y&zKb$pAT7}#4iU9Dp(EZ29b4Fw2^~8qeWfz%j8AZNY`S~R2ugmG8Jpzz3zS-e z-2)RG3)+iDf-^Gr|1vW&4Hqkj6}iVCELo-+>HS4O{JS(rm3t8G8^B_Ho?DTUsY(!1 z6+z5ORSvbBAKftQoOGdd?{J~jv54CtQcO-))BcbgKS=(JcKnIbwkEvVo;2}P*B;2L z9^8*sq(83+4WHbTF-3B0TCBmbLuLqr8SBeDXIg|{T3EKMX_42loLJcHD`Ck$Wd>lK z69yox%J!4>qguK&k?d^zaxsO+MOtT#OF0^g#uDyv2}?GSodG;i)|rr9a0tV=*2nqI z#OUsvoJ_q&aW9tVk~}&iFCzJ*jQk^#J4nWnZf^(3S)Dzdkd2cGj2dI;5;t(JiNA+c z;@BFe5NHe`ij6hHS#KMm!XgvE2B-jL0es6GO5OG30rKEf@JqXJHZ)EnH2FJ##sKS` zg6O$aC5_Vw5t{aSLZlk7}Ql$OH;~8RtgI&Uylq%^n0zCI`v!M`;6P9dZap@r89ct%x}x%_IHM zY^UKwhRH`;bdRqYmpVCRo9BI8$0chlih*+^ARgle+~X4F zJ`%9bNh#Nv0COVHITCP(h2$u9m)(Xr#?s@CWS9c(j7vPmZFi4LnEPPFI_ZN^p1chZ zh%Txor zO6d|av&SXOePm&s6UHSBM>K0hu~R+>!3daNW`uuH6@E%txBROmflOuXck(_9peQ=P z1?e?&5C$lDvH;3x3H+0yaW6t=@TN#UpN=B7IGHoXStCmNDrZ`YN*YpU0l||nwyDQN z(FvArM5R_5BEGvDqMFY<8_?b6WY9)EIwPoS<`nS#|3mhOm{TE1-en_VP6KRC2Z@?9 zh@F{HJFa6ay=NA|vvH!dyPLA^up?1(PFlazoXdPG9Q4>ZO}yGmlna!34%s?4t!B;x z+Y)Z~h^Me9I?7TcIP}|KT`uaji+Fx>eC!6>x=5u*Sv=^b1LA0+H6kZNispGBU$13P zIju$ai-frV`jR`Jy3;~aKvTLLki&Y?+%LcU68D)4$+m%;bFk%1k9iTUZNcPkXhjzi zMg_ zGg0f6XjzJK=fsg*@mh-YR&<`W)Uxeff^N~71DgKjFcI@osJ5_gv*DW$zIn{csQZ8} zkC`&TwT_d)^q7kw8E`)lED{E#cyd2IsVyO;dQYsyW0F2EB4>9*%V9%bM6_+HkGX8Sb*;tKY1m{>)rrS>c%7FrJ5 zhuP(X%KYXGyn@EGZ-Hbj{tD(E-vi>VuFax3yUdYl?21^m`}ju~?h@9fvWnCSGTTdt zQ&fpZ$%C8jlGjUamzpbCo%mSSR|Y58UD{dggs};8o-V;#MtQhh`ams?4>aTKz2D0N zb0n^`7L`|~R;7Vh9&UpDAlhdEQcC`gYMnd_kR0ED9Ed+i(Q-Y#$YJDhfOt$B5w}ay z>hu7Bu{<_Rbpknx3#ntR^qw^|_FBei8IvVmjD6J!^3`cMely%Kzr`}Gbuy9B&&X1r zWPbXw^(i6ZcVRAc<9E%O@Z>PEBj?O|_oLp#Up-;Y)Z*M*xmQ#At|0TkxQ0Bd{f2|D zie$hG0OMLxjE_g&#}7H9WSxS^e%9TJf}91=qGth=ecyOLn~O=}epZR0lf5)ydAecC z*O5bXe7&o3g0jx~sIm$)P}NUaZ;hxLpj>a6RU_x$KuWO%u>~AIV*^BEBauxY!KiT~ zE_(7UnC{t3@D`9p)xh0OH*oI=uEB!@ZaSzX9>aoceg{O#YVUAzf3%ff9anC$`c{{; zVXe`KnTH2 zB{#kqX_2QI+aQEJ299BR*c*DVNf2bs!vw8?d z3+0$QA=@vqZJYN4X;CUsh{e-tKWke&p*&zcACHabBGm^$a)+LRz2P?>0>89B#?1@x zA*GyehL>XxDR_-f10?rj{DAqe6{{)9>xTNU&k^R3*X*`BYvLUb1KEIDpk#g=2;t0t z8skAHG@6fqtXd9PPAjAz*D*7_=TU0hW$mb`RL-;hqo%ij7Kh%C>){;C>M?61FPlsfzfyd zeQ;R$80t%X1%qs$3m&pY?eC zP~^qO^$mPvF@KzC`w7_KP`oM?J;*#g$A`1SbHG;NCJckT2PkUx@%DMJoJF~Q4xT*i z_Zd1({yH<2v?- z-t$w8VxTZ5TC1f`Rc@=ewMnaqB5IvZTW|(?6x){46ZD%e0B$@~l_xW5NDgfVj(rRb zc5)#)`ymZKa2)xOUnGu4a3;exw=QhFvFtH2pz3BG#$1J>WbXs>=TkJ;IOf%0W$SZ58x-@UecvQux_4bJ(pPK zD%!Ylp=gh5tx*nGi&|?I{QLD<*2O?kz*U>wRp!L}v1_x(e9HP`>u}{UE77)c5GUV= z8?oh``Udy)UL2cc_vnm~3g#jk9o%}mts?ar6tiI`GL9PL=nND0Fx=VFIp}K4JWHpRt^e<>HN&Iido77&O`ag_^ncc&;BdRDZ|9gMYe`#tK?q{vjzdj%T-%OH46Gt>X z5&wF#GI>Y?$BYa6RXRmreZQ*0bU4g4l$F1OHj zG-Mm+bgB7kJRIVV%RAMjqxKFXi|Ksxm~X+jO!=AM{yo*GeEE|0G%h;sad}E!!w_OA z-yxcB(*#B%D+ng^Hvn2oZQ&pU+tXtE%^)lNHtmngE7v4lr!03jdCNx3Qo+nTWl6IA ze$5r~)<%zc2m`%J=YRe>#e9dH^W$0PFqjtnQovVw%XS^Y>89LP=3KKf)m$IF%w>k?wVQS;&96RH#?L{Mb4=FczSMj2u_Y2dvPb z^3)$7ng31D==;bwxsHD%lpb(gWAkc9XO3J8wd4fUX16Y#dtI*q`FSb11WM(xxbX=Z zD+f$;yyGOWN9c=jq@#?|8oSN%GnOj`_gilbs+HCL#2mm|R`<<_t2Cbg(7<;$ey=Tk zF!y1c{<~T#+P&gMY}Z1peb1S|@M_>LIK6rl;w8WT`V^@71_;UrKZBJDYvtggJUYJd z^Bj(5k6GIWw?@teV*H8J{|sV3=F&O1-O3qq`d1&KJva<|a2URLi0dKR^RExXc>&iW zbRhEtZL?TKdVtpXTocm&$pduyDe}@h+*+;Np=Q=^eR%!q6$K$gfp$gDUtn|9NswOE zks?{&dbLs0DQHrAaD)i1q8QolKWRnn_n%XVReQ-q&tFOH3~u`yv4}g={)Va&Ts4XL zWyGSCIlYlw4m*R{&q!e=v&V?VO~6r@&Ftrd&SAEd*wZt*<1_38W_bqV=#`iK3U@5S zf2V$9G8!jm*v<^w!R$Xsmr94)(}&ozG78A(^vu7YHl#^5Fj*?|{HG8vx8M~}w%@|^ zWtQe(e_=*$nXF*HGNuKHzoFu%sjM$O2u|KaD?ETrkQ|#A>+gO`N*I0P!N1UOhX<%b zNxDP1iSh_nsLgqUOFZ6>;*#|inHIm){F2p)kHj0`llx63p~*Kh9+4b1g(8CZt(AoM zX&$_AM8ajg%B2?Piv!{#CXT!CiFkQ`mi|)8Wxv-_Si6USxrA)a4MRd4LUy`dqZ z_ELIUmyhVQUpsT+$`@exO3Ut2Vb6;i%VLG@NfDI%duCE3M@&z;Yy2dd)5|C{?!c3l z^J^~gh-V7($$CF+H}+S=AeBI-Rl6iuI78?AZ|KE(~10XK~8r}qR2 z&QUlAY%AEIHlEAs6eH)YAjgq_+Sgur=VUW4t&ptBNABPzhoDh=GC?v92(}zG^V7N! zvmnhUN044&X&Q+2w_k}V zBKhJpZ`_2rnI&mCxq{5$Lqm8;x^aulMWnf?1E)O6dq__@NqSfU6fAoOl(8NaFnUMp zm?t^8FJqqMuQAVRpJc3)4C|;P8SC^>AQi>hUNO>%ImyW{sh^BF$p~FJ`@)UU0yN46 zAlV5z@$pt5k^U7UDS8Ju^r?&5U*q2Hby&qz*tMuPM#>!d+&@`j9K+-Fuvwr2#=7uF-jIG#yF zo-c@ZJR=^SAs4bd8w1$bL7vs}#7HhP@g^Uk$+Xp{<@i!fh|+WfZLQ>K2ulIyG z-;!~MkEufm-$6-s){*##iEke;DcNUuS_hGX|5=gigt~E8#@C4iq@879cDA>KCI6mT zQPw%ZS;FX3gZQZxDY=M*IEzR;T!D94u5ryy@=r*{bdfgnXp%faatj+IxiV|F5EAW4pw+}#!Rdm3f8p#NQi$I}u_(#< z28D3?e%qROy7R3aL6`-SA}iAL#ADo=i7v_MY#@O{o#hpw$pINBxXTHd$yg2t8j;~1 zlc|S{G|5h+iFYDRJbc6>n%l?PZ}?b3KCYCb%k&~N$nt3KzggVAO^In(X;4kJPv|)I%~<-$E`ER*C@AJi^rFq z+z%bv#)Uk|?P0W#G#pP>_|h!-Od8lHf#=dd1gi{Ol=KB$8Z9n%(2FFx5*PVV+Ia-@oN2X9sMPz@d5HW{lgk%S`4$A=iDS$aV14PXc){%+j zDOAT`xS*)O7>Tyz8g!En>7z*eR<^hfBCiv^IgnliSS6HWjE1^-k~H6eOCuCI2|F1i zoWFW5awqw1^jGa4?Jz98jvob;IPv(Za!n7Msosr(iCbkClb?^Xb82L zXAs*b)TgynPmYdY+57O$;~?7E(I$T%f9+6is10Aew8@{wVed@zH75}{%gXI4JwGFN zk=4G5{-M6+*~GSUY(wpGSJzSUC704@5^;~#SC01lq4H2)jMi6!C5k~hQ>f7rUccoMo?=T}UiNU{|1)nTX_P175*b(7u_P0eOv0Af32RR_`643eP8n(70LK@**ZO!y*_5pC zBz@&y*CPZpd%x!`b!R7F`y19Ohe{1vm%^KM7n-`12@ulB-7i5&x!zMiOKBeVZ2Q5uGIKlDU;B z!ivLQo*OwVXBWcvTRmtA0pWS#!V_Hz5YzGWTuuzWPzw1Xa4;-6Fpd#3zsv!gX!Gvs+>So#@fdYdQw{kg%d%2DIS59mh#ohFl zGOg#kn1;~{erX;aEY>)!>#Qa7qmywW5AqWMbyx?XBRS2x^^r_?UL?1c8bTOzVfgfJ}9G=iv zBsRoWMT25O^mtuR_!2}vZz1|rB~ejKy}oGJQ>u%tbwvMKv8S|1?5JK9)x|vJRV^s$ zSzqJ6KQ1HvF2=8Dy0kVZmerA+v+Ith(BR{S54b}&RD$vhZl@!Ami1DNKlMzA{yrC{8ujN+!iJ`ehSTs3#&NR7smFKM#OOS{cupU z^3?KksMqra$Lku!&AH9hx_Ajb1jS_)gy%B-kXK@QjF8q`nqVkFQ+t$0-;7BWiHD15 z&1SK+F7CC0!`05cs!9>-pxBQFUCd29Tb?hTsh-f7FOG#REZScxr>Xg3ef(&VE?zD_ zw_X=-BxnNr<1~R&6rzbd8gfa1EZme!I;~}dzb%N~-bD1VV(K-&is*Rs3W_o8;zjY} zb*Z2j#EWoKJH~fL=M9e-Yj+PUBo9Shv7|;9fj6X=}lM=%?ELS7!5z&)NOHfou9q#4~X@hD++<@E&ioY6!U&WmR zVd8ZRiCi^4D=HErt6q)kqPLo6`9y4*S|r|R>8LLf>*_n|%f$zEgUUe#rO;GPp;*=E zMqO9~7sh=%ni0I5gf)BNh^nH7cCAx1;eQJDXhmMTwovpH{a9LV?Oxced}5Vcd}?a3 zPZ8I8iB9qn9jFss>F)uJ`H5GUzUE)%i-`WkD}gL&SPgoMdKKu)>b0Q5mFqz-RR|dn zBqX2t2lI(PL)`?rk#&wR9@Gfms$8GKrQ4w9H@W#?jrfn478HLQ{KR5HKIGOx>|!~) zD4qCq9vNEh8d5sZ6{TKs;NSUg1~2s`B3o-3?)0VLMeJ@gw>8`g`ukd5}=v=oFnuIBS$%ho??0#;HZ%V!8{NRj5+ETFFZ&DVw+lW8{V4b)Vpbm2{JI#zRPsCOd_eXT5 z?Ntt1yDy!bD)jrsE2!#1TB2~KTj6FYKI1jPoH){2snW`9V$ zYfE{aW`9_GXiFo}Rw8c48(AUNih4*exvpO~M3RAx&v^9v!>+S2QRgs2iNwsbg92x*{{;C8vF78_YwD?TZ1_Q%DI zwsag)t=M8q@4@X4yT46*X-m)54};{#4}q8xTpQ!>BjN)|S}Ss3vtLTQXNy{V67)W^rE4OS{DZ`d zK~nXZ#!3Dm!arC_d&1NG!vwuIw}U7~h|P8zIWtns9!_o7`ftxmK$>q$59Sp@y2O^^ z1qr-_OD(m<_JTr)^sjcP;}`LB{iDS-wiK#a0BMsg{j&aC|4HIzTl#(d0!VjB2{Xj; zM*Ju(UF`25gJO-?5?|A@)K5nulC1camMcg~v3PU*l9sFd}(5<^dy(nnC8Bi^$mfdS7EoAHvLG;e}4^Td0$^b*XRC)y{-wmYy)3&dym zFoZOJRe7WT0@2eYrMF{S{TGS*Z0T^-R{zD~v9o#pYsDZ8afx^p@A0T(6w+nl_Q_KE zGj8*X#XoFm3tU?);?t;2CSp=_up|?)N6fyE+P0M572oOU5o@F*y2?n}$`U2wUH%?% zA0*8GX7RVkJ^rO)&SL6#v*=KF`L7VUOQrOZvCF?gY+p{&wPKC&gny-Y&z7bb&-qu0 zSFez5U*sO}r^G*O>66^w`qzrbaoi@GG41#MtHo0*rS$XKPyN>j|CNwZNVYeE32~h$ zBoWf#U?HS3TYAPwh;^dImVROsLTa(4_fR3$i~hFs2`a>TF~XLvgU##37+d-dY+f%W z+R{NaA#M;;SV~>%|D9S0ajxCC9gQ2r`L^@`+BS&GZ0Q0FxKS*#rR5lKqe$7($0$jg z#C5iG93^R!*lbJhVmI9=Zn335#uq@^A*Ga`3dUx!({7}Ku~|GWCEiY3L~NCej9%8R zY!OYi6fVO}O|;umd1XR;TMV_OzLkZLI&EnuVquAKw)8Y&VTrSCDdlNAD83_R*MdICo85@T)Y$FO;q z=(44Cu(@5#w53~NbGtatmI{KYgxDc2w#6D4-649Ugjr~TyTyGhUCnd4Pdv(!<=VMu?prE3eyAbn;_LX8J@ia6I9%fCY*X{;@MON*xNm1-lTp|-Sz+veHQFSy@2Te^bV9<`->xR%-}er=1VvZts& z_;a&A($os0K9;Cp=whcRU`dviouVPDt&OFtQL6f(-*{Ks{o-u9Z6@087Zja2Ir)~hRKSdT8twTzWTN~tws<;*bB8VWy+6P0|Pb??gF)Dz8x zVyF5}0p_aq@s@x-)SN&-4glGuCW=Rhed-c)*e`A%s$SX93HtNq)5HPw^@a&zo4BN^ zOT48<6Vre{TRR)bIq@#=kJMfY`d)L7*r~h;YisH3BaWzV=dKn<#kTl$i0(G)q28*g zZyPlFl|?0Dzp^d934BrccR(+~?)yZQNKesiKptqp*;f5U-QD7tI?8jOcv@89S1m;w z9WN09ZCm^iw4Pt`1Ngk&id|WjdRCNaM*WXLgE{-*!FpI(qJG}+D)@tCZ-9C{KR_R~ znPy&q2dACt)eQ$lv-YhjLY_kFE-|9|u*ikSy6C6mN|IXxHTK0zW4*33OxQ zBxQ%3WRrL>{Is%7Q(6keHjS2ZoAw;OcU>zUuG|aX?;xsu)@U7ERhs$}09yB_wW*2E zm3^A0RjB*5@^C;s0BeQfEp2f@zPd$xP*AQO)m}`*)P3rXM4{+bM!|5mvZJa_-Klmr zwj-=BRuNqU{u6CURYLtlt8VS1QpOHc6_2mr8uJsJe!7gj->blge>U!nbrfwzR*?~w`A_2Cm0}--E zM7`J?cvxL4Xxq?W&tS-x8h)%cYkRQGb}0Q?UQl-^+rlraT^#Q93fXV=Jb}qHdtS(k zv5T*({X8G$(FSX6?G#6~D-&<4`_*4zBUMs@rI2ld@Cv7r9UaMz20WpHZsinqf@Y&> zl#x+wBu}7Tkp4I&;yoyKDWAZVah|IJCu=*^1@W=kI8UVMWbJ@j-Fm*(Y+I&4P|_~f za=C9VLbFVn>G^i$YAy9NC(lmx^Qv!YPjgarYBKR(%Q=YT`7Lg*$HYT;)3r}IQ`@91 z@x0LV9c`cTcEfGp=W36FKUr&6_9?T$qiC`6YR^vf50M5>vvxs(_B&ORV`4^LD{#t;W8(Wc13bsX zlgRA1VBrz8K36&1bHwI5J)NGT%ou)5>o3?9-mF-r?!;-dMX6w6-arc6s+!KIA!|79mS!Lh})E z1hI^Hk0?WoE^(Br#8IVBRin4tyPEc+HxKo^+k1~j{07>m-Z`kUl>P~EAf@gIwt8uI z^hbyJ4TUf<#5f2#u6dYuq4zu-EsrWe6rFBwUvxXFR5g$BF7Y-MA}Z?LcygP!E zVBxLO1duP9W_knarrdeniP#oPy;J12P~Wb*&b!__E56Y?hl}$ZZe1W!w7vVG^1bHW z=B-Du-R7;Rdds`R`{%L*`03aw{nSyV?_e0JJ;T%?jURc3sXjb0uJ8^nJ|Fw#)5cHH zw-tSNc~2|WS?6W76E=0xsa}XW+Nn-J3_8`@D;o5D-dl=VLGLb_qVM-^OTp*?uc2<% z4|tE%-mJf+4%DV0RiB98u6MDCnV{d-70}&43UGVvr@hqhjNVTxNW7^p)RrfN?=5wN zR^)k0{l49+$a4$}v0Fc)j!lGpOVGCr^z()W-ww8U6w_(*sd)RFy2KY3z2aNJ8m4{l zBTG-9j|ht^K`X>yTeW@I+E&KFv+k60wyKzqdS zU0YM$m>y<&gsD)-QH5!oX$RAJOxG~ITDd{24_>WU z(7c+F?M%OG(;LK#!M)7?glXz9U*2Vke_e=f8q+$a9U39?n66>Eo#{TNN0{#S+=e(E z_K@ZgrbihOUPhQII`MI)HB390cBc3;kLenw+nMfVdYGy3QRltEt3mhWuu-N;E*oW9 z!?c5GC)0UMyP2+Gx|Zp7raPGK%}tSseJmVidW5OSBV1t`XIjIwgJ~zzc}%;Ru3@^C z>2{_&nC@k|kLh8iN0^Fywx8dd!Z2|bYM6E~?PNNSX*bg~O!qQ9%v2Qc?3s2joyT+y z)9p<6GCj;x6tX_kHB7gIrVv;b4l@-YR$|)0bRN?+Ot&-L%k(hQo5W?lCcH>LPplB{ zi@C~;%FmQ5)FW!OHb9%CEz<7RKGAl2?)M(^R_h)5MfwW;eLc@tgRQ6F6d%C9>Iz>M zOAQI&pP#5i+w+M&86di_as=qkV&Z$4j;}ch{BKxib&&8E>Q4cEG>`a!1w>0~&H(*G zJ<<1A=Vu1tf8k!YFcQ)Td4osXoj)W6VK_Ima%X8YT6Q+@0hOfsBW^8iB!|j*FsY-m zp2qFH;&|apCxgoAzgyx%= zKfw5v%onkVaZE=xUABACx+b;l6H%zVt9+y^RKKr&s(!96@~-yYf+F6bEEj8Vuj^1& zh%GHDo_Tu3CDxwn8%7QG-HvA@ctphhGuU^W-^OZK8pXy=@=d_w)d_l5%?;sEV}0+3 zsfEoDgFjuqLFIHkikH~*fJJ|1`9`w^{Fa&iGv8WrLs%JXU30_a#9cyHekLwaI+ZEv zjrjXBagz5%b+G;m{C!b92iJ2@$6wdqRbSt&ZFszP_wx^5uI(QGSXAGA?o-363YR?@ ze{kDxFFtMUhF{b?cf+s0W!?8i-(fjEy(pfapI_xITH=k1(Av2kp{V&F`T1U<=I2*> z;)((ys=T^T6(|OMUUb=A^{c=6yoBdpU3}=e;zJ7ls`#tnujk3)L*B(o$)~HHdyeLU zfZ|o95FPk0V03KV_Kvr%F!#E>i~6LRCT*)49e#A-lh1E`=^gLTqQ~w3L-YQduLpi|DWC`^Z!%-+^ZfQ^%B+vYghE% zN2keCmBC&;6h-NVTfYp-j})k+XAX}DiwzqPHy|z{HYqO2l$4MXmzW%rT=2L#C2?SK z(i17kvl7e$lV&9pB$^Y=7E?;WtmG#Kni3wiBt1SWu{CWcz1C}EwBxDk1?9Hq22XZ% zsdv@`9Om1PrWy($9p=PQ$u9ZeHo;WK^F~F5mw@wC9K5EZN7G?h1bHVZ3Vuo-CCtl_ zmyHSykskH%=nId*u)Nmg5eN?hpC1)uaDrCl%&&q1q~B!tMMCpkm!B{Ex^d#@P_Cb! zz{^K_2Bf&cjBBe78ue8ar&w+r9p%0a&pX0HT4T9mbd38&XcTBl0a@%dCX_dha(>Wz ze-}mh4fkYN3)DaMK4gsE`)pW`;O+yDMO_|x@2lV;t-s)weSW^nD*G%)<-o;-K@a-f z($#MhEcY)z^!pgcj-9CncjrxGebu`vUs#?M_(6BwV{z9rQVM`?kOSX4+Q%ad=6c-H z3{~8*TwDFP(T)|pkhHm4;z&8%6~hPU44u3lRg_BE@@ODJE8~FCz;xilzzM(<;5Xmi zs~prN4+B01J)Ti=fSJHt;2a>5R%r!J13s-N70L`SYoW*kt^-dq~yJAw@m3Z8bC|=5NB~cj)i=qT7v5Jq9tc0N3A<7iolW>njUIKB) zg0Cn9iP04DfjA`rjU*^8nEme|e}_9(n<9F!czQy28MnOVBe=}YLZHk}G0+IaLa$5& zVgXeS0LspryJWefmq0%fXsrN)5g`wHda8gJnX(F41Y84zPCCYQSDed$p)PEVzDwt(hv!}MV^ozH_7aL9~dRKzntOSoZ1DwT7` zj8x}USRQiWiSTst=J-4#t>>J)Va~Pp^|eyJ2l{$Gl{ZY?KABJK9*Z!RnK1}c1DXRq zs4m};&&+gFr%&d%@qu;uo`~p`AA^WPKue?xx4>szzMERE`9SofReTWU^?VDoR&&a? zIC6@`O|93R@-3dU-BxU|snp5Ff>5cr~J`$G9ol3>rJ~y6LFcoFc2b@_nktT6t zQ8GHzQ8Z5V3FFA8l4urBdCKZs8`hPggA*u-e|{>5KH~Iw3sgfmzdf&CfFWEr%OZLP zMP@VJ_XwmkooRk5<@1pF$uyCR=U1R_x97)zhAbGS21Rh*0uw#OTNcQvXkTEa@7ZOc zm1gqYg(2dd407UK3$tlI#MRExSmN3&4S9_G_@!d6fcqL5b-TNwgkhnK!90%Q_ln~Y z@1Mo1$<8Yl#e+62@}tk7kKk*I+~^W)kMrb`FihgIk_xpZlJ6}H7B`)NseTf-#u)aNHryK zzvU)sX3KIb-Qe@fi&U3nS(W*z6>gG6HRh8mqE-J9{I3x(rObZPB`+L^Zb7^>)IH6+V-JiQ4;2h8k^T*NyvJ z?Am;h@+=>G%$qN6+>TsV)s*0gJ2h8{gzfyZ=ZLa+Z|%=WQ)}HE_;e z^GX+e^rU2Sdz&{O*gP3SwFPeZo-iVJk%3{@^2AVg+4&cDu63XaHtsTGVrGDD;w_+C z_(RYJHoTHbJ2?$>H?IJ-@m|ok_|7Y4I>fQBn&~*t25sjC&<;NJ>M**nkA zdQ;pKgWfcNHfTtFdpyzUsy#92bQ9>$np0SdBmV-Yd%9CtizhjW4-I&o$Afhj znNDEKT0B*sNwy6wTZx`y<7=r{*cQ;2xB>L9+yUCmKDJOpGhR62rj;|f-gc6H<-*sC z=r=wEdY9AQu&O~G{Pr8=>Oc=3^yYlZNoJI2Z1ODoio|v~t-gv;DEZle?)L_9LD@PP! zyK>+jVG(_GC?18?=WsR6(u>c&Hv!E)bbO9%w(j^;G<)lK1~uA-ynoe^ zs@QmP0aRN~jsxF$GKQ*c?(Kf^O*4KRs%DMgz?DW@(Z}s7UfLn2B0w#tCek^6IWBoKB^&+7_tjb)FsN$QZX{Fk$F z>WHzt=xmalinAG*@;hgfQBEE@H%&E;qBE*24u;eU3%uMW@TqnF|^#ygjisfi!@ayWg-^S-pI4iowMmyzVaIagNm z=F9%-z=_;^Ia0!Bmy?iCm#@s&MAJa)c^T+YZvD!NwHtdS3N+`+f2jW1{QZ^4K>zID z`{9fO@DbcNbSPojoOBg?LpIL^49@2NylSE{?zn2jy2-f~16plK{_732h{LbPgJxcT2L;vZMm*k@v>RqMBA3f=nAHBc{2Cx7m#^O_cgY%|uP=9P zeO2C!rkS=^Zl*fR%wG9%g9B}~75_5FL5}$BuM;ppTfg5_k|VjBA;+-t?scrY!h6X? zi);=5u2!j37*$FotFTB|EgDoBP8&q0ggRk#pkefal)Ocm1NEmJqEV`LiLWHI2%{sO zvI~oZcSM6Dlt;yR2`6NI9WL?>6sGpj4`8LTe8nJ^EM20P6L}(_tZ3p9$#0PQ7(`tm z;RW66h_vj`y}pzDEUkyMJE1J&XLrC$8iba9<^lD4)uS#R(=1cuCxKMMKV0#LDh8SM``8u1oZp zB68g*5}V169yC*Y?neG<;uP_d)FtY=0*mJMFBLoU=OGY#Q+be3U$@rrD}~h zB~@#rYLdwAL17sA;vN{s4yjs7`$d2!9QKPePe>gC1vLuLDWyANiWfxyAfYE-=!w@< z@sk(zk+{;0@q#ll_`Oy@*RFUpW9xzLOHAtf+HiUc2I-$%6iU{kg){7bmwVLPiQRFDjNY8rB6EeO(gjW>dglD%z(P7o~BW=7`$b*?m!$n3v8tJ0z zND1cFao+ZpepE`XH~#47BL)}B;q|A%bi-cLp9HCcM~KKc>TMV-E0H#uvN(DUYP)MZ zEeS%NtHx4Pfc&?Flmt@(u0)gk7sH5>jqu{2G!Mr2#sf1xd40RguL~T>{6b#;qd7(X zL!v(||DGVxK9xe%u z80L8^N}Fad$RmZf&ZdCP)ZN#MThgyT_Md6Gu^Mb|-PkD7mY}TyF+)O;Xq8Z+OXa$> zN|)B_Qmro4Ym&B5Lxg1sGPfUVwy(~1f}Jc{mqI%*L{39(8TsK;Lo_d?K!g0=9IB}d zAAvRLto+PeC&J-KH6o-89iG`2|KaGy{a}kUmZC)sj40+3439=)bJq+`HDFy;abhX? zVrDv}H7iz87HDl64#p|U!+K+Pz~0jv`$1$bgP%LT!`{)2@}neMXT$J+%lmqdZis{M z!xxFTunZ&c$Aa#wIfclzjjuNCGIXH?`PyfR#By|Xrbq{1+ZA)m@vuCf6pDG}NR9(O z_Dtd+SZu%IZE5`#st`?OkOznwjipB6WkpMiM684gQ6*umXppc;m$v9qgD&mVrQNz@ z)1|j`>5wiR*QIt{>d>W&x^zvKzSX6lb?Kfa8Js4`g}B3tPPEw+Il44mmkM;LNS8`C$>#s@0`>O)_jp^AC&g3M|4;#raCamYY1b zk4nULo`OF=HCFEF7b;N*d_-auf+y;L*Ir76I;_!QhYtI7=+NPg1_m!w&|tms*x%VP zzq7L+upw1oow^oSR~geJxzMUb)hYzuCK@EPiM@ajS+aw>9zY#=aLEU5h})|uMh%{3 z@4cE_yBi9iix!ESC{;YNi5%6PLH7BZXlsybF#c7Q7d*Ybp>L>e@J8)Fdi!&`=~JKo zR!|Sob(cR2Dqht;3+kT*H3&yitw{e_Q2)Ob)Gz3Yqkq4D?5dW9_J_iN?&VRdGwMFf Xj~LXM+-MKJOm0s9YrVZrb>069H~53d delta 7373 zcmeHLiCa}imcQr1V+-heA|N}64^#wXj{!u22`DPEhzN>e;sUs#ASfzejGDN#ax~>6 zVJ6Ek({@B5FXn+?Cu(A1j7eNNxDc0Uj2f4Wn$FVGW4eEJOVgS8=9_hQo$Xeg zsycP*7EQODn{GLGWV?l!){G5peC^=BXDwJ9ID1Lzq`pVHU)nNe(2Y&I2hCm|5WcN5 zV+XzI?&vhRNK3W!)ili+kNTOkE##-w56=t>i3&-KPKX{J6&D?s6dRWi{b=Nf5wjjm zDj)Gw`O{C$9Pw!U%n?b$lgpFhW+udzC&VVk4UeBaGd?~cIleQajo$3Paj;{;OlN=F zmegW5*CrR${tmwTWQu7Vq#Yca74Mo2ZWT<=@cgU@KAz?18Lov`bZGEc)H|9uIDtHa zHO*UduuMg)X1tUP+v}uh_|yFGiUZ%x^5?g*%p8zy4wPP_;bn#O+ygIfc$pyU+`J%* zca3%7FQ0Vrb#a3VzeWWH_0}{eo!`lh@K}R3K6h1Co$qExdVB=UacE}2)1QZo2@Za; zV&1F?<@2RNdl(Q$iPbB)d=PjuPa8X3zvag7j`h~kwu9jNER zMVg_CK3rt`C@0&|;}f`58nZ`Ou2A-Dd{WbzWLsH4G@y+E%23AwV}Uuq5x|MSQNTRl zBwzt>F0cr=2v`hU44eY20Zs)z2b>1n4lDx-;8Q>kElKmxMj;#09|swOCkD}H;hBV| z08fVIh2-$khJc@iC&G|jH8<@Z8hHzkZp5=GW6KG%X{w*^c`OI{8-Mg5}#`(3(Fr!Dyj7apD1{x(@ zxC1`xXSnMLh7UwDrSd_TGx;`Xj^Q+;+>swGch~ck(~NR6mDsAwZ92Wg)~AE@mwau0 zt0p+`wmD{cgxltvrqR4|ZnA#IpWmLFL|J@$ZVDCgkcwpeWB|{sSgn5-z*j3O^*;x2 ze&s+3ODjt#l225|P%=|hF0JLfssgfbTU9&)I$M>a9}DL2d2tlLQ|2|eU#Ra7;dkc`_1*u#EDO{b?A~qINMV>#XQl-ym-n7c?Tay9**g z0~e<2Jp;LHVG@P&_JwjOPAp8OUF^E3fqeP?qCl}fmz?Jc!*k?!%nBZuI9bH@<>7Zr-#6p5Je}MwDke|GO^; z^W44lM@&y=%N)#yFaHT+zs<>V?BUy1xvEi&v1Jo&)3VhqvdxBVVrBpxCc;oHi@ zNDmqGKmY4m2O7cF-zQ^1rh#VjcF=AJ*K(~Io&MmoL5lR$U!cF<1lc_W3o*s?1{KTyOIc8%0Adz%5riuki# zV-Y}gyFbrp$Hr}U*GCn}3INfJXsX*I5lt)TWW&k4+mWxssZ2SUcbgGf=14$nbI z;xiNKV#i@KPL_j*Bgx-(`>;QuJJ%x{TrYacJx`h^U+VVcjw6F*SG`9jpxGfG&ymfx zd|ZNNZ-1Oi(`{)-uQ^f*TaPbfr6CQ^=7| zoQ}c4LucY~JS3ip!Pz$JOfpq+>zR1{ST>(LGaGq7;%o}7=GwC{*iUVsZ*b4qWc~UW z?$aBm|2T#p?~T@f9>a@!>q?~O+h8S+J`esL_X{UV79_?<6)r+=Em6V3%m zSa8l8U|V~xl4ud%J->&x@~anOXa}FT5U>ArJUd;Cmeu=WE;aMB7jxvXaJzJc{lc>rdn>sVAo{aOxDj&;^jA! z^sAHjO~AcLeB$2^Q2Yq~Xw9Obz-Yj zu~J=;sy%{ypgO8lg+5SSQ~XBBJBVr@G6veM zLdLyASRx2tcJ}fJdS7>Y&KNJkPGzbI6}dy{30I}VO7W!}PkYBusv)WfN5xAfE1g`nD`B6<9_`odh`y@`3P_TZ-&0ds4eS+Oy zk@sQz*7UJ2sH7Vvnz}W^-(Ir_Q%pNVXf^qmkx_3?}(a;i=erVDprFrnoKr zuJ*@&Ta+;a=TML`P8S(V(N>U{Cc!E?B}6GHK}o4f%2ZO0lJX77NYp@4z7#W8hnyXx z*q6W-i_SV|zYCDdu(h6iaK#Y2>&VZP6QXG&4VCFRut|!Q*UR-H6poZ70_zd5FD`>+ z%2)@sO0{x%kl0+0HK-QV(h1q3Wf>NyEU<36_^gh+u{4*Y)jdkn78;G38lp8VLAACA z?9T>E?ILd({0_%x+J0q}w~|7|_JTdCLTVES;fE`UxUdXEIEjoNWH<%NT)_?aG{ z1iA0sMeK4+r>__fz@aNDm*ZvmiBcivFURb>lP|}A5G)Q~@vgM)#WzEsp)$$OhfM~H zI&En{OT$Ezgb|`y!YI)yAzMkgN}8;sG9}Gc(tIV=Drtq1u>Iug8oJBR@g+|o0kVe#1Z$m~h8&<25qLh@Nq*Ntk zDk(=v`G#aF!EuxzLL0Ffn{iq-VKwCG9wja{q5Jp1IvK1y%nhqNzXFu?<}WOwifu-4 zVG7a}lq#rGzzX&#II7^90taDPjn{(>2uwkdb$XCi52}|T$@Iz)&C;_-v`Sbkx&eW* zQe)2ZeNVLC=ueBc>V94HmJRDMgIhOpf{;Kl_5s^rFApDKsK~ z@U*nhx73ol(fB{NeakNT-0Q#9(f8u+@w8}zq2`db~vHvFxQ{=cfD7wM|wfO{(s l9Wu`QbqA`V8zXZ6DR87`M}_?Zd%zWPcluw;>