UNPKG

@microsoft/windows-admin-center-sdk

Version:

Microsoft - Windows Admin Center Shell

406 lines (403 loc) 21.2 kB
import { map } from 'rxjs/operators'; import { EnvironmentModuleToolState } from '../../manifest/environment-modules'; import { SharedCache } from '../shared-cache'; import { ToolInventory } from './tool-inventory'; /** * Tool Inventory cache class. */ export class ToolInventoryCache extends SharedCache { appContext; static uniqueId = '@msft-sme/shell:toolInventory'; static uniqueVersion = 0; /** * Initializes a new instance of the ToolInventoryCache class. * * @param appContext the app context. * @param options the option of shared cache. */ constructor(appContext, options) { super(ToolInventoryCache.uniqueId, ToolInventoryCache.uniqueVersion, (params) => this.dataInstanceId(params), (instance) => this.dataSerialize(instance), (serialized) => this.dataDeserialize(serialized), (params) => this.dataQuery(params), options); this.appContext = appContext; } /** * Defines how to collect the tool inventory data. * * @param params the server inventory query params. * @return the Observable of ServerInventory data. */ dataQuery(params) { const psSession = this.appContext.powerShell.createSession(params.name, null, params.requestOptions); return this.appContext.powerShell.run(psSession, params.command ? { command: params.command, script: params.script, module: params.module } : params.script) .pipe(map((data) => { const inventory = new ToolInventory(params.name); if (data && data.results && data.results.length > 0) { const result = data.results[0]; inventory.name = params.name; inventory.id = params.id; switch (result.state) { case EnvironmentModuleToolState[EnvironmentModuleToolState.Available]: inventory.state = EnvironmentModuleToolState.Available; break; case EnvironmentModuleToolState[EnvironmentModuleToolState.NotConfigured]: inventory.state = EnvironmentModuleToolState.NotConfigured; break; case EnvironmentModuleToolState[EnvironmentModuleToolState.NotSupported]: default: inventory.state = EnvironmentModuleToolState.NotSupported; break; } inventory.message = result.message; inventory.properties = []; const properties = result.properties; if (properties) { for (const pair of properties) { inventory.properties.push(pair); } } } return inventory; })); } /** * Defines how to identify the cache entry by params. * * @param params the tool inventory query params. * @return the id string. */ dataInstanceId(params) { return `${params.name}:${params.id}`; } /** * Defines how to deserialize the class object from seralized data. * * @param serialized the serialized string; */ dataDeserialize(serialized) { const inventory = JSON.parse(serialized); return new ToolInventory(inventory.name, inventory); } /** * Defines how to serialize the class object to seralized data. * * @param instance the class instance. */ dataSerialize(instance) { // automatically stripped out class related data. return JSON.stringify(instance); } } //# sourceMappingURL=tool-inventory-cache.js.map // SIG // Begin signature block // SIG // MIIoNgYJKoZIhvcNAQcCoIIoJzCCKCMCAQExDzANBglg // SIG // hkgBZQMEAgEFADB3BgorBgEEAYI3AgEEoGkwZzAyBgor // SIG // BgEEAYI3AgEeMCQCAQEEEBDgyQbOONQRoqMAEEvTUJAC // SIG // AQACAQACAQACAQACAQAwMTANBglghkgBZQMEAgEFAAQg // SIG // 4e253CFviUKW/Kf8zi5PvSwf+36V+mXNh2z4m8B+MESg // SIG // gg2FMIIGAzCCA+ugAwIBAgITMwAABAO91ZVdDzsYrQAA // SIG // AAAEAzANBgkqhkiG9w0BAQsFADB+MQswCQYDVQQGEwJV // SIG // UzETMBEGA1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMH // SIG // UmVkbW9uZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBv // SIG // cmF0aW9uMSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBT // SIG // aWduaW5nIFBDQSAyMDExMB4XDTI0MDkxMjIwMTExM1oX // SIG // DTI1MDkxMTIwMTExM1owdDELMAkGA1UEBhMCVVMxEzAR // SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v // SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv // SIG // bjEeMBwGA1UEAxMVTWljcm9zb2Z0IENvcnBvcmF0aW9u // SIG // MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA // SIG // n3RnXcCDp20WFMoNNzt4s9fV12T5roRJlv+bshDfvJoM // SIG // ZfhyRnixgUfGAbrRlS1St/EcXFXD2MhRkF3CnMYIoeMO // SIG // MuMyYtxr2sC2B5bDRMUMM/r9I4GP2nowUthCWKFIS1RP // SIG // lM0YoVfKKMaH7bJii29sW+waBUulAKN2c+Gn5znaiOxR // SIG // qIu4OL8f9DCHYpME5+Teek3SL95sH5GQhZq7CqTdM0fB // SIG // w/FmLLx98SpBu7v8XapoTz6jJpyNozhcP/59mi/Fu4tT // SIG // 2rI2vD50Vx/0GlR9DNZ2py/iyPU7DG/3p1n1zluuRp3u // SIG // XKjDfVKH7xDbXcMBJid22a3CPbuC2QJLowIDAQABo4IB // SIG // gjCCAX4wHwYDVR0lBBgwFgYKKwYBBAGCN0wIAQYIKwYB // SIG // BQUHAwMwHQYDVR0OBBYEFOpuKgJKc+OuNYitoqxfHlrE // SIG // gXAZMFQGA1UdEQRNMEukSTBHMS0wKwYDVQQLEyRNaWNy // SIG // b3NvZnQgSXJlbGFuZCBPcGVyYXRpb25zIExpbWl0ZWQx // SIG // FjAUBgNVBAUTDTIzMDAxMis1MDI5MjYwHwYDVR0jBBgw // SIG // FoAUSG5k5VAF04KqFzc3IrVtqMp1ApUwVAYDVR0fBE0w // SIG // SzBJoEegRYZDaHR0cDovL3d3dy5taWNyb3NvZnQuY29t // SIG // L3BraW9wcy9jcmwvTWljQ29kU2lnUENBMjAxMV8yMDEx // SIG // LTA3LTA4LmNybDBhBggrBgEFBQcBAQRVMFMwUQYIKwYB // SIG // BQUHMAKGRWh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9w // SIG // a2lvcHMvY2VydHMvTWljQ29kU2lnUENBMjAxMV8yMDEx // SIG // LTA3LTA4LmNydDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3 // SIG // DQEBCwUAA4ICAQBRaP+hOC1+dSKhbqCr1LIvNEMrRiOQ // SIG // EkPc7D6QWtM+/IbrYiXesNeeCZHCMf3+6xASuDYQ+AyB // SIG // TX0YlXSOxGnBLOzgEukBxezbfnhUTTk7YB2/TxMUcuBC // SIG // P45zMM0CVTaJE8btloB6/3wbFrOhvQHCILx41jTd6kUq // SIG // 4bIBHah3NG0Q1H/FCCwHRGTjAbyiwq5n/pCTxLz5XYCu // SIG // 4RTvy/ZJnFXuuwZynowyju90muegCToTOwpHgE6yRcTv // SIG // Ri16LKCr68Ab8p8QINfFvqWoEwJCXn853rlkpp4k7qzw // SIG // lBNiZ71uw2pbzjQzrRtNbCFQAfmoTtsHFD2tmZvQIg1Q // SIG // VkzM/V1KCjHL54ItqKm7Ay4WyvqWK0VIEaTbdMtbMWbF // SIG // zq2hkRfJTNnFr7RJFeVC/k0DNaab+bpwx5FvCUvkJ3z2 // SIG // wfHWVUckZjEOGmP7cecefrF+rHpif/xW4nJUjMUiPsyD // SIG // btY2Hq3VMLgovj+qe0pkJgpYQzPukPm7RNhbabFNFvq+ // SIG // kXWBX/z/pyuo9qLZfTb697Vi7vll5s/DBjPtfMpyfpWG // SIG // 0phVnAI+0mM4gH09LCMJUERZMgu9bbCGVIQR7cT5YhlL // SIG // t+tpSDtC6XtAzq4PJbKZxFjpB5wk+SRJ1gm87olbfEV9 // SIG // SFdO7iL3jWbjgVi1Qs1iYxBmvh4WhLWr48uouzCCB3ow // SIG // ggVioAMCAQICCmEOkNIAAAAAAAMwDQYJKoZIhvcNAQEL // SIG // BQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNo // SIG // aW5ndG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQK // SIG // ExVNaWNyb3NvZnQgQ29ycG9yYXRpb24xMjAwBgNVBAMT // SIG // KU1pY3Jvc29mdCBSb290IENlcnRpZmljYXRlIEF1dGhv // SIG // cml0eSAyMDExMB4XDTExMDcwODIwNTkwOVoXDTI2MDcw // SIG // ODIxMDkwOVowfjELMAkGA1UEBhMCVVMxEzARBgNVBAgT // SIG // Cldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1vbmQxHjAc // SIG // BgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlvbjEoMCYG // SIG // A1UEAxMfTWljcm9zb2Z0IENvZGUgU2lnbmluZyBQQ0Eg // SIG // MjAxMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC // SIG // ggIBAKvw+nIQHC6t2G6qghBNNLrytlghn0IbKmvpWlCq // SIG // uAY4GgRJun/DDB7dN2vGEtgL8DjCmQawyDnVARQxQtOJ // SIG // DXlkh36UYCRsr55JnOloXtLfm1OyCizDr9mpK656Ca/X // SIG // llnKYBoF6WZ26DJSJhIv56sIUM+zRLdd2MQuA3WraPPL // SIG // bfM6XKEW9Ea64DhkrG5kNXimoGMPLdNAk/jj3gcN1Vx5 // SIG // pUkp5w2+oBN3vpQ97/vjK1oQH01WKKJ6cuASOrdJXtjt // SIG // 7UORg9l7snuGG9k+sYxd6IlPhBryoS9Z5JA7La4zWMW3 // SIG // Pv4y07MDPbGyr5I4ftKdgCz1TlaRITUlwzluZH9TupwP // SIG // rRkjhMv0ugOGjfdf8NBSv4yUh7zAIXQlXxgotswnKDgl // SIG // mDlKNs98sZKuHCOnqWbsYR9q4ShJnV+I4iVd0yFLPlLE // SIG // tVc/JAPw0XpbL9Uj43BdD1FGd7P4AOG8rAKCX9vAFbO9 // SIG // G9RVS+c5oQ/pI0m8GLhEfEXkwcNyeuBy5yTfv0aZxe/C // SIG // HFfbg43sTUkwp6uO3+xbn6/83bBm4sGXgXvt1u1L50kp // SIG // pxMopqd9Z4DmimJ4X7IvhNdXnFy/dygo8e1twyiPLI9A // SIG // N0/B4YVEicQJTMXUpUMvdJX3bvh4IFgsE11glZo+TzOE // SIG // 2rCIF96eTvSWsLxGoGyY0uDWiIwLAgMBAAGjggHtMIIB // SIG // 6TAQBgkrBgEEAYI3FQEEAwIBADAdBgNVHQ4EFgQUSG5k // SIG // 5VAF04KqFzc3IrVtqMp1ApUwGQYJKwYBBAGCNxQCBAwe // SIG // CgBTAHUAYgBDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB // SIG // /wQFMAMBAf8wHwYDVR0jBBgwFoAUci06AjGQQ7kUBU7h // SIG // 6qfHMdEjiTQwWgYDVR0fBFMwUTBPoE2gS4ZJaHR0cDov // SIG // L2NybC5taWNyb3NvZnQuY29tL3BraS9jcmwvcHJvZHVj // SIG // dHMvTWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNy // SIG // bDBeBggrBgEFBQcBAQRSMFAwTgYIKwYBBQUHMAKGQmh0 // SIG // dHA6Ly93d3cubWljcm9zb2Z0LmNvbS9wa2kvY2VydHMv // SIG // TWljUm9vQ2VyQXV0MjAxMV8yMDExXzAzXzIyLmNydDCB // SIG // nwYDVR0gBIGXMIGUMIGRBgkrBgEEAYI3LgMwgYMwPwYI // SIG // KwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNv // SIG // bS9wa2lvcHMvZG9jcy9wcmltYXJ5Y3BzLmh0bTBABggr // SIG // BgEFBQcCAjA0HjIgHQBMAGUAZwBhAGwAXwBwAG8AbABp // SIG // AGMAeQBfAHMAdABhAHQAZQBtAGUAbgB0AC4gHTANBgkq // SIG // hkiG9w0BAQsFAAOCAgEAZ/KGpZjgVHkaLtPYdGcimwuW // SIG // EeFjkplCln3SeQyQwWVfLiw++MNy0W2D/r4/6ArKO79H // SIG // qaPzadtjvyI1pZddZYSQfYtGUFXYDJJ80hpLHPM8QotS // SIG // 0LD9a+M+By4pm+Y9G6XUtR13lDni6WTJRD14eiPzE32m // SIG // kHSDjfTLJgJGKsKKELukqQUMm+1o+mgulaAqPyprWElj // SIG // HwlpblqYluSD9MCP80Yr3vw70L01724lruWvJ+3Q3fMO // SIG // r5kol5hNDj0L8giJ1h/DMhji8MUtzluetEk5CsYKwsat // SIG // ruWy2dsViFFFWDgycScaf7H0J/jeLDogaZiyWYlobm+n // SIG // t3TDQAUGpgEqKD6CPxNNZgvAs0314Y9/HG8VfUWnduVA // SIG // KmWjw11SYobDHWM2l4bf2vP48hahmifhzaWX0O5dY0Hj // SIG // Wwechz4GdwbRBrF1HxS+YWG18NzGGwS+30HHDiju3mUv // SIG // 7Jf2oVyW2ADWoUa9WfOXpQlLSBCZgB/QACnFsZulP0V3 // SIG // HjXG0qKin3p6IvpIlR+r+0cjgPWe+L9rt0uX4ut1eBrs // SIG // 6jeZeRhL/9azI2h15q/6/IvrC4DqaTuv/DDtBEyO3991 // SIG // bWORPdGdVk5Pv4BXIqF4ETIheu9BCrE/+6jMpF3BoYib // SIG // V3FWTkhFwELJm3ZbCoBIa/15n8G9bW1qyVJzEw16UM0x // SIG // ghoJMIIaBQIBATCBlTB+MQswCQYDVQQGEwJVUzETMBEG // SIG // A1UECBMKV2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9u // SIG // ZDEeMBwGA1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9u // SIG // MSgwJgYDVQQDEx9NaWNyb3NvZnQgQ29kZSBTaWduaW5n // SIG // IFBDQSAyMDExAhMzAAAEA73VlV0POxitAAAAAAQDMA0G // SIG // CWCGSAFlAwQCAQUAoIGuMBkGCSqGSIb3DQEJAzEMBgor // SIG // BgEEAYI3AgEEMBwGCisGAQQBgjcCAQsxDjAMBgorBgEE // SIG // AYI3AgEVMC8GCSqGSIb3DQEJBDEiBCAGmyguZbgiQ2pS // SIG // 5jai9kUqDvyjmsZPLj8m2DLAdJKFPzBCBgorBgEEAYI3 // SIG // AgEMMTQwMqAUgBIATQBpAGMAcgBvAHMAbwBmAHShGoAY // SIG // aHR0cDovL3d3dy5taWNyb3NvZnQuY29tMA0GCSqGSIb3 // SIG // DQEBAQUABIIBAGEqaAjgbIR8VETUZ7nP5FC5owq+aojw // SIG // +vmBefAaAjTqzxv5RuXugJE7aAfCSL/9WfkAwec7r/GR // SIG // seTJsd2pDYiHuVMJY3qy1qPOz7UK8KgsPD8ZI6Z5+uK0 // SIG // 1ObuHsZBt1X/l/NCllEDns5To6xKL60ZDeFsdNuwHxPg // SIG // ceufBJ6hNYp0a5xPOcCmthNnP11O8TQYoiSTr4fTFJIz // SIG // NMeFwz7PkZAyhrkEeLFZpmTTiu+TzmvCCifzcx7GZxb4 // SIG // IqcEcH9CDJ65yS4sqP4Rfw3XTQVZ8VfzTuUcMPubuPJI // SIG // 5Kjnlw+a69oIo7Lk/0lyvJ8mOEQFQ00UjrSrkhLsZqzW // SIG // hiOhgheTMIIXjwYKKwYBBAGCNwMDATGCF38wghd7Bgkq // SIG // hkiG9w0BBwKgghdsMIIXaAIBAzEPMA0GCWCGSAFlAwQC // SIG // AQUAMIIBUQYLKoZIhvcNAQkQAQSgggFABIIBPDCCATgC // SIG // AQEGCisGAQQBhFkKAwEwMTANBglghkgBZQMEAgEFAAQg // SIG // XEVwekaItUCvOx+8UxiqhILfFspUGdAc4FHJo3iu+3EC // SIG // Bmet45UxzhgSMjAyNTAyMjAxNTI4NDAuOTFaMASAAgH0 // SIG // oIHRpIHOMIHLMQswCQYDVQQGEwJVUzETMBEGA1UECBMK // SIG // V2FzaGluZ3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwG // SIG // A1UEChMVTWljcm9zb2Z0IENvcnBvcmF0aW9uMSUwIwYD // SIG // VQQLExxNaWNyb3NvZnQgQW1lcmljYSBPcGVyYXRpb25z // SIG // MScwJQYDVQQLEx5uU2hpZWxkIFRTUyBFU046OTIwMC0w // SIG // NUUwLUQ5NDcxJTAjBgNVBAMTHE1pY3Jvc29mdCBUaW1l // SIG // LVN0YW1wIFNlcnZpY2WgghHqMIIHIDCCBQigAwIBAgIT // SIG // MwAAAecujy+TC08b6QABAAAB5zANBgkqhkiG9w0BAQsF // SIG // ADB8MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGlu // SIG // Z3RvbjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMV // SIG // TWljcm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1N // SIG // aWNyb3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMDAeFw0y // SIG // MzEyMDYxODQ1MTlaFw0yNTAzMDUxODQ1MTlaMIHLMQsw // SIG // CQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3RvbjEQ // SIG // MA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWljcm9z // SIG // b2Z0IENvcnBvcmF0aW9uMSUwIwYDVQQLExxNaWNyb3Nv // SIG // ZnQgQW1lcmljYSBPcGVyYXRpb25zMScwJQYDVQQLEx5u // SIG // U2hpZWxkIFRTUyBFU046OTIwMC0wNUUwLUQ5NDcxJTAj // SIG // BgNVBAMTHE1pY3Jvc29mdCBUaW1lLVN0YW1wIFNlcnZp // SIG // Y2UwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC // SIG // AQDCV58v4IuQ659XPM1DtaWMv9/HRUC5kdiEF89YBP6/ // SIG // Rn7kjqMkZ5ESemf5Eli4CLtQVSefRpF1j7S5LLKisMWO // SIG // GRaLcaVbGTfcmI1vMRJ1tzMwCNIoCq/vy8WH8QdV1B/A // SIG // b5sK+Q9yIvzGw47TfXPE8RlrauwK/e+nWnwMt060akEZ // SIG // iJJz1Vh1LhSYKaiP9Z23EZmGETCWigkKbcuAnhvh3yrM // SIG // a89uBfaeHQZEHGQqdskM48EBcWSWdpiSSBiAxyhHUkbk // SIG // nl9PPztB/SUxzRZjUzWHg9bf1mqZ0cIiAWC0EjK7ONhl // SIG // QfKSRHVLKLNPpl3/+UL4Xjc0Yvdqc88gOLUr/84T9/xK // SIG // 5r82ulvRp2A8/ar9cG4W7650uKaAxRAmgL4hKgIX5/0a // SIG // IAsbyqJOa6OIGSF9a+DfXl1LpQPNKR792scF7tjD5Wqw // SIG // IuifS9YUiHMvRLjjKk0SSCV/mpXC0BoPkk5asfxrrJbC // SIG // sJePHSOEblpJzRmzaP6OMXwRcrb7TXFQOsTkKuqkWvvY // SIG // IPvVzC68UM+MskLPld1eqdOOMK7Sbbf2tGSZf3+iOwWQ // SIG // McWXB9gw5gK3AIYK08WkJJuyzPqfitgubdRCmYr9CVsN // SIG // OuW+wHDYGhciJDF2LkrjkFUjUcXSIJd9f2ssYitZ9Cur // SIG // GV74BQcfrxjvk1L8jvtN7mulIwIDAQABo4IBSTCCAUUw // SIG // HQYDVR0OBBYEFM/+4JiAnzY4dpEf/Zlrh1K73o9YMB8G // SIG // A1UdIwQYMBaAFJ+nFV0AXmJdg/Tl0mWnG1M1GelyMF8G // SIG // A1UdHwRYMFYwVKBSoFCGTmh0dHA6Ly93d3cubWljcm9z // SIG // b2Z0LmNvbS9wa2lvcHMvY3JsL01pY3Jvc29mdCUyMFRp // SIG // bWUtU3RhbXAlMjBQQ0ElMjAyMDEwKDEpLmNybDBsBggr // SIG // BgEFBQcBAQRgMF4wXAYIKwYBBQUHMAKGUGh0dHA6Ly93 // SIG // d3cubWljcm9zb2Z0LmNvbS9wa2lvcHMvY2VydHMvTWlj // SIG // cm9zb2Z0JTIwVGltZS1TdGFtcCUyMFBDQSUyMDIwMTAo // SIG // MSkuY3J0MAwGA1UdEwEB/wQCMAAwFgYDVR0lAQH/BAww // SIG // CgYIKwYBBQUHAwgwDgYDVR0PAQH/BAQDAgeAMA0GCSqG // SIG // SIb3DQEBCwUAA4ICAQB0ofDbk+llWi1cC6nsfie5Jtp0 // SIG // 9o6b6ARCpvtDPq2KFP+hi+UNNP7LGciKuckqXCmBTFIh // SIG // fBeGSxvk6ycokdQr3815pEOaYWTnHvQ0+8hKy86r1F4r // SIG // fBu4oHB5cTy08T4ohrG/OYG/B/gNnz0Ol6v7u/qEjz48 // SIG // zXZ6ZlxKGyZwKmKZWaBd2DYEwzKpdLkBxs6A6enWZR0j // SIG // Y+q5FdbV45ghGTKgSr5ECAOnLD4njJwfjIq0mRZWwDZQ // SIG // oXtJSaVHSu2lHQL3YHEFikunbUTJfNfBDLL7Gv+sTmRi // SIG // DZky5OAxoLG2gaTfuiFbfpmSfPcgl5COUzfMQnzpKfX6 // SIG // +FkI0QQNvuPpWsDU8sR+uni2VmDo7rmqJrom4ihgVNdL // SIG // aMfNUqvBL5ZiSK1zmaELBJ9a+YOjE5pmSarW5sGbn7iV // SIG // kF2W9JQIOH6tGWLFJS5Hs36zahkoHh8iD963LeGjZqkF // SIG // usKaUW72yMj/yxTeGEDOoIr35kwXxr1Uu+zkur2y+FuN // SIG // Y0oZjppzp95AW1lehP0xaO+oBV1XfvaCur/B5PVAp2xz // SIG // rosMEUcAwpJpio+VYfIufGj7meXcGQYWA8Umr8K6Auo+ // SIG // Jlj8IeFS6lSvKhqQpmdBzAMGqPOQKt1Ow3ZXxehK7vAi // SIG // im3ZiALlM0K546k0sZrxdZPgpmz7O8w9gHLuyZAQezCC // SIG // B3EwggVZoAMCAQICEzMAAAAVxedrngKbSZkAAAAAABUw // SIG // DQYJKoZIhvcNAQELBQAwgYgxCzAJBgNVBAYTAlVTMRMw // SIG // EQYDVQQIEwpXYXNoaW5ndG9uMRAwDgYDVQQHEwdSZWRt // SIG // b25kMR4wHAYDVQQKExVNaWNyb3NvZnQgQ29ycG9yYXRp // SIG // b24xMjAwBgNVBAMTKU1pY3Jvc29mdCBSb290IENlcnRp // SIG // ZmljYXRlIEF1dGhvcml0eSAyMDEwMB4XDTIxMDkzMDE4 // SIG // MjIyNVoXDTMwMDkzMDE4MzIyNVowfDELMAkGA1UEBhMC // SIG // VVMxEzARBgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcT // SIG // B1JlZG1vbmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jw // SIG // b3JhdGlvbjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUt // SIG // U3RhbXAgUENBIDIwMTAwggIiMA0GCSqGSIb3DQEBAQUA // SIG // A4ICDwAwggIKAoICAQDk4aZM57RyIQt5osvXJHm9DtWC // SIG // 0/3unAcH0qlsTnXIyjVX9gF/bErg4r25PhdgM/9cT8dm // SIG // 95VTcVrifkpa/rg2Z4VGIwy1jRPPdzLAEBjoYH1qUoNE // SIG // t6aORmsHFPPFdvWGUNzBRMhxXFExN6AKOG6N7dcP2CZT // SIG // fDlhAnrEqv1yaa8dq6z2Nr41JmTamDu6GnszrYBbfowQ // SIG // HJ1S/rboYiXcag/PXfT+jlPP1uyFVk3v3byNpOORj7I5 // SIG // LFGc6XBpDco2LXCOMcg1KL3jtIckw+DJj361VI/c+gVV // SIG // mG1oO5pGve2krnopN6zL64NF50ZuyjLVwIYwXE8s4mKy // SIG // zbnijYjklqwBSru+cakXW2dg3viSkR4dPf0gz3N9QZpG // SIG // dc3EXzTdEonW/aUgfX782Z5F37ZyL9t9X4C626p+Nuw2 // SIG // TPYrbqgSUei/BQOj0XOmTTd0lBw0gg/wEPK3Rxjtp+iZ // SIG // fD9M269ewvPV2HM9Q07BMzlMjgK8QmguEOqEUUbi0b1q // SIG // GFphAXPKZ6Je1yh2AuIzGHLXpyDwwvoSCtdjbwzJNmSL // SIG // W6CmgyFdXzB0kZSU2LlQ+QuJYfM2BjUYhEfb3BvR/bLU // SIG // HMVr9lxSUV0S2yW6r1AFemzFER1y7435UsSFF5PAPBXb // SIG // GjfHCBUYP3irRbb1Hode2o+eFnJpxq57t7c+auIurQID // SIG // AQABo4IB3TCCAdkwEgYJKwYBBAGCNxUBBAUCAwEAATAj // SIG // BgkrBgEEAYI3FQIEFgQUKqdS/mTEmr6CkTxGNSnPEP8v // SIG // BO4wHQYDVR0OBBYEFJ+nFV0AXmJdg/Tl0mWnG1M1Gely // SIG // MFwGA1UdIARVMFMwUQYMKwYBBAGCN0yDfQEBMEEwPwYI // SIG // KwYBBQUHAgEWM2h0dHA6Ly93d3cubWljcm9zb2Z0LmNv // SIG // bS9wa2lvcHMvRG9jcy9SZXBvc2l0b3J5Lmh0bTATBgNV // SIG // HSUEDDAKBggrBgEFBQcDCDAZBgkrBgEEAYI3FAIEDB4K // SIG // AFMAdQBiAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ // SIG // BAUwAwEB/zAfBgNVHSMEGDAWgBTV9lbLj+iiXGJo0T2U // SIG // kFvXzpoYxDBWBgNVHR8ETzBNMEugSaBHhkVodHRwOi8v // SIG // Y3JsLm1pY3Jvc29mdC5jb20vcGtpL2NybC9wcm9kdWN0 // SIG // cy9NaWNSb29DZXJBdXRfMjAxMC0wNi0yMy5jcmwwWgYI // SIG // KwYBBQUHAQEETjBMMEoGCCsGAQUFBzAChj5odHRwOi8v // SIG // d3d3Lm1pY3Jvc29mdC5jb20vcGtpL2NlcnRzL01pY1Jv // SIG // b0NlckF1dF8yMDEwLTA2LTIzLmNydDANBgkqhkiG9w0B // SIG // AQsFAAOCAgEAnVV9/Cqt4SwfZwExJFvhnnJL/Klv6lwU // SIG // tj5OR2R4sQaTlz0xM7U518JxNj/aZGx80HU5bbsPMeTC // SIG // j/ts0aGUGCLu6WZnOlNN3Zi6th542DYunKmCVgADsAW+ // SIG // iehp4LoJ7nvfam++Kctu2D9IdQHZGN5tggz1bSNU5HhT // SIG // dSRXud2f8449xvNo32X2pFaq95W2KFUn0CS9QKC/GbYS // SIG // EhFdPSfgQJY4rPf5KYnDvBewVIVCs/wMnosZiefwC2qB // SIG // woEZQhlSdYo2wh3DYXMuLGt7bj8sCXgU6ZGyqVvfSaN0 // SIG // DLzskYDSPeZKPmY7T7uG+jIa2Zb0j/aRAfbOxnT99kxy // SIG // bxCrdTDFNLB62FD+CljdQDzHVG2dY3RILLFORy3BFARx // SIG // v2T5JL5zbcqOCb2zAVdJVGTZc9d/HltEAY5aGZFrDZ+k // SIG // KNxnGSgkujhLmm77IVRrakURR6nxt67I6IleT53S0Ex2 // SIG // tVdUCbFpAUR+fKFhbHP+CrvsQWY9af3LwUFJfn6Tvsv4 // SIG // O+S3Fb+0zj6lMVGEvL8CwYKiexcdFYmNcP7ntdAoGokL // SIG // jzbaukz5m/8K6TT4JDVnK+ANuOaMmdbhIurwJ0I9JZTm // SIG // dHRbatGePu1+oDEzfbzL6Xu/OHBE0ZDxyKs6ijoIYn/Z // SIG // cGNTTY3ugm2lBRDBcQZqELQdVTNYs6FwZvKhggNNMIIC // SIG // NQIBATCB+aGB0aSBzjCByzELMAkGA1UEBhMCVVMxEzAR // SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v // SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv // SIG // bjElMCMGA1UECxMcTWljcm9zb2Z0IEFtZXJpY2EgT3Bl // SIG // cmF0aW9uczEnMCUGA1UECxMeblNoaWVsZCBUU1MgRVNO // SIG // OjkyMDAtMDVFMC1EOTQ3MSUwIwYDVQQDExxNaWNyb3Nv // SIG // ZnQgVGltZS1TdGFtcCBTZXJ2aWNloiMKAQEwBwYFKw4D // SIG // AhoDFQCzcgTnGasSwe/dru+cPe1NF/vwQ6CBgzCBgKR+ // SIG // MHwxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpXYXNoaW5n // SIG // dG9uMRAwDgYDVQQHEwdSZWRtb25kMR4wHAYDVQQKExVN // SIG // aWNyb3NvZnQgQ29ycG9yYXRpb24xJjAkBgNVBAMTHU1p // SIG // Y3Jvc29mdCBUaW1lLVN0YW1wIFBDQSAyMDEwMA0GCSqG // SIG // SIb3DQEBCwUAAgUA62GcAzAiGA8yMDI1MDIyMDEyMTgx // SIG // MVoYDzIwMjUwMjIxMTIxODExWjB0MDoGCisGAQQBhFkK // SIG // BAExLDAqMAoCBQDrYZwDAgEAMAcCAQACAhJVMAcCAQAC // SIG // AhMvMAoCBQDrYu2DAgEAMDYGCisGAQQBhFkKBAIxKDAm // SIG // MAwGCisGAQQBhFkKAwKgCjAIAgEAAgMHoSChCjAIAgEA // SIG // AgMBhqAwDQYJKoZIhvcNAQELBQADggEBAH8aj+fkMHnf // SIG // JIVKEpq6j/k8AwyGyV+iJMySLw4qNJEAJdYPjIEkeq5e // SIG // z2FujJk1wrbJmxBUYHLo8Ab4aAseCF8wg0azBp8eTxxK // SIG // zJ/HPqOoA6Zbtjn24tUkvXBPAlkr2tbxST/6nFcK0Ef/ // SIG // OQIRGvwk9jKz0BmIwrT7KmBjRrgzuy2LranNS1CKGgJB // SIG // pEZKq9nn92aohv3K4gEkpTPcfLGQr1OaSCgk8kLt8in3 // SIG // +hu7WMLMkmJVEQM+CnLqKMiP9OX6k9Zm+CG6AkuNCbWY // SIG // rbUGgzRF0zwDIMkOfChiPb1SHNZfysyzhLf55aoy8ILc // SIG // mT88Libqg7KuLGVGG1xFpxoxggQNMIIECQIBATCBkzB8 // SIG // MQswCQYDVQQGEwJVUzETMBEGA1UECBMKV2FzaGluZ3Rv // SIG // bjEQMA4GA1UEBxMHUmVkbW9uZDEeMBwGA1UEChMVTWlj // SIG // cm9zb2Z0IENvcnBvcmF0aW9uMSYwJAYDVQQDEx1NaWNy // SIG // b3NvZnQgVGltZS1TdGFtcCBQQ0EgMjAxMAITMwAAAecu // SIG // jy+TC08b6QABAAAB5zANBglghkgBZQMEAgEFAKCCAUow // SIG // GgYJKoZIhvcNAQkDMQ0GCyqGSIb3DQEJEAEEMC8GCSqG // SIG // SIb3DQEJBDEiBCA59xH1wDjiIAFikzJ/EiC61n+iI3ne // SIG // lsjde8lqmD/qGjCB+gYLKoZIhvcNAQkQAi8xgeowgecw // SIG // geQwgb0EIOU2XQ12aob9DeDFXM9UFHeEX74Fv0ABvQMG // SIG // 7qC51nOtMIGYMIGApH4wfDELMAkGA1UEBhMCVVMxEzAR // SIG // BgNVBAgTCldhc2hpbmd0b24xEDAOBgNVBAcTB1JlZG1v // SIG // bmQxHjAcBgNVBAoTFU1pY3Jvc29mdCBDb3Jwb3JhdGlv // SIG // bjEmMCQGA1UEAxMdTWljcm9zb2Z0IFRpbWUtU3RhbXAg // SIG // UENBIDIwMTACEzMAAAHnLo8vkwtPG+kAAQAAAecwIgQg // SIG // XYU/dH+8BnEKyAAloQ3TCHIYCOwdIu4g9PF1qIAckp4w // SIG // DQYJKoZIhvcNAQELBQAEggIAbjOPn/PFFlKyJ8cAZeQx // SIG // vA3ctnn1R74nsdTBdvrjUAWzJUlknRoLk0S2nzlM72ID // SIG // O9msTjr9y5PqDO9ufbSXitIqvssMTDx8XmjJwxzdWliX // SIG // 8W5se/o7N+bWToktfxkp3bK0NJa5B4ja85PgM5LA4ATB // SIG // alaQg+4gRnnEoLGx817mX2RtKmFiB6s0pmHfidKoGYDD // SIG // bK7sPW2g0N9dJYEynQGOrg1ERkCAKSq9TW8s7DJRP2HC // SIG // ORKhGspMJ/8LFVCiXUHZHVwdaqqe9eHT+0S0UMyLfUoS // SIG // zNPbwbsTBKTTVcT31olXyb9NK48T3PPpCtBbBTHNSi/w // SIG // hN1M5q2mj9uX9rgai+u8U3ChCLrHf6aFZzrQ+bWvWMdc // SIG // yBANSgEQy/liKPEMFKONJ4LBRXoX/CSBw6rUBxQ/N/hO // SIG // Bdqan/g4Wj2AGW+Oe+7kTgm3lgtQEiQnVcCXO3D8Np8g // SIG // WsOhdcKnIH/gaatRjSZzDmfGkmH2QKMlzx3d9emrKHp/ // SIG // dT0edMDf7YDbWJ7sDmnEd8PyjuiZ3VYrm8QAO4kwqBzZ // SIG // f9W2ZD3eSVF9awYgioptO4kpJ/0Bz7AFQaxGjAfV+iCf // SIG // QoRSZXTGs5ZzcNIhFOA1dtNdlWtlZlBQjO1XTX+PmL+p // SIG // iFNcd2uOP+3QHYez835JhHSL56SMQHgQvQl0LfJ4hc/dRT8= // SIG // End signature block