SCManager.psm1
Function Restore-SCManagerPermission { <# .SYNOPSIS Restore the default SC Manager permissions .DESCRIPTION Restore the default SC Manager permissions by removing AccessDenied to NT AUTHORITY\NETWORK .EXAMPLE Restore-SCManagerPermission -Whatif .EXAMPLE Restore-SCManagerPermission -Verbose -Confirm:$false #> [CmdletBinding(SupportsShouldProcess,ConfirmImpact='High')] Param() Begin { $HT = @{ Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\Security' ErrorAction = 'Stop' } } Process { if ($PSCmdlet.ShouldProcess(('Item: {0} Property: {1}' -f $HT['Path'],'Security'),'Change binary value')) { # Get current permissions $csd = $( try { New-Object -TypeName System.Security.AccessControl.CommonSecurityDescriptor -ArgumentList ( $true, $false, ((Get-ItemProperty -Name Security @HT).Security), 0 ) } catch [System.Management.Automation.ItemNotFoundException] { New-Object -TypeName System.Security.AccessControl.CommonSecurityDescriptor -ArgumentList ( $true, $false, ((& (Get-Command "$($env:SystemRoot)\System32\sc.exe") @('sdshow','scmanager'))[1]) ) } catch { Write-Warning -Message "Failed to read Security in the registry because $($_.Exception.Message)" } ) $csd.DiscretionaryAcl | Where-Object { $_.SecurityIdentifier.Value -eq 'S-1-5-2' } | ForEach-Object { try { $csd.DiscretionaryAcl.RemoveAccessSpecific( $_.AceType, $_.SecurityIdentifier, $_.AccessMask, 0, 0 ) Write-Verbose -Message "Successfully removed $($_.AceType) for NT AUTHORITY\NETWORK" } catch { Write-Warning -Message "Failed to remove access because $($_.Exception.Message)" } } # Commit changes try { $sddl = $csd.GetSddlForm([System.Security.AccessControl.AccessControlSections]::Access) $null = (& (Get-Command "$($env:SystemRoot)\System32\sc.exe") @('sdset','scmanager',"$($sddl)")) Write-Verbose -Message 'Successfully restored Service Control Mananger ACL' -Verbose } catch { Write-Warning -Message "Failed to restore Service Control Mananger ACL because $($_.Exception.Message)" } } } End {} } Function Set-SCManagerPermission { <# .SYNOPSIS Set the hardened SC Manager permissions .DESCRIPTION Set the hardened SC Manager permissions by adding AccessDenied to NT AUTHORITY\NETWORK .EXAMPLE Set-SCManagerPermission -Whatif .EXAMPLE Set-SCManagerPermission -Verbose -Confirm:$false #> [CmdletBinding(SupportsShouldProcess,ConfirmImpact='High')] Param() Begin { $HT = @{ Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\Security' ErrorAction = 'Stop' } } Process { if ($PSCmdlet.ShouldProcess(('Item: {0} Property: {1}' -f $HT['Path'],'Security'),'Change binary value')) { # Get current permissions $csd = $( try { New-Object -TypeName System.Security.AccessControl.CommonSecurityDescriptor -ArgumentList ( $true, $false, ((Get-ItemProperty -Name Security @HT).Security), 0 ) } catch [System.Management.Automation.ItemNotFoundException] { New-Object -TypeName System.Security.AccessControl.CommonSecurityDescriptor -ArgumentList ( $true, $false, ((& (Get-Command "$($env:SystemRoot)\System32\sc.exe") @('sdshow','scmanager'))[1]) ) } catch { Write-Warning -Message "Failed to read Security in the registry because $($_.Exception.Message)" } ) # If already present if ('S-1-5-2' -in ($csd).SecurityIdentifier.Value) { # Remove first $csd.DiscretionaryAcl | Where-Object { $_.SecurityIdentifier.Value -eq 'S-1-5-2' } | ForEach-Object { try { $csd.DiscretionaryAcl.RemoveAccessSpecific( $_.AceType, $_.SecurityIdentifier, $_.AccessMask, 0, 0 ) Write-Verbose -Message "Successfully removed $($_.AceType) for NT AUTHORITY\NETWORK" } catch { Write-Warning -Message "Failed to remove access because $($_.Exception.Message)" } } } # Add it now 'S-1-5-2' | ForEach-Object { try { $csd.DiscretionaryAcl.AddAccess( [System.Security.AccessControl.AccessControlType]::Deny, [System.Security.Principal.SecurityIdentifier]"$($_)", 0xF003F, # int accessMask 0, 0 ) Write-Verbose -Message 'Successfully added AccessDenied for NT AUTHORITY\NETWORK' } catch { Write-Warning -Message "Failed to add access because $($_.Exception.Message)" } } # Commit changes try { # Reboot would be required with the following method # $data = New-Object -TypeName System.Byte[] -ArgumentList $csd.BinaryLength # $csd.GetBinaryForm($data,0) # Set-ItemProperty @HT -Name Security -Value $data $sddl = $csd.GetSddlForm([System.Security.AccessControl.AccessControlSections]::Access) $null = (& (Get-Command "$($env:SystemRoot)\System32\sc.exe") @('sdset','scmanager',"$($sddl)")) Write-Verbose -Message 'Successfully set binary ACL in the registry' -Verbose } catch { Write-Warning -Message "Failed to set Security in the registry because $($_.Exception.Message)" } } } End {} } Function Get-SCManagerPermission { <# .SYNOPSIS Get the current SC Manager permissions .DESCRIPTION Get the current SC Manager permissions .EXAMPLE Get-SCManagerPermission .EXAMPLE Get-SCManagerPermission | Select Transl*,Secu*,AccessMask,AceType | ft -AutoSize #> [CmdletBinding()] Param() Begin { $HT = @{ Path = 'HKLM:\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder\Security' ErrorAction = 'Stop' } } Process { $( try { New-Object -TypeName System.Security.AccessControl.CommonSecurityDescriptor -ArgumentList ( $true, $false, ((Get-ItemProperty -Name Security @HT).Security), 0 ) } catch [System.Management.Automation.ItemNotFoundException] { New-Object -TypeName System.Security.AccessControl.CommonSecurityDescriptor -ArgumentList ( $true, $false, ((& (Get-Command "$($env:SystemRoot)\System32\sc.exe") @('sdshow','scmanager'))[1]) ) } catch { Write-Warning -Message "Failed to read Security in the registry because $($_.Exception.Message)" } ).DiscretionaryAcl | ForEach-Object { $_ | Add-Member -MemberType ScriptProperty -Name TranslatedSID -Value ({ $this.SecurityIdentifier.Translate([System.Security.Principal.NTAccount]).Value }) -PassThru } } End {} } # SIG # Begin signature block # MIIcgQYJKoZIhvcNAQcCoIIccjCCHG4CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAQtN1gMFgkth71 # ANiZvhnlOk3us7CkQkvIcQLpFrJVKKCCF4swggUUMIID/KADAgECAhABAZ6i5Wmo # tnNvfvusN1s5MA0GCSqGSIb3DQEBCwUAMHIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK # EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xMTAvBgNV # BAMTKERpZ2lDZXJ0IFNIQTIgQXNzdXJlZCBJRCBDb2RlIFNpZ25pbmcgQ0EwHhcN # MTcwODI4MDAwMDAwWhcNMTgwODMwMTIwMDAwWjBRMQswCQYDVQQGEwJGUjEaMBgG # A1UEBxMRU291ZmZlbHdleWVyc2hlaW0xEjAQBgNVBAoTCUVtaW4gQXRhYzESMBAG # A1UEAxMJRW1pbiBBdGFjMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA # udQXQljAUygjV0pzFPFM8CLAXEhqnOimdGx+cOnOiJVJQ8bAgY/JtItEDOBHks3h # 0CpWecDho7BNp1QX4WLf4FVhutStn9sYJNVH4nBftx61HOZpB84xqWgYM6Swocyw # SBM/gCfuyvzwSbHd3EzK4FGvLY7tY0mlZk4AqrLzrQiIgU64pm5BuKarcIrmf6DT # FDwnPp602L9dxc5GRh14TW3e9Rv0cQGYEZ0PVeP7f55r0yrJ8/U0d1+c7vyDrDph # 0v7ONQ3DqRdSCbfbbsIHWBmbcfWnKjPqQwx0wDwyrnNgR3SdDYng14e19essmVLu # rukr+q6bumqJmU49jLhQQQIDAQABo4IBxTCCAcEwHwYDVR0jBBgwFoAUWsS5eyoK # o6XqcQPAYPkt9mV1DlgwHQYDVR0OBBYEFLIMT65OW/ALumuYWEUD3aq/K3yqMA4G # A1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzB3BgNVHR8EcDBuMDWg # M6Axhi9odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vc2hhMi1hc3N1cmVkLWNzLWcx # LmNybDA1oDOgMYYvaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJl # ZC1jcy1nMS5jcmwwTAYDVR0gBEUwQzA3BglghkgBhv1sAwEwKjAoBggrBgEFBQcC # ARYcaHR0cHM6Ly93d3cuZGlnaWNlcnQuY29tL0NQUzAIBgZngQwBBAEwgYQGCCsG # AQUFBwEBBHgwdjAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29t # ME4GCCsGAQUFBzAChkJodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNl # cnRTSEEyQXNzdXJlZElEQ29kZVNpZ25pbmdDQS5jcnQwDAYDVR0TAQH/BAIwADAN # BgkqhkiG9w0BAQsFAAOCAQEARbx8SlZoCjbTbGDvKEx1TQMCphAZMniGqZr44TSW # 5hFpyNqlCU8b9j9qWshEBkUm/tpZ3D8T3iCYY+ZJW3728YTNKyXVV1CNUb/jFOD8 # mAM38Sg0S1zYAuOZ2/VstY7VIlF7nExBeQpeZ31Sl6BXJOD80ywqvDkJgkzjxJ0z # JLiORJKS6HSGcTLJAcMWjJPeFpj2IEQJ7UCLCYm6L7rSE6zoatGGmW4fu7BOiyt8 # BTHGP6OM3kzPI/d99B2ZTXcmQD3KC0VimpDNqzLQX/BilYn/5N4paIhoR1+1K2sh # E/VxnO4wWYuorwyQYdieMF9cEWEGFylwemEKgIRs8ux5UTCCBTAwggQYoAMCAQIC # EAQJGBtf1btmdVNDtW+VUAgwDQYJKoZIhvcNAQELBQAwZTELMAkGA1UEBhMCVVMx # FTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNv # bTEkMCIGA1UEAxMbRGlnaUNlcnQgQXNzdXJlZCBJRCBSb290IENBMB4XDTEzMTAy # MjEyMDAwMFoXDTI4MTAyMjEyMDAwMFowcjELMAkGA1UEBhMCVVMxFTATBgNVBAoT # DERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTExMC8GA1UE # AxMoRGlnaUNlcnQgU0hBMiBBc3N1cmVkIElEIENvZGUgU2lnbmluZyBDQTCCASIw # DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAPjTsxx/DhGvZ3cH0wsxSRnP0PtF # mbE620T1f+Wondsy13Hqdp0FLreP+pJDwKX5idQ3Gde2qvCchqXYJawOeSg6funR # Z9PG+yknx9N7I5TkkSOWkHeC+aGEI2YSVDNQdLEoJrskacLCUvIUZ4qJRdQtoaPp # iCwgla4cSocI3wz14k1gGL6qxLKucDFmM3E+rHCiq85/6XzLkqHlOzEcz+ryCuRX # u0q16XTmK/5sy350OTYNkO/ktU6kqepqCquE86xnTrXE94zRICUj6whkPlKWwfIP # EvTFjg/BougsUfdzvL2FsWKDc0GCB+Q4i2pzINAPZHM8np+mM6n9Gd8lk9ECAwEA # AaOCAc0wggHJMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMBMG # A1UdJQQMMAoGCCsGAQUFBwMDMHkGCCsGAQUFBwEBBG0wazAkBggrBgEFBQcwAYYY # aHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAChjdodHRwOi8vY2Fj # ZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3J0MIGB # BgNVHR8EejB4MDqgOKA2hjRodHRwOi8vY3JsNC5kaWdpY2VydC5jb20vRGlnaUNl # cnRBc3N1cmVkSURSb290Q0EuY3JsMDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2Vy # dC5jb20vRGlnaUNlcnRBc3N1cmVkSURSb290Q0EuY3JsME8GA1UdIARIMEYwOAYK # YIZIAYb9bAACBDAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5kaWdpY2VydC5j # b20vQ1BTMAoGCGCGSAGG/WwDMB0GA1UdDgQWBBRaxLl7KgqjpepxA8Bg+S32ZXUO # WDAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkqhkiG9w0BAQsF # AAOCAQEAPuwNWiSz8yLRFcgsfCUpdqgdXRwtOhrE7zBh134LYP3DPQ/Er4v97yrf # IFU3sOH20ZJ1D1G0bqWOWuJeJIFOEKTuP3GOYw4TS63XX0R58zYUBor3nEZOXP+Q # sRsHDpEV+7qvtVHCjSSuJMbHJyqhKSgaOnEoAjwukaPAJRHinBRHoXpoaK+bp1wg # XNlxsQyPu6j4xRJon89Ay0BEpRPw5mQMJQhCMrI2iiQC/i9yfhzXSUWW6Fkd6fp0 # ZGuy62ZD2rOwjNXpDd32ASDOmTFjPQgaGLOBm0/GkxAG/AeB+ova+YJJ92JuoVP6 # EpQYhS6SkepobEQysmah5xikmmRR7zCCBmowggVSoAMCAQICEAMBmgI6/1ixa9bV # 6uYX8GYwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERp # Z2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UEAxMY # RGlnaUNlcnQgQXNzdXJlZCBJRCBDQS0xMB4XDTE0MTAyMjAwMDAwMFoXDTI0MTAy # MjAwMDAwMFowRzELMAkGA1UEBhMCVVMxETAPBgNVBAoTCERpZ2lDZXJ0MSUwIwYD # VQQDExxEaWdpQ2VydCBUaW1lc3RhbXAgUmVzcG9uZGVyMIIBIjANBgkqhkiG9w0B # AQEFAAOCAQ8AMIIBCgKCAQEAo2Rd/Hyz4II14OD2xirmSXU7zG7gU6mfH2RZ5nxr # f2uMnVX4kuOe1VpjWwJJUNmDzm9m7t3LhelfpfnUh3SIRDsZyeX1kZ/GFDmsJOqo # SyyRicxeKPRktlC39RKzc5YKZ6O+YZ+u8/0SeHUOplsU/UUjjoZEVX0YhgWMVYd5 # SEb3yg6Np95OX+Koti1ZAmGIYXIYaLm4fO7m5zQvMXeBMB+7NgGN7yfj95rwTDFk # jePr+hmHqH7P7IwMNlt6wXq4eMfJBi5GEMiN6ARg27xzdPpO2P6qQPGyznBGg+na # QKFZOtkVCVeZVjCT88lhzNAIzGvsYkKRrALA76TwiRGPdwIDAQABo4IDNTCCAzEw # DgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYB # BQUHAwgwggG/BgNVHSAEggG2MIIBsjCCAaEGCWCGSAGG/WwHATCCAZIwKAYIKwYB # BQUHAgEWHGh0dHBzOi8vd3d3LmRpZ2ljZXJ0LmNvbS9DUFMwggFkBggrBgEFBQcC # AjCCAVYeggFSAEEAbgB5ACAAdQBzAGUAIABvAGYAIAB0AGgAaQBzACAAQwBlAHIA # dABpAGYAaQBjAGEAdABlACAAYwBvAG4AcwB0AGkAdAB1AHQAZQBzACAAYQBjAGMA # ZQBwAHQAYQBuAGMAZQAgAG8AZgAgAHQAaABlACAARABpAGcAaQBDAGUAcgB0ACAA # QwBQAC8AQwBQAFMAIABhAG4AZAAgAHQAaABlACAAUgBlAGwAeQBpAG4AZwAgAFAA # YQByAHQAeQAgAEEAZwByAGUAZQBtAGUAbgB0ACAAdwBoAGkAYwBoACAAbABpAG0A # aQB0ACAAbABpAGEAYgBpAGwAaQB0AHkAIABhAG4AZAAgAGEAcgBlACAAaQBuAGMA # bwByAHAAbwByAGEAdABlAGQAIABoAGUAcgBlAGkAbgAgAGIAeQAgAHIAZQBmAGUA # cgBlAG4AYwBlAC4wCwYJYIZIAYb9bAMVMB8GA1UdIwQYMBaAFBUAEisTmLKZB+0e # 36K+Vw0rZwLNMB0GA1UdDgQWBBRhWk0ktkkynUoqeRqDS/QeicHKfTB9BgNVHR8E # djB0MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1 # cmVkSURDQS0xLmNybDA4oDagNIYyaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0Rp # Z2lDZXJ0QXNzdXJlZElEQ0EtMS5jcmwwdwYIKwYBBQUHAQEEazBpMCQGCCsGAQUF # BzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQQYIKwYBBQUHMAKGNWh0dHA6 # Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRENBLTEuY3J0 # MA0GCSqGSIb3DQEBBQUAA4IBAQCdJX4bM02yJoFcm4bOIyAPgIfliP//sdRqLDHt # OhcZcRfNqRu8WhY5AJ3jbITkWkD73gYBjDf6m7GdJH7+IKRXrVu3mrBgJuppVyFd # NC8fcbCDlBkFazWQEKB7l8f2P+fiEUGmvWLZ8Cc9OB0obzpSCfDscGLTYkuw4HOm # ksDTjjHYL+NtFxMG7uQDthSr849Dp3GdId0UyhVdkkHa+Q+B0Zl0DSbEDn8btfWg # 8cZ3BigV6diT5VUW8LsKqxzbXEgnZsijiwoc5ZXarsQuWaBh3drzbaJh6YoLbewS # GL33VVRAA5Ira8JRwgpIr7DUbuD0FAo6G+OPPcqvao173NhEMIIGzTCCBbWgAwIB # AgIQBv35A5YDreoACus/J7u6GzANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJV # UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu # Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYx # MTEwMDAwMDAwWhcNMjExMTEwMDAwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UE # ChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEwHwYD # VQQDExhEaWdpQ2VydCBBc3N1cmVkIElEIENBLTEwggEiMA0GCSqGSIb3DQEBAQUA # A4IBDwAwggEKAoIBAQDogi2Z+crCQpWlgHNAcNKeVlRcqcTSQQaPyTP8TUWRXIGf # 7Syc+BZZ3561JBXCmLm0d0ncicQK2q/LXmvtrbBxMevPOkAMRk2T7It6NggDqww0 # /hhJgv7HxzFIgHweog+SDlDJxofrNj/YMMP/pvf7os1vcyP+rFYFkPAyIRaJxnCI # +QWXfaPHQ90C6Ds97bFBo+0/vtuVSMTuHrPyvAwrmdDGXRJCgeGDboJzPyZLFJCu # WWYKxI2+0s4Grq2Eb0iEm09AufFM8q+Y+/bOQF1c9qjxL6/siSLyaxhlscFzrdfx # 2M8eCnRcQrhofrfVdwonVnwPYqQ/MhRglf0HBKIJAgMBAAGjggN6MIIDdjAOBgNV # HQ8BAf8EBAMCAYYwOwYDVR0lBDQwMgYIKwYBBQUHAwEGCCsGAQUFBwMCBggrBgEF # BQcDAwYIKwYBBQUHAwQGCCsGAQUFBwMIMIIB0gYDVR0gBIIByTCCAcUwggG0Bgpg # hkgBhv1sAAEEMIIBpDA6BggrBgEFBQcCARYuaHR0cDovL3d3dy5kaWdpY2VydC5j # b20vc3NsLWNwcy1yZXBvc2l0b3J5Lmh0bTCCAWQGCCsGAQUFBwICMIIBVh6CAVIA # QQBuAHkAIAB1AHMAZQAgAG8AZgAgAHQAaABpAHMAIABDAGUAcgB0AGkAZgBpAGMA # YQB0AGUAIABjAG8AbgBzAHQAaQB0AHUAdABlAHMAIABhAGMAYwBlAHAAdABhAG4A # YwBlACAAbwBmACAAdABoAGUAIABEAGkAZwBpAEMAZQByAHQAIABDAFAALwBDAFAA # UwAgAGEAbgBkACAAdABoAGUAIABSAGUAbAB5AGkAbgBnACAAUABhAHIAdAB5ACAA # QQBnAHIAZQBlAG0AZQBuAHQAIAB3AGgAaQBjAGgAIABsAGkAbQBpAHQAIABsAGkA # YQBiAGkAbABpAHQAeQAgAGEAbgBkACAAYQByAGUAIABpAG4AYwBvAHIAcABvAHIA # YQB0AGUAZAAgAGgAZQByAGUAaQBuACAAYgB5ACAAcgBlAGYAZQByAGUAbgBjAGUA # LjALBglghkgBhv1sAxUwEgYDVR0TAQH/BAgwBgEB/wIBADB5BggrBgEFBQcBAQRt # MGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEF # BQcwAoY3aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJl # ZElEUm9vdENBLmNydDCBgQYDVR0fBHoweDA6oDigNoY0aHR0cDovL2NybDMuZGln # aWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDA6oDigNoY0aHR0 # cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNy # bDAdBgNVHQ4EFgQUFQASKxOYspkH7R7for5XDStnAs0wHwYDVR0jBBgwFoAUReui # r/SSy4IxLVGLp6chnfNtyA8wDQYJKoZIhvcNAQEFBQADggEBAEZQPsm3KCSnOB22 # WymvUs9S6TFHq1Zce9UNC0Gz7+x1H3Q48rJcYaKclcNQ5IK5I9G6OoZyrTh4rHVd # Fxc0ckeFlFbR67s2hHfMJKXzBBlVqefj56tizfuLLZDCwNK1lL1eT7EF0g49GqkU # W6aGMWKoqDPkmzmnxPXOHXh2lCVz5Cqrz5x2S+1fwksW5EtwTACJHvzFebxMElf+ # X+EevAJdqP77BzhPDcZdkbkPZ0XN1oPt55INjbFpjE/7WeAjD9KqrgB87pxCDs+R # 1ye3Fu4Pw718CqDuLAhVhSK46xgaTfwqIa1JMYNHlXdx3LEbS0scEJx3FMGdTy9a # lQgpECYxggRMMIIESAIBATCBhjByMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGln # aUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhE # aWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBTaWduaW5nIENBAhABAZ6i5Wmo # tnNvfvusN1s5MA0GCWCGSAFlAwQCAQUAoIGEMBgGCisGAQQBgjcCAQwxCjAIoAKA # AKECgAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO # MAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEILRY9drTvoXk+vq5xBANIR/w # gtEOr6hxsd9QmLw4RkpCMA0GCSqGSIb3DQEBAQUABIIBABsLxhgs58+2iS9rFGeO # 58RYpuNIeDF9mWhtG+zu+gFjvehyha/rOttRju1xkWmP4wdgSbYy+I1sACXhUZbt # tUNkLsvGeqIxozBznZ6Pyo4Fu/4CIDxIgqLa33FJ6NunNDiY33+lmFns0JhvSn6G # CyvFpzHiahHXZtDuc/+y7+Fhw3mVVYdNtcx1oeYkKExVqagK8CoHmZ2lqBkbvxtL # xDAsmx8AsqBPJEn0e9dt5BPR1TeezIPycBDlz4CPNXPo7GQB0n+Le17q7kLQ4Xq0 # LP9B8+r5RZ+p1Xx8eahLZ6yYrYgWvEyiUdKJWlkrNWPc2Xb5AkTNx6/1vax2sHQ8 # 5w+hggIPMIICCwYJKoZIhvcNAQkGMYIB/DCCAfgCAQEwdjBiMQswCQYDVQQGEwJV # UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu # Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBBc3N1cmVkIElEIENBLTECEAMBmgI6/1ix # a9bV6uYX8GYwCQYFKw4DAhoFAKBdMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEw # HAYJKoZIhvcNAQkFMQ8XDTE3MTAwNDEyMjMxNFowIwYJKoZIhvcNAQkEMRYEFK9M # Bx3xqGt1OcAO2ZFL8X6qBXAiMA0GCSqGSIb3DQEBAQUABIIBABbS5YAiEt5sdDmW # 2EzVSvUbATqGxBQnfblErcXgP82PyNOWZTP2O53aJKPVn/1HuYPRz98lfdNMdzrX # wvlEkoj72tR+3G5Sh0wWYgUb4m8ZbBgkPZ8ZWKBXjrNJqIRj7vIP2wq7U+3SaNH6 # xDwyWac2d4U2xDDMgiza99nPLy22PZHItGA5wsMTMDhIz05qD/rHp1skrJ2FQWAS # 14aMh6kJzU99c7LaSpzTGoDahA3Gjfx/foGteokDJL4DnqDxsP94xgvuNbrf5yWu # VKFET13cMnUb2xw2/gQ31ScZNmR33JU5GDf1C8EwXW8SkgkN3puJRpRQHzVcZOtn # 4azntLQ= # SIG # End signature block |