DSCResources/DCPP_PowerManagement/DCPP_PowerManagement.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] $BlockDefinition ) #Write-Verbose "Use this cmdlet to deliver information about command processing." #Write-Debug "Use this cmdlet to write debug information while troubleshooting." <# $returnValue = @{ BlockDefinition = [System.String] Category = [System.String] AutoOn = [System.String] AutoOnHr = [System.UInt16] AutoOnMn = [System.UInt16] AutoOnSun = [System.String] AutoOnMon = [System.String] AutoOnTue = [System.String] AutoOnWed = [System.String] AutoOnThur = [System.String] AutoOnFri = [System.String] AutoOnSat = [System.String] DeepSleepCtrl = [System.String] FanSpeed = [System.String] FanSpeedLvl = [System.UInt16] UsbWake = [System.String] FanCtrlOvrd = [System.String] AcPwrRcvry = [System.String] WakeOnLan = [System.String] SfpwakeOnLan = [System.String] WakeOnAc = [System.String] WakeOnDock = [System.String] LidSwitch = [System.String] BlinkPowerSupply1LED = [System.String] BlinkPowerSupply2LED = [System.String] WlanAutoSense = [System.String] WwanAutoSense = [System.String] BlockSleep = [System.String] SleepMode = [System.String] PrimaryBattChargeCfg = [System.String] CustomChargeStart = [System.UInt16] CustomChargeStop = [System.UInt16] SliceBattChargeCfg = [System.String] ModBattChargeCfg = [System.String] DockBatteryChargeConfiguration = [System.String] IntlSmartConnect = [System.String] IntelReadyModeEn = [System.String] PeakShiftCfg = [System.String] PeakShiftBatteryThreshold = [System.UInt16] PeakShiftDayConfiguration = [System.String] StartTime = [System.String] EndTime = [System.String] ChargeStartTime = [System.String] AdvBatteryChargeCfg = [System.String] AdvancedBatteryChargeConfiguration = [System.String] Type_CBatteryOverloadProtection = [System.String] BeginningOfDay = [System.String] WorkPeriod = [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] $BlockDefinition, [System.String] $Category, [ValidateSet("EveryDay","Disabled","WeekDays","SelectDays")] [System.String] $AutoOn, [System.UInt16] $AutoOnHr, [System.UInt16] $AutoOnMn, [System.UInt16] $AutoWakePeriod, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnSun, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnMon, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnTue, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnWed, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnThur, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnFri, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnSat, [ValidateSet("Disabled","S5Only","S4AndS5")] [System.String] $DeepSleepCtrl, [ValidateSet("Auto","High","Med","Low","MedHigh","MedLow")] [System.String] $FanSpeed, [System.UInt16] $FanSpeedLvl, [ValidateSet("Disabled","Enabled")] [System.String] $UsbWake, [ValidateSet("Enabled","Disabled")] [System.String] $FanCtrlOvrd, [ValidateSet("Off","On","Last")] [System.String] $AcPwrRcvry, [ValidateSet("AddInCard","Onboard","Disabled","LanOnly","LanWithPxeBoot","WlanOnly","LanWlan")] [System.String] $WakeOnLan, [ValidateSet("SFP","LANSFP","SFPPXE")] [System.String] $SfpwakeOnLan, [ValidateSet("Disabled","Enabled")] [System.String] $WakeOnAc, [ValidateSet("Enabled","Disabled")] [System.String] $WakeOnDock, [ValidateSet("Enabled","Disabled")] [System.String] $LidSwitch, [ValidateSet("Enabled")] [System.String] $BlinkPowerSupply1LED, [ValidateSet("Enabled")] [System.String] $BlinkPowerSupply2LED, [ValidateSet("Disabled","Enabled")] [System.String] $WlanAutoSense, [ValidateSet("Disabled","Enabled")] [System.String] $WwanAutoSense, [ValidateSet("Enabled","Disabled")] [System.String] $BlockSleep, [ValidateSet("OSAutomaticSelection","ForceS3")] [System.String] $SleepMode, [ValidateSet("Auto","Standard","Express","PrimAcUse","Custom")] [System.String] $PrimaryBattChargeCfg, [System.UInt16] $CustomChargeStart, [System.UInt16] $CustomChargeStop, [ValidateSet("Standard","Express")] [System.String] $SliceBattChargeCfg, [ValidateSet("Standard","Express")] [System.String] $ModBattChargeCfg, [ValidateSet("Standard","Express")] [System.String] $DockBatteryChargeConfiguration, [ValidateSet("Enabled","Disabled")] [System.String] $IntlSmartConnect, [ValidateSet("Enabled","Disabled")] [System.String] $IntelReadyModeEn, [ValidateSet("Enabled","Disabled")] [System.String] $PeakShiftCfg, [ValidateSet("LanOnly","Disabled","LanWithPxeBoot")] [System.String] $WakeOnLan2, [System.UInt16] $PeakShiftBatteryThreshold, [System.String] $PeakShiftDayConfiguration, [System.String] $StartTime, [System.String] $EndTime, [System.String] $ChargeStartTime, [ValidateSet("Enabled","Disabled")] [System.String] $AdvBatteryChargeCfg, [System.String] $AdvancedBatteryChargeConfiguration, [ValidateSet("7.5Watts","15Watts")] [System.String] $Type_CBatteryOverloadProtection, [System.String] $BeginningOfDay, [System.String] $WorkPeriod, [ValidateSet("Enabled","Disabled")] [System.String] $SpeedShift, [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 } $atts = $PSBoundParameters $pathToCategory = $DellPSDrive.Name + ':\' + $atts["Category"] Dir $pathToCategory -verbose $atts.Remove("Verbose") | out-null $atts.Remove("Category") | out-null $atts.Remove("Debug") | out-null $atts.Remove("BlockDefinition") | out-null $startTime=$atts['StartTime'] $endTime=$atts['EndTime'] $chargeStartTime=$atts['ChargeStartTime'] $atts.Remove("StartTime") | out-null $atts.Remove("EndTime") | out-null $atts.Remove("ChargeStartTime") | out-null $beginningOfDay=$atts['BeginningOfDay'] $workPeriod=$atts['WorkPeriod'] $atts.Remove("BeginningOfDay") | out-null $atts.Remove("WorkPeriod") | 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 $atts.Keys | foreach-object { if($($_) -eq "PeakShiftDayConfiguration") { $path = $pathToCategory + '\' + $($_) $value = $atts[$_] if(-Not [string]::IsNullOrEmpty($securePwd)) { $pasvar=ConvertTo-SecureString $securePwd.ToString() -Key $key Set-Item -path $path -value $value -StartTime $startTime -EndTime $endTime -ChargeStartTime $chargeStartTime -verbose -ErrorVariable ev -ErrorAction SilentlyContinue -PasswordSecure $pasvar } elseif(-Not [string]::IsNullOrEmpty($passwordSet)) { Set-Item -path $path -value $value -StartTime $startTime -EndTime $endTime -ChargeStartTime $chargeStartTime -verbose -ErrorVariable ev -ErrorAction SilentlyContinue -Password $passwordSet } else { Set-Item -path $path -value $value -StartTime $startTime -EndTime $endTime -ChargeStartTime $chargeStartTime -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" } } elseif($($_) -eq "AdvancedBatteryChargeConfiguration") { $path = $pathToCategory + '\' + $($_) $value = $atts[$_] if(-Not [string]::IsNullOrEmpty($securePwd)) { $pasvar=ConvertTo-SecureString $securePwd.ToString() -Key $key Set-Item -path $path -value $value -BeginningOfDay $beginningOfDay -WorkPeriod $workPeriod -verbose -ErrorVariable ev -ErrorAction SilentlyContinue -PasswordSecure $pasvar } elseif(-Not [string]::IsNullOrEmpty($passwordSet)) { Set-Item -path $path -value $value -BeginningOfDay $beginningOfDay -WorkPeriod $workPeriod -verbose -ErrorVariable ev -ErrorAction SilentlyContinue -Password $passwordSet } else { Set-Item -path $path -value $value -BeginningOfDay $beginningOfDay -WorkPeriod $workPeriod -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" } } else { $path="" if($($_) -eq "Type_CBatteryOverloadProtection") { $path = $pathToCategory + '\' + "Type-CBatteryOverloadProtection" } else { $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] $BlockDefinition, [System.String] $Category, [ValidateSet("EveryDay","Disabled","WeekDays","SelectDays")] [System.String] $AutoOn, [System.UInt16] $AutoOnHr, [System.UInt16] $AutoOnMn, [System.UInt16] $AutoWakePeriod, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnSun, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnMon, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnTue, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnWed, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnThur, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnFri, [ValidateSet("Enabled","Disabled")] [System.String] $AutoOnSat, [ValidateSet("Disabled","S5Only","S4AndS5")] [System.String] $DeepSleepCtrl, [ValidateSet("Auto","High","Med","Low","MedHigh","MedLow")] [System.String] $FanSpeed, [System.UInt16] $FanSpeedLvl, [ValidateSet("Disabled","Enabled")] [System.String] $UsbWake, [ValidateSet("Enabled","Disabled")] [System.String] $FanCtrlOvrd, [ValidateSet("Off","On","Last")] [System.String] $AcPwrRcvry, [ValidateSet("AddInCard","Onboard","Disabled","LanOnly","LanWithPxeBoot","WlanOnly","LanWlan")] [System.String] $WakeOnLan, [ValidateSet("SFP","LANSFP","SFPPXE")] [System.String] $SfpwakeOnLan, [ValidateSet("Disabled","Enabled")] [System.String] $WakeOnAc, [ValidateSet("Enabled","Disabled")] [System.String] $WakeOnDock, [ValidateSet("Enabled","Disabled")] [System.String] $LidSwitch, [ValidateSet("Enabled")] [System.String] $BlinkPowerSupply1LED, [ValidateSet("Enabled")] [System.String] $BlinkPowerSupply2LED, [ValidateSet("Disabled","Enabled")] [System.String] $WlanAutoSense, [ValidateSet("Disabled","Enabled")] [System.String] $WwanAutoSense, [ValidateSet("Enabled","Disabled")] [System.String] $BlockSleep, [ValidateSet("OSAutomaticSelection","ForceS3")] [System.String] $SleepMode, [ValidateSet("Auto","Standard","Express","PrimAcUse","Custom")] [System.String] $PrimaryBattChargeCfg, [System.UInt16] $CustomChargeStart, [System.UInt16] $CustomChargeStop, [ValidateSet("Standard","Express")] [System.String] $SliceBattChargeCfg, [ValidateSet("Standard","Express")] [System.String] $ModBattChargeCfg, [ValidateSet("Standard","Express")] [System.String] $DockBatteryChargeConfiguration, [ValidateSet("Enabled","Disabled")] [System.String] $IntlSmartConnect, [ValidateSet("Enabled","Disabled")] [System.String] $IntelReadyModeEn, [ValidateSet("Enabled","Disabled")] [System.String] $PeakShiftCfg, [System.UInt16] $PeakShiftBatteryThreshold, [System.String] $PeakShiftDayConfiguration, [System.String] $StartTime, [System.String] $EndTime, [System.String] $ChargeStartTime, [ValidateSet("Enabled","Disabled")] [System.String] $AdvBatteryChargeCfg, [System.String] $AdvancedBatteryChargeConfiguration, [ValidateSet("7.5Watts","15Watts")] [System.String] $Type_CBatteryOverloadProtection, [System.String] $BeginningOfDay, [System.String] $WorkPeriod, [ValidateSet("Enabled","Disabled")] [System.String] $SpeedShift, [ValidateSet("LanOnly","Disabled","LanWithPxeBoot")] [System.String] $WakeOnLan2, [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 $startTime=$PSBoundParameters['StartTime'] $endTime=$PSBoundParameters['EndTime'] $chargestartTime=$PSBoundParameters['ChargeStartTime'] $beginningOfDay=$PSBoundParameters['BeginningOfDay'] $workPeriod=$PSBoundParameters['WorkPeriod'] $PSBoundParameters.Remove("StartTime") | out-null $PSBoundParameters.Remove("EndTime") | out-null $PSBoundParameters.Remove("ChargeStartTime") | out-null $PSBoundParameters.Remove("BeginningOfDay") | out-null $PSBoundParameters.Remove("WorkPeriod") | out-null $PSBoundParameters.Remove("BlockDefinition") | out-null $bool = $true foreach ($config_att in $PSBoundParameters.GetEnumerator()) { if ($Get.ContainsKey($config_att.Key)) { if($config_att.Key -match "PeakShiftDayConfiguration") { $currentvalue = $Get[$config_att.Key] $whichDay=$config_att.Value if($whichDay -eq "Monday") { $iIndex=0 } elseif($whichDay -eq "Tuesday") { $iIndex=1 } elseif($whichDay -eq "Wednesday") { $iIndex=2 } elseif($whichDay -eq "Thursday") { $iIndex=3 } elseif($whichDay -eq "Friday") { $iIndex=4 } elseif($whichDay -eq "Saturday") { $iIndex=5 } elseif($whichDay -eq "Sunday") { $iIndex=6 } if (($currentvalue[$iIndex].StartTime -ne $startTime) -or ($currentvalue[$iIndex].EndTime -ne $endTime) -or ($currentvalue[$iIndex].ChargeStartTime -ne $chargestartTime)){ $bool = $false #$drift = "`nCurrentValue: $currentvalue_nospace`nDesiredValue: $($config_att.value)" $drift = "`nCurrentValue: StartTime "+$currentvalue[$iIndex].StartTime+" EndTime "+$currentvalue[$iIndex].EndTime+" ChargeStartTime "+$currentvalue[$iIndex].ChargeStartTime+"`nDesiredValue: StartTime "+$startTime+" EndTime "+$endTime+" ChargeStartTime "+$chargestartTime $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." } } elseif($config_att.Key -match "AdvancedBatteryChargeConfiguration") { $currentvalue = $Get[$config_att.Key] $whichDay=$config_att.Value if($whichDay -eq "Monday") { $iIndex=0 } elseif($whichDay -eq "Tuesday") { $iIndex=1 } elseif($whichDay -eq "Wednesday") { $iIndex=2 } elseif($whichDay -eq "Thursday") { $iIndex=3 } elseif($whichDay -eq "Friday") { $iIndex=4 } elseif($whichDay -eq "Saturday") { $iIndex=5 } elseif($whichDay -eq "Sunday") { $iIndex=6 } if (($currentvalue[$iIndex].BeginningOfDay -ne $beginningOfDay) -or ($currentvalue[$iIndex].WorkPeriod -ne $workPeriod)){ $bool = $false #$drift = "`nCurrentValue: $currentvalue_nospace`nDesiredValue: $($config_att.value)" $drift = "`nCurrentValue: BeginningOfDay "+$currentvalue[$iIndex].BeginningOfDay+" WorkPeriod "+$currentvalue[$iIndex].WorkPeriod+"`nDesiredValue: BeginningOfDay "+$beginningOfDay+" WorkPeriod "+$workPeriod $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 { $currentvalue="" if($config_att.Key -match "Type_CBatteryOverloadProtection") { $currentvalue = $Get["Type-CBatteryOverloadProtection"] } else { $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 # MIIkoAYJKoZIhvcNAQcCoIIkkTCCJI0CAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAobZh4LxqOtTwx # LOGi1r5SQObPHnLtmViLjo6aWmuPB6CCExYwggXfMIIEx6ADAgECAhBOQOQ3VO3m # jAAAAABR05R/MA0GCSqGSIb3DQEBCwUAMIG+MQswCQYDVQQGEwJVUzEWMBQGA1UE # ChMNRW50cnVzdCwgSW5jLjEoMCYGA1UECxMfU2VlIHd3dy5lbnRydXN0Lm5ldC9s # ZWdhbC10ZXJtczE5MDcGA1UECxMwKGMpIDIwMDkgRW50cnVzdCwgSW5jLiAtIGZv # ciBhdXRob3JpemVkIHVzZSBvbmx5MTIwMAYDVQQDEylFbnRydXN0IFJvb3QgQ2Vy # dGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjAeFw0yMTA1MDcxNTQzNDVaFw0zMDEx # MDcxNjEzNDVaMGkxCzAJBgNVBAYTAlVTMRYwFAYDVQQKDA1FbnRydXN0LCBJbmMu # MUIwQAYDVQQDDDlFbnRydXN0IENvZGUgU2lnbmluZyBSb290IENlcnRpZmljYXRp # b24gQXV0aG9yaXR5IC0gQ1NCUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK # AoICAQCngY/3FEW2YkPy2K7TJV5IT1G/xX2fUBw10dZ+YSqUGW0nRqSmGl33VFFq # gCLGqGZ1TVSDyV5oG6v2W2Swra0gvVTvRmttAudFrnX2joq5Mi6LuHccUk15iF+l # OhjJUCyXJy2/2gB9Y3/vMuxGh2Pbmp/DWiE2e/mb1cqgbnIs/OHxnnBNCFYVb5Cr # +0i6udfBgniFZS5/tcnA4hS3NxFBBuKK4Kj25X62eAUBw2DtTwdBLgoTSeOQm3/d # vfqsv2RR0VybtPVc51z/O5uloBrXfQmywrf/bhy8yH3m6Sv8crMU6UpVEoScRCV1 # HfYq8E+lID1oJethl3wP5bY9867DwRG8G47M4EcwXkIAhnHjWKwGymUfe5SmS1dn # DH5erXhnW1XjXuvH2OxMbobL89z4n4eqclgSD32m+PhCOTs8LOQyTUmM4OEAwjig # nPqEPkHcblauxhpb9GdoBQHNG7+uh7ydU/Yu6LZr5JnexU+HWKjSZR7IH9Vybu5Z # HFc7CXKd18q3kMbNe0WSkUIDTH0/yvKquMIOhvMQn0YupGaGaFpoGHApOBGAYGuK # Q6NzbOOzazf/5p1nAZKG3y9I0ftQYNVc/iHTAUJj/u9wtBfAj6ju08FLXxLq/f0u # DodEYOOp9MIYo+P9zgyEIg3zp3jak/PbOM+5LzPG/wc8Xr5F0wIDAQABo4IBKzCC # AScwDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQEwHQYDVR0lBBYw # FAYIKwYBBQUHAwMGCCsGAQUFBwMIMDsGA1UdIAQ0MDIwMAYEVR0gADAoMCYGCCsG # AQUFBwIBFhpodHRwOi8vd3d3LmVudHJ1c3QubmV0L3JwYTAzBggrBgEFBQcBAQQn # MCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmVudHJ1c3QubmV0MDAGA1UdHwQp # MCcwJaAjoCGGH2h0dHA6Ly9jcmwuZW50cnVzdC5uZXQvZzJjYS5jcmwwHQYDVR0O # BBYEFIK61j2Xzp/PceiSN6/9s7VpNVfPMB8GA1UdIwQYMBaAFGpyJnrQHu995ztp # UdRsjZ+QEmarMA0GCSqGSIb3DQEBCwUAA4IBAQAfXkEEtoNwJFMsVXMdZTrA7LR7 # BJheWTgTCaRZlEJeUL9PbG4lIJCTWEAN9Rm0Yu4kXsIBWBUCHRAJb6jU+5J+Nzg+ # LxR9jx1DNmSzZhNfFMylcfdbIUvGl77clfxwfREc0yHd0CQ5KcX+Chqlz3t57jpv # 3ty/6RHdFoMI0yyNf02oFHkvBWFSOOtg8xRofcuyiq3AlFzkJg4sit1Gw87kVlHF # VuOFuE2bRXKLB/GK+0m4X9HyloFdaVIk8Qgj0tYjD+uL136LwZNr+vFie1jpUJuX # bheIDeHGQ5jXgWG2hZ1H7LGerj8gO0Od2KIc4NR8CMKvdgb4YmZ6tvf6yK81MIIG # gzCCBGugAwIBAgIQNa+3e500H2r8j4RGqzE1KzANBgkqhkiG9w0BAQ0FADBpMQsw # CQYDVQQGEwJVUzEWMBQGA1UECgwNRW50cnVzdCwgSW5jLjFCMEAGA1UEAww5RW50 # cnVzdCBDb2RlIFNpZ25pbmcgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt # IENTQlIxMB4XDTIxMDUwNzE5MTk1MloXDTQwMTIyOTIzNTkwMFowYzELMAkGA1UE # BhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xPDA6BgNVBAMTM0VudHJ1c3Qg # RXh0ZW5kZWQgVmFsaWRhdGlvbiBDb2RlIFNpZ25pbmcgQ0EgLSBFVkNTMjCCAiIw # DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL69pznJpX3sXWXx9Cuph9DnrRrF # GjsYzuGhUY1y+s5YH1y4JEIPRtUxl9BKTeObMMm6l6ic/kU2zyeA53u4bsEkt9+n # dNyF8qMkWEXMlJQ7AuvEjXxG9VxmguOkwdMfrG4MUyMO1Dr62kLxg1RfNTJW8rV4 # m1cASB6pYWEnDnMDQ7bWcJL71IWaMMaz5ppeS+8dKthmqxZG/wvYD6aJSgJRV0E8 # QThOl8dRMm1njmahXk2fNSKv1Wq3f0BfaDXMafrxBfDqhabqMoXLwcHKg2lFSQbc # CWy6SWUZjPm3NyeMZJ414+Xs5wegnahyvG+FOiymFk49nM8I5oL1RH0owL2JrWwv # 3C94eRHXHHBL3Z0ITF4u+o29p91j9n/wUjGEbjrY2VyFRJ5jBmnQhlh4iZuHu1gc # pChsxv5pCpwerBFgal7JaWUu7UMtafF4tzstNfKqT+If4wFvkEaq1agNBFegtKzj # bb2dGyiAJ0bH2qpnlfHRh3vHyCXphAyPiTbSvjPhhcAz1aA8GYuvOPLlk4C/xsOr # e5PEPZ257kV2wNRobzBePLQ2+ddFQuASBoDbpSH85wV6KI20jmB798i1SkesFGaX # oFppcjFXa1OEzWG6cwcVcDt7AfynP4wtPYeM+wjX5S8Xg36Cq08J8inhflV3ZZQF # HVnUCt2TfuMUXeK7AgMBAAGjggErMIIBJzASBgNVHRMBAf8ECDAGAQH/AgEAMB0G # A1UdDgQWBBTOiU+CUaoVooRiyjEjYdJh+/j+eDAfBgNVHSMEGDAWgBSCutY9l86f # z3Hokjev/bO1aTVXzzAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6 # Ly9vY3NwLmVudHJ1c3QubmV0MDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwu # ZW50cnVzdC5uZXQvY3NicjEuY3JsMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAK # BggrBgEFBQcDAzBEBgNVHSAEPTA7MDAGBFUdIAAwKDAmBggrBgEFBQcCARYaaHR0 # cDovL3d3dy5lbnRydXN0Lm5ldC9ycGEwBwYFZ4EMAQMwDQYJKoZIhvcNAQENBQAD # ggIBAD4AVLgq849mr2EWxFiTZPRBi2RVjRs1M6GbkdirRsqrX7y+fnDk0tcHqJYH # 14bRVwoI0NB4Tfgq37IE85rh13zwwQB6wUCh34qMt8u0HQFh8piapt24gwXKqSwW # 3JwtDv6nl+RQqZeVwUsqjFHjxALga3w1TVO8S5QTi1MYFl6mCqe4NMFssess5DF9 # DCzGfOGkVugtdtWyE3XqgwCuAHfGb6k97mMUgVAW/FtPEhkOWw+N6kvOBkyJS64g # zI5HpnXWZe4vMOhdNI8fgk1cQqbyFExQIJwJonQkXDnYiTKFPK+M5Wqe5gQ6pRP/ # qh3NR0suAgW0ao/rhU+B7wrbfZ8pj6XCP1I4UkGVO7w+W1QwQiMJY95QjYk1Rfqr # uA+Poq17ehGT8Y8ohHtoeUdq6GQpTR/0HS9tHsiUhjzTWpl6a3yrNfcrOUtPuT8W # ku8pjI2rrAEazHFEOctAPiASzghw40f+3IDXCADRC2rqIbV5ZhfpaqpW3c0VeLED # wBStPkcYde0KU0syk83/gLGQ1hPl5EF4Iu1BguUO37DOlSFF5osB0xn39CtVrNlW # c2MQ4LigbctUlpigmSFRBqqmDDorY8t52kO50hLM3o9VeukJ8+Ka0yXBezaS2uDl # UmfN4+ZUCqWd1HOj0y9dBmSFA3d/YNjCvHTJlZFot7d+YRl1MIIGqDCCBJCgAwIB # AgIQAe4UxLGsyd7P5PzHxoWYOTANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJV # UzEWMBQGA1UEChMNRW50cnVzdCwgSW5jLjE8MDoGA1UEAxMzRW50cnVzdCBFeHRl # bmRlZCBWYWxpZGF0aW9uIENvZGUgU2lnbmluZyBDQSAtIEVWQ1MyMB4XDTIxMTEx # ODIzMDczOVoXDTIyMTIxMjIzMDczOVowgdgxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI # EwVUZXhhczETMBEGA1UEBxMKUm91bmQgUm9jazETMBEGCysGAQQBgjc8AgEDEwJV # UzEZMBcGCysGAQQBgjc8AgECEwhEZWxhd2FyZTERMA8GA1UEChMIRGVsbCBJbmMx # HTAbBgNVBA8TFFByaXZhdGUgT3JnYW5pemF0aW9uMR0wGwYDVQQLExRDbGllbnQg # UHJvZHVjdCBHcm91cDEQMA4GA1UEBRMHMjE0MTU0MTERMA8GA1UEAxMIRGVsbCBJ # bmMwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCcnoY5qeZB6eKg6TA0 # u4F4EOiljq6evB9RAQVNoxAiM/LCe2DdMC6NJZ65D+NvuoqdJOwFfFF4XsDZ1Ejt # GIKSkFWi4UrgdG/VAh8QUru2zJc7Loun9WlgixCc3+umiC+BepYwkzRwCA6fnXDd # pn7leFV6+hfTZxLZ+3FM+apPHrCA06ediV7TTqE2D+8OiO2ltOzTMGBSIFd+6QS3 # 9yqKiEFgU6Fj/XrZ/daJ7M3Y9E1HJGcmKB5I+7tO7WMcFXElJiCkXt8MJiKZWf9v # sQUwz95YEwFHyQq28CIqSwhzTsu1RTr2ntYztWusyggBmeRMOZbpBCPwov/uH3Qg # p3fss43WHpTOvrrOxy/aNi3l4wiAzE76I/Ormena6Q5KeDDRspg39LMopZqujyB3 # 0n1+MLt7AT+Rn/Wo8QEWmHWTPKxNgDLLGzmUdtwfNgkkBuh9d7QM4RQVm97Q/yCI # OrVDpGpJic3WcgiWoeBNYGHjml0FQC0Y3wkmgOgUND7xL5ECAwEAAaOCAWAwggFc # MAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFLo0bmGFz/lpCSH/8Bb/n9HscUq3MB8G # A1UdIwQYMBaAFM6JT4JRqhWihGLKMSNh0mH7+P54MGcGCCsGAQUFBwEBBFswWTAj # BggrBgEFBQcwAYYXaHR0cDovL29jc3AuZW50cnVzdC5uZXQwMgYIKwYBBQUHMAKG # Jmh0dHA6Ly9haWEuZW50cnVzdC5uZXQvZXZjczItY2hhaW4ucDdjMDEGA1UdHwQq # MCgwJqAkoCKGIGh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvZXZjczIuY3JsMA4GA1Ud # DwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzBLBgNVHSAERDBCMDcGCmCG # SAGG+mwKAQIwKTAnBggrBgEFBQcCARYbaHR0cHM6Ly93d3cuZW50cnVzdC5uZXQv # cnBhMAcGBWeBDAEDMA0GCSqGSIb3DQEBCwUAA4ICAQCeCAC5jie90k3LIkOSD8lh # F5ljcQDkp7HGkCvIVqNJ0hLHoLTubqURUWOBh0XVln6oGG80NVLVz/NqW4kGpLoC # ntX/BGb68IbyyEh/uA2ODqRkFfnHhOqtoBlfn6A02/1GbW8Gjuc90MsK89ANVUyo # g9l4DG+jjVjWpsRu21YypDNwnuHTzjbvl1E85zNDUJgq1P/9lxwvXr/DKQgwHsQs # /7bflgYQsf2BS0aj1mDvnqUmFOVR6lEdbnxYo2cEmw3Uvx+Zd3oAkP+Cd8uxDn4b # h+9DhnL+D7NNzbgAnDwB5RAiHp4yCIvHwHE+IZhUEGWLSqph81+oUUDwaeOohdMf # NA3ZJYd8aSDgldapLuG3kfP91eMDu59AWtdFW1JZ0tGr8I24+LS4NeD6dsdb7RUj # Z8VsK8S5VDKYyHzxQPYFI78w8wjIKZ9d1M7BrRiQMhg3U3gP9kj4GRVWIjJyxqPx # JXahtIULNreCnfZzMi0w3QcLt1KwH4hYYQ9sO2EZYOUoZ4wWVodb5NQiM5Ksjmli # 8262L7zhW5fb9LIzlvNf10z9Ab8nf+QN6dMWqydnHmB0kL6H1i515cE3cmBDo+b2 # QKQFbpI5d2AilrbsD3s9OD2siDrmTj+aFsZ3h/OZB2xiYkewm0QTpFDG5q715634 # kdBK9cjmdy5Y5OJ8+LSZkzGCEOAwghDcAgEBMHcwYzELMAkGA1UEBhMCVVMxFjAU # BgNVBAoTDUVudHJ1c3QsIEluYy4xPDA6BgNVBAMTM0VudHJ1c3QgRXh0ZW5kZWQg # VmFsaWRhdGlvbiBDb2RlIFNpZ25pbmcgQ0EgLSBFVkNTMgIQAe4UxLGsyd7P5PzH # xoWYOTANBglghkgBZQMEAgEFAKB8MBAGCisGAQQBgjcCAQwxAjAAMBkGCSqGSIb3 # DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEV # MC8GCSqGSIb3DQEJBDEiBCBaeHZtGV3h1mS037nI56FhmmMTkGSaOLONJLOFMAh9 # 2zANBgkqhkiG9w0BAQEFAASCAYBU9QErRaSmwJXkxFeUYLhooWIg9+2zlpaRYdom # pX0XrQVRNq4rFRMa//dH6E21KnMdH/hydcOTyxbTWRKHAT4JyigJoFR2n+r/hXxb # QfeZBWk9XzVmed3MVJ7bM1nx17l7T0NDr77NxzHfmcLZzHP6ZbxTz1lRQInuaHiW # m0ekovmfBZl523gVcQ50yPZs9KKGhRrZvTNt6b7KDLOswGWqO7MQmPrKEyY5bYlR # SB6bFt/+7K1PZD8ZejQo95FWfydLgrcfQzPA/VJ5e7bgCIc+EKw6+ZUVf+5Uoi+p # gBW2ainu4fY1t/cFfgyS0gUUnHwELG4aVUHKeJL5hDsiRovuplvyASsQazc3KyBM # usMpg2/zY1blPJnWo8IDIl8bpGeBJib7KoUATp/ktSmqmGM6vuzgIJnEolr/K3pa # 89lTTojWx8AIsfqfrz2He2GAG7rqsMPYQjsilB8huuoO7EiMJ2jDsocMmjCZ6N44 # zUZ+M1lMMLaSw4xBrm56oAQOlBChgg48MIIOOAYKKwYBBAGCNwMDATGCDigwgg4k # BgkqhkiG9w0BBwKggg4VMIIOEQIBAzENMAsGCWCGSAFlAwQCATCCAQ4GCyqGSIb3 # DQEJEAEEoIH+BIH7MIH4AgEBBgtghkgBhvhFAQcXAzAxMA0GCWCGSAFlAwQCAQUA # BCCirD+XwvkK+mzTkDtCJ0I8aV5yu+0HXDhj/famYtAKzAIUeOH8vPHKGzeNLt7B # UYMcfX4bBAAYDzIwMjIwOTI5MTA0MjM1WjADAgEeoIGGpIGDMIGAMQswCQYDVQQG # EwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5 # bWFudGVjIFRydXN0IE5ldHdvcmsxMTAvBgNVBAMTKFN5bWFudGVjIFNIQTI1NiBU # aW1lU3RhbXBpbmcgU2lnbmVyIC0gRzOgggqLMIIFODCCBCCgAwIBAgIQewWx1Elo # UUT3yYnSnBmdEjANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UEBhMCVVMxFzAVBgNV # BAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 # b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo # b3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9v # dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNjAxMTIwMDAwMDBaFw0zMTAx # MTEyMzU5NTlaMHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jw # b3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0d29yazEoMCYGA1UE # AxMfU3ltYW50ZWMgU0hBMjU2IFRpbWVTdGFtcGluZyBDQTCCASIwDQYJKoZIhvcN # AQEBBQADggEPADCCAQoCggEBALtZnVlVT52Mcl0agaLrVfOwAa08cawyjwVrhpon # ADKXak3JZBRLKbvC2Sm5Luxjs+HPPwtWkPhiG37rpgfi3n9ebUA41JEG50F8eRzL # y60bv9iVkfPw7mz4rZY5Ln/BJ7h4OcWEpe3tr4eOzo3HberSmLU6Hx45ncP0mqj0 # hOHE0XxxxgYptD/kgw0mw3sIPk35CrczSf/KO9T1sptL4YiZGvXA6TMU1t/HgNuR # 7v68kldyd/TNqMz+CfWTN76ViGrF3PSxS9TO6AmRX7WEeTWKeKwZMo8jwTJBG1kO # qT6xzPnWK++32OTVHW0ROpL2k8mc40juu1MO1DaXhnjFoTcCAwEAAaOCAXcwggFz # MA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEAMGYGA1UdIARfMF0w # WwYLYIZIAYb4RQEHFwMwTDAjBggrBgEFBQcCARYXaHR0cHM6Ly9kLnN5bWNiLmNv # bS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0cHM6Ly9kLnN5bWNiLmNvbS9ycGEwLgYI # KwYBBQUHAQEEIjAgMB4GCCsGAQUFBzABhhJodHRwOi8vcy5zeW1jZC5jb20wNgYD # VR0fBC8wLTAroCmgJ4YlaHR0cDovL3Muc3ltY2IuY29tL3VuaXZlcnNhbC1yb290 # LmNybDATBgNVHSUEDDAKBggrBgEFBQcDCDAoBgNVHREEITAfpB0wGzEZMBcGA1UE # AxMQVGltZVN0YW1wLTIwNDgtMzAdBgNVHQ4EFgQUr2PWyqNOhXLgp7xB8ymiOH+A # dWIwHwYDVR0jBBgwFoAUtnf6aUhHn1MS1cLqBzJ2B9GXBxkwDQYJKoZIhvcNAQEL # BQADggEBAHXqsC3VNBlcMkX+DuHUT6Z4wW/X6t3cT/OhyIGI96ePFeZAKa3mXfSi # 2VZkhHEwKt0eYRdmIFYGmBmNXXHy+Je8Cf0ckUfJ4uiNA/vMkC/WCmxOM+zWtJPI # TJBjSDlAIcTd1m6JmDy1mJfoqQa3CcmPU1dBkC/hHk1O3MoQeGxCbvC2xfhhXFL1 # TvZrjfdKer7zzf0D19n2A6gP41P3CnXsxnUuqmaFBJm3+AZX4cYO9uiv2uybGB+q # ueM6AL/OipTLAduexzi7D1Kr0eOUA2AKTaD+J20UMvw/l0Dhv5mJ2+Q5FL3a5NPD # 6itas5VYVQR9x5rsIwONhSrS/66pYYEwggVLMIIEM6ADAgECAhB71OWvuswHP6EB # IwQiQU0SMA0GCSqGSIb3DQEBCwUAMHcxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRT # eW1hbnRlYyBDb3Jwb3JhdGlvbjEfMB0GA1UECxMWU3ltYW50ZWMgVHJ1c3QgTmV0 # d29yazEoMCYGA1UEAxMfU3ltYW50ZWMgU0hBMjU2IFRpbWVTdGFtcGluZyBDQTAe # Fw0xNzEyMjMwMDAwMDBaFw0yOTAzMjIyMzU5NTlaMIGAMQswCQYDVQQGEwJVUzEd # MBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xHzAdBgNVBAsTFlN5bWFudGVj # IFRydXN0IE5ldHdvcmsxMTAvBgNVBAMTKFN5bWFudGVjIFNIQTI1NiBUaW1lU3Rh # bXBpbmcgU2lnbmVyIC0gRzMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB # AQCvDoqq+Ny/aXtUF3FHCb2NPIH4dBV3Z5Cc/d5OAp5LdvblNj5l1SQgbTD53R2D # 6T8nSjNObRaK5I1AjSKqvqcLG9IHtjy1GiQo+BtyUT3ICYgmCDr5+kMjdUdwDLNf # W48IHXJIV2VNrwI8QPf03TI4kz/lLKbzWSPLgN4TTfkQyaoKGGxVYVfR8QIsxLWr # 8mwj0p8NDxlsrYViaf1OhcGKUjGrW9jJdFLjV2wiv1V/b8oGqz9KtyJ2ZezsNvKW # lYEmLP27mKoBONOvJUCbCVPwKVeFWF7qhUhBIYfl3rTTJrJ7QFNYeY5SMQZNlANF # xM48A+y3API6IsW0b+XvsIqbAgMBAAGjggHHMIIBwzAMBgNVHRMBAf8EAjAAMGYG # A1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAjBggrBgEFBQcCARYXaHR0cHM6Ly9k # LnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0cHM6Ly9kLnN5bWNiLmNv # bS9ycGEwQAYDVR0fBDkwNzA1oDOgMYYvaHR0cDovL3RzLWNybC53cy5zeW1hbnRl # Yy5jb20vc2hhMjU2LXRzcy1jYS5jcmwwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgw # DgYDVR0PAQH/BAQDAgeAMHcGCCsGAQUFBwEBBGswaTAqBggrBgEFBQcwAYYeaHR0 # cDovL3RzLW9jc3Aud3Muc3ltYW50ZWMuY29tMDsGCCsGAQUFBzAChi9odHRwOi8v # dHMtYWlhLndzLnN5bWFudGVjLmNvbS9zaGEyNTYtdHNzLWNhLmNlcjAoBgNVHREE # ITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtNjAdBgNVHQ4EFgQUpRMB # qZ+FzBtuFh5fOzGqeTYAex0wHwYDVR0jBBgwFoAUr2PWyqNOhXLgp7xB8ymiOH+A # dWIwDQYJKoZIhvcNAQELBQADggEBAEaer/C4ol+imUjPqCdLIc2yuaZycGMv41Up # ezlGTud+ZQZYi7xXipINCNgQujYk+gp7+zvTYr9KlBXmgtuKVG3/KP5nz3E/5jMJ # 2aJZEPQeSv5lzN7Ua+NSKXUASiulzMub6KlN97QXWZJBw7c/hub2wH9EPEZcF1rj # pDvVaSbVIX3hgGd+Yqy3Ti4VmuWcI69bEepxqUH5DXk4qaENz7Sx2j6aescixXTN # 30cJhsT8kSWyG5bphQjo3ep0YG5gpVZ6DchEWNzm+UgUnuW/3gC9d7GYFHIUJN/H # ESwfAD/DSxTGZxzMHgajkF9cVIs+4zNbgg/Ft4YCTnGf6WZFP3YxggJaMIICVgIB # ATCBizB3MQswCQYDVQQGEwJVUzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRp # b24xHzAdBgNVBAsTFlN5bWFudGVjIFRydXN0IE5ldHdvcmsxKDAmBgNVBAMTH1N5 # bWFudGVjIFNIQTI1NiBUaW1lU3RhbXBpbmcgQ0ECEHvU5a+6zAc/oQEjBCJBTRIw # CwYJYIZIAWUDBAIBoIGkMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkq # hkiG9w0BCQUxDxcNMjIwOTI5MTA0MjM1WjAvBgkqhkiG9w0BCQQxIgQgDCMT8nZM # qYpgHT8CVwebaDTSQQJbi+4gvvMqMRx2EuIwNwYLKoZIhvcNAQkQAi8xKDAmMCQw # IgQgxHTOdgB9AjlODaXk3nwUxoD54oIBPP72U+9dtx/fYfgwCwYJKoZIhvcNAQEB # BIIBAHTMO9cRi0FL02IpR9OVz3gGFaHkshBo9vY4AbKyQMT6ciozpTSUQYnFN5v5 # P56a5PqBbK0ZYbm+nVdlvjG0cFjUM3izrvghT8nL3pVsyPdv0Xase7SciWM1ne7W # olMAT76z5sIqiX+0LFmq7QkxhQGPw6xx63lqbkq5LBjNnaMvTvQNg35QuuFpU5uu # GVJgEwiF96NhH8x7xu606VuU1YPwQ8SflOZSGMpxQnXRMVIEtCMbgkX18RQuY1Eh # JhjkBrYgBwwOhpqzJFzQ5hj/YmKzaHZqM6LIhpY6rRy13neOrOJRjP4TP2zyPlkj # LlVaZeV16whepP0isggSP0RCyVY= # SIG # End signature block |