123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- # Copyright (c) .NET Foundation. All rights reserved.
- # Licensed under the MIT license. See LICENSE file in the project root for full license information.
- param($installPath, $toolsPath, $package, $project)
- $compilerPackageName = 'Microsoft.Net.Compilers'
- $roslynSubFolder = 'roslyn'
- if ($project -eq $null) {
- $project = Get-Project
- }
- $libDirectory = Join-Path $installPath 'lib\net45'
- $projectRoot = $project.Properties.Item('FullPath').Value
- $binDirectory = Join-Path $projectRoot 'bin'
- # We need to copy the provider assembly into the bin\ folder, otherwise
- # Microsoft.VisualStudio.Web.Host.exe cannot find the assembly.
- # However, users will see the error after they clean solutions.
- New-Item $binDirectory -type directory -force | Out-Null
- Copy-Item $libDirectory\* $binDirectory -force | Out-Null
- # For Web Site, we need to copy the Roslyn toolset into
- # the applicaiton's bin folder.
- # For Web Applicaiton project, this is done in csproj.
- if ($project.Type -eq 'Web Site') {
- $packageDirectory = Split-Path $installPath
- # Get the installed Microsoft.Net.Compilers package.
- $compilerPackage = Get-Package -ProjectName $project.Name | Where-Object {$_.Id -eq $compilerPackageName}
- if ($compilerPackage -eq $null)
- {
- Write-Host "Package $compilerPackageName is not installed correctly."
- Write-Host 'The install.ps1 did not complete.'
- break
- }
- if($compilerPackage.Versions -eq $null)
- {
- $compilerVersion = $compilerPackage.Version
- }
- else
- {
- $compilerVersion = @($compilerPackage.Versions)[0]
- }
- $compilerPackageFolderName = $compilerPackage.Id + "." + $compilerVersion
- $compilerPackageDirectory = Join-Path $packageDirectory $compilerPackageFolderName
- if ((Get-Item $compilerPackageDirectory) -isnot [System.IO.DirectoryInfo])
- {
- Write-Host "The install.ps1 cannot find the installation location of package $compilerPackageName, or the pakcage is not installed correctly."
- Write-Host 'The install.ps1 did not complete.'
- break
- }
- $compilerPackageToolsDirectory = Join-Path $compilerPackageDirectory 'tools'
- $roslynSubDirectory = Join-Path $binDirectory $roslynSubFolder
- New-Item $roslynSubDirectory -type directory -force | Out-Null
- Copy-Item $compilerPackageToolsDirectory\* $roslynSubDirectory -force | Out-Null
- # Generate a .refresh file for each dll/exe file.
- Push-Location
- Set-Location $projectRoot
- $relativeAssemblySource = Resolve-Path -relative $compilerPackageToolsDirectory
- Pop-Location
- Get-ChildItem -Path $roslynSubDirectory | `
- Foreach-Object {
- if (($_.Extension -eq ".dll") -or ($_.Extension -eq ".exe")) {
- $refreshFile = $_.FullName
- $refreshFile += ".refresh"
- $refreshContent = Join-Path $relativeAssemblySource $_.Name
- Set-Content $refreshFile $refreshContent
- }
- }
- }
- # SIG # Begin signature block
- # MIIj9AYJKoZIhvcNAQcCoIIj5TCCI+ECAQExDzANBglghkgBZQMEAgEFADB5Bgor
- # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
- # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAf2MwHY6B6NpA8
- # BGxEha31/ErMnwdzPRjp4gsxT9P5T6CCDYIwggYAMIID6KADAgECAhMzAAAAww6b
- # p9iy3PcsAAAAAADDMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
- # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
- # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
- # bmcgUENBIDIwMTEwHhcNMTcwODExMjAyMDI0WhcNMTgwODExMjAyMDI0WjB0MQsw
- # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
- # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
- # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
- # AQC7V9c40bEGf0ktqW2zY596urY6IVu0mK6N1KSBoMV1xSzvgkAqt4FTd/NjAQq8
- # zjeEA0BDV4JLzu0ftv2AbcnCkV0Fx9xWWQDhDOtX3v3xuJAnv3VK/HWycli2xUib
- # M2IF0ZWUpb85Iq2NEk1GYtoyGc6qIlxWSLFvRclndmJdMIijLyjFH1Aq2YbbGhEl
- # gcL09Wcu53kd9eIcdfROzMf8578LgEcp/8/NabEMC2DrZ+aEG5tN/W1HOsfZwWFh
- # 8pUSoQ0HrmMh2PSZHP94VYHupXnoIIJfCtq1UxlUAVcNh5GNwnzxVIaA4WLbgnM+
- # Jl7wQBLSOdUmAw2FiDFfCguLAgMBAAGjggF/MIIBezAfBgNVHSUEGDAWBgorBgEE
- # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQUpxNdHyGJVegD7p4XNuryVIg1Ga8w
- # UQYDVR0RBEowSKRGMEQxDDAKBgNVBAsTA0FPQzE0MDIGA1UEBRMrMjMwMDEyK2M4
- # MDRiNWVhLTQ5YjQtNDIzOC04MzYyLWQ4NTFmYTIyNTRmYzAfBgNVHSMEGDAWgBRI
- # bmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vd3d3
- # Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIwMTEt
- # MDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDovL3d3
- # dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDExXzIw
- # MTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIBAE2X
- # TzR+8XCTnOPVGkucEX5rJsSlJPTfRNQkurNqCImZmssx53Cb/xQdsAc5f+QwOxMi
- # 3g7IlWe7bn74fJWkkII3k6aD00kCwaytWe+Rt6dmAA6iTCXU3OddBwLKKDRlOzmD
- # rZUqjsqg6Ag6HP4+e0BJlE2OVCUK5bHHCu5xN8abXjb1p0JE+7yHsA3ANdkmh1//
- # Z+8odPeKMAQRimfMSzVgaiHnw40Hg16bq51xHykmCRHU9YLT0jYHKa7okm2QfwDJ
- # qFvu0ARl+6EOV1PM8piJ858Vk8gGxGNSYQJPV0gc9ft1Esq1+fTCaV+7oZ0NaYMn
- # 64M+HWsxw+4O8cSEQ4fuMZwGADJ8tyCKuQgj6lawGNSyvRXsN+1k02sVAiPGijOH
- # OtGbtsCWWSygAVOEAV/ye8F6sOzU2FL2X3WBRFkWOCdTu1DzXnHf99dR3DHVGmM1
- # Kpd+n2Y3X89VM++yyrwsI6pEHu77Z0i06ELDD4pRWKJGAmEmWhm/XJTpqEBw51sw
- # THyA1FBnoqXuDus9tfHleR7h9VgZb7uJbXjiIFgl/+RIs+av8bJABBdGUNQMbJEU
- # fe7K4vYm3hs7BGdRLg+kF/dC/z+RiTH4p7yz5TpS3Cozf0pkkWXYZRG222q3tGxS
- # /L+LcRbELM5zmqDpXQjBRUWlKYbsATFtXnTGVjELMIIHejCCBWKgAwIBAgIKYQ6Q
- # 0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
- # Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
- # dCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNh
- # dGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEwOTA5
- # WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
- # UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQD
- # Ex9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG9w0B
- # AQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+laUKq4
- # BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc6Whe
- # 0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4Ddato
- # 88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+lD3v
- # ++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nkkDst
- # rjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6A4aN
- # 91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmdX4ji
- # JV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL5zmh
- # D+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zdsGbi
- # wZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3T8Hh
- # hUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS4NaI
- # jAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRIbmTl
- # UAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV
- # HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBDuRQF
- # TuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jvc29m
- # dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNf
- # MjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3dy5t
- # aWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFfMDNf
- # MjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEFBQcC
- # ARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1hcnlj
- # cHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkAYwB5
- # AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn8oal
- # mOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7v0ep
- # o/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0bpdS1
- # HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/KmtY
- # SWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvyCInW
- # H8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBpmLJZ
- # iWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJihsMd
- # YzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYbBL7f
- # QccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbSoqKf
- # enoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sLgOpp
- # O6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtXcVZO
- # SEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCFcgwghXEAgEBMIGVMH4xCzAJ
- # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
- # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jv
- # c29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAADDDpun2LLc9ywAAAAAAMMw
- # DQYJYIZIAWUDBAIBBQCggbowGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYK
- # KwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEoPsTC3
- # 1/pDivlkpNbAGjYa9p5+3H/Rx+1SC8XLqZeAME4GCisGAQQBgjcCAQwxQDA+oCSA
- # IgBNAGkAYwByAG8AcwBvAGYAdAAgAEEAUwBQAC4ATgBFAFShFoAUaHR0cDovL3d3
- # dy5hc3AubmV0LyAwDQYJKoZIhvcNAQEBBQAEggEAbSqleID4IT7oaGSzNGup96hW
- # lCPnBetoYLWWc2YNw+99esly5FencuJW5HyejxysCtA4pOl/LmhoZ2OOM4ZJ7Dmj
- # 0SjsWKbv5iZQAk7UPLYuUldcNMUsLs7iHbqES/irQESpDE0sW0kxrIEr+1CULEd5
- # x6fkwsfA5SG+5XiD8OQmgeLBaznN4ddCcfh6Hrt1VT09p0RZdXVQX1BNUj0z8pwf
- # +HbUQyFlczz4F3lIMHvHXpSGVstlJ7KJvUY9LDOJk8uB5XOoWDyBKI6x08eO5wd3
- # HesnpE2ORLIvMSxD5NQ5IZqw0FnLnzO5EV1dCaE7k0xAwuqbnoB4D1tRkhctnqGC
- # E0YwghNCBgorBgEEAYI3AwMBMYITMjCCEy4GCSqGSIb3DQEHAqCCEx8wghMbAgED
- # MQ8wDQYJYIZIAWUDBAIBBQAwggE8BgsqhkiG9w0BCRABBKCCASsEggEnMIIBIwIB
- # AQYKKwYBBAGEWQoDATAxMA0GCWCGSAFlAwQCAQUABCC1zaDGNu/+Ty+fMauQDUIy
- # RNdiJ06pb7NCdqQIbh7rsQIGWdm5e7muGBMyMDE3MTAxNjIxMTI0OC4zOTFaMAcC
- # AQGAAgH0oIG4pIG1MIGyMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
- # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
- # aW9uMQwwCgYDVQQLEwNBT0MxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjowREU4
- # LTJEQzUtM0NBOTElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vydmlj
- # ZaCCDsowggZxMIIEWaADAgECAgphCYEqAAAAAAACMA0GCSqGSIb3DQEBCwUAMIGI
- # MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVk
- # bW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylN
- # aWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0xMDA3
- # MDEyMTM2NTVaFw0yNTA3MDEyMTQ2NTVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
- # EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
- # ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
- # QSAyMDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqR0NvHcRijog
- # 7PwTl/X6f2mUa3RUENWlCgCChfvtfGhLLF/Fw+Vhwna3PmYrW/AVUycEMR9BGxqV
- # Hc4JE458YTBZsTBED/FgiIRUQwzXTbg4CLNC3ZOs1nMwVyaCo0UN0Or1R4HNvyRg
- # MlhgRvJYR4YyhB50YWeRX4FUsc+TTJLBxKZd0WETbijGGvmGgLvfYfxGwScdJGcS
- # chohiq9LZIlQYrFd/XcfPfBXday9ikJNQFHRD5wGPmd/9WbAA5ZEfu/QS/1u5ZrK
- # sajyeioKMfDaTgaRtogINeh4HLDpmc085y9Euqf03GS9pAHBIAmTeM38vMDJRF1e
- # FpwBBU8iTQIDAQABo4IB5jCCAeIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYE
- # FNVjOlyKMZDzQ3t8RhvFM2hahW1VMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBB
- # MAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP
- # 6KJcYmjRPZSQW9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWlj
- # cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2
- # LTIzLmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cu
- # bWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMu
- # Y3J0MIGgBgNVHSABAf8EgZUwgZIwgY8GCSsGAQQBgjcuAzCBgTA9BggrBgEFBQcC
- # ARYxaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0
- # Lmh0bTBABggrBgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMAeQBf
- # AFMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAB+aIUQ3i
- # xuCYP4FxAz2do6Ehb7Prpsz1Mb7PBeKp/vpXbRkws8LFZslq3/Xn8Hi9x6ieJeP5
- # vO1rVFcIK1GCRBL7uVOMzPRgEop2zEBAQZvcXBf/XPleFzWYJFZLdO9CEMivv3/G
- # f/I3fVo/HPKZeUqRUgCvOA8X9S95gWXZqbVr5MfO9sp6AG9LMEQkIjzP7QOllo9Z
- # Kby2/QThcJ8ySif9Va8v/rbljjO7Yl+a21dA6fHOmWaQjP9qYn/dxUoLkSbiOewZ
- # SnFjnXshbcOco6I8+n99lmqQeKZt0uGc+R38ONiU9MalCpaGpL2eGq4EQoO4tYCb
- # IjggtSXlZOz39L9+Y1klD3ouOVd2onGqBooPiRa6YacRy5rYDkeagMXQzafQ732D
- # 8OE7cQnfXXSYIghh2rBQHm+98eEA3+cxB6STOvdlR3jo+KhIq/fecn5ha293qYHL
- # pwmsObvsxsvYgrRyzR30uIUBHoD7G4kqVDmyW9rIDVWZeodzOwjmmC3qjeAzLhIp
- # 9cAvVCch98isTtoouLGp25ayp0Kiyc8ZQU3ghvkqmqMRZjDTu3QyS99je/WZii8b
- # xyGvWbWu3EQ8l1Bx16HSxVXjad5XwdHeMMD9zOZN+w2/XU/pnR4ZOC+8z1gFLu8N
- # oFA12u8JJxzVs341Hgi62jbb01+P3nSISRIwggTZMIIDwaADAgECAhMzAAAApv1S
- # 4IsWJz8AAAAAAACmMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYD
- # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
- # b3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1w
- # IFBDQSAyMDEwMB4XDTE2MDkwNzE3NTY1MVoXDTE4MDkwNzE3NTY1MVowgbIxCzAJ
- # BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
- # MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDDAKBgNVBAsTA0FPQzEn
- # MCUGA1UECxMebkNpcGhlciBEU0UgRVNOOjBERTgtMkRDNS0zQ0E5MSUwIwYDVQQD
- # ExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEF
- # AAOCAQ8AMIIBCgKCAQEAwbjNngkntHCLhf8dWkjRwObnYXD1PapUW8Dd1bLAEOuu
- # RJpcoYmpr2HFU/QCbP2/bMvR85KaEqARbYU3PnHd0aDvmiHd2Fsmg5APJn+NHh7j
- # 4yQbLTLRtO+3wM0KR9jgTzXHuwQ4RSZrb6jihSazjfT3s7xZ8CIYmP9XNBgbTtG0
- # 79juKoht/f4fFV0pgWt2OTDF/30jokR0GLMINMm5yNfNjO9RTeDzD+86tC3SsyX5
- # v2STF1Qv78hRY5UlsSyjSHHIZ6pxh9jXr8rnG52gOTLFpm9qG9UYdZSpqnlZrN/b
- # jtLKSZx3QarYMDlm5JF41O0n6ZfDfllE+i25anED3QIDAQABo4IBGzCCARcwHQYD
- # VR0OBBYEFA7hxUPJJhvcy4e73Exm1wa80cAmMB8GA1UdIwQYMBaAFNVjOlyKMZDz
- # Q3t8RhvFM2hahW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9z
- # b2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY1RpbVN0YVBDQV8yMDEwLTA3LTAx
- # LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWlj
- # cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljVGltU3RhUENBXzIwMTAtMDctMDEuY3J0
- # MAwGA1UdEwEB/wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEL
- # BQADggEBAIQgJ6EG6LjW/JI6ykjWncvQlo6zBNrIroRfqzqi9Nq1YlYvCsGyjz63
- # HyxgWnUizkeR30F62Z6QNCujWAMNw4bGltW6hdHjY7QZUb1njzZl7NYZJpcHjPpW
- # l/7MXBltdwZY6dELrxqrCxT3TwlQwxlrmMwh4yWG1kE362Ut2Wxsj0f/F0+9pVA2
- # o6vC3HVw4WFa70EbKgPRBnleyqZDGKtXRJOBwOtCqBMF1Bg4nFsmNtyV6zOltHCa
- # /L2db6QHpN8eQqcPO7lBsbZLv4QSRdluz1h8tuNrC64ABtaklrtnES87UOmSbPWa
- # WciH5K9kvlUsM3A2H4v06uacAT2kOy+hggN0MIICXAIBATCB4qGBuKSBtTCBsjEL
- # MAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v
- # bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEMMAoGA1UECxMDQU9D
- # MScwJQYDVQQLEx5uQ2lwaGVyIERTRSBFU046MERFOC0yREM1LTNDQTkxJTAjBgNV
- # BAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiJQoBATAJBgUrDgMCGgUA
- # AxUAf6AwbHyj6urygQTTNaLn3OLUhT2ggcEwgb6kgbswgbgxCzAJBgNVBAYTAlVT
- # MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
- # ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDDAKBgNVBAsTA0FPQzEnMCUGA1UECxMe
- # bkNpcGhlciBOVFMgRVNOOjI2NjUtNEMzRi1DNURFMSswKQYDVQQDEyJNaWNyb3Nv
- # ZnQgVGltZSBTb3VyY2UgTWFzdGVyIENsb2NrMA0GCSqGSIb3DQEBBQUAAgUA3Y+K
- # WzAiGA8yMDE3MTAxNjE5NDMyM1oYDzIwMTcxMDE3MTk0MzIzWjB0MDoGCisGAQQB
- # hFkKBAExLDAqMAoCBQDdj4pbAgEAMAcCAQACAgaxMAcCAQACAhl1MAoCBQDdkNvb
- # AgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwGgCjAIAgEAAgMW42Ch
- # CjAIAgEAAgMHoSAwDQYJKoZIhvcNAQEFBQADggEBACmaRE4Zpujg47c6L7bPI4+5
- # k/M3LOiQz3uJhwdSUWWgpzlr+Xz8CQm4tyNSJIoiKoqdKskWYA0cdYBHRmGgrUDJ
- # drSczFL4dbObCKVhCgD9+gYX5hszZGpfc6MVaKZ1bm3eV/6LvVZAThT+HY5r5yBQ
- # lJA44M9XkDY85Mmf6zL8HJvoDkyogKXSL9NcAJP248ONuCMa87jfaHvZMbRuEizd
- # x9g7X8P6XuW96ZJCKgWD7l6/QyMaCCCe3iABKot5NAmlp9QvMUVwBeILFcdY/XzT
- # GUB3I8xjsZ5H/4OjIti75p58YzHT6de9xDcItksmJoaIZcASijhCA4OZ/d1HBLEx
- # ggL1MIIC8QIBATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
- # bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
- # aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAA
- # AKb9UuCLFic/AAAAAAAApjANBglghkgBZQMEAgEFAKCCATIwGgYJKoZIhvcNAQkD
- # MQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCCczm1z9vWYqpvtnd4AD0SG
- # PMMhSgbZOEDrv000ksf4lDCB4gYLKoZIhvcNAQkQAgwxgdIwgc8wgcwwgbEEFH+g
- # MGx8o+rq8oEE0zWi59zi1IU9MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV
- # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
- # c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
- # UENBIDIwMTACEzMAAACm/VLgixYnPwAAAAAAAKYwFgQUs5LWyUXi2GSuGmUeog8I
- # QynnrSswDQYJKoZIhvcNAQELBQAEggEAv+OGbHCsxyU/djVQVR96B8DgtD+Il/Dc
- # NJT454Aqe7VliKNz35JvqbcvAXmYfe5/h7rUdJw1C5G1R8FnvozLEJCyD4Mx1RbR
- # hvg4cKzvZiaEPG600twxO5K8HGtewug4VpAEwXGrOCvQvYQ1nQnCHqr9giCpqVC7
- # ta9w3msriFdyv2+3cNgbDCpf4j2elBO9OlDGZz1Ey81z8n1B4Usxp6aNRjnVybCu
- # HO7dgqo2P+uKJLIWV+R7vjWh/KztftHeJVEglvRkRD/3o/y+kObK8EaqOrXxOnhv
- # PBYgCHvMriO+FDb4O+meGQZRm16By6Q44LwF8QTWUvHGkEp9ozWabQ==
- # SIG # End signature block
|