This commit is contained in:
Clint Woon 2023-08-28 18:04:31 -07:00
Родитель 1d647f13f0
Коммит fec4a968dd
47 изменённых файлов: 275 добавлений и 313 удалений

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:be292b453edda55eab8d2f5e7c6ef77bb0956dcfe05bc6c131c0a7a3ae6aa2c9
size 6872
oid sha256:8f008ecb269295446a9b12041700179775ffb7fdd8f19b1cd78471dc76c62ee1
size 16624

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:51f7e88fb50e6dbc52781fa40ca2a206b3e2cfba9b5572b2741cf67c5763bd08
size 60408493
oid sha256:d3a5825a8f579d113d668f8c2c7404c58988f66daac845a400ee640c65a41cbf
size 60611848

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:894180489f16ac500f89a17a32c32b0f4f21438287e1ca49821ad6fe85be3a62
size 10856
oid sha256:04bfccbc0a161a33c37a7cc8c25443d2ebf0a069d3f26d7ac52a0ddf2988d714
size 20839

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:568299b940fb53144b2d6a653ea826724133248476b7bdd55ae099bdf0a174da
size 81847
oid sha256:b01edcfd8ab5567b0e54e59cdf366183cac30bb3eb4a07e8fbb5f9eb9217f632
size 80983

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:01d6089280b223d3437ff24645dce6d5492ffda6159bb7de7149b75c6c0b1062
size 1249283
oid sha256:d524af429f84e4e7b6a6ee0c578529b5fdc7312a6ffd1efe43eac2f187965907
size 1263074

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5bff62aea389d10ae676f9e98636c2c47638442547c5e6b0c3253178847e83bf
size 6706
oid sha256:28b63bf4f176605e817543957954b2327efc975a81700701779768dae94351e9
size 9780

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c619fc5ff9f61ac8f9364c0b7b6a28a2f506227ef5b48cf7f21c1cd09750f6a0
size 6611754
oid sha256:00874f3ee1db6e1166ae012cbb3e365a6f23a7eef4d093dcf5c84defb81ef781
size 6903682

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:07e8a1ff130eb2d99d45d0efd981fc4e971f1c1ef083219235a0d86d6e533862
size 6846
oid sha256:a3b183744765cd82ba9c8a1ef62411d98335da837724c20e8ef406ee2bdd64d8
size 9967

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e9d9a51542063e4154cf63cc91a472349c1bf1b174190fff4c0cebc851d73ddb
size 58368
oid sha256:3698586b938fc6aa69317d543045fd6766179122e84aa5cefd4d4f7b15239def
size 56320

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5d2de3b9056bc6544c889a1d47244532dc6545ef91271484f5fc0a107b4736ba
size 54606077
oid sha256:bea9515140292d187142085a95a4ece83d6a07b4ad7da84f85df8349eadcc860
size 54810308

Просмотреть файл

@ -1,173 +1,138 @@
[CmdletBinding()]
param
(
[Parameter(Mandatory=$false)]
[Parameter(Mandatory = $false)]
[string]
$AppxPath,
[Parameter(Mandatory=$false)]
[string]
$LogPath,
[Parameter(Mandatory=$false)]
[Parameter(Mandatory = $false)]
[string]
$AppxDepDirPath
)
function Logic
{
$Error.Clear();
$Error.Clear();
if(!$AppxPath)
{
$AppxPath = Join-Path $PSScriptRoot "GamingServices.appxbundle";
}
if (-not $AppxPath) {
$AppxPath = Join-Path $PSScriptRoot "GamingServices.appxbundle";
}
if(-not (test-path $AppxPath))
{
Write-Output "ERROR: Appx not found: $AppxPath";
exit 1;
}
if (-not (test-path $AppxPath)) {
Write-Output "ERROR: Appx not found: $AppxPath";
exit 1;
}
if(!$AppxDepDirPath)
{
$AppxDepDirPath = (get-item $AppxPath).Directory.FullName;
}
$systemVolume = Get-AppxVolume | Where-Object -Property IsSystemVolume -eq $True | Select-Object -First 1;
if(!$systemVolume)
{
Write-Output "ERROR: System volume not found.";
exit 1;
}
Write-Output ("System volume found.`n{0}" -f ($systemVolume | Format-List | Out-String).trim());
$systemRoot = [System.IO.path]::GetPathRoot($systemVolume.PackageStorePath);
if(!$systemRoot)
{
Write-Output "ERROR: System root not found.";
exit 1;
}
Write-Output "System root found: $systemRoot";
$package = Get-AppxPackage -Name Microsoft.GamingServices* | Sort-Object -Property Version -Descending | Select-Object -First 1;
$isOldPackagePresent = $false;
if($package)
{
Write-Output ("Version {0} of {1} was found already installed on the PC.`n{2}" -f $package.Version, $package.Name, ($package | Format-List | Out-String).trim());
$isOldPackagePresent = (([Version]$package.Version -lt [Version]'4.66.28001.0') -or ([Version]$package.Version -eq [Version]'1.43.2002.0'));
if($isOldPackagePresent)
{
Write-Output "Uninstalling $($package.PackageFullName) version $($package.Version)";
remove-appxpackage -allusers $package.PackageFullName -ErrorAction Continue;
if($Error)
{
Write-Output "Remove-AppxPackage failed for $($package.PackageFullName)";
}
else
{
Write-Output "Remove-AppxPackage completed for $AppxPath";
}
}
}
else
{
Write-Output 'No versions of Microsoft.GamingServices were found installed on the PC.';
}
if(($package -eq $null) -or $isOldPackagePresent)
{
Write-Output "Installing $AppxPath Version 4.66.28001.0 Volume $systemRoot";
$allDepsFound = $TRUE;
[string[]]$depPackageNames = 'Microsoft.NET.Native.Runtime.2.2','Microsoft.NET.Native.Framework.2.2','Microsoft.VCLibs.x64.14.00';
$dependencyPaths = $depPackageNames | ForEach-Object {Join-Path -Path $AppxDepDirPath -ChildPath "$_.appx"};
ForEach ($dep in $dependencyPaths) {if (-not (test-path $dep)) {$allDepsFound = $FALSE;}};
if($allDepsFound)
{
Write-Output "Installing $AppxPath Version 4.66.28001.0 Volume $systemRoot -DependencyPath $dependencyPaths";
add-appxpackage -forceApplicationShutdown -path $AppxPath -Volume $systemRoot -DependencyPath $dependencyPaths -ErrorAction Continue;
}
else
{
Write-Output "Installing $AppxPath Version 4.66.28001.0 Volume $systemRoot";
add-appxpackage -forceApplicationShutdown -path $AppxPath -Volume $systemRoot -ErrorAction Continue;
}
if($Error)
{
Write-Output "ERROR: Add-AppxPackage failed for $AppxPath";
$guid = ($error -split ' ' | select -Last 1) -as [Guid];
if($guid)
{
Write-Output "Get-AppPackageLog -ActivityID $guid";
Get-AppPackageLog -ActivityID $guid;
}
}
else
{
Write-Output "Add-AppxPackage completed for $AppxPath";
}
}
else
{
Write-Output "No installation needed as version $($package.Version) of $($package.Name) was found already installed on the PC.";
}
if (-not $AppxDepDirPath) {
$AppxDepDirPath = (get-item $AppxPath).Directory.FullName;
}
$output = Logic;
$systemVolume = Get-AppxVolume | Where-Object -Property IsSystemVolume -eq $True | Select-Object -First 1;
if($LogPath)
{
$output | Out-File -FilePath $LogPath -Append -Force;
if (-not $systemVolume) {
Write-Output "ERROR: System volume not found.";
exit 1;
}
else
{
$output;
Write-Output ("System volume found.`n{0}" -f ($systemVolume | Format-List | Out-String).trim());
$systemRoot = [System.IO.path]::GetPathRoot($systemVolume.PackageStorePath);
if (-not $systemRoot) {
Write-Output "ERROR: System root not found.";
exit 1;
}
Write-Output "System root found: $systemRoot";
$package = Get-AppxPackage -Name Microsoft.GamingServices* | Sort-Object -Property Version -Descending | Select-Object -First 1;
$isOldPackagePresent = $false;
if ($package) {
Write-Output ("Version {0} of {1} was found already installed on the PC.`n{2}" -f $package.Version, $package.Name, ($package | Format-List | Out-String).trim());
$isOldPackagePresent = (([Version]$package.Version -lt [Version]'13.80.9001.0') -or ([Version]$package.Version -eq [Version]'1.43.2002.0'));
if ($isOldPackagePresent) {
Write-Output "Uninstalling $($package.PackageFullName) version $($package.Version)";
remove-appxpackage -allusers $package.PackageFullName -ErrorAction Continue;
if ($Error) {
Write-Output "Remove-AppxPackage failed for $($package.PackageFullName)";
}
else {
Write-Output "Remove-AppxPackage completed for $AppxPath";
}
}
}
else {
Write-Output 'No versions of Microsoft.GamingServices were found installed on the PC.';
}
if (($package -eq $null) -or $isOldPackagePresent) {
Write-Output "Installing $AppxPath Version 13.80.9001.0 Volume $systemRoot";
$allDepsFound = $TRUE;
[string[]]$depPackageNames = 'Microsoft.NET.Native.Runtime.2.2', 'Microsoft.NET.Native.Framework.2.2', 'Microsoft.VCLibs.x64.14.00';
$dependencyPaths = $depPackageNames | ForEach-Object { Join-Path -Path $AppxDepDirPath -ChildPath "$_.appx" };
ForEach ($dep in $dependencyPaths) { if (-not (test-path $dep)) { $allDepsFound = $FALSE; } };
if ($allDepsFound) {
Write-Output "Installing $AppxPath Version 13.80.9001.0 Volume $systemRoot -DependencyPath $dependencyPaths";
add-appxpackage -forceApplicationShutdown -path $AppxPath -Volume $systemRoot -DependencyPath $dependencyPaths -ErrorAction Continue;
}
else {
Write-Output "Installing $AppxPath Version 13.80.9001.0 Volume $systemRoot";
add-appxpackage -forceApplicationShutdown -path $AppxPath -Volume $systemRoot -ErrorAction Continue;
}
if ($Error) {
Write-Output "ERROR: Add-AppxPackage failed for $AppxPath";
$guid = ($error -split ' ' | select -Last 1) -as [Guid];
if ($guid) {
Write-Output "Get-AppPackageLog -ActivityID $guid";
Get-AppPackageLog -ActivityID $guid;
}
}
else {
Write-Output "Add-AppxPackage completed for $AppxPath";
}
}
else {
Write-Output "No installation needed as version $($package.Version) of $($package.Name) was found already installed on the PC.";
}
exit ($Error.Count);
# SIG # Begin signature block
# MIIl3gYJKoZIhvcNAQcCoIIlzzCCJcsCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# MIImBwYJKoZIhvcNAQcCoIIl+DCCJfQCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAn3alm6ya4o3yj
# gXk2/0FHWjAcpSrApUj+4GUCoozq+qCCC2cwggTvMIID16ADAgECAhMzAAAEOA/I
# Xba8U/0OAAAAAAQ4MA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCbjbc0AepQGyIA
# zP9nLp4Ib9m14CouAWFtUZ3E08bOaaCCC2cwggTvMIID16ADAgECAhMzAAAFACfW
# Mm9Dc3uHAAAAAAUAMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTAwHhcNMjEwOTAyMTgyNTU3WhcNMjIwOTAxMTgyNTU3WjB0MQsw
# bmcgUENBIDIwMTAwHhcNMjMwMjE2MjAxMTExWhcNMjQwMTMxMjAxMTExWjB0MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
# AQCurn8/CcSq9qOPnAFrKtGtCy/iX+WUNZ9pll+bOTwGISP3nAKZGu3AJVgzK2Kx
# dEciTQExXZIEpUKSBJDNY4QX6beqtbbU6lGNlbxB3b73e5tQ16DpQGYUkeHJk2a9
# uT3cv0j8VOZDZCqb1zFpJtrF4vggAimoc2DPUVa7B7oDemRU8GQuCCFPl1IydL4u
# 57q9W7gb0zIm0DGw1P03Yv7SzQPAFbVRe+92D8f4W9SM8/EYDAAEdOn1RwRmRZd5
# avK5U1D3/APqdldgNzn0UozCWbiz84AsHR7BheqzDWEx0wvSsCIywv82xUW7wY2c
# 0K6eXMKAIjhAOtJT5RCun1CnAgMBAAGjggFuMIIBajAfBgNVHSUEGDAWBgorBgEE
# AYI3PQYBBggrBgEFBQcDAzAdBgNVHQ4EFgQUgZix3QHakOJ1+OMpggGOIMFUPxgw
# AQDFkbktTPAJwujWqeAF9Ei9qjEcHHhgDOcCGXKPZFsect6P72/fGD6iv9vq96xQ
# LkSI0PhfXnBwBGLUltZwi5PJaA7IFyaQPjLb5TB9EG0R78McIuMgyRweI3jDce54
# WPOaJCFdfi3hBvH/AoW7tQH0Ua+2QycxbHZgg8/EplcBaLWM/PrXIT3N0ZmDbSCW
# x/mZu/zJEDTS7Z37Sc5avkBdObK4H1XVNLh74iop34yBziFNXhQ8fR2usy6B2uf3
# jckPogHwykdvh0PibY8Lgq55IltjvV9KlHd6QHxeRJ6M0EZKgIUfcAF0w5XWFJZz
# eOHWB6E5NmdyU5sE6nQuGpGhAgMBAAGjggFuMIIBajAfBgNVHSUEGDAWBgorBgEE
# AYI3PQYBBggrBgEFBQcDAzAdBgNVHQ4EFgQUnQrZdzAcYTWhzLarYgjDOio1KSMw
# RQYDVR0RBD4wPKQ6MDgxHjAcBgNVBAsTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEW
# MBQGA1UEBRMNMjMwODY1KzQ2NzM5NzAfBgNVHSMEGDAWgBTm/F97uyIAWORyTrX0
# MBQGA1UEBRMNMjMwODY1KzUwMDIzMTAfBgNVHSMEGDAWgBTm/F97uyIAWORyTrX0
# IXQjMubvrDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5j
# b20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RTaWdQQ0FfMjAxMC0wNy0wNi5jcmww
# WgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29m
# dC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8yMDEwLTA3LTA2LmNydDAMBgNV
# HRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDOS4QT+AjIqX3O7FH4FD6TTJWK
# viXQBZv1aL02GgTGqHvFqbilEbQ8TW81TcoU7t7WB2QGqu/utgFqh1UaNsrQNf+R
# +NIvcB5hESNsDco18jQtul935jlJu+J01I1CeeoW4/Xlrbmbuluugm5wUcGclLi5
# 3uALKWQGMp2d14BeIu52stPJQdnn292bk6b9aONC4ic3rjSZGxwz92kmO2XRFsdK
# 5DPVlJj06FLU7i4nzcOLijtLkuIm9vcWDIwgpSV+JHYirr3nGis2AbR9qzTGhOHq
# OfsHvN7gunVTcP3Fz8JRds8nmyS0tSR9ulYU/n1uyDx1CxRq5seFa7fGBfVMMIIG
# HRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQDh0kPUjUYtzlPEvMoFNXHo4aX5
# RPpdZ4rbyrU3Ur4LK4hXLXoMinXxgSnSxusJylXdemovg38RlxiZlgYYc0Yc7Ygd
# BWRl9zmeA+rgQ0srfR6F1ztgobrYxtHOjoThiWvBeLmZOjUVtrmvJgGu2ehfFeD2
# rmDz9CgLOkw2eG492vJ0poAFRIRZ8BtpgCDwzZgmuhAp7hKowwRyMk/pEROCtA04
# RLMShlIkT4NJBDE2OVD5TP0/DzNr3I8jEGBVzqb/QAlJf1MMBStHzYxTQ/UeH9PL
# /gr2iyLUER3m48izBli14+xyviBVC7cCKXAAv17c8+QR3NKfL5x5Ajo18YdFMIIG
# cDCCBFigAwIBAgIKYQxSTAAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0
@ -202,143 +167,143 @@ exit ($Error.Count);
# 7UIJ0Q124yNWeCImNr7KsYxuqh3khdpHM2KPpMmRM19xHkCvmGXJIuhCISWKHC1g
# 2TeJQYkqFg/XYTyUaGBS79ZHmaCAQO4VgXc+nOBTGBpQHTiVmx5mMxMnORd4hzbO
# TsNfsvU9R1O24OXbC2E9KteSLM43Wj5AQjGkHxAIwlacvyRdUQKdannSF9PawZSO
# B3slcUSrBmrm1MbfI5qWdcUxghnNMIIZyQIBATCBlTB+MQswCQYDVQQGEwJVUzET
# B3slcUSrBmrm1MbfI5qWdcUxghn2MIIZ8gIBATCBlTB+MQswCQYDVQQGEwJVUzET
# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV
# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT
# aWduaW5nIFBDQSAyMDEwAhMzAAAEOA/IXba8U/0OAAAAAAQ4MA0GCWCGSAFlAwQC
# aWduaW5nIFBDQSAyMDEwAhMzAAAFACfWMm9Dc3uHAAAAAAUAMA0GCWCGSAFlAwQC
# AQUAoIIBBDAZBgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgEL
# MQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgGZVAbUW4je8Z6/iXMi0l
# tgeRIidqQtltNlHR2orqvl8wPAYKKwYBBAGCNwoDHDEuDCxSbU5FSFRzZkMrNHhY
# djZJMitTTW9VUDRiZjZxUHpjQ3Q2VjRrTFNMWFc0PTBaBgorBgEEAYI3AgEMMUww
# MQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG9w0BCQQxIgQgDuAzbygUXW212Kbizl+Y
# V9ZZ1utQJCA2tQ7I7gA0TqYwPAYKKwYBBAGCNwoDHDEuDCxzUFk3eFBCN2hUNWc1
# SEhyWXQ4ckRMU005VnVaUnVXWmFlZjJlMjJSczU0PTBaBgorBgEEAYI3AgEMMUww
# SqAkgCIATQBpAGMAcgBvAHMAbwBmAHQAIABXAGkAbgBkAG8AdwBzoSKAIGh0dHA6
# Ly93d3cubWljcm9zb2Z0LmNvbS93aW5kb3dzMA0GCSqGSIb3DQEBAQUABIIBAIDP
# gYkde4n2OqFLq3OPMeehtWlT8JiGF5E+gdQP/5wWTlhnTKqTTPo2VEAsaSZpRpwP
# GttOsXm1aNjZhjiNUQ/CaZmkiIane/SXwIP1uVG0mrooRWwveBFt4wCw77gJyDeF
# ajx3MQhp9jZIme6NLIB4Bm8dtvI2Ue4sFzAuCXqJAv6pYyTNMVzZYgfGqZU+tiea
# hJNhg9YsX6rXUdM4Ow46s1jlVpPJtGxYqvQ4hWMGMYEns3/IfUHxo1eXyokrshMK
# 3zJyMcXdLcZFXCs0vudMUr2iR/6o6bJ6f7XxCc/Yc95FJiwoWXfCUsiKqRojhwIb
# CjDUgh84WdSCWRhodfihghcAMIIW/AYKKwYBBAGCNwMDATGCFuwwghboBgkqhkiG
# 9w0BBwKgghbZMIIW1QIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBUQYLKoZIhvcNAQkQ
# AQSgggFABIIBPDCCATgCAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQg
# Qmzbzc8e4Q8MzsRwVmOjP+AmbzoRfUrDe1dzLh3aSnQCBmK0yve1XxgTMjAyMjA3
# MjAwNTI3MTIuNTg2WjAEgAIB9KCB0KSBzTCByjELMAkGA1UEBhMCVVMxEzARBgNV
# Ly93d3cubWljcm9zb2Z0LmNvbS93aW5kb3dzMA0GCSqGSIb3DQEBAQUABIIBAMGi
# aemzu8bMe6eigri+kLurrzhe/zVbxtZCb/8Fy2QNAKTSFCDG1ph61U19Ryg1bd76
# 7vBaUVQpea3jWt0h7ZmhUX/+LwbQ0padguYFyBvWXyofkeQrhcvIgXN6qAKXwy1c
# 8T5I1i2xsCORl0xrLg06L3p7qfjn93zj8S/gIzTXoBxmYMv9mIfcTMG6HHIJWfC4
# Qg7sXw8nU3s41V2Y/qd4v5YqeJUV0ASgWAJLdR1nErp3CDHsRtb2T5D2y/R4RH27
# JacFFcO5S6tAtjCT0G0uLj8DoihEYdBijDwJvqCQojvSzMvAnJWpojHdxz2yfXNO
# FFCkBsexPLuRaQf3m8+hghcpMIIXJQYKKwYBBAGCNwMDATGCFxUwghcRBgkqhkiG
# 9w0BBwKgghcCMIIW/gIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBWQYLKoZIhvcNAQkQ
# AQSgggFIBIIBRDCCAUACAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQg
# Frjf7vvroJ/fcyERmJGAzIo7U6BbvqHioBySOGsYNIICBmTJjK8ZnRgTMjAyMzA4
# MTYxMTU5MDYuNDI2WjAEgAIB9KCB2KSB1TCB0jELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3Bl
# cmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MjI2NC1FMzNFLTc4MEMx
# JTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WgghFXMIIHDDCC
# BPSgAwIBAgITMwAAAZh2s4zF0AWhAQABAAABmDANBgkqhkiG9w0BAQsFADB8MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy
# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMTEyMDIxOTA1MTVaFw0yMzAy
# MjgxOTA1MTVaMIHKMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ
# MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u
# MSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQL
# Ex1UaGFsZXMgVFNTIEVTTjoyMjY0LUUzM0UtNzgwQzElMCMGA1UEAxMcTWljcm9z
# b2Z0IFRpbWUtU3RhbXAgU2VydmljZTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
# AgoCggIBAMbUlaxWSynzEbiwsyd/F+K3dKEj7sbUx9NP7le9DO4A57yvkxEAUhNO
# aMXHOgsV+ZrEu89WWYOCQOLSuqw6z0CX2NXBhIVUX/BYLb4Hvo7KyLJGPD40+PkD
# hyYyE+oh02REsIT7C24j/AJqrf8t/iSgMa50hwRhGAyqpOg45QhXh7sR1hveT2tg
# 83tKyXCwsVKn4W+b9BzLkqp+SYxfhLegnHsd2JCEpsrULpl+Jv7vrVuat08tPp51
# 2WfLCWzuEKsgi4W2BRtSPookhmfUxthjyGsAzn228ul4aYVbcaN4ECa8HECfuj0u
# nafKRPXD0jSz113CkWeMtPY8rvgYNKzEVRkbVS0vKmL+RlyD1Z6c8BmlS08V87ky
# 2J/wlryNdcsg/or5vkuJBXygjEVIF+AU3v9Mva1JJ9BVy+pfWZxI6vH+2yCrcvpg
# DEjo+XiHXNCtwCZOjKkSg9g1z9GVIGTqWOY3I0OxfeC0rynpzscJZSEX5iMyB9qd
# CYyNRixuN0SwLIvpACiNnR/qS143hxXqhsXBxQS+JjKBZt51pPzo4Z70sQ7E+6HO
# AW/ZmhtWvQnyGXUVV1xkVt8U3+B2Mdn+dwMOos1aBygygSHDDOjsUA5uoprF8HnM
# IGphKPjmaI07mDeE/wCALR5IIeXesrsk8yvUH7wlMe3BGRIrP/5zAgMBAAGjggE2
# MIIBMjAdBgNVHQ4EFgQUbpGEco2myDeaCiezstHlgdPN4TcwHwYDVR0jBBgwFoAU
# n6cVXQBeYl2D9OXSZacbUzUZ6XIwXwYDVR0fBFgwVjBUoFKgUIZOaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9zb2Z0JTIwVGltZS1TdGFt
# cCUyMFBDQSUyMDIwMTAoMSkuY3JsMGwGCCsGAQUFBwEBBGAwXjBcBggrBgEFBQcw
# AoZQaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNyb3Nv
# ZnQlMjBUaW1lLVN0YW1wJTIwUENBJTIwMjAxMCgxKS5jcnQwDAYDVR0TAQH/BAIw
# ADATBgNVHSUEDDAKBggrBgEFBQcDCDANBgkqhkiG9w0BAQsFAAOCAgEAJPoHoXfe
# L/z3NdOCpDwvoJgwfH0GJoc5X7CTnck6uILN5ouNiBHKywmGaecn8J0drmqNxLC9
# Gm1alkk9UrmzGE4iNEE+Cz/f4RHS9LzsgD5oZt/s0XstlmXFY86X/IUGD2pne2k4
# Y6iFAidCfnOlXbeFailo3hzj2MYkcs8B/L27v5lIZC7DXgKxb9dEsQsdPXwjrRbS
# 4o4Frk+bZWKiEyi9xuk1QIQRGog71Y/DMjAxFHDfj8uCO6yUcmin7/VV78J/I2rB
# 5SbB6lAcmt37BMtSWCbgQ1tcXqLnaMV9ikRLAt0Cfnqj+mP6Cux3YusAQ9BHKHj2
# ta8j+pl86G1PYVabMXDogm9nsLNPU74VzSAgME2pqyzlBuaQ6QpjL1TucUDqqfdl
# n4ytkywlOPuDEB/TIyRWrBhZlGThutj2rwkM+Zx81KNGtV+ljLMRUSp6YZqebG8M
# NPNLbCRIFrfNw3A6BiFYFOYl0uDKJYkZ6rKPWblvA2Cc7Do3NcKJUzN9vO12So51
# NHzwu0AkY1GN69aNB3leK0a56BKnaYwmCUXNHCSdxBq7UEmwKP/VoNjigyI7xyie
# SZpYGth7XVAJLz3r+xnBJ2cRQlqTSqmcFEUH5MdEjEiK8Io1vEbZBFnx2H3lw5eC
# jRi8E3lrWn6Ine83DOd5TYAgLvPeushs3Z8wggdxMIIFWaADAgECAhMzAAAAFcXn
# a54Cm0mZAAAAAAAVMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEG
# A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj
# cm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0
# aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0yMTA5MzAxODIyMjVaFw0zMDA5MzAx
# ODMyMjVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAk
# BgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIICIjANBgkqhkiG
# 9w0BAQEFAAOCAg8AMIICCgKCAgEA5OGmTOe0ciELeaLL1yR5vQ7VgtP97pwHB9Kp
# bE51yMo1V/YBf2xK4OK9uT4XYDP/XE/HZveVU3Fa4n5KWv64NmeFRiMMtY0Tz3cy
# wBAY6GB9alKDRLemjkZrBxTzxXb1hlDcwUTIcVxRMTegCjhuje3XD9gmU3w5YQJ6
# xKr9cmmvHaus9ja+NSZk2pg7uhp7M62AW36MEBydUv626GIl3GoPz130/o5Tz9bs
# hVZN7928jaTjkY+yOSxRnOlwaQ3KNi1wjjHINSi947SHJMPgyY9+tVSP3PoFVZht
# aDuaRr3tpK56KTesy+uDRedGbsoy1cCGMFxPLOJiss254o2I5JasAUq7vnGpF1tn
# YN74kpEeHT39IM9zfUGaRnXNxF803RKJ1v2lIH1+/NmeRd+2ci/bfV+Autuqfjbs
# Nkz2K26oElHovwUDo9Fzpk03dJQcNIIP8BDyt0cY7afomXw/TNuvXsLz1dhzPUNO
# wTM5TI4CvEJoLhDqhFFG4tG9ahhaYQFzymeiXtcodgLiMxhy16cg8ML6EgrXY28M
# yTZki1ugpoMhXV8wdJGUlNi5UPkLiWHzNgY1GIRH29wb0f2y1BzFa/ZcUlFdEtsl
# uq9QBXpsxREdcu+N+VLEhReTwDwV2xo3xwgVGD94q0W29R6HXtqPnhZyacaue7e3
# PmriLq0CAwEAAaOCAd0wggHZMBIGCSsGAQQBgjcVAQQFAgMBAAEwIwYJKwYBBAGC
# NxUCBBYEFCqnUv5kxJq+gpE8RjUpzxD/LwTuMB0GA1UdDgQWBBSfpxVdAF5iXYP0
# 5dJlpxtTNRnpcjBcBgNVHSAEVTBTMFEGDCsGAQQBgjdMg30BATBBMD8GCCsGAQUF
# BwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3MvUmVwb3Np
# dG9yeS5odG0wEwYDVR0lBAwwCgYIKwYBBQUHAwgwGQYJKwYBBAGCNxQCBAweCgBT
# AHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgw
# FoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDov
# L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0
# XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0
# cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAx
# MC0wNi0yMy5jcnQwDQYJKoZIhvcNAQELBQADggIBAJ1VffwqreEsH2cBMSRb4Z5y
# S/ypb+pcFLY+TkdkeLEGk5c9MTO1OdfCcTY/2mRsfNB1OW27DzHkwo/7bNGhlBgi
# 7ulmZzpTTd2YurYeeNg2LpypglYAA7AFvonoaeC6Ce5732pvvinLbtg/SHUB2Rje
# bYIM9W0jVOR4U3UkV7ndn/OOPcbzaN9l9qRWqveVtihVJ9AkvUCgvxm2EhIRXT0n
# 4ECWOKz3+SmJw7wXsFSFQrP8DJ6LGYnn8AtqgcKBGUIZUnWKNsIdw2FzLixre24/
# LAl4FOmRsqlb30mjdAy87JGA0j3mSj5mO0+7hvoyGtmW9I/2kQH2zsZ0/fZMcm8Q
# q3UwxTSwethQ/gpY3UA8x1RtnWN0SCyxTkctwRQEcb9k+SS+c23Kjgm9swFXSVRk
# 2XPXfx5bRAGOWhmRaw2fpCjcZxkoJLo4S5pu+yFUa2pFEUep8beuyOiJXk+d0tBM
# drVXVAmxaQFEfnyhYWxz/gq77EFmPWn9y8FBSX5+k77L+DvktxW/tM4+pTFRhLy/
# AsGConsXHRWJjXD+57XQKBqJC4822rpM+Zv/Cuk0+CQ1ZyvgDbjmjJnW4SLq8CdC
# PSWU5nR0W2rRnj7tfqAxM328y+l7vzhwRNGQ8cirOoo6CGJ/2XBjU02N7oJtpQUQ
# wXEGahC0HVUzWLOhcGbyoYICzjCCAjcCAQEwgfihgdCkgc0wgcoxCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsTHE1pY3Jvc29mdCBB
# bWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOjIyNjQt
# RTMzRS03ODBDMSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNl
# oiMKAQEwBwYFKw4DAhoDFQDzLB7+IXkzx8hTZpPrJDe+c+lXk6CBgzCBgKR+MHwx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p
# Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBBQUAAgUA5oGP
# AjAiGA8yMDIyMDcyMDA0MTM1NFoYDzIwMjIwNzIxMDQxMzU0WjB3MD0GCisGAQQB
# hFkKBAExLzAtMAoCBQDmgY8CAgEAMAoCAQACAhdMAgH/MAcCAQACAhFsMAoCBQDm
# guCCAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMH
# oSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEAIEik/qc4v+Epnnf1gYai
# gl9PtdxRDbus2Xs6pnigaH00P3R3DWYicR4eZfWTcUhwp3/4NSRwF6ScTFKgi0Cw
# Zifd5svZ7WNXJup9O+HTQK1GyOYd+OTnaTcUCy1CewMqFJTfa0kAqx7UjU+p1HhU
# aJxXxaNf16MgQUTCEasVM7wxggQNMIIECQIBATCBkzB8MQswCQYDVQQGEwJVUzET
# MBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV
# TWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1T
# dGFtcCBQQ0EgMjAxMAITMwAAAZh2s4zF0AWhAQABAAABmDANBglghkgBZQMEAgEF
# AKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqGSIb3DQEJBDEi
# BCC9lmu8babTyhRTKCVDMcK8N+sfResL9qGgqR777940VDCB+gYLKoZIhvcNAQkQ
# Ai8xgeowgecwgeQwgb0EIL+mzgY5Of/3A7U2Ecz1B97SWgHeyWTDUUXev5uHbVbE
# MIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm
# MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTACEzMAAAGYdrOM
# xdAFoQEAAQAAAZgwIgQg3ZiKrXL23+CN11ChVBLO2bvqLvjdB80aUAKYCsvPqcow
# DQYJKoZIhvcNAQELBQAEggIASAaysksw/8qx/U2sQ11KeaJL0WCFB+aM4Tdolm91
# wOnWAnm0IY9MzbzeWL7ZVF28Gt8MHWaXU4xP6fln9PZWbbPIte1EXNJs3oLR+/gL
# WB+xBa3FUD1gjhNIRCbNs/oAUL2af3/by7YT5EnLxxyfx1oQjEKzpOXxdFrKBOgj
# djcAmoIhP4FK1VmpeiR+GzlvJEPb1hzTaUKHocYHSCevNdNdkNFP3pXPeT//ygi6
# G7mIPLNXvNanFc93o1z0MxqOuBh+DzetQ1sQZOt44JLLgNnsRKZ1yVSHlrHp+711
# eP/XUD0lEq52HsqPbyc9oPQMqinhBjl2xi3NAndueSLlwx323Ju6FYi1jyWdXEMI
# mMMGVZ5rj8KffZZJjOLhrTqpQaI/Ex6ptaSmNlhmYLK7B/Rzb9A3cQQkMPjErjBZ
# 6pFGdRteX/oF0qQs86hr23HNmRvVbitK7Dsryhx5e5nCpIRYRMH1seg4eyGhNC3P
# op1A5v6t+iiGCBc/fwS4fFQP2mz9lARAXUNoUQ6CPcCAgND62UpZY9ZFX0Fui0Pn
# l5dOaXQYtcL6YJGCY7yiLlyO1hMkGymoZfYrxm2FOzl2NdDS8ApG72S03coNB+ty
# kgs74ogT/mJkMfDskDlWvMO3pxxs3Vkhp+ig9K7aHm8y2968lS7/jUZZwdbFA18k
# L+c=
# c29mdCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3Bl
# cmF0aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjo4RDQxLTRC
# RjctQjNCNzElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCC
# EXgwggcnMIIFD6ADAgECAhMzAAABs/4lzikbG4ocAAEAAAGzMA0GCSqGSIb3DQEB
# CwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
# EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
# BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMB4XDTIyMDkyMDIwMjIw
# M1oXDTIzMTIxNDIwMjIwM1owgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMg
# TGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046OEQ0MS00QkY3LUIzQjcx
# JTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqG
# SIb3DQEBAQUAA4ICDwAwggIKAoICAQC0fA+65hiAriywYIKyvY3t4SUqXPQk8G62
# v+Cm9nruQ2UeqAoBbQm4oDLjHGN9UJR6/95LloRydOZ+Prd++zx6J3Qw28/3VPqv
# zX10iq9acFNji8pWNLMOd9VWdbFgHcg9hEAhM03Sw+CiWwusJgAqJ4iQQKr4Q8l8
# SdDbr5ZO+K3VRL64m7A2ccwpVhGuL+thDY/x8oglF9zGRp2PwIQ8ms36XIQ1qD+n
# CYDQkl5h1fV7CYFyeJfgGAIGqgLzfDfhKTftExKwoBTn8GVdtXIO74HpzlePIJhv
# xDH9C70QHoq8T1LvozQdyUhW1tVlPGecbCxKDZXt+YnHRE/ht8AzZnEl5UGLOLfe
# CFkeeNfj7FE5KtJJnT+P9TuBg+eGbCeXlJy2msFzscU9X4G1m/VUYNWeGrKVqbi+
# YBcB2vFDTEcbCn36K+qq11VUNTnSTktSZXr4aWZbLEglQ6HTHN9CN31ns58urTTq
# H6X2j67cCdLpF3Cw9ck/vPbuLkAf66lCuiex6ZDbtH0eTOcRrTnIfZ8p3DvWpaK8
# Q34hHW+s3qrQn3G6OOrvv637LJXBkriRc5cBDZ1Pr0PiSeoyUVKwfpq+dc1lDIlk
# yw1ZoS3euv/w2v2AYwNAYtIXGLjv1nLX1pP98fOwC27ahwG5OotXCfGtnKInro/v
# QQEko7l5AQIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFNAaXcJRZ1IMGIs4SCH/XgXc
# n8ONMB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYw
# VKBSoFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jv
# c29mdCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcB
# AQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lv
# cHMvY2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSku
# Y3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0P
# AQH/BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQBahrs3zrAJuMACXxEZiYFltLTS
# yz5OlWI+d/oQZlCArKhoI/aFzTWrYAqvox7dNxIk81YcbXilji6EzMd/XAnFCYAz
# kCB/ho7so2FVXTgmvRcepSOvdPzgWRZc9gw7i6VAbqP/793uCp7ONdpjtwOpg0JJ
# 3cXiUrHQUm5CqnHAe0wv5rhToc4N/Zn4oxiAnNZGc4iRP+h3SghfKffr7NchlEeb
# s5CKPuvKv5+ZDbd94XWkNt+FRIdMD0hPnQoKSkan8YGLAU/+bV2t3vE18iZVaBvY
# 8Fwayp0kG+PpNfYx1Qd8FVH5Z7gDSUSPWs1sKmBSg22VpH0PLaTaBXyihUR21qJn
# KHT9W1Z+5CllAkwPGBtkZUwbb67NwqmN5gA0yVIoOHJDfzBugCK/EPgApigRJuDh
# aTnGTF9HMWrKKXYMTPWknQbrGiX2dyLZd7wuQt0RPe7lEbFQdqbwvgp4xbbfz5GO
# 9ZfVEx81AjvvjOIUhks5H7vsgYVzBngWai15fXH34GD3J0RY0E/exm/24OLLCyBb
# jSTTQCbm/iL8YaJka7VrgeEjfd+aDH7xuXBHme3smKQWeA25LzeOGbxEdBB0WpC9
# sW9a67I+3PCPmrhKmM7VKQ57qugcaQSFAJRd1AydEjBucalv/YSzFp2iQryHqxFk
# xZuuI7YQItAQzMJwsDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw
# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv
# cml0eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z
# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw
# ggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg
# 4r25PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aO
# RmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41
# JmTamDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5
# LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL
# 64NF50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9
# QZpGdc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj
# 0XOmTTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqE
# UUbi0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0
# kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435
# UsSFF5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB
# 3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTE
# mr6CkTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwG
# A1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93
# d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV
# HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNV
# HQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo
# 0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29m
# dC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5j
# cmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDAN
# BgkqhkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4
# sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th54
# 2DYunKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRX
# ud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBew
# VIVCs/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0
# DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+Cljd
# QDzHVG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFr
# DZ+kKNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFh
# bHP+CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7n
# tdAoGokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+
# oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6Fw
# ZvKhggLUMIICPQIBATCCAQChgdikgdUwgdIxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
# dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046OEQ0MS00QkY3
# LUIzQjcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiIwoB
# ATAHBgUrDgMCGgMVAHGLROiW3R4SpcJCXiqAldSSJA5hoIGDMIGApH4wfDELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9z
# b2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwDQYJKoZIhvcNAQEFBQACBQDohyaLMCIY
# DzIwMjMwODE2MTg0MjE5WhgPMjAyMzA4MTcxODQyMTlaMHQwOgYKKwYBBAGEWQoE
# ATEsMCowCgIFAOiHJosCAQAwBwIBAAICN/gwBwIBAAICEX8wCgIFAOiIeAsCAQAw
# NgYKKwYBBAGEWQoEAjEoMCYwDAYKKwYBBAGEWQoDAqAKMAgCAQACAwehIKEKMAgC
# AQACAwGGoDANBgkqhkiG9w0BAQUFAAOBgQBS8GGa2hjkHqPJyp2s7rNdy2fWligg
# 8E4SfIE39EpyZ5xTHP1uMEKAbh+s/F05f9DhQ627P0JeM+vUj+3W5lx8KHWE6Ij7
# ++/XEwV2Vw2OqN8HeZa6h3561+tmv2gmDj4Wr86E8CXHBXEy3aDb63GMB1CAccma
# Zd8albzhgrzQGTGCBA0wggQJAgEBMIGTMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBD
# QSAyMDEwAhMzAAABs/4lzikbG4ocAAEAAAGzMA0GCWCGSAFlAwQCAQUAoIIBSjAa
# BgkqhkiG9w0BCQMxDQYLKoZIhvcNAQkQAQQwLwYJKoZIhvcNAQkEMSIEILpD2RlX
# 47+gs6nzhf5jdp38NEqrDBJxTNkZOokvjndVMIH6BgsqhkiG9w0BCRACLzGB6jCB
# 5zCB5DCBvQQghqEz1SoQ0ge2RtMyUGVDNo5P5ZdcyRoeijoZ++pPv0IwgZgwgYCk
# fjB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAbP+Jc4pGxuKHAAB
# AAABszAiBCBR0cG3JSQbSZnFA2Lc3STPyIht1+beyXcmLgYbusOOTDANBgkqhkiG
# 9w0BAQsFAASCAgA5dLTAAvh/o3YY/Gwu82hD6pFzyAW3cdRBghFecMcBpO2K6+Nw
# kOCE9Pcj8rhf641PaYFo6Z8qKW+J8IBsiuqe3ZCBw2QpBGaAFNmjispPwqZtdvFu
# 6D/jsPj+SAKddXw6ebYqRlf3xtYLWnesX+tmckEX7U1V+GpJu/CjmpVW7iX5i/aP
# xkneiGxnBxRqoz+uyHN9WyUGXDiWHkd61I5YmFKBOiPjX51WWVU3yHVvdeRr3u0z
# NdDp/vY347PuePAg7rUuQgFHNY5es9gOK2OtEDKhnu7hSXoyd4YBjSEku0avO2ym
# y9Sk3X/o3Mi6trX6b8LvqSS9hscgzAwfgMnjKsncP5npgbpo2xMNc1CFp3e/pgZv
# BD/+iM9MgpRSf6J2gMCZlZ0wUv2xF5Egom8Y/9k0p/OW0Q610uTTjPWRhN2MKxug
# RAXzxYfmZ//xpLKf1JxVArbDTQl/V06GANGpIqKfOH1b30XaqedW/8RXu7l0R9Lv
# QUoMoMMdmslFf5kVpshcFBzZYk30xg+8rkiKirZEl02KjXQ9fEb3bP3s25DycQGH
# hQF9+7Vg67K98hgkHxySVUAgsCnH2pS3bDIqyRD1lrqGhw2K4sHL6w6+E1qD/Jt8
# w84w+y7zmrzQa30X0Zq8RX0ap4WxXmTo6yeMnfaKI6KkDBhWw9ULs4r9Og==
# SIG # End signature block

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичный файл не отображается.

Двоичные данные
Installers/VS2017PCCommon.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2017PCEditionFilesV141.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2017PCTemplatesV141.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2019PCCommon.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2019PCCommonClangCl.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2019PCCommonV141.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2019PCEditionFilesClangCl.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2019PCEditionFilesV141.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2019PCEditionFilesV142.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2019PCTemplatesV142.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCCommon.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCCommonClangCl.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCCommonV141.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCCommonV142.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCEditionFilesClangCl.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCEditionFilesV141.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCEditionFilesV142.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCEditionFilesV143.vsix

Двоичный файл не отображается.

Двоичные данные
Installers/VS2022PCTemplatesV143.vsix

Двоичный файл не отображается.

Просмотреть файл

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9fda042f778d8051b512e7f382a53bf09b1548cc043d523549f55474c70d6b91
size 14022

Просмотреть файл

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:317bf85520e446a107de2cfda9bd2feb9f46ebe86f61ae2b708049debc496fb1
size 16353

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:c6c95b53521b03f5e0e7d7138053d9f51d6d76dae8a1ca1cecb744b17e2eb81c
size 27854
oid sha256:15f96300e615ba290ece7cf8037e915ee5f025f807bec7d95f3434ba8482acaa
size 31658

Просмотреть файл

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:29e5a5e954d4106d9214248e3a9facfe772924f8b995a73027c6db0388bab851
size 6975543

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:359250d2765cd312767605fb49dfbb8d4d70c15fb132218084b40ed26ea6c338
size 239452
oid sha256:f4ec18ab157254ac1d4a7aa2b9213f9feefb6426b159f0f40f5b770c6144a503
size 264140

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:134e52b821538e2f2f20d57bc703bd404d481838160a715cc8d63e9cf962e3f1
size 7100839
oid sha256:cb92ddd2c3bf615b0ce8129b0f7f7e1dd38d2d7dd4b4cc5a93e6d5662817ab7a
size 9841449

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:00942040a85f1dda85fda2b5be634c66ee00dd3ecda60adcd08a7fecb89fa8ff
size 109497518
oid sha256:784615c6081eef365642903dca0b42c828392d53fc4d655c05402cd35335b8fe
size 125209880

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a2568cfec48cb9dd8b2a864abfa234b3750bcd9162903c225eeb7bb173c475a1
size 7021096
oid sha256:a621d9e0c3ebd6bef64c82934f27d91cdc8437d1675178089e3667eec0562807
size 9766136

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:276cd010ef1f50f668c4f2a307a96476a9e465e8f453a8aa0fec0cc63ccb7312
size 76080
oid sha256:28abb86be0c0f8cf71a8b977a8ba9933be24b8d45df7c6e343c0a594990384fd
size 78896

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:743822370611073ac2b0715efc69aa33f1bea3f387fe6a772dc7e21fee132251
size 45056
oid sha256:6866b84000ab6d37319ce6e84b3750b56b4e12b9fb3126d67680688375644642
size 81920

Просмотреть файл

@ -1,3 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9f3924c10578a8dac745b67f9eb2d79e7e6f5c121f231242777a2cdf9d2c211c
size 4317528
oid sha256:394b1ed353bbb56d78a40b9162fb5033c37bbf96bb4b0c66baa4c82fc807b9fb
size 4826192

Двоичный файл не отображается.

Двоичные данные
Redistributable/10.1.22621.3036/GameInputRedist.msi Normal file

Двоичный файл не отображается.