private/New-MBSNBFBackupPlan.ps1
function New-MBSNBFBackupPlan { [CmdletBinding()] param ( # File level backup plan [Parameter(Mandatory=$False, HelpMessage="File-Level plan object", ParameterSetName='FileLevel')] [MBS.Agent.Plan.NBFFileLevelBackupPlan] $NBFFileLevelBackupPlan, # Image-Based backup plan [Parameter(Mandatory=$False, HelpMessage="Image-Based plan object", ParameterSetName='ImageBased')] [MBS.Agent.Plan.NBFImageBasedBackupPlan] $NBFImageBasedBackupPlan, # [Parameter(Mandatory=$False, HelpMessage="Master password. Should be specified if configuration is protected by master password. Use -MasterPassword (ConvertTo-SecureString -string ""Your_Password"" -AsPlainText -Force)", ParameterSetName='FileLevel')] [Parameter(Mandatory=$False, HelpMessage="Master password. Should be specified if configuration is protected by master password. Use -MasterPassword (ConvertTo-SecureString -string ""Your_Password"" -AsPlainText -Force)", ParameterSetName='ImageBased')] [SecureString] $MasterPassword ) begin { if (-not($CBB = Get-MBSAgent)) { Break } $CBBVersion = [version]$CBB.version if ($CBBVersion -lt [version]"7.1.0.0") { Write-Error "Version $($CBB.version) is not supported. Please upgrade to the minimum supported version 7.1" Break } if (-Not(Test-MBSAgentMasterPassword)) { $MasterPassword = $null } else { if (-Not(Test-MBSAgentMasterPassword -CheckMasterPassword -MasterPassword $MasterPassword)) { $MasterPassword = Read-Host -AsSecureString -Prompt "Master Password" if (-Not(Test-MBSAgentMasterPassword -CheckMasterPassword -MasterPassword $MasterPassword)) { Write-Error "ERROR: Master password is not specified" Break } } } } process { function Set-Schedule { param ( [Parameter()] [psobject] $Schedule, [Parameter()] [string] $Prefix = '' ) switch ($Schedule.Frequency) { Daily {$ScheduleCli += " -every$prefix day"} Weekly {$ScheduleCli += " -every$prefix week"} Monthly {$ScheduleCli += " -every$prefix month"} dayofmonth {$ScheduleCli += " -every$prefix dayofmonth"} Default { #Write-Host "Schedule frequency is not specified." #Break } } if ($Schedule.At){$ScheduleCli += " -at$prefix ""$($Schedule.At.ToString())"""} if ($Schedule.DayOfMonth){$ScheduleCli += " -day$prefix $($Schedule.DayOfMonth)"} if ($null -ne $Schedule.DayOfWeek){$ScheduleCli += " -weekday$prefix "+(($Schedule.DayOfWeek | foreach-object -Begin {$weekdaylocal = @()} -Process{$weekdaylocal += $_.ToString().Substring(0,2)} -End {return $weekdaylocal.ToLower()}) -join ",")} if ($Schedule.Weeknumber){$ScheduleCli += " -weeknumber$prefix $($Schedule.Weeknumber)"} if ($Schedule.OccursFrom){$ScheduleCli += " -dailyFrom$prefix $($Schedule.OccursFrom.ToString('hh\:mm'))"} if ($Schedule.OccursTo){$ScheduleCli += " -dailyTill$prefix $($Schedule.OccursTo.ToString('hh\:mm'))"} if ($null -ne $Schedule.OccursEvery.TotalMinutes){ if ($Schedule.OccursEvery.TotalMinutes -ne 0){ if ($Schedule.OccursEvery.TotalHours -gt 180){ $ScheduleCli += " -occurs$prefix hour -occurValue$prefix 180" }elseif($Schedule.OccursEvery.TotalHours -lt 180 -and $Schedule.OccursEvery.TotalHours -ge 1){ $ScheduleCli += " -occurs$prefix hour -occurValue$prefix $([Math]::Round($Schedule.OccursEvery.TotalHours))" }elseif($Schedule.OccursEvery.TotalHours -lt 1 -and $Schedule.OccursEvery.TotalMinutes -ge 1){ $ScheduleCli += " -occurs$prefix min -occurValue$prefix $([Math]::Round($Schedule.OccursEvery.TotalMinutes))" }else{ Write-host "Schedule 'OccursEvery' parameter cannot be less then 1 minute." } } } if ($Schedule.RepeatInterval) { if ($CBBVersion -ge [version]"7.5.0.80") { $ScheduleCli += " -repeatEvery$prefix $($Schedule.RepeatInterval)" } else { Write-Warning "Backup agent version is $CBBVersion. ""RepeatInterval"" parameter requires version 7.5.0.80 or higher. Ignoring RepeatInterval option" } } if ($Schedule.RepeatStartDate) { if ($CBBVersion -ge [version]"7.5.0.80") { $ScheduleCli += " -repeatStartDate$prefix ""$($Schedule.RepeatStartDate.ToString())""" } else { Write-Warning "Backup agent version is $CBBVersion. ""RepeatStartDate"" parameter requires version 7.5.0.80 or higher. Ignoring RepeatStartDate option" } } return $Schedulecli } function Set-Argument ($Object) { if ($Object.Name){$Argument += " -n ""$($Object.Name)"""} if(($Object.BackupPlanCommonOption.StorageClass -ne 'Standard') -And (-Not ($Global:MSP360ModuleSettings.SkipStorageClass))){ if (($Object.BackupPlanCommonOption.StorageClass -eq 'GlacierInstantRetrieval') -And ($CBBVersion -lt [version]"7.3.1")){ Write-Warning "Backup agent version is $CBBVersion. GlacierInstantRetrieval storage class is supported in version 7.3.1 or higher. Ignoring StorageClass option" $Argument += " -aid ""$($Object.StorageAccount.ID)""" }else{ $Argument += " -a ""$($Object.StorageAccount.DisplayName)"" -sc ""$($Object.BackupPlanCommonOption.StorageClass)""" } }else{ if($Global:MSP360ModuleSettings.SkipStorageClass){ Write-Warning "MSP360ModuleSettings.SkipStorageClass is set. Ignoring StorageClass option" } $Argument += " -aid ""$($Object.StorageAccount.ID)""" } if($Object.Schedule){$Argument += Set-Schedule -Schedule $Object.Schedule} if($Object.ForceFullSchedule){$Argument += Set-Schedule -Schedule $Object.ForceFullSchedule -Prefix "ForceFull"} if($Object.MSSQLDiffSchedule){$Argument += Set-Schedule -Schedule $Object.MSSQLDiffSchedule -Prefix "Diff"} if($Object.MSSQLTlogSchedule){$Argument += Set-Schedule -Schedule $Object.MSSQLTlogSchedule -Prefix "TLog"} if($Object.BackupPlanCommonOption.SyncRepositoryBeforeRun){$Argument += " -sync yes"}#else{$Argument += " -sync no"} if(-Not ($Global:MSP360ModuleSettings.SkipSSE)) { if($Object.BackupPlanCommonOption.UseServerSideEncryption){$Argument += " -sse yes"}else{$Argument += " -sse no"} } else { Write-Warning "MSP360ModuleSettings.SkipSSE is set. Ignoring UseServerSideEncryption option" } if(-Not ($Global:MSP360ModuleSettings.SkipEncryption)) { if($Null -ne $Object.BackupPlanCommonOption.EncryptionPassword){$Argument += " -ea $($Object.BackupPlanCommonOption.EncryptionAlgorithm)"} if($Object.BackupPlanCommonOption.EncryptionPassword){$Argument += " -ep """+([System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($Object.BackupPlanCommonOption.EncryptionPassword)))+""""} } else { Write-Warning "MSP360ModuleSettings.SkipEncryption is set. Ignoring EncryptionPassword and EncryptionAlgorithm options" } if(-Not ($Global:MSP360ModuleSettings.SkipCompression)) { if($Object.BackupPlanCommonOption.UseCompression){$Argument += " -c yes"}else{$Argument += " -c no"} } else { Write-Warning "MSP360ModuleSettings.SkipCompression is set. Ignoring UseCompression option" } if($Object.BackupPlanCommonOption.FullConsistencyCheck){$Argument += " -fcCheck yes"}else{$Argument += " -fcCheck no"} if($Object.BackupPlanCommonOption.StopIfPlanRunsFor.TotalMinutes -gt 0){$Argument += " -stopAfter $( [math]::Round($Object.BackupPlanCommonOption.StopIfPlanRunsFor.TotalHours)):$($Object.BackupPlanCommonOption.StopIfPlanRunsFor.Minutes)"} if($Object.BackupPlanCommonOption.RunMissedPlanImmediately){$Argument += " -runMissed yes"}else{$Argument += " -runMissed no"} if($Object.BackupPlanCommonOption.PreActionCommand){$Argument += " -preAction $($Object.BackupPlanCommonOption.PreActionCommand)"} if($Null -ne $Object.BackupPlanCommonOption.PreActionContinueAnyway){ if($Object.BackupPlanCommonOption.PreActionContinueAnyway){ $Argument += " -pac yes" } else { $Argument += " -pac no" } } if($Object.BackupPlanCommonOption.PostActionCommand){$Argument += " -postAction $($Object.BackupPlanCommonOption.PostActionCommand)"} if($Null -ne $Object.BackupPlanCommonOption.PostActionRunAnyway){ if($Object.BackupPlanCommonOption.PostActionRunAnyway){ $Argument += " -paa yes" } else { $Argument += " -paa no" } } if($Null -ne $Object.BackupPlanCommonOption.ResultEmailNotification){$Argument += " -notification $($Object.BackupPlanCommonOption.ResultEmailNotification)"} if($Null -ne $Object.BackupPlanCommonOption.AddEventToWindowsLog){$Argument += " -winLog $($Object.BackupPlanCommonOption.AddEventToWindowsLog)"} if($Null -ne $Object.BackupPlanCommonOption.KeepVersionPeriod){ if($Object.BackupPlanCommonOption.KeepVersionPeriod.TotalDays -gt 0){ $Argument += " -purge $([Math]::Round($Object.BackupPlanCommonOption.KeepVersionPeriod.TotalDays))d" }else{ $Argument += " -purge no" } } if($Object.BackupPlanCommonOption.GFSKeepWeekly -gt 0){$Argument += " -gfsW $($Object.BackupPlanCommonOption.GFSKeepWeekly)"} if($Object.BackupPlanCommonOption.GFSKeepMonthly -gt 0){$Argument += " -gfsM $($Object.BackupPlanCommonOption.GFSKeepMonthly)"} if($Object.BackupPlanCommonOption.GFSKeepYearly -gt 0){$Argument += " -gfsY $($Object.BackupPlanCommonOption.GFSKeepYearly)"} if($Object.BackupPlanCommonOption.GFSMonthOfTheYear -gt 0){$Argument += " -gfsYMonth $($Object.BackupPlanCommonOption.GFSMonthOfTheYear)"} switch ($PSCmdlet.ParameterSetName){ 'FileLevel' { # --------- File-Level ------------ if ($Object.FastNTFSScan) {$Argument += " -fastNtfs yes"}else{$Argument += " -fastNtfs no"} if ($Object.BackupNTFSPermissions) {$Argument += " -ntfs yes"} if(-Not ($Global:MSP360ModuleSettings.SkipVSS)) { if ($Object.ForceUsingVSS) {$Argument += " -vss yes"}else{$Argument += " -vss no"} } else { Write-Warning "MSP360ModuleSettings.SkipVSS is set. Ignoring ForceUsingVSS option" } if ($Object.UseShareReadWriteModeOnError) {$Argument += " -sharerw yes"} if ($Object.BackupEmptyFolders) {$Argument += " -bef yes"} if ($Object.BackupOnlyAfter){$Argument += " -oa $($Object.BackupOnlyAfter.ToString('MM/dd/yyyy HH:mm tt'))"} if ($Object.ExcludeSystemHiddenFiles) { $Argument += " -es yes" }else{ $Argument += " -es no" } if ($Object.SkipFolders){$Argument += " -skipf $($Object.SkipFolders -join ',')"} if ($Object.IncludeFilesMask){$Argument += " -ifm $($Object.IncludeFilesMask -join ',')"} if ($Object.ExcludeFilesMask){$Argument += " -efm $($Object.ExcludeFilesMask -join ',')"} if ($Object.IgnoreErrorPathNotFound) {$Argument += " -iepnf yes"} if ($Object.BackupItem){ $Object.BackupItem | ForEach-Object -Process { if (Test-Path -Path $_ -PathType Container) { $Argument += " -d ""$_""" } if (Test-Path -Path $_ -PathType Leaf) { $Argument += " -f ""$_""" } #$Argument += " -f "+'"{0}"' -f ($Object.BackupFile -join '" -f "') } } if ($Object.ExcludeItem) { if ($CBBVersion -ge [version]"7.5.0") { $Object.ExcludeItem | ForEach-Object -Process { if (Test-Path -Path $_ -PathType Container) { $Argument += " -rd ""$_""" } if (Test-Path -Path $_ -PathType Leaf) { $Argument += " -rf ""$_""" } #$Argument += " -rf "+'"{0}"' -f ($Object.ExcludeFile -join '" -rf "') } } } #if ($Object.BackupDirectory){$Argument += " -d "+'"{0}"' -f ($Object.BackupDirectory -join '" -d "')} #if ($Object.ExcludeDirectory){$Argument += " -rd "+'"{0}"' -f ($Object.ExcludeDirectory -join '" -rd "')} if ($Object.GenerateDetailedReport) { $Argument += " -dr yes" }else{ $Argument += " -dr no" } } 'ImageBased' { # ------------- Image-Based ------------- switch ($Object.BackupVolumes) { 'AllVolumes' {$Argument += " -av"} 'FixedVolumes' { if ($CBBVersion -ge [version]"7.2.2.10") { $Argument += " -f" } else { Write-Warning "Backup agent version is $CBBVersion. ""FixedVolumes"" backup volume type requires version 7.2.2 or higher. Setting SystemRequired value" $Argument += " -r" } } 'SystemRequired' {$Argument += " -r"} 'SelectedVolumes' { $Object.Volumes.WindowsVolumeIdentity | ForEach-Object -Process { $Argument += " -v $_" } } Default {} } if ($Object.disableVSS) {$Argument += " -disableVSS yes"} if ($Object.ignoreBadSectors) { $Argument += " -ignoreBadSectors yes" }else{ $Argument += " -ignoreBadSectors no" } if ($Object.useSystemVSS) {$Argument += " -useSystemVSS yes"} if ($Null -ne $Object.prefetchBlockCount){$Argument += " -prefetchBlockCount $($Object.prefetchBlockCount)"} if ($Object.blockSize){$Argument += " -blockSize $($Object.blockSize.Value__)"} if ($Object.ExcludeItem){$Argument += " -skipf "+'"{0}"' -f ($Object.ExcludeItem -join '" -skipf "')} if ($Object.KeepBitLocker) { if ($CBBVersion -ge [version]"7.2.2.0") { $Argument += " -keepBitlocker yes" } else { Write-Warning "Backup agent version is $CBBVersion. ""KeepBitLocker"" parameter requires version 7.2.2 or higher. Ignoring KeepBitLocker option" } #} else { #if (($CBBVersion -ge [version]"7.2.2.0") -And (-Not($Object.KeepBitLockerEnableForVolume)) -And (-Not($Object.KeepBitLockerDisableForVolume))) { # $Argument += " -keepBitlocker no" #} } if ($Object.KeepBitLockerEnableForVolume) { if ($CBBVersion -ge [version]"7.2.2.0") { if (-Not($Object.KeepBitLocker)) { $Argument += " -keepBitlockerOn "+'"{0}"' -f ($Object.KeepBitLockerEnableForVolume -join '" -keepBitlockerOn "') } else { Write-Warning """KeepBitLocker"" and ""KeepBitLockerEnableForVolume"" parameters are mutually exclusive. Ignoring KeepBitLockerEnableForVolume option" } }else{ Write-Warning "Backup agent version is $CBBVersion. ""KeepBitLockerEnableForVolume"" parameter requires version 7.2.2 or higher. Ignoring KeepBitLockerEnableForVolume option" } } if ($Object.KeepBitLockerDisableForVolume) { if ($CBBVersion -ge [version]"7.2.2.0") { if (-Not($Object.KeepBitLocker)) { $Argument += " -keepBitlockerOff "+'"{0}"' -f ($Object.KeepBitLockerDisableForVolume -join '" -keepBitlockerOff "') } else { Write-Warning """KeepBitLocker"" and ""KeepBitLockerDisableForVolume"" parameters are mutually exclusive. Ignoring KeepBitLockerDisableForVolume option" } }else{ Write-Warning "Backup agent version is $CBBVersion. ""KeepBitLockerDisableForVolume"" parameter requires version 7.2.2 or higher. Ignoring KeepBitLockerDisableForVolume option" } } switch ($Object.RestoreVerificationMode) { 'DoNotRun' {$Argument += " -rv None"} 'RunForFull' {$Argument += " -rv OnFull"} 'RunForIncremental' {$Argument += " -rv OnDiff"} 'RunForFullAndIncremental' {$Argument += " -rv OnAll"} Default {} } } Default {} } Return $Argument } switch ($PSCmdlet.ParameterSetName){ 'FileLevel' { $Arguments += " addBackupPlan -nbf" $Arguments += Set-Argument $NBFFileLevelBackupPlan } 'ImageBased' { $Arguments += " addBackupIBBPlan -nbf" $Arguments += Set-Argument $NBFImageBasedBackupPlan } #'HyperV' {$Arguments += " addHyperVPlan"} #'MSSQL' {$Arguments += " addBackupMSSQLPlan"} Default {} } $BPID = (Start-MBSProcess -CMDPath $CBB.CBBCLIPath -CMDArguments $Arguments -Output json -MasterPassword $MasterPassword -ErrorAction Stop).ID if ($NBFFileLevelBackupPlan.ExcludeItem -and ($CBBVersion -lt [version]"7.5.0")) { $ArgumentsExcludeItem = " editBackupPlan -nbf -id $BPID" $NBFFileLevelBackupPlan.ExcludeItem | ForEach-Object -Process { if (Test-Path -Path $_ -PathType Container) { $ArgumentsExcludeItem += " -rd ""$_""" } if (Test-Path -Path $_ -PathType Leaf) { $ArgumentsExcludeItem += " -rf ""$_""" } } Start-MBSProcess -CMDPath $CBB.CBBCLIPath -CMDArguments $ArgumentsExcludeItem -Output json -MasterPassword $MasterPassword -ErrorAction Stop } return $BPID } end { } } # SIG # Begin signature block # MIIs5QYJKoZIhvcNAQcCoIIs1jCCLNICAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG # KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCAxEuR00GCpiXhA # E9ExlHc6H8Q3H4XZBRmpzrKGd7NgtqCCEekwggVvMIIEV6ADAgECAhBI/JO0YFWU # jTanyYqJ1pQWMA0GCSqGSIb3DQEBDAUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQI # DBJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoM # EUNvbW9kbyBDQSBMaW1pdGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2Vy # dmljZXMwHhcNMjEwNTI1MDAwMDAwWhcNMjgxMjMxMjM1OTU5WjBWMQswCQYDVQQG # EwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMS0wKwYDVQQDEyRTZWN0aWdv # IFB1YmxpYyBDb2RlIFNpZ25pbmcgUm9vdCBSNDYwggIiMA0GCSqGSIb3DQEBAQUA # A4ICDwAwggIKAoICAQCN55QSIgQkdC7/FiMCkoq2rjaFrEfUI5ErPtx94jGgUW+s # hJHjUoq14pbe0IdjJImK/+8Skzt9u7aKvb0Ffyeba2XTpQxpsbxJOZrxbW6q5KCD # J9qaDStQ6Utbs7hkNqR+Sj2pcaths3OzPAsM79szV+W+NDfjlxtd/R8SPYIDdub7 # P2bSlDFp+m2zNKzBenjcklDyZMeqLQSrw2rq4C+np9xu1+j/2iGrQL+57g2extme # me/G3h+pDHazJyCh1rr9gOcB0u/rgimVcI3/uxXP/tEPNqIuTzKQdEZrRzUTdwUz # T2MuuC3hv2WnBGsY2HH6zAjybYmZELGt2z4s5KoYsMYHAXVn3m3pY2MeNn9pib6q # RT5uWl+PoVvLnTCGMOgDs0DGDQ84zWeoU4j6uDBl+m/H5x2xg3RpPqzEaDux5mcz # mrYI4IAFSEDu9oJkRqj1c7AGlfJsZZ+/VVscnFcax3hGfHCqlBuCF6yH6bbJDoEc # QNYWFyn8XJwYK+pF9e+91WdPKF4F7pBMeufG9ND8+s0+MkYTIDaKBOq3qgdGnA2T # OglmmVhcKaO5DKYwODzQRjY1fJy67sPV+Qp2+n4FG0DKkjXp1XrRtX8ArqmQqsV/ # AZwQsRb8zG4Y3G9i/qZQp7h7uJ0VP/4gDHXIIloTlRmQAOka1cKG8eOO7F/05QID # AQABo4IBEjCCAQ4wHwYDVR0jBBgwFoAUoBEKIz6W8Qfs4q8p74Klf9AwpLQwHQYD # VR0OBBYEFDLrkpr/NZZILyhAQnAgNpFcF4XmMA4GA1UdDwEB/wQEAwIBhjAPBgNV # HRMBAf8EBTADAQH/MBMGA1UdJQQMMAoGCCsGAQUFBwMDMBsGA1UdIAQUMBIwBgYE # VR0gADAIBgZngQwBBAEwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDovL2NybC5jb21v # ZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNAYIKwYBBQUHAQEE # KDAmMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21vZG9jYS5jb20wDQYJKoZI # hvcNAQEMBQADggEBABK/oe+LdJqYRLhpRrWrJAoMpIpnuDqBv0WKfVIHqI0fTiGF # OaNrXi0ghr8QuK55O1PNtPvYRL4G2VxjZ9RAFodEhnIq1jIV9RKDwvnhXRFAZ/ZC # J3LFI+ICOBpMIOLbAffNRk8monxmwFE2tokCVMf8WPtsAO7+mKYulaEMUykfb9gZ # pk+e96wJ6l2CxouvgKe9gUhShDHaMuwV5KZMPWw5c9QLhTkg4IUaaOGnSDip0TYl # d8GNGRbFiExmfS9jzpjoad+sPKhdnckcW67Y8y90z7h+9teDnRGWYpquRRPaf9xH # +9/DUp/mBlXpnYzyOmJRvOwkDynUWICE5EV7WtgwggYaMIIEAqADAgECAhBiHW0M # UgGeO5B5FSCJIRwKMA0GCSqGSIb3DQEBDAUAMFYxCzAJBgNVBAYTAkdCMRgwFgYD # VQQKEw9TZWN0aWdvIExpbWl0ZWQxLTArBgNVBAMTJFNlY3RpZ28gUHVibGljIENv # ZGUgU2lnbmluZyBSb290IFI0NjAeFw0yMTAzMjIwMDAwMDBaFw0zNjAzMjEyMzU5 # NTlaMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0ZWQxKzAp # BgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYwggGiMA0G # CSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCbK51T+jU/jmAGQ2rAz/V/9shTUxjI # ztNsfvxYB5UXeWUzCxEeAEZGbEN4QMgCsJLZUKhWThj/yPqy0iSZhXkZ6Pg2A2NV # DgFigOMYzB2OKhdqfWGVoYW3haT29PSTahYkwmMv0b/83nbeECbiMXhSOtbam+/3 # 6F09fy1tsB8je/RV0mIk8XL/tfCK6cPuYHE215wzrK0h1SWHTxPbPuYkRdkP05Zw # mRmTnAO5/arnY83jeNzhP06ShdnRqtZlV59+8yv+KIhE5ILMqgOZYAENHNX9SJDm # +qxp4VqpB3MV/h53yl41aHU5pledi9lCBbH9JeIkNFICiVHNkRmq4TpxtwfvjsUe # dyz8rNyfQJy/aOs5b4s+ac7IH60B+Ja7TVM+EKv1WuTGwcLmoU3FpOFMbmPj8pz4 # 4MPZ1f9+YEQIQty/NQd/2yGgW+ufflcZ/ZE9o1M7a5Jnqf2i2/uMSWymR8r2oQBM # dlyh2n5HirY4jKnFH/9gRvd+QOfdRrJZb1sCAwEAAaOCAWQwggFgMB8GA1UdIwQY # MBaAFDLrkpr/NZZILyhAQnAgNpFcF4XmMB0GA1UdDgQWBBQPKssghyi47G9IritU # pimqF6TNDDAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADATBgNV # HSUEDDAKBggrBgEFBQcDAzAbBgNVHSAEFDASMAYGBFUdIAAwCAYGZ4EMAQQBMEsG # A1UdHwREMEIwQKA+oDyGOmh0dHA6Ly9jcmwuc2VjdGlnby5jb20vU2VjdGlnb1B1 # YmxpY0NvZGVTaWduaW5nUm9vdFI0Ni5jcmwwewYIKwYBBQUHAQEEbzBtMEYGCCsG # AQUFBzAChjpodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2Rl # U2lnbmluZ1Jvb3RSNDYucDdjMCMGCCsGAQUFBzABhhdodHRwOi8vb2NzcC5zZWN0 # aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEABv+C4XdjNm57oRUgmxP/BP6YdURh # w1aVcdGRP4Wh60BAscjW4HL9hcpkOTz5jUug2oeunbYAowbFC2AKK+cMcXIBD0Zd # OaWTsyNyBBsMLHqafvIhrCymlaS98+QpoBCyKppP0OcxYEdU0hpsaqBBIZOtBajj # cw5+w/KeFvPYfLF/ldYpmlG+vd0xqlqd099iChnyIMvY5HexjO2AmtsbpVn0OhNc # WbWDRF/3sBp6fWXhz7DcML4iTAWS+MVXeNLj1lJziVKEoroGs9Mlizg0bUMbOalO # hOfCipnx8CaLZeVme5yELg09Jlo8BMe80jO37PU8ejfkP9/uPak7VLwELKxAMcJs # zkyeiaerlphwoKx1uHRzNyE6bxuSKcutisqmKL5OTunAvtONEoteSiabkPVSZ2z7 # 6mKnzAfZxCl/3dq3dUNw4rg3sTCggkHSRqTqlLMS7gjrhTqBmzu1L90Y1KWN/Y5J # KdGvspbOrTfOXyXvmPL6E52z1NZJ6ctuMFBQZH3pwWvqURR8AgQdULUvrxjUYbHH # j95Ejza63zdrEcxWLDX6xWls/GDnVNueKjWUH3fTv1Y8Wdho698YADR7TNx8X8z2 # Bev6SivBBOHY+uqiirZtg0y9ShQoPzmCcn63Syatatvx157YK9hlcPmVoa1oDE5/ # L9Uo2bC5a4CH2RwwggZUMIIEvKADAgECAhBQGj1MeADxcRs/FOU26uyrMA0GCSqG # SIb3DQEBDAUAMFQxCzAJBgNVBAYTAkdCMRgwFgYDVQQKEw9TZWN0aWdvIExpbWl0 # ZWQxKzApBgNVBAMTIlNlY3RpZ28gUHVibGljIENvZGUgU2lnbmluZyBDQSBSMzYw # HhcNMjExMjAzMDAwMDAwWhcNMjQxMjAyMjM1OTU5WjBYMQswCQYDVQQGEwJVUzEV # MBMGA1UECAwMUGVubnN5bHZhbmlhMRgwFgYDVQQKDA9NU1BCeXRlcywgQ29ycC4x # GDAWBgNVBAMMD01TUEJ5dGVzLCBDb3JwLjCCAiIwDQYJKoZIhvcNAQEBBQADggIP # ADCCAgoCggIBAKNUOYUGihQGjTJdJ6k5Fm3+6QJGhj2wUbubiiqxJeqmW6616o5e # ExwiGSxPOqafJzOJNq0XOigb3OQhtdIR4bG38+JghFt8rZe/DxBmPBZDR9bD1hrk # 9vY714QhqvhIlUDXHnDUc9pnVGFfI945hRgaFHL77GQAEFyMvjNupOvT674/E8rI # gYKMQBwY0cqiuRQwr3FnRMmNhd8/5mqrZGglDT1JizOnpfFVgNJ0x4ev7mPYIF6T # rFGPwHsOOujzydmGgqvtGASEuz74A6arzYrhbjXv8XsEdT2tz6hHIpMwsgWMk6BD # KDCsSIl5oEmVbQNXKrC0k62/XpbWRd+i350k07kl1bdV+nbi1K62TyS+7eVxehC1 # gFp+Knob1aqAJD9sPBLdbN3E4FOB/rvOLP1i2IxAcTGirAyRkkUriD4LUSWO6pju # Qv2V4ZU/+K/3ZLXYCbIflzpDq6z9FmazK5csv99Coslv9s6lm9s1RRxgRBj5sn1q # Xe/5l0VbF7tG/cgBvt8aJBD0u8knujI17lDy1TGA77r/KKj65xSsxC6nm0RA9pTw # 0tz5OQ4ABYrH6TpdUBJz8m8cFgPipvyohN0RdE7InB3Nao11L1UHlnnL0SG1z5qQ # YU7BhvfiSu44pSY9/uTPmAPlNIj3MO5utjfMD+MX9u86d8h/DWwrvQZzAgMBAAGj # ggGcMIIBmDAfBgNVHSMEGDAWgBQPKssghyi47G9IritUpimqF6TNDDAdBgNVHQ4E # FgQU7XGG9N0fpUpnonmgh6+IzR3lGj0wDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB # /wQCMAAwEwYDVR0lBAwwCgYIKwYBBQUHAwMwEQYJYIZIAYb4QgEBBAQDAgQQMEoG # A1UdIARDMEEwNQYMKwYBBAGyMQECAQMCMCUwIwYIKwYBBQUHAgEWF2h0dHBzOi8v # c2VjdGlnby5jb20vQ1BTMAgGBmeBDAEEATBJBgNVHR8EQjBAMD6gPKA6hjhodHRw # Oi8vY3JsLnNlY3RpZ28uY29tL1NlY3RpZ29QdWJsaWNDb2RlU2lnbmluZ0NBUjM2 # LmNybDB5BggrBgEFBQcBAQRtMGswRAYIKwYBBQUHMAKGOGh0dHA6Ly9jcnQuc2Vj # dGlnby5jb20vU2VjdGlnb1B1YmxpY0NvZGVTaWduaW5nQ0FSMzYuY3J0MCMGCCsG # AQUFBzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOC # AYEAhLlUlrWxmB3MSCX9LcaY3p6jCnaeFR4chgRmhjdH+Gy5UyFpEq1/3X/Pv2Ih # GGnX0uVbXsQ90D/CwFk7bXCFUUblu4ldzNqjmnf+lcTtv/WJR9FTS9t79WdiWbuN # /YIEXVDERUGPC7v55aaJvXJbDS+4vYeJPAHl2xsvbARWui1nwBLOSVGTGk6T2Q6s # BnlHFToFc4UFtMhYUMf8L03jypocNGM9z6yamsOANd/dXt582U5DD0g7SVS2pyHD # Ot7UvVq6769TGZNwq9s1tFwQjm3IGz4DIO1ADMwoGLzqqalYQ1xq2JAqUq41hSlN # YHecLTjAOTwA81wv71XbZdARR0DfmpqdzdKkTbVucWhJFWL7clDQ0WzfAx1/ZsjR # t6X9p+XuLnJPMD3V5swX52ZCcB6LY3FyK7kgwNseH+Xqo+Ln7OtAs3Bwa/Cm9lbL # xYs8wkDitxFnpKFstyE7EE+wtEJkyszfLqjkmUCw/hjzX6I40hahbPCxaxdlv8+3 # drczMYIaUjCCGk4CAQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGln # byBMaW1pdGVkMSswKQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcg # Q0EgUjM2AhBQGj1MeADxcRs/FOU26uyrMA0GCWCGSAFlAwQCAQUAoHwwEAYKKwYB # BAGCNwIBDDECMAAwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcCAQQwHAYKKwYBBAGC # NwIBCzEOMAwGCisGAQQBgjcCARUwLwYJKoZIhvcNAQkEMSIEIEOxT9PMmsqD986C # sTgE6S8dZ5nyKekiEdJ6YDlZ1/wlMA0GCSqGSIb3DQEBAQUABIICAHwJYkPGuuaz # ag65I6sI40y1APXgjaEaovht25nw7ZGwThpAc72qxwdSAdMUTI19wfq38Fak9qvd # CaCRxNOIrNmmZw/4c21Fty23DcwknUD51KLFwQ2OO7of0ydujiOAPzZIP1mpgyRS # OezmZq3PX3oEbsDJQjo5nm9yTMvG7RR79RjNFmgf3TamFO8KiJEYkOUry3fSMymz # 7WOIHSBGaDP55NoLn1po6Wxq2cNUijDDGeDQNYm3ASEO3L9QkeHXy0SPlBdn2YC5 # gnCIiNuTS1CJR54x4XCJOK5p5KQcWrPzp5xagMstVrNwJmjjm7VVEO3CjU3gAcL2 # dGbe5rnJ2CexyBbX+6H50Kgcn+WvE8a/9k1ajBxEkjXyRRxv0eqzWeWYFNHdAX3Z # f9/PrAiw4utQI6m+cjxoyevxfB60ySfIl3rxvQDDZ0wwVCzfHFoiH86MmcsY/s2Y # msJB6GOyifbCZ6zncHREGAfpblV4s+SZemGMjNhFzY8setqYQlVxs/Wb99IpBcZ8 # L4wPLfTl5gUrjMJ8Ao8jCa5mdzXJxsgmJQmGzdZ1V1QWVj3rmnFLDTrh5PGysaLy # 1BJhse6b4bwYkiwiRfcnLQ8Nv3kmLNBHQAj1DPEEte7diQYHV26xcQYE0en9rrKF # nWimpEgFuDEAQQbpvXpeuDBlnKfJQo68oYIXPTCCFzkGCisGAQQBgjcDAwExghcp # MIIXJQYJKoZIhvcNAQcCoIIXFjCCFxICAQMxDzANBglghkgBZQMEAgEFADB3Bgsq # hkiG9w0BCRABBKBoBGYwZAIBAQYJYIZIAYb9bAcBMDEwDQYJYIZIAWUDBAIBBQAE # IDBQbuXKSup29+y9JDfB9Rp3LCKiDnfRSv6D/Si56Iy7AhBhNWcsD2lsJhc5rW3k # 8jV3GA8yMDIyMTIzMDE0MzQwMFqgghMHMIIGwDCCBKigAwIBAgIQDE1pckuU+jwq # Sj0pB4A9WjANBgkqhkiG9w0BAQsFADBjMQswCQYDVQQGEwJVUzEXMBUGA1UEChMO # RGlnaUNlcnQsIEluYy4xOzA5BgNVBAMTMkRpZ2lDZXJ0IFRydXN0ZWQgRzQgUlNB # NDA5NiBTSEEyNTYgVGltZVN0YW1waW5nIENBMB4XDTIyMDkyMTAwMDAwMFoXDTMz # MTEyMTIzNTk1OVowRjELMAkGA1UEBhMCVVMxETAPBgNVBAoTCERpZ2lDZXJ0MSQw # IgYDVQQDExtEaWdpQ2VydCBUaW1lc3RhbXAgMjAyMiAtIDIwggIiMA0GCSqGSIb3 # DQEBAQUAA4ICDwAwggIKAoICAQDP7KUmOsap8mu7jcENmtuh6BSFdDMaJqzQHFUe # HjZtvJJVDGH0nQl3PRWWCC9rZKT9BoMW15GSOBwxApb7crGXOlWvM+xhiummKNuQ # Y1y9iVPgOi2Mh0KuJqTku3h4uXoW4VbGwLpkU7sqFudQSLuIaQyIxvG+4C99O7HK # U41Agx7ny3JJKB5MgB6FVueF7fJhvKo6B332q27lZt3iXPUv7Y3UTZWEaOOAy2p5 # 0dIQkUYp6z4m8rSMzUy5Zsi7qlA4DeWMlF0ZWr/1e0BubxaompyVR4aFeT4MXmaM # Ggokvpyq0py2909ueMQoP6McD1AGN7oI2TWmtR7aeFgdOej4TJEQln5N4d3CraV+ # +C0bH+wrRhijGfY59/XBT3EuiQMRoku7mL/6T+R7Nu8GRORV/zbq5Xwx5/PCUsTm # FntafqUlc9vAapkhLWPlWfVNL5AfJ7fSqxTlOGaHUQhr+1NDOdBk+lbP4PQK5hRt # ZHi7mP2Uw3Mh8y/CLiDXgazT8QfU4b3ZXUtuMZQpi+ZBpGWUwFjl5S4pkKa3YWT6 # 2SBsGFFguqaBDwklU/G/O+mrBw5qBzliGcnWhX8T2Y15z2LF7OF7ucxnEweawXjt # xojIsG4yeccLWYONxu71LHx7jstkifGxxLjnU15fVdJ9GSlZA076XepFcxyEftfO # 4tQ6dwIDAQABo4IBizCCAYcwDgYDVR0PAQH/BAQDAgeAMAwGA1UdEwEB/wQCMAAw # FgYDVR0lAQH/BAwwCgYIKwYBBQUHAwgwIAYDVR0gBBkwFzAIBgZngQwBBAIwCwYJ # YIZIAYb9bAcBMB8GA1UdIwQYMBaAFLoW2W1NhS9zKXaaL3WMaiCPnshvMB0GA1Ud # DgQWBBRiit7QYfyPMRTtlwvNPSqUFN9SnDBaBgNVHR8EUzBRME+gTaBLhklodHRw # Oi8vY3JsMy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRSU0E0MDk2U0hB # MjU2VGltZVN0YW1waW5nQ0EuY3JsMIGQBggrBgEFBQcBAQSBgzCBgDAkBggrBgEF # BQcwAYYYaHR0cDovL29jc3AuZGlnaWNlcnQuY29tMFgGCCsGAQUFBzAChkxodHRw # Oi8vY2FjZXJ0cy5kaWdpY2VydC5jb20vRGlnaUNlcnRUcnVzdGVkRzRSU0E0MDk2 # U0hBMjU2VGltZVN0YW1waW5nQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBVqioa # 80bzeFc3MPx140/WhSPx/PmVOZsl5vdyipjDd9Rk/BX7NsJJUSx4iGNVCUY5APxp # 1MqbKfujP8DJAJsTHbCYidx48s18hc1Tna9i4mFmoxQqRYdKmEIrUPwbtZ4IMAn6 # 5C3XCYl5+QnmiM59G7hqopvBU2AJ6KO4ndetHxy47JhB8PYOgPvk/9+dEKfrALpf # So8aOlK06r8JSRU1NlmaD1TSsht/fl4JrXZUinRtytIFZyt26/+YsiaVOBmIRBTl # Clmia+ciPkQh0j8cwJvtfEiy2JIMkU88ZpSvXQJT657inuTTH4YBZJwAwuladHUN # PeF5iL8cAZfJGSOA1zZaX5YWsWMMxkZAO85dNdRZPkOaGK7DycvD+5sTX2q1x+Dz # BcNZ3ydiK95ByVO5/zQQZ/YmMph7/lxClIGUgp2sCovGSxVK05iQRWAzgOAj3vgD # pPZFR+XOuANCR+hBNnF3rf2i6Jd0Ti7aHh2MWsgemtXC8MYiqE+bvdgcmlHEL5r2 # X6cnl7qWLoVXwGDneFZ/au/ClZpLEQLIgpzJGgV8unG1TnqZbPTontRamMifv427 # GFxD9dAq6OJi7ngE273R+1sKqHB+8JeEeOMIA11HLGOoJTiXAdI/Otrl5fbmm9x+ # LMz/F0xNAKLY1gEOuIvu5uByVYksJxlh9ncBjDCCBq4wggSWoAMCAQICEAc2N7ck # VHzYR6z9KGYqXlswDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCVVMxFTATBgNV # BAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTEhMB8G # A1UEAxMYRGlnaUNlcnQgVHJ1c3RlZCBSb290IEc0MB4XDTIyMDMyMzAwMDAwMFoX # DTM3MDMyMjIzNTk1OVowYzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkRpZ2lDZXJ0 # LCBJbmMuMTswOQYDVQQDEzJEaWdpQ2VydCBUcnVzdGVkIEc0IFJTQTQwOTYgU0hB # MjU2IFRpbWVTdGFtcGluZyBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC # ggIBAMaGNQZJs8E9cklRVcclA8TykTepl1Gh1tKD0Z5Mom2gsMyD+Vr2EaFEFUJf # pIjzaPp985yJC3+dH54PMx9QEwsmc5Zt+FeoAn39Q7SE2hHxc7Gz7iuAhIoiGN/r # 2j3EF3+rGSs+QtxnjupRPfDWVtTnKC3r07G1decfBmWNlCnT2exp39mQh0YAe9tE # QYncfGpXevA3eZ9drMvohGS0UvJ2R/dhgxndX7RUCyFobjchu0CsX7LeSn3O9TkS # Z+8OpWNs5KbFHc02DVzV5huowWR0QKfAcsW6Th+xtVhNef7Xj3OTrCw54qVI1vCw # MROpVymWJy71h6aPTnYVVSZwmCZ/oBpHIEPjQ2OAe3VuJyWQmDo4EbP29p7mO1vs # gd4iFNmCKseSv6De4z6ic/rnH1pslPJSlRErWHRAKKtzQ87fSqEcazjFKfPKqpZz # QmiftkaznTqj1QPgv/CiPMpC3BhIfxQ0z9JMq++bPf4OuGQq+nUoJEHtQr8FnGZJ # UlD0UfM2SU2LINIsVzV5K6jzRWC8I41Y99xh3pP+OcD5sjClTNfpmEpYPtMDiP6z # j9NeS3YSUZPJjAw7W4oiqMEmCPkUEBIDfV8ju2TjY+Cm4T72wnSyPx4JduyrXUZ1 # 4mCjWAkBKAAOhFTuzuldyF4wEr1GnrXTdrnSDmuZDNIztM2xAgMBAAGjggFdMIIB # WTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBS6FtltTYUvcyl2mi91jGog # j57IbzAfBgNVHSMEGDAWgBTs1+OC0nFdZEzfLmc/57qYrhwPTzAOBgNVHQ8BAf8E # BAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwgwdwYIKwYBBQUHAQEEazBpMCQGCCsG # AQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQQYIKwYBBQUHMAKGNWh0 # dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydFRydXN0ZWRSb290RzQu # Y3J0MEMGA1UdHwQ8MDowOKA2oDSGMmh0dHA6Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9E # aWdpQ2VydFRydXN0ZWRSb290RzQuY3JsMCAGA1UdIAQZMBcwCAYGZ4EMAQQCMAsG # CWCGSAGG/WwHATANBgkqhkiG9w0BAQsFAAOCAgEAfVmOwJO2b5ipRCIBfmbW2CFC # 4bAYLhBNE88wU86/GPvHUF3iSyn7cIoNqilp/GnBzx0H6T5gyNgL5Vxb122H+oQg # JTQxZ822EpZvxFBMYh0MCIKoFr2pVs8Vc40BIiXOlWk/R3f7cnQU1/+rT4osequF # zUNf7WC2qk+RZp4snuCKrOX9jLxkJodskr2dfNBwCnzvqLx1T7pa96kQsl3p/yhU # ifDVinF2ZdrM8HKjI/rAJ4JErpknG6skHibBt94q6/aesXmZgaNWhqsKRcnfxI2g # 55j7+6adcq/Ex8HBanHZxhOACcS2n82HhyS7T6NJuXdmkfFynOlLAlKnN36TU6w7 # HQhJD5TNOXrd/yVjmScsPT9rp/Fmw0HNT7ZAmyEhQNC3EyTN3B14OuSereU0cZLX # JmvkOHOrpgFPvT87eK1MrfvElXvtCl8zOYdBeHo46Zzh3SP9HSjTx/no8Zhf+yvY # fvJGnXUsHicsJttvFXseGYs2uJPU5vIXmVnKcPA3v5gA3yAWTyf7YGcWoWa63VXA # OimGsJigK+2VQbc61RWYMbRiCQ8KvYHZE/6/pNHzV9m8BPqC3jLfBInwAM1dwvnQ # I38AC+R2AibZ8GV2QqYphwlHK+Z/GqSFD/yYlvZVVCsfgPrA8g4r5db7qS9EFUrn # Ew4d2zc4GqEr9u3WfPwwggWNMIIEdaADAgECAhAOmxiO+dAt5+/bUOIIQBhaMA0G # CSqGSIb3DQEBDAUAMGUxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJ # bmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xJDAiBgNVBAMTG0RpZ2lDZXJ0 # IEFzc3VyZWQgSUQgUm9vdCBDQTAeFw0yMjA4MDEwMDAwMDBaFw0zMTExMDkyMzU5 # NTlaMGIxCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNV # BAsTEHd3dy5kaWdpY2VydC5jb20xITAfBgNVBAMTGERpZ2lDZXJ0IFRydXN0ZWQg # Um9vdCBHNDCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL/mkHNo3rvk # XUo8MCIwaTPswqclLskhPfKK2FnC4SmnPVirdprNrnsbhA3EMB/zG6Q4FutWxpdt # HauyefLKEdLkX9YFPFIPUh/GnhWlfr6fqVcWWVVyr2iTcMKyunWZanMylNEQRBAu # 34LzB4TmdDttceItDBvuINXJIB1jKS3O7F5OyJP4IWGbNOsFxl7sWxq868nPzaw0 # QF+xembud8hIqGZXV59UWI4MK7dPpzDZVu7Ke13jrclPXuU15zHL2pNe3I6PgNq2 # kZhAkHnDeMe2scS1ahg4AxCN2NQ3pC4FfYj1gj4QkXCrVYJBMtfbBHMqbpEBfCFM # 1LyuGwN1XXhm2ToxRJozQL8I11pJpMLmqaBn3aQnvKFPObURWBf3JFxGj2T3wWmI # dph2PVldQnaHiZdpekjw4KISG2aadMreSx7nDmOu5tTvkpI6nj3cAORFJYm2mkQZ # K37AlLTSYW3rM9nF30sEAMx9HJXDj/chsrIRt7t/8tWMcCxBYKqxYxhElRp2Yn72 # gLD76GSmM9GJB+G9t+ZDpBi4pncB4Q+UDCEdslQpJYls5Q5SUUd0viastkF13nqs # X40/ybzTQRESW+UQUOsxxcpyFiIJ33xMdT9j7CFfxCBRa2+xq4aLT8LWRV+dIPyh # HsXAj6KxfgommfXkaS+YHS312amyHeUbAgMBAAGjggE6MIIBNjAPBgNVHRMBAf8E # BTADAQH/MB0GA1UdDgQWBBTs1+OC0nFdZEzfLmc/57qYrhwPTzAfBgNVHSMEGDAW # gBRF66Kv9JLLgjEtUYunpyGd823IDzAOBgNVHQ8BAf8EBAMCAYYweQYIKwYBBQUH # AQEEbTBrMCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYI # KwYBBQUHMAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFz # c3VyZWRJRFJvb3RDQS5jcnQwRQYDVR0fBD4wPDA6oDigNoY0aHR0cDovL2NybDMu # ZGlnaWNlcnQuY29tL0RpZ2lDZXJ0QXNzdXJlZElEUm9vdENBLmNybDARBgNVHSAE # CjAIMAYGBFUdIAAwDQYJKoZIhvcNAQEMBQADggEBAHCgv0NcVec4X6CjdBs9thbX # 979XB72arKGHLOyFXqkauyL4hxppVCLtpIh3bb0aFPQTSnovLbc47/T/gLn4offy # ct4kvFIDyE7QKt76LVbP+fT3rDB6mouyXtTP0UNEm0Mh65ZyoUi0mcudT6cGAxN3 # J0TU53/oWajwvy8LpunyNDzs9wPHh6jSTEAZNUZqaVSwuKFWjuyk1T3osdz9HNj0 # d1pcVIxv76FQPfx2CWiEn2/K2yCNNWAcAgPLILCsWKAOQGPFmCLBsln1VWvPJ6ts # ds5vIy30fnFqI2si/xK4VC0nftg62fC2h5b9W9FcrBjDTZ9ztwGpn1eqXijiuZQx # ggN2MIIDcgIBATB3MGMxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5EaWdpQ2VydCwg # SW5jLjE7MDkGA1UEAxMyRGlnaUNlcnQgVHJ1c3RlZCBHNCBSU0E0MDk2IFNIQTI1 # NiBUaW1lU3RhbXBpbmcgQ0ECEAxNaXJLlPo8Kko9KQeAPVowDQYJYIZIAWUDBAIB # BQCggdEwGgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMBwGCSqGSIb3DQEJBTEP # Fw0yMjEyMzAxNDM0MDBaMCsGCyqGSIb3DQEJEAIMMRwwGjAYMBYEFPOHIk2GM4KS # NamUvL2Plun+HHxzMC8GCSqGSIb3DQEJBDEiBCC5MsTQ0dgGLm8UNI2sm6C5OuXZ # mtshh1jcKNLk70IWXjA3BgsqhkiG9w0BCRACLzEoMCYwJDAiBCDH9OG+MiiJIKvi # Jjq+GsT8T+Z4HC1k0EyAdVegI7W2+jANBgkqhkiG9w0BAQEFAASCAgA55o6Hd8CK # DBGhfDCBjMh92xmA7HXHiCIlRlwgXVgbp1txu6NHiNcDuDafh6zKlHpEkk9/0JVI # Ch4p2fbXZxEXO161jJz+rqCUEtAcaNE+PmzVtiaGFaWINZmJoxQFemydHi50JEHb # /rTDkQU8jXfL4Vbzd9gZM5CtcwNqzMKKR3OwNo39XRPzD/We6yQmQr4Xbt2Xl6VI # Q3KzJpOLEXkt/U9Z73oU7UZi+lavUPfCg0o22GLEPnIdUs9CuWgb3qAf95g+fFe2 # B1y5Z5lj/SKXGjLNkdLgweUhnC0kF3cO2qky07Am9nyb8/GSnkL8nndfccchSo/y # WkeOf2AnBQ6mVnYeFQ6HMlXYEt4Yt+gQR7mwm1N+OQ7T7YALiKcEKlEdfYscdPfm # dTYlrrS+k6oG7mJfSTfz3JBQByHFEJ2yz6FHxf+HHp2aH1+kj2dHwn6qdB5xoYZH # IPqltdM8qmPcDwlh/NRnDfQx4d6MjaEZ98pMQMEsfL7ttH8jEayPMxjAYR0GG68+ # lBdqd5emOdb3mmbo7gCKwXTjpfN++nU6KaI57NLJMr4G5z0AqQjV0ZmTQClkfHFn # 3yd5+gWdlEU5IwLS7vxSDxKHbB6uSPfxkrVGa0vJnfP0PJG3mLPAGTDILAsyf0jo # gIuqwcOsX70rkBBU7memJf8IWw91ZtxwPA== # SIG # End signature block |