# DLL that implements telemetry logging for Auto Sequencer
$AUTO_SEQUENCER_TELEMETRY_DLL = 'Microsoft.AppV.AutoSequencing.Telemetry.dll'

# Diagnostic Event Source DLL
$TRACING_EVENTSOURCE_DLL = 'Microsoft.Diagnostics.Tracing.EventSource.dll'

function LoadAutoSequencingTelemetryProvider($AutoSequencingRoot)
{
    $autoSeqTelemetryDll = Join-Path $AutoSequencingRoot $AUTO_SEQUENCER_TELEMETRY_DLL
    $autoseqlib = [Reflection.Assembly]::LoadFile($autoSeqTelemetryDll)
    if ($autoseqlib  -ne $null)
    {
        $eventSourceDll = Join-Path $AutoSequencingRoot $TRACING_EVENTSOURCE_DLL
        $eventsrclib = [Reflection.Assembly]::LoadFile($eventSourceDll)
        if ($eventsrclib -ne $null)
        {
            return $true
        }
    }

    return $false
}

function GetAutoSequencingTelemetryProvider
{
    # NOTE: LoadAutoSequencingTelemetryProvider must have been successfully executed for
    #       GetAutoSequencingTelemetryProvider to succeed
    return new-object Microsoft.AppMan.AppV.AutoSequencing.AutoSequencingTelemetryProvider
}

function LogNewAppVSequencerVMStart([Guid]$TelemetryId, [Int64]$VMMemory, [int]$CPUCount, [Int64]$SessionSetupTimeout, [bool]$UseADKWebInstaller)
{
    $autoSequencingTelemetryProvider = GetAutoSequencingTelemetryProvider
    if ($autoSequencingTelemetryProvider  -ne $null)
    {
        $autoSequencingTelemetryProvider.LogNewAppVSequencerVMStart($TelemetryId, $VMMemory, $CPUCount, $SessionSetupTimeout, $UseADKWebInstaller)
    }
}

function LogNewAppVSequencerVMStatus([Guid]$TelemetryId, [string]$Message)
{
    $autoSequencingTelemetryProvider = GetAutoSequencingTelemetryProvider
    if ($autoSequencingTelemetryProvider  -ne $null)
    {
        $autoSequencingTelemetryProvider.LogNewAppVSequencerVMStatus($TelemetryId, $Message)
    }
}

function LogConnectAppVSequencerVMStart([Guid]$TelemetryId, [Int64]$SessionSetupTimeout)
{
    $autoSequencingTelemetryProvider = GetAutoSequencingTelemetryProvider
    if ($autoSequencingTelemetryProvider  -ne $null)
    {
        $autoSequencingTelemetryProvider.LogConnectAppVSequencerVMStart($TelemetryId, $SessionSetupTimeout)
    }
}

function LogConnectAppVSequencerVMStatus([Guid]$TelemetryId, [string]$Message)
{
    $autoSequencingTelemetryProvider = GetAutoSequencingTelemetryProvider
    if ($autoSequencingTelemetryProvider  -ne $null)
    {
        $autoSequencingTelemetryProvider.LogConnectAppVSequencerVMStatus($TelemetryId, $Message)
    }
}

function LogNewBatchAppVSequencerPackagesStart([Guid]$TelemetryId)
{
    $autoSequencingTelemetryProvider = GetAutoSequencingTelemetryProvider
    if ($autoSequencingTelemetryProvider  -ne $null)
    {
        $autoSequencingTelemetryProvider.LogNewBatchAppVSequencerPackagesStart($TelemetryId)
    }
}

function LogNewBatchAppVSequencerPackagesStatus([Guid]$TelemetryId, [string]$Message)
{
    $autoSequencingTelemetryProvider = GetAutoSequencingTelemetryProvider
    if ($autoSequencingTelemetryProvider  -ne $null)
    {
        $autoSequencingTelemetryProvider.LogNewBatchAppVSequencerPackagesStatus($TelemetryId, $Message)
    }
}
# SIG # Begin signature block
# MIImUAYJKoZIhvcNAQcCoIImQTCCJj0CAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDUCTzF+vC4Mofz
# YdDODInZRUg2zN1SRbKjsxDG9IwiEaCCC4EwggUJMIID8aADAgECAhMzAAAFQqa3
# Ynbi2cZgAAAAAAVCMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTAwHhcNMjMwODA4MTgzNDI0WhcNMjQwODA3MTgzNDI0WjB/MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQDEyBNaWNy
# b3NvZnQgV2luZG93cyBLaXRzIFB1Ymxpc2hlcjCCASIwDQYJKoZIhvcNAQEBBQAD
# ggEPADCCAQoCggEBAJwlmIwCpx3oCLCV7eScfHhd97uibO1jY3ZG5dqXeOSTEfIF
# T2q2cyi5iU1fAca//ykgNAMP3bHZ1ORJS2MXPJs5xWXm8vXsYSK/o3xchvj7Z+7j
# oSq9CAiQB60iXW60IEWQuctFLxiacHMlPfAV8UpF2Otqb4rFkFjeNAvfs8gR49bJ
# dKh8ptLiqM1Fq9rckFEw5U3kfmwMd6+pqsttkBk3lz6QxX010pVtx82vdjmtPrYN
# 9o9P85tRZ+WGEMPONtohDmv8l7fgFgs7HOvWuyPI480ePKgErtLtyTExi4ua7tNR
# DZoTM953wfIpHv8Twq/a8nAFJQtjCe2HNUTBHLcCAwEAAaOCAX0wggF5MB8GA1Ud
# JQQYMBYGCisGAQQBgjcKAxQGCCsGAQUFBwMDMB0GA1UdDgQWBBRVTqC7Vfgt5Vrd
# jboGEjRcKjkumDBUBgNVHREETTBLpEkwRzEtMCsGA1UECxMkTWljcm9zb2Z0IEly
# ZWxhbmQgT3BlcmF0aW9ucyBMaW1pdGVkMRYwFAYDVQQFEw0yMjk5MDMrNTAxNDM5
# MB8GA1UdIwQYMBaAFOb8X3u7IgBY5HJOtfQhdCMy5u+sMFYGA1UdHwRPME0wS6BJ
# oEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p
# Y0NvZFNpZ1BDQV8yMDEwLTA3LTA2LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYB
# BQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29k
# U2lnUENBXzIwMTAtMDctMDYuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
# BQADggEBADgHT3Vl70JHM/joVFH3xRAmLLIMBvkY8zoG08avpCaBoAKv8Wj8rbmn
# TXR3r5dvmxjZjBAxiSaohpNX84EA2FsMox0bvKxC23LFQ/LtHWNDYDX+ffAKNwud
# V6ltksbz5Vk7Qh6oONcIR9IzCvbqWzZQ/PbrmjSRskiTgxRxpufhnDu6Ylqs1Hd8
# YhCtOuOS8DSxPEKFYX06yekO+Bbg6AT9cTuRa3uMJ47h17mlfYKT3PnweYJJ0vxe
# D+I0MOqFF0rUutCcF/4JYYKRBUCgvVE5jf3ujK456uRskTYEs3IrIDf6wJ7hJY1e
# NNPpY8UWk117N5WxkkxJp3WNcNtFhnowggZwMIIEWKADAgECAgphDFJMAAAAAAAD
# MA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
# cmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo
# b3JpdHkgMjAxMDAeFw0xMDA3MDYyMDQwMTdaFw0yNTA3MDYyMDUwMTdaMH4xCzAJ
# BgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25k
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jv
# c29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IB
# DwAwggEKAoIBAQDpDmRQeWe1xOP9CQBMnpSs91Zo6kTYz8VYT6mldnxtRbrTOZK0
# pB75+WWC5BfSj/1EnAjoZZPOLFWEv30I4y4rqEErGLeiS25JTGsVB97R0sKJHnGU
# zbV/S7SvCNjMiNZrF5Q6k84mP+zm/jSYV9UdXUn2siou1YW7WT/4kLQrg3TKK7M7
# RuPwRknBF2ZUyRy9HcRVYldy+Ge5JSA03l2mpZVeqyiAzdWynuUDtWPTshTIwciK
# JgpZfwfs/w7tgBI1TBKmvlJb9aba4IsLSHfWhUfVELnG6Krui2otBVxgxrQqW5wj
# HF9F4xoUHm83yxkzgGqJTaNqZmN4k9Uwz5UfAgMBAAGjggHjMIIB3zAQBgkrBgEE
# AYI3FQEEAwIBADAdBgNVHQ4EFgQU5vxfe7siAFjkck619CF0IzLm76wwGQYJKwYB
# BAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMB
# Af8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBL
# oEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMv
# TWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggr
# BgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNS
# b29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgZ0GA1UdIASBlTCBkjCBjwYJKwYBBAGC
# Ny4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vUEtJ
# L2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEA
# bABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3
# DQEBCwUAA4ICAQAadO9XTyl7xBaFeLhQ0yL8CZ2sgpf4NP8qLJeVEuXkv8+/k8jj
# NKnbgbjcHgC+0jVvr+V/eZV35QLU8evYzU4eG2GiwlojGvCMqGJRRWcI4z88HpP4
# MIUXyDlAptcOsyEp5aWhaYwik8x0mOehR0PyU6zADzBpf/7SJSBtb2HT3wfV2XIA
# LGmGdj1R26Y5SMk3YW0H3VMZy6fWYcK/4oOrD+Brm5XWfShRsIlKUaSabMi3H0oa
# Dmmp19zBftFJcKq2rbtyR2MX+qbWoqaG7KgQRJtjtrJpiQbHRoZ6GD/oxR0h1Xv5
# AiMtxUHLvx1MyBbvsZx//CJLSYpuFeOmf3Zb0VN5kYWd1dLbPXM18zyuVLJSR2rA
# qhOV0o4R2plnXjKM+zeF0dx1hZyHxlpXhcK/3Q2PjJst67TuzyfTtV5p+qQWBAGn
# JGdzz01Ptt4FVpd69+lSTfR3BU+FxtgL8Y7tQgnRDXbjI1Z4IiY2vsqxjG6qHeSF
# 2kczYo+kyZEzX3EeQK+YZcki6EIhJYocLWDZN4lBiSoWD9dhPJRoYFLv1keZoIBA
# 7hWBdz6c4FMYGlAdOJWbHmYzEyc5F3iHNs5Ow1+y9T1HU7bg5dsLYT0q15Iszjda
# PkBCMaQfEAjCVpy/JF1RAp1qedIX09rBlI4HeyVxRKsGaubUxt8jmpZ1xTGCGiUw
# ghohAgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# KDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTACEzMAAAVC
# prdiduLZxmAAAAAABUIwDQYJYIZIAWUDBAIBBQCggcYwGQYJKoZIhvcNAQkDMQwG
# CisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZI
# hvcNAQkEMSIEIGh59UeyFWW0wWHp3NVPIYjxEiT68bWT7Zy0iuNjGKPuMFoGCisG
# AQQBgjcCAQwxTDBKoCSAIgBNAGkAYwByAG8AcwBvAGYAdAAgAFcAaQBuAGQAbwB3
# AHOhIoAgaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3dpbmRvd3MwDQYJKoZIhvcN
# AQEBBQAEggEAM5bmSavMdJQ2TDaF84mA5HkKetxAFXYyIi1I0XWylMkSFo7wVoQv
# yjb2ac8l/Q8OpS2tqc9xAE+q+xTg25FdifYA9xqk5B0dpMBRL8few/5EOOr+KFsI
# NZY07uVIgfxtoEQpnobemVpiniu2msNVO3LLPbLGJIEucdZ7z+5YVuSK+pugHKd3
# C5ixtwoXi0mguvly6abQ3kvZmIWXoB6F5dHDfNVCKyKkPx0rDgG5jmklNSv2nTl0
# G1VBVMucQoSE6lu2nyaM2keOrtEzJ1e10/jIqISjO5Z544EcJGeP3cK7ZRA8Yk/t
# 27OlU/EdDl5HdNk3RM+UehBMYCEJSF1iaKGCF5cwgheTBgorBgEEAYI3AwMBMYIX
# gzCCF38GCSqGSIb3DQEHAqCCF3AwghdsAgEDMQ8wDQYJYIZIAWUDBAIBBQAwggFS
# BgsqhkiG9w0BCRABBKCCAUEEggE9MIIBOQIBAQYKKwYBBAGEWQoDATAxMA0GCWCG
# SAFlAwQCAQUABCD7I8xedFAnMz2Vb/y/OU44r8nUAIi4lWmpkcuScD70GwIGZfxn
# 5N22GBMyMDI0MDQwMTAzMzIxNy4zNDlaMASAAgH0oIHRpIHOMIHLMQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQg
# QW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMw
# MC0wNUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZp
# Y2WgghHtMIIHIDCCBQigAwIBAgITMwAAAehQsIDPK3KZTQABAAAB6DANBgkqhkiG
# 9w0BAQsFADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYw
# JAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMzEyMDYx
# ODQ1MjJaFw0yNTAzMDUxODQ1MjJaMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
# V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0
# IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRp
# b25zMScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046REMwMC0wNUUwLUQ5NDcxJTAj
# BgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggIiMA0GCSqGSIb3
# DQEBAQUAA4ICDwAwggIKAoICAQDhQXdE0WzXG7wzeC9SGdH6eVwdGlF6YgpU7weO
# FBkpW9yuEmJSDE1ADBx/0DTuRBaplSD8CR1QqyQmxRDD/CdvDyeZFAcZ6l2+nlMs
# smZyC8TPt1GTWAUt3GXUU6g0F0tIrFNLgofCjOvm3G0j482VutKS4wZT6bNVnBVs
# Chr2AjmVbGDN/6Qs/EqakL5cwpGel1te7UO13dUwaPjOy0Wi1qYNmR8i7T1luj2J
# dFdfZhMPyqyq/NDnZuONSbj8FM5xKBoar12ragC8/1CXaL1OMXBwGaRoJTYtksi9
# njuq4wDkcAwitCZ5BtQ2NqPZ0lLiQB7O10Bm9zpHWn9x1/HmdAn4koMWKUDwH5sd
# /zDu4vi887FWxm54kkWNvk8FeQ7ZZ0Q5gqGKW4g6revV2IdAxBobWdorqwvzqL70
# WdsgDU/P5c0L8vYIskUJZedCGHM2hHIsNRyw9EFoSolDM+yCedkz69787s8nIp55
# icLfDoKw5hak5G6MWF6d71tcNzV9+v9RQKMa6Uwfyquredd5sqXWCXv++hek4A15
# WybIc6ufT0ilazKYZvDvoaswgjP0SeLW7mvmcw0FELzF1/uWaXElLHOXIlieKF2i
# /YzQ6U50K9dbhnMaDcJSsG0hXLRTy/LQbsOD0hw7FuK0nmzotSx/5fo9g7fCzoFj
# k3tDEwIDAQABo4IBSTCCAUUwHQYDVR0OBBYEFPo5W8o980kMfRVQba6T34HwelLa
# MB8GA1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8GA1UdHwRYMFYwVKBS
# oFCGTmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29m
# dCUyMFRpbWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggrBgEFBQcBAQRg
# MF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv
# Y2VydHMvTWljcm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAoMSkuY3J0
# MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYDVR0PAQH/
# BAQDAgeAMA0GCSqGSIb3DQEBCwUAA4ICAQCWfcJm2rwXtPi74km6PKAkni9+BWot
# q+QtDGgeT5F3ro7PsIUNKRkUytuGqI8thL3Jcrb03x6DOppYJEA+pb6o2qPjFddO
# 1TLqvSXrYm+OgCLL+7+3FmRmfkRu8rHvprab0O19wDbukgO8I5Oi1RegMJl8t5k/
# UtE0Wb3zAlOHnCjLGSzP/Do3ptwhXokk02IvD7SZEBbPboGbtw4LCHsT2pFakpGO
# Bh+ISUMXBf835CuVNfddwxmyGvNSzyEyEk5h1Vh7tpwP7z7rJ+HsiP4sdqBjj6Av
# opuf4rxUAfrEbV6aj8twFs7WVHNiIgrHNna/55kyrAG9Yt19CPvkUwxYK0uZvPl2
# WC39nfc0jOTjivC7s/IUozE4tfy3JNkyQ1cNtvZftiX3j5Dt+eLOeuGDjvhJvYMI
# EkpkV68XLNH7+ZBfYa+PmfRYaoFFHCJKEoRSZ3PbDJPBiEhZ9yuxMddoMMQ19Tky
# ftot6Ez0XhSmwjYBq39DvBFWhlyDGBhrU3GteDWiVd9YGSB2WnxuFMy5fbAK6o8P
# Wz8QRMiptXHK3HDBr2wWWEcrrgcTuHZIJTqepNoYlx9VRFvj/vCXaAFcmkW1nk7V
# E+owaXr5RJjryDq9ubkyDq1mdrF/geaRALXcNZbfNXIkhXzXA6a8CiamcQW/DgmL
# JpiVQNriZYCHIDCCB3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUwDQYJ
# KoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9u
# MRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
# b24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0
# eSAyMDEwMB4XDTIxMDkzMDE4MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0
# IFRpbWUtU3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK
# AoICAQDk4aZM57RyIQt5osvXJHm9DtWC0/3unAcH0qlsTnXIyjVX9gF/bErg4r25
# PhdgM/9cT8dm95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNEt6aORmsH
# FPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZTfDlhAnrEqv1yaa8dq6z2Nr41JmTa
# mDu6GnszrYBbfowQHJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5LFGc
# 6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVVmG1oO5pGve2krnopN6zL64NF
# 50ZuyjLVwIYwXE8s4mKyzbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpG
# dc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2TPYrbqgSUei/BQOj0XOm
# TTd0lBw0gg/wEPK3Rxjtp+iZfD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi
# 0b1qGFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSLW6CmgyFdXzB0kZSU
# 2LlQ+QuJYfM2BjUYhEfb3BvR/bLUHMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSF
# F5PAPBXbGjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQIDAQABo4IB3TCC
# AdkwEgYJKwYBBAGCNxUBBAUCAwEAATAjBgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6C
# kTxGNSnPEP8vBO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMFwGA1Ud
# IARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYBBQUHAgEWM2h0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNVHSUE
# DDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTALBgNVHQ8E
# BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2U
# kFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5j
# b20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmww
# WgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29m
# dC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkq
# hkiG9w0BAQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwUtj5OR2R4sQaT
# lz0xM7U518JxNj/aZGx80HU5bbsPMeTCj/ts0aGUGCLu6WZnOlNN3Zi6th542DYu
# nKmCVgADsAW+iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhTdSRXud2f
# 8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYSEhFdPSfgQJY4rPf5KYnDvBewVIVC
# s/wMnosZiefwC2qBwoEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0DLzs
# kYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxybxCrdTDFNLB62FD+CljdQDzH
# VG2dY3RILLFORy3BFARxv2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+k
# KNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2tVdUCbFpAUR+fKFhbHP+
# CrvsQWY9af3LwUFJfn6Tvsv4O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAo
# GokLjzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTmdHRbatGePu1+oDEz
# fbzL6Xu/OHBE0ZDxyKs6ijoIYn/ZcGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKh
# ggNQMIICOAIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9u
# czEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNOOkRDMDAtMDVFMC1EOTQ3MSUwIwYD
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoD
# FQCMJG4vg0juMOVn2BuKACUvP80FuqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMw
# EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
# aWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0
# YW1wIFBDQSAyMDEwMA0GCSqGSIb3DQEBCwUAAgUA6bQUqzAiGA8yMDI0MDMzMTE2
# NTgxOVoYDzIwMjQwNDAxMTY1ODE5WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDp
# tBSrAgEAMAoCAQACAir/AgH/MAcCAQACAhNmMAoCBQDptWYrAgEAMDYGCisGAQQB
# hFkKBAIxKDAmMAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAw
# DQYJKoZIhvcNAQELBQADggEBAMAKA4fawrQJXUjg/LHpmc8+0M1fJCuUg5LEyRsN
# KK2TJuNwb5EqjNsN/wHG3oy+IwTe20+47tucEWG28hp8DNFReU7AFN+KMIc599tg
# 60lNxaKrHhKP+EWYGbUqJ0qoTz2meeQ+4nEWcRpqL+t8ZgkNpB9m1X6O8qpdc6L2
# A07594cQ4Ii1RjdCedR5Xe9v8xfPPRSIsWk10URvm5xL5fM/HWQrhHCFEmwKupFg
# S8n7Pi5jGCgKsXZDNgpTcH0M4HcEUA3XlbcwhaM1ZKcjYeXgDBEwLQBDAdzTRHMZ
# 8OYU9hoY9hbfUK15Jb/KE2ZxCZ5vVPmrPKnzBvY5eybhjnsxggQNMIIECQIBATCB
# kzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQD
# Ex1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAehQsIDPK3KZTQAB
# AAAB6DANBglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJ
# EAEEMC8GCSqGSIb3DQEJBDEiBCCavd6Y9IFwZONZ4j7hWwrU9XupS4VOjM+LO7+O
# XsXS/jCB+gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EICrS2sTVAoQggkHR59pN
# qige0xfJT2J3U8W1Sc8H+OsdMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNV
# BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
# c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
# UENBIDIwMTACEzMAAAHoULCAzytymU0AAQAAAegwIgQgCXkD6Ct07WP06sKRsz+2
# zSrlQ/TxkF0/GgRT+Vc4HtMwDQYJKoZIhvcNAQELBQAEggIAFCvqNP+DtG5c4vrV
# QKOGI5kdGIEUcEDH0V8lZ1F/Lr812BWoCcskUf7tdP17UDbB0+hIsZPG7QeFiiUL
# s3bVkqL15v+SxHnJ8mFlUHDOyMkWu1ji5EkY7DNa1Wk8vIqxC9xFMCgq8w/V6/tq
# 2m3bFS7rHXuhKncUjV/rb3F8qHfZQFkVTZ+J4wdxrHYS7XKlyLeOSBqvG/8FWhBw
# oD1uSE+0R8uc7SRz55q+QgHK870cyaoWzyom1eKMdexGJm0koqeNYV5m3vw9+SMR
# ERSV05YxTfyUiG2wods6yPJtNpg3bA+vF89tvOIVi17rz6NnkCE2Js/UW5NiHND2
# fypThlJcAmaNslTpqDF9AbvVEPTKYKmyJ3ytALk/7SlaenLCKMFuQ7DerO6kGZCi
# BB6gOmIygWwChUbSg9oDsBeotNdbZacjxmb83QEapujTob+LFVSPtvNJI5A03wTW
# gleE1X9FTT2v2H0DrgO68OXacSw1e8YBkudVM8YWVxJMN3fzr1sSj3tpEt7uEBHJ
# 7ge+Oo5KgroXXbOW7gednNNvRLqo0E8dgeYI1cTurt+3y3lSJMxBcbwEkz32mmjf
# vDQ7BTuwtGB6/VQo6IkAF+GHYGE9iDJdf2gE0xayLu86jGCKBWp0RnzcI86Ljh+w
# hZ9pJsbAvbfiwcvBvoC3W332Uv8=
# SIG # End signature block
