custom/Update-ZNUserMfaInboundPolicy.ps1

<#
.Synopsis
Updates an inbound MFA Policy.
.Description
Updates an inbound MFA Policy.

.Link
https://github.com/zeronetworks/zero-powershell/zeronetworks/update-znusermfainboundpolicy
#>

function Update-ZNUserMfaInboundPolicy {
    [OutputType([ZeroNetworks.PowerShell.Cmdlets.Api.Models.ReactivePolicy])]
    [CmdletBinding(DefaultParameterSetName = 'UpdateExpanded', PositionalBinding = $false, SupportsShouldProcess, ConfirmImpact = 'Medium')]
    param(
        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
        [System.String]
        # Account Name
        ${AccountName},
        
        [Parameter(ParameterSetName = 'UpdateExpanded', Mandatory)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
        [System.String]
        # user Id
        ${UserId},
        
        [Parameter(ParameterSetName = 'UpdateExpanded', Mandatory)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
        [System.String]
        # policy Id
        ${ReactivePolicyId},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Models.IPortsListItem[]]
        # extra ports to open.
        ${AdditionalPortsList},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String]
        # the policy description.
        ${Description},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String]
        # destination asset(s).
        ${DstEntityInfoId},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String]
        # destination ports.
        ${DstPort},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String[]]
        # destination processes.
        ${DstProcessNames},
        
        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [String[]]
        # excluded source assets
        ${ExcludedSrcEntityInfos},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [String[]]
        # Excluded source processes
        ${ExcludedSrcProcesses},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.Management.Automation.SwitchParameter]
        # fallback to logged on user enable/disable.
        ${FallbackToLoggedOnUser},
        
        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int[]]
        # Identity logon categories
        ${IdentityProtectionCategoryList},
        
        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int[]]
        # MFA methods.
        ${MfaMethods},
        
        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [Switch]
        # Override built in MFA policies
        ${OverrideBuiltins},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int]
        # protocol 6 for TCP, 17 for UDP.
        ${ProtocolType},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.Management.Automation.SwitchParameter]
        # restrict logon to originating user.
        ${RestrictLoginToOriginatingUser},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int]
        # the rule expiration.
        ${RuleDuration},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Models.ReactivePolicyInboundBodySrcEntityInfosItem[]]
        # source asset(s).
        ${SrcEntityInfos},
        
        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [System.String[]]
        # source processes.
        ${SrcProcessNames},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Models.ReactivePolicyInboundBodySrcUserInfosItem[]]
        # source user(s).
        ${SrcUserInfos},

        [Parameter(ParameterSetName = 'UpdateExpanded')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
        [int]
        # the policy state.
        ${State},

        [Parameter()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Run the command as a job
        ${AsJob},

        [Parameter(DontShow)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Wait for .NET debugger to attach
        ${Break},

        [Parameter(DontShow)]
        [ValidateNotNull()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Runtime.SendAsyncStep[]]
        # SendAsync Pipeline Steps to be appended to the front of the pipeline
        ${HttpPipelineAppend},

        [Parameter(DontShow)]
        [ValidateNotNull()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Runtime.SendAsyncStep[]]
        # SendAsync Pipeline Steps to be prepended to the front of the pipeline
        ${HttpPipelinePrepend},

        [Parameter()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Run the command asynchronously
        ${NoWait},

        [Parameter(DontShow)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Uri]
        # The URI for the proxy server to use
        ${Proxy},

        [Parameter(DontShow)]
        [ValidateNotNull()]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.PSCredential]
        # Credentials for a proxy server to use for the remote call
        ${ProxyCredential},

        [Parameter(DontShow)]
        [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Runtime')]
        [System.Management.Automation.SwitchParameter]
        # Use the default credentials for the proxy
        ${ProxyUseDefaultCredentials}
    )

    process {
        try {
            #Handle Get
            $policyId = $PSBoundParameters['ReactivePolicyId'].ToString()
            $policy = ZeroNetworks\Get-ZNMfaInboundPolicy -ReactivePolicyId $policyId

            $updatedPolicy = [ZeroNetworks.PowerShell.Cmdlets.Api.Models.ReactivePolicyInboundBody]::new()
            
            if($PSBoundParameters['AdditionalPortsList']){
                $updatedPolicy.AdditionalPortsList = $PSBoundParameters['AdditionalPortsList']
                $null = $PSBoundParameters.Remove('AdditionalPortsList')
            }
            else{
                $updatedPolicy.AdditionalPortsList = $policy.ItemAdditionalPortsList
                $null = $PSBoundParameters.Remove('AdditionalPortsList')
            }

            if($PSBoundParameters['Description']){
                $updatedPolicy.Description = $PSBoundParameters['Description']
                $null = $PSBoundParameters.Remove('Description')
            }
            else{
                $updatedPolicy.Description = $policy.ItemDescription
                $null = $PSBoundParameters.Remove('Description')
            }

            if($PSBoundParameters['DstEntityInfoId']){
                $updatedPolicy.DstEntityInfoId = $PSBoundParameters['DstEntityInfoId']
                $null = $PSBoundParameters.Remove('DstEntityInfoId')
            }
            else{
                $updatedPolicy.DstEntityInfoId = $policy.DstEntityInfoId
                $null = $PSBoundParameters.Remove('DstEntityInfoId')
            }            
        
            if($PSBoundParameters['DstPort']){
                $updatedPolicy.DstPort = $PSBoundParameters['DstPort']
                $null = $PSBoundParameters.Remove('DstPort')
            }
            else{
                $updatedPolicy.DstPort = $policy.ItemDstPort
                $null = $PSBoundParameters.Remove('DstPort')
            }
            
            if($PSBoundParameters['DstProcessNames']){
                $updatedPolicy.DstProcessNames = $PSBoundParameters['DstProcessNames']
                $null = $PSBoundParameters.Remove('DstProcessNames')
            }
            else{
                $updatedPolicy.DstProcessNames = $policy.ItemDstProcessNames
                $null = $PSBoundParameters.Remove('DstProcessNames')
            }

            if($PSBoundParameters['ExcludedSrcEntityInfos']){
                $updatedPolicy.ExcludedSrcEntityInfos = $PSBoundParameters['ExcludedSrcEntityInfos']
                $null = $PSBoundParameters.Remove('ExcludedSrcEntityInfos')
            }
            else{
                $updatedPolicy.ExcludedSrcEntityInfos = @($policy.ItemExcludedSrcEntityInfos)
                $null = $PSBoundParameters.Remove('ExcludedSrcEntityInfos')
            }

            if($PSBoundParameters['ExcludedSrcProcesses']){
                $updatedPolicy.ExcludedSrcProcesses = $PSBoundParameters['ExcludedSrcProcesses']
                $null = $PSBoundParameters.Remove('ExcludedSrcProcesses')
            }
            else{
                $updatedPolicy.ExcludedSrcProcesses = $policy.ItemExcludedSrcProcesses
                $null = $PSBoundParameters.Remove('ExcludedSrcProcesses')
            }
        
            if($PSBoundParameters['FallbackToLoggedOnUser']){
                $updatedPolicy.FallbackToLoggedOnUser = $PSBoundParameters['FallbackToLoggedOnUser']
                $null = $PSBoundParameters.Remove('FallbackToLoggedOnUser')
            }
            else{
                $updatedPolicy.FallbackToLoggedOnUser = $policy.ItemFallbackToLoggedOnUser
                $null = $PSBoundParameters.Remove('FallbackToLoggedOnUser')
            }

            if($PSBoundParameters['MfaMethods']){
                $updatedPolicy.MfaMethods = $PSBoundParameters['MfaMethods']
                $null = $PSBoundParameters.Remove('MfaMethods')
            }
            else{
                $updatedPolicy.MfaMethods = $policy.ItemMfaMethods
                $null = $PSBoundParameters.Remove('MfaMethods')
            } 

            if($PSBoundParameters['OverrideBuiltins']){
                $updatedPolicy.OverrideBuiltins = $PSBoundParameters['OverrideBuiltins']
                $null = $PSBoundParameters.Remove('OverrideBuiltins')
            }
            else{
                $updatedPolicy.OverrideBuiltins = $policy.ItemOverrideBuiltins
                $null = $PSBoundParameters.Remove('OverrideBuiltins')
            }
        
            if($PSBoundParameters['ProtocolType']){
                $updatedPolicy.ProtocolType = $PSBoundParameters['ProtocolType']
                $null = $PSBoundParameters.Remove('ProtocolType')
            }
            else{
                $updatedPolicy.ProtocolType = $policy.ItemProtocolType
                $null = $PSBoundParameters.Remove('ProtocolType')
            }

            if($PSBoundParameters['RestrictLoginToOriginatingUser']){
                $updatedPolicy.RestrictLoginToOriginatingUser = $PSBoundParameters['RestrictLoginToOriginatingUser']
                $null = $PSBoundParameters.Remove('RestrictLoginToOriginatingUser')
            }
            else{
                $updatedPolicy.RestrictLoginToOriginatingUser = $policy.ItemRestrictLoginToOriginatingUser
                $null = $PSBoundParameters.Remove('RestrictLoginToOriginatingUser')
            }
        
            if($PSBoundParameters['RuleDuration']){
                $updatedPolicy.RuleDuration = $PSBoundParameters['RuleDuration']
                $null = $PSBoundParameters.Remove('RuleDuration')
            }
            else{
                $updatedPolicy.RuleDuration = $policy.ItemRuleDuration
                $null = $PSBoundParameters.Remove('RuleDuration')
            }
            
            if($PSBoundParameters['SrcEntityInfos']){
                $updatedPolicy.SrcEntityInfos = $PSBoundParameters['SrcEntityInfos']
                $null = $PSBoundParameters.Remove('SrcEntityInfos')
            }
            else{
                $updatedPolicy.SrcEntityInfos = @($policy.ItemSrcEntityInfos)
                $null = $PSBoundParameters.Remove('SrcEntityInfos')
            }
            
            if($PSBoundParameters['SrcProcessNames']){
                $updatedPolicy.SrcProcessNames = $PSBoundParameters['SrcProcessNames']
                $null = $PSBoundParameters.Remove('SrcProcessNames')
            }
            else{
                $updatedPolicy.SrcProcessNames = $policy.ItemSrcProcessNames
                $null = $PSBoundParameters.Remove('SrcProcessNames')
            }

            if($PSBoundParameters['SrcUserInfos']){
                $updatedPolicy.SrcUserInfos = $PSBoundParameters['SrcUserInfos']
                $null = $PSBoundParameters.Remove('SrcUserInfos')
            }
            else{
                $updatedPolicy.SrcUserInfos = @($policy.ItemSrcUserInfos)
                $null = $PSBoundParameters.Remove('SrcUserInfos')
            }
            
            if($PSBoundParameters['State']){
                $updatedPolicy.State = $PSBoundParameters['State']
                $null = $PSBoundParameters.Remove('State')
            }
            else{
                $updatedPolicy.State = $policy.ItemState
                $null = $PSBoundParameters.Remove('State')
            }
            
            #Write-Debug $updatedPolicy | Out-String
            $null = $PSBoundParameters.Add('Body', $updatedPolicy)
            ZeroNetworks.internal\Update-ZNUserMfaInboundPolicy @PSBoundParameters
        }
        catch {
            throw
        }
    }
}
# SIG # Begin signature block
# MII9bAYJKoZIhvcNAQcCoII9XTCCPVkCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCCPMiDfdkctyzwF
# KLCpz3LrnzxhrSXOM9+2y2xxUrmzhqCCIrIwggXMMIIDtKADAgECAhBUmNLR1FsZ
# lUgTecgRwIeZMA0GCSqGSIb3DQEBDAUAMHcxCzAJBgNVBAYTAlVTMR4wHAYDVQQK
# ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jvc29mdCBJZGVu
# dGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgMjAy
# MDAeFw0yMDA0MTYxODM2MTZaFw00NTA0MTYxODQ0NDBaMHcxCzAJBgNVBAYTAlVT
# MR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xSDBGBgNVBAMTP01pY3Jv
# c29mdCBJZGVudGl0eSBWZXJpZmljYXRpb24gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRo
# b3JpdHkgMjAyMDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALORKgeD
# Bmf9np3gx8C3pOZCBH8Ppttf+9Va10Wg+3cL8IDzpm1aTXlT2KCGhFdFIMeiVPvH
# or+Kx24186IVxC9O40qFlkkN/76Z2BT2vCcH7kKbK/ULkgbk/WkTZaiRcvKYhOuD
# PQ7k13ESSCHLDe32R0m3m/nJxxe2hE//uKya13NnSYXjhr03QNAlhtTetcJtYmrV
# qXi8LW9J+eVsFBT9FMfTZRY33stuvF4pjf1imxUs1gXmuYkyM6Nix9fWUmcIxC70
# ViueC4fM7Ke0pqrrBc0ZV6U6CwQnHJFnni1iLS8evtrAIMsEGcoz+4m+mOJyoHI1
# vnnhnINv5G0Xb5DzPQCGdTiO0OBJmrvb0/gwytVXiGhNctO/bX9x2P29Da6SZEi3
# W295JrXNm5UhhNHvDzI9e1eM80UHTHzgXhgONXaLbZ7LNnSrBfjgc10yVpRnlyUK
# xjU9lJfnwUSLgP3B+PR0GeUw9gb7IVc+BhyLaxWGJ0l7gpPKWeh1R+g/OPTHU3mg
# trTiXFHvvV84wRPmeAyVWi7FQFkozA8kwOy6CXcjmTimthzax7ogttc32H83rwjj
# O3HbbnMbfZlysOSGM1l0tRYAe1BtxoYT2v3EOYI9JACaYNq6lMAFUSw0rFCZE4e7
# swWAsk0wAly4JoNdtGNz764jlU9gKL431VulAgMBAAGjVDBSMA4GA1UdDwEB/wQE
# AwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTIftJqhSobyhmYBAcnz1AQ
# T2ioojAQBgkrBgEEAYI3FQEEAwIBADANBgkqhkiG9w0BAQwFAAOCAgEAr2rd5hnn
# LZRDGU7L6VCVZKUDkQKL4jaAOxWiUsIWGbZqWl10QzD0m/9gdAmxIR6QFm3FJI9c
# Zohj9E/MffISTEAQiwGf2qnIrvKVG8+dBetJPnSgaFvlVixlHIJ+U9pW2UYXeZJF
# xBA2CFIpF8svpvJ+1Gkkih6PsHMNzBxKq7Kq7aeRYwFkIqgyuH4yKLNncy2RtNwx
# AQv3Rwqm8ddK7VZgxCwIo3tAsLx0J1KH1r6I3TeKiW5niB31yV2g/rarOoDXGpc8
# FzYiQR6sTdWD5jw4vU8w6VSp07YEwzJ2YbuwGMUrGLPAgNW3lbBeUU0i/OxYqujY
# lLSlLu2S3ucYfCFX3VVj979tzR/SpncocMfiWzpbCNJbTsgAlrPhgzavhgplXHT2
# 6ux6anSg8Evu75SjrFDyh+3XOjCDyft9V77l4/hByuVkrrOj7FjshZrM77nq81YY
# uVxzmq/FdxeDWds3GhhyVKVB0rYjdaNDmuV3fJZ5t0GNv+zcgKCf0Xd1WF81E+Al
# GmcLfc4l+gcK5GEh2NQc5QfGNpn0ltDGFf5Ozdeui53bFv0ExpK91IjmqaOqu/dk
# ODtfzAzQNb50GQOmxapMomE2gj4d8yu8l13bS3g7LfU772Aj6PXsCyM2la+YZr9T
# 03u4aUoqlmZpxJTG9F9urJh4iIAGXKKy7aIwggbtMIIE1aADAgECAhMzAAPTPQvc
# XBnyhp0vAAAAA9M9MA0GCSqGSIb3DQEBDAUAMFoxCzAJBgNVBAYTAlVTMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJ
# RCBWZXJpZmllZCBDUyBBT0MgQ0EgMDIwHhcNMjUwNTI1MDc1ODAyWhcNMjUwNTI4
# MDc1ODAyWjBrMQswCQYDVQQGEwJJTDERMA8GA1UECBMIVGVsIEF2aXYxETAPBgNV
# BAcTCFRlbCBBdml2MRowGAYDVQQKExFaZXJvIE5ldHdvcmtzIEx0ZDEaMBgGA1UE
# AxMRWmVybyBOZXR3b3JrcyBMdGQwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGK
# AoIBgQCtkJPD5qKUQMrH4Bo11COp7iB1nQHXkjPaC4bYu8lRM14rPaqevmKu6Pf3
# sH+pK2niDn04drRNxYV1ONFPTapC/P7bty5yxJ5JlDZLZy195jDeBci8WWVc6O0+
# +qCYpZff0Di9KewnbuZ98OIlaSXkEbIZWOwixde9XnekCvr5eT2nyJqe8GEqOhvH
# D/lv+E7qVoYDJT3qDAwsPIVx09DAbJQpq4KJF6+Wccf+FVgPgVi5l4zICCey/63k
# YSemA2Z7GDfBMu3OeVmj6/hsJFqxDIe8bxBlmrkkwCrMNAaPghqYERsyAm9+RCkh
# gvvb2mcjN2wrhbq8ysSbzt9mIf5KaOcgR6GxrNmpXwy6xGSChPX95ylgV72QBFDE
# +2ngfCg3/lB6wsGuQFbODO/FAk3c1zwZyb1TxMLKOWAzKjBEVyq5JJeBBPbLOeuG
# TqD51l+hzeFfZVcNzR8VbtwIeyliaPLxNstBm3kMS6CRtIUOQwLIwvILqBUPkqgF
# Nu97IEECAwEAAaOCAhkwggIVMAwGA1UdEwEB/wQCMAAwDgYDVR0PAQH/BAQDAgeA
# MDwGA1UdJQQ1MDMGCisGAQQBgjdhAQAGCCsGAQUFBwMDBhsrBgEEAYI3YYGwosY4
# g9jRjh+BtaSjBsGi+2swHQYDVR0OBBYEFH89rxnEAjFZHBXjSx7iCiKtAKs6MB8G
# A1UdIwQYMBaAFCRFmaF3kCp8w8qDsG5kFoQq+CxnMGcGA1UdHwRgMF4wXKBaoFiG
# Vmh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUy
# MElEJTIwVmVyaWZpZWQlMjBDUyUyMEFPQyUyMENBJTIwMDIuY3JsMIGlBggrBgEF
# BQcBAQSBmDCBlTBkBggrBgEFBQcwAoZYaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
# L3BraW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBJRCUyMFZlcmlmaWVkJTIwQ1MlMjBB
# T0MlMjBDQSUyMDAyLmNydDAtBggrBgEFBQcwAYYhaHR0cDovL29uZW9jc3AubWlj
# cm9zb2Z0LmNvbS9vY3NwMGYGA1UdIARfMF0wUQYMKwYBBAGCN0yDfQEBMEEwPwYI
# KwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9S
# ZXBvc2l0b3J5Lmh0bTAIBgZngQwBBAEwDQYJKoZIhvcNAQEMBQADggIBANOmY0P8
# VemBIwTUfwOUSE4Zz//ZPTaQkRny2UIILHmjLJ8V4ieni7zzKU2q4DlrNrLSHmap
# C/teP93Xm9mhPVe2cy/fKH/h7ejas96yo0E4FXVfEIK4E0+XyY5I2LNwdcT4vVdT
# w7GdLBDUVuMxFuR7id3ZbfHO2/8zZ13K5lemqfxJ3FCQZNwmLxmQys7k4PimdfLv
# 4bXCS3mInY/zm78hVmwQfVL/EMcoag2P2ujBFf1C9Hj+sjIqDBKanJp5uRRVj4lD
# kMIed0wQszeekOiqpEvr1JWeIunamcFAY0QaG1Og9hqFacl2+IVhQ+eoLrJuHNXD
# FOqHs/4ZnJKZnT5yRizbpWOP96ZDwIlF2MHa0uPGxGFinvpdbMytfkcC6dRVDgXl
# FQIdsD766JiXLemuMDxGIHc2adAJhe6sApKZdarA7Lf5xcMIeT9IOQZAqVfSaHyb
# IjqmN5YyOvnQg9HgbcUZeJohYIN3Gs/31zoJqNFsIExt0/tasdI9DuUSk6s+MqEa
# PsBSU3uDNYzsp3qoMRX36ni2m2Ri63GnxgFgcXyTLV4w6PsEiWNaFUQQ43ODgPue
# pBwD+XMFX2CKsAQzx6SeyfoePqGSVwU0/r3VxIUv8SBo3jkz6vFKsK2KHyna6JyE
# aix6Vt2o7jG5NNyRssH2uUsR1uppVQKz+oiAMIIG7TCCBNWgAwIBAgITMwAD0z0L
# 3FwZ8oadLwAAAAPTPTANBgkqhkiG9w0BAQwFADBaMQswCQYDVQQGEwJVUzEeMBwG
# A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSswKQYDVQQDEyJNaWNyb3NvZnQg
# SUQgVmVyaWZpZWQgQ1MgQU9DIENBIDAyMB4XDTI1MDUyNTA3NTgwMloXDTI1MDUy
# ODA3NTgwMlowazELMAkGA1UEBhMCSUwxETAPBgNVBAgTCFRlbCBBdml2MREwDwYD
# VQQHEwhUZWwgQXZpdjEaMBgGA1UEChMRWmVybyBOZXR3b3JrcyBMdGQxGjAYBgNV
# BAMTEVplcm8gTmV0d29ya3MgTHRkMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIB
# igKCAYEArZCTw+ailEDKx+AaNdQjqe4gdZ0B15Iz2guG2LvJUTNeKz2qnr5iruj3
# 97B/qStp4g59OHa0TcWFdTjRT02qQvz+27cucsSeSZQ2S2ctfeYw3gXIvFllXOjt
# PvqgmKWX39A4vSnsJ27mffDiJWkl5BGyGVjsIsXXvV53pAr6+Xk9p8ianvBhKjob
# xw/5b/hO6laGAyU96gwMLDyFcdPQwGyUKauCiRevlnHH/hVYD4FYuZeMyAgnsv+t
# 5GEnpgNmexg3wTLtznlZo+v4bCRasQyHvG8QZZq5JMAqzDQGj4IamBEbMgJvfkQp
# IYL729pnIzdsK4W6vMrEm87fZiH+SmjnIEehsazZqV8MusRkgoT1/ecpYFe9kARQ
# xPtp4HwoN/5QesLBrkBWzgzvxQJN3Nc8Gcm9U8TCyjlgMyowRFcquSSXgQT2yznr
# hk6g+dZfoc3hX2VXDc0fFW7cCHspYmjy8TbLQZt5DEugkbSFDkMCyMLyC6gVD5Ko
# BTbveyBBAgMBAAGjggIZMIICFTAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIH
# gDA8BgNVHSUENTAzBgorBgEEAYI3YQEABggrBgEFBQcDAwYbKwYBBAGCN2GBsKLG
# OIPY0Y4fgbWkowbBovtrMB0GA1UdDgQWBBR/Pa8ZxAIxWRwV40se4goirQCrOjAf
# BgNVHSMEGDAWgBQkRZmhd5AqfMPKg7BuZBaEKvgsZzBnBgNVHR8EYDBeMFygWqBY
# hlZodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQl
# MjBJRCUyMFZlcmlmaWVkJTIwQ1MlMjBBT0MlMjBDQSUyMDAyLmNybDCBpQYIKwYB
# BQUHAQEEgZgwgZUwZAYIKwYBBQUHMAKGWGh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
# bS9wa2lvcHMvY2VydHMvTWljcm9zb2Z0JTIwSUQlMjBWZXJpZmllZCUyMENTJTIw
# QU9DJTIwQ0ElMjAwMi5jcnQwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vbmVvY3NwLm1p
# Y3Jvc29mdC5jb20vb2NzcDBmBgNVHSAEXzBdMFEGDCsGAQQBgjdMg30BATBBMD8G
# CCsGAQUFBwIBFjNodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL0RvY3Mv
# UmVwb3NpdG9yeS5odG0wCAYGZ4EMAQQBMA0GCSqGSIb3DQEBDAUAA4ICAQDTpmND
# /FXpgSME1H8DlEhOGc//2T02kJEZ8tlCCCx5oyyfFeInp4u88ylNquA5azay0h5m
# qQv7Xj/d15vZoT1XtnMv3yh/4e3o2rPesqNBOBV1XxCCuBNPl8mOSNizcHXE+L1X
# U8OxnSwQ1FbjMRbke4nd2W3xztv/M2ddyuZXpqn8SdxQkGTcJi8ZkMrO5OD4pnXy
# 7+G1wkt5iJ2P85u/IVZsEH1S/xDHKGoNj9rowRX9QvR4/rIyKgwSmpyaebkUVY+J
# Q5DCHndMELM3npDoqqRL69SVniLp2pnBQGNEGhtToPYahWnJdviFYUPnqC6ybhzV
# wxTqh7P+GZySmZ0+ckYs26Vjj/emQ8CJRdjB2tLjxsRhYp76XWzMrX5HAunUVQ4F
# 5RUCHbA++uiYly3prjA8RiB3NmnQCYXurAKSmXWqwOy3+cXDCHk/SDkGQKlX0mh8
# myI6pjeWMjr50IPR4G3FGXiaIWCDdxrP99c6CajRbCBMbdP7WrHSPQ7lEpOrPjKh
# Gj7AUlN7gzWM7Kd6qDEV9+p4tptkYutxp8YBYHF8ky1eMOj7BIljWhVEEONzg4D7
# nqQcA/lzBV9girAEM8eknsn6Hj6hklcFNP691cSFL/EgaN45M+rxSrCtih8p2uic
# hGoselbdqO4xuTTckbLB9rlLEdbqaVUCs/qIgDCCB1owggVCoAMCAQICEzMAAAAE
# llBL0tvuy4gAAAAAAAQwDQYJKoZIhvcNAQEMBQAwYzELMAkGA1UEBhMCVVMxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjE0MDIGA1UEAxMrTWljcm9zb2Z0
# IElEIFZlcmlmaWVkIENvZGUgU2lnbmluZyBQQ0EgMjAyMTAeFw0yMTA0MTMxNzMx
# NTJaFw0yNjA0MTMxNzMxNTJaMFoxCzAJBgNVBAYTAlVTMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xKzApBgNVBAMTIk1pY3Jvc29mdCBJRCBWZXJpZmll
# ZCBDUyBBT0MgQ0EgMDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDh
# zqDoM6JjpsA7AI9sGVAXa2OjdyRRm5pvlmisydGnis6bBkOJNsinMWRn+TyTiK8E
# lXXDn9v+jKQj55cCpprEx3IA7Qyh2cRbsid9D6tOTKQTMfFFsI2DooOxOdhz9h0v
# sgiImWLyTnW6locsvsJib1g1zRIVi+VoWPY7QeM73L81GZxY2NqZk6VGPFbZxaBS
# xR1rNIeBEJ6TztXZsz/Xtv6jxZdRb3UimCBFqyaJnrlYQUdcpvKGbYtuEErplaZC
# gV4T4ZaspYIYr+r/hGJNow2Edda9a/7/8jnxS07FWLcNorV9DpgvIggYfMPgKa1y
# saK/G6mr9yuse6cY0Hv/9Ca6XZk/0dw6Zj9qm2BSfBP7bSD8DfuIN+65XDrJLYuj
# T+Sn+Nv4ny8TgUyoiLDEYHIvjzY8xUELep381sVBrwyaPp6exT4cSq/1qv4BtwrC
# 6ZtmokkqZCsZpI11Z+TY2h2BxY6aruPKFvHBk6OcuPT9vCexQ1w0B7T2/6qKjPJB
# B6zwDdRc9xFBvwb5zTJo7YgKJ9ZMrvJK7JQnzyTWa03bYI1+1uOK2IB5p+hn1WaG
# flF9v5L8rlqtW9Nwu6S3k91MNDGXnnsQgToD7pcUGl2yM7OQvN0SHsQuTw9U8yNB
# 88KAq0nzhzXt93YL36nEXWURBQVdj9i0Iv42az1xZQIDAQABo4ICDjCCAgowDgYD
# VR0PAQH/BAQDAgGGMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBQkRZmhd5Aq
# fMPKg7BuZBaEKvgsZzBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYz
# aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnku
# aHRtMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMBIGA1UdEwEB/wQIMAYBAf8C
# AQAwHwYDVR0jBBgwFoAU2UEpsA8PY2zvadf1zSmepEhqMOYwcAYDVR0fBGkwZzBl
# oGOgYYZfaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jcmwvTWljcm9z
# b2Z0JTIwSUQlMjBWZXJpZmllZCUyMENvZGUlMjBTaWduaW5nJTIwUENBJTIwMjAy
# MS5jcmwwga4GCCsGAQUFBwEBBIGhMIGeMG0GCCsGAQUFBzAChmFodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMElEJTIwVmVy
# aWZpZWQlMjBDb2RlJTIwU2lnbmluZyUyMFBDQSUyMDIwMjEuY3J0MC0GCCsGAQUF
# BzABhiFodHRwOi8vb25lb2NzcC5taWNyb3NvZnQuY29tL29jc3AwDQYJKoZIhvcN
# AQEMBQADggIBAGctOF2Vsw0iiR0q3NJryKj6kQ73kJzdU7Jj+FCwghx0zKTaEk7M
# u38zVZd9DISUOT9C3IvNfrdN05vkn6c7y3SnPPCLtli8yI2oq8BA7nSww4mfdPeE
# I+mnE02GgYVXHPZTKJDhva86tywsr1M4QVdZtQwk5tH08zTBmwAEiG7iTpVUvEQN
# 7QZJ5Bf9kTs8d9ODjgu5+3ggqpiae/UK6iyneCUVixV6AucxZlRnxS070XxAKICi
# 4liEvk6UKSyANv2978dCEsWd6V+Dp1C5sgWyoH0iUKidgoln8doxm9i0DvL0Q5Er
# hzGW9N60JcAdrKJJcfS54T9P3bBUbRyy/lV1TKPrJWubba+UpgCRcg0q8M4Hz6zi
# H5OBKGVRrYAK7YVafsnOVNJumTQgTxES5iaS7IT8FOST3dYMzHs/Auefgn7l+S9u
# ONDTw57B+kyGHxK491AqqZnjQjhbZTIkowxNt63XokWKZKoMKGCcIHqXCWl7SB9u
# j3tTumult8EqnoHaTZ/tj5ONatBg3451w87JAB3EYY8HAlJokbeiF2SULGAAnlqc
# LF5iXtKNDkS5rpq2Mh5WE3Qp88sU+ljPkJBT4kLYfv3Hh387pg4VH1ph7nj8Ia6n
# t1FQh8tK/X+PQM9zoSV/djJbGWhaPzJ5jeQetkVoCVEzCEBfI9DesRf3MIIHnjCC
# BYagAwIBAgITMwAAAAeHozSje6WOHAAAAAAABzANBgkqhkiG9w0BAQwFADB3MQsw
# CQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMUgwRgYD
# VQQDEz9NaWNyb3NvZnQgSWRlbnRpdHkgVmVyaWZpY2F0aW9uIFJvb3QgQ2VydGlm
# aWNhdGUgQXV0aG9yaXR5IDIwMjAwHhcNMjEwNDAxMjAwNTIwWhcNMzYwNDAxMjAx
# NTIwWjBjMQswCQYDVQQGEwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMTQwMgYDVQQDEytNaWNyb3NvZnQgSUQgVmVyaWZpZWQgQ29kZSBTaWduaW5n
# IFBDQSAyMDIxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsvDArxmI
# KOLdVHpMSWxpCFUJtFL/ekr4weslKPdnF3cpTeuV8veqtmKVgok2rO0D05BpyvUD
# Cg1wdsoEtuxACEGcgHfjPF/nZsOkg7c0mV8hpMT/GvB4uhDvWXMIeQPsDgCzUGzT
# voi76YDpxDOxhgf8JuXWJzBDoLrmtThX01CE1TCCvH2sZD/+Hz3RDwl2MsvDSdX5
# rJDYVuR3bjaj2QfzZFmwfccTKqMAHlrz4B7ac8g9zyxlTpkTuJGtFnLBGasoOnn5
# NyYlf0xF9/bjVRo4Gzg2Yc7KR7yhTVNiuTGH5h4eB9ajm1OCShIyhrKqgOkc4smz
# 6obxO+HxKeJ9bYmPf6KLXVNLz8UaeARo0BatvJ82sLr2gqlFBdj1sYfqOf00Qm/3
# B4XGFPDK/H04kteZEZsBRc3VT2d/iVd7OTLpSH9yCORV3oIZQB/Qr4nD4YT/lWkh
# Vtw2v2s0TnRJubL/hFMIQa86rcaGMhNsJrhysLNNMeBhiMezU1s5zpusf54qlYu2
# v5sZ5zL0KvBDLHtL8F9gn6jOy3v7Jm0bbBHjrW5yQW7S36ALAt03QDpwW1JG1Hxu
# /FUXJbBO2AwwVG4Fre+ZQ5Od8ouwt59FpBxVOBGfN4vN2m3fZx1gqn52GvaiBz6o
# zorgIEjn+PhUXILhAV5Q/ZgCJ0u2+ldFGjcCAwEAAaOCAjUwggIxMA4GA1UdDwEB
# /wQEAwIBhjAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU2UEpsA8PY2zvadf1
# zSmepEhqMOYwVAYDVR0gBE0wSzBJBgRVHSAAMEEwPwYIKwYBBQUHAgEWM2h0dHA6
# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTAZ
# BgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAPBgNVHRMBAf8EBTADAQH/MB8GA1Ud
# IwQYMBaAFMh+0mqFKhvKGZgEByfPUBBPaKiiMIGEBgNVHR8EfTB7MHmgd6B1hnNo
# dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBJ
# ZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUyMFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1
# dGhvcml0eSUyMDIwMjAuY3JsMIHDBggrBgEFBQcBAQSBtjCBszCBgQYIKwYBBQUH
# MAKGdWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWljcm9z
# b2Z0JTIwSWRlbnRpdHklMjBWZXJpZmljYXRpb24lMjBSb290JTIwQ2VydGlmaWNh
# dGUlMjBBdXRob3JpdHklMjAyMDIwLmNydDAtBggrBgEFBQcwAYYhaHR0cDovL29u
# ZW9jc3AubWljcm9zb2Z0LmNvbS9vY3NwMA0GCSqGSIb3DQEBDAUAA4ICAQB/JSqe
# /tSr6t1mCttXI0y6XmyQ41uGWzl9xw+WYhvOL47BV09Dgfnm/tU4ieeZ7NAR5bgu
# orTCNr58HOcA1tcsHQqt0wJsdClsu8bpQD9e/al+lUgTUJEV80Xhco7xdgRrehby
# hUf4pkeAhBEjABvIUpD2LKPho5Z4DPCT5/0TlK02nlPwUbv9URREhVYCtsDM+31O
# FU3fDV8BmQXv5hT2RurVsJHZgP4y26dJDVF+3pcbtvh7R6NEDuYHYihfmE2HdQRq
# 5jRvLE1Eb59PYwISFCX2DaLZ+zpU4bX0I16ntKq4poGOFaaKtjIA1vRElItaOKcw
# tc04CBrXSfyL2Op6mvNIxTk4OaswIkTXbFL81ZKGD+24uMCwo/pLNhn7VHLfnxlM
# VzHQVL+bHa9KhTyzwdG/L6uderJQn0cGpLQMStUuNDArxW2wF16QGZ1NtBWgKA8K
# qv48M8HfFqNifN6+zt6J0GwzvU8g0rYGgTZR8zDEIJfeZxwWDHpSxB5FJ1VVU1LI
# AtB7o9PXbjXzGifaIMYTzU4YKt4vMNwwBmetQDHhdAtTPplOXrnI9SI6HeTtjDD3
# iUN/7ygbahmYOHk7VB7fwT4ze+ErCbMh6gHV1UuXPiLciloNxH6K4aMfZN1oLVk6
# YFeIJEokuPgNPa6EnTiOL60cPqfny+Fq8UiuZzGCGhAwghoMAgEBMHEwWjELMAkG
# A1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjErMCkGA1UE
# AxMiTWljcm9zb2Z0IElEIFZlcmlmaWVkIENTIEFPQyBDQSAwMgITMwAD0z0L3FwZ
# 8oadLwAAAAPTPTANBglghkgBZQMEAgEFAKBeMBAGCisGAQQBgjcCAQwxAjAAMBkG
# CSqGSIb3DQEJAzEMBgorBgEEAYI3AgEEMC8GCSqGSIb3DQEJBDEiBCBQ0hXm5mx9
# 1ivyUbJv/9hzKiGoaEIZd3CVr5XB2asvmjANBgkqhkiG9w0BAQEFAASCAYCsE6gd
# MRDM/A4s40DH3m9W6xefF0neb3cQ457vpShONpwOCVW6mii0pdFqD3dgfklPPUUF
# k3LfGgBS010o5J4BLEBnoGNnZ+L/KQbXNBCJjI5Ago9kYmwpDqxnfqg6SWufIPaT
# YwNIVW7COkxUvFB7mKjQBaf0AmqAkV1qvX8brbs8MzGKF4+FWdoUgc0Z3CeM6Lby
# gRIV/pJ5tSslziE0i4HqLgEiRh/o9i+9f7jRAbtreUqpeVxVKgF2zqsUIVaTAGho
# VsMgRTotMzQ0grBXBQiwpXSW6+vEFG6PnBXgfcGTy0BFrHaybvwnOy893e3EwtxN
# pqRAL/sTJfZ9skPkko+lbcNw1JoIx9OiIpujnngiI2qLIm2po8QkbWyV7Lr2Nw4Y
# s2xshp6K4gNFJlIl/XWKi2U5Wc1uWnagariV4MX4UebH7x5qEpKxJG0QK9FXGAeX
# H92M09RFQdCDhpXPsD/KCwmUQY9iwvQRtOyE43JmyiJ5v4+K/8C0JafIGjKhgheQ
# MIIXjAYKKwYBBAGCNwMDATGCF3wwghd4BgkqhkiG9w0BBwKgghdpMIIXZQIBAzEP
# MA0GCWCGSAFlAwQCAQUAMIIBYQYLKoZIhvcNAQkQAQSgggFQBIIBTDCCAUgCAQEG
# CisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQgvgDh54BKpwolWH6B1gThVqyf
# BrYttx16Gv4xley7BRQCBmgrHb8bWhgTMjAyNTA1MjUxMjQxNDguMTAyWjAEgAIB
# 9KCB4KSB3TCB2jELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
# BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEl
# MCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEmMCQGA1UECxMd
# VGhhbGVzIFRTUyBFU046NDVENi05NkM1LTVFNjMxNTAzBgNVBAMTLE1pY3Jvc29m
# dCBQdWJsaWMgUlNBIFRpbWUgU3RhbXBpbmcgQXV0aG9yaXR5oIIPIDCCB4IwggVq
# oAMCAQICEzMAAAAF5c8P/2YuyYcAAAAAAAUwDQYJKoZIhvcNAQEMBQAwdzELMAkG
# A1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjFIMEYGA1UE
# AxM/TWljcm9zb2Z0IElkZW50aXR5IFZlcmlmaWNhdGlvbiBSb290IENlcnRpZmlj
# YXRlIEF1dGhvcml0eSAyMDIwMB4XDTIwMTExOTIwMzIzMVoXDTM1MTExOTIwNDIz
# MVowYTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjEyMDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENB
# IDIwMjAwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCefOdSY/3gxZ8F
# fWO1BiKjHB7X55cz0RMFvWVGR3eRwV1wb3+yq0OXDEqhUhxqoNv6iYWKjkMcLhEF
# xvJAeNcLAyT+XdM5i2CgGPGcb95WJLiw7HzLiBKrxmDj1EQB/mG5eEiRBEp7dDGz
# xKCnTYocDOcRr9KxqHydajmEkzXHOeRGwU+7qt8Md5l4bVZrXAhK+WSk5CihNQsW
# bzT1nRliVDwunuLkX1hyIWXIArCfrKM3+RHh+Sq5RZ8aYyik2r8HxT+l2hmRllBv
# E2Wok6IEaAJanHr24qoqFM9WLeBUSudz+qL51HwDYyIDPSQ3SeHtKog0ZubDk4hE
# LQSxnfVYXdTGncaBnB60QrEuazvcob9n4yR65pUNBCF5qeA4QwYnilBkfnmeAjRN
# 3LVuLr0g0FXkqfYdUmj1fFFhH8k8YBozrEaXnsSL3kdTD01X+4LfIWOuFzTzuosl
# BrBILfHNj8RfOxPgjuwNvE6YzauXi4orp4Sm6tF245DaFOSYbWFK5ZgG6cUY2/bU
# q3g3bQAqZt65KcaewEJ3ZyNEobv35Nf6xN6FrA6jF9447+NHvCjeWLCQZ3M8lgeC
# cnnhTFtyQX3XgCoc6IRXvFOcPVrr3D9RPHCMS6Ckg8wggTrtIVnY8yjbvGOUsAdZ
# beXUIQAWMs0d3cRDv09SvwVRd61evQIDAQABo4ICGzCCAhcwDgYDVR0PAQH/BAQD
# AgGGMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRraSg6NS9IY0DPe9ivSek+
# 2T3bITBUBgNVHSAETTBLMEkGBFUdIAAwQTA/BggrBgEFBQcCARYzaHR0cDovL3d3
# dy5taWNyb3NvZnQuY29tL3BraW9wcy9Eb2NzL1JlcG9zaXRvcnkuaHRtMBMGA1Ud
# JQQMMAoGCCsGAQUFBwMIMBkGCSsGAQQBgjcUAgQMHgoAUwB1AGIAQwBBMA8GA1Ud
# EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUyH7SaoUqG8oZmAQHJ89QEE9oqKIwgYQG
# A1UdHwR9MHsweaB3oHWGc2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMv
# Y3JsL01pY3Jvc29mdCUyMElkZW50aXR5JTIwVmVyaWZpY2F0aW9uJTIwUm9vdCUy
# MENlcnRpZmljYXRlJTIwQXV0aG9yaXR5JTIwMjAyMC5jcmwwgZQGCCsGAQUFBwEB
# BIGHMIGEMIGBBggrBgEFBQcwAoZ1aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
# aW9wcy9jZXJ0cy9NaWNyb3NvZnQlMjBJZGVudGl0eSUyMFZlcmlmaWNhdGlvbiUy
# MFJvb3QlMjBDZXJ0aWZpY2F0ZSUyMEF1dGhvcml0eSUyMDIwMjAuY3J0MA0GCSqG
# SIb3DQEBDAUAA4ICAQBfiHbHfm21WhV150x4aPpO4dhEmSUVpbixNDmv6TvuIHv1
# xIs174bNGO/ilWMm+Jx5boAXrJxagRhHQtiFprSjMktTliL4sKZyt2i+SXncM23g
# RezzsoOiBhv14YSd1Klnlkzvgs29XNjT+c8hIfPRe9rvVCMPiH7zPZcw5nNjthDQ
# +zD563I1nUJ6y59TbXWsuyUsqw7wXZoGzZwijWT5oc6GvD3HDokJY401uhnj3ubB
# hbkR83RbfMvmzdp3he2bvIUztSOuFzRqrLfEvsPkVHYnvH1wtYyrt5vShiKheGpX
# a2AWpsod4OJyT4/y0dggWi8g/tgbhmQlZqDUf3UqUQsZaLdIu/XSjgoZqDjamzCP
# JtOLi2hBwL+KsCh0Nbwc21f5xvPSwym0Ukr4o5sCcMUcSy6TEP7uMV8RX0eH/4JL
# EpGyae6Ki8JYg5v4fsNGif1OXHJ2IWG+7zyjTDfkmQ1snFOTgyEX8qBpefQbF0fx
# 6URrYiarjmBprwP6ZObwtZXJ23jK3Fg/9uqM3j0P01nzVygTppBabzxPAh/hHhhl
# s6kwo3QLJ6No803jUsZcd4JQxiYHHc+Q/wAMcPUnYKv/q2O444LO1+n6j01z5mgg
# CSlRwD9faBIySAcA9S8h22hIAcRQqIGEjolCK9F6nK9ZyX4lhthsGHumaABdWzCC
# B5YwggV+oAMCAQICEzMAAABJcL2GqhZ4TDEAAAAAAEkwDQYJKoZIhvcNAQEMBQAw
# YTELMAkGA1UEBhMCVVMxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEy
# MDAGA1UEAxMpTWljcm9zb2Z0IFB1YmxpYyBSU0EgVGltZXN0YW1waW5nIENBIDIw
# MjAwHhcNMjQxMTI2MTg0ODU0WhcNMjUxMTE5MTg0ODU0WjCB2jELMAkGA1UEBhMC
# VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNV
# BAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFt
# ZXJpY2EgT3BlcmF0aW9uczEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046NDVENi05
# NkM1LTVFNjMxNTAzBgNVBAMTLE1pY3Jvc29mdCBQdWJsaWMgUlNBIFRpbWUgU3Rh
# bXBpbmcgQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
# +pnMBEJ5wYi/nr7N9J+y+uRiVD3AMm7/Q/hyzkTwT7NbQgYHobrt4NzYffDmTKX7
# EhoDOE0ivbiIlvSCp3AggM2AUVGQ3DpZRWYsTQJrPgEIK7JJ0WADhp8HOLAm3RDE
# fTkTyi2VZg4jJtYSMaQpgGPlp32JoQlHfWnYLNTwHoxhLEhuM2nv8tYkS0G30+SF
# +0jO4E61Zqr/oSHsxHE008r+dVyI5o6M9dCPczDaqAv/+aDc6QJ50tj/2Ug5uK8w
# 3+otsQEh4R6n8JBDvXigwdJz8jgHdIzS5qTptOEHqzw0WiaSfA0xaF7AyeRYqe3K
# bD40UokOnXfiMJRbIXNz+wxi1tu1sKJIwPWP7PJFV4xnESb9uXsao5CCkWhCNqOZ
# kbX2VKSkvjLVy3CChpxTKZHgTsYERHg5goOr5svVmlI+zxZaPf7SzoLhk1eFiE2I
# 8LUQ7hEs8oKfGtFkEwedPAjv7bpS1jKd5b6zjnTPGaNpI50Ulj3m4oqoQ1s0snP/
# tOOal3mVhsj9YbTKoY142uqgkiZhxrYMgIxkCAowm2OQDAWVhzITxjer/KGHzwnL
# 4VX/1BSfJRs8LnI0GKDFhrMT3N1EufYiHEwvY+cw9wuvZVuSToLZzXDAWhqBbOCl
# XL3e9z3dUlYolWRCLPgGWE9xCf6qrugNB2NZOrADiOMCAwEAAaOCAcswggHHMB0G
# A1UdDgQWBBRVjnhPXjrArN1QumQu7fwTWwJKCzAfBgNVHSMEGDAWgBRraSg6NS9I
# Y0DPe9ivSek+2T3bITBsBgNVHR8EZTBjMGGgX6BdhltodHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBQdWJsaWMlMjBSU0ElMjBU
# aW1lc3RhbXBpbmclMjBDQSUyMDIwMjAuY3JsMHkGCCsGAQUFBwEBBG0wazBpBggr
# BgEFBQcwAoZdaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9N
# aWNyb3NvZnQlMjBQdWJsaWMlMjBSU0ElMjBUaW1lc3RhbXBpbmclMjBDQSUyMDIw
# MjAuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwDgYD
# VR0PAQH/BAQDAgeAMGYGA1UdIARfMF0wUQYMKwYBBAGCN0yDfQEBMEEwPwYIKwYB
# BQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvRG9jcy9SZXBv
# c2l0b3J5Lmh0bTAIBgZngQwBBAIwDQYJKoZIhvcNAQEMBQADggIBAGF+OSZ1G/RY
# me6il24h6LDoni1mwawibMfur2XjEPdVwGjz91D3c7wavAVE1rnX1EKWyVJ1+QNC
# sN2EewZ9h3/Fhl1tYrjBz+6T4jgOzsgFEXiFhmuIieWMY2+eFMFSw4RcNUdP1fOJ
# z1cNNPk12XL2W69ymUXhJLZjD1xVE98Y+Nt2NG0WPzXBHkzQW+rhepIsL1hQmgTW
# Xs1cP/R/K7AT4VB8/D7X+u3U2HILtYJad72zlBYfQQZH5tsPsVjlBtRWYcMeAsdJ
# zSNjsxOyWgyA6jqZivOm7wLuv1xS7yiaIfyTotDGNHJ1VGPwITrbTv0PQiirFLum
# FLIUEywIXqC1sudZNxXI8z48QmuHH/KMPGkiFyq1E2XUB3PDjgjv5bCHV170f/Lg
# h+msMFqO/V3YoOfAjsRUdgJX7TlE4Dnp9NhPqLTcH8evZldegxHs6YzEflUovsJp
# BK6wCBuqt9TAqx1rH0REYeBmTVIVUh68i6yVmPFYsJazv8WXVDLbmSDuCrQ8kbv4
# MHdoYJy7dF/qmURf9xkBuajORGaT+uRmDRLboMZHLIufi/pglNDt0Bb16+HvkJ65
# 4b+sTZ45SWNLmUb9QXKSt5iMMdCfzsM8LDsovzgeRG+Oal7YeLSi6GSOGxPLlcSv
# tXN2csLGzRPVNMJtFeaToNBfSPI9KyaIMYIGxDCCBsACAQEweDBhMQswCQYDVQQG
# EwJVUzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylN
# aWNyb3NvZnQgUHVibGljIFJTQSBUaW1lc3RhbXBpbmcgQ0EgMjAyMAITMwAAAElw
# vYaqFnhMMQAAAAAASTANBglghkgBZQMEAgEFAKCCBB0wEQYLKoZIhvcNAQkQAg8x
# AgUAMBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAcBgkqhkiG9w0BCQUxDxcN
# MjUwNTI1MTI0MTQ4WjAvBgkqhkiG9w0BCQQxIgQg/vFz84Bkh1c14/md32kIUu5t
# OGM0nf4YGUE94ifQ7CIwgbkGCyqGSIb3DQEJEAIvMYGpMIGmMIGjMIGgBCBZKDgG
# u8T+xwIzm2AmYzwgNDM/08rlNoMjGGIJ5AbVIjB8MGWkYzBhMQswCQYDVQQGEwJV
# UzEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMTIwMAYDVQQDEylNaWNy
# b3NvZnQgUHVibGljIFJTQSBUaW1lc3RhbXBpbmcgQ0EgMjAyMAITMwAAAElwvYaq
# FnhMMQAAAAAASTCCAt8GCyqGSIb3DQEJEAISMYICzjCCAsqhggLGMIICwjCCAisC
# AQEwggEIoYHgpIHdMIHaMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv
# bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0
# aW9uMSUwIwYDVQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYD
# VQQLEx1UaGFsZXMgVFNTIEVTTjo0NUQ2LTk2QzUtNUU2MzE1MDMGA1UEAxMsTWlj
# cm9zb2Z0IFB1YmxpYyBSU0EgVGltZSBTdGFtcGluZyBBdXRob3JpdHmiIwoBATAH
# BgUrDgMCGgMVACALjk8yViMVfCNap6QGEogntH7UoGcwZaRjMGExCzAJBgNVBAYT
# AlVTMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1p
# Y3Jvc29mdCBQdWJsaWMgUlNBIFRpbWVzdGFtcGluZyBDQSAyMDIwMA0GCSqGSIb3
# DQEBBQUAAgUA692FMzAiGA8yMDI1MDUyNTEyMDE1NVoYDzIwMjUwNTI2MTIwMTU1
# WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDr3YUzAgEAMAoCAQACAg4LAgH/MAcC
# AQACAhFIMAoCBQDr3tazAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkK
# AwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEA1Cta
# yaTdbfy3xj+tEeIVX11cJpHcOyEnHNYZFP6pvReXTXcXI10MuHlDPHUcnidVQ6ci
# kvTq4/Ep4aFq+dt2bHf2dtCvHnX37rsubpXbKASRRPL8RuADc+WU1y0XamBmOrFb
# 4vMH9o3hbsq67UDOwSSYKqewswVSu9Tt81Fk7EwwDQYJKoZIhvcNAQEBBQAEggIA
# y9BOBnc1B7i3UN2/yVvPhy1E7fH9IbXcxh4bbK18o/KZdZRurl11jN6kbJkFvEDK
# V/yawD46LIKUJyxtnyXgWv5asIEp28S9KfqN38XG0Puzu1gSPs/OYDgO1/euHjM/
# JD7SNY5/4k27Dk2QO7IG3xBLR5H95F/nXlIUICXXY10xiVGVuyqlQDCr2jo/SHP3
# GMG+Z+tSGU8il37ZycZugXfK1Sh/9ZqS/UKGE2mkSuuxix1VwZjbZVcPXuMjJwLg
# aO3joNHUMbqSTvAJJAaoL3PhqroXrSfYN+ouJJDhVug/SVnDSk4oO8rsnGbzCptZ
# 4nwVdOpvR//RSjuo+gHE7BE5phZdCG4EJCGmcLRMh8kgdkOJMXDqpZH+yZmbvDcf
# Z9f4r80rdhUkqIblEixXpP+EH9tomVc8n0r179dAhLOT93et9TY6lH9aBex+BuVc
# QLIo9Z2znvRLh/WtUYeexpRIQucLLdlZ1Z2ZCXzghCmfyjNaw/zBVrzmW4D2rNPR
# uSKcuGX4HGiWtxGRjsFU4X/pnB3W3jkzKBw2lqe5ZP5rgO19+mojUdfZNkfQCn6o
# c1DHSI0JMmjbyjlAJPgkZA2J5bXYwcsHMbceeXye8Ouk0sdZluTciqUMKBnpl0P0
# 9EXNrZRSk9Ku9g4zhPWuft01HAn3ypF99KctQgk0/cI=
# SIG # End signature block