Utilities/CCValidationUtility.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231

using module "..\MCCA.psm1"
<#
 This function returns list of parent labels and sublabels
#>


Function Get-RoleGroupwithMembers {
    Param(
        $RoleGroups,
        $LogFile,
        $Role
    )
    
    $ConfigObjectList = @()
    try {
        $RoleGroupName = ""
        if ( $null -eq $RoleGroups) {
            $ConfigObject = [MCCACheckConfig]::new()
            $ConfigObject.ConfigItem = "$Role"
            $ConfigObject.ConfigData = "No Role Group with any Members"
            $ConfigObject.SetResult([MCCAConfigLevel]::Ok, "Fail")            
            $ConfigObjectList += $ConfigObject
        }
        else {
            foreach ($RoleGroup in $RoleGroups ) {
                if ($RoleGroupName -ne "") {
                    $RoleGroupName += ", $($RoleGroup.Name)"
                }
                else {
                    $RoleGroupName = $($RoleGroup.Name)
                }
            }
            $ConfigObject = [MCCACheckConfig]::new()
            $ConfigObject.ConfigItem = "$Role"
            $ConfigObject.ConfigData = $($RoleGroupName)
            $ConfigObject.SetResult([MCCAConfigLevel]::Ok, "Pass")  
            $ConfigObjectList += $ConfigObject
        }
    }
    catch {
        Write-Host "Error:$(Get-Date) There was an issue while running MCCA. Please try running the tool again after some time." -ForegroundColor:Red
        $ErrorMessage = $_.ToString()
        $StackTraceInfo = $_.ScriptStackTrace
        Write-Log -IsError -ErrorMessage $ErrorMessage -StackTraceInfo $StackTraceInfo -LogFile $LogFile -ErrorAction:SilentlyContinue
    }
    return $ConfigObjectList
}


# SIG # Begin signature block
# MIIhigYJKoZIhvcNAQcCoIIhezCCIXcCAQExDzANBglghkgBZQMEAgEFADB5Bgor
# BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBNLv14axOOdmjM
# p9mOWEZ8ZVgIpPeZuG52qxy8LGzLhKCCC4gwggUEMIID7KADAgECAhMzAAAEVCNc
# ZRG5OpzwAAAAAARUMA0GCSqGSIb3DQEBCwUAMHkxCzAJBgNVBAYTAlVTMRMwEQYD
# VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
# b3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1pY3Jvc29mdCBUZXN0aW5nIFBD
# QSAyMDEwMB4XDTIwMTIxNTE5NDMyOFoXDTIxMTIwMjE5NDMyOFowfDELMAkGA1UE
# BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc
# BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdQ29kZSBTaWdu
# IFRlc3QgKERPIE5PVCBUUlVTVCkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
# AoIBAQDJglbDtckphl35hjr1SAbhhEKcgiyOM3JVKu06pLqgRPlNzxVYR5iqd1sz
# nanX11YhCkVuxeAzfvvNYrrK7kPpW6VNSqt41i6g6jMTlbopMvfc3OY5U8QT9tPl
# 9Puo1nJy6PcNbyWtrTXli6xc5/8zXpE5QIW66YYB7sVtPXpbesIDuCcv82JQFW8L
# Nkj7eTp9WxMYcGKtBJZjxjHHYgWc7q7QLHE5e8Xzs9kQMNlTM+d2UDgufUkf5DR5
# 0tgqkmWgE/RX0Nj3z2UFfJh+PGrJ7XGwlc5ZC/cUPcsKxr6q2fxszgRRufoYgJRt
# DmAVORl31vkc016giNvVAaM/+kwJAgMBAAGjggGAMIIBfDATBgNVHSUEDDAKBggr
# BgEFBQcDAzAdBgNVHQ4EFgQUWWOG7bgrqljpz3pfJwrJ/pzUePMwVAYDVR0RBE0w
# S6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJhdGlvbnMgTGlt
# aXRlZDEWMBQGA1UEBRMNMjMwMDcyKzQ2MzAxOTAfBgNVHSMEGDAWgBTd1keLIxQv
# 2DhoQqM+bcPwkPcs0DBZBgNVHR8EUjBQME6gTKBKhkhodHRwOi8vd3d3Lm1pY3Jv
# c29mdC5jb20vcGtpb3BzL2NybC9NaWNyb3NvZnQlMjBUZXN0aW5nJTIwUENBJTIw
# MjAxMC5jcmwwZgYIKwYBBQUHAQEEWjBYMFYGCCsGAQUFBzAChkpodHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NlcnRzL01pY3Jvc29mdCUyMFRlc3Rpbmcl
# MjBQQ0ElMjAyMDEwLmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBCwUAA4IB
# AQBinsc8haN91EumLU8Z7Qq6nhfgAKxz4tcrIsHDfY56jx9YSqyb8k35mepKZ91s
# sHfqVip/C+FfJQ2owQT8o61kwXTWOrns/+xgwMcvRtHbqx0DpnQOD77Ry46SjB5K
# 3nChTh79lm9Xmn5buIjuroDnS5buXI+YfgNkuToSVX/IckedZFWpW4vLhC+efUfW
# 1L6bfsw0meHV/zLoyBf6cgaUNCMnu3bUl3PqKkms9E6mA7NJruOSgVaWfAr9mw8s
# FYBTOLS/73naxMuP+evuQqnwBMWk/he8ga3YAaGbl2rpQJJr+A0PLmwPvECcmGre
# LFyXioRLeRxL5O0QGYtHKa42MIIGfDCCBGSgAwIBAgIKYRGEbwAAAAAAAzANBgkq
# hkiG9w0BAQsFADCBkDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24x
# EDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv
# bjE6MDgGA1UEAxMxTWljcm9zb2Z0IFRlc3RpbmcgUm9vdCBDZXJ0aWZpY2F0ZSBB
# dXRob3JpdHkgMjAxMDAeFw0xMDA3MDEyMTIzMDFaFw0yNTA3MDEyMTMzMDFaMHkx
# CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
# b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xIzAhBgNVBAMTGk1p
# Y3Jvc29mdCBUZXN0aW5nIFBDQSAyMDEwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
# MIIBCgKCAQEAwb0h1UtmBgCSMDkYystzQlmx75snqODoVb0psPkkHzrR6MNZie2R
# tsHoM2P2WmQZ4i58DJCABTi/HKa6DWov7yeXq97271Dzg+fXw0U3Ij8YtcKWEbaN
# EoNZiydRBlZ1uWBqEw7VJj8tlqoFzKGHP75PNO8MTG/MBNSh5mfNCiczn+Ovm29o
# fLy0DHM0jFqB+Yf7VBzFR2zqn1e0Wf3OGal3fIdCn7V5lLzLdpLblpehXwQkOf6h
# leGfhuNe2VxW30OQn8kU6tH1oFur8wgE3SivG+KqLhOgCu3SmUQq9ZlE+yukT/G7
# YcIdLfUlJwKoeO+TOfRedYHu0uB2DFsj7wIDAQABo4IB7DCCAegwEAYJKwYBBAGC
# NxUBBAMCAQAwHQYDVR0OBBYEFN3WR4sjFC/YOGhCoz5tw/CQ9yzQMBkGCSsGAQQB
# gjcUAgQMHgoAUwB1AGIAQwBBMAsGA1UdDwQEAwIBhjAPBgNVHRMBAf8EBTADAQH/
# MB8GA1UdIwQYMBaAFKMBBH4wiDPruTGcyuuFdmf8ZbTRMFkGA1UdHwRSMFAwTqBM
# oEqGSGh0dHA6Ly9jcmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01p
# Y1Rlc1Jvb0NlckF1dF8yMDEwLTA2LTE3LmNybDBdBggrBgEFBQcBAQRRME8wTQYI
# KwYBBQUHMAKGQWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWlj
# VGVzUm9vQ2VyQXV0XzIwMTAtMDYtMTcuY3J0MIGgBgNVHSABAf8EgZUwgZIwgY8G
# CSsGAQQBgjcuAzCBgTA9BggrBgEFBQcCARYxaHR0cDovL3d3dy5taWNyb3NvZnQu
# Y29tL1BLSS9kb2NzL0NQUy9kZWZhdWx0Lmh0bTBABggrBgEFBQcCAjA0HjIgHQBM
# AGUAZwBhAGwAXwBQAG8AbABpAGMAeQBfAFMAdABhAHQAZQBtAGUAbgB0AC4gHTAN
# BgkqhkiG9w0BAQsFAAOCAgEAQGEFPjfdM3tSwkhrgPdgAxa2yS6Jfr3ZWBxj0/WS
# 0vZaBA0I7oe/65g0OmV8UOTIGylQeVV7GDmRtUEm8xd/mJVnfEzdcuQdtQTNw0j2
# +q/t265edJFtrdSagArYi22Z5oZoeYZHSYvB2FHy0O8SnD9INQiCT/Qsiope1Cb/
# x5zFyooExogWh431bVcBuZPK6MpqxIq6QQ3DjFQdDmYk18WCBw2zOL+yyLWWCCEn
# T7Ovi8McM8Ha6DHaY+Nvt3VkAbpqURkAIKifYuVIgULVDPvby6SiEZ7o51n0MW2i
# LiLdh0SxaR1GChjl0ZX9ePKPu9XV92FmqfPPqHGsZDPK5Gr4AzZHFknvQ6aKvGt7
# Utj/QacXsA1foksxdCUaPVDmXnImkkA2b65ELJMSY7XTu9uS+hORbtU4vpRpensU
# Qp4T26KMQqhxBi0XYsF5K5i6fobkxgCvM5nxLdHdSRa6w3buZKqBtzlU9nTeCVRT
# aThbwlPyzYlQwsgiHBtHEkVbQ48jXJDIbtT3D7W3q469ZnC/EZE876J6B+KSL0JN
# ZOCDi6XcbJTo9qIoAKWY6ggSQN5iBGR5Z8EboJYOBK++J0pi+vedwtK9VcJe09L1
# 50DvIs2/op3AG9a+mPuOTeWlV8MPj6hyQUY74Y8gShvtWgy1TN4sY1fT+jmZDr6e
# LqMxghVYMIIVVAIBATCBkDB5MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu
# Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv
# cmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgVGVzdGluZyBQQ0EgMjAxMAITMwAA
# BFQjXGURuTqc8AAAAAAEVDANBglghkgBZQMEAgEFAKCBsDAZBgkqhkiG9w0BCQMx
# DAYKKwYBBAGCNwIBBDAcBgorBgEEAYI3AgELMQ4wDAYKKwYBBAGCNwIBFTAvBgkq
# hkiG9w0BCQQxIgQgKmuPmVZC1IdeE785DMmUHOYFTrNYJaex01JfunVMI58wRAYK
# KwYBBAGCNwIBDDE2MDSgFIASAE0AaQBjAHIAbwBzAG8AZgB0oRyAGmh0dHBzOi8v
# d3d3Lm1pY3Jvc29mdC5jb20gMA0GCSqGSIb3DQEBAQUABIIBAFzqKREHRYlQPlVF
# buKKwk2kQm21AD1mDQr5sxxLpyqaRtaO+g/bGuiqhatE5grCCcn/jrfuV/I0Skjs
# PFwogO6miw0NyyhZfvGzQZsJB8a+Gfhf5JP30l1OigipLzmZh+pi3J0v+25IIWBw
# brxCy9ycFo1xvoWVEFb3K5vfqB9bLIcmzTqB9ZUpQgkioKBq6CwxgcwzOpA19RPz
# PMlX7j1Alf7cdopVwfTvdA59mDPpVixS0cAxoLfiZGfdqzJPR3JEXs7yq7urrkUv
# CB/JqaIaYKt3SztNsTdx1v0tA7wXxLQbzUR8yiiT/XSdLny6vmNjdWSpTNwBwFYP
# YQesxT2hghLlMIIS4QYKKwYBBAGCNwMDATGCEtEwghLNBgkqhkiG9w0BBwKgghK+
# MIISugIBAzEPMA0GCWCGSAFlAwQCAQUAMIIBUQYLKoZIhvcNAQkQAQSgggFABIIB
# PDCCATgCAQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQgwiZYGm40VIge
# x2EFvgH1Zfx71bRVxwiVpUNlZhWT+uwCBmCumht/ghgTMjAyMTA2MTgxMDA4MzQu
# NTUxWjAEgAIB9KCB0KSBzTCByjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3BlcmF0aW9uczEm
# MCQGA1UECxMdVGhhbGVzIFRTUyBFU046N0JGMS1FM0VBLUI4MDgxJTAjBgNVBAMT
# HE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2Wggg48MIIE8TCCA9mgAwIBAgIT
# MwAAAVHDUOdZbKrGpwAAAAABUTANBgkqhkiG9w0BAQsFADB8MQswCQYDVQQGEwJV
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGlt
# ZS1TdGFtcCBQQ0EgMjAxMDAeFw0yMDExMTIxODI2MDRaFw0yMjAyMTExODI2MDRa
# MIHKMQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH
# UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQL
# ExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25zMSYwJAYDVQQLEx1UaGFsZXMg
# VFNTIEVTTjo3QkYxLUUzRUEtQjgwODElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUt
# U3RhbXAgU2VydmljZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ/S
# h++qhK477ziJI1mx6bTJGA45hviRJs4Lsq/1cY2YGf4oPDJOO46kiT+UcR/7A8qo
# WLu4z0jvOrImYfLuwwV/S/CPgAfvHzz7w+LqCyg9tgaaBZeAfBcOSu0rom728Rje
# 2nS9f81vrFl5Vb6Q4RDyCgyArxHTYxky4ZLX37Y3n4PZbpgTFASdhuP4OGndHQ70
# TZiojGV13vy5eEIP6D0s1wlBGKEkqmuQ/uTEYplXuf2Ey49I1a/IheOVdIU+1R/D
# iTuGCJnJ2Yaug8NRvsOgAkRnjxZjlqlvLRGdd0jJjqria05MMsvM8jbVbbSQF+3Y
# hS20dErzJWyWVitCh3cCAwEAAaOCARswggEXMB0GA1UdDgQWBBTFd//jaFBikzRo
# OjjMhOnzdUTqbTAfBgNVHSMEGDAWgBTVYzpcijGQ80N7fEYbxTNoWoVtVTBWBgNV
# HR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9w
# cm9kdWN0cy9NaWNUaW1TdGFQQ0FfMjAxMC0wNy0wMS5jcmwwWgYIKwYBBQUHAQEE
# TjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtpL2Nl
# cnRzL01pY1RpbVN0YVBDQV8yMDEwLTA3LTAxLmNydDAMBgNVHRMBAf8EAjAAMBMG
# A1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBCwUAA4IBAQAr/fXAFYOZ8dEq
# o7y30M5roDI+XCfTROtHbkh9S6cR2IpvS7N1H4mHe7dCb8hMP60UxCh2851eixS5
# V/vpRyTBis2Zx7U3tjiOmRxZzYhYbYMlrmAya5uykMpDYtRtS27lYnvTHoZqCvoQ
# YmZ563H2UpwUqJK7ztkBFhwtcZ2ecDPNlBI6axWDpHIVPukXKAo45iBRn4EszY9T
# CG3+JXCeRaFdTIOhcBeOQoozlx1V685IrDGfabg6RY4xFekwGOiDYDJIS3r/wFaM
# NLBfDH0M7SSJRWHRRJGeTRfyMs6AtmG/YsOGwinQa3Q9wLOpr6BkjYwgupTnc+hH
# qyStzYRYMIIGcTCCBFmgAwIBAgIKYQmBKgAAAAAAAjANBgkqhkiG9w0BAQsFADCB
# iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1Jl
# ZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMp
# TWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9yaXR5IDIwMTAwHhcNMTAw
# NzAxMjEzNjU1WhcNMjUwNzAxMjE0NjU1WjB8MQswCQYDVQQGEwJVUzETMBEGA1UE
# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
# b2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3NvZnQgVGltZS1TdGFtcCBQ
# Q0EgMjAxMDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkdDbx3EYo6
# IOz8E5f1+n9plGt0VBDVpQoAgoX77XxoSyxfxcPlYcJ2tz5mK1vwFVMnBDEfQRsa
# lR3OCROOfGEwWbEwRA/xYIiEVEMM1024OAizQt2TrNZzMFcmgqNFDdDq9UeBzb8k
# YDJYYEbyWEeGMoQedGFnkV+BVLHPk0ySwcSmXdFhE24oxhr5hoC732H8RsEnHSRn
# EnIaIYqvS2SJUGKxXf13Hz3wV3WsvYpCTUBR0Q+cBj5nf/VmwAOWRH7v0Ev9buWa
# yrGo8noqCjHw2k4GkbaICDXoeByw6ZnNPOcvRLqn9NxkvaQBwSAJk3jN/LzAyURd
# XhacAQVPIk0CAwEAAaOCAeYwggHiMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQW
# BBTVYzpcijGQ80N7fEYbxTNoWoVtVTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMA
# QTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbL
# j+iiXGJo0T2UkFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1p
# Y3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXRfMjAxMC0w
# Ni0yMy5jcmwwWgYIKwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3
# Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jvb0NlckF1dF8yMDEwLTA2LTIz
# LmNydDCBoAYDVR0gAQH/BIGVMIGSMIGPBgkrBgEEAYI3LgMwgYEwPQYIKwYBBQUH
# AgEWMWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9QS0kvZG9jcy9DUFMvZGVmYXVs
# dC5odG0wQAYIKwYBBQUHAgIwNB4yIB0ATABlAGcAYQBsAF8AUABvAGwAaQBjAHkA
# XwBTAHQAYQB0AGUAbQBlAG4AdAAuIB0wDQYJKoZIhvcNAQELBQADggIBAAfmiFEN
# 4sbgmD+BcQM9naOhIW+z66bM9TG+zwXiqf76V20ZMLPCxWbJat/15/B4vceoniXj
# +bzta1RXCCtRgkQS+7lTjMz0YBKKdsxAQEGb3FwX/1z5Xhc1mCRWS3TvQhDIr79/
# xn/yN31aPxzymXlKkVIArzgPF/UveYFl2am1a+THzvbKegBvSzBEJCI8z+0DpZaP
# WSm8tv0E4XCfMkon/VWvL/625Y4zu2JfmttXQOnxzplmkIz/amJ/3cVKC5Em4jns
# GUpxY517IW3DnKOiPPp/fZZqkHimbdLhnPkd/DjYlPTGpQqWhqS9nhquBEKDuLWA
# myI4ILUl5WTs9/S/fmNZJQ96LjlXdqJxqgaKD4kWumGnEcua2A5HmoDF0M2n0O99
# g/DhO3EJ3110mCIIYdqwUB5vvfHhAN/nMQekkzr3ZUd46PioSKv33nJ+YWtvd6mB
# y6cJrDm77MbL2IK0cs0d9LiFAR6A+xuJKlQ5slvayA1VmXqHczsI5pgt6o3gMy4S
# KfXAL1QnIffIrE7aKLixqduWsqdCosnPGUFN4Ib5KpqjEWYw07t0MkvfY3v1mYov
# G8chr1m1rtxEPJdQcdeh0sVV42neV8HR3jDA/czmTfsNv11P6Z0eGTgvvM9YBS7v
# DaBQNdrvCScc1bN+NR4Iuto229Nfj950iEkSoYICzjCCAjcCAQEwgfihgdCkgc0w
# gcoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdS
# ZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJTAjBgNVBAsT
# HE1pY3Jvc29mdCBBbWVyaWNhIE9wZXJhdGlvbnMxJjAkBgNVBAsTHVRoYWxlcyBU
# U1MgRVNOOjdCRjEtRTNFQS1CODA4MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1T
# dGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4DAhoDFQCgoq9z8T+kQgslTCUgFaDFetcj
# XqCBgzCBgKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# JjAkBgNVBAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqGSIb3
# DQEBBQUAAgUA5HbBmTAiGA8yMDIxMDYxODE0NTQxN1oYDzIwMjEwNjE5MTQ1NDE3
# WjB3MD0GCisGAQQBhFkKBAExLzAtMAoCBQDkdsGZAgEAMAoCAQACAhXDAgH/MAcC
# AQACAhGLMAoCBQDkeBMZAgEAMDYGCisGAQQBhFkKBAIxKDAmMAwGCisGAQQBhFkK
# AwKgCjAIAgEAAgMHoSChCjAIAgEAAgMBhqAwDQYJKoZIhvcNAQEFBQADgYEAe1Hu
# hWHVyHZIs5TDlZaOWOmGYqw8ZNhxJynsLaq7AJjaJnTFyedD1kcYKoPUp3oav6Wo
# zo8vTcbu7AJfCyvScgX9SXQZKlKqM+KrSx9UllsynrOhEECjYqs6ymP5XJw+uxay
# wHQikXujZX903ltpLfD4BzTdu7O6eOea0MtTty4xggMNMIIDCQIBATCBkzB8MQsw
# CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
# ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy
# b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAVHDUOdZbKrGpwAAAAABUTAN
# BglghkgBZQMEAgEFAKCCAUowGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8G
# CSqGSIb3DQEJBDEiBCBR3Fdk2ypFKfjHviE7TTIbVI1NMA4mjj2oCPzuK/UjfTCB
# +gYLKoZIhvcNAQkQAi8xgeowgecwgeQwgb0EIC7NXJmI+NbBWQcAphb7/UnD+bbr
# lIcbL/7dAfVxeuVBMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldh
# c2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
# b3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIw
# MTACEzMAAAFRw1DnWWyqxqcAAAAAAVEwIgQgXfcPdCyHcnrPGnNCeP3b07CQD04B
# ZOvGYVzKgQNvTrIwDQYJKoZIhvcNAQELBQAEggEAUR1IMazuxP/tDC1Z5jJC94IK
# cbxopf+E0D9RsOYanpaNIIz/7jyr+sZ47r7EOVnGAR1BaiDjgtBws5bQAyZ/+GWO
# WqX9cQZhIrMlz/7KbBPrlLFfu+Z0qH014Fgx+ftowpLF2Z57CmT58e20wKTUjCtP
# jEDyZEsNGgqkTsKdTiNF4qkT/UIJ4IiNLXZSgcU5ytn+f+4xbGS1Tmcak6GMyEZB
# +e0lxJadJ+wBRIPYU3PQOOqHLFu5MxveyZwDjRCbFTU7tCVOY6Kq0Ueqv/D5h7b2
# QscB1IB7oZ2Z0fCv2hRPRqiSTDpiTHnTm4hSNFEASk6LYBsihcNNw+M12FygdQ==
# SIG # End signature block