EntityFramework6.PS2.psm1 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. # Copyright (c) Microsoft Corporation. All rights reserved.
  2. $ErrorActionPreference = 'Stop'
  3. $InitialDatabase = '0'
  4. $UpdatePowerShell = 'The Entity Framework Package Manager Console Tools require Windows PowerShell 3.0 or higher. ' +
  5. 'Install Windows Management Framework 3.0, restart Visual Studio, and try again. https://aka.ms/wmf3download'
  6. <#
  7. .SYNOPSIS
  8. Adds or updates an Entity Framework provider entry in the project config
  9. file.
  10. .DESCRIPTION
  11. Adds an entry into the 'entityFramework' section of the project config
  12. file for the specified provider invariant name and provider type. If an
  13. entry for the given invariant name already exists, then that entry is
  14. updated with the given type name, unless the given type name already
  15. matches, in which case no action is taken. The 'entityFramework'
  16. section is added if it does not exist. The config file is automatically
  17. saved if and only if a change was made.
  18. This command is typically used only by Entity Framework provider NuGet
  19. packages and is run from the 'install.ps1' script.
  20. .PARAMETER Project
  21. The Visual Studio project to update. When running in the NuGet install.ps1
  22. script the '$project' variable provided as part of that script should be
  23. used.
  24. .PARAMETER InvariantName
  25. The provider invariant name that uniquely identifies this provider. For
  26. example, the Microsoft SQL Server provider is registered with the invariant
  27. name 'System.Data.SqlClient'.
  28. .PARAMETER TypeName
  29. The assembly-qualified type name of the provider-specific type that
  30. inherits from 'System.Data.Entity.Core.Common.DbProviderServices'. For
  31. example, for the Microsoft SQL Server provider, this type is
  32. 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer'.
  33. #>
  34. function Add-EFProvider
  35. {
  36. [CmdletBinding(PositionalBinding = $false)]
  37. param(
  38. [parameter(Position = 0, Mandatory = $true)]
  39. $Project,
  40. [parameter(Position = 1, Mandatory = $true)]
  41. [string] $InvariantName,
  42. [parameter(Position = 2, Mandatory = $true)]
  43. [string] $TypeName)
  44. $configPath = GetConfigPath($Project)
  45. if (!$configPath)
  46. {
  47. return
  48. }
  49. [xml] $configXml = Get-Content $configPath
  50. $providers = $configXml.configuration.entityFramework.providers
  51. $providers.provider |
  52. where invariantName -eq $InvariantName |
  53. %{ $providers.RemoveChild($_) | Out-Null }
  54. $provider = $providers.AppendChild($configXml.CreateElement('provider'))
  55. $provider.SetAttribute('invariantName', $InvariantName)
  56. $provider.SetAttribute('type', $TypeName)
  57. $configXml.Save($configPath)
  58. }
  59. <#
  60. .SYNOPSIS
  61. Adds or updates an Entity Framework default connection factory in the
  62. project config file.
  63. .DESCRIPTION
  64. Adds an entry into the 'entityFramework' section of the project config
  65. file for the connection factory that Entity Framework will use by default
  66. when creating new connections by convention. Any existing entry will be
  67. overridden if it does not match. The 'entityFramework' section is added if
  68. it does not exist. The config file is automatically saved if and only if
  69. a change was made.
  70. This command is typically used only by Entity Framework provider NuGet
  71. packages and is run from the 'install.ps1' script.
  72. .PARAMETER Project
  73. The Visual Studio project to update. When running in the NuGet install.ps1
  74. script the '$project' variable provided as part of that script should be
  75. used.
  76. .PARAMETER TypeName
  77. The assembly-qualified type name of the connection factory type that
  78. implements the 'System.Data.Entity.Infrastructure.IDbConnectionFactory'
  79. interface. For example, for the Microsoft SQL Server Express provider
  80. connection factory, this type is
  81. 'System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework'.
  82. .PARAMETER ConstructorArguments
  83. An optional array of strings that will be passed as arguments to the
  84. connection factory type constructor.
  85. #>
  86. function Add-EFDefaultConnectionFactory
  87. {
  88. [CmdletBinding(PositionalBinding = $false)]
  89. param(
  90. [parameter(Position = 0, Mandatory = $true)]
  91. $Project,
  92. [parameter(Position = 1, Mandatory = $true)]
  93. [string] $TypeName,
  94. [string[]] $ConstructorArguments)
  95. $configPath = GetConfigPath($Project)
  96. if (!$configPath)
  97. {
  98. return
  99. }
  100. [xml] $configXml = Get-Content $configPath
  101. $entityFramework = $configXml.configuration.entityFramework
  102. $defaultConnectionFactory = $entityFramework.defaultConnectionFactory
  103. if ($defaultConnectionFactory)
  104. {
  105. $entityFramework.RemoveChild($defaultConnectionFactory) | Out-Null
  106. }
  107. $defaultConnectionFactory = $entityFramework.AppendChild($configXml.CreateElement('defaultConnectionFactory'))
  108. $defaultConnectionFactory.SetAttribute('type', $TypeName)
  109. if ($ConstructorArguments)
  110. {
  111. $parameters = $defaultConnectionFactory.AppendChild($configXml.CreateElement('parameters'))
  112. foreach ($constructorArgument in $ConstructorArguments)
  113. {
  114. $parameter = $parameters.AppendChild($configXml.CreateElement('parameter'))
  115. $parameter.SetAttribute('value', $constructorArgument)
  116. }
  117. }
  118. $configXml.Save($configPath)
  119. }
  120. <#
  121. .SYNOPSIS
  122. Enables Code First Migrations in a project.
  123. .DESCRIPTION
  124. Enables Migrations by scaffolding a migrations configuration class in the project. If the
  125. target database was created by an initializer, an initial migration will be created (unless
  126. automatic migrations are enabled via the EnableAutomaticMigrations parameter).
  127. .PARAMETER ContextTypeName
  128. Specifies the context to use. If omitted, migrations will attempt to locate a
  129. single context type in the target project.
  130. .PARAMETER EnableAutomaticMigrations
  131. Specifies whether automatic migrations will be enabled in the scaffolded migrations configuration.
  132. If omitted, automatic migrations will be disabled.
  133. .PARAMETER MigrationsDirectory
  134. Specifies the name of the directory that will contain migrations code files.
  135. If omitted, the directory will be named "Migrations".
  136. .PARAMETER ProjectName
  137. Specifies the project that the scaffolded migrations configuration class will
  138. be added to. If omitted, the default project selected in package manager
  139. console is used.
  140. .PARAMETER StartUpProjectName
  141. Specifies the configuration file to use for named connection strings. If
  142. omitted, the specified project's configuration file is used.
  143. .PARAMETER ContextProjectName
  144. Specifies the project which contains the DbContext class to use. If omitted,
  145. the context is assumed to be in the same project used for migrations.
  146. .PARAMETER ConnectionStringName
  147. Specifies the name of a connection string to use from the application's
  148. configuration file.
  149. .PARAMETER ConnectionString
  150. Specifies the connection string to use. If omitted, the context's
  151. default connection will be used.
  152. .PARAMETER ConnectionProviderName
  153. Specifies the provider invariant name of the connection string.
  154. .PARAMETER Force
  155. Specifies that the migrations configuration be overwritten when running more
  156. than once for a given project.
  157. .PARAMETER ContextAssemblyName
  158. Specifies the name of the assembly which contains the DbContext class to use. Use this
  159. parameter instead of ContextProjectName when the context is contained in a referenced
  160. assembly rather than in a project of the solution.
  161. .PARAMETER AppDomainBaseDirectory
  162. Specifies the directory to use for the app-domain that is used for running Migrations
  163. code such that the app-domain is able to find all required assemblies. This is an
  164. advanced option that should only be needed if the solution contains several projects
  165. such that the assemblies needed for the context and configuration are not all
  166. referenced from either the project containing the context or the project containing
  167. the migrations.
  168. .EXAMPLE
  169. Enable-Migrations
  170. # Scaffold a migrations configuration in a project with only one context
  171. .EXAMPLE
  172. Enable-Migrations -Auto
  173. # Scaffold a migrations configuration with automatic migrations enabled for a project
  174. # with only one context
  175. .EXAMPLE
  176. Enable-Migrations -ContextTypeName MyContext -MigrationsDirectory DirectoryName
  177. # Scaffold a migrations configuration for a project with multiple contexts
  178. # This scaffolds a migrations configuration for MyContext and will put the configuration
  179. # and subsequent configurations in a new directory called "DirectoryName"
  180. #>
  181. function Enable-Migrations(
  182. $ContextTypeName,
  183. [alias('Auto')]
  184. [switch] $EnableAutomaticMigrations,
  185. $MigrationsDirectory,
  186. $ProjectName,
  187. $StartUpProjectName,
  188. $ContextProjectName,
  189. $ConnectionStringName,
  190. $ConnectionString,
  191. $ConnectionProviderName,
  192. [switch] $Force,
  193. $ContextAssemblyName,
  194. $AppDomainBaseDirectory)
  195. WarnIfOtherEFs 'Enable-Migrations'
  196. throw $UpdatePowerShell
  197. }
  198. <#
  199. .SYNOPSIS
  200. Scaffolds a migration script for any pending model changes.
  201. .DESCRIPTION
  202. Scaffolds a new migration script and adds it to the project.
  203. .PARAMETER Name
  204. Specifies the name of the custom script.
  205. .PARAMETER Force
  206. Specifies that the migration user code be overwritten when re-scaffolding an
  207. existing migration.
  208. .PARAMETER ProjectName
  209. Specifies the project that contains the migration configuration type to be
  210. used. If omitted, the default project selected in package manager console
  211. is used.
  212. .PARAMETER StartUpProjectName
  213. Specifies the configuration file to use for named connection strings. If
  214. omitted, the specified project's configuration file is used.
  215. .PARAMETER ConfigurationTypeName
  216. Specifies the migrations configuration to use. If omitted, migrations will
  217. attempt to locate a single migrations configuration type in the target
  218. project.
  219. .PARAMETER ConnectionStringName
  220. Specifies the name of a connection string to use from the application's
  221. configuration file.
  222. .PARAMETER ConnectionString
  223. Specifies the connection string to use. If omitted, the context's
  224. default connection will be used.
  225. .PARAMETER ConnectionProviderName
  226. Specifies the provider invariant name of the connection string.
  227. .PARAMETER IgnoreChanges
  228. Scaffolds an empty migration ignoring any pending changes detected in the current model.
  229. This can be used to create an initial, empty migration to enable Migrations for an existing
  230. database. N.B. Doing this assumes that the target database schema is compatible with the
  231. current model.
  232. .PARAMETER AppDomainBaseDirectory
  233. Specifies the directory to use for the app-domain that is used for running Migrations
  234. code such that the app-domain is able to find all required assemblies. This is an
  235. advanced option that should only be needed if the solution contains several projects
  236. such that the assemblies needed for the context and configuration are not all
  237. referenced from either the project containing the context or the project containing
  238. the migrations.
  239. .EXAMPLE
  240. Add-Migration First
  241. # Scaffold a new migration named "First"
  242. .EXAMPLE
  243. Add-Migration First -IgnoreChanges
  244. # Scaffold an empty migration ignoring any pending changes detected in the current model.
  245. # This can be used to create an initial, empty migration to enable Migrations for an existing
  246. # database. N.B. Doing this assumes that the target database schema is compatible with the
  247. # current model.
  248. #>
  249. function Add-Migration(
  250. $Name,
  251. [switch] $Force,
  252. $ProjectName,
  253. $StartUpProjectName,
  254. $ConfigurationTypeName,
  255. $ConnectionStringName,
  256. $ConnectionString,
  257. $ConnectionProviderName,
  258. [switch] $IgnoreChanges,
  259. $AppDomainBaseDirectory)
  260. WarnIfOtherEFs 'Add-Migration'
  261. throw $UpdatePowerShell
  262. }
  263. <#
  264. .SYNOPSIS
  265. Applies any pending migrations to the database.
  266. .DESCRIPTION
  267. Updates the database to the current model by applying pending migrations.
  268. .PARAMETER SourceMigration
  269. Only valid with -Script. Specifies the name of a particular migration to use
  270. as the update's starting point. If omitted, the last applied migration in
  271. the database will be used.
  272. .PARAMETER TargetMigration
  273. Specifies the name of a particular migration to update the database to. If
  274. omitted, the current model will be used.
  275. .PARAMETER Script
  276. Generate a SQL script rather than executing the pending changes directly.
  277. .PARAMETER Force
  278. Specifies that data loss is acceptable during automatic migration of the
  279. database.
  280. .PARAMETER ProjectName
  281. Specifies the project that contains the migration configuration type to be
  282. used. If omitted, the default project selected in package manager console
  283. is used.
  284. .PARAMETER StartUpProjectName
  285. Specifies the configuration file to use for named connection strings. If
  286. omitted, the specified project's configuration file is used.
  287. .PARAMETER ConfigurationTypeName
  288. Specifies the migrations configuration to use. If omitted, migrations will
  289. attempt to locate a single migrations configuration type in the target
  290. project.
  291. .PARAMETER ConnectionStringName
  292. Specifies the name of a connection string to use from the application's
  293. configuration file.
  294. .PARAMETER ConnectionString
  295. Specifies the connection string to use. If omitted, the context's
  296. default connection will be used.
  297. .PARAMETER ConnectionProviderName
  298. Specifies the provider invariant name of the connection string.
  299. .PARAMETER AppDomainBaseDirectory
  300. Specifies the directory to use for the app-domain that is used for running Migrations
  301. code such that the app-domain is able to find all required assemblies. This is an
  302. advanced option that should only be needed if the solution contains several projects
  303. such that the assemblies needed for the context and configuration are not all
  304. referenced from either the project containing the context or the project containing
  305. the migrations.
  306. .EXAMPLE
  307. Update-Database
  308. # Update the database to the latest migration
  309. .EXAMPLE
  310. Update-Database -TargetMigration Second
  311. # Update database to a migration named "Second"
  312. # This will apply migrations if the target hasn't been applied or roll back migrations
  313. # if it has
  314. .EXAMPLE
  315. Update-Database -Script
  316. # Generate a script to update the database from its current state to the latest migration
  317. .EXAMPLE
  318. Update-Database -Script -SourceMigration Second -TargetMigration First
  319. # Generate a script to migrate the database from a specified start migration
  320. # named "Second" to a specified target migration named "First"
  321. .EXAMPLE
  322. Update-Database -Script -SourceMigration $InitialDatabase
  323. # Generate a script that can upgrade a database currently at any version to the latest version.
  324. # The generated script includes logic to check the __MigrationsHistory table and only apply changes
  325. # that haven't been previously applied.
  326. .EXAMPLE
  327. Update-Database -TargetMigration $InitialDatabase
  328. # Runs the Down method to roll-back any migrations that have been applied to the database
  329. #>
  330. function Update-Database(
  331. $SourceMigration,
  332. $TargetMigration,
  333. [switch] $Script,
  334. [switch] $Force,
  335. $ProjectName,
  336. $StartUpProjectName,
  337. $ConfigurationTypeName,
  338. $ConnectionStringName,
  339. $ConnectionString,
  340. $ConnectionProviderName,
  341. $AppDomainBaseDirectory)
  342. WarnIfOtherEFs 'Update-Database'
  343. throw $UpdatePowerShell
  344. }
  345. <#
  346. .SYNOPSIS
  347. Displays the migrations that have been applied to the target database.
  348. .DESCRIPTION
  349. Displays the migrations that have been applied to the target database.
  350. .PARAMETER ProjectName
  351. Specifies the project that contains the migration configuration type to be
  352. used. If omitted, the default project selected in package manager console
  353. is used.
  354. .PARAMETER StartUpProjectName
  355. Specifies the configuration file to use for named connection strings. If
  356. omitted, the specified project's configuration file is used.
  357. .PARAMETER ConfigurationTypeName
  358. Specifies the migrations configuration to use. If omitted, migrations will
  359. attempt to locate a single migrations configuration type in the target
  360. project.
  361. .PARAMETER ConnectionStringName
  362. Specifies the name of a connection string to use from the application's
  363. configuration file.
  364. .PARAMETER ConnectionString
  365. Specifies the connection string to use. If omitted, the context's
  366. default connection will be used.
  367. .PARAMETER ConnectionProviderName
  368. Specifies the provider invariant name of the connection string.
  369. .PARAMETER AppDomainBaseDirectory
  370. Specifies the directory to use for the app-domain that is used for running Migrations
  371. code such that the app-domain is able to find all required assemblies. This is an
  372. advanced option that should only be needed if the solution contains several projects
  373. such that the assemblies needed for the context and configuration are not all
  374. referenced from either the project containing the context or the project containing
  375. the migrations.
  376. #>
  377. function Get-Migrations(
  378. $ProjectName,
  379. $StartUpProjectName,
  380. $ConfigurationTypeName,
  381. $ConnectionStringName,
  382. $ConnectionString,
  383. $ConnectionProviderName,
  384. $AppDomainBaseDirectory)
  385. WarnIfOtherEFs 'Get-Migrations'
  386. throw $UpdatePowerShell
  387. }
  388. function GetConfigPath($project)
  389. {
  390. $solution = Get-VSService 'Microsoft.VisualStudio.Shell.Interop.SVsSolution' 'Microsoft.VisualStudio.Shell.Interop.IVsSolution'
  391. $hierarchy = $null
  392. $hr = $solution.GetProjectOfUniqueName($project.UniqueName, [ref] $hierarchy)
  393. [Runtime.InteropServices.Marshal]::ThrowExceptionForHR($hr)
  394. $aggregatableProject = Get-Interface $hierarchy 'Microsoft.VisualStudio.Shell.Interop.IVsAggregatableProject'
  395. if (!$aggregatableProject)
  396. {
  397. $projectTypes = $project.Kind
  398. }
  399. else
  400. {
  401. $projectTypeGuids = $null
  402. $hr = $aggregatableProject.GetAggregateProjectTypeGuids([ref] $projectTypeGuids)
  403. [Runtime.InteropServices.Marshal]::ThrowExceptionForHR($hr)
  404. $projectTypes = $projectTypeGuids.Split(';')
  405. }
  406. $configFileName = 'app.config'
  407. foreach ($projectType in $projectTypes)
  408. {
  409. if ($projectType -in '{349C5851-65DF-11DA-9384-00065B846F21}', '{E24C65DC-7377-472B-9ABA-BC803B73C61A}')
  410. {
  411. $configFileName = 'web.config'
  412. break
  413. }
  414. }
  415. try
  416. {
  417. return $project.ProjectItems.Item($configFileName).Properties.Item('FullPath').Value
  418. }
  419. catch
  420. {
  421. return $null
  422. }
  423. }
  424. function WarnIfOtherEFs($cmdlet)
  425. {
  426. if (Get-Module 'EntityFrameworkCore')
  427. {
  428. Write-Warning "Both Entity Framework 6 and Entity Framework Core are installed. The Entity Framework 6 tools are running. Use 'EntityFrameworkCore\$cmdlet' for Entity Framework Core."
  429. }
  430. if (Get-Module 'EntityFramework')
  431. {
  432. Write-Warning "A version of Entity Framework older than 6.3 is also installed. The newer tools are running. Use 'EntityFramework\$cmdlet' for the older version."
  433. }
  434. }
  435. Export-ModuleMember 'Add-EFDefaultConnectionFactory', 'Add-EFProvider', 'Add-Migration', 'Enable-Migrations', 'Get-Migrations', 'Update-Database' -Variable 'InitialDatabase'
  436. # SIG # Begin signature block
  437. # MIIjiQYJKoZIhvcNAQcCoIIjejCCI3YCAQExDzANBglghkgBZQMEAgEFADB5Bgor
  438. # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG
  439. # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCBCukGtqR95vOzB
  440. # mTRxRgJFbcuurrr/NN2TQIASywaOO6CCDYUwggYDMIID66ADAgECAhMzAAABUptA
  441. # n1BWmXWIAAAAAAFSMA0GCSqGSIb3DQEBCwUAMH4xCzAJBgNVBAYTAlVTMRMwEQYD
  442. # VQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNy
  443. # b3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01pY3Jvc29mdCBDb2RlIFNpZ25p
  444. # bmcgUENBIDIwMTEwHhcNMTkwNTAyMjEzNzQ2WhcNMjAwNTAyMjEzNzQ2WjB0MQsw
  445. # CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u
  446. # ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMR4wHAYDVQQDExVNaWNy
  447. # b3NvZnQgQ29ycG9yYXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
  448. # AQCxp4nT9qfu9O10iJyewYXHlN+WEh79Noor9nhM6enUNbCbhX9vS+8c/3eIVazS
  449. # YnVBTqLzW7xWN1bCcItDbsEzKEE2BswSun7J9xCaLwcGHKFr+qWUlz7hh9RcmjYS
  450. # kOGNybOfrgj3sm0DStoK8ljwEyUVeRfMHx9E/7Ca/OEq2cXBT3L0fVnlEkfal310
  451. # EFCLDo2BrE35NGRjG+/nnZiqKqEh5lWNk33JV8/I0fIcUKrLEmUGrv0CgC7w2cjm
  452. # bBhBIJ+0KzSnSWingXol/3iUdBBy4QQNH767kYGunJeY08RjHMIgjJCdAoEM+2mX
  453. # v1phaV7j+M3dNzZ/cdsz3oDfAgMBAAGjggGCMIIBfjAfBgNVHSUEGDAWBgorBgEE
  454. # AYI3TAgBBggrBgEFBQcDAzAdBgNVHQ4EFgQU3f8Aw1sW72WcJ2bo/QSYGzVrRYcw
  455. # VAYDVR0RBE0wS6RJMEcxLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
  456. # dGlvbnMgTGltaXRlZDEWMBQGA1UEBRMNMjMwMDEyKzQ1NDEzNjAfBgNVHSMEGDAW
  457. # gBRIbmTlUAXTgqoXNzcitW2oynUClTBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
  458. # d3d3Lm1pY3Jvc29mdC5jb20vcGtpb3BzL2NybC9NaWNDb2RTaWdQQ0EyMDExXzIw
  459. # MTEtMDctMDguY3JsMGEGCCsGAQUFBwEBBFUwUzBRBggrBgEFBQcwAoZFaHR0cDov
  460. # L3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9jZXJ0cy9NaWNDb2RTaWdQQ0EyMDEx
  461. # XzIwMTEtMDctMDguY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQELBQADggIB
  462. # AJTwROaHvogXgixWjyjvLfiRgqI2QK8GoG23eqAgNjX7V/WdUWBbs0aIC3k49cd0
  463. # zdq+JJImixcX6UOTpz2LZPFSh23l0/Mo35wG7JXUxgO0U+5drbQht5xoMl1n7/TQ
  464. # 4iKcmAYSAPxTq5lFnoV2+fAeljVA7O43szjs7LR09D0wFHwzZco/iE8Hlakl23ZT
  465. # 7FnB5AfU2hwfv87y3q3a5qFiugSykILpK0/vqnlEVB0KAdQVzYULQ/U4eFEjnis3
  466. # Js9UrAvtIhIs26445Rj3UP6U4GgOjgQonlRA+mDlsh78wFSGbASIvK+fkONUhvj8
  467. # B8ZHNn4TFfnct+a0ZueY4f6aRPxr8beNSUKn7QW/FQmn422bE7KfnqWncsH7vbNh
  468. # G929prVHPsaa7J22i9wyHj7m0oATXJ+YjfyoEAtd5/NyIYaE4Uu0j1EhuYUo5VaJ
  469. # JnMaTER0qX8+/YZRWrFN/heps41XNVjiAawpbAa0fUa3R9RNBjPiBnM0gvNPorM4
  470. # dsV2VJ8GluIQOrJlOvuCrOYDGirGnadOmQ21wPBoGFCWpK56PxzliKsy5NNmAXcE
  471. # x7Qb9vUjY1WlYtrdwOXTpxN4slzIht69BaZlLIjLVWwqIfuNrhHKNDM9K+v7vgrI
  472. # bf7l5/665g0gjQCDCN6Q5sxuttTAEKtJeS/pkpI+DbZ/MIIHejCCBWKgAwIBAgIK
  473. # YQ6Q0gAAAAAAAzANBgkqhkiG9w0BAQsFADCBiDELMAkGA1UEBhMCVVMxEzARBgNV
  474. # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
  475. # c29mdCBDb3Jwb3JhdGlvbjEyMDAGA1UEAxMpTWljcm9zb2Z0IFJvb3QgQ2VydGlm
  476. # aWNhdGUgQXV0aG9yaXR5IDIwMTEwHhcNMTEwNzA4MjA1OTA5WhcNMjYwNzA4MjEw
  477. # OTA5WjB+MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
  478. # BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSgwJgYD
  479. # VQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5nIFBDQSAyMDExMIICIjANBgkqhkiG
  480. # 9w0BAQEFAAOCAg8AMIICCgKCAgEAq/D6chAcLq3YbqqCEE00uvK2WCGfQhsqa+la
  481. # UKq4BjgaBEm6f8MMHt03a8YS2AvwOMKZBrDIOdUBFDFC04kNeWSHfpRgJGyvnkmc
  482. # 6Whe0t+bU7IKLMOv2akrrnoJr9eWWcpgGgXpZnboMlImEi/nqwhQz7NEt13YxC4D
  483. # dato88tt8zpcoRb0RrrgOGSsbmQ1eKagYw8t00CT+OPeBw3VXHmlSSnnDb6gE3e+
  484. # lD3v++MrWhAfTVYoonpy4BI6t0le2O3tQ5GD2Xuye4Yb2T6xjF3oiU+EGvKhL1nk
  485. # kDstrjNYxbc+/jLTswM9sbKvkjh+0p2ALPVOVpEhNSXDOW5kf1O6nA+tGSOEy/S6
  486. # A4aN91/w0FK/jJSHvMAhdCVfGCi2zCcoOCWYOUo2z3yxkq4cI6epZuxhH2rhKEmd
  487. # X4jiJV3TIUs+UsS1Vz8kA/DRelsv1SPjcF0PUUZ3s/gA4bysAoJf28AVs70b1FVL
  488. # 5zmhD+kjSbwYuER8ReTBw3J64HLnJN+/RpnF78IcV9uDjexNSTCnq47f7Fufr/zd
  489. # sGbiwZeBe+3W7UvnSSmnEyimp31ngOaKYnhfsi+E11ecXL93KCjx7W3DKI8sj0A3
  490. # T8HhhUSJxAlMxdSlQy90lfdu+HggWCwTXWCVmj5PM4TasIgX3p5O9JawvEagbJjS
  491. # 4NaIjAsCAwEAAaOCAe0wggHpMBAGCSsGAQQBgjcVAQQDAgEAMB0GA1UdDgQWBBRI
  492. # bmTlUAXTgqoXNzcitW2oynUClTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAL
  493. # BgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBRyLToCMZBD
  494. # uRQFTuHqp8cx0SOJNDBaBgNVHR8EUzBRME+gTaBLhklodHRwOi8vY3JsLm1pY3Jv
  495. # c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
  496. # MDNfMjIuY3JsMF4GCCsGAQUFBwEBBFIwUDBOBggrBgEFBQcwAoZCaHR0cDovL3d3
  497. # dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNSb29DZXJBdXQyMDExXzIwMTFf
  498. # MDNfMjIuY3J0MIGfBgNVHSAEgZcwgZQwgZEGCSsGAQQBgjcuAzCBgzA/BggrBgEF
  499. # BQcCARYzaHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraW9wcy9kb2NzL3ByaW1h
  500. # cnljcHMuaHRtMEAGCCsGAQUFBwICMDQeMiAdAEwAZQBnAGEAbABfAHAAbwBsAGkA
  501. # YwB5AF8AcwB0AGEAdABlAG0AZQBuAHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQBn
  502. # 8oalmOBUeRou09h0ZyKbC5YR4WOSmUKWfdJ5DJDBZV8uLD74w3LRbYP+vj/oCso7
  503. # v0epo/Np22O/IjWll11lhJB9i0ZQVdgMknzSGksc8zxCi1LQsP1r4z4HLimb5j0b
  504. # pdS1HXeUOeLpZMlEPXh6I/MTfaaQdION9MsmAkYqwooQu6SpBQyb7Wj6aC6VoCo/
  505. # KmtYSWMfCWluWpiW5IP0wI/zRive/DvQvTXvbiWu5a8n7dDd8w6vmSiXmE0OPQvy
  506. # CInWH8MyGOLwxS3OW560STkKxgrCxq2u5bLZ2xWIUUVYODJxJxp/sfQn+N4sOiBp
  507. # mLJZiWhub6e3dMNABQamASooPoI/E01mC8CzTfXhj38cbxV9Rad25UAqZaPDXVJi
  508. # hsMdYzaXht/a8/jyFqGaJ+HNpZfQ7l1jQeNbB5yHPgZ3BtEGsXUfFL5hYbXw3MYb
  509. # BL7fQccOKO7eZS/sl/ahXJbYANahRr1Z85elCUtIEJmAH9AAKcWxm6U/RXceNcbS
  510. # oqKfenoi+kiVH6v7RyOA9Z74v2u3S5fi63V4GuzqN5l5GEv/1rMjaHXmr/r8i+sL
  511. # gOppO6/8MO0ETI7f33VtY5E90Z1WTk+/gFcioXgRMiF670EKsT/7qMykXcGhiJtX
  512. # cVZOSEXAQsmbdlsKgEhr/Xmfwb1tbWrJUnMTDXpQzTGCFVowghVWAgEBMIGVMH4x
  513. # CzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
  514. # b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xKDAmBgNVBAMTH01p
  515. # Y3Jvc29mdCBDb2RlIFNpZ25pbmcgUENBIDIwMTECEzMAAAFSm0CfUFaZdYgAAAAA
  516. # AVIwDQYJYIZIAWUDBAIBBQCgga4wGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQw
  517. # HAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIBDq
  518. # wSpkVRd34HAFhUI02JbLjpJvYPxaosKl7Ya85N83MEIGCisGAQQBgjcCAQwxNDAy
  519. # oBSAEgBNAGkAYwByAG8AcwBvAGYAdKEagBhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
  520. # b20wDQYJKoZIhvcNAQEBBQAEggEAo1kSS1wbXckEKe0kiAV5BJwC66PVMElqK8rS
  521. # ZTKY35DPPW7CnSXjsSx6SnRnyOebu9iF3GShrADsgMh1C5x0GEE03pmEERNDy8aa
  522. # /fQ0xYdR3rQEUaDEbDK6YWzqAnP0nugpJ60ariJpMfvvXUZpHgSJeO8wJ5RAe67N
  523. # yrpic3zdE+e8YvSsiD8+rf7WAOxHEI86mWd7ZoD4OJMRlDAdfhEd8VvOzj91froW
  524. # FHiShpb0mkdSIisw0dPGkk/jzn9Fd0a0JHGbn5YLI76iKOvRwcqKWX96LRezXZF4
  525. # Y+jWO+p31xoZ0TUHYxQ3HaulMq7vXZ8MHJkSdsUsWEgTVCLGkKGCEuQwghLgBgor
  526. # BgEEAYI3AwMBMYIS0DCCEswGCSqGSIb3DQEHAqCCEr0wghK5AgEDMQ8wDQYJYIZI
  527. # AWUDBAIBBQAwggFQBgsqhkiG9w0BCRABBKCCAT8EggE7MIIBNwIBAQYKKwYBBAGE
  528. # WQoDATAxMA0GCWCGSAFlAwQCAQUABCCa+i2okJFSkVB87EudNU6rFwhh43v28S+m
  529. # SdpTpEuO2QIGXoIOfEnAGBIyMDIwMDQxNjIyMTM0Mi45MVowBIACAfSggdCkgc0w
  530. # gcoxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJXQTEQMA4GA1UEBxMHUmVkbW9uZDEe
  531. # MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMS0wKwYDVQQLEyRNaWNyb3Nv
  532. # ZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQxJjAkBgNVBAsTHVRoYWxlcyBU
  533. # U1MgRVNOOjE3OUUtNEJCMC04MjQ2MSUwIwYDVQQDExxNaWNyb3NvZnQgVGltZS1T
  534. # dGFtcCBTZXJ2aWNloIIOPDCCBPEwggPZoAMCAQICEzMAAAEMqnhu3MxCTMEAAAAA
  535. # AQwwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hp
  536. # bmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw
  537. # b3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAw
  538. # HhcNMTkxMDIzMjMxOTE2WhcNMjEwMTIxMjMxOTE2WjCByjELMAkGA1UEBhMCVVMx
  539. # CzAJBgNVBAgTAldBMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3Nv
  540. # ZnQgQ29ycG9yYXRpb24xLTArBgNVBAsTJE1pY3Jvc29mdCBJcmVsYW5kIE9wZXJh
  541. # dGlvbnMgTGltaXRlZDEmMCQGA1UECxMdVGhhbGVzIFRTUyBFU046MTc5RS00QkIw
  542. # LTgyNDYxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZpY2UwggEi
  543. # MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrnTXX5epUmZAq2LDf2KB4Qy8I
  544. # txnV+itubGwOSmcI3VKtOEoj6fY+vfOpPMlWB0kUKgqbWSzWC1Ensdovq0OSs7Dx
  545. # cmZ8lrHJACW4JD57jQ0j4DjD67n0bLz0BVjmUk2uYK9rqCjN+DWTHDpptXlZav4+
  546. # MSk0KyE7iHG/dSqAxwIqdPZhVJnMXUbLsA+5vV9jQ/W80S44Uqs0IQS9YgpGuqx7
  547. # IEHvcbwoPbLDqN/PRUrE1JEB2ElX+CE7KsO3lr4voLebWumvyyqKh/eKiG/cA0iA
  548. # 2rDp7H7j4b4Hskxsgdsak915t50vp49u4EKduAmgOffjSTRrDqKPbUa+9SeRAgMB
  549. # AAGjggEbMIIBFzAdBgNVHQ4EFgQUCUI6r0MMhrQDSiqAq0zm+O5l4r4wHwYDVR0j
  550. # BBgwFoAU1WM6XIoxkPNDe3xGG8UzaFqFbVUwVgYDVR0fBE8wTTBLoEmgR4ZFaHR0
  551. # cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVjdHMvTWljVGltU3Rh
  552. # UENBXzIwMTAtMDctMDEuY3JsMFoGCCsGAQUFBwEBBE4wTDBKBggrBgEFBQcwAoY+
  553. # aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNUaW1TdGFQQ0Ff
  554. # MjAxMC0wNy0wMS5jcnQwDAYDVR0TAQH/BAIwADATBgNVHSUEDDAKBggrBgEFBQcD
  555. # CDANBgkqhkiG9w0BAQsFAAOCAQEARPfEGD8hn3N05/BsMYrtwreopi3+pQ6VtEHO
  556. # B42NvfYrzqcZ5EaQF57XR1U4QZZTDoq0F5aHUtDvRvrj+0u2Ityx/0nNoDINhvWx
  557. # GYyLl+NFnvndOq5pPxXs0ntF8S5h+9mW5t9APQxVtTi3Ox1l1i7ETftXYn2k3z2P
  558. # sagU20CdKcKfUxHEQ0AguC31fN5DNMQOEVhbQ3YM2mFORE9caOkObCLpa2Qnl+/S
  559. # JPIHh3AQL7953SUZsUtzK0mgzB9M0x0fqByceUzOyeKiucYVlrk8+JXvxehn0V66
  560. # kqjxko0aEsssHkZO2p8d7HmejeKhVKr422G+FfQj9X6JcmyimjCCBnEwggRZoAMC
  561. # AQICCmEJgSoAAAAAAAIwDQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMw
  562. # EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN
  563. # aWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENl
  564. # cnRpZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTEwMDcwMTIxMzY1NVoXDTI1MDcw
  565. # MTIxNDY1NVowfDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAO
  566. # BgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEm
  567. # MCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAgUENBIDIwMTAwggEiMA0GCSqG
  568. # SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpHQ28dxGKOiDs/BOX9fp/aZRrdFQQ1aUK
  569. # AIKF++18aEssX8XD5WHCdrc+Zitb8BVTJwQxH0EbGpUdzgkTjnxhMFmxMEQP8WCI
  570. # hFRDDNdNuDgIs0Ldk6zWczBXJoKjRQ3Q6vVHgc2/JGAyWGBG8lhHhjKEHnRhZ5Ff
  571. # gVSxz5NMksHEpl3RYRNuKMYa+YaAu99h/EbBJx0kZxJyGiGKr0tkiVBisV39dx89
  572. # 8Fd1rL2KQk1AUdEPnAY+Z3/1ZsADlkR+79BL/W7lmsqxqPJ6Kgox8NpOBpG2iAg1
  573. # 6HgcsOmZzTznL0S6p/TcZL2kAcEgCZN4zfy8wMlEXV4WnAEFTyJNAgMBAAGjggHm
  574. # MIIB4jAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQU1WM6XIoxkPNDe3xGG8Uz
  575. # aFqFbVUwGQYJKwYBBAGCNxQCBAweCgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8G
  576. # A1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAU1fZWy4/oolxiaNE9lJBb186aGMQw
  577. # VgYDVR0fBE8wTTBLoEmgR4ZFaHR0cDovL2NybC5taWNyb3NvZnQuY29tL3BraS9j
  578. # cmwvcHJvZHVjdHMvTWljUm9vQ2VyQXV0XzIwMTAtMDYtMjMuY3JsMFoGCCsGAQUF
  579. # BwEBBE4wTDBKBggrBgEFBQcwAoY+aHR0cDovL3d3dy5taWNyb3NvZnQuY29tL3Br
  580. # aS9jZXJ0cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcnQwgaAGA1UdIAEB/wSB
  581. # lTCBkjCBjwYJKwYBBAGCNy4DMIGBMD0GCCsGAQUFBwIBFjFodHRwOi8vd3d3Lm1p
  582. # Y3Jvc29mdC5jb20vUEtJL2RvY3MvQ1BTL2RlZmF1bHQuaHRtMEAGCCsGAQUFBwIC
  583. # MDQeMiAdAEwAZQBnAGEAbABfAFAAbwBsAGkAYwB5AF8AUwB0AGEAdABlAG0AZQBu
  584. # AHQALiAdMA0GCSqGSIb3DQEBCwUAA4ICAQAH5ohRDeLG4Jg/gXEDPZ2joSFvs+um
  585. # zPUxvs8F4qn++ldtGTCzwsVmyWrf9efweL3HqJ4l4/m87WtUVwgrUYJEEvu5U4zM
  586. # 9GASinbMQEBBm9xcF/9c+V4XNZgkVkt070IQyK+/f8Z/8jd9Wj8c8pl5SpFSAK84
  587. # Dxf1L3mBZdmptWvkx872ynoAb0swRCQiPM/tA6WWj1kpvLb9BOFwnzJKJ/1Vry/+
  588. # tuWOM7tiX5rbV0Dp8c6ZZpCM/2pif93FSguRJuI57BlKcWOdeyFtw5yjojz6f32W
  589. # apB4pm3S4Zz5Hfw42JT0xqUKloakvZ4argRCg7i1gJsiOCC1JeVk7Pf0v35jWSUP
  590. # ei45V3aicaoGig+JFrphpxHLmtgOR5qAxdDNp9DvfYPw4TtxCd9ddJgiCGHasFAe
  591. # b73x4QDf5zEHpJM692VHeOj4qEir995yfmFrb3epgcunCaw5u+zGy9iCtHLNHfS4
  592. # hQEegPsbiSpUObJb2sgNVZl6h3M7COaYLeqN4DMuEin1wC9UJyH3yKxO2ii4sanb
  593. # lrKnQqLJzxlBTeCG+SqaoxFmMNO7dDJL32N79ZmKLxvHIa9Zta7cRDyXUHHXodLF
  594. # VeNp3lfB0d4wwP3M5k37Db9dT+mdHhk4L7zPWAUu7w2gUDXa7wknHNWzfjUeCLra
  595. # NtvTX4/edIhJEqGCAs4wggI3AgEBMIH4oYHQpIHNMIHKMQswCQYDVQQGEwJVUzEL
  596. # MAkGA1UECBMCV0ExEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29m
  597. # dCBDb3Jwb3JhdGlvbjEtMCsGA1UECxMkTWljcm9zb2Z0IElyZWxhbmQgT3BlcmF0
  598. # aW9ucyBMaW1pdGVkMSYwJAYDVQQLEx1UaGFsZXMgVFNTIEVTTjoxNzlFLTRCQjAt
  599. # ODI0NjElMCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2VydmljZaIjCgEB
  600. # MAcGBSsOAwIaAxUAyyD0VD2mA8tcjYt3nPvENLRABn2ggYMwgYCkfjB8MQswCQYD
  601. # VQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEe
  602. # MBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNyb3Nv
  603. # ZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDANBgkqhkiG9w0BAQUFAAIFAOJC9iswIhgP
  604. # MjAyMDA0MTYyMzIwMTFaGA8yMDIwMDQxNzIzMjAxMVowdzA9BgorBgEEAYRZCgQB
  605. # MS8wLTAKAgUA4kL2KwIBADAKAgEAAgIWJAIB/zAHAgEAAgIRrDAKAgUA4kRHqwIB
  606. # ADA2BgorBgEEAYRZCgQCMSgwJjAMBgorBgEEAYRZCgMCoAowCAIBAAIDB6EgoQow
  607. # CAIBAAIDAYagMA0GCSqGSIb3DQEBBQUAA4GBAEHV+nFYHL4nwG3Cv45d3muMOacd
  608. # 9h01K6V7pfzXDuIePSV1D9xmGhztfVgHC0cAbauT3gNpgEaHzs2vh1JSrxouvO2+
  609. # zZevWOZMtICkVCmF0uclqLw3bqefmjjgbpwymjJ7vjYWAgwoIO9iC9fpkU43TCbz
  610. # Namo2O5OL4C77X8TMYIDDTCCAwkCAQEwgZMwfDELMAkGA1UEBhMCVVMxEzARBgNV
  611. # BAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jv
  612. # c29mdCBDb3Jwb3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg
  613. # UENBIDIwMTACEzMAAAEMqnhu3MxCTMEAAAAAAQwwDQYJYIZIAWUDBAIBBQCgggFK
  614. # MBoGCSqGSIb3DQEJAzENBgsqhkiG9w0BCRABBDAvBgkqhkiG9w0BCQQxIgQgi+a8
  615. # w9UqRk8uHF0LSAA5zAtzOvED7T6G0K+oPz5kGkYwgfoGCyqGSIb3DQEJEAIvMYHq
  616. # MIHnMIHkMIG9BCCDkBYpfszX6bb//5XuqZG+3Ur/DDky67xfMYkGrKBUKTCBmDCB
  617. # gKR+MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
  618. # EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNV
  619. # BAMTHU1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwAhMzAAABDKp4btzMQkzB
  620. # AAAAAAEMMCIEIB82fTmbi7Zy6T8ucYfCkg1b/ShiH+5DNUPaql1UKnuBMA0GCSqG
  621. # SIb3DQEBCwUABIIBACQTQfKgFwgsHa87Ff0vNwkZvOIJqYCj97sZHeqLh/7kGvqH
  622. # HtHPlTdQqGeKsIdgvlME0zkbcNuRACN86PE1x8w61ADvaPNIv400MAN0iKKh08z/
  623. # ONuhHXzcavQm47rT0Fe2nuOFe/TuurEQMXjGGPp/dILEw+neBBHiNhNivEH0flmw
  624. # UnaYpZH2lNy5ldHfV+hCc4QCDB2CHj9qPeGgEJS+n0ZcFO6Hm4D5mNvfR23qnM94
  625. # Ijbqi6AGtjL/d+MdNPcqJFcUPBVHQJDEcQTyoZBFme4UqYPr/gkRSwNQ7sASCYdK
  626. # hZ7F9GEj2CiayE5NqMADUnRDyyMJLUoCiACRpVg=
  627. # SIG # End signature block