# Copyright (C) 2007 Intel Corporation Function Set-AMTAlarmClock { <# .Synopsis Sets a Intel Active Management Technology alarm clock timer .Description This CmdLet allows the user to set a wake timer on clients that have Intel Active Management Technology (AMT) firmware version 5.1 or higher. Since Intel AMT firmware version 8.0 or higher, multiple alarm clock timers are supported. .Notes Supported AMT Firmware Versions: 5.1 and higher AMT Provisioning: The vPro client AMT firmware must be provisioned prior to accessing AMT functionality. This CMDLet will fail if it is run against a vPro client that has not been provisioned. AMT Client Authentication: To invoke commands against AMT enabled clients credentials to authenticate must be specified. When no credential is provided as a parameter, the script will use the local logged on Kerberos credential. When only the username (Kerberos or Digest) parameter is included the user will be prompted to provide the associated password. Credentials should be stored as a PowerShell variable then passed into the Cmdlet with the credential parameter. $AMTCredential = get-credential AMT Client Encryption: If the Intel vPro client has been configured to use TLS (a web server certificate has been issued to the Intel Management Engine) the Cmdlet must be called with a -TLS switch. When managing an Intel vPro client over TLS (Port 16993) it is important that the computername parameter matchs the primary subject name of the issued TLS certificate. Typically this is the fully qualified domain name (FQDN). If Mutual TLS is desired, the Cmdlet must be called with -TLS switch and with a valid certificate name from the certificate store in the -CertificateName parameter. AlarmTime: The AlarmTime parameter is the date and time to wake the client. It is set as [YYYY]-[MM]-[DD]T[HH]:[MM]:[SS] Example: 2010-07-14T02:00:00 would wake the client on July 14, 2010 @ 02:00. If the user sets the alarm date and time on a client in a different timezone, the alarm time specified will be set to the proper GMT for the client. For Example if running the Cmdlet from a client in the Pacific Time zone to configure the wake up time on a client configured with Eastern Time for 08:00, the alarm clock will wake the client at 08:00 Eastern time. Interval: Interval parameter is the desired reoccurrence interval for the alarm to be set. The format is: [DD]-[HH]-[MM]-[SS] Example: 07-00:00:00 would have a reoccurrence of every seven day at the same time; Example: 00-02:30:00 would have a reoccurrence of every 2 hours 30 minutes. AlarmName: Since Intel AMT firmware version 8.0 or higher, can supply an alarm name for future handeling. DeleteCompletion Since Intel AMT firmware version 8.0 or higher, can determined whether the alarm clock will be deleted after completion or not. Status: Status output designates if the Cmdlet was run successfully. For failed attempts additional status may be provided. .Link http:\\vproexpert.com http:\\www.intel.com\vpro http:\\www.intel.com .Example Set-AMTAlarmClock -ComputerName:vproclient.vprodemo.com -TLS -CertificateName "myCertificate" -AlarmTime:2010-07-14T02:00:00 Sets one time occurrence for wake up alarmclock. ComputerName : vproclient.vprodemo.com Port : 16993 NextAlarmTime : Wednesday, July 14, 2010 2:00:00 AM Status : Successful .Example Set-AMTAlarmClock -ComputerName:vproclient.vprodemo.com -TLS -AlarmTime:2010-07-14T02:00:00 -AlarmName MyDefaultAlarm -DeleteCompletion Sets one time occurrence for wake up alarmclock, the alarm name will be MyDefaultAlarm and it will be deleted automaticly once it occurrs. ComputerName : vproclient.vprodemo.com Port : 16993 NextAlarmTime : Wednesday, July 14, 2010 2:00:00 AM Status : Successful .Example Set-AMTAlarmClock vproclient.vprodemo.com -TLS -AlarmTime:2010-07-14T02:00:00 -UserName vprodemo\administrator Will prompt for Kerberos User Password then Sets one time occurrence for wake up alarmclock. ComputerName : vproclient.vprodemo.com Port : 16993 NextAlarmTime : Wednesday, July 14, 2010 2:00:00 AM Status : Successful .Example Set-AMTAlarmClock vproclient -UserName:admin -AlarmTime:2010-07-14T02:00:00 -Interval:07-00:00:00 Will prompt for Digest User Password then sets reoccuring wake up alarmclock for once a week at that time. ComputerName : vproclient Port : 16992 NextAlarmTime : Wednesday, July 14, 2010 2:00:00 AM PeriodicInterval : P0Y0M07DT00H00M Status : Successful .Example Get-Content computers.txt | Set-AMTAlarmClock -credential $AMTCredential -TLS -AlarmTime:2010-07-14T02:00:00 -Interval:00-01:00:00 -credential $SomeStoredPSCredential Will pull the list of amt clients from a text file and pipe them in the Set-AMTAlarmClock CMDLet. Sets reoccuring wake up alarmclock for once every hour on and after that time. ComputerName : computer1.vprodemo.com Port : 16993 NextAlarmTime : Wednesday, July 14, 2010 2:00:00 AM PeriodicInterval : P0Y0M00DT02H00M Status : Successful ComputerName : computer2.vprodemo.com Port : 16993 NextAlarmTime : Wednesday, July 14, 2010 2:00:00 AM PeriodicInterval : P0Y0M00DT02H00M Status : Successful ComputerName : computer3.vprodemo.com Port : 16993 NextAlarmTime : Wednesday, July 14, 2010 2:00:00 AM PeriodicInterval : P0Y0M00DT02H00M Status : Successful #> [CmdletBinding()] Param ( [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$true, position=0, HelpMessage="Hostname, FQDN, or IP Address")] [String[]] $ComputerName, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Valid Ports are 16992 (non-TLS) or 16993 (TLS)")][ValidateSet("16992", "16993")] [String] $Port, [Parameter(Mandatory=$true,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=1, HelpMessage="Alarm Time in YYYY-MM-DDTHH:MM:SS format")][ValidatePattern("[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]T[0-9][0-9]:[0-9][0-9]:[0-9][0-9]")] [string] $AlarmTime, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Periodic Interval in DD-HH:MM:SS format")][ValidatePattern("[0-9][0-9]-[0-9][0-9]:[0-9][0-9]:[0-9][0-9]")] [string] $Interval, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Alarm Name, in use in Intel AMT vresion 8.0 and later.")][string] $AlarmName, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Delete on Completion, in use in Intel AMT vresion 8.0 and later.")][switch] $DeleteCompletion, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Use TLS (Port 16993)")] [switch] $TLS, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Accept self-signed certificate for TLS connection (skip any certificate checks.)")] [switch] $AcceptSelfSignedCert, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Name of certificate. (Use for mutual TLS)")] [string] $CertificateName, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Digest of Kerberos User")] [string] $Username, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, HelpMessage="Digest of Kerberos Password")] [string] $Password, [Parameter(Mandatory=$false,ValueFromPipelineByPropertyName=$true,ValueFromPipeline=$false, position=2, HelpMessage="PS Credential")] [System.Management.Automation.PSCredential] $Credential ) PROCESS { $Results = @() $Obj = new-object psobject try { #create a connection object $Connection = New-Object Intel.Management.Wsman.WsmanConnection if ($credential.username.Length -gt 0) { $Connection.SetCredentials($credential.Username, $credential.Password) } elseif ($username.length -gt 0) { if ($password.length -gt 0) { $passwd = ConvertTo-SecureString $Password -AsPlainText –Force $Connection.SetCredentials($Username, $passwd) } else { $cred = Get-Credential $username $Connection.SetCredentials($cred.Username, $cred.Password) } } if ($Port.Length -lt 1) { if ($TLS.IsPresent) { $Port = 16993; } else { $Port = 16992; } } if($CertificateName.Length -gt 0) { $Connection.Options.SetClientCertificateByCertificateName($CertificateName) } if($AcceptSelfSignedCert.IsPresent) { $Connection.Options.AcceptSelfSignedCertificate=$true; } Foreach ($comp in $ComputerName) { $Connection.SetHost($comp, $port) if($Port -ne "16992") { $GMTError = $false } else { $http = [System.Net.WebRequest]::Create("http://"+$Comp+":"+$port+"/logon.htm") $httpResponse = $http.GetResponse() if($httpResponse.StatusCode -eq [System.Net.HttpStatusCode]::OK) { $amtTime = [System.DateTime]::Parse($httpResponse.GetResponseHeader("Date")) $systemTime = [System.DateTime]::Now if($amtTime.Hour -ne $systemTime.Hour) { # AMT Time was not set to UTC $GMTError = $true } } $httpResponse.Close() } $Obj | Add-Member -MemberType noteproperty -Name ComputerName -value $Comp $Obj | Add-Member -MemberType noteproperty -Name Port -value $port $AlarmClockService_EPR = $Connection.NewReference("http://intel.com/wbem/wscim/1/amt-schema/1/AMT_AlarmClockService") $AlarmClockService_EPR.AddSelector("SystemName","ManagedSystem") try { $AlarmClockService = $AlarmClockService_EPR.Get() } catch { $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Failed" $Obj | Add-Member -MemberType noteproperty -Name "NextAlarmTime" -value "[Error]" $Obj | Add-Member -MemberType noteproperty -Name "PeriodicInterval" -value "[Error]" $Results += $Obj continue } if($AlarmTime -ne "") { if ($AlarmTime.EndsWith(":00") -eq $false) { $replace = $AlarmTime.SubString($AlarmTime.Length-3, 3) $NewAlarmTime = $AlarmTime.TrimEnd($replace); $NewAlarmTime+= ":00" $AlarmTime = $NewAlarmTime } $SetAlarmTime = $Connection.NewInstance("Datetime") try { $TimeObj = [System.DateTime]::Parse($AlarmTime) } catch { $Obj | Add-Member -MemberType noteproperty -Name "NextAlarmTime" -value "[Parse Error]" $Results += $Obj continue } if($GMTError) { # Local Time $SetAlarmTime.Text = $TimeObj.ToString("s")+"Z" } else { # Universal Time $SetAlarmTime.Text = $TimeObj.ToUniversalTime().ToString("s")+"Z" } $Obj | Add-Member -MemberType noteproperty -Name "NextAlarmTime" -value $TimeObj.ToString("F") } if($Interval -ne "") { if($Interval.Contains("-")) { $temp = $Interval.Split("-") $Day = $temp[0] $TimeInterval = $temp[1] } else { $Day = "0" $TimeInterval = $Interval } $temp = $TimeInterval.Split(":") $hours = $temp[0] $minutes = $temp[1] $seconds = $temp[2] $intervalstring = "P0Y0M" + $Day + "DT" + $hours + "H" + $minutes + "M" $SetIntervalTime = $Connection.NewInstance("Interval") try { $TimeObj = [System.DateTime]::Parse($AlarmTime) } catch { $Obj | Add-Member -MemberType noteproperty -Name "PeriodicInterval" -value "[Error]" $Results += $Obj continue } $SetIntervalTime.Text = $intervalstring $Obj | Add-Member -MemberType noteproperty -Name "PeriodicInterval" -value $intervalstring } $SoftwareIdentity_EPR = $Connection.NewReference("SELECT * FROM CIM_SoftwareIdentity WHERE InstanceID='AMT'") try { $SoftwareIdentity = $SoftwareIdentity_EPR.Get() } catch { $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Failed version" $Results += $Obj continue } $temp = $SoftwareIdentity.GetProperty("VersionString").ToString().Split(".") if($temp[0] -lt "8") { if($AlarmTime -ne "") { $AlarmClockService.SetProperty("NextAMTAlarmTime",$SetAlarmTime) } if($Interval -ne "") { $AlarmClockService.SetProperty("AMTAlarmClockInterval",$SetIntervalTime) } try { $RetVal = $AlarmClockService_EPR.Put($AlarmClockService) $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Successful" } catch { $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Failed" } } else { $builder = "" } else { $builder += "" + "DefaultAlarm" + "" } if($AlarmTime -ne "") { $builder += "" + $SetAlarmTime.Xml + "" } if($Interval -ne "") { $builder += "" + $SetIntervalTime.Xml + "" } if($DeleteCompletion.IsPresent) { $builder += "true" } else { $builder += "false" } $builder += "" $addAlarmInput = $AlarmClockService_EPR.CreateMethodInput("AddAlarm") $tempObj = $Connection.NewInstance($builder) $addAlarmInput.SetProperty($tempObj) try { $RetVal = $AlarmClockService_EPR.InvokeMethod($addAlarmInput) if($RetVal.GetProperty("ReturnValue").ToString() -eq "0") { $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Successful" } else { $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Failed. ReturnValue = " + $RetVal.GetProperty("ReturnValue").ToString() - Force } } catch { $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Failed" -Force } } } $Results += $Obj } catch { $Obj | Add-Member -MemberType noteproperty -Name "Status" -value "Failed" -Force $Obj | Add-Member -MemberType noteproperty -Name "Reason" -value $_.Exception.Message -Force $Results += $Obj } # Set back to false for the next cmdlet, if PS is still open $Connection.Options.AcceptSelfSignedCertificate=$false; Write-Output $Results } } # SIG # Begin signature block # MIItiwYJKoZIhvcNAQcCoIItfDCCLXgCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCM6TrCeDR3uibT # 4vsGDga6Odf7OuadA+2/MAp9d/RIqqCCEX4wggVvMIIEV6ADAgECAhBI/JO0YFWU # jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI # DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM # EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy # dmljZXMwHhcNMjEwNTI1MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjBWMQswCQYDVQQG # EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdv # IFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUA # A4ICDwAwggIKAoICAQCN55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+s # hJHjUoq14pbe0IdjJImK/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCD # J9qaDStQ6Utbs7hkNqR+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7 # P2bSlDFp+m2zNKzBenjcklDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extme # me/G3h+pDHazJyCh1rr9gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUz # T2MuuC3hv2WnBGsY2HH6zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6q # RT5uWl+PoVvLnTCGMOgDs0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mcz # mrYI4IAFSEDu9oJkRqj1c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEc # QNYWFyn8XJwYK+pF9e+91WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2T # OglmmVhcKaO5DKYwODzQRjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/ # AZwQsRb8zG4Y3G9i/qZQp7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QID # AQABo4IBEjCCAQ4wHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYD # VR0OBBYEFDLrkpr/NZZILyhAQnAgNpFcF4XmMA4GA1UdDwEB/wQEAwIBhjAPBgNV # HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsGA1UdIAQUMBIwBgYE # VR0gADAIBgZngQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21v # ZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEE # KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZI # hvcNAQEMBQADggEBABK/oe+LdJqYRLhpRrWrJAoMpIpnuDqBv0WKfVIHqI0fTiGF # OaNrXi0ghr8QuK55O1PNtPvYRL4G2VxjZ9RAFodEhnIq1jIV9RKDwvnhXRFAZ/ZC # J3LFI+ICOBpMIOLbAffNRk8monxmwFE2tokCVMf8WPtsAO7+mKYulaEMUykfb9gZ # pk+e96wJ6l2CxouvgKe9gUhShDHaMuwV5KZMPWw5c9QLhTkg4IUaaOGnSDip0TYl # d8GNGRbFiExmfS9jzpjoad+sPKhdnckcW67Y8y90z7h+9teDnRGWYpquRRPaf9xH # +9/DUp/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggXpMIIEUaADAgECAhEA/lzU # lQGKZRek0E74e2uTOjANBgkqhkiG9w0BAQwFADBUMQswCQYDVQQGEwJHQjEYMBYG # A1UEChMPU2VjdGlnbyBMaW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBD # b2RlIFNpZ25pbmcgQ0EgUjM2MB4XDTI0MDMxMzAwMDAwMFoXDTI1MDMxMzIzNTk1 # OVowWjELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExGjAYBgNVBAoM # EUludGVsIENvcnBvcmF0aW9uMRowGAYDVQQDDBFJbnRlbCBDb3Jwb3JhdGlvbjCC # AaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAI69Cz15squYBdM5ZXnjFBNn # vqzI4WUgaQ/PjBKog2t/IkSByXK+3K1m4CwQtTgqpMCD193E3A/xDHmWVEvpCKUB # +xc8c/8FE6TymrIKA/0UH7jVesLgCo0AxfM0dkcqrvLKvnchseekdaM2b+E41NSj # AhhWgGp1LoTZyrAOJNpGsPIfgA/0+J6RCECh9BARbXCRXAnzTuPtWDXfKlOwSa4+ # o2tJM7TPNALTJSLHoZbvfUOpgOh+0lWx49himoW6lfDt5cZDPOT8wNwpd5DWwB8M # hzLfNEpbvR/85s8SP/dWRrAVkSRxS1wqIZa9OsxD+rjBBIe8JDR1Y9hjGBUKybMA # Y30Pp8rDpFeH1Ya1A8gNeae8KRSlacroyoxhRviL9n8nCZIhiqL6Q0Qu9cJGwlYi # L9mAMRyVPI3BHf0s6r6BRqt8yBYP/2dsgc4z9YV9DGJUaKz2kjwud1OJZupFDZio # +shzbO/h78iJSQiMVHgMVFEVOZFERE3dVSEFsWdPAwIDAQABo4IBrjCCAaowHwYD # VR0jBBgwFoAUDyrLIIcouOxvSK4rVKYpqhekzQwwHQYDVR0OBBYEFCjtPWp/OnUU # 51aXAiBwcQ/gvYfGMA4GA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMBMGA1Ud # JQQMMAoGCCsGAQUFBwMDMEoGA1UdIARDMEEwNQYMKwYBBAGyMQECAQMCMCUwIwYI # KwYBBQUHAgEWF2h0dHBzOi8vc2VjdGlnby5jb20vQ1BTMAgGBmeBDAEEATBJBgNV # HR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJs # aWNDb2RlU2lnbmluZ0NBUjM2LmNybDB5BggrBgEFBQcBAQRtMGswRAYIKwYBBQUH # MAKGOGh0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWdu # aW5nQ0FSMzYuY3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNv # bTAjBgNVHREEHDAagRhwa2llbmdpbmVlcmluZ0BpbnRlbC5jb20wDQYJKoZIhvcN # AQEMBQADggGBAB01WGV1cWjtTCQGkNtDRpmS08NuUis1F2+0cwIrk2dY8tXKiZ5R # supkBKWfpjNSHdW79DvVCotBbyRYUdDSeFkQ8jRPm+vlzyFhRWuW4qSYcIlx6qia # pGZEFsvmEEXMnwG9zEEeKsYlnM/ZSI23uLZCXyhJx35G2PpBr3tMym6gIvta5Dml # 4S/XEJJI/ZvIKhPO5QUemCS07S9QN7SOKeEkk1LdV1ccCBNtRpAzmGVr4iYS4pbV # r8yishYe25TSAPeWEy9PYEMnjZbQQS8lD8XFB6gfiTJLFCCzIKsHzMIk+FuJlwVl # q4ec/Wrx0+fpVeo2SPJZI/iE82gtD5oywotprC47MdvVlcvbePYnHoJqqRtnhX+E # 6jlGRtnhUCPV+BsRScp4v8DIUJGdV5AzS5rYu3YhJGDJgTgPGvBtmvaPeJtxcKzX # UnMpPtanuJgW3o1ucSo9SKb9dNqFcLcOUVD2lDjh85Z0anJom924xhVm4cGNWSF7 # az8cVA6zH/Rc6DCCBhowggQCoAMCAQICEGIdbQxSAZ47kHkVIIkhHAowDQYJKoZI # hvcNAQEMBQAwVjELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRl # ZDEtMCsGA1UEAxMkU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIFJvb3QgUjQ2 # MB4XDTIxMDMyMjAwMDAwMFoXDTM2MDMyMTIzNTk1OVowVDELMAkGA1UEBhMCR0Ix # GDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDErMCkGA1UEAxMiU2VjdGlnbyBQdWJs # aWMgQ29kZSBTaWduaW5nIENBIFIzNjCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCC # AYoCggGBAJsrnVP6NT+OYAZDasDP9X/2yFNTGMjO02x+/FgHlRd5ZTMLER4ARkZs # Q3hAyAKwktlQqFZOGP/I+rLSJJmFeRno+DYDY1UOAWKA4xjMHY4qF2p9YZWhhbeF # pPb09JNqFiTCYy/Rv/zedt4QJuIxeFI61tqb7/foXT1/LW2wHyN79FXSYiTxcv+1 # 8Irpw+5gcTbXnDOsrSHVJYdPE9s+5iRF2Q/TlnCZGZOcA7n9qudjzeN43OE/TpKF # 2dGq1mVXn37zK/4oiETkgsyqA5lgAQ0c1f1IkOb6rGnhWqkHcxX+HnfKXjVodTmm # V52L2UIFsf0l4iQ0UgKJUc2RGarhOnG3B++OxR53LPys3J9AnL9o6zlviz5pzsgf # rQH4lrtNUz4Qq/Va5MbBwuahTcWk4UxuY+PynPjgw9nV/35gRAhC3L81B3/bIaBb # 659+Vxn9kT2jUztrkmep/aLb+4xJbKZHyvahAEx2XKHafkeKtjiMqcUf/2BG935A # 591GsllvWwIDAQABo4IBZDCCAWAwHwYDVR0jBBgwFoAUMuuSmv81lkgvKEBCcCA2 # kVwXheYwHQYDVR0OBBYEFA8qyyCHKLjsb0iuK1SmKaoXpM0MMA4GA1UdDwEB/wQE # AwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsG # A1UdIAQUMBIwBgYEVR0gADAIBgZngQwBBAEwSwYDVR0fBEQwQjBAoD6gPIY6aHR0 # cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljQ29kZVNpZ25pbmdSb290 # UjQ2LmNybDB7BggrBgEFBQcBAQRvMG0wRgYIKwYBBQUHMAKGOmh0dHA6Ly9jcnQu # c2VjdGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5wN2Mw # IwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLnNlY3RpZ28uY29tMA0GCSqGSIb3DQEB # DAUAA4ICAQAG/4Lhd2M2bnuhFSCbE/8E/ph1RGHDVpVx0ZE/haHrQECxyNbgcv2F # ymQ5PPmNS6Dah66dtgCjBsULYAor5wxxcgEPRl05pZOzI3IEGwwsepp+8iGsLKaV # pL3z5CmgELIqmk/Q5zFgR1TSGmxqoEEhk60FqONzDn7D8p4W89h8sX+V1imaUb69 # 3TGqWp3T32IKGfIgy9jkd7GM7YCa2xulWfQ6E1xZtYNEX/ewGnp9ZeHPsNwwviJM # BZL4xVd40uPWUnOJUoSiugaz0yWLODRtQxs5qU6E58KKmfHwJotl5WZ7nIQuDT0m # WjwEx7zSM7fs9Tx6N+Q/3+49qTtUvAQsrEAxwmzOTJ6Jp6uWmHCgrHW4dHM3ITpv # G5Ipy62KyqYovk5O6cC+040Si15KJpuQ9VJnbPvqYqfMB9nEKX/d2rd1Q3DiuDex # MKCCQdJGpOqUsxLuCOuFOoGbO7Uv3RjUpY39jkkp0a+yls6tN85fJe+Y8voTnbPU # 1knpy24wUFBkfenBa+pRFHwCBB1QtS+vGNRhsceP3kSPNrrfN2sRzFYsNfrFaWz8 # YOdU254qNZQfd9O/VjxZ2Gjr3xgANHtM3HxfzPYF6/pKK8EE4dj66qKKtm2DTL1K # FCg/OYJyfrdLJq1q2/HXntgr2GVw+ZWhrWgMTn8v1SjZsLlrgIfZHDGCG2Mwghtf # AgEBMGkwVDELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEr # MCkGA1UEAxMiU2VjdGlnbyBQdWJsaWMgQ29kZSBTaWduaW5nIENBIFIzNgIRAP5c # 1JUBimUXpNBO+HtrkzowDQYJYIZIAWUDBAIBBQCgfDAQBgorBgEEAYI3AgEMMQIw # ADAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYK # KwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgmNS/k4cW+Ioaibnnew2RtBJCpWhZ # nJrk6ngcwmBXJ7wwDQYJKoZIhvcNAQEBBQAEggGAcFngkTSRfwyS9ts4YaxCbAPU # yw5iNzNRlzL7G9UoGcrISgoyfpWTASG4p75mFPJDKOi8fEYz/891lT/pSEq+Hskr # yha8NlLO0Pv7cgCyNkxKvx6iVhbXv4e1/aIxVAXJeqFM3fdkIOiUx9H8g5WnsB40 # sXCjqksVhk4SGVN7JdkEUANLhH9gdPXF/NXULIT/f1DgZE8g2DZtHnrM3Q0RW+jx # l5Zk8KqQtHRup2ZV8JG6XxiVi9kdy7nWi17VuTmfWveiZKJRjSV4/4WLx61wS0IS # wOHFJs5QxO2+vvzB2cO6gz3pNx6RwYrMvSIjWjjvZQgtA6EC7oqfQvWhEV9V+a3s # YKQZqlKtSxtPuLVtk7gyy+Av/tpD0e6htKs5vfD7RdhGM4NXE1JIL8pnOuQ6v3rs # gGSM8ATX6DVlWrldx4mF3YAIHHKLKBckpvh6iEaQM8UCkEn+4SYWY0IcT7hK79nD # tuNWDZo34u2FayEY1bFDSXRWvDwWWROxmiOTknIHoYIYzTCCGMkGCisGAQQBgjcD # AwExghi5MIIYtQYJKoZIhvcNAQcCoIIYpjCCGKICAQMxDzANBglghkgBZQMEAgIF # ADCB8wYLKoZIhvcNAQkQAQSggeMEgeAwgd0CAQEGCisGAQQBsjECAQEwMTANBglg # hkgBZQMEAgEFAAQg2ZcJGnq+3tjb91kLo2LPtjqNHidLZlVkNPFMHXq1YZUCFHnA # RbGTsizDYvZNUgsjdnC4zhJgGA8yMDI1MDEyNzE5MDMwOFqgcqRwMG4xCzAJBgNV # BAYTAkdCMRMwEQYDVQQIEwpNYW5jaGVzdGVyMRgwFgYDVQQKEw9TZWN0aWdvIExp # bWl0ZWQxMDAuBgNVBAMTJ1NlY3RpZ28gUHVibGljIFRpbWUgU3RhbXBpbmcgU2ln # bmVyIFIzNaCCEv8wggZdMIIExaADAgECAhA6UmoshM5V5h1l/MwS2OmJMA0GCSqG # SIb3DQEBDAUAMFUxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0 # ZWQxLDAqBgNVBAMTI1NlY3RpZ28gUHVibGljIFRpbWUgU3RhbXBpbmcgQ0EgUjM2 # MB4XDTI0MDExNTAwMDAwMFoXDTM1MDQxNDIzNTk1OVowbjELMAkGA1UEBhMCR0Ix # EzARBgNVBAgTCk1hbmNoZXN0ZXIxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEw # MC4GA1UEAxMnU2VjdGlnbyBQdWJsaWMgVGltZSBTdGFtcGluZyBTaWduZXIgUjM1 # MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjdFn9MFIm739OEk6TWGB # m8PY3EWlYQQ2jQae45iWgPXUGVuYoIa1xjTGIyuw3suUSBzKiyG0/c/Yn++d5mG6 # IyayljuGT9DeXQU9k8GWWj2/BPoamg2fFctnPsdTYhMGxM06z1+Ft0Bav8ybww21 # ii/faiy+NhiUM195+cFqOtCpJXxZ/lm9tpjmVmEqpAlRpfGmLhNdkqiEuDFTuD1G # sV3jvuPuPGKUJTam3P53U4LM0UCxeDI8Qz40Qw9TPar6S02XExlc8X1YsiE6ETcT # z+g1ImQ1OqFwEaxsMj/WoJT18GG5KiNnS7n/X4iMwboAg3IjpcvEzw4AZCZowHyC # zYhnFRM4PuNMVHYcTXGgvuq9I7j4ke281x4e7/90Z5Wbk92RrLcS35hO30TABcGx # 3Q8+YLRy6o0k1w4jRefCMT7b5mTxtq5XPmKvtgfPuaWPkGZ/tbxInyNDA7YgOgcc # ULjp4+D56g2iuzRCsLQ9ac6AN4yRbqCYsG2rcIQ5INTyI2JzA2w1vsAHPRbUTeqV # LDuNOY2gYIoKBWQsPYVoyzaoBVU6O5TG+a1YyfWkgVVS9nXKs8hVti3VpOV3aeua # HnjgC6He2CCDL9aW6gteUe0AmC8XCtWwpePx6QW3ROZo8vSUe9AR7mMdu5+FzTmW # 8K13Bt8GX/YBFJO7LWzwKAUCAwEAAaOCAY4wggGKMB8GA1UdIwQYMBaAFF9Y7Uwx # eqJhQo1SgLqzYZcZojKbMB0GA1UdDgQWBBRo76QySWm2Ujgd6kM5LPQUap4MhTAO # BgNVHQ8BAf8EBAMCBsAwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEF # BQcDCDBKBgNVHSAEQzBBMDUGDCsGAQQBsjEBAgEDCDAlMCMGCCsGAQUFBwIBFhdo # dHRwczovL3NlY3RpZ28uY29tL0NQUzAIBgZngQwBBAIwSgYDVR0fBEMwQTA/oD2g # O4Y5aHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0YW1w # aW5nQ0FSMzYuY3JsMHoGCCsGAQUFBwEBBG4wbDBFBggrBgEFBQcwAoY5aHR0cDov # L2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0YW1waW5nQ0FSMzYu # Y3J0MCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG # 9w0BAQwFAAOCAYEAsNwuyfpPNkyKL/bJT9XvGE8fnw7Gv/4SetmOkjK9hPPa7/Ns # v5/MHuVus+aXwRFqM5Vu51qfrHTwnVExcP2EHKr7IR+m/Ub7PamaeWfle5x8D0x/ # MsysICs00xtSNVxFywCvXx55l6Wg3lXiPCui8N4s51mXS0Ht85fkXo3auZdo1O4l # HzJLYX4RZovlVWD5EfwV6Ve1G9UMslnm6pI0hyR0Zr95QWG0MpNPP0u05SHjq/Yk # PlDee3yYOECNMqnZ+j8onoUtZ0oC8CkbOOk/AOoV4kp/6Ql2gEp3bNC7DOTlaCmH # 24DjpVgryn8FMklqEoK4Z3IoUgV8R9qQLg1dr6/BjghGnj2XNA8ujta2Jyoxpqpv # yETZCYIUjIs69YiDjzftt37rQVwIZsfCYv+DU5sh/StFL1x4rgNj2t8GccUfa/V3 # iFFW9lfIJWWsvtlC5XOOOQswr1UmVdNWQem4LwrlLgcdO/YAnHqY52QwnBLiAuUn # uBeshWmfEb5oieIYMIIGFDCCA/ygAwIBAgIQeiOu2lNplg+RyD5c9MfjPzANBgkq # hkiG9w0BAQwFADBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1p # dGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJvb3Qg # UjQ2MB4XDTIxMDMyMjAwMDAwMFoXDTM2MDMyMTIzNTk1OVowVTELMAkGA1UEBhMC # R0IxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDEsMCoGA1UEAxMjU2VjdGlnbyBQ # dWJsaWMgVGltZSBTdGFtcGluZyBDQSBSMzYwggGiMA0GCSqGSIb3DQEBAQUAA4IB # jwAwggGKAoIBgQDNmNhDQatugivs9jN+JjTkiYzT7yISgFQ+7yavjA6Bg+OiIjPm # /N/t3nC7wYUrUlY3mFyI32t2o6Ft3EtxJXCc5MmZQZ8AxCbh5c6WzeJDB9qkQVa4 # 6xiYEpc81KnBkAWgsaXnLURoYZzksHIzzCNxtIXnb9njZholGw9djnjkTdAA83ab # EOHQ4ujOGIaBhPXG2NdV8TNgFWZ9BojlAvflxNMCOwkCnzlH4oCw5+4v1nssWeN1 # y4+RlaOywwRMUi54fr2vFsU5QPrgb6tSjvEUh1EC4M29YGy/SIYM8ZpHadmVjbi3 # Pl8hJiTWw9jiCKv31pcAaeijS9fc6R7DgyyLIGflmdQMwrNRxCulVq8ZpysiSYNi # 79tw5RHWZUEhnRfs/hsp/fwkXsynu1jcsUX+HuG8FLa2BNheUPtOcgw+vHJcJ8Hn # JCrcUWhdFczf8O+pDiyGhVYX+bDDP3GhGS7TmKmGnbZ9N+MpEhWmbiAVPbgkqykS # kzyYVr15OApZYK8CAwEAAaOCAVwwggFYMB8GA1UdIwQYMBaAFPZ3at0//QET/xah # bIICL9AKPRQlMB0GA1UdDgQWBBRfWO1MMXqiYUKNUoC6s2GXGaIymzAOBgNVHQ8B # Af8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNVHSUEDDAKBggrBgEFBQcD # CDARBgNVHSAECjAIMAYGBFUdIAAwTAYDVR0fBEUwQzBBoD+gPYY7aHR0cDovL2Ny # bC5zZWN0aWdvLmNvbS9TZWN0aWdvUHVibGljVGltZVN0YW1waW5nUm9vdFI0Ni5j # cmwwfAYIKwYBBQUHAQEEcDBuMEcGCCsGAQUFBzAChjtodHRwOi8vY3J0LnNlY3Rp # Z28uY29tL1NlY3RpZ29QdWJsaWNUaW1lU3RhbXBpbmdSb290UjQ2LnA3YzAjBggr # BgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGlnby5jb20wDQYJKoZIhvcNAQEMBQAD # ggIBABLXeyCtDjVYDJ6BHSVY/UwtZ3Svx2ImIfZVVGnGoUaGdltoX4hDskBMZx5N # Y5L6SCcwDMZhHOmbyMhyOVJDwm1yrKYqGDHWzpwVkFJ+996jKKAXyIIaUf5JVKjc # cev3w16mNIUlNTkpJEor7edVJZiRJVCAmWAaHcw9zP0hY3gj+fWp8MbOocI9Zn78 # xvm9XKGBp6rEs9sEiq/pwzvg2/KjXE2yWUQIkms6+yslCRqNXPjEnBnxuUB1fm6b # PAV+Tsr/Qrd+mOCJemo06ldon4pJFbQd0TQVIMLv5koklInHvyaf6vATJP4DfPtK # zSBPkKlOtyaFTAjD2Nu+di5hErEVVaMqSVbfPzd6kNXOhYm23EWm6N2s2ZHCHVhl # UgHaC4ACMRCgXjYfQEDtYEK54dUwPJXV7icz0rgCzs9VI29DwsjVZFpO4ZIVR33L # wXyPDbYFkLqYmgHjR3tKVkhh9qKV2WCmBuC27pIOx6TYvyqiYbntinmpOqh/QPAn # hDgexKG9GX/n1PggkGi9HCapZp8fRwg8RftwS21Ln61euBG0yONM6noD2XQPrFwp # m3GcuqJMf0o8LLrFkSLRQNwxPDDkWXhW+gZswbaiie5fd/W2ygcto78XCSPfFWve # UOSZ5SqK95tBO8aTHmEa4lpJVD7HrTEn9jb1EGvxOb1cnn0CMIIGgjCCBGqgAwIB # AgIQNsKwvXwbOuejs902y8l1aDANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UEBhMC # VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4w # HAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVz # dCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMjEwMzIyMDAwMDAwWhcN # MzgwMTE4MjM1OTU5WjBXMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBM # aW1pdGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1YmxpYyBUaW1lIFN0YW1waW5nIFJv # b3QgUjQ2MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAiJ3YuUVnnR3d # 6LkmgZpUVMB8SQWbzFoVD9mUEES0QUCBdxSZqdTkdizICFNeINCSJS+lV1ipnW5i # hkQyC0cRLWXUJzodqpnMRs46npiJPHrfLBOifjfhpdXJ2aHHsPHggGsCi7uE0awq # KggE/LkYw3sqaBia67h/3awoqNvGqiFRJ+OTWYmUCO2GAXsePHi+/JUNAax3kpqs # tbl3vcTdOGhtKShvZIvjwulRH87rbukNyHGWX5tNK/WABKf+Gnoi4cmisS7oSimg # HUI0Wn/4elNd40BFdSZ1EwpuddZ+Wr7+Dfo0lcHflm/FDDrOJ3rWqauUP8hsokDo # I7D/yUVI9DAE/WK3Jl3C4LKwIpn1mNzMyptRwsXKrop06m7NUNHdlTDEMovXAIDG # AvYynPt5lutv8lZeI5w3MOlCybAZDpK3Dy1MKo+6aEtE9vtiTMzz/o2dYfdP0KWZ # wZIXbYsTIlg1YIetCpi5s14qiXOpRsKqFKqav9R1R5vj3NgevsAsvxsAnI8Oa5s2 # oy25qhsoBIGo/zi6GpxFj+mOdh35Xn91y72J4RGOJEoqzEIbW3q0b2iPuWLA911c # RxgY5SJYubvjay3nSMbBPPFsyl6mY4/WYucmyS9lo3l7jk27MAe145GWxK4O3m3g # EFEIkv7kRmefDR7Oe2T1HxAnICQvr9sCAwEAAaOCARYwggESMB8GA1UdIwQYMBaA # FFN5v1qqK0rPVIDh2JvAnfKyA2bLMB0GA1UdDgQWBBT2d2rdP/0BE/8WoWyCAi/Q # Cj0UJTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zATBgNVHSUEDDAK # BggrBgEFBQcDCDARBgNVHSAECjAIMAYGBFUdIAAwUAYDVR0fBEkwRzBFoEOgQYY/ # aHR0cDovL2NybC51c2VydHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRp # b25BdXRob3JpdHkuY3JsMDUGCCsGAQUFBwEBBCkwJzAlBggrBgEFBQcwAYYZaHR0 # cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEADr5lQe1o # RLjlocXUEYfktzsljOt+2sgXke3Y8UPEooU5y39rAARaAdAxUeiX1ktLJ3+lgxto # LQhn5cFb3GF2SSZRX8ptQ6IvuD3wz/LNHKpQ5nX8hjsDLRhsyeIiJsms9yAWnvdY # OdEMq1W61KE9JlBkB20XBee6JaXx4UBErc+YuoSb1SxVf7nkNtUjPfcxuFtrQdRM # Ri/fInV/AobE8Gw/8yBMQKKaHt5eia8ybT8Y/Ffa6HAJyz9gvEOcF1VWXG8OMeM7 # Vy7Bs6mSIkYeYtddU1ux1dQLbEGur18ut97wgGwDiGinCwKPyFO7ApcmVJOtlw9F # VJxw/mL1TbyBns4zOgkaXFnnfzg4qbSvnrwyj1NiurMp4pmAWjR+Pb/SIduPnmFz # bSN/G8reZCL4fvGlvPFk4Uab/JVCSmj59+/mB2Gn6G/UYOy8k60mKcmaAZsEVkhO # Fuoj4we8CYyaR9vd9PGZKSinaZIkvVjbH/3nlLb0a7SBIkiRzfPfS9T+JesylbHa # 1LtRV9U/7m0q7Ma2CQ/t392ioOssXW7oKLdOmMBl14suVFBmbzrt5V5cQPnwtd3U # OTpS9oCG+ZZheiIvPgkDmA8FzPsnfXW5qHELB43ET7HHFHeRPRYrMBKjkb8/IN7P # o0d0hQoF4TeMM+zYAJzoKQnVKOLg8pZVPT8xggSRMIIEjQIBATBpMFUxCzAJBgNV # BAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxLDAqBgNVBAMTI1NlY3Rp # Z28gUHVibGljIFRpbWUgU3RhbXBpbmcgQ0EgUjM2AhA6UmoshM5V5h1l/MwS2OmJ # MA0GCWCGSAFlAwQCAgUAoIIB+TAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQw # HAYJKoZIhvcNAQkFMQ8XDTI1MDEyNzE5MDMwOFowPwYJKoZIhvcNAQkEMTIEMNn1 # mUhxKf0RRUIw8hWKo4FwHinUAy4LtJiKQR6iZ6Wa8Crd3sniKl1NrGE/JcZCkzCC # AXoGCyqGSIb3DQEJEAIMMYIBaTCCAWUwggFhMBYEFPhgmBmm+4gs9+hSl/KhGVIa # FndfMIGHBBTGrlTkeIbxfD1VEkiMacNKevnC3TBvMFukWTBXMQswCQYDVQQGEwJH # QjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS4wLAYDVQQDEyVTZWN0aWdvIFB1 # YmxpYyBUaW1lIFN0YW1waW5nIFJvb3QgUjQ2AhB6I67aU2mWD5HIPlz0x+M/MIG8 # BBSFPWMtk4KCYXzQkDXEkd6SwULaxzCBozCBjqSBizCBiDELMAkGA1UEBhMCVVMx # EzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYD # VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBS # U0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkCEDbCsL18Gzrno7PdNsvJdWgwDQYJ # KoZIhvcNAQEBBQAEggIAiwYaiK1fgmhpCRxup4rdp3nxe40rK7+vTV9eGr6fgWma # d7/nl+s+Ab6ToplZ7FQ7q6fjfXnBBz5BXRgC7pm/xhh1+6rLD7eUXDy7dOB3rg7o # 5sM9iPQQSr2xfU6CgiBnNVEY7tF8UHlYZW8WXkFJV/7/Ywu9qnA+8UwdEbZwOIIS # FYwNuYSIFYYt77nKRSjUifTHRSox+lV0pv2OGBNxYJ73YhqDKfpI4PSxke2uR5iT # 7nQPUNW5jDjd8fnBBBKsnNKK3fKogW30la0L0mFf7aYq5wLOpSVwDpHX3wEwPVgQ # kZkwGKTMuA9jiV8oJWApV0gi7iDzQyPtSAVwWZU38u7qibpeKIHW2SXTIqorz65V # McQeZKDtI1H3et/Qu8ogv1LPRVTlTsN0z9lZqowzAmJnn1d357RjmoZ54ks56pD/ # mG5X6bwV9MXTa5rohC+S9NJNzPlEXKuqN8CEdCspgfYnsKQNwkKyP9PdH7pa9TfX # 2F/THbnEVDFS10ChQWokMXFpMZbSDqTc1Vgs+OqTiDh/t2u7NaI+tqRCpQ6eJnaC # kF1HR2jc5hNxIooWteyIJYy8QIDOnvrrlZACUeplWbCsv1Xdwh317HVpIBdiHixW # frYu4gZ8xULmGOt56jz3LzPOH5KK5EMgGsDSe51VfENkEGfBHW2Is7x9IT6mRA8= # SIG # End signature block