mirror of
https://github.com/pbatard/Fido.git
synced 2025-09-17 14:48:02 +02:00
Compare commits
8 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
29d8150b04 | ||
![]() |
f55fd2932c | ||
![]() |
06a14ba11c | ||
![]() |
4e6f25f351 | ||
![]() |
d43d7aeee3 | ||
![]() |
d8b2d24242 | ||
![]() |
903cae2f00 | ||
![]() |
5d4a4d7d14 |
105
Fido.ps1
105
Fido.ps1
@@ -1,6 +1,6 @@
|
|||||||
#
|
#
|
||||||
# Fido v1.50 - Feature ISO Downloader, for retail Windows images and UEFI Shell
|
# Fido v1.58 - Feature ISO Downloader, for retail Windows images and UEFI Shell
|
||||||
# Copyright © 2019-2023 Pete Batard <pete@akeo.ie>
|
# Copyright © 2019-2024 Pete Batard <pete@akeo.ie>
|
||||||
# Command line support: Copyright © 2021 flx5
|
# Command line support: Copyright © 2021 flx5
|
||||||
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
|
# ConvertTo-ImageSource: Copyright © 2016 Chris Carter
|
||||||
#
|
#
|
||||||
@@ -97,6 +97,7 @@ $Signature = @{
|
|||||||
ReferencedAssemblies = $Drawing_Assembly
|
ReferencedAssemblies = $Drawing_Assembly
|
||||||
ErrorAction = "Stop"
|
ErrorAction = "Stop"
|
||||||
WarningAction = "Ignore"
|
WarningAction = "Ignore"
|
||||||
|
IgnoreWarnings = $true
|
||||||
MemberDefinition = @"
|
MemberDefinition = @"
|
||||||
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)]
|
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true, BestFitMapping = false, ThrowOnUnmappableChar = true)]
|
||||||
internal static extern int ExtractIconEx(string sFile, int iIndex, out IntPtr piLargeVersion, out IntPtr piSmallVersion, int amountIcons);
|
internal static extern int ExtractIconEx(string sFile, int iIndex, out IntPtr piLargeVersion, out IntPtr piSmallVersion, int amountIcons);
|
||||||
@@ -137,9 +138,9 @@ $WindowsVersions = @(
|
|||||||
@(
|
@(
|
||||||
@("Windows 11", "windows11"),
|
@("Windows 11", "windows11"),
|
||||||
@(
|
@(
|
||||||
"22H2 v2 (Build 22621.1702 - 2023.05)",
|
"23H2 v2 (Build 22631.2861 - 2023.12)",
|
||||||
@("Windows 11 Home/Pro/Edu", 2616),
|
@("Windows 11 Home/Pro/Edu", 2935),
|
||||||
@("Windows 11 Home China ", ($zh + 2617))
|
@("Windows 11 Home China ", ($zh + 2936))
|
||||||
)
|
)
|
||||||
),
|
),
|
||||||
@(
|
@(
|
||||||
@@ -150,19 +151,18 @@ $WindowsVersions = @(
|
|||||||
@("Windows 10 Home China ", ($zh + 2378))
|
@("Windows 10 Home China ", ($zh + 2378))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
@(
|
|
||||||
@("Windows 8.1", "windows8ISO"),
|
|
||||||
@(
|
|
||||||
"Update 3 (build 9600)",
|
|
||||||
@("Windows 8.1 Standard", 52),
|
|
||||||
@("Windows 8.1 N", 55)
|
|
||||||
@("Windows 8.1 Single Language", 48),
|
|
||||||
@("Windows 8.1 K", ($ko + 61)),
|
|
||||||
@("Windows 8.1 KN", ($ko + 62))
|
|
||||||
)
|
|
||||||
),
|
|
||||||
@(
|
@(
|
||||||
@("UEFI Shell 2.2", "UEFI_SHELL 2.2"),
|
@("UEFI Shell 2.2", "UEFI_SHELL 2.2"),
|
||||||
|
@(
|
||||||
|
"24H1 (edk2-stable202405)",
|
||||||
|
@("Release", 0),
|
||||||
|
@("Debug", 1)
|
||||||
|
),
|
||||||
|
@(
|
||||||
|
"23H2 (edk2-stable202311)",
|
||||||
|
@("Release", 0),
|
||||||
|
@("Debug", 1)
|
||||||
|
),
|
||||||
@(
|
@(
|
||||||
"23H1 (edk2-stable202305)",
|
"23H1 (edk2-stable202305)",
|
||||||
@("Release", 0),
|
@("Release", 0),
|
||||||
@@ -431,6 +431,7 @@ function Get-RandomDate()
|
|||||||
|
|
||||||
#region Globals
|
#region Globals
|
||||||
$ErrorActionPreference = "Stop"
|
$ErrorActionPreference = "Stop"
|
||||||
|
$DefaultTimeout = 30
|
||||||
$dh = 58
|
$dh = 58
|
||||||
$Stage = 0
|
$Stage = 0
|
||||||
$SelectedIndex = 0
|
$SelectedIndex = 0
|
||||||
@@ -502,8 +503,18 @@ function Check-Locale
|
|||||||
if ($Verbosity -ge 2) {
|
if ($Verbosity -ge 2) {
|
||||||
Write-Host Querying $url
|
Write-Host Querying $url
|
||||||
}
|
}
|
||||||
Invoke-WebRequest -UseBasicParsing -MaximumRedirection 0 -UserAgent $UserAgent $url | Out-Null
|
# Looks Microsoft are filtering our script according to the first query it performs with the spoofed user agent.
|
||||||
|
# So, to continue this pointless cat and mouse game, we simply add an extra first query with the default user agent.
|
||||||
|
# Also: "Hi Microsoft. You sure have A LOT OF RESOURCES TO WASTE to have assigned folks of yours to cripple scripts
|
||||||
|
# that merely exist because you have chosen to make the user experience from your download website utterly subpar.
|
||||||
|
# And while I am glad senpai noticed me (UwU), I feel compelled to ask: Don't you guys have better things to do?"
|
||||||
|
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 $url | Out-Null
|
||||||
|
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 -UserAgent $UserAgent $url | Out-Null
|
||||||
} catch {
|
} catch {
|
||||||
|
# Of course PowerShell 7 had to BREAK $_.Exception.Status on timeouts...
|
||||||
|
if ($_.Exception.Status -eq "Timeout" -or $_.Exception.GetType().Name -eq "TaskCanceledException") {
|
||||||
|
Write-Host Operation Timed out
|
||||||
|
}
|
||||||
$script:QueryLocale = "en-US"
|
$script:QueryLocale = "en-US"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -558,7 +569,7 @@ function Get-Windows-Languages([int]$SelectedVersion, [int]$SelectedEdition)
|
|||||||
Write-Host Querying $url
|
Write-Host Querying $url
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Invoke-WebRequest -UseBasicParsing -MaximumRedirection 0 -UserAgent $UserAgent $url | Out-Null
|
Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -MaximumRedirection 0 -UserAgent $UserAgent $url | Out-Null
|
||||||
} catch {
|
} catch {
|
||||||
Error($_.Exception.Message)
|
Error($_.Exception.Message)
|
||||||
return @()
|
return @()
|
||||||
@@ -577,7 +588,7 @@ function Get-Windows-Languages([int]$SelectedVersion, [int]$SelectedEdition)
|
|||||||
|
|
||||||
$script:SelectedIndex = 0
|
$script:SelectedIndex = 0
|
||||||
try {
|
try {
|
||||||
$r = Invoke-WebRequest -Method Post -UseBasicParsing -UserAgent $UserAgent -SessionVariable "Session" $url
|
$r = Invoke-WebRequest -Method Post -UseBasicParsing -TimeoutSec $DefaultTimeout -UserAgent $UserAgent -SessionVariable "Session" $url
|
||||||
if ($r -match "errorModalMessage") {
|
if ($r -match "errorModalMessage") {
|
||||||
Throw-Error -Req $r -Alt "Could not retrieve languages from server"
|
Throw-Error -Req $r -Alt "Could not retrieve languages from server"
|
||||||
}
|
}
|
||||||
@@ -667,7 +678,7 @@ function Get-Windows-Download-Links([int]$SelectedVersion, [int]$SelectedRelease
|
|||||||
$Is64 = [Environment]::Is64BitOperatingSystem
|
$Is64 = [Environment]::Is64BitOperatingSystem
|
||||||
# Must add a referer for this request, else Microsoft's servers will deny it
|
# Must add a referer for this request, else Microsoft's servers will deny it
|
||||||
$ref = "https://www.microsoft.com/software-download/windows11"
|
$ref = "https://www.microsoft.com/software-download/windows11"
|
||||||
$r = Invoke-WebRequest -Method Post -Headers @{ "Referer" = $ref } -UseBasicParsing -UserAgent $UserAgent -WebSession $Session $url
|
$r = Invoke-WebRequest -Method Post -Headers @{ "Referer" = $ref } -UseBasicParsing -TimeoutSec $DefaultTimeout -UserAgent $UserAgent -WebSession $Session $url
|
||||||
if ($r -match "errorModalMessage") {
|
if ($r -match "errorModalMessage") {
|
||||||
$Alt = [regex]::Match($r.Content, '<p id="errorModalMessage">(.+?)<\/p>').Groups[1].Value -replace "<[^>]+>" -replace "\s+", " " -replace "\?\?\?", "-"
|
$Alt = [regex]::Match($r.Content, '<p id="errorModalMessage">(.+?)<\/p>').Groups[1].Value -replace "<[^>]+>" -replace "\s+", " " -replace "\?\?\?", "-"
|
||||||
$Alt = [System.Text.Encoding]::UTF8.GetString([byte[]][char[]]$Alt)
|
$Alt = [System.Text.Encoding]::UTF8.GetString([byte[]][char[]]$Alt)
|
||||||
@@ -720,7 +731,7 @@ function Process-Download-Link([string]$Url)
|
|||||||
$pattern = '.*\/(.*\.iso).*'
|
$pattern = '.*\/(.*\.iso).*'
|
||||||
$File = [regex]::Match($Url, $pattern).Groups[1].Value
|
$File = [regex]::Match($Url, $pattern).Groups[1].Value
|
||||||
# PowerShell implicit conversions are iffy, so we need to force them...
|
# PowerShell implicit conversions are iffy, so we need to force them...
|
||||||
$str_size = (Invoke-WebRequest -UseBasicParsing -Uri $Url -Method Head).Headers.'Content-Length'
|
$str_size = (Invoke-WebRequest -UseBasicParsing -TimeoutSec $DefaultTimeout -Uri $Url -Method Head).Headers.'Content-Length'
|
||||||
$tmp_size = [uint64]::Parse($str_size)
|
$tmp_size = [uint64]::Parse($str_size)
|
||||||
$Size = Size-To-Human-Readable $tmp_size
|
$Size = Size-To-Human-Readable $tmp_size
|
||||||
Write-Host "Downloading '$File' ($Size)..."
|
Write-Host "Downloading '$File' ($Size)..."
|
||||||
@@ -1053,8 +1064,8 @@ exit $ExitCode
|
|||||||
# SIG # Begin signature block
|
# SIG # Begin signature block
|
||||||
# MIIkWQYJKoZIhvcNAQcCoIIkSjCCJEYCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
# MIIkWQYJKoZIhvcNAQcCoIIkSjCCJEYCAQExDzANBglghkgBZQMEAgEFADB5Bgor
|
||||||
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
|
||||||
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDGtmQ3n2+aDS3/
|
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAo88a5qfFR5eNa
|
||||||
# QYCl5G5W0g17so4OQ4o2zs/2W6PNjaCCElkwggVvMIIEV6ADAgECAhBI/JO0YFWU
|
# dlaOq6jGKATitcy/nhPuLUO1tQvOwaCCElkwggVvMIIEV6ADAgECAhBI/JO0YFWU
|
||||||
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
# jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI
|
||||||
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
|
# DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM
|
||||||
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
|
# EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy
|
||||||
@@ -1157,23 +1168,23 @@ exit $ExitCode
|
|||||||
# aWMgQ29kZSBTaWduaW5nIENBIEVWIFIzNgIRAL+xUAG79ZLUlip3l+pzb6MwDQYJ
|
# aWMgQ29kZSBTaWduaW5nIENBIEVWIFIzNgIRAL+xUAG79ZLUlip3l+pzb6MwDQYJ
|
||||||
# YIZIAWUDBAIBBQCgfDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYK
|
# YIZIAWUDBAIBBQCgfDAQBgorBgEEAYI3AgEMMQIwADAZBgkqhkiG9w0BCQMxDAYK
|
||||||
# KwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG
|
# KwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkqhkiG
|
||||||
# 9w0BCQQxIgQgqI1odhSqONJF2lRMdXu4ORCaEGil+U1oiTim+axMgQswDQYJKoZI
|
# 9w0BCQQxIgQguDL5MXYdL6IDFqZBhsLxG4JV8I69ABIQ0PYikjy0JvYwDQYJKoZI
|
||||||
# hvcNAQEBBQAEggIAiXrNq3R4DHXMlP2rZhQ1rM8iKtYSd/VEn4L4BOzx0lHsZuHB
|
# hvcNAQEBBQAEggIAqimddGz8aEGedWHSXJfgvQh1S2iZE9qA4rTXWwLQi8yIP84h
|
||||||
# kkyh032NuzYTqjM2An4nzx5wsoepygyZ9MxXvVls3TaQyH5f0xRyXCluBEEEClLu
|
# 0BLiMasx7gcqWWjNv2PC1oM3bf4kO2MmKJNH3QlWuiqgrFNoirIfkfj8egll9rky
|
||||||
# 6jxFD94rKc1oKDsvN/w+6dZd1XDphJPbJWkne83/0VbEVUw92+mH9Xf3S1FmTStS
|
# mzm3c3OQyiYUaOEUssmyIuzazJh4XSLNoGzcinm0EguHmQZlL4FbXtMRnHhjUFvt
|
||||||
# sRJ4IND5oNnDB1LJuVQZfY9FM5Fxs/uy/uukV3y2pTfwvrkZK40Q5G26cSv8K657
|
# OG2Qr5p97rUzmllMZ4Q89lrcvYXZjO2pPIQirmwnOclCJ2dHSSKnRhUu5/H3Ks5n
|
||||||
# dmZG1mo3hoqUZn7t9Bv8dmodHHLAC9dYH8rqV4fRKtBrBi6cZJgYxI+Nj9aGYMpu
|
# eE9Tra9NVvlnSHWbtgIZUPj+1UlKkm0o4E59aTxTvq12rzMA6Hj+67b1Ev6AC7fB
|
||||||
# wV+ue9FsFG9NoDKSEnM9W7BaEsGIa+EvBfs7qgwnAGkXC1UmeNQZ8vgUTnw2XsNH
|
# qXfDJuGm7zBxeR7KnrEA7uuUfzbeKpH6QviCUJANugnCfYhpmMqKZjBGVVulm6EQ
|
||||||
# sGdCcMqk94xJxl/EKQqKGuL18A/9h4SqXzI6gmsYoHgSYzwbMLmtUqmAd2zJso2L
|
# ABlCHw8B+yPYE5jUsqsfyiTd4iiPXuZlDYV+HJ+3fzYm9B19XEP8E7RFfCKzoDIX
|
||||||
# ms37ru7S0ER/r+qGisGHIGz52JLB5+7EpiUgN6U5NLlRgHONuPyU57ZdmezVZTor
|
# Kw18dEJeIqlbQuAr8jX7hpdsESd8RDarN5kUZANLgeF3bvBMXN3z9mKempZbWPUT
|
||||||
# /LkjB9gyFcK5Lxw/sVWW1Naug94zk8nLRoMwHZK3L360otRCOdXikNoerjPAJC9W
|
# t94NioYTa2Ou+i7eLEGHhVm8FM7WcO3Ux03Ikf27d7b+H+RSwYOVqX0eBhX5xF90
|
||||||
# ghkn1+4NapO0tx4VkX9qJlodr9hGoLSLgEhLHAAjhAClm6mYDXze5k9koRgHdNTO
|
# xZs0TbLwup/GrdjEm9Rsr5GBt5rTi3vIVUBEdz/Uu0CmtRuBQBSXNqNZgkOB1v5z
|
||||||
# jHUYgiXKdfAvYm7Iypyu4u94+9/Il/vhesT9pdOuMptEmGTc0XoXHE0q0QOhgg49
|
# c4+9Mbg+KbJbULyKdjgz+ZCKGRu5/tqoksORzsncSUaNJ/DSCYeQ80SKjvihgg49
|
||||||
# MIIOOQYKKwYBBAGCNwMDATGCDikwgg4lBgkqhkiG9w0BBwKggg4WMIIOEgIBAzEN
|
# MIIOOQYKKwYBBAGCNwMDATGCDikwgg4lBgkqhkiG9w0BBwKggg4WMIIOEgIBAzEN
|
||||||
# MAsGCWCGSAFlAwQCATCCAQ8GCyqGSIb3DQEJEAEEoIH/BIH8MIH5AgEBBgtghkgB
|
# MAsGCWCGSAFlAwQCATCCAQ8GCyqGSIb3DQEJEAEEoIH/BIH8MIH5AgEBBgtghkgB
|
||||||
# hvhFAQcXAzAxMA0GCWCGSAFlAwQCAQUABCCGTHEH/YFvwzN9ftG5vgGNcw48oXKB
|
# hvhFAQcXAzAxMA0GCWCGSAFlAwQCAQUABCDBwVes9QlIOm3aoB0Wu8/YI1CBP4i7
|
||||||
# vSWgr6uJhhd/sAIVALFP5vbHzozqF47S9d7MZCpSHSvJGA8yMDIzMDYwNjEyNDgz
|
# 9xX6nwTWTu/8dgIVANtPA2A+Sj3OsOMYxXGMj29NuOmkGA8yMDI0MDcwODExMzI1
|
||||||
# OFowAwIBHqCBhqSBgzCBgDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVj
|
# NFowAwIBHqCBhqSBgzCBgDELMAkGA1UEBhMCVVMxHTAbBgNVBAoTFFN5bWFudGVj
|
||||||
# IENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEw
|
# IENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBUcnVzdCBOZXR3b3JrMTEw
|
||||||
# LwYDVQQDEyhTeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIFNpZ25lciAtIEcz
|
# LwYDVQQDEyhTeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1waW5nIFNpZ25lciAtIEcz
|
||||||
# oIIKizCCBTgwggQgoAMCAQICEHsFsdRJaFFE98mJ0pwZnRIwDQYJKoZIhvcNAQEL
|
# oIIKizCCBTgwggQgoAMCAQICEHsFsdRJaFFE98mJ0pwZnRIwDQYJKoZIhvcNAQEL
|
||||||
@@ -1236,13 +1247,13 @@ exit $ExitCode
|
|||||||
# BgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBU
|
# BgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMR8wHQYDVQQLExZTeW1hbnRlYyBU
|
||||||
# cnVzdCBOZXR3b3JrMSgwJgYDVQQDEx9TeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1w
|
# cnVzdCBOZXR3b3JrMSgwJgYDVQQDEx9TeW1hbnRlYyBTSEEyNTYgVGltZVN0YW1w
|
||||||
# aW5nIENBAhB71OWvuswHP6EBIwQiQU0SMAsGCWCGSAFlAwQCAaCBpDAaBgkqhkiG
|
# aW5nIENBAhB71OWvuswHP6EBIwQiQU0SMAsGCWCGSAFlAwQCAaCBpDAaBgkqhkiG
|
||||||
# 9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTIzMDYwNjEyNDgz
|
# 9w0BCQMxDQYLKoZIhvcNAQkQAQQwHAYJKoZIhvcNAQkFMQ8XDTI0MDcwODExMzI1
|
||||||
# OFowLwYJKoZIhvcNAQkEMSIEIEhEOEtGrZEgb+EarYUzmFPk8jBv87RW0Uj0gh2x
|
# NFowLwYJKoZIhvcNAQkEMSIEIG/gQQhpzPfxlpm/2tdmW6X9awf2Czk8/cxR7UCg
|
||||||
# BtS/MDcGCyqGSIb3DQEJEAIvMSgwJjAkMCIEIMR0znYAfQI5Tg2l5N58FMaA+eKC
|
# 43d7MDcGCyqGSIb3DQEJEAIvMSgwJjAkMCIEIMR0znYAfQI5Tg2l5N58FMaA+eKC
|
||||||
# ATz+9lPvXbcf32H4MAsGCSqGSIb3DQEBAQSCAQCGb3w7mUJobd+bURtqSY0Fn1zv
|
# ATz+9lPvXbcf32H4MAsGCSqGSIb3DQEBAQSCAQCCag3lcuzdiyncWrIwSqi4eLMA
|
||||||
# SMe/Sf2G9CSCHx90UFHL7jfcamMFBteqepXSWNfwCGWnLKn4lhxLXNpT2f680a+H
|
# lg4Yqhxm2ws63eTEN9jYdQlOqgLE2fVhykqKwfUqm29RSPsK0twBhVxUSl+779Fd
|
||||||
# N0xwU5xE7Wgmg6GGNIkioHANFIegJXLtqixVrZnUWzRCN5gURghv0G9pAVooPyAs
|
# r2M1C4t5z6SDKrpJQSb0dKvRG6VD5FFwU43XITJFtKXsu9EcM9SizV1fk6/DUUEw
|
||||||
# yzg7GfiPQdDf4MK+9uELA0yPZ23ZZTdYxbuaANHCqKnpcZ5ikZsuxak85KiVYOtu
|
# 1uFPptTjB6god6UJb18em84DS11lFVfc1R5nTqmNdJ4PQLM3U0wqjR4vfQkCW+0u
|
||||||
# T09ckT0Nf20qGM063ZRi3IbkT/k6OpwgO37lr386GqoFBmfKwXWycwxOPqk/VBZC
|
# diqsdHIkLXzvzK8uPU4IgfN14O20gxwB7L1n8roe/ibil8elFUwHICC44ddHGYsd
|
||||||
# aCsViePV7elq6z5utgEK+slrPS5sdgheVB/uJh27Y5zt4134VoHSNHxgbCZA
|
# SN66NREeU82z+4vis38lWzIajhuGNaXa/kSDB31yL431CgPtW+RxMj4D/DvM
|
||||||
# SIG # End signature block
|
# SIG # End signature block
|
||||||
|
Reference in New Issue
Block a user