# 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
# MIIiOwYJKoZIhvcNAQcCoIIiLDCCIigCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDUCTzF+vC4Mofz
# YdDODInZRUg2zN1SRbKjsxDG9IwiEaCCC34wggUGMIID7qADAgECAhMzAAABswyw
# gExVVE3DAAAAAAGzMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
# bmcgUENBIDIwMTAwHhcNMTcwNzE4MTc1MDQxWhcNMTgwNzEwMTc1MDQxWjB/MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSkwJwYDVQQDEyBNaWNy
# b3NvZnQgV2luZG93cyBLaXRzIFB1Ymxpc2hlcjCCASIwDQYJKoZIhvcNAQEBBQAD
# ggEPADCCAQoCggEBAOP85kiLpaS9v/uqxuT0fO3b0Wc9NPGOUXWJ64gNZsUfo3rt
# F4nqKu39PAhpRvtSFu2dmVO/eMwJ6hKfXoEi7p/HnJiAJsM2KBNuAMr9W0u2U8zU
# mEGwdI86J8xA4NQbLPgRLLiI+5KOhncDPEIg8ejBTCEsp384wIj1kfiQ4JYlHsU7
# QbxyfMaDXhgtD4zKPWB8lQ00nf0bon2uSRJo/eqEMMWVIS8DUtP+0N2F3zSWTXmU
# Av1eLEdBaotG4MS+xL4+1R2288dx3RrxIJ2DANKZFMIxyBX/5j1fE/FmBWFHgT6j
# GNvdM6yo4289niiSZfJ6CSlUZItMp2+Vqhv1q3UCAwEAAaOCAXowggF2MB8GA1Ud
# JQQYMBYGCisGAQQBgjcKAxQGCCsGAQUFBwMDMB0GA1UdDgQWBBQQ638EyhqeAHDv
# ddaB2xCoBuYWQDBRBgNVHREESjBIpEYwRDEMMAoGA1UECxMDQU9DMTQwMgYDVQQF
# EysyMjk5MDMrZmQ2YjllNWQtZWI3My00MTg5LWFiYzItZjdjYWNkYTM4MWFjMB8G
# A1UdIwQYMBaAFOb8X3u7IgBY5HJOtfQhdCMy5u+sMFYGA1UdHwRPME0wS6BJoEeG
# RWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY0Nv
# ZFNpZ1BDQV8yMDEwLTA3LTA2LmNybDBaBggrBgEFBQcBAQROMEwwSgYIKwYBBQUH
# MAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljQ29kU2ln
# UENBXzIwMTAtMDctMDYuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQAD
# ggEBAJl59WeeQK+g1o1JbJfI95BZ4VvnwGqOd2FSqQJOxmRwAKjXq9U70yxBawxv
# YkheZdLhmeto4TlMBvcj3HrregpzaS4nQvcKhME9eroEFhP5fL4mxZwNSoHajalU
# c6w8Rpu3728wHHqCKVmlLGtSxeFy12f7FVOyxEYSQEewMuFeegHBAW+BmAb889Di
# LemKdr9ilLoQh60EJnLxKqSl0uiN/ft+DHVEDCZLb16LztE4FQaol74OhC7B4Vpz
# 8iBstQ2EgTdHTqVrHd9aK5xqIzEiRurd0rL2+nOJlMVMu0b2gTBca5BEakXyzWE3
# 0nDDShDOiYjQsXmdUzOdTm6e0PwwggZwMIIEWKADAgECAgphDFJMAAAAAAADMA0G
# CSqGSIb3DQEBCwUAMIGIMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3Jp
# dHkgMjAxMDAeFw0xMDA3MDYyMDQwMTdaFw0yNTA3MDYyMDUwMTdaMH4xCzAJBgNV
# BAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
# HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29m
# dCBDb2RlIFNpZ25pbmcgUENBIDIwMTAwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
# ggEKAoIBAQDpDmRQeWe1xOP9CQBMnpSs91Zo6kTYz8VYT6mldnxtRbrTOZK0pB75
# +WWC5BfSj/1EnAjoZZPOLFWEv30I4y4rqEErGLeiS25JTGsVB97R0sKJHnGUzbV/
# S7SvCNjMiNZrF5Q6k84mP+zm/jSYV9UdXUn2siou1YW7WT/4kLQrg3TKK7M7RuPw
# RknBF2ZUyRy9HcRVYldy+Ge5JSA03l2mpZVeqyiAzdWynuUDtWPTshTIwciKJgpZ
# fwfs/w7tgBI1TBKmvlJb9aba4IsLSHfWhUfVELnG6Krui2otBVxgxrQqW5wjHF9F
# 4xoUHm83yxkzgGqJTaNqZmN4k9Uwz5UfAgMBAAGjggHjMIIB3zAQBgkrBgEEAYI3
# FQEEAwIBADAdBgNVHQ4EFgQU5vxfe7siAFjkck619CF0IzLm76wwGQYJKwYBBAGC
# NxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w
# HwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQwVgYDVR0fBE8wTTBLoEmg
# R4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWlj
# Um9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEF
# BQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29D
# ZXJBdXRfMjAxMC0wNi0yMy5jcnQwgZ0GA1UdIASBlTCBkjCBjwYJKwYBBAGCNy4D
# MIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vUEtJL2Rv
# Y3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABf
# AFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEB
# CwUAA4ICAQAadO9XTyl7xBaFeLhQ0yL8CZ2sgpf4NP8qLJeVEuXkv8+/k8jjNKnb
# gbjcHgC+0jVvr+V/eZV35QLU8evYzU4eG2GiwlojGvCMqGJRRWcI4z88HpP4MIUX
# yDlAptcOsyEp5aWhaYwik8x0mOehR0PyU6zADzBpf/7SJSBtb2HT3wfV2XIALGmG
# dj1R26Y5SMk3YW0H3VMZy6fWYcK/4oOrD+Brm5XWfShRsIlKUaSabMi3H0oaDmmp
# 19zBftFJcKq2rbtyR2MX+qbWoqaG7KgQRJtjtrJpiQbHRoZ6GD/oxR0h1Xv5AiMt
# xUHLvx1MyBbvsZx//CJLSYpuFeOmf3Zb0VN5kYWd1dLbPXM18zyuVLJSR2rAqhOV
# 0o4R2plnXjKM+zeF0dx1hZyHxlpXhcK/3Q2PjJst67TuzyfTtV5p+qQWBAGnJGdz
# z01Ptt4FVpd69+lSTfR3BU+FxtgL8Y7tQgnRDXbjI1Z4IiY2vsqxjG6qHeSF2kcz
# Yo+kyZEzX3EeQK+YZcki6EIhJYocLWDZN4lBiSoWD9dhPJRoYFLv1keZoIBA7hWB
# dz6c4FMYGlAdOJWbHmYzEyc5F3iHNs5Ow1+y9T1HU7bg5dsLYT0q15IszjdaPkBC
# MaQfEAjCVpy/JF1RAp1qedIX09rBlI4HeyVxRKsGaubUxt8jmpZ1xTGCFhMwghYP
# AgEBMIGVMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYD
# VQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAm
# BgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTACEzMAAAGzDLCA
# TFVUTcMAAAAAAbMwDQYJYIZIAWUDBAIBBQCgggEEMBkGCSqGSIb3DQEJAzEMBgor
# BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEEAYI3AgEVMC8GCSqGSIb3
# DQEJBDEiBCBoefVHshVltMFh6dzVTyGI8RIk+vG1k+2ctIrjYxij7jA8BgorBgEE
# AYI3CgMcMS4MLE5ROUZqOWJDU2xLR2hyZHpobXk3Z1hOVEtKUW90dGNPQXRtMG9r
# cVpGaUE9MFoGCisGAQQBgjcCAQwxTDBKoCSAIgBNAGkAYwByAG8AcwBvAGYAdAAg
# AFcAaQBuAGQAbwB3AHOhIoAgaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3dpbmRv
# d3MwDQYJKoZIhvcNAQEBBQAEggEApHjcSNjPJWQgse3LWLfop+QXPu1BCEUcG7Pi
# T60LTR8rqpq73jWqnl3X+QfJgZvGwp3HK4kxB+xNagaugTYHLkEKwkybNunpq/da
# BDgSrQ080TCCO3IoQhz0Vb5wF8iL74Jl8UfNam9AnTXpgzIxAuhhkOLKPWqG/6VN
# rDpRQLS8fK99RqalAG+B6PkgQHNyPD4u64DHoLyxD3MNo39WTimuDXeJe6e0KsdH
# tOmSTgLihNtVInuQr5oUdGK3c/bgOODUfrs1Dkvm65YT0xtTnooCfNW4vn+TO/Nr
# YKgNy0iVkYydxQrGvbC+nDyEhnhY0JRXuJ6WnK8pOku2KiteZ6GCE0YwghNCBgor
# BgEEAYI3AwMBMYITMjCCEy4GCSqGSIb3DQEHAqCCEx8wghMbAgEDMQ8wDQYJYIZI
# AWUDBAIBBQAwggE8BgsqhkiG9w0BCRABBKCCASsEggEnMIIBIwIBAQYKKwYBBAGE
# WQoDATAxMA0GCWCGSAFlAwQCAQUABCBnRuhtNclj1GlKpHTyloVq8nCEpIkUJkat
# dqiOwQ2+4gIGWc1uvln9GBMyMDE3MDkyOTAzNDkzMS4zMDdaMAcCAQGAAgH0oIG4
# pIG1MIGyMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMQwwCgYD
# VQQLEwNBT0MxJzAlBgNVBAsTHm5DaXBoZXIgRFNFIEVTTjo1N0M4LTJEMTUtMUM4
# QjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaCCDsowggZx
# MIIEWaADAgECAgphCYEqAAAAAAACMA0GCSqGSIb3DQEBCwUAMIGIMQswCQYDVQQG
# EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNyb3NvZnQg
# Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAxMDAeFw0xMDA3MDEyMTM2NTVa
# Fw0yNTA3MDEyMTQ2NTVaMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMIIB
# IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqR0NvHcRijog7PwTl/X6f2mU
# a3RUENWlCgCChfvtfGhLLF/Fw+Vhwna3PmYrW/AVUycEMR9BGxqVHc4JE458YTBZ
# sTBED/FgiIRUQwzXTbg4CLNC3ZOs1nMwVyaCo0UN0Or1R4HNvyRgMlhgRvJYR4Yy
# hB50YWeRX4FUsc+TTJLBxKZd0WETbijGGvmGgLvfYfxGwScdJGcSchohiq9LZIlQ
# YrFd/XcfPfBXday9ikJNQFHRD5wGPmd/9WbAA5ZEfu/QS/1u5ZrKsajyeioKMfDa
# TgaRtogINeh4HLDpmc085y9Euqf03GS9pAHBIAmTeM38vMDJRF1eFpwBBU8iTQID
# AQABo4IB5jCCAeIwEAYJKwYBBAGCNxUBBAMCAQAwHQYDVR0OBBYEFNVjOlyKMZDz
# Q3t8RhvFM2hahW1VMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQE
# AwIBhjAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNX2VsuP6KJcYmjRPZSQ
# W9fOmhjEMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNv
# bS9wa2kvY3JsL3Byb2R1Y3RzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIzLmNybDBa
# BggrBgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3J0MIGgBgNV
# HSABAf8EgZUwgZIwgY8GCSsGAQQBgjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDov
# L3d3dy5taWNyb3NvZnQuY29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggr
# BgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQA
# ZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAB+aIUQ3ixuCYP4FxAz2d
# o6Ehb7Prpsz1Mb7PBeKp/vpXbRkws8LFZslq3/Xn8Hi9x6ieJeP5vO1rVFcIK1GC
# RBL7uVOMzPRgEop2zEBAQZvcXBf/XPleFzWYJFZLdO9CEMivv3/Gf/I3fVo/HPKZ
# eUqRUgCvOA8X9S95gWXZqbVr5MfO9sp6AG9LMEQkIjzP7QOllo9ZKby2/QThcJ8y
# Sif9Va8v/rbljjO7Yl+a21dA6fHOmWaQjP9qYn/dxUoLkSbiOewZSnFjnXshbcOc
# o6I8+n99lmqQeKZt0uGc+R38ONiU9MalCpaGpL2eGq4EQoO4tYCbIjggtSXlZOz3
# 9L9+Y1klD3ouOVd2onGqBooPiRa6YacRy5rYDkeagMXQzafQ732D8OE7cQnfXXSY
# Ighh2rBQHm+98eEA3+cxB6STOvdlR3jo+KhIq/fecn5ha293qYHLpwmsObvsxsvY
# grRyzR30uIUBHoD7G4kqVDmyW9rIDVWZeodzOwjmmC3qjeAzLhIp9cAvVCch98is
# TtoouLGp25ayp0Kiyc8ZQU3ghvkqmqMRZjDTu3QyS99je/WZii8bxyGvWbWu3EQ8
# l1Bx16HSxVXjad5XwdHeMMD9zOZN+w2/XU/pnR4ZOC+8z1gFLu8NoFA12u8JJxzV
# s341Hgi62jbb01+P3nSISRIwggTZMIIDwaADAgECAhMzAAAAqrepiP/qV8MKAAAA
# AACqMA0GCSqGSIb3DQEBCwUAMHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo
# aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
# cG9yYXRpb24xJjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEw
# MB4XDTE2MDkwNzE3NTY1M1oXDTE4MDkwNzE3NTY1M1owgbIxCzAJBgNVBAYTAlVT
# MRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xDDAKBgNVBAsTA0FPQzEnMCUGA1UECxMe
# bkNpcGhlciBEU0UgRVNOOjU3QzgtMkQxNS0xQzhCMSUwIwYDVQQDExxNaWNyb3Nv
# ZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
# CgKCAQEAnth/e1d4+gX6o5q3kK+audW2dHaRy7jOuyrOKynvX7RrdZh1KICtmI+5
# qvCd0rabR2SYxqVZqpF4+R6LefckdEbqJP5pBK6+639TUxNZ1Q/8+83d9gdBmxs3
# N9lcdpndrsfD29OtaMJQnHQORHcuLp1vwR3vLMc7dK7bly2PgcVHBUDASjdIk7wD
# mkvwjQTLQ3D76FixnaxQ57m1hPHHmwfs95pp269If6xZMYZiFnCVXvHLzDpH8+o/
# AowQu70jjKkDc08OuAxc8S+qf/pkm4wumBTARs8mTzwGI8ZPIreSDxoCGfycKc2E
# 3oGv8P2tmKyliIOGlVSGtJtxQMYvNwIDAQABo4IBGzCCARcwHQYDVR0OBBYEFAi4
# ch0VJPWTAuGf0hxM06vMWcmwMB8GA1UdIwQYMBaAFNVjOlyKMZDzQ3t8RhvFM2ha
# hW1VMFYGA1UdHwRPME0wS6BJoEeGRWh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9w
# a2kvY3JsL3Byb2R1Y3RzL01pY1RpbVN0YVBDQV8yMDEwLTA3LTAxLmNybDBaBggr
# BgEFBQcBAQROMEwwSgYIKwYBBQUHMAKGPmh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
# bS9wa2kvY2VydHMvTWljVGltU3RhUENBXzIwMTAtMDctMDEuY3J0MAwGA1UdEwEB
# /wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQELBQADggEBAGCP
# Du4HzhrhfZ95xngOnc5MpAGdamdHlxEbinLK5MF85y3jj5FnvOh0ej/K6UYkAD+h
# zvB+T9L0Gn30djgdFDYdpdmJb8rFUxTvEywgApXRCnnF0u5tPD+RRum5Ut7fXOKc
# pE1Rah3C6ZNNRnIWJvmE/5N33egDPVT8wgSgX4+HvVV0mulkrLDkGspcOyAfC1VY
# CLDDy6e8WSxNQpHtW7MwLpKnk45OgAyuqXkx7FKRfJUQr3/BziPbD5nMasPE9Cwf
# dWSCLKDYDgf3mg5lqFyVgZx+WO5585EhrdvNLL+1iHL+BhudX3YPdjKIrlI8bTku
# zAZOJEktL6lmANb8aCahggN0MIICXAIBATCB4qGBuKSBtTCBsjELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEMMAoGA1UECxMDQU9DMScwJQYDVQQL
# Ex5uQ2lwaGVyIERTRSBFU046NTdDOC0yRDE1LTFDOEIxJTAjBgNVBAMTHE1pY3Jv
# c29mdCBUaW1lLVN0YW1wIFNlcnZpY2WiJQoBATAJBgUrDgMCGgUAAxUAnJzFa5jM
# p8GtRyDs00T8zm3Q6gOggcEwgb6kgbswgbgxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
# EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
# ZnQgQ29ycG9yYXRpb24xDDAKBgNVBAsTA0FPQzEnMCUGA1UECxMebkNpcGhlciBO
# VFMgRVNOOjI2NjUtNEMzRi1DNURFMSswKQYDVQQDEyJNaWNyb3NvZnQgVGltZSBT
# b3VyY2UgTWFzdGVyIENsb2NrMA0GCSqGSIb3DQEBBQUAAgUA3Xg77zAiGA8yMDE3
# MDkyOTAzMjYzOVoYDzIwMTcwOTMwMDMyNjM5WjB0MDoGCisGAQQBhFkKBAExLDAq
# MAoCBQDdeDvvAgEAMAcCAQACAjKAMAcCAQACAhiRMAoCBQDdeY1vAgEAMDYGCisG
# AQQBhFkKBAIxKDAmMAwGCisGAQQBhFkKAwGgCjAIAgEAAgMW42ChCjAIAgEAAgMe
# hIAwDQYJKoZIhvcNAQEFBQADggEBABxCVNJw7mno8nl9Q3HFeEh9WFVq1xHVSx7/
# lkmkR2BDsUsGWxIUHTJ73/PYfAY212zchfvLjA/GjdH04aRPicwlX7sI962cl8qW
# b/ZAWLDSJIow9X4lFaFLUMACFVcmvoaIt4wWAHOfZm7Hel4v428wImawduW7Pdzs
# G02vsSn9fGGxQmd7mhZ15hf8ZKAb4vzJwHCA3NPXmUdBJE/JtgRo7CYrEgRaESs0
# z9PH1LTK0qYYmQv8z8PDUqjO4nTB10w6nW98sStMoISeqrpL33oCNlhwM2EV9TH8
# 9zRiq5aY7/HUJMZJ6ibK2JqN+Znospy1gx+rA/+AM9lwYJWIMc8xggL1MIIC8QIB
# ATCBkzB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
# BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYD
# VQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAKq3qYj/6lfD
# CgAAAAAAqjANBglghkgBZQMEAgEFAKCCATIwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3
# DQEJEAEEMC8GCSqGSIb3DQEJBDEiBCDvkgea6doKWmamubpPqpO2Cs5kw6JvOO4q
# 2h9/Ab94TDCB4gYLKoZIhvcNAQkQAgwxgdIwgc8wgcwwgbEEFJycxWuYzKfBrUcg
# 7NNE/M5t0OoDMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAC
# EzMAAACqt6mI/+pXwwoAAAAAAKowFgQUexPNENtBcGBlOLEVnSCuY9EW1rYwDQYJ
# KoZIhvcNAQELBQAEggEALIRz0mlmWRkDmE1UQaeoMYbSEfrqrQcx2r4MUJ0eNSoS
# VzUdqvJYoUnbrURJbnIZF6QrTYPQRwS3RMHtXWuYNP4WuEn2FFL4pQBs+UOtITMR
# 4b7UaUygbwEW4drkwj/oHa/4tuNeyRU5C8UkrY0EFee501zXgQ8N8G/0y80IkUyC
# Uit+T77eeUtzXo6i55Aabd5wLrv4tnSdtPHgGjUn9NHzuHoybvq4dChyl967ZsWZ
# jQBgA7A0a0qJjuCu2ws9o2Vl7dmfy9fH+IVywHGxx1KvpwoqCsp7mJYsxCz6vbn+
# YIEzNStJw9QQegPOG+rkb3OJy5T2Dt2lb9hDLt0Amg==
# SIG # End signature block
