ISEScriptRunner.psm1
function Enable-ISEScriptRunner { <# .SYNOPSIS Add ScriptRunner ISE Add-on Tool to the ISE profile of the current user. .DESCRIPTION Add ScriptRunner ISE Add-on Tool to the ISE profile of the current user. The ScriptRunner ISE Add-on Tool is automatically loaded at the startup of the Windows PowerShell ISE. The Windows PowerShell ISE is created, if it does not exist. #> [CmdletBinding()] param() Test-WindowsPowerShellISE -FunctionName "Enable-ISEScriptRunner" if (Get-ItemProperty -Path 'HKLM:\SOFTWARE\ScriptRunner\Service\General' -ErrorAction SilentlyContinue) { throw "The Cmdlet 'Enable-ISEScriptRunner' can not be executed at the ScriptRunner Service Host." } #create “Current user, Windows PowerShell ISE” profile, if not exists if (!(Test-Path $profile)) { New-Item -Type file -Path $profile -Force } [String]$iseProfile = Get-Content -Path $profile if ($null -eq $iseProfile) { [String]$iseProfile = [String]::Empty } if (!$iseProfile.Contains("Start-ISEScriptRunner")) { Add-Content -Path $profile -Value "`r`nStart-ISEScriptRunner" -Force } else { Write-Warning "`"$($profile)`" already contains `"Start-ISEScriptRunner`"." } } function Disable-ISEScriptRunner { <# .SYNOPSIS Remove ScriptRunner ISE Add-on Tool from the ISE profile of the current user. .DESCRIPTION Add ScriptRunner ISE Add-on Tool to the ISE profile of the current user. The ScriptRunner ISE Add-on Tool is not loaded at the startup of the Windows PowerShell ISE anymore. #> [CmdletBinding()] param() Test-WindowsPowerShellISE -FunctionName "Disable-ISEScriptRunner" if ((Test-Path $profile)) { # remove ScriptRunner type from profile [string]$iseProfile = Get-Content -Path "$profile" | Select-String -Pattern 'Start-ISEScriptRunner' -NotMatch | Out-String Set-Content -Path "$profile" -Value $iseProfile } else { Write-Warning "A ISE UserProfile `"$($profile)`" does not exist, no changes necessary." } } function Test-WindowsPowerShellISE { <# .SYNOPSIS Ensure running from Windows PowerShell ISE console pane. .DESCRIPTION Ensure running from Windows PowerShell ISE console pane. .PARAMETER FunctionName The name of the calling function. #> [CmdletBinding()] param ([string]$FunctionName) if ($Host.Name -ne "Windows PowerShell ISE Host") { $errorMsg = "The CmdLet {0} requires a Windows PowerShell ISE Host." -f $FunctionName throw $errorMsg } } function Reset-SRXEnv { <# .SYNOPSIS Reset global ScriptRunner PowerShell Host Environment Variable $SRXEnv. .DESCRIPTION Reset global ScriptRunner PowerShell Host Environment Variable $SRXEnv. #> [CmdletBinding()] param () [psobject].Assembly.GetType('System.Management.Automation.TypeAccelerators')::Add('PSSession', [System.Management.Automation.Runspaces.PSSession]) $me = whoami $ipaddress = '127.0.0.1' if (Get-Command -Name 'Get-NetIPAddress' -ErrorAction SilentlyContinue) { $ipaddress = Get-NetIPAddress -AddressFamily IPv4 -ErrorAction SilentlyContinue | Select-Object -First 1 -ExpandProperty 'IPAddress' -ErrorAction SilentlyContinue } $cmdPath = $PSCommandPath if ([string]::IsNullOrEmpty($cmdPath)) { $cmdPath = Join-Path -Path (Get-Location).Path -ChildPath 'myScript.ps1' } $Global:SRXEnv = @{ ReportEmail = '' ResultEmail = '' ResultHtml = '' ResultList = New-Object -TypeName 'System.Collections.ArrayList' ResultList2 = New-Object -TypeName 'System.Collections.ArrayList' ResultMessage = '' ResultObjectJSON = $null SRXActionID = 42 SRXCommandPath = $cmdPath SRXDisplayName = 'Name of the current Action' SRXFilterValue = '' SRXStarted = Get-Date SRXStartedBy = $me SRXStartedIP = $ipaddress SRXStartedReason = "TicketID $((Get-Date).ToString('yyyyMMdd-fff'))" SRXStartedVia = "Interactive by `"$($me)`" ($($Host.Name))" } Write-Verbose ($Global:SRXEnv | Out-String) } Export-ModuleMember -Function 'Enable-ISEScriptRunner', 'Disable-ISEScriptRunner', 'Reset-SRXEnv' # SIG # Begin signature block # MIIoSQYJKoZIhvcNAQcCoIIoOjCCKDYCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCD/1LwIRFFT/um3 # xHA0LuPdgUrob47cqIXbYCCsmFLHvaCCDbUwggawMIIEmKADAgECAhAIrUCyYNKc # TJ9ezam9k67ZMA0GCSqGSIb3DQEBDAUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQK # EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNV # BAMTGERpZ2lDZXJ0IFRydXN0ZWQgUm9vdCBHNDAeFw0yMTA0MjkwMDAwMDBaFw0z # NjA0MjgyMzU5NTlaMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg # SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg # UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw # ggIKAoICAQDVtC9C0CiteLdd1TlZG7GIQvUzjOs9gZdwxbvEhSYwn6SOaNhc9es0 # JAfhS0/TeEP0F9ce2vnS1WcaUk8OoVf8iJnBkcyBAz5NcCRks43iCH00fUyAVxJr # Q5qZ8sU7H/Lvy0daE6ZMswEgJfMQ04uy+wjwiuCdCcBlp/qYgEk1hz1RGeiQIXhF # LqGfLOEYwhrMxe6TSXBCMo/7xuoc82VokaJNTIIRSFJo3hC9FFdd6BgTZcV/sk+F # LEikVoQ11vkunKoAFdE3/hoGlMJ8yOobMubKwvSnowMOdKWvObarYBLj6Na59zHh # 3K3kGKDYwSNHR7OhD26jq22YBoMbt2pnLdK9RBqSEIGPsDsJ18ebMlrC/2pgVItJ # wZPt4bRc4G/rJvmM1bL5OBDm6s6R9b7T+2+TYTRcvJNFKIM2KmYoX7BzzosmJQay # g9Rc9hUZTO1i4F4z8ujo7AqnsAMrkbI2eb73rQgedaZlzLvjSFDzd5Ea/ttQokbI # YViY9XwCFjyDKK05huzUtw1T0PhH5nUwjewwk3YUpltLXXRhTT8SkXbev1jLchAp # QfDVxW0mdmgRQRNYmtwmKwH0iU1Z23jPgUo+QEdfyYFQc4UQIyFZYIpkVMHMIRro # OBl8ZhzNeDhFMJlP/2NPTLuqDQhTQXxYPUez+rbsjDIJAsxsPAxWEQIDAQABo4IB # WTCCAVUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUaDfg67Y7+F8Rhvv+ # YXsIiGX0TkIwHwYDVR0jBBgwFoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0P # AQH/BAQDAgGGMBMGA1UdJQQMMAoGCCsGAQUFBwMDMHcGCCsGAQUFBwEBBGswaTAk # BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAC # hjVodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9v # dEc0LmNydDBDBgNVHR8EPDA6MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5j # b20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNybDAcBgNVHSAEFTATMAcGBWeBDAED # MAgGBmeBDAEEATANBgkqhkiG9w0BAQwFAAOCAgEAOiNEPY0Idu6PvDqZ01bgAhql # +Eg08yy25nRm95RysQDKr2wwJxMSnpBEn0v9nqN8JtU3vDpdSG2V1T9J9Ce7FoFF # UP2cvbaF4HZ+N3HLIvdaqpDP9ZNq4+sg0dVQeYiaiorBtr2hSBh+3NiAGhEZGM1h # mYFW9snjdufE5BtfQ/g+lP92OT2e1JnPSt0o618moZVYSNUa/tcnP/2Q0XaG3Ryw # YFzzDaju4ImhvTnhOE7abrs2nfvlIVNaw8rpavGiPttDuDPITzgUkpn13c5Ubdld # AhQfQDN8A+KVssIhdXNSy0bYxDQcoqVLjc1vdjcshT8azibpGL6QB7BDf5WIIIJw # 8MzK7/0pNVwfiThV9zeKiwmhywvpMRr/LhlcOXHhvpynCgbWJme3kuZOX956rEnP # LqR0kq3bPKSchh/jwVYbKyP/j7XqiHtwa+aguv06P0WmxOgWkVKLQcBIhEuWTatE # QOON8BUozu3xGFYHKi8QxAwIZDwzj64ojDzLj4gLDb879M4ee47vtevLt/B3E+bn # KD+sEq6lLyJsQfmCXBVmzGwOysWGw/YmMwwHS6DTBwJqakAwSEs0qFEgu60bhQji # WQ1tygVQK+pKHJ6l/aCnHwZ05/LWUpD9r4VIIflXO7ScA+2GRfS0YW6/aOImYIbq # yK+p/pQd52MbOoZWeE4wggb9MIIE5aADAgECAhAKJP1KmIX7+jQowyMbCSwIMA0G # CSqGSIb3DQEBCwUAMGkxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg # SW5jLjFBMD8GA1UEAxM4RGlnaUNlcnQgVHJ1c3RlZCBHNCBDb2RlIFNpZ25pbmcg # UlNBNDA5NiBTSEEzODQgMjAyMSBDQTEwHhcNMjIwODIzMDAwMDAwWhcNMjUwOTE4 # MjM1OTU5WjCBgTELMAkGA1UEBhMCREUxEjAQBgNVBAcTCUV0dGxpbmdlbjEjMCEG # A1UEChMaU2NyaXB0UnVubmVyIFNvZnR3YXJlIEdtYkgxFDASBgNVBAsTC0RldmVs # b3BtZW50MSMwIQYDVQQDExpTY3JpcHRSdW5uZXIgU29mdHdhcmUgR21iSDCCAaIw # DQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBAKcqyjEj0fwOK50z5/Bat6McHeK2 # 7HiTb0WvAGgTVstcYSMC9GSBNh77X3gMGzIf4bFFFt5FXVoC3MgxXXhYWBVDXr4k # 3reQ5t9Nm9p4n/lQYsVQ4v4lnBeki8kv9dlRBZdHeAWZ47pQW3JWSVkP1XUQqR16 # uc3wPHL8UjLuPmVl1lbyxyXMHIXilCNIIA1OilNJ37fy/RXYtUkqrkPtU1fV4keu # At+owdH7NrSaxjxo0Ok4xF4gXvxRbJojWi9Rp5hPV6qFaCFsYx4t3QqSeQ/xKPp9 # 3CDBsJz1myLhdDwd5Iji8U/QvLV+qTLcebGj76ojylB9lPyyrqUfZ/8eMgxNvagp # Etmd/RBcv/DS/YKeFOJuA92Y56cP2eNCK0oopTj6Lg5TmIynUjAnnpKfyavmp9s9 # lXMbr/0WnNSxrOK2VQ77A30EsRBXwxdMwKHoQAVGL1mRW/xOuaseKpaaekRIEI5e # Z7PLG5pwvp80SICcYgx/aBwSK9AWdXBZ4UxHzQIDAQABo4ICBjCCAgIwHwYDVR0j # BBgwFoAUaDfg67Y7+F8Rhvv+YXsIiGX0TkIwHQYDVR0OBBYEFFvNKs/rU+6pAev0 # BPScCQIVWvvrMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzCB # tQYDVR0fBIGtMIGqMFOgUaBPhk1odHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGln # aUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEzODQyMDIxQ0ExLmNy # bDBToFGgT4ZNaHR0cDovL2NybDQuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3Rl # ZEc0Q29kZVNpZ25pbmdSU0E0MDk2U0hBMzg0MjAyMUNBMS5jcmwwPgYDVR0gBDcw # NTAzBgZngQwBBAEwKTAnBggrBgEFBQcCARYbaHR0cDovL3d3dy5kaWdpY2VydC5j # b20vQ1BTMIGUBggrBgEFBQcBAQSBhzCBhDAkBggrBgEFBQcwAYYYaHR0cDovL29j # c3AuZGlnaWNlcnQuY29tMFwGCCsGAQUFBzAChlBodHRwOi8vY2FjZXJ0cy5kaWdp # Y2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRDb2RlU2lnbmluZ1JTQTQwOTZTSEEz # ODQyMDIxQ0ExLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQBe # i1jojgcQsTbWf2VsHA+uV7M5TQzxqPMjEOGuYVfMMQ0gmLsdhFMkPsNgoa8Irhi1 # MfHYjcUFpPFNfKqmsRGnd4ZSvjLWbJoh6aysQA/BavnCDaf4+jdZpTKdW1s9B9eP # HW06mvsXyLje88jBKGJGGFbv/vgB/OKSb4t9LgLTDUFNC8aRW7DTxqR07OyMVtSq # g2SnoGAIm8WvzH5+tUgXOOXap3Kd31LGWjwnoANRrCGBwrJPkDUGag27tXRjv9KU # X+3/yevBS6EIIr6fAkWinsH1wzXiZdaOVhclIFrxhwPLdR6IgFT+dm2TCErMLB68 # lZok/8pxQAS0M6vUvbYucCQqS423Ok9720mT2UTJiO6rdSe3glaNuHnELKipQMWS # Dg4yXXAYjYLjRCNEUEQpd1RJSap3xgTFfxtmTDTSAuq6vhSkz7ZRwfloQ4UiPMX/ # 750Kl7S5GM0zRLzZbHUCtTsfzBCiaamJnO/ZnNCYi1GlL9U4kkZxBiIylUOYSJOi # 6JXFPCCj4V8VXOjBPxP/Pl5+EAAW7wuCE3DR1aOIVVsVOyVDYmCWdBz0dMo4BIIL # VQX9R38ttEoqm5LRl7KvtisZMrGvGkn0hzzbN6Ec/3TbgbvIv29QSP0S/kNKqeNy # HSbAF863Yx3+8lccinkQP8dAfbm/laiVOfpQbEOAazGCGeowghnmAgEBMH0waTEL # MAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMUEwPwYDVQQDEzhE # aWdpQ2VydCBUcnVzdGVkIEc0IENvZGUgU2lnbmluZyBSU0E0MDk2IFNIQTM4NCAy # MDIxIENBMQIQCiT9SpiF+/o0KMMjGwksCDANBglghkgBZQMEAgEFAKB8MBAGCisG # AQQBgjcCAQwxAjAAMBkGCSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMBwGCisGAQQB # gjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3DQEJBDEiBCDBn5rgZpzGFBeT # wqnh+giODhTz45fpeKihrPduFOuQ6zANBgkqhkiG9w0BAQEFAASCAYAtNQ0anMAV # sheCXAn7kubQsuQSGiMdoxTwoJi/3C4VrKJjHW2D2mcTceg4s6+S5W11VvE/oRZL # vtm3Gj5OxPn7Y2AQgBxNY9/mLzgW3Fc9WTTXe4Ayez1/mdu38i9v1zMyP4vIC0+A # H3jaqzt68hX7/cnnTDevLlFUkQiCIss5u0jGHVHjqaNjwIVXX0L8LxYVIHJNvz/K # vwymgkcPtECWPl+ppHqAJX48PyjdRvaiWVkETbyQzxvrfwimOiJLU2DVPVPBd76A # O9YzdZz0EdpeMq8PlsNfSNPG1P12mrqs49tyQlaEfr2dsivAZSeF/VNQ/oBirBt/ # CMpwJc1C6cqfWzJyjS8W3fLr2M27qO+ABfaHZHjEnWKNXJEtuz2eEKXoFJ6zkB5E # 2O7+yYjzPtgXZq6mRlWJefO2nd07IvZ1h+OBi7nc1c6dkfUxgoFDn4B3CZhKJJJb # +4iHMd3NnRUL9PkxMF8AxAnu8B85Zhj7K5cVKNXGFIHTRo+H0Cg4+AChghdAMIIX # PAYKKwYBBAGCNwMDATGCFywwghcoBgkqhkiG9w0BBwKgghcZMIIXFQIBAzEPMA0G # CWCGSAFlAwQCAQUAMHgGCyqGSIb3DQEJEAEEoGkEZzBlAgEBBglghkgBhv1sBwEw # MTANBglghkgBZQMEAgEFAAQgnj0OTsDnKDpqNK8RVSEGJrW602NiJp4ME32s7rMr # OlICEQCzh9I3VSQleLukyc6dFX6DGA8yMDIzMDkxNTA5MjUzOFqgghMJMIIGwjCC # BKqgAwIBAgIQBUSv85SdCDmmv9s/X+VhFjANBgkqhkiG9w0BAQsFADBjMQswCQYD # VQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lD # ZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMB4X # DTIzMDcxNDAwMDAwMFoXDTM0MTAxMzIzNTk1OVowSDELMAkGA1UEBhMCVVMxFzAV # BgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSAwHgYDVQQDExdEaWdpQ2VydCBUaW1lc3Rh # bXAgMjAyMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKNTRYcdg45b # rD5UsyPgz5/X5dLnXaEOCdwvSKOXejsqnGfcYhVYwamTEafNqrJq3RApih5iY2nT # WJw1cb86l+uUUI8cIOrHmjsvlmbjaedp/lvD1isgHMGXlLSlUIHyz8sHpjBoyoNC # 2vx/CSSUpIIa2mq62DvKXd4ZGIX7ReoNYWyd/nFexAaaPPDFLnkPG2ZS48jWPl/a # Q9OE9dDH9kgtXkV1lnX+3RChG4PBuOZSlbVH13gpOWvgeFmX40QrStWVzu8IF+qC # ZE3/I+PKhu60pCFkcOvV5aDaY7Mu6QXuqvYk9R28mxyyt1/f8O52fTGZZUdVnUok # L6wrl76f5P17cz4y7lI0+9S769SgLDSb495uZBkHNwGRDxy1Uc2qTGaDiGhiu7xB # G3gZbeTZD+BYQfvYsSzhUa+0rRUGFOpiCBPTaR58ZE2dD9/O0V6MqqtQFcmzyrzX # xDtoRKOlO0L9c33u3Qr/eTQQfqZcClhMAD6FaXXHg2TWdc2PEnZWpST618RrIbro # HzSYLzrqawGw9/sqhux7UjipmAmhcbJsca8+uG+W1eEQE/5hRwqM/vC2x9XH3mwk # 8L9CgsqgcT2ckpMEtGlwJw1Pt7U20clfCKRwo+wK8REuZODLIivK8SgTIUlRfgZm # 0zu++uuRONhRB8qUt+JQofM604qDy0B7AgMBAAGjggGLMIIBhzAOBgNVHQ8BAf8E # BAMCB4AwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAgBgNV # HSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwHwYDVR0jBBgwFoAUuhbZbU2F # L3MpdpovdYxqII+eyG8wHQYDVR0OBBYEFKW27xPn783QZKHVVqllMaPe1eNJMFoG # A1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2Vy # dFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcmwwgZAGCCsG # AQUFBwEBBIGDMIGAMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5j # b20wWAYIKwYBBQUHMAKGTGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdp # Q2VydFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcnQwDQYJ # KoZIhvcNAQELBQADggIBAIEa1t6gqbWYF7xwjU+KPGic2CX/yyzkzepdIpLsjCIC # qbjPgKjZ5+PF7SaCinEvGN1Ott5s1+FgnCvt7T1IjrhrunxdvcJhN2hJd6PrkKoS # 1yeF844ektrCQDifXcigLiV4JZ0qBXqEKZi2V3mP2yZWK7Dzp703DNiYdk9WuVLC # tp04qYHnbUFcjGnRuSvExnvPnPp44pMadqJpddNQ5EQSviANnqlE0PjlSXcIWiHF # tM+YlRpUurm8wWkZus8W8oM3NG6wQSbd3lqXTzON1I13fXVFoaVYJmoDRd7ZULVQ # jK9WvUzF4UbFKNOt50MAcN7MmJ4ZiQPq1JE3701S88lgIcRWR+3aEUuMMsOI5lji # tts++V+wQtaP4xeR0arAVeOGv6wnLEHQmjNKqDbUuXKWfpd5OEhfysLcPTLfddY2 # Z1qJ+Panx+VPNTwAvb6cKmx5AdzaROY63jg7B145WPR8czFVoIARyxQMfq68/qTr # eWWqaNYiyjvrmoI1VygWy2nyMpqy0tg6uLFGhmu6F/3Ed2wVbK6rr3M66ElGt9V/ # zLY4wNjsHPW2obhDLN9OTH0eaHDAdwrUAuBcYLso/zjlUlrWrBciI0707NMX+1Br # /wd3H3GXREHJuEbTbDJ8WC9nR2XlG3O2mflrLAZG70Ee8PBf4NvZrZCARK+AEEGK # MIIGrjCCBJagAwIBAgIQBzY3tyRUfNhHrP0oZipeWzANBgkqhkiG9w0BAQsFADBi # MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 # d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg # RzQwHhcNMjIwMzIzMDAwMDAwWhcNMzcwMzIyMjM1OTU5WjBjMQswCQYDVQQGEwJV # UzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRy # dXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMIICIjANBgkq # hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxoY1BkmzwT1ySVFVxyUDxPKRN6mXUaHW # 0oPRnkyibaCwzIP5WvYRoUQVQl+kiPNo+n3znIkLf50fng8zH1ATCyZzlm34V6gC # ff1DtITaEfFzsbPuK4CEiiIY3+vaPcQXf6sZKz5C3GeO6lE98NZW1OcoLevTsbV1 # 5x8GZY2UKdPZ7Gnf2ZCHRgB720RBidx8ald68Dd5n12sy+iEZLRS8nZH92GDGd1f # tFQLIWhuNyG7QKxfst5Kfc71ORJn7w6lY2zkpsUdzTYNXNXmG6jBZHRAp8ByxbpO # H7G1WE15/tePc5OsLDnipUjW8LAxE6lXKZYnLvWHpo9OdhVVJnCYJn+gGkcgQ+ND # Y4B7dW4nJZCYOjgRs/b2nuY7W+yB3iIU2YIqx5K/oN7jPqJz+ucfWmyU8lKVEStY # dEAoq3NDzt9KoRxrOMUp88qqlnNCaJ+2RrOdOqPVA+C/8KI8ykLcGEh/FDTP0kyr # 75s9/g64ZCr6dSgkQe1CvwWcZklSUPRR8zZJTYsg0ixXNXkrqPNFYLwjjVj33GHe # k/45wPmyMKVM1+mYSlg+0wOI/rOP015LdhJRk8mMDDtbiiKowSYI+RQQEgN9XyO7 # ZONj4KbhPvbCdLI/Hgl27KtdRnXiYKNYCQEoAA6EVO7O6V3IXjASvUaetdN2udIO # a5kM0jO0zbECAwEAAaOCAV0wggFZMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0O # BBYEFLoW2W1NhS9zKXaaL3WMaiCPnshvMB8GA1UdIwQYMBaAFOzX44LScV1kTN8u # Zz/nupiuHA9PMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDCDB3 # BggrBgEFBQcBAQRrMGkwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0 # LmNvbTBBBggrBgEFBQcwAoY1aHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0Rp # Z2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcnQwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDov # L2NybDMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0VHJ1c3RlZFJvb3RHNC5jcmwwIAYD # VR0gBBkwFzAIBgZngQwBBAIwCwYJYIZIAYb9bAcBMA0GCSqGSIb3DQEBCwUAA4IC # AQB9WY7Ak7ZvmKlEIgF+ZtbYIULhsBguEE0TzzBTzr8Y+8dQXeJLKftwig2qKWn8 # acHPHQfpPmDI2AvlXFvXbYf6hCAlNDFnzbYSlm/EUExiHQwIgqgWvalWzxVzjQEi # Jc6VaT9Hd/tydBTX/6tPiix6q4XNQ1/tYLaqT5Fmniye4Iqs5f2MvGQmh2ySvZ18 # 0HAKfO+ovHVPulr3qRCyXen/KFSJ8NWKcXZl2szwcqMj+sAngkSumScbqyQeJsG3 # 3irr9p6xeZmBo1aGqwpFyd/EjaDnmPv7pp1yr8THwcFqcdnGE4AJxLafzYeHJLtP # o0m5d2aR8XKc6UsCUqc3fpNTrDsdCEkPlM05et3/JWOZJyw9P2un8WbDQc1PtkCb # ISFA0LcTJM3cHXg65J6t5TRxktcma+Q4c6umAU+9Pzt4rUyt+8SVe+0KXzM5h0F4 # ejjpnOHdI/0dKNPH+ejxmF/7K9h+8kaddSweJywm228Vex4Ziza4k9Tm8heZWcpw # 8De/mADfIBZPJ/tgZxahZrrdVcA6KYawmKAr7ZVBtzrVFZgxtGIJDwq9gdkT/r+k # 0fNX2bwE+oLeMt8EifAAzV3C+dAjfwAL5HYCJtnwZXZCpimHCUcr5n8apIUP/JiW # 9lVUKx+A+sDyDivl1vupL0QVSucTDh3bNzgaoSv27dZ8/DCCBY0wggR1oAMCAQIC # EA6bGI750C3n79tQ4ghAGFowDQYJKoZIhvcNAQEMBQAwZTELMAkGA1UEBhMCVVMx # FTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNv # bTEkMCIGA1UEAxMbRGlnaUNlcnQgQXNzdXJlZCBJRCBSb290IENBMB4XDTIyMDgw # MTAwMDAwMFoXDTMxMTEwOTIzNTk1OVowYjELMAkGA1UEBhMCVVMxFTATBgNVBAoT # DERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8GA1UE # AxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0MIICIjANBgkqhkiG9w0BAQEFAAOC # Ag8AMIICCgKCAgEAv+aQc2jeu+RdSjwwIjBpM+zCpyUuySE98orYWcLhKac9WKt2 # ms2uexuEDcQwH/MbpDgW61bGl20dq7J58soR0uRf1gU8Ug9SH8aeFaV+vp+pVxZZ # VXKvaJNwwrK6dZlqczKU0RBEEC7fgvMHhOZ0O21x4i0MG+4g1ckgHWMpLc7sXk7I # k/ghYZs06wXGXuxbGrzryc/NrDRAX7F6Zu53yEioZldXn1RYjgwrt0+nMNlW7sp7 # XeOtyU9e5TXnMcvak17cjo+A2raRmECQecN4x7axxLVqGDgDEI3Y1DekLgV9iPWC # PhCRcKtVgkEy19sEcypukQF8IUzUvK4bA3VdeGbZOjFEmjNAvwjXWkmkwuapoGfd # pCe8oU85tRFYF/ckXEaPZPfBaYh2mHY9WV1CdoeJl2l6SPDgohIbZpp0yt5LHucO # Y67m1O+SkjqePdwA5EUlibaaRBkrfsCUtNJhbesz2cXfSwQAzH0clcOP9yGyshG3 # u3/y1YxwLEFgqrFjGESVGnZifvaAsPvoZKYz0YkH4b235kOkGLimdwHhD5QMIR2y # VCkliWzlDlJRR3S+Jqy2QXXeeqxfjT/JvNNBERJb5RBQ6zHFynIWIgnffEx1P2Ps # IV/EIFFrb7GrhotPwtZFX50g/KEexcCPorF+CiaZ9eRpL5gdLfXZqbId5RsCAwEA # AaOCATowggE2MA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFOzX44LScV1kTN8u # Zz/nupiuHA9PMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgPMA4GA1Ud # DwEB/wQEAwIBhjB5BggrBgEFBQcBAQRtMGswJAYIKwYBBQUHMAGGGGh0dHA6Ly9v # Y3NwLmRpZ2ljZXJ0LmNvbTBDBggrBgEFBQcwAoY3aHR0cDovL2NhY2VydHMuZGln # aWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNydDBFBgNVHR8EPjA8 # MDqgOKA2hjRodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVk # SURSb290Q0EuY3JsMBEGA1UdIAQKMAgwBgYEVR0gADANBgkqhkiG9w0BAQwFAAOC # AQEAcKC/Q1xV5zhfoKN0Gz22Ftf3v1cHvZqsoYcs7IVeqRq7IviHGmlUIu2kiHdt # vRoU9BNKei8ttzjv9P+Aufih9/Jy3iS8UgPITtAq3votVs/59PesMHqai7Je1M/R # Q0SbQyHrlnKhSLSZy51PpwYDE3cnRNTnf+hZqPC/Lwum6fI0POz3A8eHqNJMQBk1 # RmppVLC4oVaO7KTVPeix3P0c2PR3WlxUjG/voVA9/HYJaISfb8rbII01YBwCA8sg # sKxYoA5AY8WYIsGyWfVVa88nq2x2zm8jLfR+cWojayL/ErhULSd+2DrZ8LaHlv1b # 0VysGMNNn3O3AamfV6peKOK5lDGCA3YwggNyAgEBMHcwYzELMAkGA1UEBhMCVVMx # FzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBUcnVz # dGVkIEc0IFJTQTQwOTYgU0hBMjU2IFRpbWVTdGFtcGluZyBDQQIQBUSv85SdCDmm # v9s/X+VhFjANBglghkgBZQMEAgEFAKCB0TAaBgkqhkiG9w0BCQMxDQYLKoZIhvcN # AQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTIzMDkxNTA5MjUzOFowKwYLKoZIhvcNAQkQ # AgwxHDAaMBgwFgQUZvArMsLCyQ+CXc6qisnGTxmcz0AwLwYJKoZIhvcNAQkEMSIE # IH8SGCZZthi9rJwNC+XzbWB7OGrgUvsz6Rgo4lpTz8BKMDcGCyqGSIb3DQEJEAIv # MSgwJjAkMCIEINL25G3tdCLM0dRAV2hBNm+CitpVmq4zFq9NGprUDHgoMA0GCSqG # SIb3DQEBAQUABIICAIM4zUErrPkCaz9xL/54SauRR6PDF38byeJeAv1Ca2YYSdeQ # gqe4HafPgfQAjU1WDb34EQmr66Gv4wYHit9fNio6TDFv/FWreTH3L+wysP9P0zHB # r0mxn1leCcuMdg6iJnppI1Gzr+YymJB2MWeT+ksqSN94BI1w8h/oKo5EjiSA0z4d # 89P8+DPn09TVFL6JnUoErZeMz4wlJrTuzveRKr/r90rcDqzBcW4RrhMQiw2NlWbJ # MZjEYsdsKqXHXlpALbpghHwqOk/pVteGMieP1/UtZnO4UpQZcqyF/z0+lWGWh/34 # NRoU0+7QNWHnivi0OeCUyAkNBaatDLDjif1uFRsvz5VbyioYRi7V5xVbM1Md7E19 # ZJLrIFpbg/lTe4zFSK7l+/VIWBehc4/1WxgPLrArmL6Yyv+XEuRPrWr14FFyoa9V # RZvncXTmve4YzlCVhYj3cryA3oSi01pJHBciKgVdc/TsL3Nk5aniHtCEhLWAwzmd # Wrm0/oCsK5Ea9Hyq9/p7J1qYjqhN+Hp/P28i+z0xcYMWamleaPUn75F3dNJiUYRB # ZPsGqBOA33bIzkiIUDAMvnxLG/DvEOKQ68WX5ESGbpao1sXfDIsyxmb/ooObkapk # eGbgy4kpAwfq4Uq88Uv0+jK/TFiuGyLsCLQKFFgu02+Fpst6CcB8oK/AXeGc # SIG # End signature block |