DSCResources/DCPP_SystemConfiguration/DCPP_SystemConfiguration.psm1
# Import the helper functions Import-Module $PSScriptRoot\..\..\Misc\helper.psm1 -Verbose:$false function Get-TargetResource { [CmdletBinding()] [OutputType([System.Collections.Hashtable])] param ( [parameter(Mandatory = $true)] [System.String] $Category ) #Write-Verbose "Use this cmdlet to deliver information about command processing." #Write-Debug "Use this cmdlet to write debug information while troubleshooting." <# $returnValue = @{ Category = [System.String] MultiCoreSupport = [System.String] IntelSpeedStep = [System.String] CStates = [System.String] IntelTurboBoost = [System.String] HyperThreadControl = [System.String] Password = [System.String] SecurePassword = [System.String] PathToKey = [System.String] } $returnValue #> # Check if module DellBIOSprovider is already loaded. If not, load it. try{ $bool = Confirm-DellPSDrive -verbose } catch { write-Verbose $_ $msg = "Get-TargetResource: $($_.Exception.Message)" Write-DellEventLog -Message $msg -EventID 1 -EntryType 'Error' write-Verbose "Exiting Get-TargetResource" return } if ($bool) { Write-Verbose "Dell PS-Drive DellSmbios is found." } else{ $Message = “Get-TargetResource: Module DellBiosProvider was imported correctly." Write-DellEventLog -Message $Message -EventID 2 } $Get = get-childitem -path @("DellSmbios:\" + $Category) # Removing Verbose and Debug from output $PSBoundParameters.Remove("Verbose") | out-null $PSBoundParameters.Remove("Debug") | out-null $out = @{} $Get | foreach-Object {$out.Add($_.Attribute, $_.CurrentValue)} $out.add('Category', $Category ) $out } function Set-TargetResource { [CmdletBinding()] param ( [parameter(Mandatory = $true)] [System.String] $Category, [ValidateSet("Enabled","Disabled")] [System.String] $WatchdogTimer, [ValidateSet("Enabled","Disabled")] [System.String] $MEMSSensors, [ValidateSet("Enabled","Disabled")] [System.String] $KeyboardBacklightOnAc, [ValidateSet("Enabled","Disabled","Auto")] [System.String] $IntegratedAudio, [ValidateSet("Enabled","Disabled","Low","Medium","High")] [System.String] $InternalSpeaker, [ValidateSet("Enabled","Disabled","EnabledPxe","OnWithImageServerBoot","EnabledwithRPLBoot","EnabledwithISCSIBoot")] [System.String] $EmbNic1, [ValidateSet("Off","25","50","75","100","Auto")] [System.String] $KeyboardIllumination, [ValidateSet("Ata","Disabled","Ahci","Raid")] [System.String] $EmbSataRaid, [ValidateSet("Enabled","Disabled")] [System.String] $PowerButton, [ValidateSet("Enabled","Disabled")] [System.String] $OnboardSoundDevice, [ValidateSet("Enabled","Disabled")] [System.String] $IoModule, [ValidateSet("Enabled","Disabled")] [System.String] $CanBus, [ValidateSet("Enabled","Disabled")] [System.String] $UefiNwStack, [ValidateSet("Enabled","Disabled")] [System.String] $Sata0, [ValidateSet("Enabled","Disabled")] [System.String] $Sata1, [ValidateSet("Enabled","Disabled")] [System.String] $Sata2, [ValidateSet("Enabled","Disabled")] [System.String] $Sata3, [ValidateSet("Enabled","Disabled")] [System.String] $Sata4, [ValidateSet("Enabled","Disabled")] [System.String] $Sata5, [ValidateSet("Enabled","Disabled")] [System.String] $Sata6, [ValidateSet("Enabled","Disabled")] [System.String] $Sata7, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas0, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas1, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas2, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas3, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel1, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel2, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel3, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel4, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel5, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel6, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel7, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel8, [ValidateSet("Enabled","Disabled")] [System.String] $SmartErrors, [ValidateSet("Enabled","Disabled")] [System.String] $DisOsdBtn, [ValidateSet("Enabled","Disabled")] [System.String] $Hdd1FanEnable, [ValidateSet("Enabled","Disabled")] [System.String] $Hdd2FanEnable, [ValidateSet("Enabled","Disabled")] [System.String] $Hdd3FanEnable, [ValidateSet("Enabled","Disabled")] [System.String] $LiquidCooler1, [ValidateSet("Enabled","Disabled")] [System.String] $LiquidCooler2, [ValidateSet("Enabled","Disabled")] [System.String] $UsbPowerShare, [ValidateSet("Enabled","Disabled")] [System.String] $Microphone, [ValidateSet("Enabled","Disabled")] [System.String] $DockSupportOnBattery, [ValidateSet("Enabled","Disabled")] [System.String] $UnobtrusiveMode, [ValidateSet("Enabled","Disabled")] [System.String] $Touchscreen, [ValidateSet("Enabled","Disabled")] [System.String] $M2PcieSsd0, [ValidateSet("Enabled","Disabled")] [System.String] $M2PcieSsd1, [ValidateSet("Enabled","Disabled")] [System.String] $MmioAbove4Gb, [ValidateSet("Enabled","Disabled")] [System.String] $IntegratedSas, [ValidateSet("Enabled","Disabled")] [System.String] $OptionalBootSequence, [ValidateSet("Enabled","Disabled")] [System.String] $NearFieldComputing, [ValidateSet("Enabled","Disabled")] [System.String] $ForcePxeNextBoot, [ValidateSet("Enabled","Disabled")] [System.String] $ForcePXEasFirstBootDevice, [ValidateSet("Auto","Disabled")] [System.String] $VmdPcieSlot, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie0, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie1, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie0Cpu1, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie1Cpu1, [ValidateSet("Enabled","Disabled")] [System.String] $Sata8, [ValidateSet("Enabled","Disabled")] [System.String] $EMMCDevice, [System.String] $Password, [System.String] $SecurePassword, [System.String] $PathToKey ) if (-not(CheckModuleLoaded)) { Write-Verbose -Message 'Required module DellBiosProvider does not exist. Exiting.' return $true } $DellPSDrive = get-psdrive -name Dellsmbios if ( !$DellPSDrive) { $Message = "Drive DellSmbios is not found. Exiting." Write-Verbose $Message Write-DellEventLog -Message $Message -EventID 3 -EntryType "Error" return $true } $attributes_desired = $PSBoundParameters $atts = $attributes_desired $pathToCategory = $DellPSDrive.Name + ':\' + $atts["Category"] Dir $pathToCategory -verbose $atts.Remove("Verbose") | out-null $atts.Remove("Category") | out-null $atts.Remove("Debug") | out-null $securePwd=$atts["SecurePassword"] $passwordSet=$atts["Password"] $atts.Remove("Password") | Out-Null $atts.Remove("SecurePassword") | Out-Null $pathToKey=$atts["PathToKey"] if(-Not [string]::IsNullOrEmpty($pathToKey)) { if(Test-Path $pathToKey) { $key=Get-Content $pathToKey } else { $key="" } } $atts.Remove("PathToKey") | Out-Null #foreach($a in Import-Csv((Get-DellBIOSEncryptionKey))) #{ # $key+=$a # } $atts.Keys | foreach-object { # $atts[$_] $path = $pathToCategory + '\' + $($_) $value = $atts[$_] if(-Not [string]::IsNullOrEmpty($securePwd)) { $pasvar=ConvertTo-SecureString $securePwd.ToString() -Key $key Set-Item -path $path -value $value -verbose -ErrorVariable ev -ErrorAction SilentlyContinue -PasswordSecure $pasvar } elseif(-Not [string]::IsNullOrEmpty($passwordSet)) { Set-Item -path $path -value $value -verbose -ErrorVariable ev -ErrorAction SilentlyContinue -Password $passwordSet } else { Set-Item -path $path -value $value -verbose -ErrorVariable ev -ErrorAction SilentlyContinue } if ( $ev) { $cmdline = $ExecutionContext.InvokeCommand.ExpandString($ev.InvocationInfo.Line) $Message = "An error occured in executing " + $cmdline + "`nError message: $($ev.ErrorDetails)" Write-Verbose $Message Write-DellEventLog -Message $Message -EventID 5 -EntryType "Error" } } } function Test-TargetResource { [CmdletBinding()] [OutputType([System.Boolean])] param ( [parameter(Mandatory = $true)] [System.String] $Category, [ValidateSet("Enabled","Disabled")] [System.String] $WatchdogTimer, [ValidateSet("Enabled","Disabled")] [System.String] $MEMSSensors, [ValidateSet("Enabled","Disabled")] [System.String] $KeyboardBacklightOnAc, [ValidateSet("Enabled","Disabled","Auto")] [System.String] $IntegratedAudio, [ValidateSet("Enabled","Disabled","Low","Medium","High")] [System.String] $InternalSpeaker, [ValidateSet("Enabled","Disabled","EnabledPxe","OnWithImageServerBoot","EnabledwithRPLBoot","EnabledwithISCSIBoot")] [System.String] $EmbNic1, [ValidateSet("Ata","Disabled","Ahci","Raid")] [System.String] $EmbSataRaid, [ValidateSet("Off","25","50","75","100","Auto")] [System.String] $KeyboardIllumination, [ValidateSet("Enabled","Disabled")] [System.String] $PowerButton, [ValidateSet("Enabled","Disabled")] [System.String] $OnboardSoundDevice, [ValidateSet("Enabled","Disabled")] [System.String] $IoModule, [ValidateSet("Enabled","Disabled")] [System.String] $CanBus, [ValidateSet("Enabled","Disabled")] [System.String] $UefiNwStack, [ValidateSet("Enabled","Disabled")] [System.String] $Sata0, [ValidateSet("Enabled","Disabled")] [System.String] $Sata1, [ValidateSet("Enabled","Disabled")] [System.String] $Sata2, [ValidateSet("Enabled","Disabled")] [System.String] $Sata3, [ValidateSet("Enabled","Disabled")] [System.String] $Sata4, [ValidateSet("Enabled","Disabled")] [System.String] $Sata5, [ValidateSet("Enabled","Disabled")] [System.String] $Sata6, [ValidateSet("Enabled","Disabled")] [System.String] $Sata7, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas0, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas1, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas2, [ValidateSet("Enabled","Disabled")] [System.String] $Minisas3, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel1, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel2, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel3, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel4, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel5, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel6, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel7, [ValidateSet("Unused","ADCInput","DACOutput","DACAndADC","GPIO")] [System.String] $AnalogDigitalInterfaceModeChannel8, [ValidateSet("Enabled","Disabled")] [System.String] $SmartErrors, [ValidateSet("Enabled","Disabled")] [System.String] $DisOsdBtn, [ValidateSet("Enabled","Disabled")] [System.String] $Hdd1FanEnable, [ValidateSet("Enabled","Disabled")] [System.String] $Hdd2FanEnable, [ValidateSet("Enabled","Disabled")] [System.String] $Hdd3FanEnable, [ValidateSet("Enabled","Disabled")] [System.String] $LiquidCooler1, [ValidateSet("Enabled","Disabled")] [System.String] $LiquidCooler2, [ValidateSet("Enabled","Disabled")] [System.String] $UsbPowerShare, [ValidateSet("Enabled","Disabled")] [System.String] $Microphone, [ValidateSet("Enabled","Disabled")] [System.String] $DockSupportOnBattery, [ValidateSet("Enabled","Disabled")] [System.String] $UnobtrusiveMode, [ValidateSet("Enabled","Disabled")] [System.String] $Touchscreen, [ValidateSet("Enabled","Disabled")] [System.String] $M2PcieSsd0, [ValidateSet("Enabled","Disabled")] [System.String] $M2PcieSsd1, [ValidateSet("Enabled","Disabled")] [System.String] $MmioAbove4Gb, [ValidateSet("Enabled","Disabled")] [System.String] $IntegratedSas, [ValidateSet("Enabled","Disabled")] [System.String] $OptionalBootSequence, [ValidateSet("Enabled","Disabled")] [System.String] $NearFieldComputing, [ValidateSet("Enabled","Disabled")] [System.String] $ForcePxeNextBoot, [ValidateSet("Enabled","Disabled")] [System.String] $ForcePXEasFirstBootDevice, [ValidateSet("Auto","Disabled")] [System.String] $VmdPcieSlot, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie0, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie1, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie0Cpu1, [ValidateSet("Enabled","Disabled")] [System.String] $VmdNvmePcie1Cpu1, [ValidateSet("Enabled","Disabled")] [System.String] $Sata8, [ValidateSet("Enabled","Disabled")] [System.String] $EMMCDevice, [System.String] $Password, [System.String] $SecurePassword, [System.String] $PathToKey ) $Get = Get-TargetResource $PSBoundParameters['Category'] -verbose New-DellEventLog $PSBoundParameters.Remove("Verbose") | out-null $PSBoundParameters.Remove("Debug") | out-null $PSBoundParameters.Remove("Category") | out-null $PSBoundParameters.Remove("Password") | out-null $PSBoundParameters.Remove("SecurePassword") | out-null $attributes_desired = $PSBoundParameters $bool = $true foreach ($config_att in $PSBoundParameters.GetEnumerator()) { if ($Get.ContainsKey($config_att.Key)) { $currentvalue = $Get[$config_att.Key] $currentvalue_nospace = $currentvalue -replace " ", "" if ($config_att.Value -ne $currentvalue_nospace){ $bool = $false $drift = "`nCurrentValue: $currentvalue_nospace`nDesiredValue: $($config_att.value)" $message = "Configuration is drifted in category $Category for $($config_att.Key). $drift" write-verbose $message Write-DellEventLog -Message $message -EventID 4 -EntryType Warning } else { write-Debug "Configuration is same for $config_att." } } else { $message = "Unsupported attribute $($config_att)" Write-Verbose $message } } return $bool } Export-ModuleMember -Function *-TargetResource # SIG # Begin signature block # MIIVSQYJKoZIhvcNAQcCoIIVOjCCFTYCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAutvu2XJ+Y3i6x # ciaLSDjNeo4h80R6JdS8+EOqCXlDw6CCCiMwggTCMIIDqqADAgECAhANhLMrA8kb # dRADSKysMihfMA0GCSqGSIb3DQEBCwUAMH8xCzAJBgNVBAYTAlVTMR0wGwYDVQQK # ExRTeW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3Qg # TmV0d29yazEwMC4GA1UEAxMnU3ltYW50ZWMgQ2xhc3MgMyBTSEEyNTYgQ29kZSBT # aWduaW5nIENBMB4XDTE2MDEyMDAwMDAwMFoXDTE5MDIxODIzNTk1OVowWjELMAkG # A1UEBhMCVVMxDjAMBgNVBAgTBVRleGFzMRMwEQYDVQQHEwpSb3VuZCBSb2NrMRIw # EAYDVQQKFAlEZWxsIEluYy4xEjAQBgNVBAMUCURlbGwgSW5jLjCCASIwDQYJKoZI # hvcNAQEBBQADggEPADCCAQoCggEBAIiB7p20xoJ8RMmDhIKNR/g0X6OhJWWiaLL6 # OY8sCfY9B8BhCOKzCgNQU+g5Jdu5GZ+J7G8S7evlJfhskLH4fhkGYjn4a1sPw/mD # m/qMaE4n9WLaRourdOIIWgYftCGmjrlpTq7d4rYZ+Oo+iaQTR1OIrnJ7UbV6YYKp # /buZ3pcrWAB7ox3UDeH/UigGP+QIix5mQrRmQLgZyJkg5V9EB/m2HYmQ+w13VNIf # adxPklaF1sNMJTRwzKzqZru4N7goue63NAu8COhQ9+c8MIom+VjDVuDR01UY25vQ # IVJ8Sbk3ORD20Eb6a7ZxVb29Lkn6/cOccCf6tuAe7sd9skZAbJsCAwEAAaOCAV0w # ggFZMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMCsGA1UdHwQkMCIwIKAeoByG # Gmh0dHA6Ly9zdi5zeW1jYi5jb20vc3YuY3JsMGEGA1UdIARaMFgwVgYGZ4EMAQQB # MEwwIwYIKwYBBQUHAgEWF2h0dHBzOi8vZC5zeW1jYi5jb20vY3BzMCUGCCsGAQUF # BwICMBkMF2h0dHBzOi8vZC5zeW1jYi5jb20vcnBhMBMGA1UdJQQMMAoGCCsGAQUF # BwMDMFcGCCsGAQUFBwEBBEswSTAfBggrBgEFBQcwAYYTaHR0cDovL3N2LnN5bWNk # LmNvbTAmBggrBgEFBQcwAoYaaHR0cDovL3N2LnN5bWNiLmNvbS9zdi5jcnQwHwYD # VR0jBBgwFoAUljtT8Hkzl699g+8uK8zKt4YecmYwHQYDVR0OBBYEFIb5/xrKh87H # XzS6cRL1o7LqbfaDMA0GCSqGSIb3DQEBCwUAA4IBAQCFWAnqZghMKytZjfSKt94F # eB/VfyFl+3tWhPN8SFkXUdIDljd3t5dggtIYAc7TPKfOr8JngIRQmM0lOyj/bzOM # Chdb8nEbKV4R6krbF423gSVFcYoZsiCoqV2An5OrnnRDPPmgWs5wJvgwk/iGeEYE # /DQE8J0hWVr4tTQVKRaCBM4DVfK4Z2Mp5BAewp9jxvDS/cuguTQdQP+mtYxmkkXU # SyTq+olOm8YVPAw0tpRGbZjPdxK2++EIeVrTL7jscqhuMx8d985A4corhmQdZ7Un # qTurFTSdgqxqZeJiYVFqhp1c9wbCwFuCSTyJiissW+BC4lt+N2oFOSieit7gnmP8 # MIIFWTCCBEGgAwIBAgIQPXjX+XZJYLJhffTwHsqGKjANBgkqhkiG9w0BAQsFADCB # yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL # ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp # U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW # ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0 # aG9yaXR5IC0gRzUwHhcNMTMxMjEwMDAwMDAwWhcNMjMxMjA5MjM1OTU5WjB/MQsw # CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV # BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMDAuBgNVBAMTJ1N5bWFudGVjIENs # YXNzIDMgU0hBMjU2IENvZGUgU2lnbmluZyBDQTCCASIwDQYJKoZIhvcNAQEBBQAD # ggEPADCCAQoCggEBAJeDHgAWryyx0gjE12iTUWAecfbiR7TbWE0jYmq0v1obUfej # DRh3aLvYNqsvIVDanvPnXydOC8KXyAlwk6naXA1OpA2RoLTsFM6RclQuzqPbROlS # Gz9BPMpK5KrA6DmrU8wh0MzPf5vmwsxYaoIV7j02zxzFlwckjvF7vjEtPW7ctZlC # n0thlV8ccO4XfduL5WGJeMdoG68ReBqYrsRVR1PZszLWoQ5GQMWXkorRU6eZW4U1 # V9Pqk2JhIArHMHckEU1ig7a6e2iCMe5lyt/51Y2yNdyMK29qclxghJzyDJRewFZS # AEjM0/ilfd4v1xPkOKiE1Ua4E4bCG53qWjjdm9sCAwEAAaOCAYMwggF/MC8GCCsG # AQUFBwEBBCMwITAfBggrBgEFBQcwAYYTaHR0cDovL3MyLnN5bWNiLmNvbTASBgNV # HRMBAf8ECDAGAQH/AgEAMGwGA1UdIARlMGMwYQYLYIZIAYb4RQEHFwMwUjAmBggr # BgEFBQcCARYaaHR0cDovL3d3dy5zeW1hdXRoLmNvbS9jcHMwKAYIKwYBBQUHAgIw # HBoaaHR0cDovL3d3dy5zeW1hdXRoLmNvbS9ycGEwMAYDVR0fBCkwJzAloCOgIYYf # aHR0cDovL3MxLnN5bWNiLmNvbS9wY2EzLWc1LmNybDAdBgNVHSUEFjAUBggrBgEF # BQcDAgYIKwYBBQUHAwMwDgYDVR0PAQH/BAQDAgEGMCkGA1UdEQQiMCCkHjAcMRow # GAYDVQQDExFTeW1hbnRlY1BLSS0xLTU2NzAdBgNVHQ4EFgQUljtT8Hkzl699g+8u # K8zKt4YecmYwHwYDVR0jBBgwFoAUf9Nlp8Ld7LvwMAnzQzn6Aq8zMTMwDQYJKoZI # hvcNAQELBQADggEBABOFGh5pqTf3oL2kr34dYVP+nYxeDKZ1HngXI9397BoDVTn7 # cZXHZVqnjjDSRFph23Bv2iEFwi5zuknx0ZP+XcnNXgPgiZ4/dB7X9ziLqdbPuzUv # M1ioklbRyE07guZ5hBb8KLCxR/Mdoj7uh9mmf6RWpT+thC4p3ny8qKqjPQQB6rqT # og5QIikXTIfkOhFf1qQliZsFay+0yQFMJ3sLrBkFIqBgFT/ayftNTI/7cmd3/SeU # x7o1DohJ/o39KK9KEr0Ns5cF3kQMFfo2KwPcwVAB8aERXRTl4r0nS1S+K4ReD6bD # dAUK75fDiSKxH3fzvc1D1PFMqT+1i4SvZPLQFCExggp8MIIKeAIBATCBkzB/MQsw # CQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNV # BAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxMDAuBgNVBAMTJ1N5bWFudGVjIENs # YXNzIDMgU0hBMjU2IENvZGUgU2lnbmluZyBDQQIQDYSzKwPJG3UQA0isrDIoXzAN # BglghkgBZQMEAgEFAKCBrDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgor # BgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgEr6gnccb # SlBOuVcTNKafc+/sFfHGft5xqggxZNsEQaQwQAYKKwYBBAGCNwIBDDEyMDCgFoAU # AEQAZQBsAGwALAAgAEkAbgBjAC6hFoAUaHR0cDovL3d3dy5kZWxsLmNvbSAwDQYJ # KoZIhvcNAQEBBQAEggEAWJXIN17IkwJseoAnnykCbfiJQCwapCJJuRw0Qi7epEce # v8ZefoNaRbzTrtzDMhaJaKmWlTv3iXIcIW86kcI+eX88iha9cvIMEY3cckf6lHP9 # KJQ+XKb0Xf8ADP24TMhwB3TLEomQd78bGTovoO1JYKATdmeCxMvlNI2DSU0xGhyU # wFhmjHgGIZIwF933AiUO6Lye0wjh071gOoEwv9R3mJnL6xLyrl+Cc/OmViRxTnT6 # WdiiO8G/iK3m5+5w1/bPMuMusJlWRRfPJkT9ggN2RJapxBQPmDFOeAO2b6v5izjX # 3uWndBOYTmPzu/EW79opZ0RpK6bJGrrr8LfBv0+fjqGCCAowgggGBgorBgEEAYI3 # AwMBMYIH9jCCB/IGCSqGSIb3DQEHAqCCB+MwggffAgEDMQ8wDQYJYIZIAWUDBAIB # BQAwbQYLKoZIhvcNAQkQAQSgXgRcMFoCAQEGCmCGSAGG/W4BBxgwMTANBglghkgB # ZQMEAgEFAAQgpAz9449MtdYrQaDlk/S4oHXpY8PaqHYu4Vh97u/ztJICBRnc4rG9 # GA8yMDE3MTEyMjA4NDgzMFqgggTxMIIE7TCCA9WgAwIBAgIIPG49fSM2JU0wDQYJ # KoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMw # EQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVjaG5vbG9n # aWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB # dXRob3JpdHkgLSBHMjAeFw0xNjEyMTMwNzAwMDBaFw0yMTEyMTMwNzAwMDBaMIGI # MQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRz # ZGFsZTElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjErMCkG # A1UEAxMiU3RhcmZpZWxkIFRpbWVzdGFtcCBBdXRob3JpdHkgLSBHMjCCASIwDQYJ # KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMMSt+zDfQd/+EDESIH4xIOLzJkCgOFq # yWKYMsVjvYH7vCdlU0EAGu2AlzYiIjKbaGYLbQFtOf+ohaiLl6ewX04FImdW6c97 # 5Uoie+XnMGYOVySnWHIXv/q6fFX7Rgwh50vOMCDuKHCCpx3MrYU5g0kP3J+Psv9j # E2Nc0jkOeHQadrpVTo8HGCWoz7XCLFIfCdjjWkoDLu4B0/9yehNaC+ZwrOy9cnUE # NhnE/+0WMIoUdOLkD/Eq24ATVBVXBe7Q3o4/7hzYWPoABigrHpB6q1u1ILpB+Ze2 # K3rdWz4t93k+yqCybnZVFKuJZy53VS4PDszfiRHfIEZo2TZGBgIVfX8CAwEAAaOC # AVAwggFMMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgbAMBYGA1UdJQEB/wQM # MAoGCCsGAQUFBwMIMB0GA1UdDgQWBBTFhkohftnytX2hAaysXl3+FYL3vzAfBgNV # HSMEGDAWgBR8DDIfp9kwf8R9aKNiqKHOqwdbJzA6BggrBgEFBQcBAQQuMCwwKgYI # KwYBBQUHMAGGHmh0dHA6Ly9vY3NwLnN0YXJmaWVsZHRlY2guY29tLzBGBgNVHR8E # PzA9MDugOaA3hjVodHRwOi8vY3JsLnN0YXJmaWVsZHRlY2guY29tL3JlcG9zaXRv # cnkvc2Zyb290LWcyLmNybDBQBgNVHSAESTBHMEUGC2CGSAGG/W4BBxcCMDYwNAYI # KwYBBQUHAgEWKGh0dHA6Ly9jcmwuc3RhcmZpZWxkdGVjaC5jb20vcmVwb3NpdG9y # eS8wDQYJKoZIhvcNAQELBQADggEBAC1Tnm2HG1bh1d39Qe2NWq9CxxtZRHG3BR0h # jgVznfEgv9I7fSQrnKbuE1q03r7BkLyZ57qQPIHN7Sm/DtfRpQ/XzO3V/SKcXcHp # LSZNjCX38cTr4Bpnk0TzQFtCYiFGjEY66pvDLKOLdkpXqfdZjxCyhpAArlcH9EhO # HEMjXDgJnurEtSG4G5RpS1/hA6BDI6+v/rgTCEuKUVCVMwkUWF5+elrNt2UN2SJA # uwRwoYddTw3w68FU6YlPydL9DGxdS8UzP4udpfkuZGekvHm2nikbD+4J7NDXm4k9 # c2NzMwbdVlg7LDCoqVntapOQqZS4XMqSD6/eo/X14FBwhx4tB60xggJjMIICXwIB # ATCBnDCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcT # ClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIElu # Yy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 # eSAtIEcyAgg8bj19IzYlTTANBglghkgBZQMEAgEFAKCBmDAaBgkqhkiG9w0BCQMx # DQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTE3MTEyMjA4NDgzMFowKwYL # KoZIhvcNAQkQAgwxHDAaMBgwFgQUcUS1PxpdOR3drHG2ByGQjJsb8/YwLwYJKoZI # hvcNAQkEMSIEIF7L8nBS3rymPsLh3ZENNrBB+r6kGCpY01ZuVoAce66eMA0GCSqG # SIb3DQEBAQUABIIBADRLot8kJMEX407NPQlYuEf4rA3TLyBW4xNXQt5PyECvT746 # JEkjvOF+2CEra55Q+rr0OcWzNxbFbOITR7ZOOghREuAj3sKkzhBj5bKHg5jdwkbJ # 8pTh+Mh+2+ryK36Roa08jdK8CsGPkut+Nw+10XAZed7rjn4kgh9FVkZYCJdwtf1h # MZeHztk8HX9xTgwT9JD2nJ1dJCJvEFGTKVsNlD5e7suTsjraaAL2PdJrxGZoi7PL # PT/wTAREPGgSZ59IcwYyHupj8S3IIsszXhOHAp9XxfYPnbGxGStibmSEv1n1vBK+ # pfTkUyxNpAph+0T6IJ38aJPo18D8CMQ0VTWgdpI= # SIG # End signature block |