BackupUtilities.psm1

function Disable-InternetExplorerESC {
    $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
    $UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"

    if ( (Get-ItemProperty -Path $AdminKey).IsInstalled -eq "1" ) {
        Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 0
        Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 0
        Stop-Process -Name Explorer -Force
        Write-Host "IE Enhanced Security Configuration (ESC) has been disabled." -ForegroundColor Green
    }
}
function Enable-InternetExplorerESC {
    $AdminKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A7-37EF-4b3f-8CFC-4F3A74704073}"
    $UserKey = "HKLM:\SOFTWARE\Microsoft\Active Setup\Installed Components\{A509B1A8-37EF-4b3f-8CFC-4F3A74704073}"

    if ( (Get-ItemProperty -Path $AdminKey).IsInstalled -eq "0" ) {
        Set-ItemProperty -Path $AdminKey -Name "IsInstalled" -Value 1
        Set-ItemProperty -Path $UserKey -Name "IsInstalled" -Value 1
        Stop-Process -Name Explorer -force
        Write-Host "IE Enhanced Security Configuration (ESC) has been enabled." -ForegroundColor Green
    }
}
function Disable-UserAccessControl {
    Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" -Name "ConsentPromptBehaviorAdmin" -Value 00000000
    Write-Host "User Access Control (UAC) has been disabled." -ForegroundColor Green    
}

# copy and run the backup client install file to download the server
function Install-BackupClientOnWindowsMachine($dLink, $bForceRedownload = $false, $bInstallClient = $false)
{
    $dest = "$env:HOMEDRIVE\$env:HOMEPATH\Desktop\CloudBackupInstaller.msi"

    if($dLink -eq $null) {
        Write-Host "Downloading link is null - cannot get Cloud Backup client for download and install" -ForegroundColor Red
        return
    }

    if( (Get-Command $dest) -eq $null -or $bForceRedownload -eq $true) {
        Write-Host "Downloading Cloud Backup Client ... " -NoNewline

        $client = new-object System.Net.WebClient
        $client.DownloadFile( $dLink, $dest)

        Write-Host "Done!" -ForegroundColor Green
    }

    if($bInstallClient -eq $true) {

        $apps = (Get-WmiObject -Class win32_product |where { $_.Name -like "*Cloud Backup*"})

        if ($apps -eq $null) {
            Write-Host "Installing Cloud Backup client..." -NoNewline
            & msiexec /i $dest /qn
            Write-Host "Done!" -ForegroundColor Green
        } else { 
            Write-Host "Cloud Backup is already installed ... not going to re-install. You will need to remove the client and add it back to re-install"
        }
    }
}
function Install-BackupClient {
    param (
        [string] $publicIp,
        [System.Management.Automation.PSCredential] $credential,
        [string] $dLink #Download link
        )
        $Global:cred = $credential
        $s = New-PSSession -Computername $publicIp -Credential $Global:cred -Authentication Default -ErrorAction SilentlyContinue

        #If starting PS session fails - Enable PS PSRemoting and rety
        if($s -eq $null) {
            & PsExec.exe -u $windowLocalAdminUser -p $adminPassword \\$publicIp cmd /c 'echo . | powershell.exe -command "Enable-PSRemoting -Force ;Set-Item wsman:\localhost\client\trustedhosts * ;Restart-Service WinRM; exit 100"'
            $s = New-PSSession -Computername $publicIp -Credential $Global:cred -Authentication Default -ErrorAction SilentlyContinue
            if($s -eq $null) {
                Write-Host "Cannot enable PSRemoting on machine ... Skipping config on machine " -ForegroundColor Red
                break
            }
        }

        $s = New-PSSession -Computername $publicIp -Credential $Global:cred -Authentication Default -ErrorAction SilentlyContinue
        
        #Disable IE Enhanced security to allow download of backup client etc.
        Invoke-Command -Session $s -ScriptBlock ${function:Disable-InternetExplorerESC} -Debug
        Invoke-Command -Session $s -ScriptBlock ${function:Install-BackupClientOnWindowsMachine} -ArgumentList $dLink, $false, $true -ErrorVariable errorText
        
        Write-Host "Done processing windows machine: $vmName"
}

Export-ModuleMember -Function Disable-UserAccessControl, Install-BackupClientOnWindowsMachine, Install-BackupClient, Enable-AutoAdminLogon, Disable-UserAccessControl, Disable-InternetExplorerESC, Enable-InternetExplorerESC
# SIG # Begin signature block
# MIIYqgYJKoZIhvcNAQcCoIIYmzCCGJcCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQUrXCFXeQ0oimBBg6F+XFslKH1
# iTOgghPaMIID7jCCA1egAwIBAgIQfpPr+3zGTlnqS5p31Ab8OzANBgkqhkiG9w0B
# AQUFADCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIG
# A1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhh
# d3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcg
# Q0EwHhcNMTIxMjIxMDAwMDAwWhcNMjAxMjMwMjM1OTU5WjBeMQswCQYDVQQGEwJV
# UzEdMBsGA1UEChMUU3ltYW50ZWMgQ29ycG9yYXRpb24xMDAuBgNVBAMTJ1N5bWFu
# dGVjIFRpbWUgU3RhbXBpbmcgU2VydmljZXMgQ0EgLSBHMjCCASIwDQYJKoZIhvcN
# AQEBBQADggEPADCCAQoCggEBALGss0lUS5ccEgrYJXmRIlcqb9y4JsRDc2vCvy5Q
# WvsUwnaOQwElQ7Sh4kX06Ld7w3TMIte0lAAC903tv7S3RCRrzV9FO9FEzkMScxeC
# i2m0K8uZHqxyGyZNcR+xMd37UWECU6aq9UksBXhFpS+JzueZ5/6M4lc/PcaS3Er4
# ezPkeQr78HWIQZz/xQNRmarXbJ+TaYdlKYOFwmAUxMjJOxTawIHwHw103pIiq8r3
# +3R8J+b3Sht/p8OeLa6K6qbmqicWfWH3mHERvOJQoUvlXfrlDqcsn6plINPYlujI
# fKVOSET/GeJEB5IL12iEgF1qeGRFzWBGflTBE3zFefHJwXECAwEAAaOB+jCB9zAd
# BgNVHQ4EFgQUX5r1blzMzHSa1N197z/b7EyALt0wMgYIKwYBBQUHAQEEJjAkMCIG
# CCsGAQUFBzABhhZodHRwOi8vb2NzcC50aGF3dGUuY29tMBIGA1UdEwEB/wQIMAYB
# Af8CAQAwPwYDVR0fBDgwNjA0oDKgMIYuaHR0cDovL2NybC50aGF3dGUuY29tL1Ro
# YXd0ZVRpbWVzdGFtcGluZ0NBLmNybDATBgNVHSUEDDAKBggrBgEFBQcDCDAOBgNV
# HQ8BAf8EBAMCAQYwKAYDVR0RBCEwH6QdMBsxGTAXBgNVBAMTEFRpbWVTdGFtcC0y
# MDQ4LTEwDQYJKoZIhvcNAQEFBQADgYEAAwmbj3nvf1kwqu9otfrjCR27T4IGXTdf
# plKfFo3qHJIJRG71betYfDDo+WmNI3MLEm9Hqa45EfgqsZuwGsOO61mWAK3ODE2y
# 0DGmCFwqevzieh1XTKhlGOl5QGIllm7HxzdqgyEIjkHq3dlXPx13SYcqFgZepjhq
# IhKjURmDfrYwggSjMIIDi6ADAgECAhAOz/Q4yP6/NW4E2GqYGxpQMA0GCSqGSIb3
# DQEBBQUAMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRlYyBDb3Jwb3Jh
# dGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBTZXJ2aWNlcyBD
# QSAtIEcyMB4XDTEyMTAxODAwMDAwMFoXDTIwMTIyOTIzNTk1OVowYjELMAkGA1UE
# BhMCVVMxHTAbBgNVBAoTFFN5bWFudGVjIENvcnBvcmF0aW9uMTQwMgYDVQQDEytT
# eW1hbnRlYyBUaW1lIFN0YW1waW5nIFNlcnZpY2VzIFNpZ25lciAtIEc0MIIBIjAN
# BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAomMLOUS4uyOnREm7Dv+h8GEKU5Ow
# mNutLA9KxW7/hjxTVQ8VzgQ/K/2plpbZvmF5C1vJTIZ25eBDSyKV7sIrQ8Gf2Gi0
# jkBP7oU4uRHFI/JkWPAVMm9OV6GuiKQC1yoezUvh3WPVF4kyW7BemVqonShQDhfu
# ltthO0VRHc8SVguSR/yrrvZmPUescHLnkudfzRC5xINklBm9JYDh6NIipdC6Anqh
# d5NbZcPuF3S8QYYq3AhMjJKMkS2ed0QfaNaodHfbDlsyi1aLM73ZY8hJnTrFxeoz
# C9Lxoxv0i77Zs1eLO94Ep3oisiSuLsdwxb5OgyYI+wu9qU+ZCOEQKHKqzQIDAQAB
# o4IBVzCCAVMwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcDCDAO
# BgNVHQ8BAf8EBAMCB4AwcwYIKwYBBQUHAQEEZzBlMCoGCCsGAQUFBzABhh5odHRw
# Oi8vdHMtb2NzcC53cy5zeW1hbnRlYy5jb20wNwYIKwYBBQUHMAKGK2h0dHA6Ly90
# cy1haWEud3Muc3ltYW50ZWMuY29tL3Rzcy1jYS1nMi5jZXIwPAYDVR0fBDUwMzAx
# oC+gLYYraHR0cDovL3RzLWNybC53cy5zeW1hbnRlYy5jb20vdHNzLWNhLWcyLmNy
# bDAoBgNVHREEITAfpB0wGzEZMBcGA1UEAxMQVGltZVN0YW1wLTIwNDgtMjAdBgNV
# HQ4EFgQURsZpow5KFB7VTNpSYxc/Xja8DeYwHwYDVR0jBBgwFoAUX5r1blzMzHSa
# 1N197z/b7EyALt0wDQYJKoZIhvcNAQEFBQADggEBAHg7tJEqAEzwj2IwN3ijhCcH
# bxiy3iXcoNSUA6qGTiWfmkADHN3O43nLIWgG2rYytG2/9CwmYzPkSWRtDebDZw73
# BaQ1bHyJFsbpst+y6d0gxnEPzZV03LZc3r03H0N45ni1zSgEIKOq8UvEiCmRDoDR
# EfzdXHZuT14ORUZBbg2w6jiasTraCXEQ/Bx5tIB7rGn0/Zy2DBYr8X9bCT2bW+IW
# yhOBbQAuOA2oKY8s4bL0WqkBrxWcLC9JG9siu8P+eJRRw4axgohd8D20UaF5Mysu
# e7ncIAkTcetqGVvP6KUwVyyJST+5z3/Jvz4iaGNTmr1pdKzFHTx/kuDDvBzYBHUw
# ggVVMIIEPaADAgECAhAZnFSi8BumZiG+pRQPKuBjMA0GCSqGSIb3DQEBCwUAMHUx
# CzAJBgNVBAYTAklMMRYwFAYDVQQKEw1TdGFydENvbSBMdGQuMSkwJwYDVQQLEyBT
# dGFydENvbSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEjMCEGA1UEAxMaU3RhcnRD
# b20gQ2xhc3MgMyBPYmplY3QgQ0EwHhcNMTYwNTEwMTI1OTEwWhcNMTkwNTEwMTI1
# OTEwWjCBtDELMAkGA1UEBhMCQVUxGDAWBgNVBAgMD05ldyBTb3V0aCBXYWxlczET
# MBEGA1UEBwwKTm9ydGggUnlkZTE6MDgGA1UECgwxRGltZW5zaW9uIERhdGEgQ2xv
# dWQgU29sdXRpb25zIEF1c3RyYWxpYSAgUHR5IEx0ZDE6MDgGA1UEAwwxRGltZW5z
# aW9uIERhdGEgQ2xvdWQgU29sdXRpb25zIEF1c3RyYWxpYSAgUHR5IEx0ZDCCASIw
# DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJtfTuC/tMC88Lf4OAQFxXaayecm
# OjfscmofQ1otTdevac18+gSeQRkx2pry+Lhl++N7gru2ppA4h+PbZ7DWfiqg9m+I
# 6pCObycTyH2TGukQoyyN3Mab8wslf1PFlDCutt8X3s+zMBK4aF7WUXfC6hyj7+gG
# wYYthFxwG8DdorQG9K7Sb32rNB/pHCPJK1l48/c5rNf82tvBvXHtxOF7K8JnSsGu
# 7eIWMQTd2xlE4bWWmS5boWG5GKHDgUfZzH5erELzb4FVkt4AohvuetqUf5X4vMke
# NlgX8Izuaqt3WKP+x1qc26GXCsSqEOMym/32PpZEz1xk8TJW6n2v33yfHasCAwEA
# AaOCAZ8wggGbMA4GA1UdDwEB/wQEAwIHgDAfBgNVHSUEGDAWBggrBgEFBQcDAwYK
# KwYBBAGCNz0BATAJBgNVHRMEAjAAMB0GA1UdDgQWBBTzVBHm0J4ukwIYOSAhaFoi
# +Z/GlzAfBgNVHSMEGDAWgBRmep7NnHOGammgrvqMuxiPCOzVBDBtBggrBgEFBQcB
# AQRhMF8wJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLnN0YXJ0c3NsLmNvbTA3Bggr
# BgEFBQcwAoYraHR0cDovL2FpYS5zdGFydHNzbC5jb20vY2VydHMvc2NhLmNvZGUz
# LmNydDA2BgNVHR8ELzAtMCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0c3NsLmNvbS9z
# Y2EtY29kZTMuY3JsMCMGA1UdEgQcMBqGGGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t
# LzBRBgNVHSAESjBIMAgGBmeBDAEEATA8BgsrBgEEAYG1NwECBTAtMCsGCCsGAQUF
# BwIBFh9odHRwczovL3d3dy5zdGFydHNzbC5jb20vcG9saWN5MA0GCSqGSIb3DQEB
# CwUAA4IBAQAcYrJlTw1qfkeSnfza/7j43xL7CwJRU2k+1D9vOwzDOv/EE5msTGD3
# pC6vmoItN88a+gHZz+AD25rSYvjS0D+i8vf8iD3a9OhCMA7njSWSaDC80jKKg8hH
# 7LSrx3YtKvlCG5hwQalgh4UdnarKs4TdQvY50Kz5uYEi60AD4Q1U7KkeMeuE/ZT0
# Q12KIoYIBnyKxmxlA4i2cWr4ECNIUe4PIDCskUrqtnMkudKSvKrYcrwB+uqSdDfP
# 9IWEIrEh4MuAEQUeKLMeSVl3T/bZxNLjU/ZazPDQDGJiYF7s8oc718gizggmGc5V
# Eev41dBSnTtQH8NN9fQgAQAhXldGpCLZMIIF5DCCA8ygAwIBAgIQeCJDoVPfKAof
# +uFc0ChMhjANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN
# U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNh
# dGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRo
# b3JpdHkwHhcNMTUxMjE2MDEwMDA1WhcNMzAxMjE2MDEwMDA1WjB1MQswCQYDVQQG
# EwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjEpMCcGA1UECxMgU3RhcnRDb20g
# Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIzAhBgNVBAMTGlN0YXJ0Q29tIENsYXNz
# IDMgT2JqZWN0IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Gwl
# NhRkXHnNYZgCnwWVUbzIQGbKV1cyk2WgVbvCet+v/uVVKDJn5mMvwu9lwMHmd+1N
# pKW93kwI4lb1aUwgJGSwtL/a+jlv8Gw6MizkD2PwVK3R9qvia0TR2W7mZDf7qFuf
# a2CNb6bpqSyoPKawAgABb80UoKzKsOWo05q6NeR+Z2lt7SR5mop8MPDsOgdnKA/1
# 7opoOfSly6F6Jg1r5P5yqWtXxPDexmbM/LG/+K1IKJHcb7Kj0soNnBUV9GP+2kAm
# EUCh0cTD1LCdrYVFiWkDVNmD3dBIQN67oeNNH0Ak8cDgjhJGGwgvku4ZZWG7FPWF
# fakuYpIvaY8AJXd61wIDAQABo4IBZjCCAWIwDgYDVR0PAQH/BAQDAgEGMB8GA1Ud
# JQQYMBYGCCsGAQUFBwMDBgorBgEEAYI3PQEBMBIGA1UdEwEB/wQIMAYBAf8CAQAw
# MgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC5zdGFydHNzbC5jb20vc2ZzY2Eu
# Y3JsMGYGCCsGAQUFBwEBBFowWDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3Auc3Rh
# cnRzc2wuY29tMDAGCCsGAQUFBzAChiRodHRwOi8vYWlhLnN0YXJ0c3NsLmNvbS9j
# ZXJ0cy9jYS5jcnQwHQYDVR0OBBYEFGZ6ns2cc4ZqaaCu+oy7GI8I7NUEMB8GA1Ud
# IwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQQa7yMD8GA1UdIAQ4MDYwNAYEVR0gADAs
# MCoGCCsGAQUFBwIBFh5odHRwOi8vd3d3LnN0YXJ0c3NsLmNvbS9wb2xpY3kwDQYJ
# KoZIhvcNAQELBQADggIBAAsfd/CktuaSBfVH8XRzpWAat6GYrrqAmfG4ltT6I+nK
# YwWCCACvlMwhOVPVUZhoAcDg9lO+WBGYvdmuEeef79MjTcxnK3heW5WbSqO7TDRH
# 4Sl5RkfJxdMornUbwmO9+f27UaeyApNAU156nWn5/jQu9BqLbAtCAInhJy+ohQrn
# 7YUm9LjI066Bl6M3LDjl25dTJa6QFqEbZ9AVxbrJm6+MceHup8CLYPK/XDoV4l4c
# 0/+0+Fh1ArptEoMz/8QMXJdj/7ERZoFEQMMjwPYclW8nynQAhlBq080GIXsB2I9J
# lUFjCFcGv2fs3A6sWSoBG8eZ5yt1DWEjBIxS0i68e1FQkqKfonh0lYOe87eWWcqu
# Ediem7hKDMLoOTYoZummdtrE/zHisl2NaSSKW1h9i6/SjLxSMQ8dkC+WqEaadzar
# mS9VzQ21eAPkiKkTzHJtesj2d3m4Ss+FHh5K+C5HLlo26y4X/9t1wH2UaEwzdXZD
# ItGAAFeHfhPB8FVK8uufBOGoLTq3rqeJfLGoD/3yJp3w90Ad9KTJEEww3GTQtVIR
# N8n8W1Umvom9Y99CBHF6T4vyzqzD9tvgmvoucIJCNoKGgMWufQJ69GAOyh0wltsU
# 9OhMmTyyA44rUPeZY4CEsvUbvrkMPzTK3Nf9o45cDnB+lBNPMhv/pI9cdfWcpFjJ
# MYIEOjCCBDYCAQEwgYkwdTELMAkGA1UEBhMCSUwxFjAUBgNVBAoTDVN0YXJ0Q29t
# IEx0ZC4xKTAnBgNVBAsTIFN0YXJ0Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
# MSMwIQYDVQQDExpTdGFydENvbSBDbGFzcyAzIE9iamVjdCBDQQIQGZxUovAbpmYh
# vqUUDyrgYzAJBgUrDgMCGgUAoHgwGAYKKwYBBAGCNwIBDDEKMAigAoAAoQKAADAZ
# BgkqhkiG9w0BCQMxDAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYB
# BAGCNwIBFTAjBgkqhkiG9w0BCQQxFgQUlwfHbyt7m8UOQlJBwo6Ng8kCvW0wDQYJ
# KoZIhvcNAQEBBQAEggEAX2QCylpEXAjweiOMyfAnPLN46WfQgsSke07xakYV1cZw
# 9YABT0sbGljoEP2QnBJwybUpVJi0+5KBWX4TWgUIydfjnwXu/8KIhPCs2TZI6P1D
# xME0iv9slcIkFS6cjB3rHb8oqnLqMLqdyS6r/Q1gY5H9oJtI6iXSVGRFbt6/J5/3
# n2AYcPrMHplDrlTSfZkihQUA+7r3LxK3Lgr0c5eNNIWSVeo0AjEdnZVyG4bD5lmi
# URq1fvFnZJto9sDpjy0e+uwjp87ZIDgEIuVmFzya60JK62BJycPx4XMjt1aMTnc3
# JaI1vFLSQa28lv/fOayhWNS2G3KTh7phm/ZgTuGlUaGCAgswggIHBgkqhkiG9w0B
# CQYxggH4MIIB9AIBATByMF4xCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRTeW1hbnRl
# YyBDb3Jwb3JhdGlvbjEwMC4GA1UEAxMnU3ltYW50ZWMgVGltZSBTdGFtcGluZyBT
# ZXJ2aWNlcyBDQSAtIEcyAhAOz/Q4yP6/NW4E2GqYGxpQMAkGBSsOAwIaBQCgXTAY
# BgkqhkiG9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xNzA0MDUw
# MjM4MDBaMCMGCSqGSIb3DQEJBDEWBBSFzrmMIXmRnbZgF/w5jd9V3Y5DsDANBgkq
# hkiG9w0BAQEFAASCAQCbIVoBBBDERffAykXUSqngWoK2YRkV1V2CsM1J0+iV+eo9
# iaBmaykhMGyXxatLnTXvnLf7viMaiy9RdDcs9k0+MZS8nsbecgBEXTCtMzOG5mK+
# dOQ1l67U47OuoPemoraUJxVjyCHuWtgJF30ePV1vyfDk14gsqStcluapW9n7Z0GN
# H+F+nkjjnwseaBhFT6wNXSXqrpfJx/vTULd1mzpWV2pLLp4FFS9y+0sgRWs0auzz
# hWb4OiOR67GXTHrjMXfvTCcOs5Zi1Hi4VmbI2mumPR8pOmRtTk0XLstay5qNn/LA
# Murq++I6oharlHY5IJJhEc8GYEXYWsnrc58WUG6s
# SIG # End signature block