internal/Deny-ZNGroupsInboundAllowRulesReview.ps1


# ----------------------------------------------------------------------------------
# Work: Zero Networks PowerShell Module License: Zero Networks PowerShell Module TERMS AND CONDITIONS FOR USE, REPRODUCTION,
# AND DISTRIBUTION
# 1. Definitions.
# "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9
# of this document.
# "Licensor" shall mean Zero Networks Ltd., the copyright owner, and any entity authorized by the copyright owner that is
# granting the License.
# "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are
# under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect,
# to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent
# (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
# "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
# "Source" form shall mean the preferred form for making modifications, including but not limited to software source code,
# documentation source, and configuration files.
# "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but
# not limited to compiled object code, generated documentation, and conversions to other media types.
# "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated
# by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
# "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and
# for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original
# work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from,
# or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
# "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions
# to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright
# owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this
# definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives,
# including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking
# systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work.
# "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received
# by Licensor and subsequently incorporated within the Work.
# 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You
# a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative
# Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or
# Object form.
# 3. Grant of License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual,
# worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) license to make, have
# made, use, import, and otherwise transfer free of charge the Work. For clarification purposes, the License does not grant
# You the right to sale the Work or to make any commercial use of the Work.
# 4. If You institute litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the
# Work or a Contribution incorporated within the Work constitutes direct or contributory intellectual property infringement,
# then any licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
# 5. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or
# without modifications, and in Source or Object form, provided that You meet the following conditions:
# (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and
# (b) You must cause any modified files to carry prominent notices stating that You changed the files; and
# (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and
# attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative
# Works; and
# (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute
# must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that
# do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed
# as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or,
# within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents
# of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices
# within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that
# such additional attribution notices cannot be construed as modifying the License.
# You may add Your own copyright statement to Your modifications and may provide additional or different license terms and
# conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided
# Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
# 6. It is hereby agreed and acknowledged that Contributions to the Work can be made exclusively under the terms of this license
# agreement, free of charge, and any use made in such Contributions by any party, including Licensor, may be made under the
# terms of this license agreement.
# 7. Submission of Contributions. Any Contribution intentionally submitted for inclusion in the Work by You to the Licensor
# shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the
# above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor
# regarding such Contributions.
# 8. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names
# of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing
# the content of the NOTICE file.
# 9. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each
# Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
# or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or
# FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing
# the Work and assume any risks associated with Your exercise of permissions under this License.
# 10. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or
# otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall
# any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages
# of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited
# to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages
# or losses), even if such Contributor has been advised of the possibility of such damages.
# 11. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose
# to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights
# consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole
# responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor
# harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such
# warranty or additional liability.
# 12. Licensor may change the terms of this License from time to time, at its own discretion, by publishing the amended License
# or a notice notifying of such changes, on the same place where this License is published by Licensor. Your continued use
# of the Work after the changes have been implemented will constitute Your acceptance of the changes.
# END OF TERMS AND CONDITIONS
# ----------------------------------------------------------------------------------

<#
.Synopsis
Reject a \"pending review\" rule (deletes rule)
.Description
Reject a \"pending review\" rule (deletes rule)
.Example
{{ Add code here }}
.Example
{{ Add code here }}

.Inputs
ZeroNetworks.PowerShell.Cmdlets.Api.Models.IApiIdentity
.Inputs
ZeroNetworks.PowerShell.Cmdlets.Api.Models.IRuleReviewReason
.Outputs
ZeroNetworks.PowerShell.Cmdlets.Api.Models.IError
.Notes
COMPLEX PARAMETER PROPERTIES

To create the parameters described below, construct a hash table containing the appropriate properties. For information on hash tables, run Get-Help about_Hash_Tables.

BODY <IRuleReviewReason>: Mandatory object for rule review approve_with_changes / reject. reason: { HUMAN_TRAFFIC_COVERED_BY_MFA = 1, TIGHTEN_RULE_SCOPE = 2, MISSING_PORT_OR_PROCESS = 3, AFFECTED_ENTITIES_CONTAINED_IN_AN_EXISTING_GROUP = 4, REDUNDANT_RULE = 5, TRAFFIC_SHOULD_BE_BLOCKED = 6, OTHER = 7 }
  Reason <Int32>:
  [Details <String>]: Optional if reason != OTHER(7), mandatory if reason == OTHER(7)

INPUTOBJECT <IApiIdentity>: Identity Parameter
  [AssetId <String>]: assetId to filter on
  [ClientId <String>]: clientId to filter on
  [ConnectServerId <String>]: connect server id
  [DomainId <String>]: The fqdn of the domain
  [ExportId <String>]: exportId to download
  [ForestId <String>]: The forest id
  [GroupId <String>]: groupId to filter on
  [GroupOrAssetId <String>]: group or asset id to filter on
  [GroupOrUserId <String>]: group or user id to filter on
  [GroupType <String>]: group type to filter on
  [IdentityProviderId <String>]: Identity provider Id
  [ProtectionPolicyId <String>]: The id of the protection policy
  [PushIdentityProviderId <String>]: Push Identity provider Id
  [ReactivePolicyId <String>]: The id of the MFA policy
  [RegionId <String>]: connect region id
  [RoleEntityId <String>]: The id of the user
  [RuleId <String>]: The id of the rule
  [SessionId <String>]: The id of the session
  [UserAccessConfigId <String>]: userAccessConfigId to filter on
  [UserId <String>]: userId to filter on
.Link
https://github.com/zeronetworkszeronetworks/deny-zngroupsinboundallowrulesreview
#>

function Deny-ZNGroupsInboundAllowRulesReview {
[OutputType([ZeroNetworks.PowerShell.Cmdlets.Api.Models.IError])]
[CmdletBinding(DefaultParameterSetName='DenyExpanded', PositionalBinding=$false, SupportsShouldProcess, ConfirmImpact='Medium')]
param(
    [Parameter(ParameterSetName='Deny', Mandatory)]
    [Parameter(ParameterSetName='DenyExpanded', Mandatory)]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
    [System.String]
    # groupId to filter on
    ${GroupId},

    [Parameter(ParameterSetName='Deny', Mandatory)]
    [Parameter(ParameterSetName='DenyExpanded', Mandatory)]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
    [System.String]
    # group type to filter on
    ${GroupType},

    [Parameter(ParameterSetName='Deny', Mandatory)]
    [Parameter(ParameterSetName='DenyExpanded', Mandatory)]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
    [System.String]
    # The id of the rule
    ${RuleId},

    [Parameter(ParameterSetName='DenyViaIdentity', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='DenyViaIdentityExpanded', Mandatory, ValueFromPipeline)]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Path')]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Models.IApiIdentity]
    # Identity Parameter
    # To construct, see NOTES section for INPUTOBJECT properties and create a hash table.
    ${InputObject},

    [Parameter(ParameterSetName='Deny', Mandatory, ValueFromPipeline)]
    [Parameter(ParameterSetName='DenyViaIdentity', Mandatory, ValueFromPipeline)]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Models.IRuleReviewReason]
    # Mandatory object for rule review approve_with_changes / reject.
    #
    # reason: {
    # HUMAN_TRAFFIC_COVERED_BY_MFA = 1,
    # TIGHTEN_RULE_SCOPE = 2,
    # MISSING_PORT_OR_PROCESS = 3,
    # AFFECTED_ENTITIES_CONTAINED_IN_AN_EXISTING_GROUP = 4,
    # REDUNDANT_RULE = 5,
    # TRAFFIC_SHOULD_BE_BLOCKED = 6,
    # OTHER = 7
    # }
    # To construct, see NOTES section for BODY properties and create a hash table.
    ${Body},

    [Parameter(ParameterSetName='DenyExpanded', Mandatory)]
    [Parameter(ParameterSetName='DenyViaIdentityExpanded', Mandatory)]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
    [System.Int32]
    # .
    ${Reason},

    [Parameter(ParameterSetName='DenyExpanded')]
    [Parameter(ParameterSetName='DenyViaIdentityExpanded')]
    [ZeroNetworks.PowerShell.Cmdlets.Api.Category('Body')]
    [System.String]
    # Optional if reason != OTHER(7), mandatory if reason == OTHER(7)
    ${Details},

    [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]
    # Returns true when the command succeeds
    ${PassThru},

    [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}
)

begin {
    try {
        $outBuffer = $null
        if ($PSBoundParameters.TryGetValue('OutBuffer', [ref]$outBuffer)) {
            $PSBoundParameters['OutBuffer'] = 1
        }
        $parameterSet = $PSCmdlet.ParameterSetName

        $mapping = @{
            Deny = 'ZeroNetworks.private\Deny-ZNGroupsInboundAllowRulesReview_Deny';
            DenyExpanded = 'ZeroNetworks.private\Deny-ZNGroupsInboundAllowRulesReview_DenyExpanded';
            DenyViaIdentity = 'ZeroNetworks.private\Deny-ZNGroupsInboundAllowRulesReview_DenyViaIdentity';
            DenyViaIdentityExpanded = 'ZeroNetworks.private\Deny-ZNGroupsInboundAllowRulesReview_DenyViaIdentityExpanded';
        }

        $wrappedCmd = $ExecutionContext.InvokeCommand.GetCommand(($mapping[$parameterSet]), [System.Management.Automation.CommandTypes]::Cmdlet)
        $scriptCmd = {& $wrappedCmd @PSBoundParameters}
        $steppablePipeline = $scriptCmd.GetSteppablePipeline($MyInvocation.CommandOrigin)
        $steppablePipeline.Begin($PSCmdlet)
    } catch {

        throw
    }
}

process {
    try {
        $steppablePipeline.Process($_)
    } catch {

        throw
    }

}
end {
    try {
        $steppablePipeline.End()

    } catch {

        throw
    }
} 
}

# SIG # Begin signature block
# MIIk6wYJKoZIhvcNAQcCoIIk3DCCJNgCAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU7UK4tAgJKrRbBiUsWOTxbPQK
# AhCggh7wMIIFjTCCBHWgAwIBAgIQDpsYjvnQLefv21DiCEAYWjANBgkqhkiG9w0B
# AQwFADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
# VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVk
# IElEIFJvb3QgQ0EwHhcNMjIwODAxMDAwMDAwWhcNMzExMTA5MjM1OTU5WjBiMQsw
# CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu
# ZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQw
# ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz
# 7MKnJS7JIT3yithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS
# 5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7
# bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfI
# SKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jH
# trHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14
# Ztk6MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2
# h4mXaXpI8OCiEhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt
# 6zPZxd9LBADMfRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPR
# iQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ER
# ElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4K
# Jpn15GkvmB0t9dmpsh3lGwIDAQABo4IBOjCCATYwDwYDVR0TAQH/BAUwAwEB/zAd
# BgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wHwYDVR0jBBgwFoAUReuir/SS
# y4IxLVGLp6chnfNtyA8wDgYDVR0PAQH/BAQDAgGGMHkGCCsGAQUFBwEBBG0wazAk
# BggrBgEFBQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMEMGCCsGAQUFBzAC
# hjdodHRwOi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRBc3N1cmVkSURS
# b290Q0EuY3J0MEUGA1UdHwQ+MDwwOqA4oDaGNGh0dHA6Ly9jcmwzLmRpZ2ljZXJ0
# LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwEQYDVR0gBAowCDAGBgRV
# HSAAMA0GCSqGSIb3DQEBDAUAA4IBAQBwoL9DXFXnOF+go3QbPbYW1/e/Vwe9mqyh
# hyzshV6pGrsi+IcaaVQi7aSId229GhT0E0p6Ly23OO/0/4C5+KH38nLeJLxSA8hO
# 0Cre+i1Wz/n096wwepqLsl7Uz9FDRJtDIeuWcqFItJnLnU+nBgMTdydE1Od/6Fmo
# 8L8vC6bp8jQ87PcDx4eo0kxAGTVGamlUsLihVo7spNU96LHc/RzY9HdaXFSMb++h
# UD38dglohJ9vytsgjTVgHAIDyyCwrFigDkBjxZgiwbJZ9VVrzyerbHbObyMt9H5x
# aiNrIv8SuFQtJ37YOtnwtoeW/VvRXKwYw02fc7cBqZ9Xql4o4rmUMIIFvTCCBKWg
# AwIBAgIRAKVrLshF28LU6jgQ695aLeswDQYJKoZIhvcNAQELBQAwgZExCzAJBgNV
# BAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1Nh
# bGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTcwNQYDVQQDEy5DT01P
# RE8gUlNBIEV4dGVuZGVkIFZhbGlkYXRpb24gQ29kZSBTaWduaW5nIENBMB4XDTIx
# MDUwMzAwMDAwMFoXDTI0MDUwMjIzNTk1OVowgaYxEjAQBgNVBAUTCTUxNjAxNjE1
# MTETMBEGCysGAQQBgjc8AgEDEwJJTDEdMBsGA1UEDxMUUHJpdmF0ZSBPcmdhbml6
# YXRpb24xCzAJBgNVBAYTAklMMRcwFQYDVQQHDA5UZWwgQXZpdiBKYWZmYTEaMBgG
# A1UECgwRWkVSTyBORVRXT1JLUyBMVEQxGjAYBgNVBAMMEVpFUk8gTkVUV09SS1Mg
# TFREMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw0YQg9iPdpEEAIdi
# yzXHNEIZsMnTpshRJEzhU7sdJDO63FJSZ5LbaEhMAyPHQdpzonS+H2gD4WNkU6T3
# rqNqgHKL/LJ5nbIYDHfp7nQarW8z5NTCv9KU3yL98nGUiU1YffxApTSH5G14URuh
# owWQ1AqUr8L2rnsTNI+CpQqYtNmTOQz8PlpXMl+lj8VQOG8PWbXRWVq3Ul+7XVs1
# et7h4/DFJql+22Ke2Mw15Cl+GpW5Mbq1TQppUOtWG5BRkhHV59xkoiATIPRYm8i+
# TOvmMXyqIMmZAKEK/UEy3zgnWltUTpJm1t3HzSCTzYicCMWA13JjyJ7N4ekUVMEl
# mxzOTQIDAQABo4IB9zCCAfMwHwYDVR0jBBgwFoAU34/zIAzpyqYE2FtYNyo9q0bc
# g0kwHQYDVR0OBBYEFIuSUX5+e/XI2sryOvgN2dkucdfNMA4GA1UdDwEB/wQEAwIH
# gDAMBgNVHRMBAf8EAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMDMBEGCWCGSAGG+EIB
# AQQEAwIEEDBJBgNVHSAEQjBAMDUGDCsGAQQBsjEBAgEGATAlMCMGCCsGAQUFBwIB
# FhdodHRwczovL3NlY3RpZ28uY29tL0NQUzAHBgVngQwBAzBVBgNVHR8ETjBMMEqg
# SKBGhkRodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FFeHRlbmRlZFZh
# bGlkYXRpb25Db2RlU2lnbmluZ0NBLmNybDCBhgYIKwYBBQUHAQEEejB4MFAGCCsG
# AQUFBzAChkRodHRwOi8vY3J0LmNvbW9kb2NhLmNvbS9DT01PRE9SU0FFeHRlbmRl
# ZFZhbGlkYXRpb25Db2RlU2lnbmluZ0NBLmNydDAkBggrBgEFBQcwAYYYaHR0cDov
# L29jc3AuY29tb2RvY2EuY29tMEAGA1UdEQQ5MDegHAYIKwYBBQUHCAOgEDAODAxJ
# TC01MTYwMTYxNTGBF2Rldm9wc0B6ZXJvbmV0d29ya3MuY29tMA0GCSqGSIb3DQEB
# CwUAA4IBAQBz7cosu+mtqpM5yyJ8AF6MLxs9l3FsQXwucpOK0oXJGUymgV7eghNT
# zL1XT71/AAHHGK1/y43A0Yqqeptb5oYaABvor1M9TnytA0XWl67pi+5C4YZAY/mG
# pH4aiL8fsLbaaTVFuz+a5g7wHgE2U6yN2lEbqs/xJgD9ytMSG7bp30Zf5W2tmCSd
# qiSiSME/l/ta9YICeiDvz89K0heaKrmUmYYoHbqZOz8taGn00bREz6SG5uJ7YJdg
# 5ZTjzicIxJT1lwpsRJjcR80H8oL4S8fFkZgLcrCamZ0hVF77RJ3voODYwym/Zee4
# k8+C1wGQ8Gcjrq0QG5iN7uMAEDQD3+cKMIIGIjCCBAqgAwIBAgIQbdRy6wKuBAbj
# 3YQ/X+FF4TANBgkqhkiG9w0BAQwFADCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT
# EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR
# Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh
# dGlvbiBBdXRob3JpdHkwHhcNMTQxMjAzMDAwMDAwWhcNMjkxMjAyMjM1OTU5WjCB
# kTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G
# A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNzA1BgNV
# BAMTLkNPTU9ETyBSU0EgRXh0ZW5kZWQgVmFsaWRhdGlvbiBDb2RlIFNpZ25pbmcg
# Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCK/b1D8D3IVR/zWYrw
# WrTck9FkFUqKhKUtyyb44EU4o7kBxU8TCFnQMVTKzZBhoz4s8k0VXNTuw2oil0jR
# BkM0CZnJzzDEn0T9VpzuzOeDuYHNyNoLHBJI/2+i7MR1ywlwz1Hlu4ufqr14Bn2V
# 1mGB9tpTx6ydswC6HtS+QGIJmYM9Rd1NZZUEzPz6x1t64i4MPVU1VzVIiYnyuVal
# S1AbHN6YkL3zLtyIqfF1m6g+ogXZQbXvd60XwFr1o9tNn9HEsXuDte4QlCsucq6+
# 75UpnFJixSxtIvd9RHoQX2OTaU3ZfbKasU61Wb//hfu9rOzhK6bjLCzo2W7bX00X
# eMtTAgMBAAGjggF+MIIBejAfBgNVHSMEGDAWgBS7r34CPfqm8TyEjq3uOJjs2TIy
# 1DAdBgNVHQ4EFgQU34/zIAzpyqYE2FtYNyo9q0bcg0kwDgYDVR0PAQH/BAQDAgGG
# MBIGA1UdEwEB/wQIMAYBAf8CAQAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwPgYDVR0g
# BDcwNTAzBgRVHSAAMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9k
# by5jb20vQ1BTMEwGA1UdHwRFMEMwQaA/oD2GO2h0dHA6Ly9jcmwuY29tb2RvY2Eu
# Y29tL0NPTU9ET1JTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHEGCCsGAQUF
# BwEBBGUwYzA7BggrBgEFBQcwAoYvaHR0cDovL2NydC5jb21vZG9jYS5jb20vQ09N
# T0RPUlNBQWRkVHJ1c3RDQS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNv
# bW9kb2NhLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAZk7stxZ3bxHoG11qTtnyi2yx
# VihAi8AxxJlIIz34DuiAl+9tIAsfE8SG+xc0FeGOVPfCuABzFeAo2dq6+oJUwvfr
# v8M20DCf5aEclN/vfOj2LHiirM8mahWhFTHWMTSYvVNPxISDo8SWXD3Y/tb5VP9n
# k234PitrLKIIfFZIgTIYsm6skMHb5N45i4blxxhAWaTflke6sn+x+FcPhYB0OA46
# WGIe/lLj5q5TCYb+j5vbVlbMB7CJwQTxUwtsb3fssh/s9ltAQ2APG6sYVLQQBI74
# DunLg7F68jROalRM6YMq6bAwJRzOYo4O64XmKf6xSuPyrjyR9UyhvsgXDly7Qk3j
# GoqSzT4gft3pdbHqH3RcnlTClDeyYd0HFll/loAW4Jm10m6wySMGFazRI/Qzi851
# 8MGG0//hLvqQT/5G+bvbT7u3/tENKwTx0tGVhSyKLriFVvLDhFKh6TOx61DIobCf
# 48OLOoee51XT0200FzANaCIL1bntczVyw+2nN83jQ65FzTS/KMqHYu1DpK/6yzHL
# IVhhRl62xnqmHlMqqPhcUR86WhAPKMDkdIt0xgSq+EsmKAoyidudKmBxasOWTha5
# Y79hlWeMSy67sE6D6U0x5Y4nIvU8JntEkdPUWvDTfPQ4vhSamQ6LsVvq5IsPEZ13
# QoIcXDrU2quIL41XMFQwggauMIIElqADAgECAhAHNje3JFR82Ees/ShmKl5bMA0G
# CSqGSIb3DQEBCwUAMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ
# bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0
# IFRydXN0ZWQgUm9vdCBHNDAeFw0yMjAzMjMwMDAwMDBaFw0zNzAzMjIyMzU5NTla
# MGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwgSW5jLjE7MDkGA1UE
# AxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1NiBUaW1lU3RhbXBp
# bmcgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDGhjUGSbPBPXJJ
# UVXHJQPE8pE3qZdRodbSg9GeTKJtoLDMg/la9hGhRBVCX6SI82j6ffOciQt/nR+e
# DzMfUBMLJnOWbfhXqAJ9/UO0hNoR8XOxs+4rgISKIhjf69o9xBd/qxkrPkLcZ47q
# UT3w1lbU5ygt69OxtXXnHwZljZQp09nsad/ZkIdGAHvbREGJ3HxqV3rwN3mfXazL
# 6IRktFLydkf3YYMZ3V+0VAshaG43IbtArF+y3kp9zvU5EmfvDqVjbOSmxR3NNg1c
# 1eYbqMFkdECnwHLFuk4fsbVYTXn+149zk6wsOeKlSNbwsDETqVcplicu9Yemj052
# FVUmcJgmf6AaRyBD40NjgHt1biclkJg6OBGz9vae5jtb7IHeIhTZgirHkr+g3uM+
# onP65x9abJTyUpURK1h0QCirc0PO30qhHGs4xSnzyqqWc0Jon7ZGs506o9UD4L/w
# ojzKQtwYSH8UNM/STKvvmz3+DrhkKvp1KCRB7UK/BZxmSVJQ9FHzNklNiyDSLFc1
# eSuo80VgvCONWPfcYd6T/jnA+bIwpUzX6ZhKWD7TA4j+s4/TXkt2ElGTyYwMO1uK
# IqjBJgj5FBASA31fI7tk42PgpuE+9sJ0sj8eCXbsq11GdeJgo1gJASgADoRU7s7p
# XcheMBK9Rp6103a50g5rmQzSM7TNsQIDAQABo4IBXTCCAVkwEgYDVR0TAQH/BAgw
# BgEB/wIBADAdBgNVHQ4EFgQUuhbZbU2FL3MpdpovdYxqII+eyG8wHwYDVR0jBBgw
# FoAU7NfjgtJxXWRM3y5nP+e6mK4cD08wDgYDVR0PAQH/BAQDAgGGMBMGA1UdJQQM
# MAoGCCsGAQUFBwMIMHcGCCsGAQUFBwEBBGswaTAkBggrBgEFBQcwAYYYaHR0cDov
# L29jc3AuZGlnaWNlcnQuY29tMEEGCCsGAQUFBzAChjVodHRwOi8vY2FjZXJ0cy5k
# aWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkUm9vdEc0LmNydDBDBgNVHR8EPDA6
# MDigNqA0hjJodHRwOi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVk
# Um9vdEc0LmNybDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwDQYJ
# KoZIhvcNAQELBQADggIBAH1ZjsCTtm+YqUQiAX5m1tghQuGwGC4QTRPPMFPOvxj7
# x1Bd4ksp+3CKDaopafxpwc8dB+k+YMjYC+VcW9dth/qEICU0MWfNthKWb8RQTGId
# DAiCqBa9qVbPFXONASIlzpVpP0d3+3J0FNf/q0+KLHqrhc1DX+1gtqpPkWaeLJ7g
# iqzl/Yy8ZCaHbJK9nXzQcAp876i8dU+6WvepELJd6f8oVInw1YpxdmXazPByoyP6
# wCeCRK6ZJxurJB4mwbfeKuv2nrF5mYGjVoarCkXJ38SNoOeY+/umnXKvxMfBwWpx
# 2cYTgAnEtp/Nh4cku0+jSbl3ZpHxcpzpSwJSpzd+k1OsOx0ISQ+UzTl63f8lY5kn
# LD0/a6fxZsNBzU+2QJshIUDQtxMkzdwdeDrknq3lNHGS1yZr5Dhzq6YBT70/O3it
# TK37xJV77QpfMzmHQXh6OOmc4d0j/R0o08f56PGYX/sr2H7yRp11LB4nLCbbbxV7
# HhmLNriT1ObyF5lZynDwN7+YAN8gFk8n+2BnFqFmut1VwDophrCYoCvtlUG3OtUV
# mDG0YgkPCr2B2RP+v6TR81fZvAT6gt4y3wSJ8ADNXcL50CN/AAvkdgIm2fBldkKm
# KYcJRyvmfxqkhQ/8mJb2VVQrH4D6wPIOK+XW+6kvRBVK5xMOHds3OBqhK/bt1nz8
# MIIGwjCCBKqgAwIBAgIQBUSv85SdCDmmv9s/X+VhFjANBgkqhkiG9w0BAQsFADBj
# MQswCQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMT
# MkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5n
# IENBMB4XDTIzMDcxNDAwMDAwMFoXDTM0MTAxMzIzNTk1OVowSDELMAkGA1UEBhMC
# VVMxFzAVBgNVBAoTDkRpZ2lDZXJ0LCBJbmMuMSAwHgYDVQQDExdEaWdpQ2VydCBU
# aW1lc3RhbXAgMjAyMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKNT
# RYcdg45brD5UsyPgz5/X5dLnXaEOCdwvSKOXejsqnGfcYhVYwamTEafNqrJq3RAp
# ih5iY2nTWJw1cb86l+uUUI8cIOrHmjsvlmbjaedp/lvD1isgHMGXlLSlUIHyz8sH
# pjBoyoNC2vx/CSSUpIIa2mq62DvKXd4ZGIX7ReoNYWyd/nFexAaaPPDFLnkPG2ZS
# 48jWPl/aQ9OE9dDH9kgtXkV1lnX+3RChG4PBuOZSlbVH13gpOWvgeFmX40QrStWV
# zu8IF+qCZE3/I+PKhu60pCFkcOvV5aDaY7Mu6QXuqvYk9R28mxyyt1/f8O52fTGZ
# ZUdVnUokL6wrl76f5P17cz4y7lI0+9S769SgLDSb495uZBkHNwGRDxy1Uc2qTGaD
# iGhiu7xBG3gZbeTZD+BYQfvYsSzhUa+0rRUGFOpiCBPTaR58ZE2dD9/O0V6MqqtQ
# FcmzyrzXxDtoRKOlO0L9c33u3Qr/eTQQfqZcClhMAD6FaXXHg2TWdc2PEnZWpST6
# 18RrIbroHzSYLzrqawGw9/sqhux7UjipmAmhcbJsca8+uG+W1eEQE/5hRwqM/vC2
# x9XH3mwk8L9CgsqgcT2ckpMEtGlwJw1Pt7U20clfCKRwo+wK8REuZODLIivK8SgT
# IUlRfgZm0zu++uuRONhRB8qUt+JQofM604qDy0B7AgMBAAGjggGLMIIBhzAOBgNV
# HQ8BAf8EBAMCB4AwDAYDVR0TAQH/BAIwADAWBgNVHSUBAf8EDDAKBggrBgEFBQcD
# CDAgBgNVHSAEGTAXMAgGBmeBDAEEAjALBglghkgBhv1sBwEwHwYDVR0jBBgwFoAU
# uhbZbU2FL3MpdpovdYxqII+eyG8wHQYDVR0OBBYEFKW27xPn783QZKHVVqllMaPe
# 1eNJMFoGA1UdHwRTMFEwT6BNoEuGSWh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9E
# aWdpQ2VydFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5jcmww
# gZAGCCsGAQUFBwEBBIGDMIGAMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdp
# Y2VydC5jb20wWAYIKwYBBQUHMAKGTGh0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNv
# bS9EaWdpQ2VydFRydXN0ZWRHNFJTQTQwOTZTSEEyNTZUaW1lU3RhbXBpbmdDQS5j
# cnQwDQYJKoZIhvcNAQELBQADggIBAIEa1t6gqbWYF7xwjU+KPGic2CX/yyzkzepd
# IpLsjCICqbjPgKjZ5+PF7SaCinEvGN1Ott5s1+FgnCvt7T1IjrhrunxdvcJhN2hJ
# d6PrkKoS1yeF844ektrCQDifXcigLiV4JZ0qBXqEKZi2V3mP2yZWK7Dzp703DNiY
# dk9WuVLCtp04qYHnbUFcjGnRuSvExnvPnPp44pMadqJpddNQ5EQSviANnqlE0Pjl
# SXcIWiHFtM+YlRpUurm8wWkZus8W8oM3NG6wQSbd3lqXTzON1I13fXVFoaVYJmoD
# Rd7ZULVQjK9WvUzF4UbFKNOt50MAcN7MmJ4ZiQPq1JE3701S88lgIcRWR+3aEUuM
# MsOI5ljitts++V+wQtaP4xeR0arAVeOGv6wnLEHQmjNKqDbUuXKWfpd5OEhfysLc
# PTLfddY2Z1qJ+Panx+VPNTwAvb6cKmx5AdzaROY63jg7B145WPR8czFVoIARyxQM
# fq68/qTreWWqaNYiyjvrmoI1VygWy2nyMpqy0tg6uLFGhmu6F/3Ed2wVbK6rr3M6
# 6ElGt9V/zLY4wNjsHPW2obhDLN9OTH0eaHDAdwrUAuBcYLso/zjlUlrWrBciI070
# 7NMX+1Br/wd3H3GXREHJuEbTbDJ8WC9nR2XlG3O2mflrLAZG70Ee8PBf4NvZrZCA
# RK+AEEGKMYIFZTCCBWECAQEwgacwgZExCzAJBgNVBAYTAkdCMRswGQYDVQQIExJH
# cmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNP
# TU9ETyBDQSBMaW1pdGVkMTcwNQYDVQQDEy5DT01PRE8gUlNBIEV4dGVuZGVkIFZh
# bGlkYXRpb24gQ29kZSBTaWduaW5nIENBAhEApWsuyEXbwtTqOBDr3lot6zAJBgUr
# DgMCGgUAoHAwEAYKKwYBBAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQB
# gjcCAQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkE
# MRYEFHJa0AVMYQ0IUlIMIo150wxPq8TfMA0GCSqGSIb3DQEBAQUABIIBACifmBjY
# gE+0yYfiiupfmkK9QpwnvGFHXDcrJC3gWj0zO74ttOy6kx4TPQxxop1Ew0DwGqn6
# De1P2UzCF+h9rsknxUF/D08Nbkvei35DO1YRvK0Geha06wgxmalwYkbLjEXo6t3c
# uJ3vNtUPBOC7fS+WIJGEI1vBt9Br+UiW905nJrJHqJZTwyaOoK7+2pXyMfeswG9J
# 8r3Q44p14LDbHuDoo1oUvOHwcWMeZh+FzeVqog7LoPJgGel5b73CLo0ziyqZ2OZF
# 28jpLWWVmoLG68Om7eA6twSWi3HM2pnvlnZSJ4BcHynvnQef7vY5iKIxfLHKCgrl
# 8bKQdM8R6wczyDehggMgMIIDHAYJKoZIhvcNAQkGMYIDDTCCAwkCAQEwdzBjMQsw
# CQYDVQQGEwJVUzEXMBUGA1UEChMORGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRp
# Z2lDZXJ0IFRydXN0ZWQgRzQgUlNBNDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENB
# AhAFRK/zlJ0IOaa/2z9f5WEWMA0GCWCGSAFlAwQCAQUAoGkwGAYJKoZIhvcNAQkD
# MQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMjQwMTIxMDkxMTExWjAvBgkq
# hkiG9w0BCQQxIgQgDjrvDbZaQTwa1lDTnlyaMLE+wgCOzUZna65TOqFHSZYwDQYJ
# KoZIhvcNAQEBBQAEggIAgwibwfPBF3nZWROfgIJNVQnm5/f+NEDJ+cdBbJC5vVO4
# eUWleC3Gji5+LIio++95dI3M5IqIeMQJRvCPqy88pjeRuSEkW9v9ypPXqWjfsja1
# PJJJbc5V2W+II9PbvNPxa3/78SOjL2leq06PHtmlRVgnGO3V9USkv2EwYGm5aDR5
# NR15vvL+D2FXsSE8Df+CTyaSC0DjXQgou/Ihue/NwZWBHdOVvS0Ho8vfSai8dyIL
# +NNJx7YgG7w03YNERw3q4Kxp3iOjXRA5j27PAnj6gB9jQnYeXPtDNcDdWNEWTxlZ
# UgZPfI/UG0rBo2//KrpqHellL4k2Vq7YeADryV5XKzuAVAIVWlBSmJ7vR/kIWKhv
# sCWzwMyqL6odBU8jjtx1c/Ng3pO1bZjenlbZgoRZ3mnSUzhzzayjnJWLsTR/3Vs6
# CyAUAVDTBqtVo+bSZa8Fv9jCfieLtlk89hEQinD59/Qtqut04sKvl4pCuSgnRPpu
# meCdHxdPHT520IG36avubgOp4MlLE56c+mEtWpZU2B2owIMyY5AmSq8o8aDrBOYY
# qeVoF4gLdKMs1LKhww/V2OuKiyyVTJISQOFcX3vZ2OSUaDraQt548LoAWROwKubY
# 8cTJy1PENZ+++1Q0gy+1rPWY+Ixgz0s3FBdtJsJS23uhgkhizsOzX+guQJBtS/Q=
# SIG # End signature block