590 lines
22 KiB
Plaintext
590 lines
22 KiB
Plaintext
|
|
'On Error Resume Next
|
|
Dim FSO, sSPFile, PercentageComplete, sProgressValue
|
|
Dim SPPercentage, LPPercentage, Drivepath, RootPath
|
|
Dim printersCaptured
|
|
Dim printersRestored
|
|
Dim networkSharesCaptured
|
|
Dim networkSharesRestored
|
|
Dim OldPCName
|
|
Dim scanStateExitCode
|
|
Dim loadStateExitCode
|
|
|
|
Dim USMTTaskname
|
|
|
|
Set FSO = CreateObject("Scripting.FileSystemObject")
|
|
Const ForReading = 1
|
|
USMTTaskname = "Run USMT"
|
|
|
|
FindPath()
|
|
|
|
On Error Resume Next
|
|
|
|
MBToTransfer(DrivePath & "\USMTcapture.prg")
|
|
SPPercentComplete(DrivePath & "\USMTcapture.prg")
|
|
LPPercentComplete(DrivePath & "\Loadstateprogress.log")
|
|
'LPPercentComplete(DrivePath & "\Loadstateprogress.prg")
|
|
|
|
printersCaptured = GetPrinetrsCount()
|
|
networkSharesCaptured = GetNetworkShareCount()
|
|
|
|
'printersRestored = GetPrinetrsCount(DrivePath & "\PrintersRestored.xml")
|
|
'networkSharesRestored = GetNetworkShareCount(DrivePath & "\PrintersRestored.xml")
|
|
|
|
GetOldPCComputerName(RootPath & "\OldPCName.txt")
|
|
|
|
GetRestoreProcessExitCode()
|
|
|
|
|
|
|
|
GetScanProcessExitCode(DrivePath & "\OSDSetupWizardOldPC.log")
|
|
|
|
|
|
|
|
WriteTSVariables()
|
|
|
|
|
|
|
|
'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
'Functions & Subroutines
|
|
'||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Function MBToTransfer(sSPFile)
|
|
Dim oFile, strContents, arrWords
|
|
Dim strWord, sTrim
|
|
Set oFile = FSO.OpenTextFile(sSPFile, ForReading)
|
|
|
|
strContents = oFile.ReadAll
|
|
oFile.Close
|
|
|
|
arrWords = Split(strContents, vbCr)
|
|
For Each strWord in arrWords
|
|
If InStr(strWord, "totalSizeInMBToTransfer") Then
|
|
'Wscript.echo strWord
|
|
sTrim = instrrev(strWord, "," )
|
|
'Wscript.echo sTrim
|
|
sProgressValue = Right(strWord,Len(strWord) -sTrim)
|
|
'Wscript.echo sProgressValue
|
|
End IF
|
|
Next
|
|
End Function
|
|
|
|
|
|
Function SPPercentComplete(sFile)
|
|
Dim oFile, strContents, arrWords
|
|
Set oFile = FSO.OpenTextFile(sFile, ForReading)
|
|
|
|
strContents = oFile.ReadAll
|
|
oFile.Close
|
|
|
|
arrWords = Split(strContents, vbCr)
|
|
|
|
dim arrCount 'as int
|
|
arrCount = Ubound(arrWords) -1
|
|
|
|
dim strSeq ' as string
|
|
strSeq = "totalPercentageCompleted"
|
|
dim i ' as int
|
|
|
|
' loop thru backwards to find sequence
|
|
for i = arrCount to 0 step -1
|
|
|
|
dim pos ' as int
|
|
pos = Instr( arrWords(i), strSeq )
|
|
if pos > 0 then
|
|
|
|
' ex: 15 Jan 2011, 20:46:21 -08:00, 00:04:48, totalPercentageCompleted, 48
|
|
dim tmpResult ' as string
|
|
tmpResult = Right ( arrWords(i), pos -1)
|
|
PercentageComplete = Right (tmpResult, 3)
|
|
SPPercentage = PercentageComplete
|
|
'Wscript.echo SPPercentage
|
|
exit for
|
|
end if
|
|
Next
|
|
End Function
|
|
|
|
Function LPPercentComplete(sFile)
|
|
Dim oFile, strContents, arrWords
|
|
Set oFile = FSO.OpenTextFile(sFile, ForReading)
|
|
|
|
' check if file exists
|
|
if FSO.FileExists(sFile) = False Then
|
|
Set PathEnv = CreateObject("Microsoft.SMS.TSEnvironment")
|
|
PathEnv("OSDLoadStateLogExists") = "False"
|
|
Exit Function
|
|
End If
|
|
|
|
strContents = oFile.ReadAll
|
|
oFile.Close
|
|
|
|
arrWords = Split(strContents, vbCr)
|
|
|
|
dim arrCount 'as int
|
|
arrCount = Ubound(arrWords) -1
|
|
|
|
dim strSeq ' as string
|
|
strSeq = "totalPercentageCompleted"
|
|
dim i ' as int
|
|
|
|
' loop thru backwards to find sequence
|
|
for i = arrCount to 0 step -1
|
|
|
|
dim pos ' as int
|
|
pos = Instr( arrWords(i), strSeq )
|
|
if pos > 0 then
|
|
|
|
' ex: 15 Jan 2011, 20:46:21 -08:00, 00:04:48, totalPercentageCompleted, 48
|
|
dim tmpResult ' as string
|
|
tmpResult = Right ( arrWords(i), pos -1)
|
|
PercentageComplete = Right (tmpResult, 3)
|
|
LPPercentage = PercentageComplete
|
|
'Wscript.echo LPPercentage
|
|
exit for
|
|
end if
|
|
Next
|
|
End Function
|
|
|
|
Function GetPrinetrsCount()
|
|
|
|
Dim objXMLDoc, Root, NodeList
|
|
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
|
|
objXMLDoc.async = False
|
|
Dim sFile
|
|
sFile = DrivePath & "\PrinterList.xml"
|
|
' check if file exists
|
|
if FSO.FileExists(sFile) = False Then
|
|
sFile = RootPath & "\PrinterList.xml"
|
|
if FSO.FileExists(sFile) = False Then
|
|
Set PathEnv = CreateObject("Microsoft.SMS.TSEnvironment")
|
|
PathEnv("OSDGetPrintersLogExists") = "False"
|
|
Exit Function
|
|
End If
|
|
End If
|
|
|
|
If objXMLDoc.load(sFile) Then
|
|
Set Root = objXMLDoc.documentElement
|
|
Set NodeList = Root.getElementsByTagName("Printer")
|
|
' wscript.echo NodeList.length
|
|
GetPrinetrsCount = NodeList.length
|
|
Else
|
|
wscript.echo "Failed to load"
|
|
End If
|
|
|
|
Set objXMLDoc = Nothing
|
|
|
|
End Function
|
|
|
|
|
|
|
|
Function GetNetworkShareCount()
|
|
|
|
Dim objXMLDoc, Root, NodeList
|
|
Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
|
|
objXMLDoc.async = False
|
|
Dim sFile
|
|
sFile = DrivePath & "\PrinterList.xml"
|
|
' check if file exists
|
|
if FSO.FileExists(sFile) = False Then
|
|
sFile = RootPath & "\PrinterList.xml"
|
|
if FSO.FileExists(sFile) = False Then
|
|
Set PathEnv = CreateObject("Microsoft.SMS.TSEnvironment")
|
|
PathEnv("OSDGetPrintersLogExists") = "False"
|
|
Exit Function
|
|
End If
|
|
End If
|
|
|
|
If objXMLDoc.load(sFile) Then
|
|
Set Root = objXMLDoc.documentElement
|
|
Set NodeList = Root.getElementsByTagName("NetworkShare")
|
|
' wscript.echo NodeList.length
|
|
GetNetworkShareCount = NodeList.length
|
|
Else
|
|
wscript.echo "Failed to load"
|
|
End If
|
|
|
|
Set objXMLDoc = Nothing
|
|
End Function
|
|
|
|
|
|
Function GetOldPCComputerName(sFile)
|
|
|
|
Dim oFile, strContents, arrWords
|
|
|
|
Set oFile = FSO.OpenTextFile(sFile, ForReading)
|
|
'strContents = oFile.ReadAll
|
|
OldPCName = oFile.ReadLine
|
|
oFile.Close
|
|
|
|
End Function
|
|
|
|
Function GetRestoreProcessExitCode()
|
|
|
|
Dim smsFile
|
|
Dim oFile, strContents, arrLines, eachLine
|
|
Dim strWord, sTrim
|
|
Dim oFolder
|
|
|
|
Dim logFileName
|
|
''For each file that starts witj smsts*.log
|
|
Dim foundExitCode
|
|
|
|
foundExitCode = False
|
|
set oFolder = FSO.GetFolder(DrivePath)
|
|
|
|
For Each smsFile In oFolder.Files
|
|
If (foundExitCode = False) Then ' Skip if exit code already found
|
|
If ( UCase (Left (smsFile.Name, 5)) = "SMSTS" ) Then ' read only smsts files
|
|
|
|
logFileName = DrivePath & "\" & smsFile.Name
|
|
'smsFile = DrivePath & "\SMSTS.log"
|
|
Set oFile = FSO.OpenTextFile(logFileName, ForReading)
|
|
strContents = oFile.ReadAll
|
|
oFile.Close
|
|
arrLines = Split(strContents, vbCr)
|
|
For Each eachLine in arrLines
|
|
If (foundExitCode = False) Then
|
|
' <![LOG[LoadState return code: 0]LOG]!><time="21:05:56.124+480" date="02-19-2011" component="InstallSoftware" context="" type="1" thread="2776" file="runcommandline.cpp:34">
|
|
If InStr(eachLine, "LoadState return code:") Then
|
|
foundExitCode = True
|
|
sColon = instr(eachLine, ":" )
|
|
sTrim = instr(eachLine, "]" )
|
|
loadStateExitCode = Mid(eachLine,sColon+1 , sTrim-1-sColon )
|
|
' Wscript.echo loadStateExitCode
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If (foundExitCode = False) Then
|
|
loadStateExitCode = 0
|
|
End If
|
|
|
|
End Function
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Function GetScanProcessExitCode(smsFile)
|
|
|
|
Dim oFile, strContents, arrLines, eachLine
|
|
Dim strWord, sTrim
|
|
Dim foundExitCode
|
|
|
|
Set oFile = FSO.OpenTextFile(smsFile, ForReading,,true)
|
|
foundExitCode = False
|
|
strContents = oFile.ReadAll
|
|
oFile.Close
|
|
|
|
Dim sANSIFileName
|
|
Dim oANSIFile
|
|
|
|
sANSIFileName = DrivePath & "\OSDRefreshWizardANSI.log"
|
|
'OpenTextFile(destination, forwriting, createnew, open as Ascii)
|
|
Set oANSIFile = FSO.OpenTextFile(sANSIFileName, 2, True, False)
|
|
oANSIFile.Write strContents
|
|
oANSIFile.Close
|
|
Set oANSIFile = Nothing
|
|
|
|
Set oANSIFile = FSO.OpenTextFile(sANSIFileName, 1, , False)
|
|
strContents = oANSIFile.ReadAll
|
|
oANSIFile.Close
|
|
Set oANSIFile = Nothing
|
|
|
|
If FSO.FileExists(sANSIFileName) Then
|
|
FSO.DeleteFile sANSIFileName
|
|
' Wscript.echo "File deleted"
|
|
End If
|
|
|
|
arrLines = Split(strContents, vbCr)
|
|
|
|
For Each eachLine in arrLines
|
|
|
|
If (InStr(eachLine, USMTTaskname) > 0) Then
|
|
If (InStr(eachLine, "exit code =")) Then
|
|
foundExitCode = True
|
|
sTrim = instr(eachLine, "exit code =" )
|
|
|
|
' USMT log line from Wizard log:
|
|
' 18:18:58.906 02-15-2011 1 TaskManager Finished running task 'Run USMT'. Status = 'Error', exit code =26, task return code = 0
|
|
scanStateExitCode = Trim( Mid (eachLine, sTrim+11, Instr(sTrim,eachLine,",")-(sTrim+11) ) )
|
|
'Wscript.echo "Scan process Exit code :" & scanStateExitCode
|
|
End IF
|
|
End IF
|
|
Next
|
|
|
|
' If (foundExitCode = False) Then
|
|
' scanStateExitCode = 0
|
|
' End If
|
|
|
|
End Function
|
|
|
|
Sub WriteTSVariables()
|
|
dim Env
|
|
dim UserStateLocal
|
|
dim UserStateNetwork
|
|
dim UserStateUSB
|
|
dim osd:
|
|
set Env = CreateObject("Microsoft.SMS.TSEnvironment")
|
|
|
|
' Set a variable in the Operating System Deployment environment.
|
|
|
|
Env("OSDDataMigrationToTransfer") = sProgressValue
|
|
Env("OSDDataMigrationScanned") = SPPercentage
|
|
|
|
'If loadstateExitCode is '0' then set loadtstate percentage to 100
|
|
'as loadstate.exe is not logging 100% in its Loadprogress log eventhough it completed succesfully
|
|
If (loadStateExitCode = 0 ) Then
|
|
LPPercentage = "100"
|
|
End IF
|
|
Env("OSDDataMigrationRestored") = LPPercentage
|
|
|
|
Env("OSDNumberOfPrintersCaptured") = printersCaptured
|
|
Env("OSDNumberOfNetworkSharesCaptured") = networkSharesCaptured
|
|
' Env("OSDNumberOfPrintersRestored") = printersRestored
|
|
' Env("OSDNumberOfNetworkSharesRestored") = networkSharesRestored
|
|
|
|
Env("OSDOldComputerName") = OldPCName
|
|
'OSDDataSourceDrive
|
|
|
|
|
|
If ( Env("OSDHardLinks") = "TRUE") Then
|
|
Env("OSDDataTransferType") = "Local"
|
|
ElseIf Env("SMSConnectNetworkFolderPath") <> "" Then
|
|
Env("OSDDataTransferType") = "Network"
|
|
ElseIf Env("OSDDataSourceDrive") <> "" Then
|
|
Env ("OSDDataTransferType") = "USB"
|
|
Else
|
|
Env ("OSDDataTransferType") = "False"
|
|
End If
|
|
|
|
Env("OSDCaptureProcessExitCode") = scanStateExitCode
|
|
Env("OSDRestoreProcessExitCode") = loadStateExitCode
|
|
|
|
End Sub
|
|
|
|
Sub FindPath()
|
|
Dim PathEnv
|
|
Set PathEnv = CreateObject("Microsoft.SMS.TSEnvironment")
|
|
|
|
' You can query the environment to get an existing USB path variable.
|
|
'DrivePath = PathEnv("OSDStateStorePath") & "\" & PathEnv("OSDDataSourceDirectory")
|
|
'LogsPath = PathEnv("_SMSTSLogPath")
|
|
DrivePath = PathEnv("OSDStateStorePath") & "\SCCMLogs"
|
|
RootPath = PathEnv("OSDStateStorePath")
|
|
'wscript.echo DrivePath
|
|
End Sub
|
|
|
|
|
|
'' SIG '' Begin signature block
|
|
'' SIG '' MIIaWgYJKoZIhvcNAQcCoIIaSzCCGkcCAQExCzAJBgUr
|
|
'' SIG '' DgMCGgUAMGcGCisGAQQBgjcCAQSgWTBXMDIGCisGAQQB
|
|
'' SIG '' gjcCAR4wJAIBAQQQTvApFpkntU2P5azhDxfrqwIBAAIB
|
|
'' SIG '' AAIBAAIBAAIBADAhMAkGBSsOAwIaBQAEFFaxvnpuW8HZ
|
|
'' SIG '' 8tA6Jsv8VrUFbpHgoIIVNjCCBKkwggORoAMCAQICEzMA
|
|
'' SIG '' AACIWQ48UR/iamcAAQAAAIgwDQYJKoZIhvcNAQEFBQAw
|
|
'' SIG '' eTELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
|
|
'' SIG '' b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
|
|
'' SIG '' Y3Jvc29mdCBDb3Jwb3JhdGlvbjEjMCEGA1UEAxMaTWlj
|
|
'' SIG '' cm9zb2Z0IENvZGUgU2lnbmluZyBQQ0EwHhcNMTIwNzI2
|
|
'' SIG '' MjA1MDQxWhcNMTMxMDI2MjA1MDQxWjCBgzELMAkGA1UE
|
|
'' SIG '' BhMCVVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNV
|
|
'' SIG '' BAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBD
|
|
'' SIG '' b3Jwb3JhdGlvbjENMAsGA1UECxMETU9QUjEeMBwGA1UE
|
|
'' SIG '' AxMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMIIBIjANBgkq
|
|
'' SIG '' hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs3R00II8h6ea
|
|
'' SIG '' 1I6yBEKAlyUu5EHOk2M2XxPytHiYgMYofsyKE+89N4w7
|
|
'' SIG '' CaDYFMVcXtipHX8BwbOYG1B37P7qfEXPf+EhDsWEyp8P
|
|
'' SIG '' a7MJOLd0xFcevvBIqHla3w6bHJqovMhStQxpj4TOcVV7
|
|
'' SIG '' /wkgv0B3NyEwdFuV33fLoOXBchIGPfLIVWyvwftqFifI
|
|
'' SIG '' 9bNh49nOGw8e9OTNTDRsPkcR5wIrXxR6BAf11z2L22d9
|
|
'' SIG '' Vz41622NAUCNGoeW4g93TIm6OJz7jgKR2yIP5dA2qbg3
|
|
'' SIG '' RdAq/JaNwWBxM6WIsfbCBDCHW8PXL7J5EdiLZWKiihFm
|
|
'' SIG '' XX5/BXpzih96heXNKBDRPQIDAQABo4IBHTCCARkwEwYD
|
|
'' SIG '' VR0lBAwwCgYIKwYBBQUHAwMwHQYDVR0OBBYEFCZbPltd
|
|
'' SIG '' ll/i93eIf15FU1ioLlu4MA4GA1UdDwEB/wQEAwIHgDAf
|
|
'' SIG '' BgNVHSMEGDAWgBTLEejK0rQWWAHJNy4zFha5TJoKHzBW
|
|
'' SIG '' BgNVHR8ETzBNMEugSaBHhkVodHRwOi8vY3JsLm1pY3Jv
|
|
'' SIG '' c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9NaWNDb2RT
|
|
'' SIG '' aWdQQ0FfMDgtMzEtMjAxMC5jcmwwWgYIKwYBBQUHAQEE
|
|
'' SIG '' TjBMMEoGCCsGAQUFBzAChj5odHRwOi8vd3d3Lm1pY3Jv
|
|
'' SIG '' c29mdC5jb20vcGtpL2NlcnRzL01pY0NvZFNpZ1BDQV8w
|
|
'' SIG '' OC0zMS0yMDEwLmNydDANBgkqhkiG9w0BAQUFAAOCAQEA
|
|
'' SIG '' D95ASYiR0TE3o0Q4abJqK9SR+2iFrli7HgyPVvqZ18qX
|
|
'' SIG '' J0zohY55aSzkvZY/5XBml5UwZSmtxsqs9Q95qGe/afQP
|
|
'' SIG '' l+MKD7/ulnYpsiLQM8b/i0mtrrL9vyXq7ydQwOsZ+Bpk
|
|
'' SIG '' aqDhF1mv8c/sgaiJ6LHSFAbjam10UmTalpQqXGlrH+0F
|
|
'' SIG '' mRrc6GWqiBsVlRrTpFGW/VWV+GONnxQMsZ5/SgT/w2at
|
|
'' SIG '' Cq+upN5j+vDqw7Oy64fbxTittnPSeGTq7CFbazvWRCL0
|
|
'' SIG '' gVKlK0MpiwyhKnGCQsurG37Upaet9973RprOQznoKlPt
|
|
'' SIG '' z0Dkd4hCv0cW4KU2au+nGo06PTME9iUgIzCCBLowggOi
|
|
'' SIG '' oAMCAQICCmECkkoAAAAAACAwDQYJKoZIhvcNAQEFBQAw
|
|
'' SIG '' dzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
|
|
'' SIG '' b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
|
|
'' SIG '' Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWlj
|
|
'' SIG '' cm9zb2Z0IFRpbWUtU3RhbXAgUENBMB4XDTEyMDEwOTIy
|
|
'' SIG '' MjU1OVoXDTEzMDQwOTIyMjU1OVowgbMxCzAJBgNVBAYT
|
|
'' SIG '' AlVTMRMwEQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQH
|
|
'' SIG '' EwdSZWRtb25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29y
|
|
'' SIG '' cG9yYXRpb24xDTALBgNVBAsTBE1PUFIxJzAlBgNVBAsT
|
|
'' SIG '' Hm5DaXBoZXIgRFNFIEVTTjpCOEVDLTMwQTQtNzE0NDEl
|
|
'' SIG '' MCMGA1UEAxMcTWljcm9zb2Z0IFRpbWUtU3RhbXAgU2Vy
|
|
'' SIG '' dmljZTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
|
|
'' SIG '' ggEBAM1jw/eitUfZ+TmUU6xrj6Z5OCH00W49FTgWwXMs
|
|
'' SIG '' mY/74Dxb4aJMi7Kri7TySse5k1DRJvWHU7B6dfNHDxcr
|
|
'' SIG '' Zyxk62DnSozgi17EVmk3OioEXRcByL+pt9PJq6ORqIHj
|
|
'' SIG '' Py232OTEeAB5Oc/9x2TiIxJ4ngx2J0mPmqwOdOMGVVVJ
|
|
'' SIG '' yO2hfHBFYX6ycRYe4cFBudLSMulSJPM2UATX3W88SdUL
|
|
'' SIG '' 1HZA/GVlE36VUTrV/7iap1drSxXlN1gf3AANxa7q34FH
|
|
'' SIG '' +fBSrubPWqzgFEqmcZSA+v2wIzBg6YNgrA4kHv8R8uel
|
|
'' SIG '' VWKV7p9/ninWzUsKdoPwQwTfBkkg8lNaRLBRejkCAwEA
|
|
'' SIG '' AaOCAQkwggEFMB0GA1UdDgQWBBTNGaxhTZRnK/avlHVZ
|
|
'' SIG '' 2/BYAIOhOjAfBgNVHSMEGDAWgBQjNPjZUkZwCu1A+3b7
|
|
'' SIG '' syuwwzWzDzBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8v
|
|
'' SIG '' Y3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0
|
|
'' SIG '' cy9NaWNyb3NvZnRUaW1lU3RhbXBQQ0EuY3JsMFgGCCsG
|
|
'' SIG '' AQUFBwEBBEwwSjBIBggrBgEFBQcwAoY8aHR0cDovL3d3
|
|
'' SIG '' dy5taWNyb3NvZnQuY29tL3BraS9jZXJ0cy9NaWNyb3Nv
|
|
'' SIG '' ZnRUaW1lU3RhbXBQQ0EuY3J0MBMGA1UdJQQMMAoGCCsG
|
|
'' SIG '' AQUFBwMIMA0GCSqGSIb3DQEBBQUAA4IBAQBRHNbfNh3c
|
|
'' SIG '' gLwCp8aZ3xbIkAZpFZoyufNkENKK82IpG3mPymCps13E
|
|
'' SIG '' 5BYtNYxEm/H0XGGkQa6ai7pQ0Wp5arNijJ1NUVALqY7U
|
|
'' SIG '' v6IQwEfVTnVSiR4/lmqPLkAUBnLuP3BZkl2F7YOZ+oKE
|
|
'' SIG '' nuQDASETqyfWzHFJ5dod/288CU7VjWboDMl/7jEUAjdf
|
|
'' SIG '' e2nsiT5FfyVE5x8a1sUaw0rk4fGEmOdP+amYpxhG7IRs
|
|
'' SIG '' 7KkDCv18elIdnGukqA+YkqSSeFwreON9ssfZtnB931tz
|
|
'' SIG '' U7+q1GZQS/DJO5WF5cFKZZ0lWFC7IFSReTobB1xqVyiv
|
|
'' SIG '' Mcef58Md7kf9J9d/z3TcZcU/MIIFvDCCA6SgAwIBAgIK
|
|
'' SIG '' YTMmGgAAAAAAMTANBgkqhkiG9w0BAQUFADBfMRMwEQYK
|
|
'' SIG '' CZImiZPyLGQBGRYDY29tMRkwFwYKCZImiZPyLGQBGRYJ
|
|
'' SIG '' bWljcm9zb2Z0MS0wKwYDVQQDEyRNaWNyb3NvZnQgUm9v
|
|
'' SIG '' dCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMTAwODMx
|
|
'' SIG '' MjIxOTMyWhcNMjAwODMxMjIyOTMyWjB5MQswCQYDVQQG
|
|
'' SIG '' EwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UE
|
|
'' SIG '' BxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENv
|
|
'' SIG '' cnBvcmF0aW9uMSMwIQYDVQQDExpNaWNyb3NvZnQgQ29k
|
|
'' SIG '' ZSBTaWduaW5nIFBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
|
|
'' SIG '' ggEPADCCAQoCggEBALJyWVwZMGS/HZpgICBCmXZTbD4b
|
|
'' SIG '' 1m/My/Hqa/6XFhDg3zp0gxq3L6Ay7P/ewkJOI9VyANs1
|
|
'' SIG '' VwqJyq4gSfTwaKxNS42lvXlLcZtHB9r9Jd+ddYjPqnNE
|
|
'' SIG '' f9eB2/O98jakyVxF3K+tPeAoaJcap6Vyc1bxF5Tk/TWU
|
|
'' SIG '' cqDWdl8ed0WDhTgW0HNbBbpnUo2lsmkv2hkL/pJ0KeJ2
|
|
'' SIG '' L1TdFDBZ+NKNYv3LyV9GMVC5JxPkQDDPcikQKCLHN049
|
|
'' SIG '' oDI9kM2hOAaFXE5WgigqBTK3S9dPY+fSLWLxRT3nrAgA
|
|
'' SIG '' 9kahntFbjCZT6HqqSvJGzzc8OJ60d1ylF56NyxGPVjzB
|
|
'' SIG '' rAlfA9MCAwEAAaOCAV4wggFaMA8GA1UdEwEB/wQFMAMB
|
|
'' SIG '' Af8wHQYDVR0OBBYEFMsR6MrStBZYAck3LjMWFrlMmgof
|
|
'' SIG '' MAsGA1UdDwQEAwIBhjASBgkrBgEEAYI3FQEEBQIDAQAB
|
|
'' SIG '' MCMGCSsGAQQBgjcVAgQWBBT90TFO0yaKleGYYDuoMW+m
|
|
'' SIG '' PLzYLTAZBgkrBgEEAYI3FAIEDB4KAFMAdQBiAEMAQTAf
|
|
'' SIG '' BgNVHSMEGDAWgBQOrIJgQFYnl+UlE/wq4QpTlVnkpDBQ
|
|
'' SIG '' BgNVHR8ESTBHMEWgQ6BBhj9odHRwOi8vY3JsLm1pY3Jv
|
|
'' SIG '' c29mdC5jb20vcGtpL2NybC9wcm9kdWN0cy9taWNyb3Nv
|
|
'' SIG '' ZnRyb290Y2VydC5jcmwwVAYIKwYBBQUHAQEESDBGMEQG
|
|
'' SIG '' CCsGAQUFBzAChjhodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
|
|
'' SIG '' b20vcGtpL2NlcnRzL01pY3Jvc29mdFJvb3RDZXJ0LmNy
|
|
'' SIG '' dDANBgkqhkiG9w0BAQUFAAOCAgEAWTk+fyZGr+tvQLEy
|
|
'' SIG '' tWrrDi9uqEn361917Uw7LddDrQv+y+ktMaMjzHxQmIAh
|
|
'' SIG '' Xaw9L0y6oqhWnONwu7i0+Hm1SXL3PupBf8rhDBdpy6Wc
|
|
'' SIG '' IC36C1DEVs0t40rSvHDnqA2iA6VW4LiKS1fylUKc8fPv
|
|
'' SIG '' 7uOGHzQ8uFaa8FMjhSqkghyT4pQHHfLiTviMocroE6WR
|
|
'' SIG '' Tsgb0o9ylSpxbZsa+BzwU9ZnzCL/XB3Nooy9J7J5Y1ZE
|
|
'' SIG '' olHN+emjWFbdmwJFRC9f9Nqu1IIybvyklRPk62nnqaIs
|
|
'' SIG '' vsgrEA5ljpnb9aL6EiYJZTiU8XofSrvR4Vbo0HiWGFzJ
|
|
'' SIG '' NRZf3ZMdSY4tvq00RBzuEBUaAF3dNVshzpjHCe6FDoxP
|
|
'' SIG '' bQ4TTj18KUicctHzbMrB7HCjV5JXfZSNoBtIA1r3z6Nn
|
|
'' SIG '' CnSlNu0tLxfI5nI3EvRvsTxngvlSso0zFmUeDordEN5k
|
|
'' SIG '' 9G/ORtTTF+l5xAS00/ss3x+KnqwK+xMnQK3k+eGpf0a7
|
|
'' SIG '' B2BHZWBATrBC7E7ts3Z52Ao0CW0cgDEf4g5U3eWh++VH
|
|
'' SIG '' EK1kmP9QFi58vwUheuKVQSdpw5OPlcmN2Jshrg1cnPCi
|
|
'' SIG '' roZogwxqLbt2awAdlq3yFnv2FoMkuYjPaqhHMS+a3ONx
|
|
'' SIG '' PdcAfmJH0c6IybgY+g5yjcGjPa8CQGr/aZuW4hCoELQ3
|
|
'' SIG '' UAjWwz0wggYHMIID76ADAgECAgphFmg0AAAAAAAcMA0G
|
|
'' SIG '' CSqGSIb3DQEBBQUAMF8xEzARBgoJkiaJk/IsZAEZFgNj
|
|
'' SIG '' b20xGTAXBgoJkiaJk/IsZAEZFgltaWNyb3NvZnQxLTAr
|
|
'' SIG '' BgNVBAMTJE1pY3Jvc29mdCBSb290IENlcnRpZmljYXRl
|
|
'' SIG '' IEF1dGhvcml0eTAeFw0wNzA0MDMxMjUzMDlaFw0yMTA0
|
|
'' SIG '' MDMxMzAzMDlaMHcxCzAJBgNVBAYTAlVTMRMwEQYDVQQI
|
|
'' SIG '' EwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4w
|
|
'' SIG '' HAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xITAf
|
|
'' SIG '' BgNVBAMTGE1pY3Jvc29mdCBUaW1lLVN0YW1wIFBDQTCC
|
|
'' SIG '' ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJ+h
|
|
'' SIG '' bLHf20iSKnxrLhnhveLjxZlRI1Ctzt0YTiQP7tGn0Uyt
|
|
'' SIG '' dDAgEesH1VSVFUmUG0KSrphcMCbaAGvoe73siQcP9w4E
|
|
'' SIG '' mPCJzB/LMySHnfL0Zxws/HvniB3q506jocEjU8qN+kXP
|
|
'' SIG '' CdBer9CwQgSi+aZsk2fXKNxGU7CG0OUoRi4nrIZPVVIM
|
|
'' SIG '' 5AMs+2qQkDBuh/NZMJ36ftaXs+ghl3740hPzCLdTbVK0
|
|
'' SIG '' RZCfSABKR2YRJylmqJfk0waBSqL5hKcRRxQJgp+E7VV4
|
|
'' SIG '' /gGaHVAIhQAQMEbtt94jRrvELVSfrx54QTF3zJvfO4OT
|
|
'' SIG '' oWECtR0Nsfz3m7IBziJLVP/5BcPCIAsCAwEAAaOCAasw
|
|
'' SIG '' ggGnMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFCM0
|
|
'' SIG '' +NlSRnAK7UD7dvuzK7DDNbMPMAsGA1UdDwQEAwIBhjAQ
|
|
'' SIG '' BgkrBgEEAYI3FQEEAwIBADCBmAYDVR0jBIGQMIGNgBQO
|
|
'' SIG '' rIJgQFYnl+UlE/wq4QpTlVnkpKFjpGEwXzETMBEGCgmS
|
|
'' SIG '' JomT8ixkARkWA2NvbTEZMBcGCgmSJomT8ixkARkWCW1p
|
|
'' SIG '' Y3Jvc29mdDEtMCsGA1UEAxMkTWljcm9zb2Z0IFJvb3Qg
|
|
'' SIG '' Q2VydGlmaWNhdGUgQXV0aG9yaXR5ghB5rRahSqClrUxz
|
|
'' SIG '' WPQHEy5lMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9j
|
|
'' SIG '' cmwubWljcm9zb2Z0LmNvbS9wa2kvY3JsL3Byb2R1Y3Rz
|
|
'' SIG '' L21pY3Jvc29mdHJvb3RjZXJ0LmNybDBUBggrBgEFBQcB
|
|
'' SIG '' AQRIMEYwRAYIKwYBBQUHMAKGOGh0dHA6Ly93d3cubWlj
|
|
'' SIG '' cm9zb2Z0LmNvbS9wa2kvY2VydHMvTWljcm9zb2Z0Um9v
|
|
'' SIG '' dENlcnQuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMIMA0G
|
|
'' SIG '' CSqGSIb3DQEBBQUAA4ICAQAQl4rDXANENt3ptK132855
|
|
'' SIG '' UU0BsS50cVttDBOrzr57j7gu1BKijG1iuFcCy04gE1CZ
|
|
'' SIG '' 3XpA4le7r1iaHOEdAYasu3jyi9DsOwHu4r6PCgXIjUji
|
|
'' SIG '' 8FMV3U+rkuTnjWrVgMHmlPIGL4UD6ZEqJCJw+/b85HiZ
|
|
'' SIG '' Lg33B+JwvBhOnY5rCnKVuKE5nGctxVEO6mJcPxaYiyA/
|
|
'' SIG '' 4gcaMvnMMUp2MT0rcgvI6nA9/4UKE9/CCmGO8Ne4F+tO
|
|
'' SIG '' i3/FNSteo7/rvH0LQnvUU3Ih7jDKu3hlXFsBFwoUDtLa
|
|
'' SIG '' FJj1PLlmWLMtL+f5hYbMUVbonXCUbKw5TNT2eb+qGHpi
|
|
'' SIG '' Ke+imyk0BncaYsk9Hm0fgvALxyy7z0Oz5fnsfbXjpKh0
|
|
'' SIG '' NbhOxXEjEiZ2CzxSjHFaRkMUvLOzsE1nyJ9C/4B5IYCe
|
|
'' SIG '' FTBm6EISXhrIniIh0EPpK+m79EjMLNTYMoBMJipIJF9a
|
|
'' SIG '' 6lbvpt6Znco6b72BJ3QGEe52Ib+bgsEnVLaxaj2JoXZh
|
|
'' SIG '' tG6hE6a/qkfwEm/9ijJssv7fUciMI8lmvZ0dhxJkAj0t
|
|
'' SIG '' r1mPuOQh5bWwymO0eFQF1EEuUKyUsKV4q7OglnUa2ZKH
|
|
'' SIG '' E3UiLzKoCG6gW4wlv6DvhMoh1useT8ma7kng9wFlb4kL
|
|
'' SIG '' fchpyOZu6qeXzjEp/w7FW1zYTRuh2Povnj8uVRZryROj
|
|
'' SIG '' /TGCBJAwggSMAgEBMIGQMHkxCzAJBgNVBAYTAlVTMRMw
|
|
'' SIG '' EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt
|
|
'' SIG '' b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp
|
|
'' SIG '' b24xIzAhBgNVBAMTGk1pY3Jvc29mdCBDb2RlIFNpZ25p
|
|
'' SIG '' bmcgUENBAhMzAAAAiFkOPFEf4mpnAAEAAACIMAkGBSsO
|
|
'' SIG '' AwIaBQCggbIwGQYJKoZIhvcNAQkDMQwGCisGAQQBgjcC
|
|
'' SIG '' AQQwHAYKKwYBBAGCNwIBCzEOMAwGCisGAQQBgjcCARUw
|
|
'' SIG '' IwYJKoZIhvcNAQkEMRYEFDCb68aYvJXTJk85te1S+jtL
|
|
'' SIG '' p6R3MFIGCisGAQQBgjcCAQwxRDBCoCSAIgBNAEQAVAAg
|
|
'' SIG '' AFUARABJAHYAMwAgAFQAbwBvAGwAawBpAHShGoAYaHR0
|
|
'' SIG '' cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3DQEB
|
|
'' SIG '' AQUABIIBAC2wt4LWetaiN5s5taPNIuONv/wy/ALEOHOl
|
|
'' SIG '' WeuIpfFOvB0FroigolElIoXt5yS0/HURqddV2/XaRGtp
|
|
'' SIG '' 4ArfLvig8dH4f45GqZGqJY47yLZ8DcbTM6a/rRY8mULM
|
|
'' SIG '' lIkoga+kyGIYCKzakA8BhjQhnUMEKxij2XcIjR9O94Je
|
|
'' SIG '' EcsdwrVMpawBQGBABytnryDRPfMx5Yma0k7QTZKHLpsh
|
|
'' SIG '' WZTE2vZsQcXpv1HgROTdu6q5vmvUrBQNe15WagmJcRyB
|
|
'' SIG '' 3H4S18KXgwrX+GtXwnS1DFBpr1/KQy64jirPGxxZUgLv
|
|
'' SIG '' jRkyw8WJzcmr2hto/b0tlSJM8RdTV4QkIXa4zKpaO8Ch
|
|
'' SIG '' ggIfMIICGwYJKoZIhvcNAQkGMYICDDCCAggCAQEwgYUw
|
|
'' SIG '' dzELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
|
|
'' SIG '' b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAcBgNVBAoTFU1p
|
|
'' SIG '' Y3Jvc29mdCBDb3Jwb3JhdGlvbjEhMB8GA1UEAxMYTWlj
|
|
'' SIG '' cm9zb2Z0IFRpbWUtU3RhbXAgUENBAgphApJKAAAAAAAg
|
|
'' SIG '' MAkGBSsOAwIaBQCgXTAYBgkqhkiG9w0BCQMxCwYJKoZI
|
|
'' SIG '' hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xMjA4MzAxOTU3
|
|
'' SIG '' MDJaMCMGCSqGSIb3DQEJBDEWBBQSsdjxpnzU2D5eVlFt
|
|
'' SIG '' THUnRymRgzANBgkqhkiG9w0BAQUFAASCAQBm0kyC9w3a
|
|
'' SIG '' ZP0pl4LoFNeXiaLocsnzlxwVi5kAPrz02kJhezNjxWsM
|
|
'' SIG '' oLKvnVYGnEFPNE2yPI7XPDJCfTjqSzyBCFs1AkhPnA0v
|
|
'' SIG '' 9Pl3TGn8aR7thx2sAvD9kNtEr1lmWtqlK8ZnAPPmRIXk
|
|
'' SIG '' czEIyns4hkA1+CMTnbP1h2VKE/ZkoOx05mmQ6bOyQaEL
|
|
'' SIG '' WXMc31LPXPND2k43gQ7WMg5jheUQgKj7sjpIzEt52jOc
|
|
'' SIG '' x6eGHOGZc58h0ORRLxRbz3K7bnWt3SrN06O97n0G0sWy
|
|
'' SIG '' fiShI4SClvWn7WRqBqKIWisJctT6T9Y7pHFQx0d2G2qs
|
|
'' SIG '' nttbeH2riP6tcsV6pD631Sbd
|
|
'' SIG '' End signature block
|