PSWSMan.psm1
|
# Copyright: (c) 2023, Jordan Borean (@jborean93) <jborean93@gmail.com> # MIT License (see LICENSE or https://opensource.org/licenses/MIT) using namespace System.IO using namespace System.Management.Automation using namespace System.Reflection # Resolve the cmdlet through $ExecutionContext to ensure we don't load a # shadowed version of Import-Module. $importModule = $ExecutionContext.InvokeCommand.GetCommand( 'Microsoft.PowerShell.Core\Import-Module', [CommandTypes]::Cmdlet) $moduleName = [Path]::GetFileNameWithoutExtension($PSCommandPath) $loaderName = "$moduleName.Loader.LoadContext" $loaderPath = [Path]::Combine($PSScriptRoot, 'bin', 'net8.0', "$moduleName.Loader.dll") $isReload = $true $loaderType = $loaderName -as [type] if (-not $loaderType) { $isReload = $false $null = [Assembly]::LoadFrom($loaderPath) $loaderType = $loaderName -as [type] } elseif ($loaderType.Assembly.Location -ne $loaderPath) { # Assemblies cannot be unloaded so once a version of this module is loaded # in the process it is the only one that can be used. $msg = "Cannot import $moduleName from '$PSScriptRoot' as a different copy is already loaded in this process " + "from '$($loaderType.Assembly.Location)'. Start a new PowerShell process to use this copy." $err = [ErrorRecord]::new( [InvalidOperationException]::new($msg), 'ModuleAlreadyLoadedFromDifferentPath', [ErrorCategory]::ResourceExists, $PSScriptRoot) throw $err } $mainModule = $loaderType::Initialize($moduleName) $innerMod = & $importModule -Assembly $mainModule -PassThru:$isReload if ($innerMod) { # Bug in pwsh, Import-Module in an assembly will pick up a cached instance # and not call the same path to set the nested module's cmdlets to the # current module scope. # https://github.com/PowerShell/PowerShell/issues/20710 $addExportedCmdlet = [PSModuleInfo].GetMethod( 'AddExportedCmdlet', [BindingFlags]'Instance, NonPublic') $addExportedAlias = [PSModuleInfo].GetMethod( 'AddExportedAlias', [BindingFlags]'Instance, NonPublic') foreach ($cmd in $innerMod.ExportedCmdlets.Values) { $addExportedCmdlet.Invoke($ExecutionContext.SessionState.Module, @(, $cmd)) } foreach ($alias in $innerMod.ExportedAliases.Values) { $addExportedAlias.Invoke($ExecutionContext.SessionState.Module, @(, $alias)) } } # SIG # Begin signature block # MIIw1QYJKoZIhvcNAQcCoIIwxjCCMMICAQMxDTALBglghkgBZQMEAgEwewYKKwYB # BAGCNwIBBKBtBGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDgSdIBMq2K1tNW # YtSkuMrvKxLfs6Fnc53XiOFe3Z2knqCCFXUwggajMIIEi6ADAgECAhMzAAg8VVxG # uEudtugLAAAACDxVMA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD # VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ # RCBWZXJpZmllZCBDUyBBT0MgQ0EgMDMwHhcNMjYxMDExMDI1OTE0WhcNMjYxMDE0 # MDI1OTE0WjBlMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8G # A1UEBxMIQnJpc2JhbmUxFjAUBgNVBAoTDUpvcmRhbiBCb3JlYW4xFjAUBgNVBAMT # DUpvcmRhbiBCb3JlYW4wggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCz # j6D9JelNpZx3HuHWQ/AKVYmH28YoVFbzybLggGplq+MeW9q4F6mFMrEXOGNy08Zy # 1lr3Dm3lQmtcsLsBXzOjfdIYVzjO1Lh+6nEt+NXUwBRo7k79rH0pNOkZNZV2Y975 # 5XIV/sPVpRagqIyiXsAw/BlWLVJpA14+jPxaA/aRcyX8mo8O/OVMzqHXdRciW6KT # 9xPBj3XNsOM4yGusSSo26QprbPdodynzCNvz1QCYwSz02DAzZAQl5xy3ZE6vwbGE # crNQybjCcEOi8usLfjq8QWJBbePW+ewNkIsoW/uGjK0n1FNJQ4SrKQAyeBEFRxJf # PTy82gpyiQHYZEs406AtMkC7LyPVvJy6w8ooIdBhCH2nrvVf4QkJUHNCrlOQFFWj # vBnp7b4JK2t70JYJZOzSQmu6mOYDeZVK6rQO4VgUZb425Lw6Lk6UcFykwRHWFp+a # JX1z1DuPzPJgjJKrhDQ6jU2GYylmTvJ1twL7wyyadbzh+4uNtHK6fbndhb5Z9r0C # AwEAAaOCAdUwggHRMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeAMDwGA1Ud # JQQ1MDMGCisGAQQBgjdhAQAGCCsGAQUFBwMDBhsrBgEEAYI3YcD1uzmDxbqHboKj # 0bsfgZfH91YwHQYDVR0OBBYEFDDCGCHkrcMZwDekebqmfEIeB0WFMB8GA1UdIwQY # MBaAFKRDDH92WqWF5z6NKA8MF6JFaXDGMGcGA1UdHwRgMF4wXKBaoFiGVmh0dHA6 # Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMElEJTIw # VmVyaWZpZWQlMjBDUyUyMEFPQyUyMENBJTIwMDMuY3JsMHQGCCsGAQUFBwEBBGgw # ZjBkBggrBgEFBQcwAoZYaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9j # ZXJ0cy9NaWNyb3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ1MlMjBBT0MlMjBDQSUy # MDAzLmNydDBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMA0G # CSqGSIb3DQEBDAUAA4ICAQBrwhbsQPpN4kK6v9Bp1My4hErkuKaIKZ9r7TmXWxvW # gjMW0bFqgbN3MYh+o5/8QsJKeznas4nQQnL/dsLSKNVqF5i7uG0Wh57FFr5s/+dF # a9Otu0X2fEDTWna1U0oMm9ZuaXjD681/d75uVnWogiOlUUUtoymuXV4pR6t/m7kK # Nwd5L+NIdrEWJnRXen5jegMEAYC/5PhmuQGN1LKTR0TSU/9wtCJvw92D4X150bU+ # qzBhonW4+bTnA1OGMavfvGbkdnkLSrDm/+Gmgzdpn3R3cnX5YgkarFREXX1DVIio # 42ABX3YwPuzGEXeBfsODI+JQnybRC5zn+qthTWJFfrjd35KEcN796871YihwYE+8 # eg3906yVbIOexZ1+FSRK+EsgRBGfFur+7H8as97i/wFXoUQgiI0/FH0BMAIo4tHU # +Kn6DGIGeqh7ggk7/Wm8yqlFoU/qSA4llMR8QaGuB0pz+tdro74e/8RHUGJZanCl # TWK+P4Q+7NywPIINa661oKQ5WJV/8c1E/CYsLeUOgYU0fSRu0fCUbC0S/xBhT+gy # 8tQTC7VtFvtJz+xHMlMiSrBMmvzEDqq0XgZF91YpySWPHn7CgO1lTRYQedMPibqR # AlOLCf0RBWbS5TQhjqhzrYghMVHdy5GjDRyCl9JC+g7qC0hm++3E02z/nShi653u # NDCCBygwggUQoAMCAQICEzMAAAAYDeuRVamKAJgAAAAAABgwDQYJKoZIhvcNAQEM # BQAwYzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv # bjE0MDIGA1UEAxMrTWljcm9zb2Z0IElEIFZlcmlmaWVkIENvZGUgU2lnbmluZyBQ # Q0EgMjAyMTAeFw0yNjAzMjYxODExMzJaFw0zMTAzMjYxODExMzJaMFoxCzAJBgNV # BAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMT # Ik1pY3Jvc29mdCBJRCBWZXJpZmllZCBDUyBBT0MgQ0EgMDMwggIiMA0GCSqGSIb3 # DQEBAQUAA4ICDwAwggIKAoICAQDIgNpgNFaiif2VWeWP5I6PnFXxJ/lB37fJR55G # CvR7GLZBMkBijbiKVwgpBI3xM5nf484znH/qncJ+OCq6y3jgnQW+R8Zd7U+7Ljlr # mcskalzSQ0ghMxEpnBW8/HHs2V8ZJzQk6HP+SDsbvsL7LdlH/eO2l4mknhDBwr0Z # /Q966TvEth5b8kCxj1vqiV4YNthLGRqZR9u2fK/yBMWu83p6O4uo2Edg++gEew5I # L7vnnnKFqmSh/R9vPJy3WF1YcZewAUx8sXZNUnx3ZhVg59l2LpitPiwzE6FMqIsq # aEvVe3MzuFd2a/uWDZH6VbDyUiRK78mIg1DQYA9zDEyyBFcNI+nxVSzglvL6u7PR # uNqgcV3sf6ELxw89ysQM/Z4R1hRFWXRpyOWKKAKtfBHTk0UnNiPcxmLMMYs8jeUj # OidfVPjTIry/UVwnwxdlkK85cZfBEMYZ/DBNOwdomP459Y1n8izKkbhsa+p4lw+c # QVxATBFx9ggR79HhryT7HDmpPLvkJvBZ4wW4CW32UT2SMyDe28nIOU3m+hfHlVeK # cLBQcym5VoRDjIcCVI7uqgGW2PNME0cfei8zCwCy6HCsssJWFS7eg/YbFhnATJcy # WfMrkNuAbMfMN8Npg8crS6jVVowyD0GG5zdgi+uQVcSK/638mA1xEYK3pnIoQgO0 # 9uuDBwIDAQABo4IB3DCCAdgwDgYDVR0PAQH/BAQDAgGGMBAGCSsGAQQBgjcVAQQD # AgEAMB0GA1UdDgQWBBSkQwx/dlqlhec+jSgPDBeiRWlwxjBUBgNVHSAETTBLMEkG # BFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br # aW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA # QwBBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0jBBgwFoAU2UEpsA8PY2zvadf1 # zSmepEhqMOYwcAYDVR0fBGkwZzBloGOgYYZfaHR0cDovL3d3dy5taWNyb3NvZnQu # Y29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUyMENvZGUl # MjBTaWduaW5nJTIwUENBJTIwMjAyMS5jcmwwfQYIKwYBBQUHAQEEcTBvMG0GCCsG # AQUFBzAChmFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01p # Y3Jvc29mdCUyMElEJTIwVmVyaWZpZWQlMjBDb2RlJTIwU2lnbmluZyUyMFBDQSUy # MDIwMjEuY3J0MA0GCSqGSIb3DQEBDAUAA4ICAQBxxyBW+X6mhdRiSwD9PMMWcGUA # nx5/QUwnNvZdFGEX+4DRDIr9WCh4C87wHtw+lg1D3uzK10DstPX0LFLBFAC3vWMY # X4ImXwoLhoR0xlN8mUdorJ3bgnpCJWuI1531Z1rCwPuUrSkBxfOIGDk3p2ECb3Ho # /xHi5PRSR/OUrWuQHwXiaXMTuXu3IRLezwVkZpFmNwYRD57R9Nx2F/yM7tzOY0Hh # 0hGCaYEK38/6FrS0SXadXWyDUCfn5XOGACRjUCnHx+JQUG0f4SHD+iblpAI0gl+Z # HnVmdXXxHTZeTa0CYCIhFxKP2922s0g6zLmeiV13LWUmtt/UF7TrWXpMi2/0UNni # aDoH7rnPGRV5xVX8uXy4sZii4aswzqPM7Y7+mzcranqZ8EjZk5gjLhQ3A2sZaprl # Ou8CaRmyfcIiVH7zVfgAvm81MWXFziAf7my7QOvnyEFPGddq8MSfPtfRyw/Uq3uH # 6KpoaJNIfPYH6fceZSi53Rat1A9grExq3ROjhhSpTcchuBItAMNVPxoKNbUm+iR/ # X3XkL+9WQginjyHe+hXLclY8vAGXFD1p40PqMIpAYsmEJBFKW9df4//1N5oQDr/F # Y9IBJl/oSS979i5rtT7NZz9KvYraCPRBGs0QCy+sWvgQa0coM70QJVLeVwmSxUO/ # 0od0w9Qry7bSLrxGoDCCB54wggWGoAMCAQICEzMAAAAHh6M0o3uljhwAAAAAAAcw # DQYJKoZIhvcNAQEMBQAwdzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29m # dCBDb3Jwb3JhdGlvbjFIMEYGA1UEAxM/TWljcm9zb2Z0IElkZW50aXR5IFZlcmlm # aWNhdGlvbiBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDIwMB4XDTIxMDQw # MTIwMDUyMFoXDTM2MDQwMTIwMTUyMFowYzELMAkGA1UEBhMCVVMxHjAcBgNVBAoT # FU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE0MDIGA1UEAxMrTWljcm9zb2Z0IElEIFZl # cmlmaWVkIENvZGUgU2lnbmluZyBQQ0EgMjAyMTCCAiIwDQYJKoZIhvcNAQEBBQAD # ggIPADCCAgoCggIBALLwwK8ZiCji3VR6TElsaQhVCbRS/3pK+MHrJSj3Zxd3KU3r # lfL3qrZilYKJNqztA9OQacr1AwoNcHbKBLbsQAhBnIB34zxf52bDpIO3NJlfIaTE # /xrweLoQ71lzCHkD7A4As1Bs076Iu+mA6cQzsYYH/Cbl1icwQ6C65rU4V9NQhNUw # grx9rGQ//h890Q8JdjLLw0nV+ayQ2Fbkd242o9kH82RZsH3HEyqjAB5a8+Ae2nPI # Pc8sZU6ZE7iRrRZywRmrKDp5+TcmJX9MRff241UaOBs4NmHOyke8oU1TYrkxh+Ye # HgfWo5tTgkoSMoayqoDpHOLJs+qG8Tvh8SnifW2Jj3+ii11TS8/FGngEaNAWrbyf # NrC69oKpRQXY9bGH6jn9NEJv9weFxhTwyvx9OJLXmRGbAUXN1U9nf4lXezky6Uh/ # cgjkVd6CGUAf0K+Jw+GE/5VpIVbcNr9rNE50Sbmy/4RTCEGvOq3GhjITbCa4crCz # TTHgYYjHs1NbOc6brH+eKpWLtr+bGecy9CrwQyx7S/BfYJ+ozst7+yZtG2wR461u # ckFu0t+gCwLdN0A6cFtSRtR8bvxVFyWwTtgMMFRuBa3vmUOTnfKLsLefRaQcVTgR # nzeLzdpt32cdYKp+dhr2ogc+qM6K4CBI5/j4VFyC4QFeUP2YAidLtvpXRRo3AgMB # AAGjggI1MIICMTAOBgNVHQ8BAf8EBAMCAYYwEAYJKwYBBAGCNxUBBAMCAQAwHQYD # VR0OBBYEFNlBKbAPD2Ns72nX9c0pnqRIajDmMFQGA1UdIARNMEswSQYEVR0gADBB # MD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0Rv # Y3MvUmVwb3NpdG9yeS5odG0wGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwDwYD # VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTIftJqhSobyhmYBAcnz1AQT2ioojCB # hAYDVR0fBH0wezB5oHegdYZzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9w # cy9jcmwvTWljcm9zb2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290 # JTIwQ2VydGlmaWNhdGUlMjBBdXRob3JpdHklMjAyMDIwLmNybDCBwwYIKwYBBQUH # AQEEgbYwgbMwgYEGCCsGAQUFBzAChnVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20v # cGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMElkZW50aXR5JTIwVmVyaWZpY2F0aW9u # JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAyMC5jcnQwLQYI # KwYBBQUHMAGGIWh0dHA6Ly9vbmVvY3NwLm1pY3Jvc29mdC5jb20vb2NzcDANBgkq # hkiG9w0BAQwFAAOCAgEAfyUqnv7Uq+rdZgrbVyNMul5skONbhls5fccPlmIbzi+O # wVdPQ4H55v7VOInnmezQEeW4LqK0wja+fBznANbXLB0KrdMCbHQpbLvG6UA/Xv2p # fpVIE1CRFfNF4XKO8XYEa3oW8oVH+KZHgIQRIwAbyFKQ9iyj4aOWeAzwk+f9E5St # Np5T8FG7/VEURIVWArbAzPt9ThVN3w1fAZkF7+YU9kbq1bCR2YD+MtunSQ1Rft6X # G7b4e0ejRA7mB2IoX5hNh3UEauY0byxNRG+fT2MCEhQl9g2i2fs6VOG19CNep7Sq # uKaBjhWmirYyANb0RJSLWjinMLXNOAga10n8i9jqeprzSMU5ODmrMCJE12xS/NWS # hg/tuLjAsKP6SzYZ+1Ry358ZTFcx0FS/mx2vSoU8s8HRvy+rnXqyUJ9HBqS0DErV # LjQwK8VtsBdekBmdTbQVoCgPCqr+PDPB3xajYnzevs7eidBsM71PINK2BoE2UfMw # xCCX3mccFgx6UsQeRSdVVVNSyALQe6PT12418xon2iDGE81OGCreLzDcMAZnrUAx # 4XQLUz6ZTl65yPUiOh3k7Yww94lDf+8oG2oZmDh5O1Qe38E+M3vhKwmzIeoB1dVL # lz4i3IpaDcR+iuGjH2TdaC1ZOmBXiCRKJLj4DT2uhJ04ji+tHD6n58vhavFIrmcx # ghq2MIIasgIBATBxMFoxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNyb3NvZnQg # Q29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJRCBWZXJpZmllZCBDUyBB # T0MgQ0EgMDMCEzMACDxVXEa4S5226AsAAAAIPFUwCwYJYIZIAWUDBAIBoHwwEAYK # KwYBBAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYB # BAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIDccxCHTCudo # F0IK0iE9pjBKSUkskcl5HzKYH/KEP+v7MAsGCSqGSIb3DQEBAQSCAYBNpkO4eLUa # SNzvXDqSb7Sp70jD+ntizGOGIVQYIy8SbDRVmOmn84nYU7FrqsbYYohnqnMCPBlb # W2rydy0OxKXatQ4i4T4ORI0hBRoDTyFvDvNKZhJjJHrXIsHz+UmFqBvhit2PJpvD # ZPQ+A4OEcRERxdDnONyLi2zCoyNQRB43OZ1Ee+rRhBHf2DSxnMPq42qNWJQMNOP5 # H7K4jxFfVES6QdGv4J4aBPnIx7YVlpEXXQQMk5mPCHaV0QA/qE/YqqY5iHXmtKM3 # BVmamndma81dTJlRdhS22ekFvtA5Cr+u+KO0AXnlIVhVzXK1cRk25UXeQ6ElaVu5 # 0jv8+eCo3XdttpMiyUGsK5b3w/VXqgqe3o4tCLLXcCzDViau3sP7CEM+lgZ31qH7 # uksFGmxDjOmEyAt1Ltp9KyeKYLXN8eQ8dDwvzoCBSbGhxrUblWjzSTEQSxQPtvVw # sJWGek59ohqjfh4ZU1TwA2DcO3pwWAEUFyZ5LCq5fyQPuziyPBKFYAOhghgcMIIY # GAYKKwYBBAGCNwMDATGCGAgwghgEBgkqhkiG9w0BBwKgghf1MIIX8QIBAzEPMA0G # CWCGSAFlAwQCAQUAMIIBbQYLKoZIhvcNAQkQAQSgggFcBIIBWDCCAVQCAQEGCisG # AQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQgW+xgr3uzqZnMFaMbvqMwBtnC3lTe # tiO0Qa7QgVY8QwECBmrI5fRe9hgTMjAyNjEwMTMwMDIwNDMuNzE0WjAEgAIB9AIJ # ANLsJPZGQXGkoIHhpIHeMIHbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu # Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv # cmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMScw # JQYDVQQLEx5uU2hpZWxkIFRTUyBFU046QTUwMC0wNUUwLUQ5NDcxNTAzBgNVBAMT # LE1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWUgU3RhbXBpbmcgQXV0aG9yaXR5oIIP # ITCCB4IwggVqoAMCAQICEzMAAAAF5c8P/2YuyYcAAAAAAAUwDQYJKoZIhvcNAQEM # BQAwdzELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv # bjFIMEYGA1UEAxM/TWljcm9zb2Z0IElkZW50aXR5IFZlcmlmaWNhdGlvbiBSb290 # IENlcnRpZmljYXRlIEF1dGhvcml0eSAyMDIwMB4XDTIwMTExOTIwMzIzMVoXDTM1 # MTExOTIwNDIzMVowYTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBD # b3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0 # YW1waW5nIENBIDIwMjAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCe # fOdSY/3gxZ8FfWO1BiKjHB7X55cz0RMFvWVGR3eRwV1wb3+yq0OXDEqhUhxqoNv6 # iYWKjkMcLhEFxvJAeNcLAyT+XdM5i2CgGPGcb95WJLiw7HzLiBKrxmDj1EQB/mG5 # eEiRBEp7dDGzxKCnTYocDOcRr9KxqHydajmEkzXHOeRGwU+7qt8Md5l4bVZrXAhK # +WSk5CihNQsWbzT1nRliVDwunuLkX1hyIWXIArCfrKM3+RHh+Sq5RZ8aYyik2r8H # xT+l2hmRllBvE2Wok6IEaAJanHr24qoqFM9WLeBUSudz+qL51HwDYyIDPSQ3SeHt # Kog0ZubDk4hELQSxnfVYXdTGncaBnB60QrEuazvcob9n4yR65pUNBCF5qeA4QwYn # ilBkfnmeAjRN3LVuLr0g0FXkqfYdUmj1fFFhH8k8YBozrEaXnsSL3kdTD01X+4Lf # IWOuFzTzuoslBrBILfHNj8RfOxPgjuwNvE6YzauXi4orp4Sm6tF245DaFOSYbWFK # 5ZgG6cUY2/bUq3g3bQAqZt65KcaewEJ3ZyNEobv35Nf6xN6FrA6jF9447+NHvCje # WLCQZ3M8lgeCcnnhTFtyQX3XgCoc6IRXvFOcPVrr3D9RPHCMS6Ckg8wggTrtIVnY # 8yjbvGOUsAdZbeXUIQAWMs0d3cRDv09SvwVRd61evQIDAQABo4ICGzCCAhcwDgYD # VR0PAQH/BAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRraSg6NS9I # Y0DPe9ivSek+2T3bITBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYz # aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku # aHRtMBMGA1UdJQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIA # QwBBMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUyH7SaoUqG8oZmAQHJ89Q # EE9oqKIwgYQGA1UdHwR9MHsweaB3oHWGc2h0dHA6Ly93d3cubWljcm9zb2Z0LmNv # bS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMElkZW50aXR5JTIwVmVyaWZpY2F0aW9u # JTIwUm9vdCUyMENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAyMC5jcmwwgZQG # CCsGAQUFBwEBBIGHMIGEMIGBBggrBgEFBQcwAoZ1aHR0cDovL3d3dy5taWNyb3Nv # ZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlm # aWNhdGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAu # Y3J0MA0GCSqGSIb3DQEBDAUAA4ICAQBfiHbHfm21WhV150x4aPpO4dhEmSUVpbix # NDmv6TvuIHv1xIs174bNGO/ilWMm+Jx5boAXrJxagRhHQtiFprSjMktTliL4sKZy # t2i+SXncM23gRezzsoOiBhv14YSd1Klnlkzvgs29XNjT+c8hIfPRe9rvVCMPiH7z # PZcw5nNjthDQ+zD563I1nUJ6y59TbXWsuyUsqw7wXZoGzZwijWT5oc6GvD3HDokJ # Y401uhnj3ubBhbkR83RbfMvmzdp3he2bvIUztSOuFzRqrLfEvsPkVHYnvH1wtYyr # t5vShiKheGpXa2AWpsod4OJyT4/y0dggWi8g/tgbhmQlZqDUf3UqUQsZaLdIu/XS # jgoZqDjamzCPJtOLi2hBwL+KsCh0Nbwc21f5xvPSwym0Ukr4o5sCcMUcSy6TEP7u # MV8RX0eH/4JLEpGyae6Ki8JYg5v4fsNGif1OXHJ2IWG+7zyjTDfkmQ1snFOTgyEX # 8qBpefQbF0fx6URrYiarjmBprwP6ZObwtZXJ23jK3Fg/9uqM3j0P01nzVygTppBa # bzxPAh/hHhhls6kwo3QLJ6No803jUsZcd4JQxiYHHc+Q/wAMcPUnYKv/q2O444LO # 1+n6j01z5mggCSlRwD9faBIySAcA9S8h22hIAcRQqIGEjolCK9F6nK9ZyX4lhths # GHumaABdWzCCB5cwggV/oAMCAQICEzMAAABgcgYkikoFuNkAAAAAAGAwDQYJKoZI # hvcNAQEMBQAwYTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw # b3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1w # aW5nIENBIDIwMjAwHhcNMjYwOTE3MTg1NzI3WhcNMjcwOTE0MTg1NzI3WjCB2zEL # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWlj # cm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1Mg # RVNOOkE1MDAtMDVFMC1EOTQ3MTUwMwYDVQQDEyxNaWNyb3NvZnQgUHVibGljIFJT # QSBUaW1lIFN0YW1waW5nIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIP # ADCCAgoCggIBAJoTY0vAU8eK+kN8x4BKnIlH9iQTFcIiEQlfNr5cc5jWEaQDpqjZ # p3vU/BSRYGenvTs+oHs4UQfhfBePUoupwfvrE/rknRbMV05RfK585gQXn4v2eKIW # StrcQldJzXDMO4SAk7xBKjYCuGZaXIV1a/HIWPsVCyskVGqzVxiO8mm4L4j1qZmA # flvxqB5Z31ei3eWp2Dch+FEjk0lVUAP9SKV/vRuDu9LnZr3tJzV0zB2marXLbk+/ # oi2paegA9lFpINFP6M7y9WVTxmN1yKqaD+ESDlNkifkPb/CAN3mXiDbQCJwSvPAv # uwBb38naq7uj74DsmcJu+/CQJq3wQgPhYzmOH8n2ooNZSXNdf/bEfi+uwWy1648Z # m5ujDYMYyfei/S48lVSkVuOTGxMKFn2KcZEmezeVc/dPP2uLaIMl2KoaY3Js1HcG # EH17ykl2TBBecVBinn834VnHzjkRG+p31CjE1zSCChED1Fa0qdOMCn/akDtbJOir # aBD9eGRNYSNgfJCwKaRv/wlig8yjFAk1Dcs/ExnkvzMGfLE+WreJ/BmE499S072u # PWDU4oSQCwUmYnMkZ+4vBNzUBuS4ZVOkU5yjRglZzHSCv1BV8U5VmEEBd7Ddxc0a # Ul5uZNQz2o4jkKivfxgxBRZzgqKO6JCwoap+lR6S5LiLUEDwbj2xyOLfAgMBAAGj # ggHLMIIBxzAdBgNVHQ4EFgQUiFQodGFQBDsTCbiC3pKjt17aamIwHwYDVR0jBBgw # FoAUa2koOjUvSGNAz3vYr0npPtk92yEwbAYDVR0fBGUwYzBhoF+gXYZbaHR0cDov # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwUHVibGlj # JTIwUlNBJTIwVGltZXN0YW1waW5nJTIwQ0ElMjAyMDIwLmNybDB5BggrBgEFBQcB # AQRtMGswaQYIKwYBBQUHMAKGXWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lv # cHMvY2VydHMvTWljcm9zb2Z0JTIwUHVibGljJTIwUlNBJTIwVGltZXN0YW1waW5n # JTIwQ0ElMjAyMDIwLmNydDAMBgNVHRMBAf8EAjAAMBYGA1UdJQEB/wQMMAoGCCsG # AQUFBwMIMA4GA1UdDwEB/wQEAwIHgDBmBgNVHSAEXzBdMFEGDCsGAQQBgjdMg30B # ATBBMD8GCCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3Bz # L0RvY3MvUmVwb3NpdG9yeS5odG0wCAYGZ4EMAQQCMA0GCSqGSIb3DQEBDAUAA4IC # AQBXi+Z/KQU0lz0ZtOXYnG5vgrmi6XADP5Aoe8sSm6Oy2NcWIcOciGv3pTli46YV # VrnxoJ5xFwaquNrhgzzgMxURR7gZcPIduwsZbqLEzHMbPBK7Pa4EG+zYJxxzbn3M # 5q+5c5+3ZCE5y8GKOJddsW5JI9lcAtS9HmLW4SRI7Km4F52jh9QKzj2/68al7Z2q # xLg72YgTMGzZey5EF5U5g0o4fAJxeVfDgprwHks+wzBt8w7cZhW381dAbHiVk89W # Yic017zglRodLAgtJvsVQcaZ/nxPJLLZCiFTvA+DGawLfa6EBWB/wCqN3Z0466vP # FLgO+qqUWmYa9Ps39ohdICgBwYBmDzZz2e9yB0ESTEIn0gqvzKFkGt/Dt7H2nA0d # r4Mbw2fo36Oy0BV4PggoB9oc+h2X4Xw/Ep03vZgGB2P0TGh4UffoydKpW7xYx2hA # Rd4rAKlqKbEyVlQzDxMuO4cDiH5AMi/XOP3HCJc0tJxR0SsYTeeDl9Tf2zcGccG0 # hy6F+2PlUnVhH6f8K521KHyOSsoWoHuIGTjGV7d93McVRRga05KqTbsTawGFr/bY # TH3UhELxlXpQIC8nnTI0JFf3vFA/5WuzefHVnc3DZVxW3zUXvxYc7H+Eq1tSJZch # blyNhrGcl2NSh4QpwBpPKeLXeCSLgyFbaukaAV4QJdIAFjGCB0Mwggc/AgEBMHgw # YTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy # MDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIw # MjACEzMAAABgcgYkikoFuNkAAAAAAGAwDQYJYIZIAWUDBAIBBQCgggScMBEGCyqG # SIb3DQEJEAIPMQIFADAaBgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZI # hvcNAQkFMQ8XDTI2MTAxMzAwMjA0M1owLwYJKoZIhvcNAQkEMSIEINyLv9CulDra # rqzHZURzAHU9USTvTOL8+MG48Y9o9+QoMIG5BgsqhkiG9w0BCRACLzGBqTCBpjCB # ozCBoAQgN8uMufC9Lni60qo8rGZxiUfs6udrTFzTX0ylelK2ArMwfDBlpGMwYTEL # MAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAG # A1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIwMjAC # EzMAAABgcgYkikoFuNkAAAAAAGAwggNeBgsqhkiG9w0BCRACEjGCA00wggNJoYID # RTCCA0EwggIpAgEBMIIBCaGB4aSB3jCB2zELMAkGA1UEBhMCVVMxEzARBgNVBAgT # Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m # dCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0 # aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkE1MDAtMDVFMC1EOTQ3MTUw # MwYDVQQDEyxNaWNyb3NvZnQgUHVibGljIFJTQSBUaW1lIFN0YW1waW5nIEF1dGhv # cml0eaIjCgEBMAcGBSsOAwIaAxUAl78zyMK9SWTz4i1jrQlRYqN1QjegZzBlpGMw # YTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy # MDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIw # MjAwDQYJKoZIhvcNAQELBQACBQDud1jzMCIYDzIwMjYxMDEyMTMwMjQzWhgPMjAy # NjEwMTMxMzAyNDNaMHQwOgYKKwYBBAGEWQoEATEsMCowCgIFAO53WPMCAQAwBwIB # AAICAJowBwIBAAICEj0wCgIFAO54qnMCAQAwNgYKKwYBBAGEWQoEAjEoMCYwDAYK # KwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgCAQACAwGGoDANBgkqhkiG9w0BAQsF # AAOCAQEAXsSVT16oEWuWKK8POdqEjxGJnhd4lMGUCNN1aRS4gtnAxzmpmj/NOZV7 # Yy2ypO1Gcjo5nTwQO1AzcXgmzjDzPmuXRfCmNzU74JOKG5rzF98pdvlHgrCNCHk0 # QZoQ9nX/e8msiePA+TrQkZCk1R/L+CWqpaGl21qMne4pLbY6iyP968TW7eO2+Gva # iIYhfJHRVkA9zMXkJ15Fl+F1tqp0YorUkgW2itGSDisZ9qEniuAnPEmGo5eC0jKf # iTbRcF7aHWzZaRnX9USjVkyPsg30F6vmczeLQT+iRA35VRs8biw3LyA+phCQCTZ/ # 1SoNArnGoLHKACrYycaTs8adoYl2NjANBgkqhkiG9w0BAQEFAASCAgB5sQf5V+Tl # mPhXCF09BHS6Gkt6TEX8/Xg24pQdRSggQbky8PGj2Ph/6JJH/OuOFuB3ZulkNFg8 # Tjj+saVTctASuPFo3GGnzuwGl71xX+J40EOENtwONTgw9eVOF+EYdMn4pFvAWlx2 # kex3ZNVhUV4kWygQxnLjRzjNnWyHSQtmNk+dGRopmRYBAUkoFsmTHg3kD+wUEsLz # AUSF0+64jNsEaJH1gSEbx+3iP5U172HaM/OxdVg+MKmX5nO0wR40LRUjnoA9xy1f # 13JxbyRuFY7wB0diqB1N4cYoxPWHmuXqPjT0OeaGSP6DXK5fcPW6yof89wEH8ECb # HLhNVcfyK01am/1bo7WJjmvrPdsgsxcovJ2Po/DjnyzE4wFrF7bFsYGzHaDH3Lcf # en0xv4Ih34dRpnqpHgZ6t3XvfnK7bHgX+SIYKXfFYlAzDHIeiRWyBxeR05w5a4Rr # UNcGhMbGryZHGEPr4m7EPgR50qLxh2jGxdVrV8CTYeEuxRidL0CrqYb/Uqjx5apu # V1623AwdUVY4M184mLtZZzp3SngPY1f12qcbXwd7jUtRwV2Do8zxnpHloVTnOEPl # s4yoN508oBZZtnZJ64V4F0dRKOkD1JTS6uDxZhVEHViG+iaF1k/WcxzqyTvynNW+ # ifQi+AOpsGQ8WoPairXOZX9jsQ3nZdj1xw== # SIG # End signature block |