@hpcc-js/comms 2.66.0 → 2.70.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.es6.js +259 -200
- package/dist/index.es6.js.map +1 -1
- package/dist/index.js +149 -102
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/index.node.js +237 -217
- package/dist/index.node.js.map +1 -1
- package/dist/index.node.min.js +1 -1
- package/dist/index.node.min.js.map +1 -1
- package/lib-es6/__package__.js +2 -2
- package/lib-es6/__package__.js.map +1 -1
- package/lib-es6/clienttools/eclMeta.js +4 -4
- package/lib-es6/clienttools/eclMeta.js.map +1 -1
- package/lib-es6/clienttools/eclcc.js +18 -18
- package/lib-es6/clienttools/eclcc.js.map +1 -1
- package/lib-es6/connection.js +6 -6
- package/lib-es6/connection.js.map +1 -1
- package/lib-es6/ecl/graph.js +5 -5
- package/lib-es6/ecl/graph.js.map +1 -1
- package/lib-es6/ecl/logicalFile.js +2 -2
- package/lib-es6/ecl/logicalFile.js.map +1 -1
- package/lib-es6/ecl/result.js +1 -1
- package/lib-es6/ecl/result.js.map +1 -1
- package/lib-es6/ecl/scope.js +5 -5
- package/lib-es6/ecl/scope.js.map +1 -1
- package/lib-es6/ecl/store.js +4 -4
- package/lib-es6/ecl/store.js.map +1 -1
- package/lib-es6/ecl/targetCluster.js +2 -2
- package/lib-es6/ecl/targetCluster.js.map +1 -1
- package/lib-es6/ecl/topology.js +1 -1
- package/lib-es6/ecl/topology.js.map +1 -1
- package/lib-es6/ecl/workunit.js +7 -4
- package/lib-es6/ecl/workunit.js.map +1 -1
- package/lib-es6/espConnection.js +1 -1
- package/lib-es6/espConnection.js.map +1 -1
- package/lib-es6/index-common.js +2 -0
- package/lib-es6/index-common.js.map +1 -1
- package/lib-es6/services/wsDFU.js +1 -1
- package/lib-es6/services/wsDFU.js.map +1 -1
- package/lib-es6/services/wsEcl.js +3 -3
- package/lib-es6/services/wsEcl.js.map +1 -1
- package/lib-es6/services/wsLogaccess.js +11 -0
- package/lib-es6/services/wsLogaccess.js.map +1 -0
- package/lib-es6/services/wsResources.js +11 -0
- package/lib-es6/services/wsResources.js.map +1 -0
- package/lib-es6/services/wsdl/WsLogaccess/v1/WsLogaccess.js +28 -0
- package/lib-es6/services/wsdl/WsLogaccess/v1/WsLogaccess.js.map +1 -0
- package/lib-es6/services/wsdl/WsResources/v1.01/WsResources.js +20 -0
- package/lib-es6/services/wsdl/WsResources/v1.01/WsResources.js.map +1 -0
- package/package.json +36 -21
- package/src/__package__.ts +2 -2
- package/src/ecl/topology.ts +1 -1
- package/src/ecl/workunit.ts +3 -0
- package/src/index-common.ts +2 -0
- package/src/services/wsDFU.ts +3 -2
- package/src/services/wsLogaccess.ts +8 -0
- package/src/services/wsResources.ts +8 -0
- package/src/services/wsdl/WsLogaccess/v1/WsLogaccess.ts +78 -0
- package/src/services/wsdl/WsResources/v1.01/WsResources.ts +119 -0
- package/types/__package__.d.ts +2 -2
- package/types/__package__.d.ts.map +1 -1
- package/types/ecl/activity.d.ts +1 -1
- package/types/ecl/activity.d.ts.map +1 -1
- package/types/ecl/topology.d.ts.map +1 -1
- package/types/ecl/workunit.d.ts.map +1 -1
- package/types/index-common.d.ts +2 -0
- package/types/index-common.d.ts.map +1 -1
- package/types/services/wsDFU.d.ts +2 -1
- package/types/services/wsDFU.d.ts.map +1 -1
- package/types/services/wsLogaccess.d.ts +5 -0
- package/types/services/wsLogaccess.d.ts.map +1 -0
- package/types/services/wsResources.d.ts +5 -0
- package/types/services/wsResources.d.ts.map +1 -0
- package/types/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts +51 -0
- package/types/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts.map +1 -0
- package/types/services/wsdl/WsResources/v1.01/WsResources.d.ts +85 -0
- package/types/services/wsdl/WsResources/v1.01/WsResources.d.ts.map +1 -0
- package/types-3.4/__package__.d.ts +2 -2
- package/types-3.4/ecl/activity.d.ts +1 -1
- package/types-3.4/index-common.d.ts +2 -0
- package/types-3.4/services/wsDFU.d.ts +2 -1
- package/types-3.4/services/wsLogaccess.d.ts +5 -0
- package/types-3.4/services/wsResources.d.ts +5 -0
- package/types-3.4/services/wsdl/WsLogaccess/v1/WsLogaccess.d.ts +51 -0
- package/types-3.4/services/wsdl/WsResources/v1.01/WsResources.d.ts +85 -0
package/dist/index.es6.js
CHANGED
|
@@ -2,19 +2,19 @@ import { scopedLogger, join, promiseTimeout, exists, deepMixin, xml2json, StateO
|
|
|
2
2
|
import { DOMParser } from '@xmldom/xmldom';
|
|
3
3
|
import fetch$1 from 'node-fetch';
|
|
4
4
|
import AbortController from 'abort-controller';
|
|
5
|
-
import
|
|
5
|
+
import { Agent, globalAgent } from 'https';
|
|
6
6
|
import { Buffer } from 'safe-buffer';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
11
|
-
import
|
|
7
|
+
import { spawn } from 'child_process';
|
|
8
|
+
import { readdirSync, lstatSync, existsSync, accessSync, readFileSync, unlink, statSync } from 'fs';
|
|
9
|
+
import { type, EOL } from 'os';
|
|
10
|
+
import { join as join$1, basename, extname, parse, relative, sep, dirname, normalize } from 'path';
|
|
11
|
+
import { tmpNameSync } from 'tmp';
|
|
12
12
|
|
|
13
13
|
var trustwave = "\nTrustwave Secure Global Extended Validation CA, Level 1\nSecureTrust Corporation\n00F6F61CE4A3635BB0CA8AACEEFCB2D0F0\n-----BEGIN CERTIFICATE-----\nMIIE+DCCA+CgAwIBAgIRAPb2HOSjY1uwyoqs7vyy0PAwDQYJKoZIhvcNAQELBQAw\nSjELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRkwFwYDVQQDExBTZWN1cmUgR2xvYmFsIENBMB4XDTE1MDgxMjIwMTcyOVoXDTI1\nMDgwOTIwMTcyOVowgbgxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQ\nMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMUAwPgYDVQQDEzdUcnVzdHdhdmUgU2VjdXJlIEdsb2JhbCBFeHRlbmRlZCBW\nYWxpZGF0aW9uIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdh\ndmUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx6D45slgLGq8\n2G/NPFnuFscv7UM1eRoQyx3h0DdSTfoRvHkkNv4Gf6OudZDOXqwV86v/SjcNEP87\nnjMOEqQ7dKQPtiYzEkK0MOrjbRySFC5dvCTI9T8tnBgFpYA9YXwbpUqXxEi0Ayoq\nhA7UQhS7Q+YGrVwZaJ6LiWrQw+x8ACPLqEvPmMZhrxagKwrsKbylMsAQ1ljk8X74\nJ76TSxi/AZpxos7tHD0XbO8elXFZexfsgPLDRpMs6jREVeQj1jVCWLtg9twiXzcI\naUCchBsTSc92WGkKwBnH70dlL2N8kT/BNe3tAsXuBpZRILANY59jLrLnHEJNfado\nt6ZpougolQIDAQABo4IBaDCCAWQwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E\nFgQUx33qXRmrVNT6P+ZKc956sjwdbC4wDgYDVR0PAQH/BAQDAgGGMD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TR0NBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NHQ0EuY3J0MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggr\nBgEFBQcDATAfBgNVHSMEGDAWgBSvRATCQX5Ig9tOOQLs7IR65s7JpDANBgkqhkiG\n9w0BAQsFAAOCAQEAkn/4wKQRLo41fDRkZtfF+3o8JtUmfQXf2zoo9Ll29hhCiz8k\nBOpIek9MrFd/cdNgUw1nckIi+J3udyFrbO5p64JBvtc0K4kAOPFSKpHssFcnRLPx\nFXgGxXq6ohD4Py+xaEApslYFfMy89N6DKs/v/10/+/xD831RFEUMUoQxBimsmmNf\n+cLoMwF5bpoSz9JcWqCmSlK0Nla1dPphaoA/MObLN2iQPpeM3yF5dTUm1tPxe39W\nOlr6nLU1xO+yRDrlGLXrVDP1l1/qGVuwi+xufIAcdFycLLBjSSNX7LOIK3tbva7A\nWctLUs+qhIlUrbPyFERm7YOY4SttWdozeYFNfg==\n-----END CERTIFICATE-----\n\nSecureTrust Domain Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E80B1BAF9870A7C4B6CBE401A32D68\n-----BEGIN CERTIFICATE-----\nMIIEfzCCA2egAwIBAgITBvHsAOgLG6+YcKfEtsvkAaMtaDANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfDEyMDAGA1UEAxMpU2VjdXJlVHJ1c3QgRG9tYWluIFZhbGlk\nYXRpb24gQ0EsIExldmVsIDExFDASBgNVBAoTC1NlY3VyZVRydXN0MRAwDgYDVQQH\nEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggEiMA0G\nCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjRHBw8iIivBBrfE6HqexQK0oMt2Y/\nx8jO3fN96KEazZwEoGidwloRBk2Q7VfVvZ0ZDk+qwJZGLZJLS1ntGaZLH4/Iel+r\nPnp36IVF7J5MNDB+K81a/y9svEMfDu0p3FdlBUyhHvizZ/zFNP3tolmQfZ7T0mGL\n7lutlNAzFYoVTUlVeF5cSC8Yca906TEKyizYXuXcY8Diee+t+fQRHmSI5Hk5kyXD\nYFWcf2tXEfdkuFlDjJ7HPdFyfJzrNjD+cbqt8R5rZKnK1GNVP1dXm0cIYS+BMlMa\nCC1yF18oygbnOZLw5fDv9bxs4MOgF8E/Iypw0hLQHVkuD8wAvxVgPsqvAgMBAAGj\nggEsMIIBKDASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjATBgNV\nHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4EFgQUYt6tehfefLfDfCMXo7Em5UbXOvQw\nHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYDVR0gBDowODA2BgRV\nHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2VjdXJldHJ1c3QuY29t\nL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9T\nVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGGGmh0dHA6Ly9vY3Nw\nLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQAHXPYhl+++o//di2Qm\naWGmC1ijxbGbKA4jOSDRvQfxlWOVkqPF11Dpxz+V8Rxw7QFFVoJ5mHpfoXtQOijV\ntsCFknxTKgzQeArNkZrkXBNpYOJAcuc5v0eX0OllBWgVdIvZRl2TM5L/u1WFrlPr\nqwWdEYTkinQwgAHXVV/7WZi6c4StcqNnlw93mlvN6Vspzaf/mWtcYp+aqT9vrqHt\nyNR1k8Ri5eIRPIU0B8woiXTj3bifLg6/O217SY5cWwQKCMFsa6nGWoRVCJ0JJXa0\nZ+m3mPQD2OcW5YMrynhL2VWohyfZAjB8l/NZaeRT7M+vki56fxbx3Bk2lqy8Z1Zz\nWd5m\n-----END CERTIFICATE-----\n\nSecureTrust Extended Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E31E46D341B2B2633CE480D915F81D\n-----BEGIN CERTIFICATE-----\nMIIEizCCA3OgAwIBAgITBvHsAOMeRtNBsrJjPOSA2RX4HTANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowfjE0MDIGA1UEAxMrU2VjdXJlVHJ1c3QgRXh0ZW5kZWQgVmFs\naWRhdGlvbiBDQSwgTGV2ZWwgMTEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxEDAOBgNV\nBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS6vRtFpCJBJ7zJODH07Y3k54Qn\nVIBhnQmmWoqFqzCVMX97GAyAfzjcQrhl/TNiJiRCrVQWPI4n0R8eUd91Ab1Qzfsr\nnp+0NRbagVDa6+nF0KcNxbSZ6/iZQ7Ac3HyhCvJS2rH2CVYlzqdsrxDXcZk69jOO\ndPV8+w+7eNIn34BKpB/ZF7iXApDoAKG81kg1VtpGOxJhxTsKLuJmURT4pQjtZqF+\nF6rN64j5T2DOK0gOA4G7BLoTdOQuXkPS38LXKgZ43lKqEenjmiOaMF/XuLYzaHrW\nGYgCM2wJsykgdB9hCsTTEwsHRZzt2q9mLBDvYYWVhql1/kR4K/RN4JdESEECAwEA\nAaOCATYwggEyMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0G\nA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAdBgNVHQ4EFgQUA6uAxlUKKpWh\n4Nf+GubAynjMsJYwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wQQYD\nVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMuc2Vj\ndXJldHJ1c3QuY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9TVENBLmNybDA2BggrBgEFBQcBAQQqMCgwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMA0GCSqGSIb3DQEBCwUAA4IBAQB1\nfzAmGGmtbJyIvOfjq2McCpUoYkXAq6JTN51+nb9NDAihhDoTKMde+801bC1/l54h\nxPPm4HImM6GK6LFckDew/FGwbdRbEznUOJ7uVL5ploNBIjte23kTBUZa9fx3+aXK\nhUTAipSyPtNjnOwVVBVXzrMynfMhdsyRRe7gLXNFYCXIxtks3IkIpuYnc86NAuV9\nnBLFlZzgmbAsW+tMc5QsNvQJ9pQ539K8cqZaM+HFCScreDERxmNtHHbMw+hCa2yL\nOj4ntekgWLO8KQbE0lPUNLIM17QK8aktJavj+GezBztKMmJJwhVYQy9nxS388ApX\nxcZsEgIzOCeH0SOWg4FA\n-----END CERTIFICATE-----\n\nSecureTrust Organization Validation CA, Level 1\nSecureTrust Corporation\n06F1EC00E58E9ADD372C871D25843FDAB852D9\n-----BEGIN CERTIFICATE-----\nMIIEkDCCA3igAwIBAgITBvHsAOWOmt03LIcdJYQ/2rhS2TANBgkqhkiG9w0BAQsF\nADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRp\nb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE5MDEyOTEyNTk1OVoXDTI5\nMDEyOTEyNTk1OVowgYIxODA2BgNVBAMTL1NlY3VyZVRydXN0IE9yZ2FuaXphdGlv\nbiBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMRQwEgYDVQQKEwtTZWN1cmVUcnVzdDEQ\nMA4GA1UEBxMHQ2hpY2FnbzERMA8GA1UECBMISWxsaW5vaXMxCzAJBgNVBAYTAlVT\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4QVBCdYToXFIfzd1SQfi\nTEgg1bwHXM2cE2VsyxwWK8NEFH8zMYdKy2hYOAjbfpm0xE6q4TQzS8KL2vAtCNyY\nVrwX7d3IvKR25H5s1LUDeQXSl1JBBZCtgJf2caJcwaYa6n2pZ0EKt3wBB+QteSFn\n57ENB37T13y7Nn8gCt9ZZaPYqRWxHcPaIWO3CVzQZ3tXjCLqzJMCV2KqhK85DZk3\nwo33Zb6cyYDkerDbWyric+10dJ/wdgE49dkfyZxVxEGpHg1SCSJdHjGb4z85Zx/u\neBpxBS6g3dfrkDjjT3MUxyNS4EaRTZp7o/2EqVCYDWJDM1HcOZL64kyWyi0d9jqA\n7wIDAQABo4IBNjCCATIwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMC\nAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBR/QuNI\nbljpLrlhyGp3tPcDuM1qWjAfBgNVHSMEGDAWgBRCMrYW+gT9/l1LesP990xAHVpD\nrzBBBgNVHSAEOjA4MDYGBFUdIAAwLjAsBggrBgEFBQcCARYgaHR0cHM6Ly9jZXJ0\ncy5zZWN1cmV0cnVzdC5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2Ny\nbC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMDYGCCsGAQUFBwEBBCowKDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wDQYJKoZIhvcNAQELBQAD\nggEBAIwGM/ejz4Hbjf7Vc11gS8jzf+BwtZq9N4t1Nibj4rIDsW2G2jDE0S7fCN2m\nMhq76xkfnwfXhBbXDEKz6rj/M0G2u1kHw4Y8ZtKSzYEyRtgpeBFm4qU6voCSREpD\nFJXsL+Go2/YLRSE6xkWVSocklxppx4hi5o/RVdMMQept6ooOSFzBpH5XZYUoblKi\n99Yj0FUe8egIa9qSts42TObTpH1YVRMDnH3k2MNX3rcgPf9v/QO9Cf8W6RQ2+X3R\nCaYMPdL5OIKh4RGYjxXe3LpgiTKBWik/ZWTFL5sZSjetrJFl50NONzTc8E+BJtrx\nVCHAI2OcWyloxrYd4zMipw0YjDw=\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00DDEDF6F64298490E694C36EFA422C88F\n-----BEGIN CERTIFICATE-----\nMIIE7jCCA9agAwIBAgIRAN3t9vZCmEkOaUw276QiyI8wDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMDExOTIyMzJaFw0yNDA5\nMjgxOTIyMzJaMIGvMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE3MDUGA1UEAxMuVHJ1c3R3YXZlIERvbWFpbiBWYWxpZGF0aW9uIFNIQTI1NiBD\nQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNvbTCCASIw\nDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNr4Z91k7AKM+Pz5XXWTIuVeMts\nPU2W/pI4WdEHG9Zab1EOWPLbthB6fzUJLLLBBk1wy2OM9yG1HywB/CwfGHcoKS8Z\n/efGV+ZKTzEpIestriUWx7wUnzxKzGML48Xv7sNuY1Crru5Hgce1Ax5uOfP7OB6t\norbMunvKQC10WcSrqFg6LapZ0UhgGmQzdjYguOBF6WZJR3QLghQaNrSUZuA6neXR\ncUsBgmzrxiEVHyzt+lmnYFMFvKVwGOyIZ2RU2LAFthS6UDDrSLGsJysxc1MK1Sti\n/VP8e8wj9rJdmiWNfA+lz6hDAPzRbv+WVJNoHEGbIx8rai+rVMiLy2HIbPsCAwEA\nAaOCAWkwggFlMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFPQc4jqvtqTk\n2emd/u8cd6VjPe+IMA4GA1UdDwEB/wQEAwIBhjBIBgNVHSAEQTA/MD0GDysGAQQB\nge0YAwMDAwQFAzAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDIGA1UdHwQrMCkwJ6AloCOGIWh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9TVENBLmNybDBsBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9v\nY3NwLnRydXN0d2F2ZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9pc3N1ZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IB\nAQAjoDrTysopn7t+onDZ6rZSQW8rYlWZQpSiNHrq9xAAcMExrhcN0bQC9OQ+VRci\noMDascvwum7hVkyh2w2Ad7lC3Ir9gIuA8HycjqQJ4t1eSF3geYyf8lp259ztZ/TO\nxSAwJ9W0Szc8fslOA0SWlyA3lnRVcYVu54Idc1dPXXBxwlQ1NUCYgcsXZs+6QjLL\nYhYL85DhuitQSddoYemGpfVJnaYH9tBiWmwtzwc4qsVqTsKEJ/1zYAy2GrEAv8sB\nFKSfMNMopBmmDA8/aCIW/tH6KTD2DC15QQwL6yAUbSa5mhzFSA9O8zmF881YwBVG\nn+z3isMPClgpNw/eWSbaSLZ+\n-----END CERTIFICATE-----\n\nTrustwave Domain Validation SHA256 CA, Level 1\nSecureTrust Corporation\n390A3F7EECA8FB4347DCAF701861662B\n-----BEGIN CERTIFICATE-----\nMIIE/zCCA+egAwIBAgIQOQo/fuyo+0NH3K9wGGFmKzANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzMloXDTI0MDky\nOTE0MzUzMlowga8xCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTcwNQYDVQQDEy5UcnVzdHdhdmUgRG9tYWluIFZhbGlkYXRpb24gU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs2vhn3WTsAoz4/PlddZMi5V4y2w9\nTZb+kjhZ0Qcb1lpvUQ5Y8tu2EHp/NQksssEGTXDLY4z3IbUfLAH8LB8YdygpLxn9\n58ZX5kpPMSkh6y2uJRbHvBSfPErMYwvjxe/uw25jUKuu7keBx7UDHm458/s4Hq2i\ntsy6e8pALXRZxKuoWDotqlnRSGAaZDN2NiC44EXpZklHdAuCFBo2tJRm4Dqd5dFx\nSwGCbOvGIRUfLO36WadgUwW8pXAY7IhnZFTYsAW2FLpQMOtIsawnKzFzUwrVK2L9\nU/x7zCP2sl2aJY18D6XPqEMA/NFu/5ZUk2gcQZsjHytqL6tUyIvLYchs+wIDAQAB\no4IBezCCAXcwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU9BziOq+2pOTZ\n6Z3+7xx3pWM974gwDgYDVR0PAQH/BAQDAgGGMDIGA1UdHwQrMCkwJ6AloCOGIWh0\ndHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9TVENBLmNybDA9BgNVHSAENjA0MDIGBFUd\nIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3YXZlLmNvbS9DQTBs\nBggrBgEFBQcBAQRgMF4wJQYIKwYBBQUHMAGGGWh0dHA6Ly9vY3NwLnRydXN0d2F2\nZS5jb20wNQYIKwYBBQUHMAKGKWh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1\nZXJzL1NUQ0EuY3J0MBMGA1UdJQQMMAoGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIy\nthb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRydXN0d2F2ZS5jb20w\nDQYJKoZIhvcNAQELBQADggEBAFcdG0/3P/CkeGb76tz/mn1viDZiftD05i9Jw70k\nH9ulRwdCHgzhSZVN5zHvG919oHA9WHbxH04J+iAnVl1+FjoDNN+A+2icy2WXqH9w\ngaNUGyUwLdo0JCfgUeGbrCF6WUYCj47pS7zAY02CdGlstZZsqouXK3RnOMKOD3Dq\nf5kiSh56KvhW/F0OZY7PAbdV79LVAiSTiAFdoe/jMjmj8fqXOiCIjllqH/O9/DAm\nRwQStFpauwR+nBbFhq4sYwlZQvJ0NvIxN5JOTECTkMM+X21kf8mrwRdxBfw0YEPa\nUTeZhFr48Fwvnt4jpo7gqpJzt7jjsbWPd1FHtey2Q8zmSHY=\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n00C1BD27B383958D0D8BCA5E4F08D009D9\n-----BEGIN CERTIFICATE-----\nMIIFGDCCBACgAwIBAgIRAMG9J7ODlY0Ni8peTwjQCdkwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNDEwMTMxODE3MzlaFw0yNDEw\nMTAxODE3MzlaMIGxMQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE5MDcGA1UEAxMwVHJ1c3R3YXZlIEV4dGVuZGVkIFZhbGlkYXRpb24gU0hBMjU2\nIENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAre9mHLqiv689FWIk7PaeQLuW\nos8ldRX4rNLHeD7/X7JrTfaXuIQaLfrUODtyRaZs0LtJsEHgpr7dUonDIH69PjBP\nrHg+hBLu7ob4udEx3J03NQSdnR/fqPY0ZMH2NP7e9TFSKKctZ/SmzA8jGclVmdiT\nGg1bTx6xgWuPWq9OprIQSgkP5NRe1GeTQ7U/E1zxLqaw6PeQWjESHPGeilyw0jr6\nqVyHM5ack9ps60sN3CKNGushyaQe3w2bYxRJ9RRH/sILCAmmTbjc/cXrGQMGdaYt\naiGnXbc45r39cqfbynZ71hPPNEtFbOdqk3C7I8vrhIHiKaAtFkTMRSWmHHk4HwID\nAQABo4IBkTCCAY0wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU5eQkWRUy\nJ8kgs0ICbLDvMt6bIFowDgYDVR0PAQH/BAQDAgGGMGYGA1UdIARfMF0wDAYKKwYB\nBAGB7RgDADAOBgxghkgBhv1kAQECBAEwPQYPKwYBBAGB7RgDAwMDBAMDMCowKAYI\nKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCsw\nKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMGwGCCsG\nAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3YXZlLmNv\nbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMv\nU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQY\nMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0GCSqGSIb3DQEBCwUAA4IBAQCly1p1\nrvcOlRS+ODBLb2kYHd4q+cXDl65X+IQ7hOlXg9dpa7CzSAGNNpzhyYMbE48mB/RE\nBXxbZkMzEhWPFj+4jdGNsmX0zjEWatJWsnNVxpA7hDR0iZssezu86oDQ/sbVoaXj\n0a5jB2cZsnMS5287CNDk5i+ImruhbMAYV9sadliXoDy3y01Sv+FLMx39C5UhYhWU\ngvoT9igbSCoc/DPOukEDqsnKMmDqTf3JzuFI1CbJcR6M8R1hAda4mZrxIdGcbT8R\nXp8JQ8Vuv/+plPMcAiZ2Bzed0hPVr5A1Mz8K8w9OyORGlRwjWS65jsr26bjMCcfj\npvuAANrc0Alu4nJC\n-----END CERTIFICATE-----\n\nTrustwave Extended Validation SHA256 CA, Level 1\nSecureTrust Corporation\n35962F305C5A0BEC400D4E9877528C65\n-----BEGIN CERTIFICATE-----\nMIIFCzCCA/OgAwIBAgIQNZYvMFxaC+xADU6Yd1KMZTANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE2MDkwMTE0MzUzNFoXDTI0MDky\nOTE0MzUzNFowgbExCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMTkwNwYDVQQDEzBUcnVzdHdhdmUgRXh0ZW5kZWQgVmFsaWRhdGlvbiBTSEEyNTYg\nQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNhQHRydXN0d2F2ZS5jb20wggEi\nMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCt72YcuqK/rz0VYiTs9p5Au5ai\nzyV1Ffis0sd4Pv9fsmtN9pe4hBot+tQ4O3JFpmzQu0mwQeCmvt1SicMgfr0+ME+s\neD6EEu7uhvi50THcnTc1BJ2dH9+o9jRkwfY0/t71MVIopy1n9KbMDyMZyVWZ2JMa\nDVtPHrGBa49ar06mshBKCQ/k1F7UZ5NDtT8TXPEuprDo95BaMRIc8Z6KXLDSOvqp\nXIczlpyT2mzrSw3cIo0a6yHJpB7fDZtjFEn1FEf+wgsICaZNuNz9xesZAwZ1pi1q\nIaddtzjmvf1yp9vKdnvWE880S0Vs52qTcLsjy+uEgeIpoC0WRMxFJaYceTgfAgMB\nAAGjggGFMIIBgTASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdDgQWBBTl5CRZFTIn\nySCzQgJssO8y3psgWjAOBgNVHQ8BAf8EBAMCAYYwMgYDVR0fBCswKTAnoCWgI4Yh\naHR0cDovL2NybC50cnVzdHdhdmUuY29tL1NUQ0EuY3JsMD0GA1UdIAQ2MDQwMgYE\nVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NB\nMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lz\nc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB8G\nA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMBsGA1UdEQQUMBKBEGNhQHRy\ndXN0d2F2ZS5jb20wDQYJKoZIhvcNAQELBQADggEBAGUMIDkrvlMJ0wHLuP3lkneC\nwGU6mZ3g17jyU2RJwhRinYctraryG7Jh20DQ9/ppTHoxTIADw2JDsC5ByplabteQ\nnLghrl17K1b6PO+rzWA/NFKVwo6u8Gh7Lz0iUuit7ZBD4eKcRedxRZcPQlnD9KTR\nIs94SRpootsuCv/Y5b+1FMPV1KrYtbco9yEVlaNEWLpmiEsqvLjxiWEmt71rzz+0\nS59OtA/ihnbGP9Xrnhe7wf1ybCNOO5gZQMKr/OszfLZ7oVKACGOPLlcSZRRW98gA\nszE+1ZvlHkdjamfTSs4yMvUorYn9NhXnjAWl28NuD9m3FPiE2O50ezEDnHTiaOQ=\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n4B2C6646F434775B67DF34A04DD504E6\n-----BEGIN CERTIFICATE-----\nMIIE/TCCA+WgAwIBAgIQSyxmRvQ0d1tn3zSgTdUE5jANBgkqhkiG9w0BAQsFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTE0MTAwMTE5MjIzNloXDTI0MDky\nODE5MjIzNlowgbUxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJbGxpbm9pczEQMA4G\nA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMu\nMT0wOwYDVQQDEzRUcnVzdHdhdmUgT3JnYW5pemF0aW9uIFZhbGlkYXRpb24gU0hB\nMjU2IENBLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29t\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA49OohlJHBJ/juiQTmibO\nS28pHvCCp1bPOc6elQ62DCYE/A14JXUtI8yaUc9nFjh6dNzR7KjFPEq/qDplQl7f\n1Tvh5ifBNNP2wQ6e820TWlPO4HhR/5g4+3iFmJ1N7kFrxDp1/P8e3+9lcJsXckXC\ntfFkQ9slogJqnaCsipgdrH4gQhicFAL5YqHw2AKfctZLSPpxhI3xISMV/lIQwZPW\nI2221v9ALckokh5pW6dTK8x8yNUUye1zt5msWzqunfBjVYVUj5/LXu46hS99Mfxu\n80ARJRyHsXIuHbMzwVXGqKVPZfKAdHBl5e3ElCjNwNy+Hgi09vS7PoAUhjCf/wbO\nnQIDAQABo4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUys4d\nGAN3HhzzfFiymnCoCIAW9K4wDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYP\nKwYBBAGB7RgDAwMDBAQDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0\nd2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdh\ndmUuY29tL1NUQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50\ncnVzdHdhdmUuY29tL2lzc3VlcnMvU1RDQS5jcnQwHQYDVR0lBBYwFAYIKwYBBQUH\nAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFEIythb6BP3+XUt6w/33TEAdWkOvMA0G\nCSqGSIb3DQEBCwUAA4IBAQBN/Qb6x5VSQHIt/FqvXAkjfCI7jwXGzRoxThavUqv0\npJr1azXKv2L2ye9Sl4OCqiDHZ8ZJZ/Z19Ae1yvGTpG++0O5dWTHZ8qy/JSj17Mg1\nvWiefVpJKtkYflzhC9B9/eB3QuKVTRKDqm1ZC9kbm3MWOwtnEOw4WURWS1X2v4Hv\n2AJaXe11ZRqjx7/c6U50tYp3eVpRDCw7bOIXRffLG0oibhjHiEu8dgq7KkTSrx9m\nQFS6T2x9GLiJKhj2mEfPuGr73TfBPyKsRBymOpG67LThKVnwoUfH3pghA6VkZp5Z\n1Vm6AcDm+eelf5XPvZtNve4evLVPYueA3TmGyxXh1m2d\n-----END CERTIFICATE-----\n\nTrustwave Organization Validation SHA256 CA, Level 1\nSecureTrust Corporation\n0092B8744F71CED0E26C72A3D8D5D925B2\n-----BEGIN CERTIFICATE-----\nMIIFEDCCA/igAwIBAgIRAJK4dE9xztDibHKj2NXZJbIwDQYJKoZIhvcNAQELBQAw\nSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9u\nMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTAeFw0xNjA5MDExNDM1MzVaFw0yNDA5\nMjkxNDM1MzVaMIG1MQswCQYDVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAO\nBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5j\nLjE9MDsGA1UEAxM0VHJ1c3R3YXZlIE9yZ2FuaXphdGlvbiBWYWxpZGF0aW9uIFNI\nQTI1NiBDQSwgTGV2ZWwgMTEfMB0GCSqGSIb3DQEJARYQY2FAdHJ1c3R3YXZlLmNv\nbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOPTqIZSRwSf47okE5om\nzktvKR7wgqdWzznOnpUOtgwmBPwNeCV1LSPMmlHPZxY4enTc0eyoxTxKv6g6ZUJe\n39U74eYnwTTT9sEOnvNtE1pTzuB4Uf+YOPt4hZidTe5Ba8Q6dfz/Ht/vZXCbF3JF\nwrXxZEPbJaICap2grIqYHax+IEIYnBQC+WKh8NgCn3LWS0j6cYSN8SEjFf5SEMGT\n1iNtttb/QC3JKJIeaVunUyvMfMjVFMntc7eZrFs6rp3wY1WFVI+fy17uOoUvfTH8\nbvNAESUch7FyLh2zM8FVxqilT2XygHRwZeXtxJQozcDcvh4ItPb0uz6AFIYwn/8G\nzp0CAwEAAaOCAYUwggGBMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0OBBYEFMrO\nHRgDdx4c83xYsppwqAiAFvSuMA4GA1UdDwEB/wQEAwIBhjAyBgNVHR8EKzApMCeg\nJaAjhiFodHRwOi8vY3JsLnRydXN0d2F2ZS5jb20vU1RDQS5jcmwwPQYDVR0gBDYw\nNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwbAYIKwYBBQUHAQEEYDBeMCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC50\ncnVzdHdhdmUuY29tMDUGCCsGAQUFBzAChilodHRwOi8vc3NsLnRydXN0d2F2ZS5j\nb20vaXNzdWVycy9TVENBLmNydDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUH\nAwEwHwYDVR0jBBgwFoAUQjK2FvoE/f5dS3rD/fdMQB1aQ68wGwYDVR0RBBQwEoEQ\nY2FAdHJ1c3R3YXZlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEAC0OvN7/UJBcRDXch\nA4b2qJo7mBD05+XR96N7vucMaanz26CnUxs1o8DcBckpqyEXCxdOanIr+/UJNbBL\nXLJCzNLJEJcgV9TjbVu33eQR23yMuXD+cZsqLMF+L5IIM47W8dlwKJvMy0xs7Jb1\nS3NOIhcoVu+XPzRsgKv8Yi2B6l278RfzegiCx4vYJv0pBjFzizEiFH9bWTYIOlIJ\nJSM57hoICgjCTS8BoEgndwWIyc/nEmlYaUwmCo9QynY+UmW1WPWmVITEJPMdMK6A\nZqvvaWmuHJ6/vURaz+Hoc5D3z0yJDDCkv52bXV04ZoF6cbcWry7JvNA+djvay/4B\nRR4SZQ==\n-----END CERTIFICATE-----\n\nSecureTrust TWG Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C25181828DAC4F5F7DE4AFC87AD132\n-----BEGIN CERTIFICATE-----\nMIIG2zCCBMOgAwIBAgITBy8w6cJRgYKNrE9ffeSvyHrRMjANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMjAxMDA4MDY0OTQwWhcNMzAxMDA4MDY0ODQwWjBWMQswCQYDVQQGEwJVUzEUMBIG\nA1UEChMLU2VjdXJlVHJ1c3QxMTAvBgNVBAMTKFNlY3VyZVRydXN0IFRXRyBTZWN1\ncmUgRW1haWwgQ0EsIExldmVsIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK\nAoICAQCcD5Wc7H480gOv3ae6SELBls0oNOvpw1ZFjK55nLw+W6PhgqTGNEHlO/Ga\nWt13yS1iO1/WzRaUc2XsFRGcjv3QIfDZb+6UzhL1LL9ZE8zcs0B6fepn4smQg1yK\ngtAWGoD70Z9kEBtypkG23sO5xIiRACJWgRWVZ/891pQBBz+ElCxUnIyDGghHlWCD\nzn5dLoBIVic69Pfpi384uNoNfHV/WATUQEEnwY+5yMMUALAWrRD6Jeh5R4m9qKxG\nUlrO9ObDebK9mFEJvrCPtkTIWT1He4ZD58Lt0NIkaItQ7KsKF9wgwH7BTsRGwQXb\nP6/0LvfO8UDRKNE/4C39u9dwUw/Zpu2iNXTadVWBtaSDsrPFVb5rBu+pvn4l4Hw5\njtySyHAOWn4mhuxDXMuKBtaoTi/qF94d7N0CbqPdN9WSN79Cy2O0BexTGHSJVndX\nEbKyn96b5STPshKVpG9DmUekfnDtnHR9dmH74a05X/A8k/XeSJWXphM6NvyZap2A\nWiIkrS7MsfwnCdZlX+9WGY2qHxnm4Y6JdNah0qxozBbQHkqHsSN4k8O7zr2lfZhC\nuarm0Q1t6tjsmp7PUh26u6PCe0m+MctIrD6ZckUzZeuPduRb55K2p8MxjQSVNH1S\nJ2aaHp77qOYV+rvHXIL7le4OR5lDWyzYtXLc8u17/kLbUtgnmQIDAQABo4IBbTCC\nAWkwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwQwHQYDVR0OBBYEFKpD9MNsQCriSoEcg6nez7XhG7bOMB8GA1Ud\nIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMEEGA1UdIAQ6MDgwNgYEVR0gADAu\nMCwGCCsGAQUFBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA1\nBgNVHR8ELjAsMCqgKKAmhiRodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dD\nQS5jcmwwdAYIKwYBBQUHAQEEaDBmMCgGCCsGAQUFBzABhhxodHRwOi8vb2NzcC5z\nZWN1cmV0cnVzdC5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8vY2VydHMuc2VjdXJl\ndHJ1c3QuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQBb\ntCXryLFewOafyNENB3NzgAQVVztwaWSyvF5FYSqav95JKcoHZzy3wG7aKlTPtGnq\n1QzJst03qPmZJ3j63obz2AvfEEzLEMlsPmOTy3B9oIrNzd2QhpGW1oF6pIgGB/VP\n5zh7U2ibUC+zRLmihwt+j2+7NBbuLbPozgxDTWh2f9O4rJb5bv98Q8RdbGrypBb9\nhOhDvmNCCfjSe+Q8myqsvawEG5p7s8gsIK/V3xbyqDihXjsGc7xeEWNftlU91jBL\nKPRbrLmXhhWnHJjYs4y5IHu735HA3aAT4TqURS9dGHOMVDRumkFpLqR2W7ptpDki\nOtIFZjO5smU29OD4AlcNUXqQuKEFasyTtkRlORnWhU37c36HB8dc57xWQKOf8pMq\n7lK+ublO9G4mO1Aqr9mioTN4oMONFJG4W5dWwG9baNg682ZACkvPaw45MqSztL3A\nKb4s2cDTWu/D34hV3oafkTwu8B7B2mFZnWRJ9q4akPmZF45uw4RZx2ALaYGGGs67\n+r5qS300As9ONg8hxfVkFQSHOc00IiBkgi3OpoCofEKTgDwZwHVqOJyyPjk6H9Sh\nZANmUOT2mGDLwl86Ar5bTu8ipzlsyDYQMFjho7WaVs8I5OXyVdONXDYLIOtpITGT\n1fRcXFzxYHhrNuFwrdj2zBVyvVD4O6xV97/9nv2Eng==\n-----END CERTIFICATE-----\n\nTrustwave Global Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AD30465CF22697F246B101EC92953B\n-----BEGIN CERTIFICATE-----\nMIIHCDCCBPCgAwIBAgITBs6C2a0wRlzyJpfyRrEB7JKVOzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBjjE3MDUGA1UEAxMuVHJ1c3R3\nYXZlIEdsb2JhbCBEb21haW4gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UE\nChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGljYWdvMREw\nDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3DQEBAQUA\nA4ICDwAwggIKAoICAQChh5brvvk/kFUZwhlUhqdsUmsMCBjzYqBBLnTyNrKPr4nd\nS9s2h2JvA+9TY7NnJc/Mq1eN5V6zqvbn/LN3c8W06f76xrVvFEKs5SzCefUS/V3Z\nC18dgwXXFrP+RgfK2kqfTHGIPrWoRSnUiLn3iUNEBtJ06oXjAqAMnAyL5AzD+eHm\nZzRK/yCw/gMPnVp2S7Dstka607fS4fW9Sl33mOMNwJRxEjQWHHR25PAb4muP6wjN\nvmoLMgiDMKseHSFVtC7SpmO89PsrUV6MahKJrZcAfquAyoO1zR2c2eGaCI/m8oSx\n3B7KiMZJ3NZims/siMp/5szemsutf36WJ31nmr7PqLJGJdVpoxbLckWIhZnNYSFm\n/pTutpNONqpyYC2gGSXdw5LuxU61913SbAPpk8DZiHi3WslHBo26ghXG++sgJUGj\nhtKZhiYlp8uD21WTP6/60wngpXyCtt9cpHxW1lXmqcxwe2J4/2S3xjHz1dC6BKxb\nr61HCPVrbTD90CZUpMI8JPdsVbz5eegv+SIyybHxZe4S0D9Kv5pgWfqdXf0BAiJC\nTbGwYmFr4uisKhkfMThyOgWEH+CRBzQqdZREQ5lTIlVyzi3jGPuu9Q6brAS9U9Ue\nQhUwX8TtY8Igfo8HlhjugDpy6WvDYQ9i+tG3AC6v8sJLdOOU83Lr+2C1LEF5ZwID\nAQABo4IBYTCCAV0wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYw\nEwYDVR0lBAwwCgYIKwYBBQUHAwEwHQYDVR0OBBYEFIaZQQzOP7aMcEnlkwfwhgcd\nLXqVMB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6HMD0GA1UdIAQ2MDQw\nMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29t\nL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9U\nV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzABhhpodHRwOi8vb2Nz\ncC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEBCwUAA4ICAQAmn0jp\n+lNp188KxjKQZtpJ3mixLmuqGdH6SVpRs40BYQg/68xOPH3C6AJ17tqE6IwZMW9s\nlgiO4B7khR3ESA6Sct3zmkA8woR/KJVzzegjscHhtQUifQ+Eb9Gi0ORNnetGV+5g\n5vlrFZMptBRGUxXMo2xa+Z/NTyimpMopfXj7qCW/nQWQbzvkQGchK9IokyqV2wra\ntX68/P3zleG+LLwzoJd5AhHYSXWrIRJpClZHN+LQKkbI3MYW7+upo/1e9HEmFKxu\n5SFV3nuQm5wSOsz/ZtIL1AS8IoZYxcSe1Q/yuV9GjnxtL1jkPbzsBx4eBGxUrcIe\nsBat6SI8G58uHTpIPpqUxRYsg8w0FdjK3kNBB5QWDeXiDxzqIRzA0iE1kHeTXRZ3\n7qgGXUcce7ciW5KqeRApjQbD5BSZG2EKkQ7aaOhvxK0LiuxHZnjPW4/fdEcaCuku\nMT5qMDiF2U85V9BvanEy/xkYn4I2UeK4EdSXe7q6j+CIJz9WnoLQDbIS04GqIWe0\nVRQUlx3idUWYSJU/SG8KrEHhlJLmgSjshCwtT6qo4vHwT5WcWDLIbjMqgL1iQ6JS\n4gxXuOGia3d0I4/wec5x23EWwx9V8BtDJ8N7NDeRNmZ8RXOHSYJsVQYIQuFUEXE1\nv3WMSIxuyQMyR5FYSCG9xnKRFzNmiPngDil5IA==\n-----END CERTIFICATE-----\n\nTrustwave Global Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D99FB3B180C281020314A2D1C7640017\n-----BEGIN CERTIFICATE-----\nMIIHFDCCBPygAwIBAgITBs6C2Z+zsYDCgQIDFKLRx2QAFzANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBkDE5MDcGA1UEAxMwVHJ1c3R3\nYXZlIEdsb2JhbCBFeHRlbmRlZCBWYWxpZGF0aW9uIENBLCBMZXZlbCAxMSEwHwYD\nVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xEDAOBgNVBAcTB0NoaWNhZ28x\nETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJVUzCCAiIwDQYJKoZIhvcNAQEB\nBQADggIPADCCAgoCggIBAMRO7orfWjfmz6Y6qoAmDp2lqCJcdvbRQ8w18rl1JE3j\nf/1CScZLrnLg4RDm8JiRcvFuvoMXn/XNUWy5ICG57tjG2nO7jvBuXfvbdkGA+foN\n3yJKMTX/PmmGlN4qpzFtsB0kLrP14/0TRGeJB7qDfAFH0ReFk0ftQobLBGBOpEca\n+bv+LhcTe40/uNUSK2yQ9GpIw200mcsD3B9c29Im4tSZFuA2o1vnEeizYW5M4sPX\nHu7p5ZCxjJrXVNqWUPM38rShhMUNL5uaVYWoi7TG5JXbg0Lmt2nq1k5nnig9Yp/W\nlAFooWXjKQzHf/z+XZ57bqPe7SzLW5pzpZdSmY2VRybAwEmzMjCXgHiP2ru3TpAD\n+giakPDoz3ZmbKjwYKZ5PmnOmXx0Z2GloO37MjamjPor/+fZohfyma7VAQE8znJt\nI9MVoRN3G3gW/tuT3jXfzYdFBlfGoO7OYyLN1LK5YBKH2qXrCHD8rG2DauBt7U+w\nfOvwfkp8FcdTnfQ92Xe65U3Xdu0eCgQJbChxZtWhhLnbY6xhmwAWyJ1my+Im72Kx\nGP/XcA8SH2sz6/k0782BjRckDuFpVVpTNYl9wqe/tuOrZhWPapOsRlfsDTuhgGu5\n2inM9sU3CAzmFE85zoRQFZQSof3kFN2rUZF20bmTak99cBNLli6/ja3+KntpZ08d\nAgMBAAGjggFrMIIBZzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIB\nhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFHM4IMZH\nbabGL3tQ4EDe3sedR958MB8GA1UdIwQYMBaAFJngGWcNYtt2s9o9uFvo/ULSMQ6H\nMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50\ncnVzdHdhdmUuY29tL0NBMDMGA1UdHwQsMCowKKAmoCSGImh0dHA6Ly9jcmwudHJ1\nc3R3YXZlLmNvbS9UV0dDQS5jcmwwbgYIKwYBBQUHAQEEYjBgMCYGCCsGAQUFBzAB\nhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA2BggrBgEFBQcwAoYqaHR0cDov\nL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHQ0EuY3J0MA0GCSqGSIb3DQEB\nCwUAA4ICAQBwnSHECaf+hfGrm3Cg+aRr57ytoOSzI1DjlTNcM7k4uSt6kJRPHJ4c\nldIujMaETV52RgE6ykaMGkuIwQOIsLI6SXwjU1f5gXFUbDTS3KTWc/jwQeyLmdOe\nhvc+wBSFv8d10Sx/Qiti8mqsTqr0+N94Cx01+SkiWxWWoSZOAPkz8DMQGlD4yndK\nceTMGtQ03cLnD/36Mv6tz/Ds9l/OExrJGGxHD0tmYwYwBZpPHm7BBY2ZzycVxLcg\n+uuggcX1pg5MhJ1rDyod+7X+ilvTgH7ftHCmxvR7viMLwSUuytZ05zb2teRQgU+8\niWnPEHO/ADm5VD1Zb5Rx0579/YEENBJtGUPPJzo+JEpiZIOIlwZ69ETWWNCLZr0V\nvoi+SDl65cr+dgR9JreJ2I4W9FzS45ruxYEC8LGKEmV46sAk1YLbnIBmhehAKy9t\nP8RVz3QXYJ6rLOAuXF7R2eVV0SqfivW9bVzvBZTUTFsbdSMBAAF1BJjdRqYR63DI\ncQASY7CRoUiak1NTgPkzeV8VcNJmUt8c2eKJIifqBAjquH6+6UXs9Ol0aMPn6v0y\nB+TSuxhX2sSrpna9QcOh/QyoR5Hvcd81rZSbMc7yasKoUMXviotV1SfEqs3RU5Ts\nwnU4NHPn5ITRiuh5VMuvB/VnjnPC953u5uqAGtZ8BkC7X9cu5E0rMQ==\n-----END CERTIFICATE-----\n\nTrustwave Global Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A69703AEFE5D37D18858C74026B004\n-----BEGIN CERTIFICATE-----\nMIIHGDCCBQCgAwIBAgITBs6C2aaXA67+XTfRiFjHQCawBDANBgkqhkiG9w0BAQsF\nADCBiDELMAkGA1UEBhMCVVMxETAPBgNVBAgMCElsbGlub2lzMRAwDgYDVQQHDAdD\naGljYWdvMSEwHwYDVQQKDBhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xMTAvBgNV\nBAMMKFRydXN0d2F2ZSBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcN\nMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBlDE9MDsGA1UEAxM0VHJ1c3R3\nYXZlIEdsb2JhbCBPcmdhbml6YXRpb24gVmFsaWRhdGlvbiBDQSwgTGV2ZWwgMTEh\nMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAwDgYDVQQHEwdDaGlj\nYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMwggIiMA0GCSqGSIb3\nDQEBAQUAA4ICDwAwggIKAoICAQC8BzZtA3eWejFOGHc2DLgex6P471dLWIIHSlrF\nY4a2BCtzAd/VlpQ3gslWnTgthOmK2/hCc+WSaOLPVZzZf3lGnxbb0+Y87Kx+nS1m\nIfJ/4OR6o8XLMLoCTAI1jsWxggiB4NBMqsW2xXQ5VAvBb66KEQYbshNlRpTbtBFq\nEed4YIvCdjbnCUOy1zubgVHUVyCFHzN4XPjEQCtT5vZM576Lt10Je9COnqG0CtPU\nQNP2tjnSmOOYdWcVRZ0UqXUl2fMBfmSDHd8902foigjpP04AYYbq6AetqEgqdvQP\nxz5pVbZqzy8UrE/s/raJLFyTuIAYVt18M0whSgWzGgUWkq2xRqbfn7b1hd56dwRb\nR7pKc51FyTbeocnKlYLC+Dlzp7iKQ3Pb7WHRwLhaJB7u4CzwqhUxHc0xplMYsq92\nMbZ6WN5L5mI7hxY8gLMOR7vNX9CKz9XcYRS01iCDe5Y/9muW8bzGyNXLX1YaHAy4\n+6ncksb3Y3RUKj3f0+T4nbiRISmGazravJKSssBLP3kPa9h5aX+Vd00eL+Q7sXrh\nFO7xz+oWtOL5rfVszyc87JQvjw1sDHA710nViqzUE1bJZNe61EXdCb/RV+Wsu+rO\ncAMSr5x2j/wW875sh+U3EJmTzdEBUBxHnBD2mDTyonT7wL47TRXTEO1IaS4mVbnv\no0jWvQIDAQABo4IBazCCAWcwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8E\nBAMCAYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBS3\n/VNzOCaKcKuTyoupCOrH07fj/TAfBgNVHSMEGDAWgBSZ4BlnDWLbdrPaPbhb6P1C\n0jEOhzA9BgNVHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9z\nc2wudHJ1c3R3YXZlLmNvbS9DQTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3Js\nLnRydXN0d2F2ZS5jb20vVFdHQ0EuY3JsMG4GCCsGAQUFBwEBBGIwYDAmBggrBgEF\nBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbS8wNgYIKwYBBQUHMAKGKmh0\ndHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR0NBLmNydDANBgkqhkiG\n9w0BAQsFAAOCAgEAFXwfmELpEGKUguzVTMix79XbUnkfLa7IXcqBOrwOWEF1V8F1\nxGY6jLlUTtoEXRYZwCpqOK/i4m4nmWCYE45O7URR8nqeFffceTi62t4Yvh6LkC9g\nUnj3aChLiO/Zdxilq6vfsXO0mKafrGtZXwjyskS250Pj9DsANs57QqvYN4hqbplJ\nzc95p09OUvEhPiyRyx6FyY28U+3X6+mSNMJWd4Nhr+3HtvmItLIXP2JCLxuYtu/K\n6nKcpFCFFKeF8K3PWpjsAb0hfXL4vc3WfyCYsQnvJeisyAh7yEuge2iDwl1/xXIo\nEOAyyYAxvy5UnzcAa0Z2lwjptve+jZ4gQ+A1ioYUavR3pSfBNzuJW30nZCWFadKc\nNXOPoAPkK8JLxgRBH3JboeBCXG6xgy/pXrTjyhW7/SS+Z+7eKkp9jgdTVQ12yUtc\nCiYWUuM4l240D/z+s03WOEcLTluESwFkJhzs3D9i5crTL72uSkDDmlh8HXoPAyYO\nl3Mn9cGWhd8M8IeQRXmb6O7gvvQZDoSXDVDbjBKcW1lFpi0wBxIBzLaOi4CX4OhI\nJHJ/H3duOMaltuzXLSLkc26jwHzMeq8seQRSXraXJi1t5oBKlmEWFEgq6xlH7mLW\n3TOqS19cuiSWl/CsnlLGaW8MH5YHmk+MJxQE1BcLBs6ciapvHlhLEd9EUpU=\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-256 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C4627001DECFEBF6BF5D3B1066D7E3\n-----BEGIN CERTIFICATE-----\nMIIDbTCCAxKgAwIBAgITBy8w6cRicAHez+v2v107EGbX4zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTI1NiBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwWTATBgcqhkjO\nPQIBBggqhkjOPQMBBwNCAAT4KazLm94aiykBGkNQVkBrjmK77RlP627D2n3EwK3s\n49ljRkN6wiTWXHx3jPD5BBE/7mWhGWnphzGu1Deb6yzco4IBdTCCAXEwEgYDVR0T\nAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUH\nAwQwHQYDVR0OBBYEFHMQ2nwjQr8tFHfBImxM7ct8lbBYMB8GA1UdIwQYMBaAFKNB\nBqyQbdFK63WlShCZs7Ghi0r3MEEGA1UdIAQ6MDgwNgYEVR0gADAuMCwGCCsGAQUF\nBwIBFiBodHRwczovL2NlcnRzLnNlY3VyZXRydXN0LmNvbS9DQTA5BgNVHR8EMjAw\nMC6gLKAqhihodHRwOi8vY3JsLnNlY3VyZXRydXN0LmNvbS9UV0dQMjU2Q0EuY3Js\nMHgGCCsGAQUFBwEBBGwwajAoBggrBgEFBQcwAYYcaHR0cDovL29jc3Auc2VjdXJl\ndHJ1c3QuY29tLzA+BggrBgEFBQcwAoYyaHR0cDovL2NlcnRzLnNlY3VyZXRydXN0\nLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDSQAwRgIhAN8G\nPwKUpMgV3LZjq7fuKS96f15BrwBjmTlKhOwgX83BAiEA9WpWhzRRoKeJGAqqXrMk\nZ8RE9xRtOFBqYdv9H5CeTVk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9AF531423847B85FB677932AAF80508\n-----BEGIN CERTIFICATE-----\nMIIDmDCCAz+gAwIBAgITBs6C2a9TFCOEe4X7Z3kyqvgFCDAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\nWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAATWpfTIQFPkZIoXXMDN9utRU+AbLGcg\nBmLA06x2qqdcpCMlYFoJhuRWzYCiqz1mKrAvNlQYkgoHfemk92sf8iaro4IBaTCC\nAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwEwYDVR0lBAww\nCgYIKwYBBQUHAwEwHQYDVR0OBBYEFA/DUGGZflb1xtmcOeiDWJAHuhq0MB8GA1Ud\nIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2MDQwMgYEVR0gADAq\nMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1Ud\nHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMjU2Q0Eu\nY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1\nc3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNv\nbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwIDRwAwRAIgICvA5ttD\n0oeUcd37iYvoQ7iMIpZINp4e1j5NrlI3UnYCIEZhimm9+1dUWAfx9ZkGmIu0HiHR\nzEZifAHbPM3SJbRu\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A20A3797CD878EB3DAA41D08680AF7\n-----BEGIN CERTIFICATE-----\nMIIDpjCCA0ugAwIBAgITBs6C2aIKN5fNh46z2qQdCGgK9zAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABKXHfFxFDVI6uYWZlWciFFKtYzuJ\n+IBhot3PQGikE3sjU8d9dARkZCkInqmDyP/+XiLzgrYPMy7NS8lZcRsE5p2jggFz\nMIIBbzASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUE\nFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwHQYDVR0OBBYEFAwlVqqzYgakv+7gGxtX\nzC8s9g1QMB8GA1UdIwQYMBaAFKNBBqyQbdFK63WlShCZs7Ghi0r3MD0GA1UdIAQ2\nMDQwMgYEVR0gADAqMCgGCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUu\nY29tL0NBMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNv\nbS9UV0dQMjU2Q0EuY3JsMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0\ncDovL29jc3AudHJ1c3R3YXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wu\ndHJ1c3R3YXZlLmNvbS9pc3N1ZXJzL1RXR1AyNTZDQS5jcnQwCgYIKoZIzj0EAwID\nSQAwRgIhALahroq1NScrFeCvG5uMgMKH/bo190D+Mkh2ZIojrUOfAiEAosFXFE73\n0WLRPjX2uOkLhXuA4cQEb1R1oeGDH4MNVOo=\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-256 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A8B57C104843994DACD79E28633E5F\n-----BEGIN CERTIFICATE-----\nMIIDqDCCA0+gAwIBAgITBs6C2ai1fBBIQ5lNrNeeKGM+XzAKBggqhkjOPQQDAjCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAyNTYgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTI1NiBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQmHWo0mogvX1J61xysTqsn\n6qV06wxUH68/QJ2aDIka6beTrDoTZv3mIkyPxFTPy+9idjgSAERlBsDirgO2/NiY\no4IBczCCAW8wEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAYYwHQYD\nVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBSv+Ju8XTSl3tA+\nFCldDY4lrbClhTAfBgNVHSMEGDAWgBSjQQaskG3RSut1pUoQmbOxoYtK9zA9BgNV\nHSAENjA0MDIGBFUdIAAwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zc2wudHJ1c3R3\nYXZlLmNvbS9DQTA3BgNVHR8EMDAuMCygKqAohiZodHRwOi8vY3JsLnRydXN0d2F2\nZS5jb20vVFdHUDI1NkNBLmNybDByBggrBgEFBQcBAQRmMGQwJgYIKwYBBQUHMAGG\nGmh0dHA6Ly9vY3NwLnRydXN0d2F2ZS5jb20vMDoGCCsGAQUFBzAChi5odHRwOi8v\nc3NsLnRydXN0d2F2ZS5jb20vaXNzdWVycy9UV0dQMjU2Q0EuY3J0MAoGCCqGSM49\nBAMCA0cAMEQCIGa3JyBYlXxRN5GIIulLaDxnANNRnY4j1Et166CCC5h+AiAVUlzJ\nIJTfUDBU7jnSTKSw/F+bLIPvaC6frMZv0h+RTA==\n-----END CERTIFICATE-----\n\nSecureTrust TWG ECDSA P-384 Secure Email CA, Level 2\nTrustwave Holdings, Inc.\n072F30E9C58D91DEF98A7F9EB2666CFE7BE1EE\n-----BEGIN CERTIFICATE-----\nMIIDqjCCAy+gAwIBAgITBy8w6cWNkd75in+esmZs/nvh7jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMjAxMDA4MDY0OTQxWhcNMzAxMDA4MDY0ODQxWjBiMQswCQYDVQQGEwJV\nUzEUMBIGA1UEChMLU2VjdXJlVHJ1c3QxPTA7BgNVBAMTNFNlY3VyZVRydXN0IFRX\nRyBFQ0RTQSBQLTM4NCBTZWN1cmUgRW1haWwgQ0EsIExldmVsIDIwdjAQBgcqhkjO\nPQIBBgUrgQQAIgNiAAR4nTJ6MvtPBb7+L3tklhdDw0tr5FNY5Q1hsp6NR5OzZVeG\nx/X3VrCvkOsae1OEZHNqWCnnI1s/ix9qn/2+q0pPpXrT6wkN/HOQzpQaJWzCF7yX\nIfIB0o+x1Pr17UOX2qGjggF1MIIBcTASBgNVHRMBAf8ECDAGAQH/AgEAMA4GA1Ud\nDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDBDAdBgNVHQ4EFgQUJd3xyUp6\n6EP6L9hCmkRrWAcU2mwwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ymB07I552+gpAw\nQQYDVR0gBDowODA2BgRVHSAAMC4wLAYIKwYBBQUHAgEWIGh0dHBzOi8vY2VydHMu\nc2VjdXJldHJ1c3QuY29tL0NBMDkGA1UdHwQyMDAwLqAsoCqGKGh0dHA6Ly9jcmwu\nc2VjdXJldHJ1c3QuY29tL1RXR1AzODRDQS5jcmwweAYIKwYBBQUHAQEEbDBqMCgG\nCCsGAQUFBzABhhxodHRwOi8vb2NzcC5zZWN1cmV0cnVzdC5jb20vMD4GCCsGAQUF\nBzAChjJodHRwOi8vY2VydHMuc2VjdXJldHJ1c3QuY29tL2lzc3VlcnMvVFdHUDM4\nNENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA8X5zwZHtdHjLIn60rwG3Z3NAa6cU\n6gOFxyF+ksTCXvWCUP0oFUqsRPMKMYE2mtdQAjEA2diuEHTPUgCQ0ynhLjged8BO\nFyzL3UlFieGGp90v58gUpfjoFq0BReAw7MPYo/Qa\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Domain Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9B07A17CC5376157813389A2930A44A\n-----BEGIN CERTIFICATE-----\nMIID1TCCA1ygAwIBAgITBs6C2bB6F8xTdhV4EziaKTCkSjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBmjFDMEEGA1UEAxM6\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBEb21haW4gVmFsaWRhdGlvbiBD\nQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJbmMuMRAw\nDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UEBhMCVVMw\ndjAQBgcqhkjOPQIBBgUrgQQAIgNiAASxlBEflNumTKsypgdOscM2x6ZRpQGSyB4B\nhJScRQI81UhZvzYSwxPWcxNZwFQoV457HfqR51pviJnHltRS8MJhJ9Q9Rf1sSmy4\nW6SPsM9qnBjwfBRxghByIsEIaTW/PKyjggFpMIIBZTASBgNVHRMBAf8ECDAGAQH/\nAgEAMA4GA1UdDwEB/wQEAwIBhjATBgNVHSUEDDAKBggrBgEFBQcDATAdBgNVHQ4E\nFgQUp6etGGS1u/oGGEfIwJ68Zf9pAWAwHwYDVR0jBBgwFoAUVamEidLBMr0Yy2ym\nB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBz\nOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDov\nL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYIKwYBBQUHAQEEZjBk\nMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUuY29tLzA6BggrBgEF\nBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvVFdHUDM4NENB\nLmNydDAKBggqhkjOPQQDAwNnADBkAjA6fS1jRjt+DvnWSI58v4lX+8DCXbdEhDaB\nbBOS/rXwS/ntsFXqTf0B90GPv3AWlFMCMBbz6nXMwX0jKRkaFZOZx9tvwUapdq7M\n6jYpT/NnAzH68x1t3/7ysZ8lPuKIqAwdKQ==\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Extended Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A331594530006781829387E40DBCB6\n-----BEGIN CERTIFICATE-----\nMIID4zCCA2igAwIBAgITBs6C2aMxWUUwAGeBgpOH5A28tjAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIwWhcNMjgwMjI0MDUwMTIwWjCBnDFFMEMGA1UEAxM8\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBFeHRlbmRlZCBWYWxpZGF0aW9u\nIENBLCBMZXZlbCAxMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4x\nEDAOBgNVBAcTB0NoaWNhZ28xETAPBgNVBAgTCElsbGlub2lzMQswCQYDVQQGEwJV\nUzB2MBAGByqGSM49AgEGBSuBBAAiA2IABKcVGieqBjW3BuVza9VhkBlpGLHLZqQg\nI0GXaTpt5CogNWz6BmlZ1yAPjRnDUVfVwl57ATRtV7u+5TPFzKZ+RheFVc0iA8vl\nQ2JINGRz8XLDaivvuygQtFKSzCWn4e66cKOCAXMwggFvMBIGA1UdEwEB/wQIMAYB\nAf8CAQAwDgYDVR0PAQH/BAQDAgGGMB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEF\nBQcDATAdBgNVHQ4EFgQUMFfit09gayJACkNfT/oNzXO8JCcwHwYDVR0jBBgwFoAU\nVamEidLBMr0Yy2ymB07I552+gpAwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYB\nBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5jb20vQ0EwNwYDVR0fBDAwLjAs\noCqgKIYmaHR0cDovL2NybC50cnVzdHdhdmUuY29tL1RXR1AzODRDQS5jcmwwcgYI\nKwYBBQUHAQEEZjBkMCYGCCsGAQUFBzABhhpodHRwOi8vb2NzcC50cnVzdHdhdmUu\nY29tLzA6BggrBgEFBQcwAoYuaHR0cDovL3NzbC50cnVzdHdhdmUuY29tL2lzc3Vl\ncnMvVFdHUDM4NENBLmNydDAKBggqhkjOPQQDAwNpADBmAjEA6pScrGT+SruK7iON\n7iDJZfhQsjfQIhaq9sHiEXd89B8ibWOb57no/K265dPxeuALAjEA27NTMZM344eT\nX3df9B22dY5ZshsUMIiRcMo1K4B/GBO8SIA0jParkHS5g4WO5K7O\n-----END CERTIFICATE-----\n\nTrustwave Global ECDSA P-384 Organization Validation CA, Level 1\nTrustwave Holdings, Inc.\n06CE82D9A9D8E29837EF90BEAF59DC6551BED6\n-----BEGIN CERTIFICATE-----\nMIID5jCCA2ygAwIBAgITBs6C2anY4pg375C+r1ncZVG+1jAKBggqhkjOPQQDAzCB\nkTELMAkGA1UEBhMCVVMxETAPBgNVBAgTCElsbGlub2lzMRAwDgYDVQQHEwdDaGlj\nYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9sZGluZ3MsIEluYy4xOjA4BgNVBAMT\nMVRydXN0d2F2ZSBHbG9iYWwgRUNDIFAzODQgQ2VydGlmaWNhdGlvbiBBdXRob3Jp\ndHkwHhcNMTgwMjA2MTIyMTIxWhcNMjgwMjI0MDUwMTIxWjCBoDFJMEcGA1UEAxNA\nVHJ1c3R3YXZlIEdsb2JhbCBFQ0RTQSBQLTM4NCBPcmdhbml6YXRpb24gVmFsaWRh\ndGlvbiBDQSwgTGV2ZWwgMTEhMB8GA1UEChMYVHJ1c3R3YXZlIEhvbGRpbmdzLCBJ\nbmMuMRAwDgYDVQQHEwdDaGljYWdvMREwDwYDVQQIEwhJbGxpbm9pczELMAkGA1UE\nBhMCVVMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAATvG09PrsO8UQZhH5Zw54rwgcUw\nKjC9D2V3myjD5WOa8uxdTL8PzdwPk4TCcSf6UUG1Tt74j/I+vBOi2tgMcDt68Zld\nvTj+jZT1BBYTQtYh6/dOUjmiapQU5XqoFMRNubGjggFzMIIBbzASBgNVHRMBAf8E\nCDAGAQH/AgEAMA4GA1UdDwEB/wQEAwIBhjAdBgNVHSUEFjAUBggrBgEFBQcDAgYI\nKwYBBQUHAwEwHQYDVR0OBBYEFDoXwH5iO1eguEDKzDRHzZZ+/AmIMB8GA1UdIwQY\nMBaAFFWphInSwTK9GMtspgdOyOedvoKQMD0GA1UdIAQ2MDQwMgYEVR0gADAqMCgG\nCCsGAQUFBwIBFhxodHRwczovL3NzbC50cnVzdHdhdmUuY29tL0NBMDcGA1UdHwQw\nMC4wLKAqoCiGJmh0dHA6Ly9jcmwudHJ1c3R3YXZlLmNvbS9UV0dQMzg0Q0EuY3Js\nMHIGCCsGAQUFBwEBBGYwZDAmBggrBgEFBQcwAYYaaHR0cDovL29jc3AudHJ1c3R3\nYXZlLmNvbS8wOgYIKwYBBQUHMAKGLmh0dHA6Ly9zc2wudHJ1c3R3YXZlLmNvbS9p\nc3N1ZXJzL1RXR1AzODRDQS5jcnQwCgYIKoZIzj0EAwMDaAAwZQIwMyHlVCVMacxP\nO0fC+uc4M7Eq1F9woaWBmLSSNC6EWe3nShMqsR9HrNWrOHBHucNWAjEArwrzEM8g\nJkR4iZxbyYNIn2sNEkNZt2pxqJn4G2cDDDFfOarykKVzP1aJ9OMdYUvs\n-----END CERTIFICATE-----\n\nTrustwave S/MIME SHA256 CA, Level 1\nXRamp Security Services Inc\n3A83B71EE02C3CCA1CE1A2643E9B66EA\n-----BEGIN CERTIFICATE-----\nMIIFHTCCBAWgAwIBAgIQOoO3HuAsPMoc4aJkPptm6jANBgkqhkiG9w0BAQsFADCB\ngjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk\nMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY\nUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQxMDAxMTky\nMjM4WhcNMjQwOTI4MTkyMjM4WjCBpDELMAkGA1UEBhMCVVMxETAPBgNVBAgTCEls\nbGlub2lzMRAwDgYDVQQHEwdDaGljYWdvMSEwHwYDVQQKExhUcnVzdHdhdmUgSG9s\nZGluZ3MsIEluYy4xLDAqBgNVBAMTI1RydXN0d2F2ZSBTL01JTUUgU0hBMjU2IENB\nLCBMZXZlbCAxMR8wHQYJKoZIhvcNAQkBFhBjYUB0cnVzdHdhdmUuY29tMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4c5I5giD0wEh+RuoLIJkD7a6mBlm\n+YzTtXSefGejVVYtpjclkUl4C4hEfQMCUcrBnU3ORHVprXi/Q82dKNFPac8FI9bj\n8mtq0cjdSDfXJKfdf52wPXnTjASwKyhJt+CoJik+Fz72KAkjxi+OUSpWdQBeAQra\ndbtu4UGFTgPcuU/cwpF8J0g4CGk/saVKkkJNpq5wqpfQRYl025FyKbzmRjqhB/Ta\npoHlbHMQ7aeoZ+qtDC+eWnE3AqTUHx14Z5fegjLQRmPWqqdeZafthouglbEuHt4A\neyzefTDNwyXjUiRD/n0kaNNW+lcsLpw7ouw1OU8mwQ0C7LoPJljpXRjvOwIDAQAB\no4IBaTCCAWUwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQUDDOjV6rjq9ZL\ncBs2nqPtYVDmr3QwDgYDVR0PAQH/BAQDAgGGMEgGA1UdIARBMD8wPQYPKwYBBAGB\n7RgDAwMFBAMDMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRydXN0d2F2ZS5j\nb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVzdHdhdmUuY29t\nL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZaHR0cDovL29j\nc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3NzbC50cnVzdHdh\ndmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwEwYDVR0lBAwwCgYIKwYBBQUHAwQwHwYD\nVR0jBBgwFoAUxk+iPQZjhAmczmLkBKyNXLXpthswDQYJKoZIhvcNAQELBQADggEB\nAIdGLHufUegzFKVBQVWs3YAIFqCcJvdak14TMRImxJsnQWLz+jIW0olC0JATY6Ng\nxAbjIJA4wtW/tA+rgE6WcA5y3bLN3bRMQVDSu6X26hkVjvwo4/VYykOp3e9Cqlfe\ngJAsrqBQKXkUpEbYEmmorXxj6/74e//xwXTz0XS0BS9cXhONlTQffyJnMeLaunzQ\nS1x/MvALfPCHCZCTOfLDmwylKtHHu+V2Ks0HV+ZrzCBRR5W3MhGTU7PpNEMQwyGF\n+MG5eZTd0jyxOSOjaXQm7iDh0tG/iKZZegn5AhNdaHE74QEHTjK+teLQlo60QGBk\necyzakgVYZ/Ezalz8nQwhCA=\n-----END CERTIFICATE-----\n\nTrustwave XRamp Global Extended Validation CA, Level 1\nXRamp Security Services Inc\n00D3D519C2B2EB5C7040F64CBC957BBD2C\n-----BEGIN CERTIFICATE-----\nMIIFMDCCBBigAwIBAgIRANPVGcKy61xwQPZMvJV7vSwwDQYJKoZIhvcNAQELBQAw\ngYIxCzAJBgNVBAYTAlVTMR4wHAYDVQQLExV3d3cueHJhbXBzZWN1cml0eS5jb20x\nJDAiBgNVBAoTG1hSYW1wIFNlY3VyaXR5IFNlcnZpY2VzIEluYzEtMCsGA1UEAxMk\nWFJhbXAgR2xvYmFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTE1MDgxMjIw\nMTczMVoXDTI1MDgwOTIwMTczMVowgbcxCzAJBgNVBAYTAlVTMREwDwYDVQQIEwhJ\nbGxpbm9pczEQMA4GA1UEBxMHQ2hpY2FnbzEhMB8GA1UEChMYVHJ1c3R3YXZlIEhv\nbGRpbmdzLCBJbmMuMT8wPQYDVQQDEzZUcnVzdHdhdmUgWFJhbXAgR2xvYmFsIEV4\ndGVuZGVkIFZhbGlkYXRpb24gQ0EsIExldmVsIDExHzAdBgkqhkiG9w0BCQEWEGNh\nQHRydXN0d2F2ZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9\nAAbj9SknrNJT9pDatGvlR386KRi0SkqIOGr+C5W91+8E8PqydEHwjrnrWt/MTLGO\n+2kfEO3TEJlWxQQqbHy8SdhjCANefLzOT1cfTfjroWBIS9yiHpBIQytAaz/td95Y\n+JKrRBVCnIR/wB5qMMQ982RWwqggD763XLma0c1AIndsZL+dXp1zET4KBreoxn3q\nRYzMIsZIL2mAJoiCOTYuOGrOMVuaQn0HSu3K7bU+CpkdLQ/j+ikcQiI10IL9oOcO\nU9Gnt/hRyUX66Gk91RIpYXhla2tIYrg7ezrAnFoZIZCb891JjFtbSEOvAAK9F5d6\nfkkjPx0432o/v1c5GRFPAgMBAAGjggFoMIIBZDASBgNVHRMBAf8ECDAGAQH/AgEA\nMB0GA1UdDgQWBBTFzrk7QkXAzQnlaOhIOoNdbI6rGDAOBgNVHQ8BAf8EBAMCAYYw\nPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vc3NsLnRy\ndXN0d2F2ZS5jb20vQ0EwMgYDVR0fBCswKTAnoCWgI4YhaHR0cDovL2NybC50cnVz\ndHdhdmUuY29tL1hHQ0EuY3JsMGwGCCsGAQUFBwEBBGAwXjAlBggrBgEFBQcwAYYZ\naHR0cDovL29jc3AudHJ1c3R3YXZlLmNvbTA1BggrBgEFBQcwAoYpaHR0cDovL3Nz\nbC50cnVzdHdhdmUuY29tL2lzc3VlcnMvWEdDQS5jcnQwHQYDVR0lBBYwFAYIKwYB\nBQUHAwIGCCsGAQUFBwMBMB8GA1UdIwQYMBaAFMZPoj0GY4QJnM5i5ASsjVy16bYb\nMA0GCSqGSIb3DQEBCwUAA4IBAQCA2N/WVTGYRGNTuvF2qKWPrQUx0/6pKmGqELl6\nNXs1bwRXCci98SkeNjiaa2dHEwcGR43/M1Y0nekXP8QCEFVqGOwaY0pnTb8wL+CI\n/HTp1zfmoCYNvtzt1fIq/+9ynLYEjX8rsrf51HIEjJJK8K3k/Ub3cFT+yJKNN2YN\nJS0IvJYlbpqS6VbcInwLcW7WvJmXUuL7t0Vtt0d2q1h5UdnJQP+skiOmN/B0zPut\nbRC4v5pNGJJmwbk58UlOSeviH2qzDGutamOJ6dFNWqQFoZorAT7fUsr3WDA4HKtx\neraYdCIRJX7weW9xpdMNsVO7Wy/Ma7Fz9fzKnOH5mnInBOof\n-----END CERTIFICATE-----\n\nSecure Global CA\nSecureTrust Corporation\n075622A4E8D48A894DF413C8F0F8EAA5\n-----BEGIN CERTIFICATE-----\nMIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx\nMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg\nQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG\nSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ\niQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa\n/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ\njnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI\nHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7\nsFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w\ngZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF\nMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw\nKaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG\nAQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L\nURYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO\nH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm\nI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY\niNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc\nf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW\n-----END CERTIFICATE-----\n\nSecureTrust CA\nSecureTrust Corporation\n0CF08E5C0816A5AD427FF0EB271859D0\n-----BEGIN CERTIFICATE-----\nMIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI\nMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x\nFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz\nMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv\ncnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN\nAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz\nZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO\n0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao\nwW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj\n7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS\n8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT\nBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB\n/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg\nJYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC\nNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3\n6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/\n3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm\nD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS\nCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR\n3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE=\n-----END CERTIFICATE-----\n\nTrustwave Global Certification Authority\nTrustwave Holdings, Inc.\n05F70E86DA49F346352EBAB2\n-----BEGIN CERTIFICATE-----\nMIIF2jCCA8KgAwIBAgIMBfcOhtpJ80Y1LrqyMA0GCSqGSIb3DQEBCwUAMIGIMQsw\nCQYDVQQGEwJVUzERMA8GA1UECAwISWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28x\nITAfBgNVBAoMGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1\nc3R3YXZlIEdsb2JhbCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0xNzA4MjMx\nOTM0MTJaFw00MjA4MjMxOTM0MTJaMIGIMQswCQYDVQQGEwJVUzERMA8GA1UECAwI\nSWxsaW5vaXMxEDAOBgNVBAcMB0NoaWNhZ28xITAfBgNVBAoMGFRydXN0d2F2ZSBI\nb2xkaW5ncywgSW5jLjExMC8GA1UEAwwoVHJ1c3R3YXZlIEdsb2JhbCBDZXJ0aWZp\nY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB\nALldUShLPDeS0YLOvR29zd24q88KPuFd5dyqCblXAj7mY2Hf8g+CY66j96xz0Xzn\nswuvCAAJWX/NKSqIk4cXGIDtiLK0thAfLdZfVaITXdHG6wZWiYj+rDKd/VzDBcdu\n7oaJuogDnXIhhpCujwOl3J+IKMujkkkP7NAP4m1ET4BqstTnoApTAbqOl5F2brz8\n1Ws25kCI1nsvXwXoLG0R8+eyvpJETNKXpP7ScoFDB5zpET71ixpZfR9oWN0EACyW\n80OzfpgZdNmcc9kYvkHHNHnZ9GLCQ7mzJ7Aiy/k9UscwR7PJPrhq4ufogXBeQotP\nJqX+OsIgbrv4Fo7NDKm0G2x2EOFYeUY+VM6AqFcJNykbmROPDMjWLBz7BegIlT1l\nRtzuzWniTY+HKE40Cz7PFNm73bZQmq131BnW2hqIyE4bJ3XYsgjxroMwuREOzYfw\nhI0Vcnyh78zyiGG69Gm7DIwLdVcEuE4qFC49DxweMqZiNu5m4iK4BUBjECLzMx10\ncoos9TkpoNPnG4CELcU9402x/RpvumUHO1jsQkUm+9jaJXLE9gCxInm943xZYkqc\nBW89zubWR2OZxiRvchLIrH+QtAuRcOi35hYQcRfO3gZPSEF9NUqjifLJS3tBEW1n\ntwiYTOURGa5CgNz7kAXU+FDKvuStx8KU1xad5hePrzb7AgMBAAGjQjBAMA8GA1Ud\nEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJngGWcNYtt2s9o9uFvo/ULSMQ6HMA4GA1Ud\nDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAmHNw4rDT7TnsTGDZqRKGFx6W\n0OhUKDtkLSGm+J1WE2pIPU/HPinbbViDVD2HfSMF1OQc3Og4ZYbFdada2zUFvXfe\nuyk3QAUHw5RSn8pk3fEbK9xGChACMf1KaA0HZJDmHvUqoai7PF35owgLEQzxPy0Q\nlG/+4jSHg9bP5Rs1bdID4bANqKCqRieCNqcVtgimQlRXtpla4gt5kNdXElE1GYhB\naCXUNxeEFfsBctyV3lImIJgm4nb1J2/6ADtKYdkNy1GTKv0WBpanI5ojSP5RvbbE\nsLFUzt5sQa0WZ37b/TjNuThOssFgy50X31ieemKyJo90lZvkWx3SD92YHJtZuSPT\nMaCm/zjdzyBP6VhWOmfD0faZmZ26NraAL4hHT4a/RDqA5Dccprrql5gR0IRiR2Qe\nqu5AvzSxnI9O4fKSTx+O856X3vOmeWqJcU9LJxdI/uz0UA9PSX3MReO9ekDFQdxh\nVicGaeVyQYHTtgGJoC86cnn+OjC/QezHYj6RS8fZMXZC+fc8Y+wmjHMMfRod6qh8\nh6jCJ3zhM0EPz8/8AKAigJ5Kp28AsEFFtyLKaEjFQqKu3R3y4G5OBVixwJAWKqQ9\nEEC+j2Jjg6mcgn0tAumDMHzLJ8n9HmYAsC7TIS+OMxZsmO0QqAfWzJPP29FpHOTK\nyeC2nOnOcXHebD8WpHk=\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P256 Certification Authority\nTrustwave Holdings, Inc.\n0D6A5F083F285C3E5195DF5D\n-----BEGIN CERTIFICATE-----\nMIICYDCCAgegAwIBAgIMDWpfCD8oXD5Rld9dMAoGCCqGSM49BAMCMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM1MTBaFw00MjA4MjMxOTM1MTBaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDI1NiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTBZMBMGByqGSM49AgEGCCqG\nSM49AwEHA0IABH77bOYj43MyCMpg5lOcunSNGLB4kFKA3TjASh3RqMyTpJcGOMoN\nFWLGjgEqZZ2q3zSRLoHB5DOSMcT9CTqmP62jQzBBMA8GA1UdEwEB/wQFMAMBAf8w\nDwYDVR0PAQH/BAUDAwcGADAdBgNVHQ4EFgQUo0EGrJBt0UrrdaVKEJmzsaGLSvcw\nCgYIKoZIzj0EAwIDRwAwRAIgB+ZU2g6gWrKuEZ+Hxbb/ad4lvvigtwjzRM4q3wgh\nDDcCIC0mA6AFvWvR9lz4ZcyGbbOcNEhjhAnFjXca4syc4XR7\n-----END CERTIFICATE-----\n\nTrustwave Global ECC P384 Certification Authority\nTrustwave Holdings, Inc.\n08BD85976C9927A48068473B\n-----BEGIN CERTIFICATE-----\nMIICnTCCAiSgAwIBAgIMCL2Fl2yZJ6SAaEc7MAoGCCqGSM49BAMDMIGRMQswCQYD\nVQQGEwJVUzERMA8GA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAf\nBgNVBAoTGFRydXN0d2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3\nYXZlIEdsb2JhbCBFQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0x\nNzA4MjMxOTM2NDNaFw00MjA4MjMxOTM2NDNaMIGRMQswCQYDVQQGEwJVUzERMA8G\nA1UECBMISWxsaW5vaXMxEDAOBgNVBAcTB0NoaWNhZ28xITAfBgNVBAoTGFRydXN0\nd2F2ZSBIb2xkaW5ncywgSW5jLjE6MDgGA1UEAxMxVHJ1c3R3YXZlIEdsb2JhbCBF\nQ0MgUDM4NCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTB2MBAGByqGSM49AgEGBSuB\nBAAiA2IABGvaDXU1CDFHBa5FmVXxERMuSvgQMSOjfoPTfygIOiYaOs+Xgh+AtycJ\nj9GOMMQKmw6sWASr9zZ9lCOkmwqKi6vr/TklZvFe/oyujUF5nQlgziip04pt89ZF\n1PKYhDhloKNDMEEwDwYDVR0TAQH/BAUwAwEB/zAPBgNVHQ8BAf8EBQMDBwYAMB0G\nA1UdDgQWBBRVqYSJ0sEyvRjLbKYHTsjnnb6CkDAKBggqhkjOPQQDAwNnADBkAjA3\nAZKXRRJ+oPM+rRk6ct30UJMDEr5E0k9BpIycnR+j9sKS50gU/k6bpZFXrsY3crsC\nMGclCrEMXu6pY5Jv5ZAL/mYiykf9ijH3g/56vxC+GCsej/YpHpRZ744hN8tRmKVu\nSw==\n-----END CERTIFICATE-----\n";
|
|
14
14
|
|
|
15
15
|
var PKG_NAME = "@hpcc-js/comms";
|
|
16
|
-
var PKG_VERSION = "2.
|
|
17
|
-
var BUILD_VERSION = "2.
|
|
16
|
+
var PKG_VERSION = "2.70.0";
|
|
17
|
+
var BUILD_VERSION = "2.101.0";
|
|
18
18
|
|
|
19
19
|
/*! *****************************************************************************
|
|
20
20
|
Copyright (c) Microsoft Corporation.
|
|
@@ -103,10 +103,10 @@ function __spreadArray(to, from, pack) {
|
|
|
103
103
|
ar[i] = from[i];
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
|
-
return to.concat(ar ||
|
|
106
|
+
return to.concat(ar || from);
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
var logger
|
|
109
|
+
var logger = scopedLogger("comms/connection.ts");
|
|
110
110
|
function instanceOfIOptions(object) {
|
|
111
111
|
return "baseUrl" in object;
|
|
112
112
|
}
|
|
@@ -145,20 +145,20 @@ function serializeRequest(obj, encodeRequest, prefix) {
|
|
|
145
145
|
obj[key].forEach(function (row, i) {
|
|
146
146
|
if (typeof row === "object") {
|
|
147
147
|
includeItemCount_1 = true;
|
|
148
|
-
str.push(serializeRequest(row, encodeRequest, prefix + encode(
|
|
148
|
+
str.push(serializeRequest(row, encodeRequest, prefix + encode(key + "." + i, encodeRequest)));
|
|
149
149
|
}
|
|
150
150
|
else {
|
|
151
|
-
str.push(prefix + encode(
|
|
151
|
+
str.push(prefix + encode(key + "_i" + i, encodeRequest) + "=" + serializeRequest(row, encodeRequest));
|
|
152
152
|
}
|
|
153
153
|
});
|
|
154
154
|
if (includeItemCount_1) {
|
|
155
|
-
str.push(prefix + encode(
|
|
155
|
+
str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key].length);
|
|
156
156
|
}
|
|
157
157
|
}
|
|
158
158
|
else if (typeof obj[key] === "object") {
|
|
159
159
|
if (obj[key] && obj[key]["Item"] instanceof Array) { // Specific to ws_machine.GetTargetClusterInfo?
|
|
160
160
|
str.push(serializeRequest(obj[key]["Item"], encodeRequest, prefix + encode(key, encodeRequest)));
|
|
161
|
-
str.push(prefix + encode(
|
|
161
|
+
str.push(prefix + encode(key + ".itemcount", encodeRequest) + "=" + obj[key]["Item"].length);
|
|
162
162
|
}
|
|
163
163
|
else {
|
|
164
164
|
str.push(serializeRequest(obj[key], encodeRequest, prefix + encode(key, encodeRequest)));
|
|
@@ -208,12 +208,12 @@ function jsonp(opts, action, request, responseType, header) {
|
|
|
208
208
|
respondedTimeout -= respondedTick;
|
|
209
209
|
if (respondedTimeout <= 0) {
|
|
210
210
|
clearInterval(progress);
|
|
211
|
-
logger
|
|
211
|
+
logger.error("Request timeout: " + script.src);
|
|
212
212
|
doCallback();
|
|
213
213
|
reject(Error("Request timeout: " + script.src));
|
|
214
214
|
}
|
|
215
215
|
else {
|
|
216
|
-
logger
|
|
216
|
+
logger.debug("Request pending (" + respondedTimeout / 1000 + " sec): " + script.src);
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
}, respondedTick);
|
|
@@ -224,7 +224,7 @@ function jsonp(opts, action, request, responseType, header) {
|
|
|
224
224
|
});
|
|
225
225
|
}
|
|
226
226
|
function authHeader(opts) {
|
|
227
|
-
return opts.userID ? { Authorization: "Basic "
|
|
227
|
+
return opts.userID ? { Authorization: "Basic " + btoa(opts.userID + ":" + opts.password) } : {};
|
|
228
228
|
}
|
|
229
229
|
// _omitMap is a workaround for older HPCC-Platform instances without credentials ---
|
|
230
230
|
var _omitMap = {};
|
|
@@ -283,7 +283,7 @@ function get(opts, action, request, responseType, header) {
|
|
|
283
283
|
abortSignal = request.abortSignal_;
|
|
284
284
|
delete request.abortSignal_;
|
|
285
285
|
}
|
|
286
|
-
return doFetch(opts,
|
|
286
|
+
return doFetch(opts, action + "?" + serializeRequest(request, opts.encodeRequest), {
|
|
287
287
|
method: "get",
|
|
288
288
|
signal: abortSignal
|
|
289
289
|
}, __assign({}, header), responseType);
|
|
@@ -362,7 +362,7 @@ var ESPExceptions = /** @class */ (function (_super) {
|
|
|
362
362
|
_this.Source = exceptions.Source;
|
|
363
363
|
_this.Exception = exceptions.Exception;
|
|
364
364
|
if (exceptions.Exception.length) {
|
|
365
|
-
_this.message =
|
|
365
|
+
_this.message = exceptions.Exception[0].Code + ": " + exceptions.Exception[0].Message;
|
|
366
366
|
}
|
|
367
367
|
else {
|
|
368
368
|
_this.message = "";
|
|
@@ -552,7 +552,7 @@ var CodesignService = /** @class */ (function () {
|
|
|
552
552
|
var DFUService = /** @class */ (function (_super) {
|
|
553
553
|
__extends(DFUService, _super);
|
|
554
554
|
function DFUService(optsConnection) {
|
|
555
|
-
return _super.call(this, optsConnection, "WsDfu", "1.
|
|
555
|
+
return _super.call(this, optsConnection, "WsDfu", "1.62") || this;
|
|
556
556
|
}
|
|
557
557
|
DFUService.prototype.DFUQuery = function (request) {
|
|
558
558
|
return this._connection.send("DFUQuery", request);
|
|
@@ -682,7 +682,7 @@ var EclService = /** @class */ (function (_super) {
|
|
|
682
682
|
};
|
|
683
683
|
EclService.prototype.requestJson = function (querySet, queryId) {
|
|
684
684
|
// http://192.168.3.22:8002/WsEcl/example/request/query/roxie/peopleaccounts/json?display
|
|
685
|
-
return this._connection.send("example/request/query/"
|
|
685
|
+
return this._connection.send("example/request/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
|
|
686
686
|
var requestSchema = JSON.parse(response);
|
|
687
687
|
for (var key in requestSchema) {
|
|
688
688
|
return requestSchema[key];
|
|
@@ -692,7 +692,7 @@ var EclService = /** @class */ (function (_super) {
|
|
|
692
692
|
};
|
|
693
693
|
EclService.prototype.responseJson = function (querySet, queryId) {
|
|
694
694
|
// http://192.168.3.22:8002/WsEcl/example/response/query/roxie/peopleaccounts/json?display
|
|
695
|
-
return this._connection.send("example/response/query/"
|
|
695
|
+
return this._connection.send("example/response/query/" + querySet + "/" + queryId + "/json", {}, "text").then(function (response) {
|
|
696
696
|
var responseSchema = JSON.parse(response);
|
|
697
697
|
for (var key in responseSchema) {
|
|
698
698
|
return responseSchema[key].Results;
|
|
@@ -708,7 +708,7 @@ var EclService = /** @class */ (function (_super) {
|
|
|
708
708
|
};
|
|
709
709
|
EclService.prototype.submit = function (querySet, queryId, request) {
|
|
710
710
|
// http://192.168.3.22:8002/WsEcl/submit/query/roxie/peopleaccounts.1/json
|
|
711
|
-
var action = "submit/query/"
|
|
711
|
+
var action = "submit/query/" + querySet + "/" + queryId;
|
|
712
712
|
return this._connection.send(action, request, "json2").then(function (response) {
|
|
713
713
|
if (response.Results && response.Results.Exception) {
|
|
714
714
|
throw new ESPExceptions(action, request, {
|
|
@@ -722,6 +722,39 @@ var EclService = /** @class */ (function (_super) {
|
|
|
722
722
|
return EclService;
|
|
723
723
|
}(Service));
|
|
724
724
|
|
|
725
|
+
var LogAccessType;
|
|
726
|
+
(function (LogAccessType) {
|
|
727
|
+
LogAccessType[LogAccessType["All"] = 0] = "All";
|
|
728
|
+
LogAccessType[LogAccessType["ByJobIdID"] = 1] = "ByJobIdID";
|
|
729
|
+
LogAccessType[LogAccessType["ByComponent"] = 2] = "ByComponent";
|
|
730
|
+
LogAccessType[LogAccessType["ByLogType"] = 3] = "ByLogType";
|
|
731
|
+
LogAccessType[LogAccessType["ByTargetAudience"] = 4] = "ByTargetAudience";
|
|
732
|
+
})(LogAccessType || (LogAccessType = {}));
|
|
733
|
+
var LogaccessService = /** @class */ (function (_super) {
|
|
734
|
+
__extends(LogaccessService, _super);
|
|
735
|
+
function LogaccessService(optsConnection) {
|
|
736
|
+
return _super.call(this, optsConnection, "WsLogaccess", "1") || this;
|
|
737
|
+
}
|
|
738
|
+
LogaccessService.prototype.GetLogAccessInfo = function (request) {
|
|
739
|
+
return this._connection.send("GetLogAccessInfo", request);
|
|
740
|
+
};
|
|
741
|
+
LogaccessService.prototype.GetLogs = function (request) {
|
|
742
|
+
return this._connection.send("GetLogs", request);
|
|
743
|
+
};
|
|
744
|
+
LogaccessService.prototype.Ping = function (request) {
|
|
745
|
+
return this._connection.send("Ping", request);
|
|
746
|
+
};
|
|
747
|
+
return LogaccessService;
|
|
748
|
+
}(Service));
|
|
749
|
+
|
|
750
|
+
var LogaccessServiceEx = /** @class */ (function (_super) {
|
|
751
|
+
__extends(LogaccessServiceEx, _super);
|
|
752
|
+
function LogaccessServiceEx() {
|
|
753
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
754
|
+
}
|
|
755
|
+
return LogaccessServiceEx;
|
|
756
|
+
}(LogaccessService));
|
|
757
|
+
|
|
725
758
|
function ascending(a, b) {
|
|
726
759
|
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
|
|
727
760
|
}
|
|
@@ -758,7 +791,7 @@ function ascendingComparator(f) {
|
|
|
758
791
|
};
|
|
759
792
|
}
|
|
760
793
|
|
|
761
|
-
bisector(ascending);
|
|
794
|
+
var ascendingBisect = bisector(ascending);
|
|
762
795
|
|
|
763
796
|
function number(x) {
|
|
764
797
|
return x === null ? NaN : +x;
|
|
@@ -882,6 +915,31 @@ var MachineService = /** @class */ (function () {
|
|
|
882
915
|
return MachineService;
|
|
883
916
|
}());
|
|
884
917
|
|
|
918
|
+
var ResourcesService = /** @class */ (function (_super) {
|
|
919
|
+
__extends(ResourcesService, _super);
|
|
920
|
+
function ResourcesService(optsConnection) {
|
|
921
|
+
return _super.call(this, optsConnection, "WsResources", "1.01") || this;
|
|
922
|
+
}
|
|
923
|
+
ResourcesService.prototype.Ping = function (request) {
|
|
924
|
+
return this._connection.send("Ping", request);
|
|
925
|
+
};
|
|
926
|
+
ResourcesService.prototype.ServiceQuery = function (request) {
|
|
927
|
+
return this._connection.send("ServiceQuery", request);
|
|
928
|
+
};
|
|
929
|
+
ResourcesService.prototype.WebLinksQuery = function (request) {
|
|
930
|
+
return this._connection.send("WebLinksQuery", request);
|
|
931
|
+
};
|
|
932
|
+
return ResourcesService;
|
|
933
|
+
}(Service));
|
|
934
|
+
|
|
935
|
+
var ResourcesServiceEx = /** @class */ (function (_super) {
|
|
936
|
+
__extends(ResourcesServiceEx, _super);
|
|
937
|
+
function ResourcesServiceEx() {
|
|
938
|
+
return _super !== null && _super.apply(this, arguments) || this;
|
|
939
|
+
}
|
|
940
|
+
return ResourcesServiceEx;
|
|
941
|
+
}(ResourcesService));
|
|
942
|
+
|
|
885
943
|
var SMCService = /** @class */ (function () {
|
|
886
944
|
function SMCService(optsConnection) {
|
|
887
945
|
this._connection = new ESPConnection(optsConnection, "WsSMC", "1.24");
|
|
@@ -986,11 +1044,12 @@ var StoreService = /** @class */ (function (_super) {
|
|
|
986
1044
|
*/
|
|
987
1045
|
var TpLogicalClusterQuery;
|
|
988
1046
|
(function (TpLogicalClusterQuery) {
|
|
1047
|
+
var RoxieQueueFilter;
|
|
989
1048
|
(function (RoxieQueueFilter) {
|
|
990
1049
|
RoxieQueueFilter["All"] = "All";
|
|
991
1050
|
RoxieQueueFilter["QueriesOnly"] = "QueriesOnly";
|
|
992
1051
|
RoxieQueueFilter["WorkunitsOnly"] = "WorkunitsOnly";
|
|
993
|
-
})(TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
|
|
1052
|
+
})(RoxieQueueFilter = TpLogicalClusterQuery.RoxieQueueFilter || (TpLogicalClusterQuery.RoxieQueueFilter = {}));
|
|
994
1053
|
})(TpLogicalClusterQuery || (TpLogicalClusterQuery = {}));
|
|
995
1054
|
var TopologyService = /** @class */ (function (_super) {
|
|
996
1055
|
__extends(TopologyService, _super);
|
|
@@ -1052,7 +1111,7 @@ var TopologyService = /** @class */ (function (_super) {
|
|
|
1052
1111
|
* http://localhost:8010/WsWorkunits/WUInfo?respjson_
|
|
1053
1112
|
* http://json2ts.com/
|
|
1054
1113
|
*/
|
|
1055
|
-
var WUStateID
|
|
1114
|
+
var WUStateID;
|
|
1056
1115
|
(function (WUStateID) {
|
|
1057
1116
|
WUStateID[WUStateID["Unknown"] = 0] = "Unknown";
|
|
1058
1117
|
WUStateID[WUStateID["Compiled"] = 1] = "Compiled";
|
|
@@ -1073,12 +1132,13 @@ var WUStateID$1;
|
|
|
1073
1132
|
WUStateID[WUStateID["Paused"] = 16] = "Paused";
|
|
1074
1133
|
WUStateID[WUStateID["LAST"] = 17] = "LAST";
|
|
1075
1134
|
WUStateID[WUStateID["NotFound"] = 999] = "NotFound";
|
|
1076
|
-
})(WUStateID
|
|
1135
|
+
})(WUStateID || (WUStateID = {}));
|
|
1077
1136
|
function isECLResult(_) {
|
|
1078
1137
|
return typeof _.Name === "string";
|
|
1079
1138
|
}
|
|
1080
1139
|
var WUUpdate;
|
|
1081
1140
|
(function (WUUpdate) {
|
|
1141
|
+
var Action;
|
|
1082
1142
|
(function (Action) {
|
|
1083
1143
|
Action[Action["Unknown"] = 0] = "Unknown";
|
|
1084
1144
|
Action[Action["Compile"] = 1] = "Compile";
|
|
@@ -1090,7 +1150,7 @@ var WUUpdate;
|
|
|
1090
1150
|
Action[Action["Resume"] = 7] = "Resume";
|
|
1091
1151
|
Action[Action["Debug"] = 8] = "Debug";
|
|
1092
1152
|
Action[Action["__size"] = 9] = "__size";
|
|
1093
|
-
})(WUUpdate.Action || (WUUpdate.Action = {}));
|
|
1153
|
+
})(Action = WUUpdate.Action || (WUUpdate.Action = {}));
|
|
1094
1154
|
})(WUUpdate || (WUUpdate = {}));
|
|
1095
1155
|
function isWUQueryECLWorkunit(_) {
|
|
1096
1156
|
return _.TotalClusterTime !== undefined;
|
|
@@ -1292,8 +1352,6 @@ var day = newInterval(function(date) {
|
|
|
1292
1352
|
return date.getDate() - 1;
|
|
1293
1353
|
});
|
|
1294
1354
|
|
|
1295
|
-
var timeDay = day;
|
|
1296
|
-
|
|
1297
1355
|
function weekday(i) {
|
|
1298
1356
|
return newInterval(function(date) {
|
|
1299
1357
|
date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);
|
|
@@ -1307,11 +1365,11 @@ function weekday(i) {
|
|
|
1307
1365
|
|
|
1308
1366
|
var sunday = weekday(0);
|
|
1309
1367
|
var monday = weekday(1);
|
|
1310
|
-
weekday(2);
|
|
1311
|
-
weekday(3);
|
|
1368
|
+
var tuesday = weekday(2);
|
|
1369
|
+
var wednesday = weekday(3);
|
|
1312
1370
|
var thursday = weekday(4);
|
|
1313
|
-
weekday(5);
|
|
1314
|
-
weekday(6);
|
|
1371
|
+
var friday = weekday(5);
|
|
1372
|
+
var saturday = weekday(6);
|
|
1315
1373
|
|
|
1316
1374
|
var year = newInterval(function(date) {
|
|
1317
1375
|
date.setMonth(0, 1);
|
|
@@ -1335,8 +1393,6 @@ year.every = function(k) {
|
|
|
1335
1393
|
});
|
|
1336
1394
|
};
|
|
1337
1395
|
|
|
1338
|
-
var timeYear = year;
|
|
1339
|
-
|
|
1340
1396
|
var utcDay = newInterval(function(date) {
|
|
1341
1397
|
date.setUTCHours(0, 0, 0, 0);
|
|
1342
1398
|
}, function(date, step) {
|
|
@@ -1347,8 +1403,6 @@ var utcDay = newInterval(function(date) {
|
|
|
1347
1403
|
return date.getUTCDate() - 1;
|
|
1348
1404
|
});
|
|
1349
1405
|
|
|
1350
|
-
var utcDay$1 = utcDay;
|
|
1351
|
-
|
|
1352
1406
|
function utcWeekday(i) {
|
|
1353
1407
|
return newInterval(function(date) {
|
|
1354
1408
|
date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);
|
|
@@ -1362,11 +1416,11 @@ function utcWeekday(i) {
|
|
|
1362
1416
|
|
|
1363
1417
|
var utcSunday = utcWeekday(0);
|
|
1364
1418
|
var utcMonday = utcWeekday(1);
|
|
1365
|
-
utcWeekday(2);
|
|
1366
|
-
utcWeekday(3);
|
|
1419
|
+
var utcTuesday = utcWeekday(2);
|
|
1420
|
+
var utcWednesday = utcWeekday(3);
|
|
1367
1421
|
var utcThursday = utcWeekday(4);
|
|
1368
|
-
utcWeekday(5);
|
|
1369
|
-
utcWeekday(6);
|
|
1422
|
+
var utcFriday = utcWeekday(5);
|
|
1423
|
+
var utcSaturday = utcWeekday(6);
|
|
1370
1424
|
|
|
1371
1425
|
var utcYear = newInterval(function(date) {
|
|
1372
1426
|
date.setUTCMonth(0, 1);
|
|
@@ -1390,8 +1444,6 @@ utcYear.every = function(k) {
|
|
|
1390
1444
|
});
|
|
1391
1445
|
};
|
|
1392
1446
|
|
|
1393
|
-
var utcYear$1 = utcYear;
|
|
1394
|
-
|
|
1395
1447
|
function localDate(d) {
|
|
1396
1448
|
if (0 <= d.y && d.y < 100) {
|
|
1397
1449
|
var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);
|
|
@@ -1580,7 +1632,7 @@ function formatLocale(locale) {
|
|
|
1580
1632
|
return function(string) {
|
|
1581
1633
|
var d = newDate(1900, undefined, 1),
|
|
1582
1634
|
i = parseSpecifier(d, specifier, string += "", 0),
|
|
1583
|
-
week, day;
|
|
1635
|
+
week, day$1;
|
|
1584
1636
|
if (i != string.length) return null;
|
|
1585
1637
|
|
|
1586
1638
|
// If a UNIX timestamp is specified, return it.
|
|
@@ -1601,25 +1653,25 @@ function formatLocale(locale) {
|
|
|
1601
1653
|
if (d.V < 1 || d.V > 53) return null;
|
|
1602
1654
|
if (!("w" in d)) d.w = 1;
|
|
1603
1655
|
if ("Z" in d) {
|
|
1604
|
-
week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();
|
|
1605
|
-
week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);
|
|
1606
|
-
week = utcDay
|
|
1656
|
+
week = utcDate(newDate(d.y, 0, 1)), day$1 = week.getUTCDay();
|
|
1657
|
+
week = day$1 > 4 || day$1 === 0 ? utcMonday.ceil(week) : utcMonday(week);
|
|
1658
|
+
week = utcDay.offset(week, (d.V - 1) * 7);
|
|
1607
1659
|
d.y = week.getUTCFullYear();
|
|
1608
1660
|
d.m = week.getUTCMonth();
|
|
1609
1661
|
d.d = week.getUTCDate() + (d.w + 6) % 7;
|
|
1610
1662
|
} else {
|
|
1611
|
-
week = localDate(newDate(d.y, 0, 1)), day = week.getDay();
|
|
1612
|
-
week = day > 4 || day === 0 ? monday.ceil(week) : monday(week);
|
|
1613
|
-
week =
|
|
1663
|
+
week = localDate(newDate(d.y, 0, 1)), day$1 = week.getDay();
|
|
1664
|
+
week = day$1 > 4 || day$1 === 0 ? monday.ceil(week) : monday(week);
|
|
1665
|
+
week = day.offset(week, (d.V - 1) * 7);
|
|
1614
1666
|
d.y = week.getFullYear();
|
|
1615
1667
|
d.m = week.getMonth();
|
|
1616
1668
|
d.d = week.getDate() + (d.w + 6) % 7;
|
|
1617
1669
|
}
|
|
1618
1670
|
} else if ("W" in d || "U" in d) {
|
|
1619
1671
|
if (!("w" in d)) d.w = "u" in d ? d.u % 7 : "W" in d ? 1 : 0;
|
|
1620
|
-
day = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
|
|
1672
|
+
day$1 = "Z" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();
|
|
1621
1673
|
d.m = 0;
|
|
1622
|
-
d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;
|
|
1674
|
+
d.d = "W" in d ? (d.w + 6) % 7 + d.W * 7 - (day$1 + 5) % 7 : d.w + d.U * 7 - (day$1 + 6) % 7;
|
|
1623
1675
|
}
|
|
1624
1676
|
|
|
1625
1677
|
// If a time zone is specified, all fields are interpreted as UTC and then
|
|
@@ -1905,7 +1957,7 @@ function formatHour12(d, p) {
|
|
|
1905
1957
|
}
|
|
1906
1958
|
|
|
1907
1959
|
function formatDayOfYear(d, p) {
|
|
1908
|
-
return pad(1 +
|
|
1960
|
+
return pad(1 + day.count(year(d), d), p, 3);
|
|
1909
1961
|
}
|
|
1910
1962
|
|
|
1911
1963
|
function formatMilliseconds(d, p) {
|
|
@@ -1934,7 +1986,7 @@ function formatWeekdayNumberMonday(d) {
|
|
|
1934
1986
|
}
|
|
1935
1987
|
|
|
1936
1988
|
function formatWeekNumberSunday(d, p) {
|
|
1937
|
-
return pad(sunday.count(
|
|
1989
|
+
return pad(sunday.count(year(d) - 1, d), p, 2);
|
|
1938
1990
|
}
|
|
1939
1991
|
|
|
1940
1992
|
function dISO(d) {
|
|
@@ -1944,7 +1996,7 @@ function dISO(d) {
|
|
|
1944
1996
|
|
|
1945
1997
|
function formatWeekNumberISO(d, p) {
|
|
1946
1998
|
d = dISO(d);
|
|
1947
|
-
return pad(thursday.count(
|
|
1999
|
+
return pad(thursday.count(year(d), d) + (year(d).getDay() === 4), p, 2);
|
|
1948
2000
|
}
|
|
1949
2001
|
|
|
1950
2002
|
function formatWeekdayNumberSunday(d) {
|
|
@@ -1952,7 +2004,7 @@ function formatWeekdayNumberSunday(d) {
|
|
|
1952
2004
|
}
|
|
1953
2005
|
|
|
1954
2006
|
function formatWeekNumberMonday(d, p) {
|
|
1955
|
-
return pad(monday.count(
|
|
2007
|
+
return pad(monday.count(year(d) - 1, d), p, 2);
|
|
1956
2008
|
}
|
|
1957
2009
|
|
|
1958
2010
|
function formatYear(d, p) {
|
|
@@ -1994,7 +2046,7 @@ function formatUTCHour12(d, p) {
|
|
|
1994
2046
|
}
|
|
1995
2047
|
|
|
1996
2048
|
function formatUTCDayOfYear(d, p) {
|
|
1997
|
-
return pad(1 + utcDay
|
|
2049
|
+
return pad(1 + utcDay.count(utcYear(d), d), p, 3);
|
|
1998
2050
|
}
|
|
1999
2051
|
|
|
2000
2052
|
function formatUTCMilliseconds(d, p) {
|
|
@@ -2023,7 +2075,7 @@ function formatUTCWeekdayNumberMonday(d) {
|
|
|
2023
2075
|
}
|
|
2024
2076
|
|
|
2025
2077
|
function formatUTCWeekNumberSunday(d, p) {
|
|
2026
|
-
return pad(utcSunday.count(utcYear
|
|
2078
|
+
return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);
|
|
2027
2079
|
}
|
|
2028
2080
|
|
|
2029
2081
|
function UTCdISO(d) {
|
|
@@ -2033,7 +2085,7 @@ function UTCdISO(d) {
|
|
|
2033
2085
|
|
|
2034
2086
|
function formatUTCWeekNumberISO(d, p) {
|
|
2035
2087
|
d = UTCdISO(d);
|
|
2036
|
-
return pad(utcThursday.count(utcYear
|
|
2088
|
+
return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);
|
|
2037
2089
|
}
|
|
2038
2090
|
|
|
2039
2091
|
function formatUTCWeekdayNumberSunday(d) {
|
|
@@ -2041,7 +2093,7 @@ function formatUTCWeekdayNumberSunday(d) {
|
|
|
2041
2093
|
}
|
|
2042
2094
|
|
|
2043
2095
|
function formatUTCWeekNumberMonday(d, p) {
|
|
2044
|
-
return pad(utcMonday.count(utcYear
|
|
2096
|
+
return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);
|
|
2045
2097
|
}
|
|
2046
2098
|
|
|
2047
2099
|
function formatUTCYear(d, p) {
|
|
@@ -2080,6 +2132,8 @@ function formatUnixTimestampSeconds(d) {
|
|
|
2080
2132
|
}
|
|
2081
2133
|
|
|
2082
2134
|
var locale;
|
|
2135
|
+
var timeFormat;
|
|
2136
|
+
var timeParse;
|
|
2083
2137
|
var utcFormat;
|
|
2084
2138
|
var utcParse;
|
|
2085
2139
|
|
|
@@ -2096,6 +2150,8 @@ defaultLocale({
|
|
|
2096
2150
|
|
|
2097
2151
|
function defaultLocale(definition) {
|
|
2098
2152
|
locale = formatLocale(definition);
|
|
2153
|
+
timeFormat = locale.format;
|
|
2154
|
+
timeParse = locale.parse;
|
|
2099
2155
|
utcFormat = locale.utcFormat;
|
|
2100
2156
|
utcParse = locale.utcParse;
|
|
2101
2157
|
return locale;
|
|
@@ -2193,12 +2249,12 @@ var GraphCache = /** @class */ (function (_super) {
|
|
|
2193
2249
|
}
|
|
2194
2250
|
return GraphCache;
|
|
2195
2251
|
}(Cache));
|
|
2196
|
-
function walkXmlJson
|
|
2252
|
+
function walkXmlJson(node, callback, stack) {
|
|
2197
2253
|
stack = stack || [];
|
|
2198
2254
|
stack.push(node);
|
|
2199
2255
|
callback(node.name, node.$, node.children(), stack);
|
|
2200
2256
|
node.children().forEach(function (childNode) {
|
|
2201
|
-
walkXmlJson
|
|
2257
|
+
walkXmlJson(childNode, callback, stack);
|
|
2202
2258
|
});
|
|
2203
2259
|
stack.pop();
|
|
2204
2260
|
}
|
|
@@ -2247,7 +2303,7 @@ function createXGMMLGraph(id, graphs) {
|
|
|
2247
2303
|
return item._["id"];
|
|
2248
2304
|
});
|
|
2249
2305
|
var stack = [graph.root];
|
|
2250
|
-
walkXmlJson
|
|
2306
|
+
walkXmlJson(graphs, function (tag, attributes, childNodes, _stack) {
|
|
2251
2307
|
var top = stack[stack.length - 1];
|
|
2252
2308
|
switch (tag) {
|
|
2253
2309
|
case "graph":
|
|
@@ -2322,7 +2378,7 @@ function createGraph(scopes) {
|
|
|
2322
2378
|
scopeStack.pop();
|
|
2323
2379
|
}
|
|
2324
2380
|
if (!scopeParent1) {
|
|
2325
|
-
console.log("Missing SG:Parent ("
|
|
2381
|
+
console.log("Missing SG:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2326
2382
|
}
|
|
2327
2383
|
else {
|
|
2328
2384
|
var parent1 = scopeParent1;
|
|
@@ -2332,7 +2388,7 @@ function createGraph(scopes) {
|
|
|
2332
2388
|
case "activity":
|
|
2333
2389
|
var scopeParent2 = subgraphs[scope.parentScope()];
|
|
2334
2390
|
if (!scopeParent2) {
|
|
2335
|
-
console.log("Missing A:Parent ("
|
|
2391
|
+
console.log("Missing A:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2336
2392
|
}
|
|
2337
2393
|
else {
|
|
2338
2394
|
vertices[scope.ScopeName] = scopeParent2.createVertex(scope);
|
|
@@ -2344,7 +2400,7 @@ function createGraph(scopes) {
|
|
|
2344
2400
|
case "function":
|
|
2345
2401
|
var scopeParent3 = vertices[scope.parentScope()];
|
|
2346
2402
|
if (!scopeParent3) {
|
|
2347
|
-
console.log("Missing F:Parent ("
|
|
2403
|
+
console.log("Missing F:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2348
2404
|
}
|
|
2349
2405
|
else {
|
|
2350
2406
|
scopeParent3._.children().push(scope);
|
|
@@ -2356,7 +2412,7 @@ function createGraph(scopes) {
|
|
|
2356
2412
|
var scope = edges[id];
|
|
2357
2413
|
var scopeParent3 = subgraphs[scope.parentScope()];
|
|
2358
2414
|
if (!scopeParent3) {
|
|
2359
|
-
console.log("Missing E:Parent ("
|
|
2415
|
+
console.log("Missing E:Parent (" + scope.Id + "): " + scope.parentScope());
|
|
2360
2416
|
}
|
|
2361
2417
|
else {
|
|
2362
2418
|
var parent3 = scopeParent3;
|
|
@@ -2368,7 +2424,7 @@ function createGraph(scopes) {
|
|
|
2368
2424
|
catch (e) {
|
|
2369
2425
|
// const sourceIndex = scope.attr("SourceIndex").RawValue;
|
|
2370
2426
|
// const targetIndex = scope.attr("TargetIndex").RawValue;
|
|
2371
|
-
console.log("Invalid Edge: "
|
|
2427
|
+
console.log("Invalid Edge: " + id);
|
|
2372
2428
|
}
|
|
2373
2429
|
}
|
|
2374
2430
|
}
|
|
@@ -2661,7 +2717,7 @@ var GlobalResultCache = /** @class */ (function (_super) {
|
|
|
2661
2717
|
__extends(GlobalResultCache, _super);
|
|
2662
2718
|
function GlobalResultCache() {
|
|
2663
2719
|
return _super.call(this, function (obj) {
|
|
2664
|
-
return
|
|
2720
|
+
return obj.BaseUrl + "-" + obj.Wuid + "-" + obj.ResultName;
|
|
2665
2721
|
}) || this;
|
|
2666
2722
|
}
|
|
2667
2723
|
return GlobalResultCache;
|
|
@@ -3132,21 +3188,21 @@ var BaseScope = /** @class */ (function (_super) {
|
|
|
3132
3188
|
var label = "";
|
|
3133
3189
|
var rows = [];
|
|
3134
3190
|
label = this.Id;
|
|
3135
|
-
rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">"
|
|
3191
|
+
rows.push("<tr><td class=\"key\">ID:</td><td class=\"value\">" + this.Id + "</td></tr>");
|
|
3136
3192
|
if (parentScope) {
|
|
3137
|
-
rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">"
|
|
3193
|
+
rows.push("<tr><td class=\"key\">Parent ID:</td><td class=\"value\">" + parentScope.Id + "</td></tr>");
|
|
3138
3194
|
}
|
|
3139
|
-
rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">"
|
|
3195
|
+
rows.push("<tr><td class=\"key\">Scope:</td><td class=\"value\">" + this.ScopeName + "</td></tr>");
|
|
3140
3196
|
var attrs = this.formattedAttrs();
|
|
3141
3197
|
for (var key in attrs) {
|
|
3142
3198
|
if (key === "Label") {
|
|
3143
3199
|
label = attrs[key];
|
|
3144
3200
|
}
|
|
3145
3201
|
else {
|
|
3146
|
-
rows.push("<tr><td class=\"key\">"
|
|
3202
|
+
rows.push("<tr><td class=\"key\">" + key + "</td><td class=\"value\">" + attrs[key] + "</td></tr>");
|
|
3147
3203
|
}
|
|
3148
3204
|
}
|
|
3149
|
-
return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">"
|
|
3205
|
+
return "<div class=\"eclwatch_WUGraph_Tooltip\" style=\"max-width:480px\">\n <h4 align=\"center\">" + label + "</h4>\n <table>\n " + rows.join("") + "\n </table>\n </div>";
|
|
3150
3206
|
};
|
|
3151
3207
|
return BaseScope;
|
|
3152
3208
|
}(StateObject));
|
|
@@ -3281,12 +3337,12 @@ var Timer = /** @class */ (function (_super) {
|
|
|
3281
3337
|
var formatter = utcFormat("%Y-%m-%dT%H:%M:%S.%LZ");
|
|
3282
3338
|
var parser = utcParse("%Y-%m-%dT%H:%M:%S.%LZ");
|
|
3283
3339
|
var logger$1 = scopedLogger("workunit.ts");
|
|
3284
|
-
var WUStateID = WUStateID
|
|
3340
|
+
var WUStateID$1 = WUStateID;
|
|
3285
3341
|
var WorkunitCache = /** @class */ (function (_super) {
|
|
3286
3342
|
__extends(WorkunitCache, _super);
|
|
3287
3343
|
function WorkunitCache() {
|
|
3288
3344
|
return _super.call(this, function (obj) {
|
|
3289
|
-
return
|
|
3345
|
+
return obj.BaseUrl + "-" + obj.Wuid;
|
|
3290
3346
|
}) || this;
|
|
3291
3347
|
}
|
|
3292
3348
|
return WorkunitCache;
|
|
@@ -3347,12 +3403,12 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
3347
3403
|
configurable: true
|
|
3348
3404
|
});
|
|
3349
3405
|
Object.defineProperty(Workunit.prototype, "StateID", {
|
|
3350
|
-
get: function () { return this.get("StateID", WUStateID
|
|
3406
|
+
get: function () { return this.get("StateID", WUStateID.Unknown); },
|
|
3351
3407
|
enumerable: false,
|
|
3352
3408
|
configurable: true
|
|
3353
3409
|
});
|
|
3354
3410
|
Object.defineProperty(Workunit.prototype, "State", {
|
|
3355
|
-
get: function () { return this.get("State") || WUStateID
|
|
3411
|
+
get: function () { return this.get("State") || WUStateID[this.StateID]; },
|
|
3356
3412
|
enumerable: false,
|
|
3357
3413
|
configurable: true
|
|
3358
3414
|
});
|
|
@@ -3807,7 +3863,7 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
3807
3863
|
Workunit.prototype.clearState = function (wuid) {
|
|
3808
3864
|
this.clear({
|
|
3809
3865
|
Wuid: wuid,
|
|
3810
|
-
StateID: WUStateID.Unknown
|
|
3866
|
+
StateID: WUStateID$1.Unknown
|
|
3811
3867
|
});
|
|
3812
3868
|
};
|
|
3813
3869
|
Workunit.prototype.update = function (request) {
|
|
@@ -3865,47 +3921,47 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
3865
3921
|
};
|
|
3866
3922
|
Workunit.prototype.isComplete = function () {
|
|
3867
3923
|
switch (this.StateID) {
|
|
3868
|
-
case WUStateID.Compiled:
|
|
3924
|
+
case WUStateID$1.Compiled:
|
|
3869
3925
|
return this.ActionEx === "compile" || this._submitAction === WUUpdate.Action.Compile;
|
|
3870
|
-
case WUStateID.Completed:
|
|
3871
|
-
case WUStateID.Failed:
|
|
3872
|
-
case WUStateID.Aborted:
|
|
3873
|
-
case WUStateID.NotFound:
|
|
3926
|
+
case WUStateID$1.Completed:
|
|
3927
|
+
case WUStateID$1.Failed:
|
|
3928
|
+
case WUStateID$1.Aborted:
|
|
3929
|
+
case WUStateID$1.NotFound:
|
|
3874
3930
|
return true;
|
|
3875
3931
|
}
|
|
3876
3932
|
return false;
|
|
3877
3933
|
};
|
|
3878
3934
|
Workunit.prototype.isFailed = function () {
|
|
3879
3935
|
switch (this.StateID) {
|
|
3880
|
-
case WUStateID.Aborted:
|
|
3881
|
-
case WUStateID.Failed:
|
|
3936
|
+
case WUStateID$1.Aborted:
|
|
3937
|
+
case WUStateID$1.Failed:
|
|
3882
3938
|
return true;
|
|
3883
3939
|
}
|
|
3884
3940
|
return false;
|
|
3885
3941
|
};
|
|
3886
3942
|
Workunit.prototype.isDeleted = function () {
|
|
3887
3943
|
switch (this.StateID) {
|
|
3888
|
-
case WUStateID.NotFound:
|
|
3944
|
+
case WUStateID$1.NotFound:
|
|
3889
3945
|
return true;
|
|
3890
3946
|
}
|
|
3891
3947
|
return false;
|
|
3892
3948
|
};
|
|
3893
3949
|
Workunit.prototype.isDebugging = function () {
|
|
3894
3950
|
switch (this.StateID) {
|
|
3895
|
-
case WUStateID.DebugPaused:
|
|
3896
|
-
case WUStateID.DebugRunning:
|
|
3951
|
+
case WUStateID$1.DebugPaused:
|
|
3952
|
+
case WUStateID$1.DebugRunning:
|
|
3897
3953
|
return true;
|
|
3898
3954
|
}
|
|
3899
3955
|
return this._debugMode;
|
|
3900
3956
|
};
|
|
3901
3957
|
Workunit.prototype.isRunning = function () {
|
|
3902
3958
|
switch (this.StateID) {
|
|
3903
|
-
case WUStateID.Compiled:
|
|
3904
|
-
case WUStateID.Running:
|
|
3905
|
-
case WUStateID.Aborting:
|
|
3906
|
-
case WUStateID.Blocked:
|
|
3907
|
-
case WUStateID.DebugPaused:
|
|
3908
|
-
case WUStateID.DebugRunning:
|
|
3959
|
+
case WUStateID$1.Compiled:
|
|
3960
|
+
case WUStateID$1.Running:
|
|
3961
|
+
case WUStateID$1.Aborting:
|
|
3962
|
+
case WUStateID$1.Blocked:
|
|
3963
|
+
case WUStateID$1.DebugPaused:
|
|
3964
|
+
case WUStateID$1.DebugRunning:
|
|
3909
3965
|
return true;
|
|
3910
3966
|
}
|
|
3911
3967
|
return false;
|
|
@@ -4134,6 +4190,9 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
4134
4190
|
case "cnt":
|
|
4135
4191
|
props[scopeProperty.Name] = +scopeProperty.RawValue;
|
|
4136
4192
|
break;
|
|
4193
|
+
case "cost":
|
|
4194
|
+
props[scopeProperty.Name] = +scopeProperty.RawValue / 1000000;
|
|
4195
|
+
break;
|
|
4137
4196
|
case "cpu":
|
|
4138
4197
|
case "skw":
|
|
4139
4198
|
case "node":
|
|
@@ -4382,7 +4441,7 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
4382
4441
|
var wuMissing = e.Exception.some(function (exception) {
|
|
4383
4442
|
if (exception.Code === 20081) {
|
|
4384
4443
|
_this.clearState(_this.Wuid);
|
|
4385
|
-
_this.set("StateID", WUStateID.NotFound);
|
|
4444
|
+
_this.set("StateID", WUStateID$1.NotFound);
|
|
4386
4445
|
return true;
|
|
4387
4446
|
}
|
|
4388
4447
|
return false;
|
|
@@ -4419,7 +4478,7 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
4419
4478
|
var wuMissing = e.Exception.some(function (exception) {
|
|
4420
4479
|
if (exception.Code === 20080) {
|
|
4421
4480
|
_this.clearState(_this.Wuid);
|
|
4422
|
-
_this.set("StateID", WUStateID.NotFound);
|
|
4481
|
+
_this.set("StateID", WUStateID$1.NotFound);
|
|
4423
4482
|
return true;
|
|
4424
4483
|
}
|
|
4425
4484
|
return false;
|
|
@@ -4493,12 +4552,12 @@ var Workunit = /** @class */ (function (_super) {
|
|
|
4493
4552
|
var optsStr = "";
|
|
4494
4553
|
for (var key in opts) {
|
|
4495
4554
|
if (opts.hasOwnProperty(key)) {
|
|
4496
|
-
optsStr += " "
|
|
4555
|
+
optsStr += " " + key + "='" + opts[key] + "'";
|
|
4497
4556
|
}
|
|
4498
4557
|
}
|
|
4499
4558
|
return this.connection.WUCDebug({
|
|
4500
4559
|
Wuid: this.Wuid,
|
|
4501
|
-
Command: "<debug:"
|
|
4560
|
+
Command: "<debug:" + command + " uid='" + this.Wuid + "'" + optsStr + "/>"
|
|
4502
4561
|
}).then(function (response) {
|
|
4503
4562
|
return response;
|
|
4504
4563
|
});
|
|
@@ -4629,7 +4688,7 @@ function getECLDefinition(vertex) {
|
|
|
4629
4688
|
column: +_col
|
|
4630
4689
|
};
|
|
4631
4690
|
}
|
|
4632
|
-
throw new Error("Bad definition: "
|
|
4691
|
+
throw new Error("Bad definition: " + vertex._[ATTR_DEFINITION]);
|
|
4633
4692
|
}
|
|
4634
4693
|
function breakpointLocations(graph, path) {
|
|
4635
4694
|
var retVal = [];
|
|
@@ -4818,12 +4877,12 @@ var LogicalFileCache = /** @class */ (function (_super) {
|
|
|
4818
4877
|
__extends(LogicalFileCache, _super);
|
|
4819
4878
|
function LogicalFileCache() {
|
|
4820
4879
|
return _super.call(this, function (obj) {
|
|
4821
|
-
return
|
|
4880
|
+
return obj.BaseUrl + "-" + obj.Cluster + "-" + obj.Name;
|
|
4822
4881
|
}) || this;
|
|
4823
4882
|
}
|
|
4824
4883
|
return LogicalFileCache;
|
|
4825
4884
|
}(Cache));
|
|
4826
|
-
var _store
|
|
4885
|
+
var _store = new LogicalFileCache();
|
|
4827
4886
|
var LogicalFile = /** @class */ (function (_super) {
|
|
4828
4887
|
__extends(LogicalFile, _super);
|
|
4829
4888
|
function LogicalFile(optsConnection, Cluster, Name) {
|
|
@@ -5106,14 +5165,14 @@ var LogicalFile = /** @class */ (function (_super) {
|
|
|
5106
5165
|
configurable: true
|
|
5107
5166
|
});
|
|
5108
5167
|
LogicalFile.attach = function (optsConnection, Cluster, Name) {
|
|
5109
|
-
var retVal = _store
|
|
5168
|
+
var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Cluster: Cluster, Name: Name }, function () {
|
|
5110
5169
|
return new LogicalFile(optsConnection, Cluster, Name);
|
|
5111
5170
|
});
|
|
5112
5171
|
return retVal;
|
|
5113
5172
|
};
|
|
5114
5173
|
LogicalFile.prototype.filePartsOnCluster = function () {
|
|
5115
5174
|
var _a;
|
|
5116
|
-
return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || [])
|
|
5175
|
+
return __spreadArray([], (((_a = this.DFUFilePartsOnClusters) === null || _a === void 0 ? void 0 : _a.DFUFilePartsOnCluster) || []));
|
|
5117
5176
|
};
|
|
5118
5177
|
LogicalFile.prototype.fileParts = function () {
|
|
5119
5178
|
var _a, _b;
|
|
@@ -5560,12 +5619,12 @@ var StoreCache = /** @class */ (function (_super) {
|
|
|
5560
5619
|
__extends(StoreCache, _super);
|
|
5561
5620
|
function StoreCache() {
|
|
5562
5621
|
return _super.call(this, function (obj) {
|
|
5563
|
-
return
|
|
5622
|
+
return obj.BaseUrl + "-" + obj.Name + ":" + obj.UserSpecific + "-" + obj.Namespace;
|
|
5564
5623
|
}) || this;
|
|
5565
5624
|
}
|
|
5566
5625
|
return StoreCache;
|
|
5567
5626
|
}(Cache));
|
|
5568
|
-
var _store = new StoreCache();
|
|
5627
|
+
var _store$1 = new StoreCache();
|
|
5569
5628
|
var ValueChangedMessage = /** @class */ (function (_super) {
|
|
5570
5629
|
__extends(ValueChangedMessage, _super);
|
|
5571
5630
|
function ValueChangedMessage(key, value, oldValue) {
|
|
@@ -5614,7 +5673,7 @@ var Store = /** @class */ (function () {
|
|
|
5614
5673
|
Store.attach = function (optsConnection, Name, Namespace, UserSpecific) {
|
|
5615
5674
|
if (Name === void 0) { Name = "HPCCApps"; }
|
|
5616
5675
|
if (UserSpecific === void 0) { UserSpecific = true; }
|
|
5617
|
-
var retVal = _store.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
|
|
5676
|
+
var retVal = _store$1.get({ BaseUrl: optsConnection.baseUrl, Name: Name, UserSpecific: UserSpecific, Namespace: Namespace }, function () {
|
|
5618
5677
|
return new Store(optsConnection, Name, Namespace, UserSpecific);
|
|
5619
5678
|
});
|
|
5620
5679
|
return retVal;
|
|
@@ -5638,7 +5697,7 @@ var Store = /** @class */ (function () {
|
|
|
5638
5697
|
_this._dispatch.post(new ValueChangedMessage(key, value, oldValue));
|
|
5639
5698
|
}
|
|
5640
5699
|
}).catch(function (e) {
|
|
5641
|
-
console.error("Store.set(\""
|
|
5700
|
+
console.error("Store.set(\"" + key + "\", \"" + value + "\") failed:", e);
|
|
5642
5701
|
});
|
|
5643
5702
|
};
|
|
5644
5703
|
Store.prototype.get = function (key, broadcast) {
|
|
@@ -5657,7 +5716,7 @@ var Store = /** @class */ (function () {
|
|
|
5657
5716
|
}
|
|
5658
5717
|
return response.Value;
|
|
5659
5718
|
}).catch(function (e) {
|
|
5660
|
-
console.error("Store.get("
|
|
5719
|
+
console.error("Store.get(" + key + ") failed:", e);
|
|
5661
5720
|
return undefined;
|
|
5662
5721
|
});
|
|
5663
5722
|
};
|
|
@@ -5707,7 +5766,7 @@ var Store = /** @class */ (function () {
|
|
|
5707
5766
|
_this._dispatch.post(new ValueChangedMessage(key, undefined, oldValue));
|
|
5708
5767
|
}
|
|
5709
5768
|
}).catch(function (e) {
|
|
5710
|
-
console.error("Store.delete("
|
|
5769
|
+
console.error("Store.delete(" + key + ") failed:", e);
|
|
5711
5770
|
});
|
|
5712
5771
|
};
|
|
5713
5772
|
Store.prototype.monitor = function (callback) {
|
|
@@ -5720,7 +5779,7 @@ var TargetClusterCache = /** @class */ (function (_super) {
|
|
|
5720
5779
|
__extends(TargetClusterCache, _super);
|
|
5721
5780
|
function TargetClusterCache() {
|
|
5722
5781
|
return _super.call(this, function (obj) {
|
|
5723
|
-
return
|
|
5782
|
+
return obj.BaseUrl + "-" + obj.Name;
|
|
5724
5783
|
}) || this;
|
|
5725
5784
|
}
|
|
5726
5785
|
return TargetClusterCache;
|
|
@@ -5819,7 +5878,7 @@ var TargetCluster = /** @class */ (function (_super) {
|
|
|
5819
5878
|
var _this = this;
|
|
5820
5879
|
if (request === void 0) { request = {}; }
|
|
5821
5880
|
return this.machineConnection.GetTargetClusterInfo(__assign({ TargetClusters: {
|
|
5822
|
-
Item: [
|
|
5881
|
+
Item: [this.Type + ":" + this.Name]
|
|
5823
5882
|
} }, request)).then(function (response) {
|
|
5824
5883
|
var retVal = [];
|
|
5825
5884
|
for (var _i = 0, _a = response.TargetClusterInfoList.TargetClusterInfo; _i < _a.length; _i++) {
|
|
@@ -5985,7 +6044,7 @@ var Topology = /** @class */ (function (_super) {
|
|
|
5985
6044
|
}
|
|
5986
6045
|
}
|
|
5987
6046
|
}
|
|
5988
|
-
return
|
|
6047
|
+
return rootProtocol + "//" + ip + ":" + port + "/";
|
|
5989
6048
|
});
|
|
5990
6049
|
};
|
|
5991
6050
|
Topology.prototype.fetchTargetClusters = function () {
|
|
@@ -6051,7 +6110,7 @@ var Topology = /** @class */ (function (_super) {
|
|
|
6051
6110
|
return Topology;
|
|
6052
6111
|
}(StateObject));
|
|
6053
6112
|
|
|
6054
|
-
scopedLogger("clienttools/eclmeta");
|
|
6113
|
+
var logger$2 = scopedLogger("clienttools/eclmeta");
|
|
6055
6114
|
var Attr = /** @class */ (function () {
|
|
6056
6115
|
function Attr(xmlAttr) {
|
|
6057
6116
|
this.__attrs = xmlAttr.$;
|
|
@@ -6083,7 +6142,7 @@ var ECLScope = /** @class */ (function () {
|
|
|
6083
6142
|
if (end === void 0) { end = Number.MAX_VALUE; }
|
|
6084
6143
|
this.name = name;
|
|
6085
6144
|
this.type = type;
|
|
6086
|
-
this.sourcePath =
|
|
6145
|
+
this.sourcePath = normalize(sourcePath);
|
|
6087
6146
|
this.line = +line - 1;
|
|
6088
6147
|
this.start = +start;
|
|
6089
6148
|
this.body = +body;
|
|
@@ -6208,7 +6267,7 @@ var Source = /** @class */ (function (_super) {
|
|
|
6208
6267
|
fakeNode.appendAttribute("ref", nameParts.join("."));
|
|
6209
6268
|
_this.imports = __spreadArray([
|
|
6210
6269
|
new Import(fakeNode)
|
|
6211
|
-
], _this.parseImports(xmlSource.children("Import"))
|
|
6270
|
+
], _this.parseImports(xmlSource.children("Import")));
|
|
6212
6271
|
return _this;
|
|
6213
6272
|
}
|
|
6214
6273
|
Source.prototype.parseImports = function (imports) {
|
|
@@ -6236,10 +6295,10 @@ var Source = /** @class */ (function (_super) {
|
|
|
6236
6295
|
};
|
|
6237
6296
|
return Source;
|
|
6238
6297
|
}(ECLScope));
|
|
6239
|
-
var isHiddenDirectory = function (source) { return
|
|
6240
|
-
var isDirectory = function (source) { return
|
|
6241
|
-
var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(
|
|
6242
|
-
var modAttrs = function (source) { return
|
|
6298
|
+
var isHiddenDirectory = function (source) { return basename(source).indexOf(".") === 0; };
|
|
6299
|
+
var isDirectory = function (source) { return lstatSync(source).isDirectory() && !isHiddenDirectory(source); };
|
|
6300
|
+
var isEcl = function (source) { return [".ecl", ".ecllib"].indexOf(extname(source).toLowerCase()) >= 0; };
|
|
6301
|
+
var modAttrs = function (source) { return readdirSync(source).map(function (name) { return join$1(source, name); }).filter(function (path) { return isDirectory(path) || isEcl(path); }); };
|
|
6243
6302
|
var File = /** @class */ (function (_super) {
|
|
6244
6303
|
__extends(File, _super);
|
|
6245
6304
|
function File(name, sourcePath) {
|
|
@@ -6258,7 +6317,7 @@ var Folder = /** @class */ (function (_super) {
|
|
|
6258
6317
|
Folder.prototype.suggestions = function () {
|
|
6259
6318
|
return modAttrs(this.sourcePath).map(function (folder) {
|
|
6260
6319
|
return {
|
|
6261
|
-
name:
|
|
6320
|
+
name: basename(folder, ".ecl"),
|
|
6262
6321
|
type: "folder"
|
|
6263
6322
|
};
|
|
6264
6323
|
});
|
|
@@ -6285,7 +6344,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6285
6344
|
}).then(function (paths) {
|
|
6286
6345
|
for (var _i = 0, _a = ["ECLCC_ECLLIBRARY_PATH", "ECLCC_PLUGIN_PATH"]; _i < _a.length; _i++) {
|
|
6287
6346
|
var knownFolder = _a[_i];
|
|
6288
|
-
if (paths[knownFolder] &&
|
|
6347
|
+
if (paths[knownFolder] && existsSync(paths[knownFolder])) {
|
|
6289
6348
|
_this.walkChildFolders(paths[knownFolder], paths[knownFolder]);
|
|
6290
6349
|
}
|
|
6291
6350
|
}
|
|
@@ -6293,7 +6352,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6293
6352
|
});
|
|
6294
6353
|
};
|
|
6295
6354
|
Workspace.prototype.primeWorkspace = function () {
|
|
6296
|
-
if (
|
|
6355
|
+
if (existsSync(this._workspacePath)) {
|
|
6297
6356
|
this.visitFolder(this._workspacePath, this._workspacePath);
|
|
6298
6357
|
}
|
|
6299
6358
|
};
|
|
@@ -6311,16 +6370,16 @@ var Workspace = /** @class */ (function () {
|
|
|
6311
6370
|
};
|
|
6312
6371
|
Workspace.prototype.visitFile = function (filePath, refPath, force) {
|
|
6313
6372
|
if (force === void 0) { force = false; }
|
|
6314
|
-
var filePathInfo =
|
|
6315
|
-
var pathNoExt =
|
|
6316
|
-
var name =
|
|
6373
|
+
var filePathInfo = parse(filePath);
|
|
6374
|
+
var pathNoExt = join$1(filePathInfo.dir, filePathInfo.name);
|
|
6375
|
+
var name = relative(refPath, pathNoExt).split(sep).join(".");
|
|
6317
6376
|
if (force || !this._test.has(name)) {
|
|
6318
6377
|
this._test.set(name, new File("", filePath));
|
|
6319
6378
|
}
|
|
6320
6379
|
};
|
|
6321
6380
|
Workspace.prototype.visitFolder = function (folderPath, refPath, force) {
|
|
6322
6381
|
if (force === void 0) { force = false; }
|
|
6323
|
-
var name =
|
|
6382
|
+
var name = relative(refPath, folderPath).split(sep).join(".");
|
|
6324
6383
|
if (force || !this._test.has(name)) {
|
|
6325
6384
|
this._test.set(name, new Folder(name, folderPath));
|
|
6326
6385
|
this.walkChildFolders(folderPath, refPath, force);
|
|
@@ -6331,7 +6390,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6331
6390
|
if (removeDupID && parentStack[parentStack.length - 1] === nameStack[0]) {
|
|
6332
6391
|
nameStack.shift();
|
|
6333
6392
|
}
|
|
6334
|
-
var stack = __spreadArray(__spreadArray([], parentStack
|
|
6393
|
+
var stack = __spreadArray(__spreadArray([], parentStack), nameStack);
|
|
6335
6394
|
var qid = stack.join(".");
|
|
6336
6395
|
return {
|
|
6337
6396
|
stack: stack,
|
|
@@ -6380,10 +6439,10 @@ var Workspace = /** @class */ (function () {
|
|
|
6380
6439
|
if (depth > 1) {
|
|
6381
6440
|
var sourcePath = source.sourcePath;
|
|
6382
6441
|
while (depth > 1) {
|
|
6383
|
-
sourcePath =
|
|
6442
|
+
sourcePath = dirname(sourcePath);
|
|
6384
6443
|
--depth;
|
|
6385
6444
|
}
|
|
6386
|
-
this.visitFolder(sourcePath,
|
|
6445
|
+
this.visitFolder(sourcePath, dirname(sourcePath));
|
|
6387
6446
|
}
|
|
6388
6447
|
}
|
|
6389
6448
|
this.walkSource(source);
|
|
@@ -6394,7 +6453,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6394
6453
|
var metaParser = new MetaParser();
|
|
6395
6454
|
metaParser.parse(metaXML);
|
|
6396
6455
|
this.parseSources(metaParser.sources);
|
|
6397
|
-
return metaParser.sources.map(function (source) { return
|
|
6456
|
+
return metaParser.sources.map(function (source) { return normalize(source.$.sourcePath); });
|
|
6398
6457
|
};
|
|
6399
6458
|
Workspace.prototype.resolveQualifiedID = function (filePath, qualifiedID, charOffset) {
|
|
6400
6459
|
var retVal;
|
|
@@ -6422,7 +6481,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6422
6481
|
retVal = this._test.get(realQID).scope;
|
|
6423
6482
|
}
|
|
6424
6483
|
if (!retVal) {
|
|
6425
|
-
realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")
|
|
6484
|
+
realQID = __spreadArray(__spreadArray([], eclSource.name.split(".")), qualifiedIDParts).join(".");
|
|
6426
6485
|
if (this._test.has(realQID)) {
|
|
6427
6486
|
retVal = this._test.get(realQID).scope;
|
|
6428
6487
|
}
|
|
@@ -6441,7 +6500,7 @@ var Workspace = /** @class */ (function () {
|
|
|
6441
6500
|
}());
|
|
6442
6501
|
var workspaceCache = new Dictionary();
|
|
6443
6502
|
function attachWorkspace(_workspacePath, eclccPath) {
|
|
6444
|
-
var workspacePath =
|
|
6503
|
+
var workspacePath = normalize(_workspacePath);
|
|
6445
6504
|
if (!workspaceCache.has(workspacePath)) {
|
|
6446
6505
|
var workspace = new Workspace(workspacePath, eclccPath);
|
|
6447
6506
|
workspaceCache.set(workspacePath, workspace);
|
|
@@ -6479,8 +6538,8 @@ var MetaParser = /** @class */ (function (_super) {
|
|
|
6479
6538
|
return MetaParser;
|
|
6480
6539
|
}(SAXStackParser));
|
|
6481
6540
|
|
|
6482
|
-
var logger = scopedLogger("clienttools/eclcc");
|
|
6483
|
-
var exeExt =
|
|
6541
|
+
var logger$3 = scopedLogger("clienttools/eclcc");
|
|
6542
|
+
var exeExt = type() === "Windows_NT" ? ".exe" : "";
|
|
6484
6543
|
function tidyCRLF(inStr) {
|
|
6485
6544
|
return inStr.split("\r\n").join("\n").split("\r").join("\n");
|
|
6486
6545
|
}
|
|
@@ -6526,7 +6585,7 @@ var Version = /** @class */ (function () {
|
|
|
6526
6585
|
return this.postfix.localeCompare(other.postfix);
|
|
6527
6586
|
};
|
|
6528
6587
|
Version.prototype.toString = function () {
|
|
6529
|
-
return
|
|
6588
|
+
return this.prefix + "_" + this.major + "." + this.minor + "." + this.patch + "-" + this.postfix;
|
|
6530
6589
|
};
|
|
6531
6590
|
return Version;
|
|
6532
6591
|
}());
|
|
@@ -6575,7 +6634,7 @@ var EclccErrors = /** @class */ (function (_super) {
|
|
|
6575
6634
|
function EclccErrors(stdErr, checked) {
|
|
6576
6635
|
var _this = _super.call(this, checked) || this;
|
|
6577
6636
|
if (stdErr && stdErr.length) {
|
|
6578
|
-
for (var _i = 0, _a = stdErr.split(
|
|
6637
|
+
for (var _i = 0, _a = stdErr.split(EOL); _i < _a.length; _i++) {
|
|
6579
6638
|
var errLine = _a[_i];
|
|
6580
6639
|
var match = /([a-zA-Z]:\\(?:[- \w\.\d]+\\)*(?:[- \w\.\d]+)?|(?:\/[\w\.\-]+)+)\((\d*),(\d*)\) ?: ?(error|warning|info) C(\d*) ?: ?(.*)/.exec(errLine);
|
|
6581
6640
|
if (match) {
|
|
@@ -6596,7 +6655,7 @@ var EclccErrors = /** @class */ (function (_super) {
|
|
|
6596
6655
|
if (match) {
|
|
6597
6656
|
continue;
|
|
6598
6657
|
}
|
|
6599
|
-
logger.warning("parseECLErrors: Unable to parse \""
|
|
6658
|
+
logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
|
|
6600
6659
|
_this.errOther.push(errLine);
|
|
6601
6660
|
}
|
|
6602
6661
|
}
|
|
@@ -6609,16 +6668,16 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6609
6668
|
__extends(EnvchkErrors, _super);
|
|
6610
6669
|
function EnvchkErrors(filePath, stdErr, checked) {
|
|
6611
6670
|
var _this = _super.call(this, checked) || this;
|
|
6612
|
-
var content =
|
|
6671
|
+
var content = readFileSync(filePath, "utf8");
|
|
6613
6672
|
content = content.replace(/\r\n/g, "\n");
|
|
6614
6673
|
_this._lines = content.split("\n");
|
|
6615
6674
|
if (stdErr && stdErr.length) {
|
|
6616
|
-
for (var _i = 0, _a = stdErr.split(
|
|
6675
|
+
for (var _i = 0, _a = stdErr.split(EOL); _i < _a.length; _i++) {
|
|
6617
6676
|
var errLine = _a[_i];
|
|
6618
6677
|
var match = /(Warning|Error) : Path\=(\S*?)(\[\S*\])? Message\=(.*)/.exec(errLine);
|
|
6619
6678
|
if (match) {
|
|
6620
6679
|
var severity = match[1], _path = match[2], _attr = match[3], _msg = match[4];
|
|
6621
|
-
var msg =
|
|
6680
|
+
var msg = _path + " " + (_attr ? _attr : "") + ": " + _msg;
|
|
6622
6681
|
var _b = _this.locate(_path), line = _b[0], col = _b[1];
|
|
6623
6682
|
_this.errWarn.push({ filePath: filePath, line: line, col: col, msg: msg, severity: severity });
|
|
6624
6683
|
continue;
|
|
@@ -6626,7 +6685,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6626
6685
|
if (match) {
|
|
6627
6686
|
continue;
|
|
6628
6687
|
}
|
|
6629
|
-
logger.warning("parseECLErrors: Unable to parse \""
|
|
6688
|
+
logger$3.warning("parseECLErrors: Unable to parse \"" + errLine + "\"");
|
|
6630
6689
|
_this.errOther.push(errLine);
|
|
6631
6690
|
}
|
|
6632
6691
|
}
|
|
@@ -6657,7 +6716,7 @@ var EnvchkErrors = /** @class */ (function (_super) {
|
|
|
6657
6716
|
};
|
|
6658
6717
|
return EnvchkErrors;
|
|
6659
6718
|
}(Errors));
|
|
6660
|
-
function walkXmlJson(node, callback, stack) {
|
|
6719
|
+
function walkXmlJson$1(node, callback, stack) {
|
|
6661
6720
|
stack = stack || [];
|
|
6662
6721
|
stack.push(node);
|
|
6663
6722
|
for (var key in node) {
|
|
@@ -6666,11 +6725,11 @@ function walkXmlJson(node, callback, stack) {
|
|
|
6666
6725
|
callback(key, childNode, stack);
|
|
6667
6726
|
if (childNode instanceof Array) {
|
|
6668
6727
|
childNode.forEach(function (child) {
|
|
6669
|
-
walkXmlJson(child, callback, stack);
|
|
6728
|
+
walkXmlJson$1(child, callback, stack);
|
|
6670
6729
|
});
|
|
6671
6730
|
}
|
|
6672
6731
|
else if (typeof childNode === "object") {
|
|
6673
|
-
walkXmlJson(childNode, callback, stack);
|
|
6732
|
+
walkXmlJson$1(childNode, callback, stack);
|
|
6674
6733
|
}
|
|
6675
6734
|
}
|
|
6676
6735
|
}
|
|
@@ -6684,7 +6743,7 @@ var LocalWorkunit = /** @class */ (function () {
|
|
|
6684
6743
|
var retVal = [];
|
|
6685
6744
|
if (exists("W_LOCAL.Graphs", this.jsonWU)) {
|
|
6686
6745
|
var id_1 = "";
|
|
6687
|
-
walkXmlJson(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
|
|
6746
|
+
walkXmlJson$1(this.jsonWU.W_LOCAL.Graphs, function (key, item, _stack) {
|
|
6688
6747
|
if (key === "$" && item.id) {
|
|
6689
6748
|
id_1 = item.id;
|
|
6690
6749
|
}
|
|
@@ -6713,10 +6772,10 @@ var ClientTools = /** @class */ (function () {
|
|
|
6713
6772
|
if (args === void 0) { args = []; }
|
|
6714
6773
|
this._paths = {};
|
|
6715
6774
|
this.eclccPath = eclccPath;
|
|
6716
|
-
this.binPath =
|
|
6717
|
-
this.envchkPath =
|
|
6718
|
-
this.eclBundlePath =
|
|
6719
|
-
this.cwd =
|
|
6775
|
+
this.binPath = dirname(this.eclccPath);
|
|
6776
|
+
this.envchkPath = join$1(this.binPath, "envchk" + exeExt);
|
|
6777
|
+
this.eclBundlePath = join$1(this.binPath, "ecl-bundle" + exeExt);
|
|
6778
|
+
this.cwd = normalize(cwd || this.binPath);
|
|
6720
6779
|
this.includeFolders = includeFolders;
|
|
6721
6780
|
this._legacyMode = legacyMode;
|
|
6722
6781
|
this._args = args;
|
|
@@ -6729,7 +6788,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6729
6788
|
};
|
|
6730
6789
|
ClientTools.prototype.exists = function (filePath) {
|
|
6731
6790
|
try {
|
|
6732
|
-
|
|
6791
|
+
accessSync(filePath);
|
|
6733
6792
|
return true;
|
|
6734
6793
|
}
|
|
6735
6794
|
catch (e) { }
|
|
@@ -6737,12 +6796,12 @@ var ClientTools = /** @class */ (function () {
|
|
|
6737
6796
|
};
|
|
6738
6797
|
ClientTools.prototype.args = function (additionalItems) {
|
|
6739
6798
|
if (additionalItems === void 0) { additionalItems = []; }
|
|
6740
|
-
var retVal = __spreadArray([], this._args
|
|
6799
|
+
var retVal = __spreadArray([], this._args);
|
|
6741
6800
|
if (this._legacyMode) {
|
|
6742
6801
|
retVal.push("-legacy");
|
|
6743
6802
|
}
|
|
6744
6803
|
return retVal.concat(this.includeFolders.map(function (includePath) {
|
|
6745
|
-
return "-I" +
|
|
6804
|
+
return "-I" + normalize(includePath);
|
|
6746
6805
|
})).concat(additionalItems);
|
|
6747
6806
|
};
|
|
6748
6807
|
ClientTools.prototype.version = function () {
|
|
@@ -6750,7 +6809,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6750
6809
|
if (this._version) {
|
|
6751
6810
|
return Promise.resolve(this._version);
|
|
6752
6811
|
}
|
|
6753
|
-
return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find "
|
|
6812
|
+
return this.execFile(this.eclccPath, this.binPath, this.args(["--version"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6754
6813
|
_this._version = new Version(response.stdout);
|
|
6755
6814
|
return _this._version;
|
|
6756
6815
|
});
|
|
@@ -6760,7 +6819,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6760
6819
|
};
|
|
6761
6820
|
ClientTools.prototype.paths = function () {
|
|
6762
6821
|
var _this = this;
|
|
6763
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find "
|
|
6822
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(["-showpaths"]), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6764
6823
|
if (response && response.stdout && response.stdout.length) {
|
|
6765
6824
|
var paths = response.stdout.split(/\r?\n/);
|
|
6766
6825
|
for (var _i = 0, paths_1 = paths; _i < paths_1.length; _i++) {
|
|
@@ -6776,20 +6835,20 @@ var ClientTools = /** @class */ (function () {
|
|
|
6776
6835
|
};
|
|
6777
6836
|
ClientTools.prototype.loadXMLDoc = function (filePath, removeOnRead) {
|
|
6778
6837
|
return new Promise(function (resolve, _reject) {
|
|
6779
|
-
var fileData =
|
|
6838
|
+
var fileData = readFileSync(filePath, "ascii");
|
|
6780
6839
|
var retVal = xml2json(fileData);
|
|
6781
6840
|
if (removeOnRead) {
|
|
6782
|
-
|
|
6841
|
+
unlink(filePath, function (err) { });
|
|
6783
6842
|
}
|
|
6784
6843
|
resolve(retVal);
|
|
6785
6844
|
});
|
|
6786
6845
|
};
|
|
6787
6846
|
ClientTools.prototype.createWU = function (filename) {
|
|
6788
6847
|
var _this = this;
|
|
6789
|
-
var tmpName =
|
|
6848
|
+
var tmpName = tmpNameSync({ prefix: "eclcc-wu-tmp", postfix: "" });
|
|
6790
6849
|
var args = ["-o" + tmpName, "-wu"].concat([filename]);
|
|
6791
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find "
|
|
6792
|
-
var xmlPath =
|
|
6850
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (_response) {
|
|
6851
|
+
var xmlPath = normalize(tmpName + ".xml");
|
|
6793
6852
|
var contentPromise = _this.exists(xmlPath) ? _this.loadXMLDoc(xmlPath, true) : Promise.resolve({});
|
|
6794
6853
|
return contentPromise.then(function (content) {
|
|
6795
6854
|
return new LocalWorkunit(content);
|
|
@@ -6798,7 +6857,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6798
6857
|
};
|
|
6799
6858
|
ClientTools.prototype.createArchive = function (filename) {
|
|
6800
6859
|
var args = ["-E"].concat([filename]);
|
|
6801
|
-
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find "
|
|
6860
|
+
return this.execFile(this.eclccPath, this.cwd, this.args(args), "eclcc", "Cannot find " + this.eclccPath).then(function (response) {
|
|
6802
6861
|
return {
|
|
6803
6862
|
content: response.stdout,
|
|
6804
6863
|
err: new EclccErrors(response.stderr, [])
|
|
@@ -6811,7 +6870,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6811
6870
|
ClientTools.prototype.fetchMeta = function (filePath) {
|
|
6812
6871
|
return Promise.all([
|
|
6813
6872
|
attachWorkspace(this.cwd),
|
|
6814
|
-
this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find "
|
|
6873
|
+
this.execFile(this.eclccPath, this.cwd, this.args(["-M", filePath]), "eclcc", "Cannot find " + this.eclccPath)
|
|
6815
6874
|
]).then(function (_a) {
|
|
6816
6875
|
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6817
6876
|
if (execFileResponse && execFileResponse.stdout && execFileResponse.stdout.length) {
|
|
@@ -6824,7 +6883,7 @@ var ClientTools = /** @class */ (function () {
|
|
|
6824
6883
|
if (args === void 0) { args = ["-syntax"]; }
|
|
6825
6884
|
return Promise.all([
|
|
6826
6885
|
attachWorkspace(this.cwd),
|
|
6827
|
-
this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args
|
|
6886
|
+
this.execFile(this.eclccPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), ["-M", filePath])), "eclcc", "Cannot find " + this.eclccPath)
|
|
6828
6887
|
]).then(function (_a) {
|
|
6829
6888
|
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6830
6889
|
var checked = [];
|
|
@@ -6838,9 +6897,9 @@ var ClientTools = /** @class */ (function () {
|
|
|
6838
6897
|
if (args === void 0) { args = []; }
|
|
6839
6898
|
return Promise.all([
|
|
6840
6899
|
attachWorkspace(this.cwd),
|
|
6841
|
-
this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args
|
|
6900
|
+
this.execFile(this.envchkPath, this.cwd, this.args(__spreadArray(__spreadArray([], args), [filePath])), "envchk", "Cannot find " + this.envchkPath)
|
|
6842
6901
|
]).then(function (_a) {
|
|
6843
|
-
_a[0]
|
|
6902
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6844
6903
|
return new EnvchkErrors(filePath, execFileResponse ? execFileResponse.stderr : "", []);
|
|
6845
6904
|
});
|
|
6846
6905
|
};
|
|
@@ -6863,13 +6922,13 @@ var ClientTools = /** @class */ (function () {
|
|
|
6863
6922
|
}
|
|
6864
6923
|
return retVal;
|
|
6865
6924
|
}),
|
|
6866
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find "
|
|
6925
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["list"]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6867
6926
|
.then(function (installedText) {
|
|
6868
6927
|
return tidyCRLF(installedText.stdout).split("\n");
|
|
6869
6928
|
}).then(function (installedItems) {
|
|
6870
6929
|
var allProps = {};
|
|
6871
6930
|
return Promise.all(installedItems.filter(function (ii) { return !!ii; }).map(function (ii) {
|
|
6872
|
-
return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find "
|
|
6931
|
+
return _this.execFile(_this.eclBundlePath, _this.cwd, _this.args(["info", ii]), "ecl-bundle", "Cannot find " + _this.eclBundlePath)
|
|
6873
6932
|
.then(function (infoText) {
|
|
6874
6933
|
return tidyCRLF(infoText.stdout).split("\n");
|
|
6875
6934
|
}).then(function (info) {
|
|
@@ -6909,25 +6968,25 @@ var ClientTools = /** @class */ (function () {
|
|
|
6909
6968
|
ClientTools.prototype.bundleInstall = function (bundleUrl) {
|
|
6910
6969
|
return Promise.all([
|
|
6911
6970
|
attachWorkspace(this.cwd),
|
|
6912
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find "
|
|
6971
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["install", bundleUrl]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6913
6972
|
]).then(function (_a) {
|
|
6914
|
-
_a[0]
|
|
6973
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6915
6974
|
return execFileResponse;
|
|
6916
6975
|
});
|
|
6917
6976
|
};
|
|
6918
6977
|
ClientTools.prototype.bundleUninstall = function (name) {
|
|
6919
6978
|
return Promise.all([
|
|
6920
6979
|
attachWorkspace(this.cwd),
|
|
6921
|
-
this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find "
|
|
6980
|
+
this.execFile(this.eclBundlePath, this.cwd, this.args(["uninstall", name]), "ecl-bundle", "Cannot find " + this.eclBundlePath)
|
|
6922
6981
|
]).then(function (_a) {
|
|
6923
|
-
_a[0]
|
|
6982
|
+
var metaWorkspace = _a[0], execFileResponse = _a[1];
|
|
6924
6983
|
return execFileResponse;
|
|
6925
6984
|
});
|
|
6926
6985
|
};
|
|
6927
6986
|
ClientTools.prototype.execFile = function (cmd, cwd, args, _toolName, _notFoundError) {
|
|
6928
6987
|
return new Promise(function (resolve, _reject) {
|
|
6929
|
-
logger.debug(
|
|
6930
|
-
var child =
|
|
6988
|
+
logger$3.debug(cmd + " " + args.join(" "));
|
|
6989
|
+
var child = spawn(cmd, args, { cwd: cwd });
|
|
6931
6990
|
var stdOut = "";
|
|
6932
6991
|
var stdErr = "";
|
|
6933
6992
|
child.stdout.on("data", function (data) {
|
|
@@ -6949,18 +7008,18 @@ var ClientTools = /** @class */ (function () {
|
|
|
6949
7008
|
}());
|
|
6950
7009
|
function locateClientToolsInFolder(rootFolder, clientTools) {
|
|
6951
7010
|
if (rootFolder) {
|
|
6952
|
-
var hpccSystemsFolder_1 =
|
|
6953
|
-
if (
|
|
6954
|
-
if (
|
|
6955
|
-
var eclccPath =
|
|
6956
|
-
if (
|
|
7011
|
+
var hpccSystemsFolder_1 = join$1(rootFolder, "HPCCSystems");
|
|
7012
|
+
if (existsSync(hpccSystemsFolder_1) && statSync(hpccSystemsFolder_1).isDirectory()) {
|
|
7013
|
+
if (type() !== "Windows_NT") {
|
|
7014
|
+
var eclccPath = join$1(hpccSystemsFolder_1, "bin", "eclcc");
|
|
7015
|
+
if (existsSync(eclccPath)) {
|
|
6957
7016
|
clientTools.push(new ClientTools(eclccPath));
|
|
6958
7017
|
}
|
|
6959
7018
|
}
|
|
6960
|
-
|
|
6961
|
-
var eclccPath =
|
|
6962
|
-
if (
|
|
6963
|
-
var name_1 =
|
|
7019
|
+
readdirSync(hpccSystemsFolder_1).forEach(function (versionFolder) {
|
|
7020
|
+
var eclccPath = join$1(hpccSystemsFolder_1, versionFolder, "clienttools", "bin", "eclcc" + exeExt);
|
|
7021
|
+
if (existsSync(eclccPath)) {
|
|
7022
|
+
var name_1 = basename(versionFolder);
|
|
6964
7023
|
var version = new Version(name_1);
|
|
6965
7024
|
if (version.exists()) {
|
|
6966
7025
|
clientTools.push(new ClientTools(eclccPath));
|
|
@@ -6975,7 +7034,7 @@ function locateAllClientTools() {
|
|
|
6975
7034
|
if (allClientToolsCache)
|
|
6976
7035
|
return allClientToolsCache;
|
|
6977
7036
|
var clientTools = [];
|
|
6978
|
-
switch (
|
|
7037
|
+
switch (type()) {
|
|
6979
7038
|
case "Windows_NT":
|
|
6980
7039
|
var rootFolder86 = process.env["ProgramFiles(x86)"] || "";
|
|
6981
7040
|
if (rootFolder86) {
|
|
@@ -7004,9 +7063,9 @@ function locateAllClientTools() {
|
|
|
7004
7063
|
}
|
|
7005
7064
|
var eclccPathMsg = "";
|
|
7006
7065
|
function logEclccPath(eclccPath) {
|
|
7007
|
-
var msg = "Using eclccPath setting: "
|
|
7066
|
+
var msg = "Using eclccPath setting: " + eclccPath;
|
|
7008
7067
|
if (eclccPathMsg !== msg) {
|
|
7009
|
-
logger.info(msg);
|
|
7068
|
+
logger$3.info(msg);
|
|
7010
7069
|
eclccPathMsg = msg;
|
|
7011
7070
|
}
|
|
7012
7071
|
}
|
|
@@ -7017,7 +7076,7 @@ function locateClientTools(overridePath, build, cwd, includeFolders, legacyMode,
|
|
|
7017
7076
|
if (includeFolders === void 0) { includeFolders = []; }
|
|
7018
7077
|
if (legacyMode === void 0) { legacyMode = false; }
|
|
7019
7078
|
if (args === void 0) { args = []; }
|
|
7020
|
-
if (overridePath &&
|
|
7079
|
+
if (overridePath && existsSync(overridePath)) {
|
|
7021
7080
|
logEclccPath(overridePath);
|
|
7022
7081
|
return Promise.resolve(new ClientTools(overridePath, cwd, includeFolders, legacyMode, args));
|
|
7023
7082
|
}
|
|
@@ -7054,28 +7113,28 @@ if (typeof root.fetch === "undefined") {
|
|
|
7054
7113
|
if (typeof root.AbortController === "undefined") {
|
|
7055
7114
|
root.AbortController = AbortController;
|
|
7056
7115
|
}
|
|
7057
|
-
root.fetch.__rejectUnauthorizedAgent = new
|
|
7116
|
+
root.fetch.__rejectUnauthorizedAgent = new Agent({
|
|
7058
7117
|
rejectUnauthorized: false
|
|
7059
7118
|
});
|
|
7060
7119
|
var globalCA = "";
|
|
7061
|
-
if (
|
|
7062
|
-
if (Array.isArray(
|
|
7063
|
-
if (typeof
|
|
7064
|
-
globalCA =
|
|
7120
|
+
if (globalAgent.options.ca !== undefined) {
|
|
7121
|
+
if (Array.isArray(globalAgent.options.ca) && globalAgent.options.ca.length) {
|
|
7122
|
+
if (typeof globalAgent.options.ca[0] === "string") {
|
|
7123
|
+
globalCA = globalAgent.options.ca.join("\n");
|
|
7065
7124
|
}
|
|
7066
|
-
else if (
|
|
7067
|
-
globalCA =
|
|
7125
|
+
else if (globalAgent.options.ca[0] instanceof Buffer) {
|
|
7126
|
+
globalCA = globalAgent.options.ca.map(function (row) { return row.toString(); }).join("\n");
|
|
7068
7127
|
}
|
|
7069
7128
|
}
|
|
7070
|
-
else if (typeof
|
|
7071
|
-
globalCA =
|
|
7129
|
+
else if (typeof globalAgent.options.ca === "string") {
|
|
7130
|
+
globalCA = globalAgent.options.ca;
|
|
7072
7131
|
}
|
|
7073
|
-
else if (
|
|
7074
|
-
globalCA =
|
|
7132
|
+
else if (globalAgent.options.ca instanceof Buffer) {
|
|
7133
|
+
globalCA = globalAgent.options.ca.toString();
|
|
7075
7134
|
}
|
|
7076
7135
|
globalCA += "\n";
|
|
7077
7136
|
}
|
|
7078
|
-
root.fetch.__trustwaveAgent = new
|
|
7137
|
+
root.fetch.__trustwaveAgent = new Agent({
|
|
7079
7138
|
ca: globalCA + trustwave
|
|
7080
7139
|
});
|
|
7081
7140
|
if (typeof root.btoa === "undefined") {
|
|
@@ -7084,5 +7143,5 @@ if (typeof root.btoa === "undefined") {
|
|
|
7084
7143
|
};
|
|
7085
7144
|
}
|
|
7086
7145
|
|
|
7087
|
-
export { AccountService, Activity, Attr, Attribute, BUILD_VERSION, BaseScope, ClientTools, CodesignService, Connection, DFUService, DFUXRefService, Definition, ECLGraph, ECLScope, ESPConnection, ESPExceptions, EclService, EclccErrors, EnvchkErrors, Errors, Field, File, Folder, GlobalResultCache, GraphCache, Import, LocalWorkunit, LogicalFile, LogicalFileCache, Machine, MachineCache, MachineService, PKG_NAME, PKG_VERSION, Query, Resource, Result, ResultCache, SMCService, Scope, ScopeEdge, ScopeGraph, ScopeSubgraph, ScopeVertex, Service, Source, SourceFile, Store, StoreCache, StoreService, TargetCluster, TargetClusterCache, Timer, Topology, TopologyCache, TopologyService, TpLogicalClusterQuery, ValueChangedMessage, Version, WUStateID
|
|
7146
|
+
export { AccountService, Activity, Attr, Attribute, BUILD_VERSION, BaseScope, ClientTools, CodesignService, Connection, DFUService, DFUXRefService, Definition, ECLGraph, ECLScope, ESPConnection, ESPExceptions, EclService, EclccErrors, EnvchkErrors, Errors, Field, File, Folder, GlobalResultCache, GraphCache, Import, LocalWorkunit, LogaccessServiceEx, LogicalFile, LogicalFileCache, Machine, MachineCache, MachineService, PKG_NAME, PKG_VERSION, Query, Resource, ResourcesServiceEx, Result, ResultCache, SMCService, Scope, ScopeEdge, ScopeGraph, ScopeSubgraph, ScopeVertex, Service, Source, SourceFile, Store, StoreCache, StoreService, TargetCluster, TargetClusterCache, Timer, Topology, TopologyCache, TopologyService, TpLogicalClusterQuery, ValueChangedMessage, Version, WUStateID, WUUpdate, Workspace, Workunit, WorkunitCache, WorkunitsService, XGMMLEdge, XGMMLGraph, XGMMLSubgraph, XGMMLVertex, XSDNode, XSDSchema, XSDSimpleType, XSDXMLNode, attachWorkspace, createConnection, createGraph, createXGMMLGraph, defaultTargetCluster, deserializeResponse, get, hookSend, instanceOfIConnection, instanceOfIOptions, isArray, isECLResult, isExceptions, isWUInfoWorkunit, isWUQueryECLWorkunit, jsonp, locateAllClientTools, locateClientTools, parseXSD, parseXSD2, post, qualifiedIDBoundary, send, serializeRequest, setTransportFactory, targetClusters, walkXmlJson$1 as walkXmlJson };
|
|
7088
7147
|
//# sourceMappingURL=index.es6.js.map
|