Microsoft.Xrm.Tooling.PackageDeployment.Powershell.psd1

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
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
#
# Module manifest for module 'Microsoft.Xrm.Tooling.CrmConnector.PowerShell'
#

@{ 

# Script module or binary module file associated with this manifest.
RootModule = 'Microsoft.Xrm.Tooling.PackageDeployment.Powershell.psm1'

# Version number of this module.
ModuleVersion = '3.3.0.898'

# ID used to uniquely identify this module
GUID = 'C46F26FB-42AB-4226-BF3F-868DE04AE14C'

# Author of this module
Author = 'Microsoft Common Data Service Team'

# Company or vendor of this module
CompanyName = 'Microsoft'

# Copyright statement for this module
Copyright = '© 2020 Microsoft Corporation. All rights reserved'

# Description of the functionality provided by this module
Description = 'PowerShell wrapper for CDS Package Deployer'

# Minimum version of the .NET Framework required by this module
DotNetFrameworkVersion = '4.6.2'

# Minimum version of the common language runtime (CLR) required by this module
CLRVersion = '4.0'

# Assemblies that must be loaded prior to importing this module
RequiredAssemblies = @(
'Microsoft.Xrm.Tooling.Ui.Styles.dll',
'Microsoft.Uii.Common.dll',
'Microsoft.Uii.AifServices.dll',
'Microsoft.Uii.Common.TypeProvider.dll',
'Microsoft.Uii.CrmEntityManager.dll'
)

# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
NestedModules = @(
    'Microsoft.Xrm.Tooling.PackageDeployment.Powershell.dll'
    )

# Functions to export from this module
FunctionsToExport = @()

# Cmdlets to export from this module
CmdletsToExport = @(
    'Get-CrmPackages',
    'Import-CrmPackage'
    )

# Variables to export from this module
VariablesToExport = @(
    )

# Aliases to export from this module
AliasesToExport = @(
    )

# List of all modules packaged with this module.
 ModuleList = @(
    'Microsoft.Xrm.Tooling.PackageDeployment.Powershell'
    )

# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
PrivateData = @{

    PSData = @{

        # Tags applied to this module. These help with module discovery in online galleries.
        # Tags = @()

        # A URL to the license for this module.
         LicenseUri = 'https://go.microsoft.com/fwlink/?linkid=2108407'

        # A URL to the main website for this project.
         ProjectUri = 'https://docs.microsoft.com/powershell/dynamics365/customer-engagement/overview#get-started-using-the-dynamics-365-customer-engagement-package-deployment-powershell-cmdlets'

        # A URL to an icon representing this module.
         IconUri = 'https://connectoricons-prod.azureedge.net/powerappsforappmakers/icon_1.0.1056.1255.png'

        # ReleaseNotes of this module
         ReleaseNotes = '
Current Release:
 
3.3.0.898
  Fix in Data import to compensate for Import files created during a window of time where new virtual fields generated by CDS were incorrectly identified as valid fields.
      This issue would cause schema validation to fail during import of complex data for some types of attributeOf type fields.
  Up-taking fixes for Sovereign cloud discovery connectivity for login controls
 
3.3.0.895:
  Fixed a bug in runtime settings parsing that would mis identify a = in the value as a key value separator.
 
3.3.0.894:
  Fix for an issue where data import could hang without error
  Fix for an issue where importing business units that included a lookup for their own team (looped back to the entity) would not be populated on update.
  Fixed a general issue were related LookUp IDs that were discovered in the target system were not properly linked.
  Behavior Change: when using BatchMode, Create will always include the ID of the record from the source system, even if not explicitly included as a field in the exported system.
 
3.3.0.891:
Fix for an issue reported where related objects were not being correctly identified by name and thus not correctly linked to importing records
    This only impacted imports where the related entity did not have comparison keys
Modified Logging support in Powershell module to push logs more actively.
Speculative fix for issue where long running PD Powershell jobs seem to hang when running in PowerShell client.
 
3.3.0.888:
    Updates to internal architecture of PD.
    Corrected a possible bug in solution install leg that would result in a "Null Object" Error
    Added in memory configuration parsing logic
    Optimized dependency checking logic
 
 
3.3.0.882:
    Cleaned up extra lines in logging output.
    Adding Logging for time taken during configuraiton parsing to aid in performance info.
    Uptook New CDS SDK drop.
    Updated the Import-CrmPackage cmdlet to accept the output of the Get-CrmPackage cmdlet.
            This will allow a used of the powershell module to use Get-CrmPackage to find the package that they want, then pass that package info directly to Import-CrmPackage.
 
 
3.3.0.879:
    Fixed an issue preventing logs from being generated correctly, Logs should once again write to the log directory
 
3.3.0.874:
    Added Improvements to Async solution import logic
    Updated for current xrm sdk
    Includes updates from the CMT.
 
3.3.0.862
    ADAL 3.19+ is now required for this module. ADAL 2.x clients will need to be updated to use ADAL 3.x+
     
3.3.0.858
    Added support for France and New US Geos
    Added new behavior to return the full login error when initial connect fails in LastException.
    Fixed https activation issue introduced by .net 4.8. - This should no longer require http activation to be enabled on windows.
    Fixed issue where a long running cloned connection loses its access token.
 
3.3.0.844
    (Nuget-9.0.2.19)
    Logging Updates
    Added support for forcing all packages to run Sync mode, regardless of how a given package is configured.
    Modified RaiseFail event for RaiseFail generated from the package. New behavior will cause PD to stop with an overall failure.
 
3.3.0.841 - (Nuget-9.0.2.16):
    Added native support for handing throttling messages from server.
    Improved handling of retry logic for blocked imports due to concurrent metadata import
 
#### VERSION RESET HERE TO NOW FOLLOW BUILD VERSIONS OF THIS MODULE...
 
NOTE: Notes Below are synced to Nuget Release Found here: https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.PackageDeployment.PowerShell/
9.0.2.12:
    Correcting Dependency Info on Package
    Fixed bug in CrmServiceClient which would cause some OnPrem connections to fail with an error "Item already added to List"
    Minor Perf Improvements
       
9.0.2.11:
    Updated to include Fixed version of CrmServiceClient and login control for new US Geo ( US Gov High )
    Added support for Preferring Affinity with a given node to improve cache hit success rate.
 
9.0.2.9:
    Fixed a user reported issue that would cause an import patch to fail due to being misapplied.
    Fixed a user reported issue that would cause the incorrect version of a solution to be imported under some circumstances during update.
    Added better error detection for failed Async Jobs when using Async Solution Import.
    Major updates to error logging to make logs more concise and useful.
           
9.0.2.8:
    Corrected an issue which would occur while importing a package that contained an upgrade for a deployed solution, where a prior version upgrade had failed leaving a holding solution. The system will now attempt to apply the current holding solution, and upon success, apply the new upgrade contained.
             
9.0.2.7:
    Picked up updated CrmServiceClient (Microsoft.Xrm.Tooling.Connector)
 
9.0.2.5:
    Corrected use of strong types inside Package Deployer to allow it to work properly with packages that also include overlapping strong typed objects.
    Corrected a case where Async Solution Deployment could fail and not be correctly caught by PD.
    Corrected a spelling issue on the return of Get-CrmPackages, Property PackageInfo.PacakgeAssemblyLocation was renamed to PackageInfo.PackageAssemblyLocation
 
9.0.2.4:
    Updated install flows to more correctly trigger failures on failures within user code or data import.
 
    UseAsyncForSolutionImport - added to commandlet
    This setting controls the default behavior of the import operations for Package Deployer.
    If set to true, Package deployer will attempt to use an Async Pattern for all solution operations where possible to do, given the server configuration.
    The default setting for this is false ( sync mode )
 
    Importconfig.xml - Solutions node updates.
    Added requiredimportmode as an option to force an Async or Sync import behavior for a given solution.
    This includes, upgrade or new install.
        Valid settings for this property are :
            async - Requires the Import of this solution to be done in an async manner if the server supports it.
            sync - Requires the import of this solution to be done in a sync manner if the server supports it.
            Default behavior follows the default setting for the Package Deployer Core Process.
 
9.0.2.3:
    Updated with Xrm.Tooling.Connector support
    Added new dependencies for Xrm.Tooling.Connector.dll
    Fixed issues that caused unhandled exceptions to be thrown when a package resulted in an error.
    Added new notifications in logs and UX for faults (where applicable).
    Added logic to detect stuck solution import and abort the import process
 
9.0.0.7:
    Fixed a bug in Configuration Migration tool Lookup processing logic that was causing incorrect linking where the data set includes records that require related lookup records that share the same default name.
 
9.0.0.5:
    9.0 Initial Release
 
9.0.0.2-preview:
    Breaking Change!
    Refactor of this package to support module invocation instead of assembly registration. This is done to support direct inclusion from nuget by ALM \ SDL tasks.
    To register module, run the RegisterXRMPackageDeployment.ps1
 
8.2.0.4 -
    Initial release
 
         '


    } # End of PSData hashtable

} # End of PrivateData hashtable
}

# SIG # Begin signature block
# MIIdhAYJKoZIhvcNAQcCoIIddTCCHXECAQExCzAJBgUrDgMCGgUAMGkGCisGAQQB
# gjcCAQSgWzBZMDQGCisGAQQBgjcCAR4wJgIDAQAABBAfzDtgWUsITrck0sYpfvNR
# AgEAAgEAAgEAAgEAAgEAMCEwCQYFKw4DAhoFAAQU5bN4ScucIj1BgT16CUrmZhwM
# XKWgghhuMIIE3jCCA8agAwIBAgITMwAAAVcHwI+AVivl4QAAAAABVzANBgkqhkiG
# 9w0BAQUFADB3MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4G
# A1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSEw
# HwYDVQQDExhNaWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EwHhcNMTkxMjE5MDExMzAy
# WhcNMjEwMzE3MDExMzAyWjCBzjELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
# bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
# b3JhdGlvbjEpMCcGA1UECxMgTWljcm9zb2Z0IE9wZXJhdGlvbnMgUHVlcnRvIFJp
# Y28xJjAkBgNVBAsTHVRoYWxlcyBUU1MgRVNOOkY3N0YtRTM1Ni01QkFFMSUwIwYD
# VQQDExxNaWNyb3NvZnQgVGltZS1TdGFtcCBTZXJ2aWNlMIIBIjANBgkqhkiG9w0B
# AQEFAAOCAQ8AMIIBCgKCAQEA2MuEqFkw5VMnqYygsGlvEu2fMIkPJnqcyM1iY0gT
# 9QCA//SjpkPczNdQZHB9CcCfyiZzW7pEmKPdbhj9v4GggCVAtcx4m3e4od03N5TU
# 2LwY1B+5YYDkUMbn9FNyzD97DNafdmJjWNVlwweVu4rhPA7riuVVeuaFdMx7ICEI
# hSyVSBM44fh3Lp5hERf4SEhhkfClOU9+6yLEqMgSwbTsHDxxIbR/Pd6dwIaSPLmx
# uFHLadVh7ynY08QBUuSEbD/vMnx1BZSFP32HPgnyA3Q3GBjo8ZN6JSyGZHeZ/yOk
# wWCn/KeEogzbjn388HaCNVZR0G7Kc8Y5tvBk2qlOx37cXQIDAQABo4IBCTCCAQUw
# HQYDVR0OBBYEFOuHsagXH0j5BgmO0Vf0AZeZFZx/MB8GA1UdIwQYMBaAFCM0+NlS
# RnAK7UD7dvuzK7DDNbMPMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9jcmwubWlj
# cm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL01pY3Jvc29mdFRpbWVTdGFtcFBD
# QS5jcmwwWAYIKwYBBQUHAQEETDBKMEgGCCsGAQUFBzAChjxodHRwOi8vd3d3Lm1p
# Y3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY3Jvc29mdFRpbWVTdGFtcFBDQS5jcnQw
# EwYDVR0lBAwwCgYIKwYBBQUHAwgwDQYJKoZIhvcNAQEFBQADggEBAJiH8eFL6ihM
# a8B2L0laLGEta790qpu2VFiO15MnBhA1A0Mp97pGQNbyKMCnOPiDoRC+ge3FRXXI
# Yrp+S0FIkKbLAOydiZp8TeFEE9lNVZJhJWBb6jkZx90DioevrQRhocujbDSLiBIE
# bylN5JWWYjsv/96unhnR5Y1ZOTg67ZXDrsa+U1hjjN75T3F+VoZPpV0ja+hHGXT+
# F/x6TU3Fc9MzYBMDs23v/RxsJfpZsafg6prFjsWVlmrfMYsmeBmbDAk3qcJvbBR7
# FOvz+focTnNv5FrC9ORCuT1mRFAqxadceqYLK/taCJ0umqTmbWL8mn+YayKqB4FL
# ptK+64r2jk8wggX/MIID56ADAgECAhMzAAABh3IXchVZQMcJAAAAAAGHMA0GCSqG
# SIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAw
# DgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24x
# KDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTEwHhcNMjAw
# MzA0MTgzOTQ3WhcNMjEwMzAzMTgzOTQ3WjB0MQswCQYDVQQGEwJVUzETMBEGA1UE
# CBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z
# b2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNyb3NvZnQgQ29ycG9yYXRpb24w
# ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDOt8kLc7P3T7MKIhouYHew
# MFmnq8Ayu7FOhZCQabVwBp2VS4WyB2Qe4TQBT8aBznANDEPjHKNdPT8Xz5cNali6
# XHefS8i/WXtF0vSsP8NEv6mBHuA2p1fw2wB/F0dHsJ3GfZ5c0sPJjklsiYqPw59x
# J54kM91IOgiO2OUzjNAljPibjCWfH7UzQ1TPHc4dweils8GEIrbBRb7IWwiObL12
# jWT4Yh71NQgvJ9Fn6+UhD9x2uk3dLj84vwt1NuFQitKJxIV0fVsRNR3abQVOLqpD
# ugbr0SzNL6o8xzOHL5OXiGGwg6ekiXA1/2XXY7yVFc39tledDtZjSjNbex1zzwSX
# AgMBAAGjggF+MIIBejAfBgNVHSUEGDAWBgorBgEEAYI3TAgBBggrBgEFBQcDAzAd
# BgNVHQ4EFgQUhov4ZyO96axkJdMjpzu2zVXOJcswUAYDVR0RBEkwR6RFMEMxKTAn
# BgNVBAsTIE1pY3Jvc29mdCBPcGVyYXRpb25zIFB1ZXJ0byBSaWNvMRYwFAYDVQQF
# Ew0yMzAwMTIrNDU4Mzg1MB8GA1UdIwQYMBaAFEhuZOVQBdOCqhc3NyK1bajKdQKV
# MFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lv
# cHMvY3JsL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcmwwYQYIKwYBBQUH
# AQEEVTBTMFEGCCsGAQUFBzAChkVodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20vcGtp
# b3BzL2NlcnRzL01pY0NvZFNpZ1BDQTIwMTFfMjAxMS0wNy0wOC5jcnQwDAYDVR0T
# AQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAgEAixmyS6E6vprWD9KFNIB9G5zyMuIj
# ZAOuUJ1EK/Vlg6Fb3ZHXjjUwATKIcXbFuFC6Wr4KNrU4DY/sBVqmab5AC/je3bpU
# pjtxpEyqUqtPc30wEg/rO9vmKmqKoLPT37svc2NVBmGNl+85qO4fV/w7Cx7J0Bbq
# k19KcRNdjt6eKoTnTPHBHlVHQIHZpMxacbFOAkJrqAVkYZdz7ikNXTxV+GRb36tC
# 4ByMNxE2DF7vFdvaiZP0CVZ5ByJ2gAhXMdK9+usxzVk913qKde1OAuWdv+rndqkA
# Im8fUlRnr4saSCg7cIbUwCCf116wUJ7EuJDg0vHeyhnCeHnBbyH3RZkHEi2ofmfg
# nFISJZDdMAeVZGVOh20Jp50XBzqokpPzeZ6zc1/gyILNyiVgE+RPkjnUQshd1f1P
# Mgn3tns2Cz7bJiVUaqEO3n9qRFgy5JuLae6UweGfAeOo3dgLZxikKzYs3hDMaEtJ
# q8IP71cX7QXe6lnMmXU/Hdfz2p897Zd+kU+vZvKI3cwLfuVQgK2RZ2z+Kc3K3dRP
# z2rXycK5XCuRZmvGab/WbrZiC7wJQapgBodltMI5GMdFrBg9IeF7/rP4EqVQXeKt
# evTlZXjpuNhhjuR+2DMt/dWufjXpiW91bo3aH6EajOALXmoxgltCp1K7hrS6gmsv
# j94cLRf50QQ4U8QwggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0GCSqGSIb3DQEB
# BQUAMF8xEzARBgoJkiaJk/IsZAEZFgNjb20xGTAXBgoJkiaJk/IsZAEZFgltaWNy
# b3NvZnQxLTArBgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv
# cml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0MDMxMzAzMDlaMHcxCzAJBgNVBAYT
# AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYD
# VQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAfBgNVBAMTGE1pY3Jvc29mdCBU
# aW1lLVN0YW1wIFBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+h
# bLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0UytdDAgEesH1VSVFUmUG0KS
# rphcMCbaAGvoe73siQcP9w4EmPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN
# +kXPCdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM5AMs+2qQkDBuh/NZ
# MJ36ftaXs+ghl3740hPzCLdTbVK0RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJ
# gp+E7VV4/gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OToWECtR0Nsfz3
# m7IBziJLVP/5BcPCIAsCAwEAAaOCAaswggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYD
# VR0OBBYEFCM0+NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQBgkrBgEE
# AYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQOrIJgQFYnl+UlE/wq4QpTlVnkpKFj
# pGEwXzETMBEGCgmSJomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1pY3Jv
# c29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3QgQ2VydGlmaWNhdGUgQXV0aG9y
# aXR5ghB5rRahSqClrUxzWPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9j
# cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3RzL21pY3Jvc29mdHJvb3Rj
# ZXJ0LmNybDBUBggrBgEFBQcBAQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cu
# bWljcm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9vdENlcnQuY3J0MBMG
# A1UdJQQMMAoGCCsGAQUFBwMIMA0GCSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3p
# tK132855UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ3XpA4le7r1ia
# HOEdAYasu3jyi9DsOwHu4r6PCgXIjUji8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEq
# JCJw+/b85HiZLg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/4gcaMvnM
# MUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tOi3/FNSteo7/rvH0LQnvUU3Ih7jDK
# u3hlXFsBFwoUDtLaFJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpiKe+i
# myk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0NbhOxXEjEiZ2CzxSjHFaRkMU
# vLOzsE1nyJ9C/4B5IYCeFTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a
# 6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZhtG6hE6a/qkfwEm/9ijJs
# sv7fUciMI8lmvZ0dhxJkAj0tr1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa
# 2ZKHE3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kLfchpyOZu6qeXzjEp
# /w7FW1zYTRuh2Povnj8uVRZryROj/TCCB3owggVioAMCAQICCmEOkNIAAAAAAAMw
# DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n
# dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9y
# YXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv
# cml0eSAyMDExMB4XDTExMDcwODIwNTkwOVoXDTI2MDcwODIxMDkwOVowfjELMAkG
# A1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQx
# HjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYGA1UEAxMfTWljcm9z
# b2Z0IENvZGUgU2lnbmluZyBQQ0EgMjAxMTCCAiIwDQYJKoZIhvcNAQEBBQADggIP
# ADCCAgoCggIBAKvw+nIQHC6t2G6qghBNNLrytlghn0IbKmvpWlCquAY4GgRJun/D
# DB7dN2vGEtgL8DjCmQawyDnVARQxQtOJDXlkh36UYCRsr55JnOloXtLfm1OyCizD
# r9mpK656Ca/XllnKYBoF6WZ26DJSJhIv56sIUM+zRLdd2MQuA3WraPPLbfM6XKEW
# 9Ea64DhkrG5kNXimoGMPLdNAk/jj3gcN1Vx5pUkp5w2+oBN3vpQ97/vjK1oQH01W
# KKJ6cuASOrdJXtjt7UORg9l7snuGG9k+sYxd6IlPhBryoS9Z5JA7La4zWMW3Pv4y
# 07MDPbGyr5I4ftKdgCz1TlaRITUlwzluZH9TupwPrRkjhMv0ugOGjfdf8NBSv4yU
# h7zAIXQlXxgotswnKDglmDlKNs98sZKuHCOnqWbsYR9q4ShJnV+I4iVd0yFLPlLE
# tVc/JAPw0XpbL9Uj43BdD1FGd7P4AOG8rAKCX9vAFbO9G9RVS+c5oQ/pI0m8GLhE
# fEXkwcNyeuBy5yTfv0aZxe/CHFfbg43sTUkwp6uO3+xbn6/83bBm4sGXgXvt1u1L
# 50kppxMopqd9Z4DmimJ4X7IvhNdXnFy/dygo8e1twyiPLI9AN0/B4YVEicQJTMXU
# pUMvdJX3bvh4IFgsE11glZo+TzOE2rCIF96eTvSWsLxGoGyY0uDWiIwLAgMBAAGj
# ggHtMIIB6TAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUSG5k5VAF04KqFzc3
# IrVtqMp1ApUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGG
# MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUci06AjGQQ7kUBU7h6qfHMdEj
# iTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3Br
# aS9jcmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNybDBe
# BggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0dHA6Ly93d3cubWljcm9zb2Z0
# LmNvbS9wa2kvY2VydHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNydDCB
# nwYDVR0gBIGXMIGUMIGRBgkrBgEEAYI3LgMwgYMwPwYIKwYBBQUHAgEWM2h0dHA6
# Ly93d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvZG9jcy9wcmltYXJ5Y3BzLmh0bTBA
# BggrBgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBwAG8AbABpAGMAeQBfAHMAdABh
# AHQAZQBtAGUAbgB0AC4gHTANBgkqhkiG9w0BAQsFAAOCAgEAZ/KGpZjgVHkaLtPY
# dGcimwuWEeFjkplCln3SeQyQwWVfLiw++MNy0W2D/r4/6ArKO79HqaPzadtjvyI1
# pZddZYSQfYtGUFXYDJJ80hpLHPM8QotS0LD9a+M+By4pm+Y9G6XUtR13lDni6WTJ
# RD14eiPzE32mkHSDjfTLJgJGKsKKELukqQUMm+1o+mgulaAqPyprWEljHwlpblqY
# luSD9MCP80Yr3vw70L01724lruWvJ+3Q3fMOr5kol5hNDj0L8giJ1h/DMhji8MUt
# zluetEk5CsYKwsatruWy2dsViFFFWDgycScaf7H0J/jeLDogaZiyWYlobm+nt3TD
# QAUGpgEqKD6CPxNNZgvAs0314Y9/HG8VfUWnduVAKmWjw11SYobDHWM2l4bf2vP4
# 8hahmifhzaWX0O5dY0HjWwechz4GdwbRBrF1HxS+YWG18NzGGwS+30HHDiju3mUv
# 7Jf2oVyW2ADWoUa9WfOXpQlLSBCZgB/QACnFsZulP0V3HjXG0qKin3p6IvpIlR+r
# +0cjgPWe+L9rt0uX4ut1eBrs6jeZeRhL/9azI2h15q/6/IvrC4DqaTuv/DDtBEyO
# 3991bWORPdGdVk5Pv4BXIqF4ETIheu9BCrE/+6jMpF3BoYibV3FWTkhFwELJm3Zb
# CoBIa/15n8G9bW1qyVJzEw16UM0xggSAMIIEfAIBATCBlTB+MQswCQYDVQQGEwJV
# UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UE
# ChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29k
# ZSBTaWduaW5nIFBDQSAyMDExAhMzAAABh3IXchVZQMcJAAAAAAGHMAkGBSsOAwIa
# BQCggZQwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGCNwIBCzEO
# MAwGCisGAQQBgjcCARUwIwYJKoZIhvcNAQkEMRYEFI99PeDqPzQUlKOnP1QJ6hM/
# HgMqMDQGCisGAQQBgjcCAQwxJjAkoBKAEABUAGUAcwB0AFMAaQBnAG6hDoAMaHR0
# cDovL3Rlc3QgMA0GCSqGSIb3DQEBAQUABIIBAAyRXhWzChLvhFXWTr+gb8hDNM+F
# DBq1dr85K0dpiJT87zjbAUvJ2/jVXZWG658lrCbYMNptRi3Hh8yMspCiJDnq9wx7
# IrDrGMsNv3gJgqm7zWKyD6za8tT3P2JeENDhDDM7fyGugx0+vYcWujmtidSXTmFn
# AkELt6A5impwsWu8eeTEFYOkawq/d8agk4Xw9Xg9HBe9sOBzqlU9S/+TDetilavz
# D4ggBmL01zzhhht7BGMf9joK1UOElzYveuMLOxXrr1EVubHvfFQJxaooOzgpz9ts
# khD+A5jFk1wS7EEQP0QmcA97OYgftEuoC9I7T/22HQWhVn30wpUeTuVPbT2hggIo
# MIICJAYJKoZIhvcNAQkGMYICFTCCAhECAQEwgY4wdzELMAkGA1UEBhMCVVMxEzAR
# BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
# Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWljcm9zb2Z0IFRpbWUtU3Rh
# bXAgUENBAhMzAAABVwfAj4BWK+XhAAAAAAFXMAkGBSsOAwIaBQCgXTAYBgkqhkiG
# 9w0BCQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMDA3MTQxNTQyNTFa
# MCMGCSqGSIb3DQEJBDEWBBSgVg3uzbw2dNyR/eSwixJfjN1mcTANBgkqhkiG9w0B
# AQUFAASCAQAesSvCY+R0lxamh2iwGoO54F7gMpj7pib6GJ4klbFkkQiIY1PV6qRZ
# 0C0VTp40X5rvE+sC6clCNMm59u5jLzipZ+5f5BWMOWNYysP+5B+xxrfJf7IqeSbf
# IxxuFpX00d3G+FeCT0H03UWKh0Gr8SV4kg/ZlQRWPeptm6rSygY7PkPjKpG8XxQB
# Ha+NA/1ObPF0Db+MsgjXwImDFCF6kcO0upXUOBI/C6Dwux+bYIic7BX510hKUagE
# VGPAZH1OqLZoGJATLzK8FsllJATXBA8hdDzEKYtVP4MwurwCSa9PIBNaqzN0N5n+
# sf3Kg9pLT0kcqDjnRSlrVvrC+A+6PYsI
# SIG # End signature block