@tilde-nlp/ngx-translate 2.0.3 → 2.1.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.
Files changed (130) hide show
  1. package/esm2020/lib/factories/file-api-service.factory.mjs +1 -1
  2. package/esm2020/lib/factories/mt-term-term-api.factory.mjs +12 -0
  3. package/esm2020/lib/factories/text-api-service.factory.mjs +3 -3
  4. package/esm2020/lib/i18n/de.mjs +2 -7
  5. package/esm2020/lib/i18n/en.mjs +2 -6
  6. package/esm2020/lib/i18n/et.mjs +1 -6
  7. package/esm2020/lib/i18n/fi.mjs +1 -6
  8. package/esm2020/lib/i18n/lt.mjs +1 -6
  9. package/esm2020/lib/i18n/lv.mjs +2 -7
  10. package/esm2020/lib/i18n/pl.mjs +1 -6
  11. package/esm2020/lib/i18n/sv.mjs +1 -4
  12. package/esm2020/lib/injection-tokens/index.mjs +2 -1
  13. package/esm2020/lib/injection-tokens/mt-term-api.token.mjs +2 -0
  14. package/esm2020/lib/modules/tld-common/models/configs/tld-term-config.model.mjs +1 -1
  15. package/esm2020/lib/modules/tld-common/services/tld-translate-config.service.mjs +2 -1
  16. package/esm2020/lib/modules/tld-document/services/api/file-api.service.mjs +7 -7
  17. package/esm2020/lib/modules/tld-term/create-collection/create-collection.component.mjs +51 -0
  18. package/esm2020/lib/modules/tld-term/index.mjs +2 -1
  19. package/esm2020/lib/modules/tld-term/services/api-v1/models/mt-term-collection-v1-status.enum.mjs +7 -0
  20. package/esm2020/lib/modules/tld-term/services/api-v1/models/mt-term-collection-v1.model.mjs +2 -0
  21. package/esm2020/lib/modules/tld-term/services/api-v1/mt-term-v1.service.mjs +53 -0
  22. package/esm2020/lib/modules/tld-term/services/api-v2/mt-term-v2.service.mjs +67 -0
  23. package/esm2020/lib/modules/tld-term/services/engine-term/eninge-term-api.service.mjs +32 -0
  24. package/esm2020/lib/modules/tld-term/services/engine-term/models/add-engine-terms-request-params.model.mjs +2 -0
  25. package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-list.model.mjs +2 -0
  26. package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-scope.enum.mjs +6 -0
  27. package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-source.enum.mjs +6 -0
  28. package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection-status.enum.mjs +11 -0
  29. package/esm2020/lib/modules/tld-term/services/engine-term/models/engine-term-collection.model.mjs +2 -0
  30. package/esm2020/lib/modules/tld-term/services/engine-term/models/index.mjs +8 -0
  31. package/esm2020/lib/modules/tld-term/services/engine-term/models/update-engine-terms-request-params.model.mjs +2 -0
  32. package/esm2020/lib/modules/tld-term/services/index.mjs +4 -4
  33. package/esm2020/lib/modules/tld-term/services/models/combined-collection-tooltip-key.enum.mjs +6 -0
  34. package/esm2020/lib/modules/tld-term/services/models/combined-collection.model.mjs +190 -0
  35. package/esm2020/lib/modules/tld-term/services/models/index.mjs +6 -0
  36. package/esm2020/lib/modules/tld-term/services/models/mt-collection-status.enum.mjs +14 -0
  37. package/esm2020/lib/modules/tld-term/services/models/mt-collection.model.mjs +2 -0
  38. package/esm2020/lib/modules/tld-term/services/models/mt-term-service.model.mjs +2 -0
  39. package/esm2020/lib/modules/tld-term/services/term-api/index.mjs +3 -0
  40. package/esm2020/lib/modules/tld-term/services/term-api/models/index.mjs +3 -0
  41. package/esm2020/lib/modules/tld-term/services/term-api/models/tld-term-collection-languages.model.mjs +2 -0
  42. package/esm2020/lib/modules/tld-term/services/term-api/models/tld-term-collection.model.mjs +2 -0
  43. package/esm2020/lib/modules/tld-term/services/term-api/term-api.service.mjs +58 -0
  44. package/esm2020/lib/modules/tld-term/services/terminology.service.mjs +292 -0
  45. package/esm2020/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.mjs +27 -12
  46. package/esm2020/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.mjs +24 -51
  47. package/esm2020/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.mjs +19 -12
  48. package/esm2020/lib/modules/tld-term/tld-term.module.mjs +6 -5
  49. package/esm2020/lib/modules/tld-text/services/api/tld-translate-text-api.service.mjs +7 -7
  50. package/esm2020/lib/modules/tld-tooltip/services/api-v2/tld-system-api-v2.service.mjs +4 -2
  51. package/esm2020/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.mjs +8 -8
  52. package/esm2020/lib/tld-translate.module.mjs +17 -4
  53. package/esm2020/public-api.mjs +4 -2
  54. package/fesm2015/tilde-nlp-ngx-translate.mjs +749 -435
  55. package/fesm2015/tilde-nlp-ngx-translate.mjs.map +1 -1
  56. package/fesm2020/tilde-nlp-ngx-translate.mjs +724 -431
  57. package/fesm2020/tilde-nlp-ngx-translate.mjs.map +1 -1
  58. package/lib/factories/file-api-service.factory.d.ts +2 -2
  59. package/lib/factories/mt-term-term-api.factory.d.ts +7 -0
  60. package/lib/factories/text-api-service.factory.d.ts +3 -3
  61. package/lib/i18n/de.d.ts +0 -5
  62. package/lib/i18n/en.d.ts +1 -5
  63. package/lib/i18n/et.d.ts +0 -5
  64. package/lib/i18n/fi.d.ts +0 -5
  65. package/lib/i18n/lt.d.ts +0 -5
  66. package/lib/i18n/lv.d.ts +0 -5
  67. package/lib/i18n/pl.d.ts +0 -5
  68. package/lib/i18n/sv.d.ts +0 -3
  69. package/lib/injection-tokens/index.d.ts +1 -0
  70. package/lib/injection-tokens/mt-term-api.token.d.ts +1 -0
  71. package/lib/modules/tld-common/models/configs/tld-term-config.model.d.ts +1 -0
  72. package/lib/modules/tld-document/services/api/file-api.service.d.ts +3 -3
  73. package/lib/modules/tld-term/create-collection/create-collection.component.d.ts +17 -0
  74. package/lib/modules/tld-term/index.d.ts +1 -0
  75. package/lib/modules/tld-term/{models/mt-collection-status.model.d.ts → services/api-v1/models/mt-term-collection-v1-status.enum.d.ts} +1 -1
  76. package/lib/modules/tld-term/services/api-v1/models/mt-term-collection-v1.model.d.ts +12 -0
  77. package/lib/modules/tld-term/services/api-v1/mt-term-v1.service.d.ts +17 -0
  78. package/lib/modules/tld-term/services/api-v2/mt-term-v2.service.d.ts +18 -0
  79. package/lib/modules/tld-term/services/engine-term/eninge-term-api.service.d.ts +17 -0
  80. package/lib/modules/tld-term/services/engine-term/models/add-engine-terms-request-params.model.d.ts +8 -0
  81. package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-list.model.d.ts +4 -0
  82. package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-scope.enum.d.ts +4 -0
  83. package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-source.enum.d.ts +4 -0
  84. package/lib/modules/tld-term/services/engine-term/models/engine-term-collection-status.enum.d.ts +9 -0
  85. package/lib/modules/tld-term/services/engine-term/models/engine-term-collection.model.d.ts +14 -0
  86. package/lib/modules/tld-term/services/engine-term/models/index.d.ts +7 -0
  87. package/lib/modules/tld-term/services/engine-term/models/update-engine-terms-request-params.model.d.ts +5 -0
  88. package/lib/modules/tld-term/services/index.d.ts +3 -3
  89. package/lib/modules/tld-term/services/models/combined-collection-tooltip-key.enum.d.ts +4 -0
  90. package/lib/modules/tld-term/services/models/combined-collection.model.d.ts +87 -0
  91. package/lib/modules/tld-term/services/models/index.d.ts +5 -0
  92. package/lib/modules/tld-term/services/models/mt-collection-status.enum.d.ts +11 -0
  93. package/lib/modules/tld-term/services/models/mt-collection.model.d.ts +14 -0
  94. package/lib/modules/tld-term/services/models/mt-term-service.model.d.ts +7 -0
  95. package/lib/modules/tld-term/services/term-api/index.d.ts +2 -0
  96. package/lib/modules/tld-term/services/term-api/models/index.d.ts +2 -0
  97. package/lib/modules/tld-term/{models/term-api → services/term-api/models}/tld-term-collection.model.d.ts +2 -2
  98. package/lib/modules/tld-term/services/term-api/term-api.service.d.ts +17 -0
  99. package/lib/modules/tld-term/services/terminology.service.d.ts +63 -0
  100. package/lib/modules/tld-term/tld-term-collection/tld-term-collection.component.d.ts +13 -4
  101. package/lib/modules/tld-term/tld-term-collection-list/tld-term-collection-list.component.d.ts +13 -17
  102. package/lib/modules/tld-term/tld-term-menu/tld-term-menu.component.d.ts +11 -7
  103. package/lib/modules/tld-term/tld-term.module.d.ts +13 -12
  104. package/lib/modules/tld-text/services/api/tld-translate-text-api.service.d.ts +3 -3
  105. package/lib/modules/tld-web/tld-translate-web/tld-translate-web.component.d.ts +3 -3
  106. package/package.json +1 -1
  107. package/public-api.d.ts +3 -1
  108. package/src/assets/webcomponent/tld-translate.js +1 -1
  109. package/tilde-nlp-ngx-translate-2.1.0.tgz +0 -0
  110. package/esm2020/lib/modules/tld-term/models/converted-collection-tooltip-key.model.mjs +0 -7
  111. package/esm2020/lib/modules/tld-term/models/converted-collection-type.model.mjs +0 -9
  112. package/esm2020/lib/modules/tld-term/models/index.mjs +0 -7
  113. package/esm2020/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.mjs +0 -2
  114. package/esm2020/lib/modules/tld-term/models/mt-collection-status.model.mjs +0 -7
  115. package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection-languages.model.mjs +0 -2
  116. package/esm2020/lib/modules/tld-term/models/term-api/tld-term-collection.model.mjs +0 -2
  117. package/esm2020/lib/modules/tld-term/models/tld-converted-collection.model.mjs +0 -114
  118. package/esm2020/lib/modules/tld-term/services/mt-collections-api.service.mjs +0 -33
  119. package/esm2020/lib/modules/tld-term/services/term-api.service.mjs +0 -34
  120. package/esm2020/lib/modules/tld-term/services/tld-term-collections.service.mjs +0 -253
  121. package/lib/modules/tld-term/models/converted-collection-tooltip-key.model.d.ts +0 -5
  122. package/lib/modules/tld-term/models/converted-collection-type.model.d.ts +0 -7
  123. package/lib/modules/tld-term/models/index.d.ts +0 -6
  124. package/lib/modules/tld-term/models/mt-api/tld-mt-term-collection.model.d.ts +0 -15
  125. package/lib/modules/tld-term/models/tld-converted-collection.model.d.ts +0 -43
  126. package/lib/modules/tld-term/services/mt-collections-api.service.d.ts +0 -13
  127. package/lib/modules/tld-term/services/term-api.service.d.ts +0 -15
  128. package/lib/modules/tld-term/services/tld-term-collections.service.d.ts +0 -57
  129. package/tilde-nlp-ngx-translate-2.0.3.tgz +0 -0
  130. /package/lib/modules/tld-term/{models/term-api → services/term-api/models}/tld-term-collection-languages.model.d.ts +0 -0
@@ -23,7 +23,9 @@ export class TldSystemApiV2Service {
23
23
  sourceLanguage: system.srcLang,
24
24
  targetLanguage: system.trgLang,
25
25
  translationApiVersion: TranslationApiVersion.V2,
26
- vendor: system.vendor
26
+ vendor: system.vendor,
27
+ // hardcoded since there is no param yet for determinig which systems support terms.
28
+ includesTerminology: true
27
29
  };
28
30
  systems.push(newSystem);
29
31
  if (this.config.apiV2Config?.autoDomainDetection && !uniqueDirections.includes(languageDirections)) {
@@ -57,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
57
59
  providedIn: 'root'
58
60
  }]
59
61
  }], ctorParameters: function () { return [{ type: i1.TldTranslateConfigService }, { type: i2.HttpClient }]; } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXN5c3RlbS1hcGktdjIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10b29sdGlwL3NlcnZpY2VzL2FwaS12Mi90bGQtc3lzdGVtLWFwaS12Mi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxNQUFNLEVBQXdCLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFNakcsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUE2QixNQUFpQyxFQUMzQyxJQUFnQjtRQUROLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzNDLFNBQUksR0FBSixJQUFJLENBQVk7SUFBSSxDQUFDO0lBRXhDLGFBQWE7UUFDWCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXdCLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztZQUM3QixNQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztZQUN0QyxNQUFNLGlCQUFpQixHQUFhLEVBQUUsQ0FBQztZQUN2QyxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUNqQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNULE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakUsTUFBTSxTQUFTLEdBQVc7b0JBQ3hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNiLGNBQWMsRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDOUIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxPQUFPO29CQUM5QixxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFO29CQUMvQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07aUJBQ3RCLENBQUE7Z0JBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFeEIsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxtQkFBbUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFO29CQUNsRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDMUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3hFLGdCQUFnQixDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQy9CLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztvQkFDekMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7aUJBQzFDO1lBQ0gsQ0FBQyxDQUNGLENBQUM7WUFDRixPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVPLGlDQUFpQyxDQUFDLFNBQTZCO1FBQ3JFLE1BQU0sVUFBVSxHQUFXO1lBQ3pCLGNBQWMsRUFBRSxTQUFTLENBQUMsT0FBTztZQUNqQyxjQUFjLEVBQUUsU0FBUyxDQUFDLE9BQU87WUFDakMsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1lBQ3hCLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLEVBQUU7WUFDL0MsRUFBRSxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUU7WUFDbkUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO1NBQ3pCLENBQUE7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOztrSEFsRFUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsTUFBTTsyRkFFUCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBTeXN0ZW0gfSBmcm9tICcuLi8uLi8uLi90bGQtY29tbW9uL21vZGVscy9zZXJ2aWNlcy9zeXN0ZW0vc3lzdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgSUdldExhbmd1YWdlRGlyZWN0aW9uIH0gZnJvbSAnLi9tb2RlbHMvZ2V0LWxhbmdhdWdlLWRpcmVjdGlvbic7XHJcbmltcG9ydCB7IENvbW1vbiwgSVRsZFN5c3RlbUFwaVNlcnZpY2UsIFRyYW5zbGF0aW9uQXBpVmVyc2lvbiB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vbW9kZWxzJztcclxuaW1wb3J0IHsgSUxhbmd1YWdlRGlyZWN0aW9uIH0gZnJvbSAnLi9tb2RlbHMvbGFuZ3VhZ2UtZGlyZWN0aW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFN5c3RlbUFwaVYyU2VydmljZSBpbXBsZW1lbnRzIElUbGRTeXN0ZW1BcGlTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBjb25maWc6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQpIHsgfVxyXG5cclxuICBnZXRTeXN0ZW1MaXN0KCk6IE9ic2VydmFibGU8U3lzdGVtW10+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBDb21tb24uR2V0QXBpVjJBdXRoSGVhZGVycyh0aGlzLmNvbmZpZyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxJR2V0TGFuZ3VhZ2VEaXJlY3Rpb24+KHRoaXMuY29uZmlnPy5hcGlWMkNvbmZpZz8uc3lzdGVtTGlzdFVybCwgeyBoZWFkZXJzIH0pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICBjb25zdCBzeXN0ZW1zOiBTeXN0ZW1bXSA9IFtdO1xyXG4gICAgICAgIGNvbnN0IHVuaXF1ZURpcmVjdGlvbnM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgY29uc3QgYXV0b0RvbWFpblN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgICAgICAgcmVzcG9uc2UubGFuZ3VhZ2VEaXJlY3Rpb25zLmZvckVhY2goXHJcbiAgICAgICAgICAoc3lzdGVtKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGxhbmd1YWdlRGlyZWN0aW9ucyA9IGAke3N5c3RlbS5zcmNMYW5nfS0ke3N5c3RlbS50cmdMYW5nfWA7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1N5c3RlbTogU3lzdGVtID0ge1xyXG4gICAgICAgICAgICAgIGRvbWFpbjogc3lzdGVtLmRvbWFpbixcclxuICAgICAgICAgICAgICBpZDogc3lzdGVtLmlkLFxyXG4gICAgICAgICAgICAgIHNvdXJjZUxhbmd1YWdlOiBzeXN0ZW0uc3JjTGFuZyxcclxuICAgICAgICAgICAgICB0YXJnZXRMYW5ndWFnZTogc3lzdGVtLnRyZ0xhbmcsXHJcbiAgICAgICAgICAgICAgdHJhbnNsYXRpb25BcGlWZXJzaW9uOiBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjIsXHJcbiAgICAgICAgICAgICAgdmVuZG9yOiBzeXN0ZW0udmVuZG9yXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3lzdGVtcy5wdXNoKG5ld1N5c3RlbSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWcuYXBpVjJDb25maWc/LmF1dG9Eb21haW5EZXRlY3Rpb24gJiYgIXVuaXF1ZURpcmVjdGlvbnMuaW5jbHVkZXMobGFuZ3VhZ2VEaXJlY3Rpb25zKSkge1xyXG4gICAgICAgICAgICAgIHVuaXF1ZURpcmVjdGlvbnMucHVzaChsYW5ndWFnZURpcmVjdGlvbnMpO1xyXG4gICAgICAgICAgICAgIGNvbnN0IGF1dG9Eb21haW5TeXN0ZW0gPSB0aGlzLmNyZWF0ZVN5c3RlbUZyb21MYW5ndWFnZURpcmVjdGlvbihzeXN0ZW0pO1xyXG4gICAgICAgICAgICAgIGF1dG9Eb21haW5TeXN0ZW0uZG9tYWluID0gbnVsbDtcclxuICAgICAgICAgICAgICBhdXRvRG9tYWluU3lzdGVtLmlkID0gbGFuZ3VhZ2VEaXJlY3Rpb25zO1xyXG4gICAgICAgICAgICAgIGF1dG9Eb21haW5TeXN0ZW1zLnB1c2goYXV0b0RvbWFpblN5c3RlbSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBhdXRvRG9tYWluU3lzdGVtcy5jb25jYXQoc3lzdGVtcyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVTeXN0ZW1Gcm9tTGFuZ3VhZ2VEaXJlY3Rpb24oZGlyZWN0aW9uOiBJTGFuZ3VhZ2VEaXJlY3Rpb24pIHtcclxuICAgIGNvbnN0IHN5c3RlbUJhc2U6IFN5c3RlbSA9IHtcclxuICAgICAgc291cmNlTGFuZ3VhZ2U6IGRpcmVjdGlvbi5zcmNMYW5nLFxyXG4gICAgICB0YXJnZXRMYW5ndWFnZTogZGlyZWN0aW9uLnRyZ0xhbmcsXHJcbiAgICAgIGRvbWFpbjogZGlyZWN0aW9uLmRvbWFpbixcclxuICAgICAgdHJhbnNsYXRpb25BcGlWZXJzaW9uOiBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjIsXHJcbiAgICAgIGlkOiBgJHtkaXJlY3Rpb24uc3JjTGFuZ30tJHtkaXJlY3Rpb24udHJnTGFuZ30tJHtkaXJlY3Rpb24uZG9tYWlufWAsXHJcbiAgICAgIHZlbmRvcjogZGlyZWN0aW9uLnZlbmRvclxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBzeXN0ZW1CYXNlO1xyXG4gIH1cclxufVxyXG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXN5c3RlbS1hcGktdjIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL2xpYi9tb2R1bGVzL3RsZC10b29sdGlwL3NlcnZpY2VzL2FwaS12Mi90bGQtc3lzdGVtLWFwaS12Mi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxNQUFNLEVBQXdCLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFNakcsTUFBTSxPQUFPLHFCQUFxQjtJQUVoQyxZQUE2QixNQUFpQyxFQUMzQyxJQUFnQjtRQUROLFdBQU0sR0FBTixNQUFNLENBQTJCO1FBQzNDLFNBQUksR0FBSixJQUFJLENBQVk7SUFBSSxDQUFDO0lBRXhDLGFBQWE7UUFDWCxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQXdCLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUNwRyxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNmLE1BQU0sT0FBTyxHQUFhLEVBQUUsQ0FBQztZQUM3QixNQUFNLGdCQUFnQixHQUFhLEVBQUUsQ0FBQztZQUN0QyxNQUFNLGlCQUFpQixHQUFhLEVBQUUsQ0FBQztZQUN2QyxRQUFRLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUNqQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNULE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxNQUFNLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakUsTUFBTSxTQUFTLEdBQVc7b0JBQ3hCLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTTtvQkFDckIsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO29CQUNiLGNBQWMsRUFBRSxNQUFNLENBQUMsT0FBTztvQkFDOUIsY0FBYyxFQUFFLE1BQU0sQ0FBQyxPQUFPO29CQUM5QixxQkFBcUIsRUFBRSxxQkFBcUIsQ0FBQyxFQUFFO29CQUMvQyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07b0JBQ3JCLG9GQUFvRjtvQkFDcEYsbUJBQW1CLEVBQUUsSUFBSTtpQkFDMUIsQ0FBQTtnQkFDRCxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUV4QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLG1CQUFtQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7b0JBQ2xHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO29CQUMxQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztvQkFDL0IsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLGtCQUFrQixDQUFDO29CQUN6QyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztpQkFDMUM7WUFDSCxDQUFDLENBQ0YsQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRU8saUNBQWlDLENBQUMsU0FBNkI7UUFDckUsTUFBTSxVQUFVLEdBQVc7WUFDekIsY0FBYyxFQUFFLFNBQVMsQ0FBQyxPQUFPO1lBQ2pDLGNBQWMsRUFBRSxTQUFTLENBQUMsT0FBTztZQUNqQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07WUFDeEIscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsRUFBRTtZQUMvQyxFQUFFLEVBQUUsR0FBRyxTQUFTLENBQUMsT0FBTyxJQUFJLFNBQVMsQ0FBQyxPQUFPLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNuRSxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07U0FDekIsQ0FBQTtRQUVELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7O2tIQXBEVSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFN5c3RlbSB9IGZyb20gJy4uLy4uLy4uL3RsZC1jb21tb24vbW9kZWxzL3NlcnZpY2VzL3N5c3RlbS9zeXN0ZW0ubW9kZWwnO1xyXG5pbXBvcnQgeyBJR2V0TGFuZ3VhZ2VEaXJlY3Rpb24gfSBmcm9tICcuL21vZGVscy9nZXQtbGFuZ2F1Z2UtZGlyZWN0aW9uJztcclxuaW1wb3J0IHsgQ29tbW9uLCBJVGxkU3lzdGVtQXBpU2VydmljZSwgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJTGFuZ3VhZ2VEaXJlY3Rpb24gfSBmcm9tICcuL21vZGVscy9sYW5ndWFnZS1kaXJlY3Rpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGxkU3lzdGVtQXBpVjJTZXJ2aWNlIGltcGxlbWVudHMgSVRsZFN5c3RlbUFwaVNlcnZpY2Uge1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCkgeyB9XHJcblxyXG4gIGdldFN5c3RlbUxpc3QoKTogT2JzZXJ2YWJsZTxTeXN0ZW1bXT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IENvbW1vbi5HZXRBcGlWMkF1dGhIZWFkZXJzKHRoaXMuY29uZmlnKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PElHZXRMYW5ndWFnZURpcmVjdGlvbj4odGhpcy5jb25maWc/LmFwaVYyQ29uZmlnPy5zeXN0ZW1MaXN0VXJsLCB7IGhlYWRlcnMgfSkucGlwZShcclxuICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgICAgICAgY29uc3QgdW5pcXVlRGlyZWN0aW9uczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgICBjb25zdCBhdXRvRG9tYWluU3lzdGVtczogU3lzdGVtW10gPSBbXTtcclxuICAgICAgICByZXNwb25zZS5sYW5ndWFnZURpcmVjdGlvbnMuZm9yRWFjaChcclxuICAgICAgICAgIChzeXN0ZW0pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VEaXJlY3Rpb25zID0gYCR7c3lzdGVtLnNyY0xhbmd9LSR7c3lzdGVtLnRyZ0xhbmd9YDtcclxuICAgICAgICAgICAgY29uc3QgbmV3U3lzdGVtOiBTeXN0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgZG9tYWluOiBzeXN0ZW0uZG9tYWluLFxyXG4gICAgICAgICAgICAgIGlkOiBzeXN0ZW0uaWQsXHJcbiAgICAgICAgICAgICAgc291cmNlTGFuZ3VhZ2U6IHN5c3RlbS5zcmNMYW5nLFxyXG4gICAgICAgICAgICAgIHRhcmdldExhbmd1YWdlOiBzeXN0ZW0udHJnTGFuZyxcclxuICAgICAgICAgICAgICB0cmFuc2xhdGlvbkFwaVZlcnNpb246IFRyYW5zbGF0aW9uQXBpVmVyc2lvbi5WMixcclxuICAgICAgICAgICAgICB2ZW5kb3I6IHN5c3RlbS52ZW5kb3IsXHJcbiAgICAgICAgICAgICAgLy8gaGFyZGNvZGVkIHNpbmNlIHRoZXJlIGlzIG5vIHBhcmFtIHlldCBmb3IgZGV0ZXJtaW5pZyB3aGljaCBzeXN0ZW1zIHN1cHBvcnQgdGVybXMuXHJcbiAgICAgICAgICAgICAgaW5jbHVkZXNUZXJtaW5vbG9neTogdHJ1ZVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN5c3RlbXMucHVzaChuZXdTeXN0ZW0pO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmFwaVYyQ29uZmlnPy5hdXRvRG9tYWluRGV0ZWN0aW9uICYmICF1bmlxdWVEaXJlY3Rpb25zLmluY2x1ZGVzKGxhbmd1YWdlRGlyZWN0aW9ucykpIHtcclxuICAgICAgICAgICAgICB1bmlxdWVEaXJlY3Rpb25zLnB1c2gobGFuZ3VhZ2VEaXJlY3Rpb25zKTtcclxuICAgICAgICAgICAgICBjb25zdCBhdXRvRG9tYWluU3lzdGVtID0gdGhpcy5jcmVhdGVTeXN0ZW1Gcm9tTGFuZ3VhZ2VEaXJlY3Rpb24oc3lzdGVtKTtcclxuICAgICAgICAgICAgICBhdXRvRG9tYWluU3lzdGVtLmRvbWFpbiA9IG51bGw7XHJcbiAgICAgICAgICAgICAgYXV0b0RvbWFpblN5c3RlbS5pZCA9IGxhbmd1YWdlRGlyZWN0aW9ucztcclxuICAgICAgICAgICAgICBhdXRvRG9tYWluU3lzdGVtcy5wdXNoKGF1dG9Eb21haW5TeXN0ZW0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gYXV0b0RvbWFpblN5c3RlbXMuY29uY2F0KHN5c3RlbXMpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlU3lzdGVtRnJvbUxhbmd1YWdlRGlyZWN0aW9uKGRpcmVjdGlvbjogSUxhbmd1YWdlRGlyZWN0aW9uKSB7XHJcbiAgICBjb25zdCBzeXN0ZW1CYXNlOiBTeXN0ZW0gPSB7XHJcbiAgICAgIHNvdXJjZUxhbmd1YWdlOiBkaXJlY3Rpb24uc3JjTGFuZyxcclxuICAgICAgdGFyZ2V0TGFuZ3VhZ2U6IGRpcmVjdGlvbi50cmdMYW5nLFxyXG4gICAgICBkb21haW46IGRpcmVjdGlvbi5kb21haW4sXHJcbiAgICAgIHRyYW5zbGF0aW9uQXBpVmVyc2lvbjogVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYyLFxyXG4gICAgICBpZDogYCR7ZGlyZWN0aW9uLnNyY0xhbmd9LSR7ZGlyZWN0aW9uLnRyZ0xhbmd9LSR7ZGlyZWN0aW9uLmRvbWFpbn1gLFxyXG4gICAgICB2ZW5kb3I6IGRpcmVjdGlvbi52ZW5kb3JcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3lzdGVtQmFzZTtcclxuICB9XHJcbn1cclxuIl19
@@ -1,7 +1,7 @@
1
1
  import { animate, style, transition, trigger } from '@angular/animations';
2
2
  import { Component, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';
3
- import * as $ from 'jquery';
4
3
  import { NotificationMessageType } from '@tilde-nlp/ngx-common';
4
+ import * as $ from 'jquery';
5
5
  import { Subject } from 'rxjs';
6
6
  import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
7
7
  import { TRANSLATION_API_VERSION_TOKEN } from '../../../injection-tokens';
@@ -13,7 +13,7 @@ import * as i2 from "../../tld-common/services";
13
13
  import * as i3 from "../../tld-common/components/translate-button/tld-translate-button.service";
14
14
  import * as i4 from "@angular/router";
15
15
  import * as i5 from "../../tld-tooltip/services/tld-system.service";
16
- import * as i6 from "../../tld-term/services";
16
+ import * as i6 from "../../tld-term/services/terminology.service";
17
17
  import * as i7 from "../tld-translate-web.service";
18
18
  import * as i8 from "@angular/common";
19
19
  import * as i9 from "../../tld-tooltip/tld-translate-switcher/tld-translate-switcher.component";
@@ -28,7 +28,7 @@ import * as i17 from "@tilde-nlp/ngx-common";
28
28
  import * as i18 from "../../tld-common/models";
29
29
  window.$ = window.jQuery = $;
30
30
  export class TldTranslateWebsiteComponent {
31
- constructor(translate, configService, translateButtonService, alerts, router, activatedRoute, tldSystem, collectionService, tldTranslateWebService, iconService, apiVersion) {
31
+ constructor(translate, configService, translateButtonService, alerts, router, activatedRoute, tldSystem, terminologyService, tldTranslateWebService, iconService, apiVersion) {
32
32
  this.translate = translate;
33
33
  this.configService = configService;
34
34
  this.translateButtonService = translateButtonService;
@@ -36,7 +36,7 @@ export class TldTranslateWebsiteComponent {
36
36
  this.router = router;
37
37
  this.activatedRoute = activatedRoute;
38
38
  this.tldSystem = tldSystem;
39
- this.collectionService = collectionService;
39
+ this.terminologyService = terminologyService;
40
40
  this.tldTranslateWebService = tldTranslateWebService;
41
41
  this.apiVersion = apiVersion;
42
42
  this.product = '';
@@ -303,7 +303,7 @@ export class TldTranslateWebsiteComponent {
303
303
  this.sendMessage({ message: 'changeSystem', systemId: sys.id });
304
304
  }
305
305
  translateButtonClick() {
306
- const selectedCollectionId = this.collectionService.selectedIdForTranslation();
306
+ const selectedCollectionId = this.terminologyService.selectedIdForTranslation();
307
307
  if (this.urlToTranslate != '') {
308
308
  this.sendMessage({
309
309
  message: 'loadUrl',
@@ -462,7 +462,7 @@ export class TldTranslateWebsiteComponent {
462
462
  body.appendChild(script);
463
463
  }
464
464
  }
465
- TldTranslateWebsiteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateWebsiteComponent, deps: [{ token: i1.TranslateService }, { token: i2.TldTranslateConfigService }, { token: i3.TldTranslateButtonService }, { token: i2.TldAlertService }, { token: i4.Router }, { token: i4.ActivatedRoute }, { token: i5.TldSystemService }, { token: i6.TldTermCollectionsService }, { token: i7.TldTranslateWebService }, { token: i2.IconService }, { token: TRANSLATION_API_VERSION_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
465
+ TldTranslateWebsiteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TldTranslateWebsiteComponent, deps: [{ token: i1.TranslateService }, { token: i2.TldTranslateConfigService }, { token: i3.TldTranslateButtonService }, { token: i2.TldAlertService }, { token: i4.Router }, { token: i4.ActivatedRoute }, { token: i5.TldSystemService }, { token: i6.TerminologyService }, { token: i7.TldTranslateWebService }, { token: i2.IconService }, { token: TRANSLATION_API_VERSION_TOKEN }], target: i0.ɵɵFactoryTarget.Component });
466
466
  TldTranslateWebsiteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TldTranslateWebsiteComponent, selector: "tld-translate-website", inputs: { product: "product", company: "company" }, outputs: { onError: "onError" }, viewQueries: [{ propertyName: "urlInputField", first: true, predicate: ["url"], descendants: true }], ngImport: i0, template: "<div id=\"widget\" class=\"tld-translate-web\">\r\n <div class=\"translate-container-header\">\r\n <a href=\"/\" id=\"home-link\" [attr.title]=\"'WEBTRANSLATE.BACK' | translate\">\r\n <img [src]=\"logoLocation\" alt=\"logo\">\r\n <lib-company-product *ngIf=\"company && product\" [company]=\"company\" [product]=\"product\"></lib-company-product>\r\n </a>\r\n <div [ngClass.lt-sm]=\"'tld-translate-mobile'\">\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"address-wrapper\">\r\n <div fxFlex class=\"back-btn\">\r\n\r\n <button (click)=\"goToHome()\" color=\"accent\" mat-flat-button [attr.title]=\"'WEBTRANSLATE.BACK' | translate\">\r\n <mat-icon inline=true>chevron_left</mat-icon>\r\n </button>\r\n\r\n </div>\r\n <div fxFlex class=\"\">\r\n <div data-text=\"address\" class=\"\">{{'WEBTRANSLATE.ADDRESS' | translate}}</div>\r\n </div>\r\n <div fxFlex=\"100%\" class=\"address-input\">\r\n <input type=\"url\" #url class=\"url w-100\" autofocus=\"autofocus\" [(ngModel)]=\"urlToTranslate\"\r\n (keyup.enter)=\"loadButtonClicked()\" />\r\n </div>\r\n <div fxFlex class=\"load-btn\">\r\n <button (click)=\"loadButtonClicked()\" color=\"accent\" mat-flat-button\r\n [attr.title]=\"'WEBTRANSLATE.LOAD_PAGE' | translate\" [disabled]=\"!urlToTranslate\">\r\n <mat-icon inline=true>search</mat-icon>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center\" class=\"tld-translate-switcher-wrapper\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxFlex>\r\n <tld-translate-switcher\r\n *ngIf=\"switcherOptions\"\r\n [isCollectionsActivated]=\"isCollectionsActivated\"\r\n [useParentWidth]=\"useParentWidth\"\r\n [disabled]=\"actionButtonDisabled\"\r\n [settings]=\"switcherOptions\"\r\n [showTranslateButton]=\"false\"\r\n [hideOnSmallScreens]=\"false\"\r\n [hideLangMenuLabels]=\"hideLangMenuLabels\"\r\n [maxDisplayedLanguages]=\"maxDisplayedLanguages\"\r\n [showDomainsWithLanguageName]=\"showDomainsWithLanguageName\"\r\n (onDomainChange)=\"systemChange($event)\"\r\n (onActionClick)=\"translateButtonClick()\"\r\n (onLanguageSwap)=\"swapLanguages()\"\r\n (onSourceLanguageChange)=\"sourceLanguageChange($event)\"\r\n (onTargetLanguageChange)=\"targetLanguageChange($event)\">\r\n </tld-translate-switcher>\r\n <div fxFlexAlign=\"center\" class=\"action-btn-wrapper\">\r\n <tld-translate-button\r\n *ngIf=\"showTranslateBtn\"\r\n class=\"switcher-translate-button\"\r\n [disabled]=\"actionButtonDisabled || !urlToTranslate\">\r\n </tld-translate-button>\r\n <button *ngIf=\"showCancel\" mat-flat-button color=\"accent\" (click)=\"cancel()\"\r\n class=\"cancel-button\">{{'WEBTRANSLATE.CANCEL' | translate}}</button>\r\n <button *ngIf=\"showRestore\" mat-flat-button color=\"accent\" (click)=\"restore()\"\r\n class=\"restore-button\">{{'WEBTRANSLATE.RESTORE' | translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div id=\"website-frame-container\">\r\n <mat-progress-bar *ngIf=\"showProgress\" color=\"accent\" [mode]=\"mode\" [value]=\"progressValue\">\r\n </mat-progress-bar>\r\n <lib-tld-notification-message [@openCloseAnimation] *ngFor=\"let message of messages; let ix = index\" [message]=\"message\"\r\n (closeClicked)=\"removeMessage(ix)\"></lib-tld-notification-message>\r\n <iframe id=\"letsmt-translate-page-iframe\" name=\"letsmtTranslatePageIframe\" src=\"about:blank\"\r\n [attr.sandbox]=\"sandbox\"></iframe>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tld-translate-switcher-wrapper{padding:0 .5em;margin-left:auto;margin-right:auto}.translate-container-header{padding:.6em 1em 0;box-sizing:border-box}#widget .translate-container-header{width:100%;height:100%;margin-left:auto;margin-right:auto}#letsmt-translate-page-iframe{width:100%;height:100%;border:0}#website-frame-container{inset:5.92em 0 0;border-top:solid 1px #d4d4d4;position:fixed}#home-link{position:absolute;left:.75em;top:.2em;display:flex;flex-direction:row;text-decoration:none}#home-link img{margin-right:.75em;max-height:5.5em}@media screen and (max-width: 73em){#home-link{display:none}}.back-btn .mat-flat-button,.load-btn .mat-flat-button{width:27px;height:27px;line-height:27px;min-width:27px;padding:0}.back-btn .mat-flat-button .mat-icon,.load-btn .mat-flat-button .mat-icon{vertical-align:top;font-size:1.25em}.address-wrapper{max-width:60em;margin-bottom:.38em;margin-left:auto;margin-right:auto}.load-btn{padding-left:.8em}.back-btn{padding-right:.8em}.cancel-button,.restore-button{min-width:100px;height:36px;align-self:center}.w-100{width:100%}.address-input{padding-left:.9em;padding-right:.65em}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i9.TldTranslateSwitcherComponent, selector: "tld-translate-switcher", inputs: ["buttonDisabled", "showTranslateButton", "hideOnSmallScreens", "disabled", "hideLangMenuLabels", "maxDisplayedLanguages", "collections", "showDomainsWithLanguageName", "isCollectionsActivated", "useParentWidth", "loader", "settings"], outputs: ["onDomainChange", "onActionClick", "onSourceLanguageChange", "onTargetLanguageChange", "onLanguageSwap", "onVendorChange"] }, { kind: "component", type: i10.TldTranslateButtonComponent, selector: "tld-translate-button", inputs: ["disabled", "enablePulseAnimation"], outputs: ["clicked"] }, { kind: "component", type: i11.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: i14.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i14.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i14.DefaultFlexAlignDirective, selector: " [fxFlexAlign], [fxFlexAlign.xs], [fxFlexAlign.sm], [fxFlexAlign.md], [fxFlexAlign.lg], [fxFlexAlign.xl], [fxFlexAlign.lt-sm], [fxFlexAlign.lt-md], [fxFlexAlign.lt-lg], [fxFlexAlign.lt-xl], [fxFlexAlign.gt-xs], [fxFlexAlign.gt-sm], [fxFlexAlign.gt-md], [fxFlexAlign.gt-lg]", inputs: ["fxFlexAlign", "fxFlexAlign.xs", "fxFlexAlign.sm", "fxFlexAlign.md", "fxFlexAlign.lg", "fxFlexAlign.xl", "fxFlexAlign.lt-sm", "fxFlexAlign.lt-md", "fxFlexAlign.lt-lg", "fxFlexAlign.lt-xl", "fxFlexAlign.gt-xs", "fxFlexAlign.gt-sm", "fxFlexAlign.gt-md", "fxFlexAlign.gt-lg"] }, { kind: "directive", type: i14.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i15.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i16.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i16.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i16.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i17.NotificationMessageComponent, selector: "lib-tld-notification-message", inputs: ["message", "inline"], outputs: ["buttonClicked", "closeClicked", "linkClicked"] }, { kind: "component", type: i17.CompanyProductComponent, selector: "lib-company-product", inputs: ["company", "product"] }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], animations: [
467
467
  trigger('openCloseAnimation', [
468
468
  transition(':enter', [
@@ -483,7 +483,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
483
483
  transition(':leave', animate(500, style({ height: 0 })))
484
484
  ])
485
485
  ], template: "<div id=\"widget\" class=\"tld-translate-web\">\r\n <div class=\"translate-container-header\">\r\n <a href=\"/\" id=\"home-link\" [attr.title]=\"'WEBTRANSLATE.BACK' | translate\">\r\n <img [src]=\"logoLocation\" alt=\"logo\">\r\n <lib-company-product *ngIf=\"company && product\" [company]=\"company\" [product]=\"product\"></lib-company-product>\r\n </a>\r\n <div [ngClass.lt-sm]=\"'tld-translate-mobile'\">\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" class=\"address-wrapper\">\r\n <div fxFlex class=\"back-btn\">\r\n\r\n <button (click)=\"goToHome()\" color=\"accent\" mat-flat-button [attr.title]=\"'WEBTRANSLATE.BACK' | translate\">\r\n <mat-icon inline=true>chevron_left</mat-icon>\r\n </button>\r\n\r\n </div>\r\n <div fxFlex class=\"\">\r\n <div data-text=\"address\" class=\"\">{{'WEBTRANSLATE.ADDRESS' | translate}}</div>\r\n </div>\r\n <div fxFlex=\"100%\" class=\"address-input\">\r\n <input type=\"url\" #url class=\"url w-100\" autofocus=\"autofocus\" [(ngModel)]=\"urlToTranslate\"\r\n (keyup.enter)=\"loadButtonClicked()\" />\r\n </div>\r\n <div fxFlex class=\"load-btn\">\r\n <button (click)=\"loadButtonClicked()\" color=\"accent\" mat-flat-button\r\n [attr.title]=\"'WEBTRANSLATE.LOAD_PAGE' | translate\" [disabled]=\"!urlToTranslate\">\r\n <mat-icon inline=true>search</mat-icon>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center\" class=\"tld-translate-switcher-wrapper\">\r\n <div fxLayout=\"row\" fxLayoutAlign=\"center center\" fxFlex>\r\n <tld-translate-switcher\r\n *ngIf=\"switcherOptions\"\r\n [isCollectionsActivated]=\"isCollectionsActivated\"\r\n [useParentWidth]=\"useParentWidth\"\r\n [disabled]=\"actionButtonDisabled\"\r\n [settings]=\"switcherOptions\"\r\n [showTranslateButton]=\"false\"\r\n [hideOnSmallScreens]=\"false\"\r\n [hideLangMenuLabels]=\"hideLangMenuLabels\"\r\n [maxDisplayedLanguages]=\"maxDisplayedLanguages\"\r\n [showDomainsWithLanguageName]=\"showDomainsWithLanguageName\"\r\n (onDomainChange)=\"systemChange($event)\"\r\n (onActionClick)=\"translateButtonClick()\"\r\n (onLanguageSwap)=\"swapLanguages()\"\r\n (onSourceLanguageChange)=\"sourceLanguageChange($event)\"\r\n (onTargetLanguageChange)=\"targetLanguageChange($event)\">\r\n </tld-translate-switcher>\r\n <div fxFlexAlign=\"center\" class=\"action-btn-wrapper\">\r\n <tld-translate-button\r\n *ngIf=\"showTranslateBtn\"\r\n class=\"switcher-translate-button\"\r\n [disabled]=\"actionButtonDisabled || !urlToTranslate\">\r\n </tld-translate-button>\r\n <button *ngIf=\"showCancel\" mat-flat-button color=\"accent\" (click)=\"cancel()\"\r\n class=\"cancel-button\">{{'WEBTRANSLATE.CANCEL' | translate}}</button>\r\n <button *ngIf=\"showRestore\" mat-flat-button color=\"accent\" (click)=\"restore()\"\r\n class=\"restore-button\">{{'WEBTRANSLATE.RESTORE' | translate}}</button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div id=\"website-frame-container\">\r\n <mat-progress-bar *ngIf=\"showProgress\" color=\"accent\" [mode]=\"mode\" [value]=\"progressValue\">\r\n </mat-progress-bar>\r\n <lib-tld-notification-message [@openCloseAnimation] *ngFor=\"let message of messages; let ix = index\" [message]=\"message\"\r\n (closeClicked)=\"removeMessage(ix)\"></lib-tld-notification-message>\r\n <iframe id=\"letsmt-translate-page-iframe\" name=\"letsmtTranslatePageIframe\" src=\"about:blank\"\r\n [attr.sandbox]=\"sandbox\"></iframe>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".tld-translate-switcher-wrapper{padding:0 .5em;margin-left:auto;margin-right:auto}.translate-container-header{padding:.6em 1em 0;box-sizing:border-box}#widget .translate-container-header{width:100%;height:100%;margin-left:auto;margin-right:auto}#letsmt-translate-page-iframe{width:100%;height:100%;border:0}#website-frame-container{inset:5.92em 0 0;border-top:solid 1px #d4d4d4;position:fixed}#home-link{position:absolute;left:.75em;top:.2em;display:flex;flex-direction:row;text-decoration:none}#home-link img{margin-right:.75em;max-height:5.5em}@media screen and (max-width: 73em){#home-link{display:none}}.back-btn .mat-flat-button,.load-btn .mat-flat-button{width:27px;height:27px;line-height:27px;min-width:27px;padding:0}.back-btn .mat-flat-button .mat-icon,.load-btn .mat-flat-button .mat-icon{vertical-align:top;font-size:1.25em}.address-wrapper{max-width:60em;margin-bottom:.38em;margin-left:auto;margin-right:auto}.load-btn{padding-left:.8em}.back-btn{padding-right:.8em}.cancel-button,.restore-button{min-width:100px;height:36px;align-self:center}.w-100{width:100%}.address-input{padding-left:.9em;padding-right:.65em}\n"] }]
486
- }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.TldTranslateConfigService }, { type: i3.TldTranslateButtonService }, { type: i2.TldAlertService }, { type: i4.Router }, { type: i4.ActivatedRoute }, { type: i5.TldSystemService }, { type: i6.TldTermCollectionsService }, { type: i7.TldTranslateWebService }, { type: i2.IconService }, { type: i18.TranslationApiVersion, decorators: [{
486
+ }], ctorParameters: function () { return [{ type: i1.TranslateService }, { type: i2.TldTranslateConfigService }, { type: i3.TldTranslateButtonService }, { type: i2.TldAlertService }, { type: i4.Router }, { type: i4.ActivatedRoute }, { type: i5.TldSystemService }, { type: i6.TerminologyService }, { type: i7.TldTranslateWebService }, { type: i2.IconService }, { type: i18.TranslationApiVersion, decorators: [{
487
487
  type: Inject,
488
488
  args: [TRANSLATION_API_VERSION_TOKEN]
489
489
  }] }]; }, propDecorators: { product: [{
@@ -496,4 +496,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
496
496
  }], onError: [{
497
497
  type: Output
498
498
  }] } });
499
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS13ZWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXdlYi90bGQtdHJhbnNsYXRlLXdlYi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtd2ViL3RsZC10cmFuc2xhdGUtd2ViL3RsZC10cmFuc2xhdGUtd2ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpILE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBdUIsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRSxPQUFPLEVBQXdCLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUl6RSxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FB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O2dCQUNuQixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDYixDQUFDO1lBRUYsVUFBVSxDQUFDLFFBQVEsRUFDakIsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RDLENBQUM7S0FDSDsyRkFFVSw0QkFBNEI7a0JBakJ4QyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQjt3QkFDVixPQUFPLENBQUMsb0JBQW9CLEVBQUU7NEJBRTVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUVGLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDdEMsQ0FBQztxQkFDSDs7MEJBY0UsTUFBTTsyQkFBQyw2QkFBNkI7NENBSTlCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRVksYUFBYTtzQkFBOUIsU0FBUzt1QkFBQyxLQUFLO2dCQXVCTixPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9ncmVzc0Jhck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgKiBhcyAkIGZyb20gJ2pxdWVyeSc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbk1lc3NhZ2UsIE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVCdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9jb21wb25lbnRzL3RyYW5zbGF0ZS1idXR0b24vdGxkLXRyYW5zbGF0ZS1idXR0b24uc2VydmljZSc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVNZXNzYWdlLCBUbGRNZXNzYWdlVHlwZSwgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSwgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRsZFRlcm1Db2xsZWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi8uLi90bGQtdGVybS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IElBY3RpdmVEYXRhIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvbW9kZWxzL2FjdGl2ZS1kYXRhLm1vZGVsJztcclxuaW1wb3J0IHsgSVN3aXRjaGVyVHJhbnNsYXRpb25PcHRpb25zIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvbW9kZWxzL3N3aXRjaGVyLW9wdGlvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBUbGRTeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLXRvb2x0aXAvc2VydmljZXMvdGxkLXN5c3RlbS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlV2ViU2VydmljZSB9IGZyb20gJy4uL3RsZC10cmFuc2xhdGUtd2ViLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBhdmFpbGFibGVMYW5ndWFnZXMgfSBmcm9tICcuLy4uLy4uLy4uL2kxOG4vYXZhaWxhYmxlLWxhbmd1YWdlcyc7XHJcblxyXG5cclxuZGVjbGFyZSB2YXIgd2luZG93OiBhbnk7XHJcbndpbmRvdy4kID0gd2luZG93LmpRdWVyeSA9ICQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RsZC10cmFuc2xhdGUtd2Vic2l0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RsZC10cmFuc2xhdGUtd2ViLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGFuaW1hdGlvbnM6IFtcclxuICAgIHRyaWdnZXIoJ29wZW5DbG9zZUFuaW1hdGlvbicsIFtcclxuXHJcbiAgICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgICBzdHlsZSh7IGhlaWdodDogMCB9KSxcclxuICAgICAgICBhbmltYXRlKDUwMClcclxuICAgICAgXSksXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLFxyXG4gICAgICAgIGFuaW1hdGUoNTAwLCBzdHlsZSh7IGhlaWdodDogMCB9KSkpXHJcbiAgICBdKVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZVdlYnNpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU2VydmljZTogVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlQnV0dG9uU2VydmljZTogVGxkVHJhbnNsYXRlQnV0dG9uU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWxlcnRzOiBUbGRBbGVydFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBhY3RpdmF0ZWRSb3V0ZTogQWN0aXZhdGVkUm91dGUsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFN5c3RlbTogVGxkU3lzdGVtU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29sbGVjdGlvblNlcnZpY2U6IFRsZFRlcm1Db2xsZWN0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRsZFRyYW5zbGF0ZVdlYlNlcnZpY2U6IFRsZFRyYW5zbGF0ZVdlYlNlcnZpY2UsXHJcbiAgICBpY29uU2VydmljZTogSWNvblNlcnZpY2UsXHJcbiAgICBASW5qZWN0KFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOKSBwcml2YXRlIHJlYWRvbmx5IGFwaVZlcnNpb246IFRyYW5zbGF0aW9uQXBpVmVyc2lvblxyXG4gICkge1xyXG4gICAgaWNvblNlcnZpY2UucmVnaXN0ZXJJY29ucygpO1xyXG4gIH1cclxuICBASW5wdXQoKSBwcm9kdWN0ID0gJyc7XHJcbiAgQElucHV0KCkgY29tcGFueSA9ICcnO1xyXG5cclxuICBAVmlld0NoaWxkKCd1cmwnKSB1cmxJbnB1dEZpZWxkOiBFbGVtZW50UmVmO1xyXG5cclxuICBzZXR0aW5nU3lzdGVtTGlzdEZvckZpcnN0VGltZTogYm9vbGVhbjtcclxuICB1cmxUb1RyYW5zbGF0ZSA9ICcnOyAvLyB0cmFuc2xhdGVXZWJfVXJsXHJcbiAgc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gIHNob3dSZXN0b3JlID0gZmFsc2U7XHJcbiAgc2hvd1RyYW5zbGF0ZUJ0biA9IHRydWU7XHJcbiAgdHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICBkaXNhYmxlQnV0dG9uID0gZmFsc2U7IC8vIGFjdGlvbkJ1dHRvbkRpc2FibGVkXHJcblxyXG4gIC8vIHBhcmFtcyBmcm9tIGNvbmZpZyBzZXJ2aWNlLlxyXG4gIGxvZ29Mb2NhdGlvbjogc3RyaW5nO1xyXG4gIGRlYnVnOiBib29sZWFuO1xyXG4gIHdlYkxhbmdBdXRvZGV0ZWN0OiBib29sZWFuOyAvLyBUT0RPIGNoZWNrIGlmIHJlYWxseSBuZWVkZWQgLy8gYWZ0ZXIgcGFnZSBpcyBsb2FkZWQgYXV0byBkZXRlY3QgbGFuZ3VhZ2UgYW5kIGNoYW5nZSBhY3RpdmUgc3lzdGVtXHJcbiAgYWxsb3dTdWdnZXN0aW9uczogYm9vbGVhbjtcclxuICBoaWRlUG9wdXA6IGJvb2xlYW47XHJcbiAgdHJhbnNsYXRlUGFnZVBhdGg6IHN0cmluZzsgLy8gIHBhdGggdG8gV2ViVHJhbnNsYXRpb25Qcm94eVxyXG4gIGNsaWVudElkOiBzdHJpbmc7XHJcbiAgYXBwSWQ6IHN0cmluZztcclxuICB0cmFuc2xhdGVTZXJ2aWNlVXJsOiBzdHJpbmc7XHJcblxyXG4gIHN3aXRjaGVyT3B0aW9uczogSVN3aXRjaGVyVHJhbnNsYXRpb25PcHRpb25zO1xyXG5cclxuICBAT3V0cHV0KCkgb25FcnJvcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgYWN0aXZlU3lzdGVtT2JqOiBJQWN0aXZlRGF0YTtcclxuICBtZXNzYWdlczogTm90aWZpY2F0aW9uTWVzc2FnZVtdID0gW107XHJcblxyXG4gIC8vUHJvZ3Jlc3MgYmFyXHJcbiAgbW9kZTogUHJvZ3Jlc3NCYXJNb2RlID0gJ2RldGVybWluYXRlJztcclxuICBwcm9ncmVzc1ZhbHVlID0gMDtcclxuICBzaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBnZXQgc2hvd05vU3lzdGVtc0Vycm9yKCkge1xyXG4gICAgcmV0dXJuIHRoaXMudGxkU3lzdGVtLm5vU3lzdGVtc0Vycm9yO1xyXG4gIH1cclxuICBub1N5c3RlbXNFcnJvcjogSVRsZFRyYW5zbGF0ZU1lc3NhZ2UgPSB7IHRleHQ6ICdUTERfVFJBTlNMQVRFLkVSUk9SX05PX1NZU1RFTVNfTE9BREVEJywgdHlwZTogVGxkTWVzc2FnZVR5cGUuRVJST1IgfTtcclxuXHJcbiAgZ2V0IGFjdGlvbkJ1dHRvbkRpc2FibGVkKCkgeyByZXR1cm4gdGhpcy5kaXNhYmxlQnV0dG9uOyB9XHJcblxyXG5cclxuICBnZXQgaGlkZUxhbmdNZW51TGFiZWxzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZT8uY29yZUNvbmZpZy5oaWRlTGFuZ01lbnVMYWJlbHM7XHJcbiAgfVxyXG5cclxuICBnZXQgbWF4RGlzcGxheWVkTGFuZ3VhZ2VzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcubWF4RGlzcGxheWVkTGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ29sbGVjdGlvbnNBY3RpdmF0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlPy50ZXJtQ29uZmlnPy5pc0NvbGxlY3Rpb25zQWN0aXZhdGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5zaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWU7XHJcbiAgfVxyXG5cclxuICBnZXQgc2FuZGJveCgpIHsgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS53ZWJ0cmFuc2xhdGVDb25maWcuc2FuZGJveDsgfVxyXG5cclxuICByZWFkb25seSB1c2VQYXJlbnRXaWR0aCA9IHRydWU7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNoYW5nZUF1dGgoaXNBdXRoOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5pc0F1dGggPSBpc0F1dGg7XHJcbiAgICB0aGlzLmluaXRpYWxpemVXaWRnZXQoKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxpemVXaWRnZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5pbml0KHRoaXMudGxkU3lzdGVtLmdldExhc3RVc2VkU3lzdGVtKCkgPz8gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuZGVmYXVsdFN5c3RlbUlkKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmRlYnVnKSB7XHJcbiAgICAgIGZvciAoY29uc3Qga2V5IGluIGF2YWlsYWJsZUxhbmd1YWdlcykge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLnNldFRyYW5zbGF0aW9uKGtleSwgYXZhaWxhYmxlTGFuZ3VhZ2VzW2tleV0sIHRydWUpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmlzQXV0aCA9IHRydWU7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlLnVzZShcImVuXCIpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5pdEZyb21Db25maWcoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZVdpZGdldCgpO1xyXG5cclxuICAgIHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZURhdGEoKS5waXBlKFxyXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKHZhbDogSUFjdGl2ZURhdGEpID0+IHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVN5c3RlbU9iaiA9IHZhbDtcclxuICAgICAgICBpZiAoIXZhbCkge1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN3aXRjaGVyT3B0aW9ucyA9IHtcclxuICAgICAgICAgIGRvbWFpbnM6IHZhbC5kb21haW5zLFxyXG4gICAgICAgICAgc291cmNlOiB7IGNvZGU6IHZhbC5zb3VyY2VMYW5nLmxhbmcsIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQgfSxcclxuICAgICAgICAgIHNvdXJjZUxhbmd1YWdlTGlzdDogdmFsLnNvdXJjZUxhbmdMaXN0LFxyXG4gICAgICAgICAgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCxcclxuICAgICAgICAgIHN3YXBBY3RpdmU6IHZhbC5zd2FwTGFuZ0FjdGl2ZSxcclxuICAgICAgICAgIHRhcmdldDogeyBjb2RlOiB2YWwudGFyZ2V0TGFuZy5sYW5nLCBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkIH0sXHJcbiAgICAgICAgICB0YXJnZXRMYW5ndWFnZUxpc3Q6IHZhbC50YXJnZXRMYW5nTGlzdCxcclxuICAgICAgICAgIHZlbmRvcnM6IHZhbC52ZW5kb3JzXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcblxyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlQnV0dG9uU2VydmljZS5nZXRBY3Rpb25DbGljaygpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVCdXR0b25DbGljaygpO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmFsZXJ0cy5nZXRNZXNzYWdlcygpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgobWVzc2FnZTogTm90aWZpY2F0aW9uTWVzc2FnZSkgPT4ge1xyXG4gICAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09IE5vdGlmaWNhdGlvbk1lc3NhZ2VUeXBlLkVSUk9SKSB7XHJcbiAgICAgICAgICB0aGlzLm9uRXJyb3IuZW1pdChtZXNzYWdlLmVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gcHVzaGluZyBvbmx5IFwib25lIG9mXCIgbWVzc2FnZSBpbiBhcnJheSwgc28gc2NyZWVuIGlzIG5vdCBzcGFtbWVkIHdpdGggbWVzc2FnZXNcclxuICAgICAgICBjb25zdCBleGlzdGluZ01lc3NhZ2UgPSB0aGlzLm1lc3NhZ2VzLmZpbmQobXNnID0+IG1zZy5ib2R5ID09PSBtZXNzYWdlLmJvZHkgJiYgbXNnLnR5cGUgPT09IG1lc3NhZ2UudHlwZSAmJiBtc2cudGl0bGUgPT09IG1lc3NhZ2UudGl0bGUpO1xyXG4gICAgICAgIGlmICghZXhpc3RpbmdNZXNzYWdlKSB7XHJcbiAgICAgICAgICB0aGlzLm1lc3NhZ2VzLnB1c2gobWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ0FQUF9OQU1FJykucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0ZXh0OiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5hcHBOYW1lID0gdGV4dDtcclxuICAgICAgfSk7XHJcblxyXG4gICAgd2luZG93Lm9ubWVzc2FnZSA9IHRoaXMucmVjZWl2ZU1lc3NhZ2UuYmluZCh0aGlzKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy50bGRUcmFuc2xhdGVXZWJTZXJ2aWNlLnd0U2NyaXB0c0FkZGVkKSB7XHJcbiAgICAgIHRoaXMuYWRkU2NyaXB0KCcuL2Fzc2V0cy93ZWJ0cmFuc2xhdGUvdHJhbnNsYXRlLXdlYnNpdGUuanMnKTtcclxuICAgICAgdGhpcy5hZGRDb25maWd1cmF0aW9uU2NyaXAoKTtcclxuICAgICAgdGhpcy5hZGRTY3JpcHQoJy4vYXNzZXRzL3dlYnRyYW5zbGF0ZS9wYWdlLXRyYW5zbGF0ZS13aWRnZXQuanMnKTtcclxuICAgICAgdGhpcy50bGRUcmFuc2xhdGVXZWJTZXJ2aWNlLnd0U2NyaXB0c0FkZGVkID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQobnVsbCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlY2VpdmVNZXNzYWdlKGV2ZW50OiBhbnkpIHtcclxuICAgIC8vIFRPRE8gYWRkIGNvcnJlY3Qgb3JpZ2luXHJcbiAgICAvLyBpZiAoZXZlbnQub3JpZ2luICE9PSBcIlwiKVxyXG4gICAgLy8gcmV0dXJuO1xyXG5cclxuICAgIGlmICh0aGlzLmRlYnVnKSB7XHJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXHJcbiAgICAgIGNvbnNvbGUuaW5mbygnTWVzc2FnZSByZWNlaXZlZCBmcm9tIGlmcmFtZTonICsgSlNPTi5zdHJpbmdpZnkoZXZlbnQuZGF0YSkpO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBpZiAoZXZlbnQuZGF0YSAmJiBldmVudC5kYXRhLm1lc3NhZ2UpIHtcclxuICAgICAgc3dpdGNoIChldmVudC5kYXRhLm1lc3NhZ2UpIHtcclxuICAgICAgICBjYXNlICdyZWFkeSc6XHJcbiAgICAgICAgICB0aGlzLnRsZFN5c3RlbS5zeXNMaXN0LnBpcGUoXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcclxuICAgICAgICAgICAgICBsZXQgc3lzdGVtTGlzdFRvSWZyYW1lID0gW107XHJcbiAgICAgICAgICAgICAgZGF0YS5mb3JFYWNoKChzeXMsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzeXN0ZW1MaXN0VG9JZnJhbWUucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgIGlkOiBzeXMuaWQsXHJcbiAgICAgICAgICAgICAgICAgIHNvdXJjZUxhbmd1YWdlOiBzeXMuc291cmNlTGFuZ3VhZ2UsXHJcbiAgICAgICAgICAgICAgICAgIHRhcmdldExhbmd1YWdlOiBzeXMudGFyZ2V0TGFuZ3VhZ2UsXHJcbiAgICAgICAgICAgICAgICAgIG5hbWU6IHN5cy50aXRsZSA/PyBzeXMuaWQsXHJcbiAgICAgICAgICAgICAgICAgIG9yZGVyOiBpbmRleCxcclxuICAgICAgICAgICAgICAgICAgZG9tYWluOiBzeXMuZG9tYWluXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgICAgLy8gcHVzaCBzeXN0ZW0gbGlzdCB0byBpZnJhbWVcclxuICAgICAgICAgICAgICB0aGlzLnNldHRpbmdTeXN0ZW1MaXN0Rm9yRmlyc3RUaW1lID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ3NldFN5c3RlbUxpc3QnLCBzeXN0ZW1MaXN0OiBzeXN0ZW1MaXN0VG9JZnJhbWUgfSk7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudXJsKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHtcclxuICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ2xvYWRVcmwnLFxyXG4gICAgICAgICAgICAgICAgICB1cmw6IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXMudXJsLFxyXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVBZnRlckxvYWQ6IGZhbHNlXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIHRoaXMudXJsVG9UcmFuc2xhdGUgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnVybDtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICB0aGlzLnVybElucHV0RmllbGQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VybExvYWRlZCc6XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gd2VicGFnZSBmaW5pc2hlZCBsb2FkaW5nLCBzZXQgdGhlIGZ1bGwgdXJsIGluIGFkZHJlc3MgYm94XHJcbiAgICAgICAgICB0aGlzLnVybFRvVHJhbnNsYXRlID0gZXZlbnQuZGF0YS51cmw7XHJcblxyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3N0YXJ0ZWRMb2FkaW5nJzpcclxuICAgICAgICAgIHRoaXMubW9kZSA9ICdpbmRldGVybWluYXRlJztcclxuICAgICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdG9wcGVkTG9hZGluZyc6XHJcbiAgICAgICAgICBpZiAoIXRoaXMudHJhbnNsYXRpbmcpIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93Q2FuY2VsID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gdHJ1ZTtcclxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9uID0gZmFsc2U7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzeXN0ZW1DaGFuZ2VkJzpcclxuICAgICAgICAgIC8vIHNldCBkZWZhdWx0IHN5c3RlbSwgcmlnaHQgYWZ0ZXIgd2ViIHRyYW5zbGF0aW9uIHdpZGdldCBpbiBpZnJhbWUgaXMgbG9hZGVkXHJcbiAgICAgICAgICBpZiAodGhpcy5zZXR0aW5nU3lzdGVtTGlzdEZvckZpcnN0VGltZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldHRpbmdTeXN0ZW1MaXN0Rm9yRmlyc3RUaW1lID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAnY2hhbmdlU3lzdGVtJywgc3lzdGVtSWQ6IHRoaXMuc3dpdGNoZXJPcHRpb25zLnN5c3RlbUlkIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gaWYgaW5pdGlhdGVkIGJ5IGxhbmd1YWdlIG9mIHRoZSBsb2FkZWQgd2VicGFnZSBiZWluZyBkaWZmZXJlbnRcclxuICAgICAgICAgICAgLy8gdGhhbiBzb3VyY2UgbGFuZ3VhZ2Ugb2YgY3VycmVudGx5IHNlbGVjdGVkICBzeXN0ZW1cclxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIGNoYW5nZSB0aGUgc3lzdGVtIGluIFVJIGFuZCB3YXJuIHRoZSB1c2VyIGFib3V0IHRoZSBmYWN0XHJcbiAgICAgICAgICAgIGlmIChldmVudC5kYXRhLmF1dG8gJiYgZXZlbnQuZGF0YS5jaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgICAgaWYgKHRoaXMud2ViTGFuZ0F1dG9kZXRlY3QpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3lzdGVtQ2hhbmdlKGV2ZW50LmRhdGEuc3lzdGVtSWQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zd2l0Y2hlck9wdGlvbnMuc3lzdGVtSWQgPSBldmVudC5kYXRhLnN5c3RlbUlkO1xyXG5cclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZDogdGhpcy5zd2l0Y2hlck9wdGlvbnMuc3lzdGVtSWQgfSk7XHJcblxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0aW9uU3RhcnRlZCc6XHJcbiAgICAgICAgICB0aGlzLm1vZGUgPSAnZGV0ZXJtaW5hdGUnO1xyXG4gICAgICAgICAgdGhpcy5wcm9ncmVzc1ZhbHVlID0gMDtcclxuICAgICAgICAgIHRoaXMuc2hvd1Byb2dyZXNzID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICAgIC8vIGRpc2FibGUgc3lzdGVtIGNoYW5nZSwgc2hvdyBjYW5jZWwgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLnNob3dUcmFuc2xhdGVCdG4gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSB0cnVlOyAgLy8gdG8gZGlzYWJsZVN5c3RlbUNoYW5nZVxyXG5cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0aW9uU3RvcHBlZCc6XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndHJhbnNsYXRlZCc6XHJcbiAgICAgICAgICAvLyBzaG93IHJlc3RvcmUgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLnNob3dSZXN0b3JlID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAndW50cmFuc2xhdGVkJzpcclxuICAgICAgICAgIC8vIGVuYWJsZSBzeXN0ZW0gY2hhbmdlLCBzaG93IHRyYW5zbGF0ZSBidXR0b25cclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2FuY2VsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAncHJvZ3Jlc3MnOlxyXG4gICAgICAgICAgdGhpcy5wcm9ncmVzc1ZhbHVlID0gZXZlbnQuZGF0YS5wcm9ncmVzcztcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcclxuICAgICAgICAgIC8vIGVuYWJsZSBzeXN0ZW0gY2hhbmdlLCBzaG93IHRyYW5zbGF0ZSBidXR0b25cclxuICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93Q2FuY2VsID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gICAgICAgICAgaWYgKGNvbnNvbGUpIHtcclxuICAgICAgICAgICAgY29uc29sZS5lcnJvcihldmVudC5kYXRhLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd3YXJuaW5nJzpcclxuICAgICAgICAgIGlmIChjb25zb2xlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihldmVudC5kYXRhLmRlc2NyaXB0aW9uKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2VuZE1lc3NhZ2UobWVzc2FnZTogYW55KTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmluZm8oJ01lc3NhZ2Ugc2VudCB0byBpZnJhbWU6JyArIEpTT04uc3RyaW5naWZ5KG1lc3NhZ2UpKTtcclxuICAgIH1cclxuXHJcbiAgICB3aW5kb3cucG9zdE1lc3NhZ2UobWVzc2FnZSwgd2luZG93LmxvY2F0aW9uLm9yaWdpbik7XHJcbiAgfVxyXG5cclxuICByZW1vdmVNZXNzYWdlKGl4OiBudW1iZXIpIHtcclxuICAgIHRoaXMubWVzc2FnZXMuc3BsaWNlKGl4LCAxKTtcclxuICB9XHJcblxyXG4gIHN3YXBMYW5ndWFnZXMoKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5zd2FwU3lzdGVtTGFuZ3VhZ2VzKCk7XHJcblxyXG4gICAgY29uc3Qgc3lzID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiBzeXMuaWQgfSk7XHJcbiAgfVxyXG5cclxuICBzeXN0ZW1DaGFuZ2Uoc3lzdGVtSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlU3lzdGVtKHN5c3RlbUlkKTtcclxuXHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkIH0pO1xyXG4gIH1cclxuXHJcbiAgc291cmNlTGFuZ3VhZ2VDaGFuZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uY2hhbmdlTGFuZ3VhZ2UobGFuZ3VhZ2UsIHRoaXMuc3dpdGNoZXJPcHRpb25zLnRhcmdldC5jb2RlKTtcclxuXHJcbiAgICBjb25zdCBzeXMgPSB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVTeXN0ZW1PYmooKTtcclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAnY2hhbmdlU3lzdGVtJywgc3lzdGVtSWQ6IHN5cy5pZCB9KTtcclxuICB9XHJcblxyXG4gIHRhcmdldExhbmd1YWdlQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZUxhbmd1YWdlKHRoaXMuc3dpdGNoZXJPcHRpb25zLnNvdXJjZS5jb2RlLCBsYW5ndWFnZSk7XHJcblxyXG4gICAgY29uc3Qgc3lzID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiBzeXMuaWQgfSk7XHJcbiAgfVxyXG5cclxuICB0cmFuc2xhdGVCdXR0b25DbGljaygpIHtcclxuICAgIGNvbnN0IHNlbGVjdGVkQ29sbGVjdGlvbklkID0gdGhpcy5jb2xsZWN0aW9uU2VydmljZS5zZWxlY3RlZElkRm9yVHJhbnNsYXRpb24oKTtcclxuXHJcbiAgICBpZiAodGhpcy51cmxUb1RyYW5zbGF0ZSAhPSAnJykge1xyXG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKHtcclxuICAgICAgICBtZXNzYWdlOiAnbG9hZFVybCcsXHJcbiAgICAgICAgdXJsOiB0aGlzLnVybFRvVHJhbnNsYXRlLFxyXG4gICAgICAgIHRyYW5zbGF0ZUFmdGVyTG9hZDogdHJ1ZSxcclxuICAgICAgICB0ZXJtQ29ycHVzSWQ6IHNlbGVjdGVkQ29sbGVjdGlvbklkXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9hZEJ1dHRvbkNsaWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy51cmxUb1RyYW5zbGF0ZSAhPSAnJykge1xyXG4gICAgICB0aGlzLnNlbmRNZXNzYWdlKHtcclxuICAgICAgICBtZXNzYWdlOiAnbG9hZFVybCcsXHJcbiAgICAgICAgdXJsOiB0aGlzLnVybFRvVHJhbnNsYXRlLFxyXG4gICAgICAgIHRyYW5zbGF0ZUFmdGVyTG9hZDogZmFsc2VcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ3VudHJhbnNsYXRlJyB9KTtcclxuICB9XHJcblxyXG4gIHJlc3RvcmUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ3VudHJhbnNsYXRlJyB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEZyb21Db25maWcoKSB7XHJcbiAgICBjb25zdCBjb3JlQ29uZmlnID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWc7XHJcbiAgICBjb25zdCB3ZWJ0cmFuc2xhdGVDb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2Uud2VidHJhbnNsYXRlQ29uZmlnO1xyXG4gICAgdGhpcy5sb2dvTG9jYXRpb24gPSB3ZWJ0cmFuc2xhdGVDb25maWcubG9nb0xvY2F0aW9uO1xyXG4gICAgdGhpcy5kZWJ1ZyA9IHdlYnRyYW5zbGF0ZUNvbmZpZy5kZWJ1ZztcclxuICAgIHRoaXMud2ViTGFuZ0F1dG9kZXRlY3QgPSB3ZWJ0cmFuc2xhdGVDb25maWcud2ViTGFuZ0F1dG9kZXRlY3Q7IC8vIGFmdGVyIHBhZ2UgaXMgbG9hZGVkIGF1dG8gZGV0ZWN0IGxhbmd1YWdlIGFuZCBjaGFuZ2UgYWN0aXZlIHN5c3RlbVxyXG4gICAgdGhpcy5hbGxvd1N1Z2dlc3Rpb25zID0gd2VidHJhbnNsYXRlQ29uZmlnLmFsbG93U3VnZ2VzdGlvbnM7XHJcbiAgICB0aGlzLmhpZGVQb3B1cCA9IHdlYnRyYW5zbGF0ZUNvbmZpZy5oaWRlUG9wdXA7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVBhZ2VQYXRoID0gd2VidHJhbnNsYXRlQ29uZmlnLnRyYW5zbGF0ZVBhZ2VQYXRoO1xyXG4gICAgdGhpcy5hcHBJZCA9IGNvcmVDb25maWcuYXBwSWQ7XHJcbiAgICB0aGlzLmNsaWVudElkID0gY29yZUNvbmZpZy5jbGllbnRJZDtcclxuXHJcbiAgICBpZiAodGhpcy5hcGlWZXJzaW9uID09IFRyYW5zbGF0aW9uQXBpVmVyc2lvbi5WMSkge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VVcmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy50cmFuc2xhdGlvblNlcnZpY2VVcmw7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuYXBpVmVyc2lvbiA9PSBUcmFuc2xhdGlvbkFwaVZlcnNpb24uVjIpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlVXJsID0gdGhpcy5jb25maWdTZXJ2aWNlLmFwaVYyQ29uZmlnLnRyYW5zbGF0aW9uVXJsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ29Ub0hvbWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcnKTtcclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAndW50cmFuc2xhdGUnIH0pO1xyXG4gIH1cclxuXHJcbiAgYWRkU2NyaXB0KHVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgIHNjcmlwdC5zcmMgPSB1cmw7XHJcbiAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XHJcbiAgfVxyXG5cclxuICBhZGRDb25maWd1cmF0aW9uU2NyaXAoKTogdm9pZCB7XHJcbiAgICBjb25zdCBib2R5ID0gZG9jdW1lbnQuYm9keSBhcyBIVE1MRGl2RWxlbWVudDtcclxuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcclxuICAgIHNjcmlwdC5pbm5lckhUTUwgPSAnJztcclxuICAgIHNjcmlwdC5pbm5lckhUTUwgPSBgXHJcblxyXG4gICAgaWYgKHR5cGVvZiAoVGlsZGUpID09PSAndW5kZWZpbmVkJylcclxuICAgICAgICBUaWxkZSA9IHt9O1xyXG5cclxuICAgICAgICBUaWxkZS5QYWdlVHJhbnNsYXRlV2lkZ2V0U2VydmVyQ29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgICAgIHRyYW5zbGF0ZVNlcnZpY2VVcmw6ICcke3RoaXMudHJhbnNsYXRlU2VydmljZVVybH0nLFxyXG4gICAgICAgIH07XHJcblxyXG4gICAgVGlsZGUuUGFnZVRyYW5zbGF0ZVdpZGdldENsaWVudENvbmZpZ3VyYXRpb24gPSB7XHJcbiAgICAgIFRyYW5zbGF0ZVBhZ2VQcmVmaXg6IGxvY2F0aW9uLmhvc3QgKyAnLyR7dGhpcy50cmFuc2xhdGVQYWdlUGF0aH0vJyxcclxuXHJcbiAgICAgICAgLy8gVXJsIG9mIHRoZSBwbGFjZSB3aGVyZSBDU1MgZm9yIHRyYW5zbGF0aW9uIHdpZGdldCBpcyBrZXB0XHJcbiAgICAgICAgLy8gaWYgeW91IHdpc2ggdG8gY3VzdG9taXplIHRoZSBzdGFuZGFyZCBsZXRzbXQgc3R5bGUsXHJcbiAgICAgICAgLy8gcG9pbnQgdGhpcyB0byB5b3VyIG93biBjc3MgZmlsZVxyXG4gICAgICAgIGNzc0xvY2F0aW9uOiAnLi9hc3NldHMvd2VidHJhbnNsYXRlL3dpZGdldC5jc3MnLFxyXG5cclxuICAgICAgICAvLyBjbGllbnQgaWQgZm9yIGF1dGhvcml6YXRpb25cclxuICAgICAgICBjbGllbnRJZDogXCIke3RoaXMuY2xpZW50SWR9XCIsXHJcblxyXG4gICAgICAgIC8vYXBpIHZlcnNpb25cclxuICAgICAgICBhcGlWZXJzaW9uOiBcIiR7dGhpcy5hcGlWZXJzaW9ufVwiLCAgLy8gMCAtIFYxOyAxIC0gVjJcclxuXHJcbiAgICAgICAgLy8gZW5hYmxlIG9yIGRpc2FibGUgb3JpZ2luYWwgdGV4dCBwb3B1cFxyXG4gICAgICAgIGhpZGVQb3B1cDogJHt0aGlzLmhpZGVQb3B1cH0sXHJcblxyXG4gICAgICAgIC8vIGlkIG9mIHRoZSA8ZGl2PiB3aGVyZSB0byBkcmF3IHdpZGdldFxyXG4gICAgICAgIHdpZGdldENvbnRhaW5lcklkOiBcIlBhZ2VUcmFuc2xhdGVXaWRnZXRcIixcclxuXHJcbiAgICAgICAgLy8gYXZhaWxhYmxlIHRyYW5zbGF0aW9uIHN5c3RlbXMgKHRhcmdldCBsYW5ndWFnZXMpXHJcbiAgICAgICAgdHJhbnNsYXRpb25TeXN0ZW1zOiBbXSxcclxuXHJcbiAgICAgICAgLy8gc291cmNlIGxhbmd1YWdlIG9mIHRoZSBwYWdlIHRoYXQgbmVlZHMgdG8gYmUgdHJhbnNsYXRlZFxyXG4gICAgICAgIGxhbmd1YWdlOiBcImVuXCIsXHJcblxyXG4gICAgICAgIC8vIHRyYW5zbGF0ZSB3aWRnZXQgVUkgdG8gbGFuZ3VhZ2UgdGhhdCBpcyBjaG9zZW4gaW4gdGFyZ2V0IGxhbmd1YWdlIGRyb3Bkb3duXHJcbiAgICAgICAgdHJhbnNsYXRlVUl0b0Nob3Nlbkxhbmd1YWdlOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gdHJhbnNsYXRlIHdpZGdldCBhZG1pbmlzdHJhdGl2ZSBwYXJ0IHRvIGxhbmd1YWdlIHRoYXQgaXMgY2hvc2VuIGluIHRhcmdldCBsYW5ndWFnZSBkcm9wZG93blxyXG4gICAgICAgIHRyYW5zbGF0ZUFkbWluVUl0b0Nob3Nlbkxhbmd1YWdlOiBmYWxzZSxcclxuXHJcbiAgICAgICAgdWlMYW5ndWFnZTogXCIke3RoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nfVwiLFxyXG5cclxuICAgICAgICAvLyBpZiBwYWdlIHdhcyB0cmFuc2xhdGVkIGFuZCB5b3UgY2xpY2sgb24gYSBsaW5rXHJcbiAgICAgICAgLy8gdGhhdCBnb2VzIHRvIGFub3RoZXIgcGFnZSBpbiB0aGUgc2FtZSBzaXRlLFxyXG4gICAgICAgIC8vIHRoZW4gdHJhbnNsYXRlIHRoZSBuZXdseSBvcGVuZWQgcGFnZSBhbHNvXHJcbiAgICAgICAgdHJhbnNsYXRlQWZ0ZXJOYXZpZ2F0aW9uOiB0cnVlLFxyXG5cclxuICAgICAgICAvLyB0cnVlIC0gbGFuZ3VhZ2UgbGlzdCBpcyBzaG93biBhcyBsaW5rc1xyXG4gICAgICAgIC8vIGZhbHNlIC0gbGFuZ3VhZ2UgbGlzdCBpcyBzaG93biBhcyBkcm9wZG93biBsaXN0IGFuZCBcInRyYW5zbGF0ZVwiIGJ1dHRvblxyXG4gICAgICAgIGxhbmd1YWdlTGlzdEFzTGlua3M6IGZhbHNlLFxyXG5cclxuICAgICAgICBzaG93SGVhZGVyOiBmYWxzZSxcclxuXHJcbiAgICAgICAgc2hvd1RyYW5zbGF0aW9uU3VnZ2VzdGlvbkFkbWluUGFnZTogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIGFmdGVyIHRyYW5zbGF0aW9uIHNob3cgYSB3YXJuaW5nIHRoYXQgcGFnZSBpcyBtYWNoaW5lIHRyYW5zbGF0ZWQgYXQgdGhlIHRvcCBvZiB0aGUgcGFnZVxyXG4gICAgICAgIHNob3dNYWNoaW5lVHJhbnNsYXRpb25XYXJuaW5nQWZ0ZXJUcmFuc2xhdGlvbjogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIHNob3cgYWxsIGF2YWlsYWJsZSB0cmFuc2xhdGlvbiBzeXN0ZW1zIGluc3RlYWQgb2YganVzdCB0aGUgb25lcyBjb25maWd1cmVkIGluIHRoaXMgZmlsZVxyXG4gICAgICAgIHNob3dBbGxUcmFuc2xhdGlvblN5c3RlbXM6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBhZGQgc29tZSBwaXhlbHMgdG8gZHJvcGRvd24gcGFkZGluZyB0byBtYWtlIGl0IGxvb2sgbW9yZSBzaW1pbGFyIG9uIGRpZmZlcmVudCBicm93c2Vyc1xyXG4gICAgICAgIGJyb3dzZXJTcGVjaWZpY0Ryb3Bkb3duUGFkZGluZzogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIG5hbWUgb2YgaWNvbiBzZXQ6IFwiZGVmYXVsdFwiLCBcIndoaXRlXCIsIFwiZ3JleVwiLCBcInJlZFwiXHJcbiAgICAgICAgaWNvblNldDogXCJ3aGl0ZVwiLFxyXG5cclxuICAgICAgICAvLyBQb3NzaWJsZSB2YWx1ZXM6IDEsIDIsIDMuIFRleHQgZm9yIGxpbmsgXCJSZXN0b3JlIG9yaWdpbmFsOiBMYXR2aWFuXCIgbWF5IGJlIG1hZGUgc2hvcnRlciBvciBsb25nZXJcclxuICAgICAgICAvLyB1c2VmdWwgdG8gYWRhcHQgdG8gc21hbGwgb3IgbGFyZ2Ugc2NyZWVuc1xyXG4gICAgICAgIHJlc3RvcmVPcmlnaW5hbExpbmtMZW5ndGg6IDIsXHJcblxyXG4gICAgICAgIC8vIGVuYWJsZSBvciBkaXNhYmxlIFwiU3VnZ2VzdCB0cmFuc2xhdGlvblwiIGxpbmsgaW4gcG9wdXAgdGhhdCBzaG93cyBvcmlnaW5hbCB0ZXh0IG9mIHRyYW5zbGF0ZWQgc2VudGVuY2VcclxuICAgICAgICBzdWdnZXN0VHJhbnNsYXRpb246ICR7dGhpcy5hbGxvd1N1Z2dlc3Rpb25zfSxcclxuXHJcbiAgICAgICAgLy8gc2hvdyBtZXNzYWdlIGJveCB3aGVuIGVycm9yIGhhcHBlbnM/XHJcbiAgICAgICAgc2hvd01lc3NhZ2VCb3hPbkVycm9yOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gYXBwbGljYXRpb24gaWRlbnRpZmllclxyXG4gICAgICAgIGFwcElkOiBcIiR7dGhpcy5hcHBJZH1cIixcclxuXHJcbiAgICAgICAgLy8gc2VydmVyIHdpbGwgb25seSByZXR1cm4gc3lzdGVtcyB0aGF0IGFyZSBtZWFudCBmb3IgZ2l2ZW4gYXBwSWRcclxuICAgICAgICBmaWx0ZXJTeXN0ZW1zQnlBcHBJZDogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIHNob3cgaGVscCBsaW5rXHJcbiAgICAgICAgZW5hYmxlSGVscDogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIHNob3cgZmVlZGJhY2sgbGlua1xyXG4gICAgICAgIGVuYWJsZUZlZWRiYWNrOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gYWxsb3dlZCBzeXN0ZW0gc3RhdHVzZXMsIGJ5IGRlZmF1bHQgb25seSBcInJ1bm5pbmdcIlxyXG4gICAgICAgIGFsbG93ZWRTeXN0ZW1TdGF0dXNlczogXCJydW5uaW5nXCIsXHJcblxyXG4gICAgICAgIC8vIHBhc3NlZCB0byB0cmFuc2xhdGlvbiBzZXJ2aWNlIGZvciBsb2dnaW5nLlxyXG4gICAgICAgIC8vIFwid2ViLWVtYmVkZGVkXCIgZm9yIHdpZGdldCB0aGF0IGlzIGVtYmVkZGVkIGluIGh0bWwgcGFnZSxcclxuICAgICAgICAvLyBcIndlYlwiIGZvciB3aWRnZXQgdGhhdCBjYW4gbG9hZCBhbmQgdHJhbnNsYXRlIGFueSB3ZWJzaXRlXHJcbiAgICAgICAgd2lkZ2V0OiBcIndlYlwiXHJcbiAgICB9O1xyXG4gICAgYDtcclxuICAgIGJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cIndpZGdldFwiIGNsYXNzPVwidGxkLXRyYW5zbGF0ZS13ZWJcIj5cclxuICA8ZGl2IGNsYXNzPVwidHJhbnNsYXRlLWNvbnRhaW5lci1oZWFkZXJcIj5cclxuICAgIDxhIGhyZWY9XCIvXCIgaWQ9XCJob21lLWxpbmtcIiBbYXR0ci50aXRsZV09XCInV0VCVFJBTlNMQVRFLkJBQ0snIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgIDxpbWcgW3NyY109XCJsb2dvTG9jYXRpb25cIiBhbHQ9XCJsb2dvXCI+XHJcbiAgICAgIDxsaWItY29tcGFueS1wcm9kdWN0ICpuZ0lmPVwiY29tcGFueSAmJiBwcm9kdWN0XCIgW2NvbXBhbnldPVwiY29tcGFueVwiIFtwcm9kdWN0XT1cInByb2R1Y3RcIj48L2xpYi1jb21wYW55LXByb2R1Y3Q+XHJcbiAgICA8L2E+XHJcbiAgICA8ZGl2IFtuZ0NsYXNzLmx0LXNtXT1cIid0bGQtdHJhbnNsYXRlLW1vYmlsZSdcIj5cclxuXHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGNsYXNzPVwiYWRkcmVzcy13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBmeEZsZXggY2xhc3M9XCJiYWNrLWJ0blwiPlxyXG5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImdvVG9Ib21lKClcIiBjb2xvcj1cImFjY2VudFwiIG1hdC1mbGF0LWJ1dHRvbiBbYXR0ci50aXRsZV09XCInV0VCVFJBTlNMQVRFLkJBQ0snIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBpbmxpbmU9dHJ1ZT5jaGV2cm9uX2xlZnQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgZnhGbGV4IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICA8ZGl2IGRhdGEtdGV4dD1cImFkZHJlc3NcIiBjbGFzcz1cIlwiPnt7J1dFQlRSQU5TTEFURS5BRERSRVNTJyB8IHRyYW5zbGF0ZX19PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmeEZsZXg9XCIxMDAlXCIgY2xhc3M9XCJhZGRyZXNzLWlucHV0XCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInVybFwiICN1cmwgY2xhc3M9XCJ1cmwgdy0xMDBcIiBhdXRvZm9jdXM9XCJhdXRvZm9jdXNcIiBbKG5nTW9kZWwpXT1cInVybFRvVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImxvYWRCdXR0b25DbGlja2VkKClcIiAvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgZnhGbGV4IGNsYXNzPVwibG9hZC1idG5cIj5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImxvYWRCdXR0b25DbGlja2VkKClcIiBjb2xvcj1cImFjY2VudFwiIG1hdC1mbGF0LWJ1dHRvblxyXG4gICAgICAgICAgICBbYXR0ci50aXRsZV09XCInV0VCVFJBTlNMQVRFLkxPQURfUEFHRScgfCB0cmFuc2xhdGVcIiBbZGlzYWJsZWRdPVwiIXVybFRvVHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDxtYXQtaWNvbiBpbmxpbmU9dHJ1ZT5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJ0bGQtdHJhbnNsYXRlLXN3aXRjaGVyLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIiBmeEZsZXg+XHJcbiAgICAgICAgICA8dGxkLXRyYW5zbGF0ZS1zd2l0Y2hlclxyXG4gICAgICAgICAgICAqbmdJZj1cInN3aXRjaGVyT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIFtpc0NvbGxlY3Rpb25zQWN0aXZhdGVkXT1cImlzQ29sbGVjdGlvbnNBY3RpdmF0ZWRcIlxyXG4gICAgICAgICAgICBbdXNlUGFyZW50V2lkdGhdPVwidXNlUGFyZW50V2lkdGhcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uQnV0dG9uRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBbc2V0dGluZ3NdPVwic3dpdGNoZXJPcHRpb25zXCJcclxuICAgICAgICAgICAgW3Nob3dUcmFuc2xhdGVCdXR0b25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbaGlkZU9uU21hbGxTY3JlZW5zXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgW2hpZGVMYW5nTWVudUxhYmVsc109XCJoaWRlTGFuZ01lbnVMYWJlbHNcIlxyXG4gICAgICAgICAgICBbbWF4RGlzcGxheWVkTGFuZ3VhZ2VzXT1cIm1heERpc3BsYXllZExhbmd1YWdlc1wiXHJcbiAgICAgICAgICAgIFtzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVdPVwic2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lXCJcclxuICAgICAgICAgICAgKG9uRG9tYWluQ2hhbmdlKT1cInN5c3RlbUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG9uQWN0aW9uQ2xpY2spPVwidHJhbnNsYXRlQnV0dG9uQ2xpY2soKVwiXHJcbiAgICAgICAgICAgIChvbkxhbmd1YWdlU3dhcCk9XCJzd2FwTGFuZ3VhZ2VzKClcIlxyXG4gICAgICAgICAgICAob25Tb3VyY2VMYW5ndWFnZUNoYW5nZSk9XCJzb3VyY2VMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgKG9uVGFyZ2V0TGFuZ3VhZ2VDaGFuZ2UpPVwidGFyZ2V0TGFuZ3VhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgPC90bGQtdHJhbnNsYXRlLXN3aXRjaGVyPlxyXG4gICAgICAgICAgPGRpdiBmeEZsZXhBbGlnbj1cImNlbnRlclwiIGNsYXNzPVwiYWN0aW9uLWJ0bi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDx0bGQtdHJhbnNsYXRlLWJ1dHRvblxyXG4gICAgICAgICAgICAgICpuZ0lmPVwic2hvd1RyYW5zbGF0ZUJ0blwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJzd2l0Y2hlci10cmFuc2xhdGUtYnV0dG9uXCJcclxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uQnV0dG9uRGlzYWJsZWQgfHwgIXVybFRvVHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgIDwvdGxkLXRyYW5zbGF0ZS1idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93Q2FuY2VsXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cImNhbmNlbCgpXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImNhbmNlbC1idXR0b25cIj57eydXRUJUUkFOU0xBVEUuQ0FOQ0VMJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJzaG93UmVzdG9yZVwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJyZXN0b3JlKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwicmVzdG9yZS1idXR0b25cIj57eydXRUJUUkFOU0xBVEUuUkVTVE9SRScgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgaWQ9XCJ3ZWJzaXRlLWZyYW1lLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bWF0LXByb2dyZXNzLWJhciAqbmdJZj1cInNob3dQcm9ncmVzc1wiIGNvbG9yPVwiYWNjZW50XCIgW21vZGVdPVwibW9kZVwiIFt2YWx1ZV09XCJwcm9ncmVzc1ZhbHVlXCI+XHJcbiAgICAgIDwvbWF0LXByb2dyZXNzLWJhcj5cclxuICAgICAgPGxpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2UgW0BvcGVuQ2xvc2VBbmltYXRpb25dICpuZ0Zvcj1cImxldCBtZXNzYWdlIG9mIG1lc3NhZ2VzOyBsZXQgaXggPSBpbmRleFwiIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxyXG4gICAgICAgIChjbG9zZUNsaWNrZWQpPVwicmVtb3ZlTWVzc2FnZShpeClcIj48L2xpYi10bGQtbm90aWZpY2F0aW9uLW1lc3NhZ2U+XHJcbiAgICAgICAgPGlmcmFtZSBpZD1cImxldHNtdC10cmFuc2xhdGUtcGFnZS1pZnJhbWVcIiBuYW1lPVwibGV0c210VHJhbnNsYXRlUGFnZUlmcmFtZVwiIHNyYz1cImFib3V0OmJsYW5rXCJcclxuICAgICAgICAgIFthdHRyLnNhbmRib3hdPVwic2FuZGJveFwiPjwvaWZyYW1lPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
499
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS13ZWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGxkLXRyYW5zbGF0ZS9zcmMvbGliL21vZHVsZXMvdGxkLXdlYi90bGQtdHJhbnNsYXRlLXdlYi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvbW9kdWxlcy90bGQtd2ViL3RsZC10cmFuc2xhdGUtd2ViL3RsZC10cmFuc2xhdGUtd2ViLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXpILE9BQU8sRUFBdUIsdUJBQXVCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRSxPQUFPLEVBQXdCLGNBQWMsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBT3RHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUl6RSxNQUFNLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FB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O2dCQUNuQixLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDYixDQUFDO1lBRUYsVUFBVSxDQUFDLFFBQVEsRUFDakIsT0FBTyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RDLENBQUM7S0FDSDsyRkFFVSw0QkFBNEI7a0JBakJ4QyxTQUFTOytCQUNFLHVCQUF1QixjQUdyQjt3QkFDVixPQUFPLENBQUMsb0JBQW9CLEVBQUU7NEJBRTVCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztnQ0FDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQzs2QkFDYixDQUFDOzRCQUVGLFVBQVUsQ0FBQyxRQUFRLEVBQ2pCLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDdEMsQ0FBQztxQkFDSDs7MEJBY0UsTUFBTTsyQkFBQyw2QkFBNkI7NENBSTlCLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRVksYUFBYTtzQkFBOUIsU0FBUzt1QkFBQyxLQUFLO2dCQXVCTixPQUFPO3NCQUFoQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQcm9ncmVzc0Jhck1vZGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1iYXInO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25NZXNzYWdlLCBOb3RpZmljYXRpb25NZXNzYWdlVHlwZSB9IGZyb20gJ0B0aWxkZS1ubHAvbmd4LWNvbW1vbic7XHJcbmltcG9ydCAqIGFzICQgZnJvbSAnanF1ZXJ5JztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTiB9IGZyb20gJy4uLy4uLy4uL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVCdXR0b25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9jb21wb25lbnRzL3RyYW5zbGF0ZS1idXR0b24vdGxkLXRyYW5zbGF0ZS1idXR0b24uc2VydmljZSc7XHJcbmltcG9ydCB7IElUbGRUcmFuc2xhdGVNZXNzYWdlLCBUbGRNZXNzYWdlVHlwZSwgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBJY29uU2VydmljZSwgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRlcm1pbm9sb2d5U2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm1pbm9sb2d5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQWN0aXZlRGF0YSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL21vZGVscy9hY3RpdmUtZGF0YS5tb2RlbCc7XHJcbmltcG9ydCB7IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucyB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL21vZGVscy9zd2l0Y2hlci1vcHRpb25zLm1vZGVsJztcclxuaW1wb3J0IHsgVGxkU3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL3RsZC10b29sdGlwL3NlcnZpY2VzL3RsZC1zeXN0ZW0uc2VydmljZSc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZVdlYlNlcnZpY2UgfSBmcm9tICcuLi90bGQtdHJhbnNsYXRlLXdlYi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgYXZhaWxhYmxlTGFuZ3VhZ2VzIH0gZnJvbSAnLi8uLi8uLi8uLi9pMThuL2F2YWlsYWJsZS1sYW5ndWFnZXMnO1xyXG5cclxuXHJcbmRlY2xhcmUgdmFyIHdpbmRvdzogYW55O1xyXG53aW5kb3cuJCA9IHdpbmRvdy5qUXVlcnkgPSAkO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0bGQtdHJhbnNsYXRlLXdlYnNpdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90bGQtdHJhbnNsYXRlLXdlYi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGxkLXRyYW5zbGF0ZS13ZWIuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdvcGVuQ2xvc2VBbmltYXRpb24nLCBbXHJcblxyXG4gICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXHJcbiAgICAgICAgc3R5bGUoeyBoZWlnaHQ6IDAgfSksXHJcbiAgICAgICAgYW5pbWF0ZSg1MDApXHJcbiAgICAgIF0pLFxyXG5cclxuICAgICAgdHJhbnNpdGlvbignOmxlYXZlJyxcclxuICAgICAgICBhbmltYXRlKDUwMCwgc3R5bGUoeyBoZWlnaHQ6IDAgfSkpKVxyXG4gICAgXSlcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVXZWJzaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZ1NlcnZpY2U6IFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZUJ1dHRvblNlcnZpY2U6IFRsZFRyYW5zbGF0ZUJ1dHRvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFsZXJ0czogVGxkQWxlcnRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0bGRTeXN0ZW06IFRsZFN5c3RlbVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRlcm1pbm9sb2d5U2VydmljZTogVGVybWlub2xvZ3lTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0bGRUcmFuc2xhdGVXZWJTZXJ2aWNlOiBUbGRUcmFuc2xhdGVXZWJTZXJ2aWNlLFxyXG4gICAgaWNvblNlcnZpY2U6IEljb25TZXJ2aWNlLFxyXG4gICAgQEluamVjdChUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBhcGlWZXJzaW9uOiBUcmFuc2xhdGlvbkFwaVZlcnNpb25cclxuICApIHtcclxuICAgIGljb25TZXJ2aWNlLnJlZ2lzdGVySWNvbnMoKTtcclxuICB9XHJcbiAgQElucHV0KCkgcHJvZHVjdCA9ICcnO1xyXG4gIEBJbnB1dCgpIGNvbXBhbnkgPSAnJztcclxuXHJcbiAgQFZpZXdDaGlsZCgndXJsJykgdXJsSW5wdXRGaWVsZDogRWxlbWVudFJlZjtcclxuXHJcbiAgc2V0dGluZ1N5c3RlbUxpc3RGb3JGaXJzdFRpbWU6IGJvb2xlYW47XHJcbiAgdXJsVG9UcmFuc2xhdGUgPSAnJzsgLy8gdHJhbnNsYXRlV2ViX1VybFxyXG4gIHNob3dDYW5jZWwgPSBmYWxzZTtcclxuICBzaG93UmVzdG9yZSA9IGZhbHNlO1xyXG4gIHNob3dUcmFuc2xhdGVCdG4gPSB0cnVlO1xyXG4gIHRyYW5zbGF0aW5nID0gZmFsc2U7XHJcbiAgZGlzYWJsZUJ1dHRvbiA9IGZhbHNlOyAvLyBhY3Rpb25CdXR0b25EaXNhYmxlZFxyXG5cclxuICAvLyBwYXJhbXMgZnJvbSBjb25maWcgc2VydmljZS5cclxuICBsb2dvTG9jYXRpb246IHN0cmluZztcclxuICBkZWJ1ZzogYm9vbGVhbjtcclxuICB3ZWJMYW5nQXV0b2RldGVjdDogYm9vbGVhbjsgLy8gVE9ETyBjaGVjayBpZiByZWFsbHkgbmVlZGVkIC8vIGFmdGVyIHBhZ2UgaXMgbG9hZGVkIGF1dG8gZGV0ZWN0IGxhbmd1YWdlIGFuZCBjaGFuZ2UgYWN0aXZlIHN5c3RlbVxyXG4gIGFsbG93U3VnZ2VzdGlvbnM6IGJvb2xlYW47XHJcbiAgaGlkZVBvcHVwOiBib29sZWFuO1xyXG4gIHRyYW5zbGF0ZVBhZ2VQYXRoOiBzdHJpbmc7IC8vICBwYXRoIHRvIFdlYlRyYW5zbGF0aW9uUHJveHlcclxuICBjbGllbnRJZDogc3RyaW5nO1xyXG4gIGFwcElkOiBzdHJpbmc7XHJcbiAgdHJhbnNsYXRlU2VydmljZVVybDogc3RyaW5nO1xyXG5cclxuICBzd2l0Y2hlck9wdGlvbnM6IElTd2l0Y2hlclRyYW5zbGF0aW9uT3B0aW9ucztcclxuXHJcbiAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gIGFjdGl2ZVN5c3RlbU9iajogSUFjdGl2ZURhdGE7XHJcbiAgbWVzc2FnZXM6IE5vdGlmaWNhdGlvbk1lc3NhZ2VbXSA9IFtdO1xyXG5cclxuICAvL1Byb2dyZXNzIGJhclxyXG4gIG1vZGU6IFByb2dyZXNzQmFyTW9kZSA9ICdkZXRlcm1pbmF0ZSc7XHJcbiAgcHJvZ3Jlc3NWYWx1ZSA9IDA7XHJcbiAgc2hvd1Byb2dyZXNzID0gZmFsc2U7XHJcbiAgZ2V0IHNob3dOb1N5c3RlbXNFcnJvcigpIHtcclxuICAgIHJldHVybiB0aGlzLnRsZFN5c3RlbS5ub1N5c3RlbXNFcnJvcjtcclxuICB9XHJcbiAgbm9TeXN0ZW1zRXJyb3I6IElUbGRUcmFuc2xhdGVNZXNzYWdlID0geyB0ZXh0OiAnVExEX1RSQU5TTEFURS5FUlJPUl9OT19TWVNURU1TX0xPQURFRCcsIHR5cGU6IFRsZE1lc3NhZ2VUeXBlLkVSUk9SIH07XHJcblxyXG4gIGdldCBhY3Rpb25CdXR0b25EaXNhYmxlZCgpIHsgcmV0dXJuIHRoaXMuZGlzYWJsZUJ1dHRvbjsgfVxyXG5cclxuXHJcbiAgZ2V0IGhpZGVMYW5nTWVudUxhYmVscygpIHtcclxuICAgIHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2U/LmNvcmVDb25maWcuaGlkZUxhbmdNZW51TGFiZWxzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG1heERpc3BsYXllZExhbmd1YWdlcygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLm1heERpc3BsYXllZExhbmd1YWdlcztcclxuICB9XHJcblxyXG4gIGdldCBpc0NvbGxlY3Rpb25zQWN0aXZhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZT8udGVybUNvbmZpZz8uaXNDb2xsZWN0aW9uc0FjdGl2YXRlZDtcclxuICB9XHJcblxyXG4gIGdldCBzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuc2hvd0RvbWFpbnNXaXRoTGFuZ3VhZ2VOYW1lO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNhbmRib3goKSB7IHJldHVybiB0aGlzLmNvbmZpZ1NlcnZpY2Uud2VidHJhbnNsYXRlQ29uZmlnLnNhbmRib3g7IH1cclxuXHJcbiAgcmVhZG9ubHkgdXNlUGFyZW50V2lkdGggPSB0cnVlO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICBjaGFuZ2VBdXRoKGlzQXV0aDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuaXNBdXRoID0gaXNBdXRoO1xyXG4gICAgdGhpcy5pbml0aWFsaXplV2lkZ2V0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplV2lkZ2V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uaW5pdCh0aGlzLnRsZFN5c3RlbS5nZXRMYXN0VXNlZFN5c3RlbSgpID8/IHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLmRlZmF1bHRTeXN0ZW1JZCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5kZWJ1Zykge1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBpbiBhdmFpbGFibGVMYW5ndWFnZXMpIHtcclxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXRUcmFuc2xhdGlvbihrZXksIGF2YWlsYWJsZUxhbmd1YWdlc1trZXldLCB0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZy5pc0F1dGggPSB0cnVlO1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZS51c2UoXCJlblwiKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluaXRGcm9tQ29uZmlnKCk7XHJcbiAgICB0aGlzLmluaXRpYWxpemVXaWRnZXQoKTtcclxuXHJcbiAgICB0aGlzLnRsZFN5c3RlbS5nZXRBY3RpdmVEYXRhKCkucGlwZShcclxuICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh2YWw6IElBY3RpdmVEYXRhKSA9PiB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTeXN0ZW1PYmogPSB2YWw7XHJcbiAgICAgICAgaWYgKCF2YWwpIHtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zd2l0Y2hlck9wdGlvbnMgPSB7XHJcbiAgICAgICAgICBkb21haW5zOiB2YWwuZG9tYWlucyxcclxuICAgICAgICAgIHNvdXJjZTogeyBjb2RlOiB2YWwuc291cmNlTGFuZy5sYW5nLCBzeXN0ZW1JZDogdmFsLnN5c3RlbUlkIH0sXHJcbiAgICAgICAgICBzb3VyY2VMYW5ndWFnZUxpc3Q6IHZhbC5zb3VyY2VMYW5nTGlzdCxcclxuICAgICAgICAgIHN5c3RlbUlkOiB2YWwuc3lzdGVtSWQsXHJcbiAgICAgICAgICBzd2FwQWN0aXZlOiB2YWwuc3dhcExhbmdBY3RpdmUsXHJcbiAgICAgICAgICB0YXJnZXQ6IHsgY29kZTogdmFsLnRhcmdldExhbmcubGFuZywgc3lzdGVtSWQ6IHZhbC5zeXN0ZW1JZCB9LFxyXG4gICAgICAgICAgdGFyZ2V0TGFuZ3VhZ2VMaXN0OiB2YWwudGFyZ2V0TGFuZ0xpc3QsXHJcbiAgICAgICAgICB2ZW5kb3JzOiB2YWwudmVuZG9yc1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuXHJcbiAgICB0aGlzLnRyYW5zbGF0ZUJ1dHRvblNlcnZpY2UuZ2V0QWN0aW9uQ2xpY2soKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudHJhbnNsYXRlQnV0dG9uQ2xpY2soKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy5hbGVydHMuZ2V0TWVzc2FnZXMoKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2U6IE5vdGlmaWNhdGlvbk1lc3NhZ2UpID0+IHtcclxuICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSBOb3RpZmljYXRpb25NZXNzYWdlVHlwZS5FUlJPUikge1xyXG4gICAgICAgICAgdGhpcy5vbkVycm9yLmVtaXQobWVzc2FnZS5lcnJvcik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHB1c2hpbmcgb25seSBcIm9uZSBvZlwiIG1lc3NhZ2UgaW4gYXJyYXksIHNvIHNjcmVlbiBpcyBub3Qgc3BhbW1lZCB3aXRoIG1lc3NhZ2VzXHJcbiAgICAgICAgY29uc3QgZXhpc3RpbmdNZXNzYWdlID0gdGhpcy5tZXNzYWdlcy5maW5kKG1zZyA9PiBtc2cuYm9keSA9PT0gbWVzc2FnZS5ib2R5ICYmIG1zZy50eXBlID09PSBtZXNzYWdlLnR5cGUgJiYgbXNnLnRpdGxlID09PSBtZXNzYWdlLnRpdGxlKTtcclxuICAgICAgICBpZiAoIWV4aXN0aW5nTWVzc2FnZSkge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlcy5wdXNoKG1lc3NhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGUuZ2V0KCdBUFBfTkFNRScpLnBpcGUoXHJcbiAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgodGV4dDogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvcmVDb25maWcuYXBwTmFtZSA9IHRleHQ7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSB0aGlzLnJlY2VpdmVNZXNzYWdlLmJpbmQodGhpcyk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMudGxkVHJhbnNsYXRlV2ViU2VydmljZS53dFNjcmlwdHNBZGRlZCkge1xyXG4gICAgICB0aGlzLmFkZFNjcmlwdCgnLi9hc3NldHMvd2VidHJhbnNsYXRlL3RyYW5zbGF0ZS13ZWJzaXRlLmpzJyk7XHJcbiAgICAgIHRoaXMuYWRkQ29uZmlndXJhdGlvblNjcmlwKCk7XHJcbiAgICAgIHRoaXMuYWRkU2NyaXB0KCcuL2Fzc2V0cy93ZWJ0cmFuc2xhdGUvcGFnZS10cmFuc2xhdGUtd2lkZ2V0LmpzJyk7XHJcbiAgICAgIHRoaXMudGxkVHJhbnNsYXRlV2ViU2VydmljZS53dFNjcmlwdHNBZGRlZCA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB3aW5kb3cub25tZXNzYWdlID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KG51bGwpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWNlaXZlTWVzc2FnZShldmVudDogYW55KSB7XHJcbiAgICAvLyBUT0RPIGFkZCBjb3JyZWN0IG9yaWdpblxyXG4gICAgLy8gaWYgKGV2ZW50Lm9yaWdpbiAhPT0gXCJcIilcclxuICAgIC8vIHJldHVybjtcclxuXHJcbiAgICBpZiAodGhpcy5kZWJ1Zykge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxyXG4gICAgICBjb25zb2xlLmluZm8oJ01lc3NhZ2UgcmVjZWl2ZWQgZnJvbSBpZnJhbWU6JyArIEpTT04uc3RyaW5naWZ5KGV2ZW50LmRhdGEpKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgaWYgKGV2ZW50LmRhdGEgJiYgZXZlbnQuZGF0YS5tZXNzYWdlKSB7XHJcbiAgICAgIHN3aXRjaCAoZXZlbnQuZGF0YS5tZXNzYWdlKSB7XHJcbiAgICAgICAgY2FzZSAncmVhZHknOlxyXG4gICAgICAgICAgdGhpcy50bGRTeXN0ZW0uc3lzTGlzdC5waXBlKFxyXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XHJcbiAgICAgICAgICAgICAgbGV0IHN5c3RlbUxpc3RUb0lmcmFtZSA9IFtdO1xyXG4gICAgICAgICAgICAgIGRhdGEuZm9yRWFjaCgoc3lzLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgc3lzdGVtTGlzdFRvSWZyYW1lLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICBpZDogc3lzLmlkLFxyXG4gICAgICAgICAgICAgICAgICBzb3VyY2VMYW5ndWFnZTogc3lzLnNvdXJjZUxhbmd1YWdlLFxyXG4gICAgICAgICAgICAgICAgICB0YXJnZXRMYW5ndWFnZTogc3lzLnRhcmdldExhbmd1YWdlLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBzeXMudGl0bGUgPz8gc3lzLmlkLFxyXG4gICAgICAgICAgICAgICAgICBvcmRlcjogaW5kZXgsXHJcbiAgICAgICAgICAgICAgICAgIGRvbWFpbjogc3lzLmRvbWFpblxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAgIC8vIHB1c2ggc3lzdGVtIGxpc3QgdG8gaWZyYW1lXHJcbiAgICAgICAgICAgICAgdGhpcy5zZXR0aW5nU3lzdGVtTGlzdEZvckZpcnN0VGltZSA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdzZXRTeXN0ZW1MaXN0Jywgc3lzdGVtTGlzdDogc3lzdGVtTGlzdFRvSWZyYW1lIH0pO1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnVybCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZSh7XHJcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdsb2FkVXJsJyxcclxuICAgICAgICAgICAgICAgICAgdXJsOiB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zLnVybCxcclxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlQWZ0ZXJMb2FkOiBmYWxzZVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVybFRvVHJhbnNsYXRlID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtcy51cmw7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgdGhpcy51cmxJbnB1dEZpZWxkLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd1cmxMb2FkZWQnOlxyXG4gICAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgIC8vIHdlYnBhZ2UgZmluaXNoZWQgbG9hZGluZywgc2V0IHRoZSBmdWxsIHVybCBpbiBhZGRyZXNzIGJveFxyXG4gICAgICAgICAgdGhpcy51cmxUb1RyYW5zbGF0ZSA9IGV2ZW50LmRhdGEudXJsO1xyXG5cclxuICAgICAgICAgIHRoaXMuc2hvd1RyYW5zbGF0ZUJ0biA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdzdGFydGVkTG9hZGluZyc6XHJcbiAgICAgICAgICB0aGlzLm1vZGUgPSAnaW5kZXRlcm1pbmF0ZSc7XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dDYW5jZWwgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1RyYW5zbGF0ZUJ0biA9IGZhbHNlO1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3RvcHBlZExvYWRpbmcnOlxyXG4gICAgICAgICAgaWYgKCF0aGlzLnRyYW5zbGF0aW5nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNob3dSZXN0b3JlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd1RyYW5zbGF0ZUJ0biA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZUJ1dHRvbiA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnc3lzdGVtQ2hhbmdlZCc6XHJcbiAgICAgICAgICAvLyBzZXQgZGVmYXVsdCBzeXN0ZW0sIHJpZ2h0IGFmdGVyIHdlYiB0cmFuc2xhdGlvbiB3aWRnZXQgaW4gaWZyYW1lIGlzIGxvYWRlZFxyXG4gICAgICAgICAgaWYgKHRoaXMuc2V0dGluZ1N5c3RlbUxpc3RGb3JGaXJzdFRpbWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXR0aW5nU3lzdGVtTGlzdEZvckZpcnN0VGltZSA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiB0aGlzLnN3aXRjaGVyT3B0aW9ucy5zeXN0ZW1JZCB9KTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGlmIGluaXRpYXRlZCBieSBsYW5ndWFnZSBvZiB0aGUgbG9hZGVkIHdlYnBhZ2UgYmVpbmcgZGlmZmVyZW50XHJcbiAgICAgICAgICAgIC8vIHRoYW4gc291cmNlIGxhbmd1YWdlIG9mIGN1cnJlbnRseSBzZWxlY3RlZCAgc3lzdGVtXHJcbiAgICAgICAgICAgIC8vIHdlIHNob3VsZCBjaGFuZ2UgdGhlIHN5c3RlbSBpbiBVSSBhbmQgd2FybiB0aGUgdXNlciBhYm91dCB0aGUgZmFjdFxyXG4gICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5hdXRvICYmIGV2ZW50LmRhdGEuY2hhbmdlZCkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLndlYkxhbmdBdXRvZGV0ZWN0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN5c3RlbUNoYW5nZShldmVudC5kYXRhLnN5c3RlbUlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3dpdGNoZXJPcHRpb25zLnN5c3RlbUlkID0gZXZlbnQuZGF0YS5zeXN0ZW1JZDtcclxuXHJcbiAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAnY2hhbmdlU3lzdGVtJywgc3lzdGVtSWQ6IHRoaXMuc3dpdGNoZXJPcHRpb25zLnN5c3RlbUlkIH0pO1xyXG5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0cmFuc2xhdGlvblN0YXJ0ZWQnOlxyXG4gICAgICAgICAgdGhpcy5tb2RlID0gJ2RldGVybWluYXRlJztcclxuICAgICAgICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IDA7XHJcbiAgICAgICAgICB0aGlzLnNob3dQcm9ncmVzcyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0aW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgICAvLyBkaXNhYmxlIHN5c3RlbSBjaGFuZ2UsIHNob3cgY2FuY2VsIGJ1dHRvblxyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLnNob3dDYW5jZWwgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5kaXNhYmxlQnV0dG9uID0gdHJ1ZTsgIC8vIHRvIGRpc2FibGVTeXN0ZW1DaGFuZ2VcclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICd0cmFuc2xhdGlvblN0b3BwZWQnOlxyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93UHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3RyYW5zbGF0ZWQnOlxyXG4gICAgICAgICAgLy8gc2hvdyByZXN0b3JlIGJ1dHRvblxyXG4gICAgICAgICAgdGhpcy5zaG93UmVzdG9yZSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNob3dDYW5jZWwgPSBmYWxzZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3VudHJhbnNsYXRlZCc6XHJcbiAgICAgICAgICAvLyBlbmFibGUgc3lzdGVtIGNoYW5nZSwgc2hvdyB0cmFuc2xhdGUgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gdHJ1ZTtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIGNhc2UgJ3Byb2dyZXNzJzpcclxuICAgICAgICAgIHRoaXMucHJvZ3Jlc3NWYWx1ZSA9IGV2ZW50LmRhdGEucHJvZ3Jlc3M7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgICAvLyBlbmFibGUgc3lzdGVtIGNoYW5nZSwgc2hvdyB0cmFuc2xhdGUgYnV0dG9uXHJcbiAgICAgICAgICB0aGlzLmRpc2FibGVCdXR0b24gPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd1Jlc3RvcmUgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuc2hvd0NhbmNlbCA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5zaG93VHJhbnNsYXRlQnRuID0gdHJ1ZTtcclxuICAgICAgICAgIGlmIChjb25zb2xlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXZlbnQuZGF0YS5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnd2FybmluZyc6XHJcbiAgICAgICAgICBpZiAoY29uc29sZSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLndhcm4oZXZlbnQuZGF0YS5kZXNjcmlwdGlvbik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNlbmRNZXNzYWdlKG1lc3NhZ2U6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGVidWcpIHtcclxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgY29uc29sZS5pbmZvKCdNZXNzYWdlIHNlbnQgdG8gaWZyYW1lOicgKyBKU09OLnN0cmluZ2lmeShtZXNzYWdlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgd2luZG93LnBvc3RNZXNzYWdlKG1lc3NhZ2UsIHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlTWVzc2FnZShpeDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm1lc3NhZ2VzLnNwbGljZShpeCwgMSk7XHJcbiAgfVxyXG5cclxuICBzd2FwTGFuZ3VhZ2VzKCkge1xyXG4gICAgdGhpcy50bGRTeXN0ZW0uc3dhcFN5c3RlbUxhbmd1YWdlcygpO1xyXG5cclxuICAgIGNvbnN0IHN5cyA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZDogc3lzLmlkIH0pO1xyXG4gIH1cclxuXHJcbiAgc3lzdGVtQ2hhbmdlKHN5c3RlbUlkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZVN5c3RlbShzeXN0ZW1JZCk7XHJcblxyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZCB9KTtcclxuICB9XHJcblxyXG4gIHNvdXJjZUxhbmd1YWdlQ2hhbmdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGxkU3lzdGVtLmNoYW5nZUxhbmd1YWdlKGxhbmd1YWdlLCB0aGlzLnN3aXRjaGVyT3B0aW9ucy50YXJnZXQuY29kZSk7XHJcblxyXG4gICAgY29uc3Qgc3lzID0gdGhpcy50bGRTeXN0ZW0uZ2V0QWN0aXZlU3lzdGVtT2JqKCk7XHJcbiAgICB0aGlzLnNlbmRNZXNzYWdlKHsgbWVzc2FnZTogJ2NoYW5nZVN5c3RlbScsIHN5c3RlbUlkOiBzeXMuaWQgfSk7XHJcbiAgfVxyXG5cclxuICB0YXJnZXRMYW5ndWFnZUNoYW5nZShsYW5ndWFnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnRsZFN5c3RlbS5jaGFuZ2VMYW5ndWFnZSh0aGlzLnN3aXRjaGVyT3B0aW9ucy5zb3VyY2UuY29kZSwgbGFuZ3VhZ2UpO1xyXG5cclxuICAgIGNvbnN0IHN5cyA9IHRoaXMudGxkU3lzdGVtLmdldEFjdGl2ZVN5c3RlbU9iaigpO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICdjaGFuZ2VTeXN0ZW0nLCBzeXN0ZW1JZDogc3lzLmlkIH0pO1xyXG4gIH1cclxuXHJcbiAgdHJhbnNsYXRlQnV0dG9uQ2xpY2soKSB7XHJcbiAgICBjb25zdCBzZWxlY3RlZENvbGxlY3Rpb25JZCA9IHRoaXMudGVybWlub2xvZ3lTZXJ2aWNlLnNlbGVjdGVkSWRGb3JUcmFuc2xhdGlvbigpO1xyXG5cclxuICAgIGlmICh0aGlzLnVybFRvVHJhbnNsYXRlICE9ICcnKSB7XHJcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2Uoe1xyXG4gICAgICAgIG1lc3NhZ2U6ICdsb2FkVXJsJyxcclxuICAgICAgICB1cmw6IHRoaXMudXJsVG9UcmFuc2xhdGUsXHJcbiAgICAgICAgdHJhbnNsYXRlQWZ0ZXJMb2FkOiB0cnVlLFxyXG4gICAgICAgIHRlcm1Db3JwdXNJZDogc2VsZWN0ZWRDb2xsZWN0aW9uSWRcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkQnV0dG9uQ2xpY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLnVybFRvVHJhbnNsYXRlICE9ICcnKSB7XHJcbiAgICAgIHRoaXMuc2VuZE1lc3NhZ2Uoe1xyXG4gICAgICAgIG1lc3NhZ2U6ICdsb2FkVXJsJyxcclxuICAgICAgICB1cmw6IHRoaXMudXJsVG9UcmFuc2xhdGUsXHJcbiAgICAgICAgdHJhbnNsYXRlQWZ0ZXJMb2FkOiBmYWxzZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAndW50cmFuc2xhdGUnIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVzdG9yZSgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VuZE1lc3NhZ2UoeyBtZXNzYWdlOiAndW50cmFuc2xhdGUnIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RnJvbUNvbmZpZygpIHtcclxuICAgIGNvbnN0IGNvcmVDb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29yZUNvbmZpZztcclxuICAgIGNvbnN0IHdlYnRyYW5zbGF0ZUNvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS53ZWJ0cmFuc2xhdGVDb25maWc7XHJcbiAgICB0aGlzLmxvZ29Mb2NhdGlvbiA9IHdlYnRyYW5zbGF0ZUNvbmZpZy5sb2dvTG9jYXRpb247XHJcbiAgICB0aGlzLmRlYnVnID0gd2VidHJhbnNsYXRlQ29uZmlnLmRlYnVnO1xyXG4gICAgdGhpcy53ZWJMYW5nQXV0b2RldGVjdCA9IHdlYnRyYW5zbGF0ZUNvbmZpZy53ZWJMYW5nQXV0b2RldGVjdDsgLy8gYWZ0ZXIgcGFnZSBpcyBsb2FkZWQgYXV0byBkZXRlY3QgbGFuZ3VhZ2UgYW5kIGNoYW5nZSBhY3RpdmUgc3lzdGVtXHJcbiAgICB0aGlzLmFsbG93U3VnZ2VzdGlvbnMgPSB3ZWJ0cmFuc2xhdGVDb25maWcuYWxsb3dTdWdnZXN0aW9ucztcclxuICAgIHRoaXMuaGlkZVBvcHVwID0gd2VidHJhbnNsYXRlQ29uZmlnLmhpZGVQb3B1cDtcclxuICAgIHRoaXMudHJhbnNsYXRlUGFnZVBhdGggPSB3ZWJ0cmFuc2xhdGVDb25maWcudHJhbnNsYXRlUGFnZVBhdGg7XHJcbiAgICB0aGlzLmFwcElkID0gY29yZUNvbmZpZy5hcHBJZDtcclxuICAgIHRoaXMuY2xpZW50SWQgPSBjb3JlQ29uZmlnLmNsaWVudElkO1xyXG5cclxuICAgIGlmICh0aGlzLmFwaVZlcnNpb24gPT0gVHJhbnNsYXRpb25BcGlWZXJzaW9uLlYxKSB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZVVybCA9IHRoaXMuY29uZmlnU2VydmljZS5jb3JlQ29uZmlnLnRyYW5zbGF0aW9uU2VydmljZVVybDtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hcGlWZXJzaW9uID09IFRyYW5zbGF0aW9uQXBpVmVyc2lvbi5WMikge1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2VVcmwgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuYXBpVjJDb25maWcudHJhbnNsYXRpb25Vcmw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnb1RvSG9tZSgpOiB2b2lkIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJycpO1xyXG4gICAgdGhpcy5zZW5kTWVzc2FnZSh7IG1lc3NhZ2U6ICd1bnRyYW5zbGF0ZScgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRTY3JpcHQodXJsOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xyXG4gICAgc2NyaXB0LnNyYyA9IHVybDtcclxuICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcclxuICB9XHJcblxyXG4gIGFkZENvbmZpZ3VyYXRpb25TY3JpcCgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGJvZHkgPSBkb2N1bWVudC5ib2R5IGFzIEhUTUxEaXZFbGVtZW50O1xyXG4gICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XHJcbiAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xyXG4gICAgc2NyaXB0LmlubmVySFRNTCA9ICcnO1xyXG4gICAgc2NyaXB0LmlubmVySFRNTCA9IGBcclxuXHJcbiAgICBpZiAodHlwZW9mIChUaWxkZSkgPT09ICd1bmRlZmluZWQnKVxyXG4gICAgICAgIFRpbGRlID0ge307XHJcblxyXG4gICAgICAgIFRpbGRlLlBhZ2VUcmFuc2xhdGVXaWRnZXRTZXJ2ZXJDb25maWd1cmF0aW9uID0ge1xyXG4gICAgICAgICAgdHJhbnNsYXRlU2VydmljZVVybDogJyR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlVXJsfScsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICBUaWxkZS5QYWdlVHJhbnNsYXRlV2lkZ2V0Q2xpZW50Q29uZmlndXJhdGlvbiA9IHtcclxuICAgICAgVHJhbnNsYXRlUGFnZVByZWZpeDogbG9jYXRpb24uaG9zdCArICcvJHt0aGlzLnRyYW5zbGF0ZVBhZ2VQYXRofS8nLFxyXG5cclxuICAgICAgICAvLyBVcmwgb2YgdGhlIHBsYWNlIHdoZXJlIENTUyBmb3IgdHJhbnNsYXRpb24gd2lkZ2V0IGlzIGtlcHRcclxuICAgICAgICAvLyBpZiB5b3Ugd2lzaCB0byBjdXN0b21pemUgdGhlIHN0YW5kYXJkIGxldHNtdCBzdHlsZSxcclxuICAgICAgICAvLyBwb2ludCB0aGlzIHRvIHlvdXIgb3duIGNzcyBmaWxlXHJcbiAgICAgICAgY3NzTG9jYXRpb246ICcuL2Fzc2V0cy93ZWJ0cmFuc2xhdGUvd2lkZ2V0LmNzcycsXHJcblxyXG4gICAgICAgIC8vIGNsaWVudCBpZCBmb3IgYXV0aG9yaXphdGlvblxyXG4gICAgICAgIGNsaWVudElkOiBcIiR7dGhpcy5jbGllbnRJZH1cIixcclxuXHJcbiAgICAgICAgLy9hcGkgdmVyc2lvblxyXG4gICAgICAgIGFwaVZlcnNpb246IFwiJHt0aGlzLmFwaVZlcnNpb259XCIsICAvLyAwIC0gVjE7IDEgLSBWMlxyXG5cclxuICAgICAgICAvLyBlbmFibGUgb3IgZGlzYWJsZSBvcmlnaW5hbCB0ZXh0IHBvcHVwXHJcbiAgICAgICAgaGlkZVBvcHVwOiAke3RoaXMuaGlkZVBvcHVwfSxcclxuXHJcbiAgICAgICAgLy8gaWQgb2YgdGhlIDxkaXY+IHdoZXJlIHRvIGRyYXcgd2lkZ2V0XHJcbiAgICAgICAgd2lkZ2V0Q29udGFpbmVySWQ6IFwiUGFnZVRyYW5zbGF0ZVdpZGdldFwiLFxyXG5cclxuICAgICAgICAvLyBhdmFpbGFibGUgdHJhbnNsYXRpb24gc3lzdGVtcyAodGFyZ2V0IGxhbmd1YWdlcylcclxuICAgICAgICB0cmFuc2xhdGlvblN5c3RlbXM6IFtdLFxyXG5cclxuICAgICAgICAvLyBzb3VyY2UgbGFuZ3VhZ2Ugb2YgdGhlIHBhZ2UgdGhhdCBuZWVkcyB0byBiZSB0cmFuc2xhdGVkXHJcbiAgICAgICAgbGFuZ3VhZ2U6IFwiZW5cIixcclxuXHJcbiAgICAgICAgLy8gdHJhbnNsYXRlIHdpZGdldCBVSSB0byBsYW5ndWFnZSB0aGF0IGlzIGNob3NlbiBpbiB0YXJnZXQgbGFuZ3VhZ2UgZHJvcGRvd25cclxuICAgICAgICB0cmFuc2xhdGVVSXRvQ2hvc2VuTGFuZ3VhZ2U6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyB0cmFuc2xhdGUgd2lkZ2V0IGFkbWluaXN0cmF0aXZlIHBhcnQgdG8gbGFuZ3VhZ2UgdGhhdCBpcyBjaG9zZW4gaW4gdGFyZ2V0IGxhbmd1YWdlIGRyb3Bkb3duXHJcbiAgICAgICAgdHJhbnNsYXRlQWRtaW5VSXRvQ2hvc2VuTGFuZ3VhZ2U6IGZhbHNlLFxyXG5cclxuICAgICAgICB1aUxhbmd1YWdlOiBcIiR7dGhpcy50cmFuc2xhdGUuY3VycmVudExhbmd9XCIsXHJcblxyXG4gICAgICAgIC8vIGlmIHBhZ2Ugd2FzIHRyYW5zbGF0ZWQgYW5kIHlvdSBjbGljayBvbiBhIGxpbmtcclxuICAgICAgICAvLyB0aGF0IGdvZXMgdG8gYW5vdGhlciBwYWdlIGluIHRoZSBzYW1lIHNpdGUsXHJcbiAgICAgICAgLy8gdGhlbiB0cmFuc2xhdGUgdGhlIG5ld2x5IG9wZW5lZCBwYWdlIGFsc29cclxuICAgICAgICB0cmFuc2xhdGVBZnRlck5hdmlnYXRpb246IHRydWUsXHJcblxyXG4gICAgICAgIC8vIHRydWUgLSBsYW5ndWFnZSBsaXN0IGlzIHNob3duIGFzIGxpbmtzXHJcbiAgICAgICAgLy8gZmFsc2UgLSBsYW5ndWFnZSBsaXN0IGlzIHNob3duIGFzIGRyb3Bkb3duIGxpc3QgYW5kIFwidHJhbnNsYXRlXCIgYnV0dG9uXHJcbiAgICAgICAgbGFuZ3VhZ2VMaXN0QXNMaW5rczogZmFsc2UsXHJcblxyXG4gICAgICAgIHNob3dIZWFkZXI6IGZhbHNlLFxyXG5cclxuICAgICAgICBzaG93VHJhbnNsYXRpb25TdWdnZXN0aW9uQWRtaW5QYWdlOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gYWZ0ZXIgdHJhbnNsYXRpb24gc2hvdyBhIHdhcm5pbmcgdGhhdCBwYWdlIGlzIG1hY2hpbmUgdHJhbnNsYXRlZCBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlXHJcbiAgICAgICAgc2hvd01hY2hpbmVUcmFuc2xhdGlvbldhcm5pbmdBZnRlclRyYW5zbGF0aW9uOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gc2hvdyBhbGwgYXZhaWxhYmxlIHRyYW5zbGF0aW9uIHN5c3RlbXMgaW5zdGVhZCBvZiBqdXN0IHRoZSBvbmVzIGNvbmZpZ3VyZWQgaW4gdGhpcyBmaWxlXHJcbiAgICAgICAgc2hvd0FsbFRyYW5zbGF0aW9uU3lzdGVtczogZmFsc2UsXHJcblxyXG4gICAgICAgIC8vIGFkZCBzb21lIHBpeGVscyB0byBkcm9wZG93biBwYWRkaW5nIHRvIG1ha2UgaXQgbG9vayBtb3JlIHNpbWlsYXIgb24gZGlmZmVyZW50IGJyb3dzZXJzXHJcbiAgICAgICAgYnJvd3NlclNwZWNpZmljRHJvcGRvd25QYWRkaW5nOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gbmFtZSBvZiBpY29uIHNldDogXCJkZWZhdWx0XCIsIFwid2hpdGVcIiwgXCJncmV5XCIsIFwicmVkXCJcclxuICAgICAgICBpY29uU2V0OiBcIndoaXRlXCIsXHJcblxyXG4gICAgICAgIC8vIFBvc3NpYmxlIHZhbHVlczogMSwgMiwgMy4gVGV4dCBmb3IgbGluayBcIlJlc3RvcmUgb3JpZ2luYWw6IExhdHZpYW5cIiBtYXkgYmUgbWFkZSBzaG9ydGVyIG9yIGxvbmdlclxyXG4gICAgICAgIC8vIHVzZWZ1bCB0byBhZGFwdCB0byBzbWFsbCBvciBsYXJnZSBzY3JlZW5zXHJcbiAgICAgICAgcmVzdG9yZU9yaWdpbmFsTGlua0xlbmd0aDogMixcclxuXHJcbiAgICAgICAgLy8gZW5hYmxlIG9yIGRpc2FibGUgXCJTdWdnZXN0IHRyYW5zbGF0aW9uXCIgbGluayBpbiBwb3B1cCB0aGF0IHNob3dzIG9yaWdpbmFsIHRleHQgb2YgdHJhbnNsYXRlZCBzZW50ZW5jZVxyXG4gICAgICAgIHN1Z2dlc3RUcmFuc2xhdGlvbjogJHt0aGlzLmFsbG93U3VnZ2VzdGlvbnN9LFxyXG5cclxuICAgICAgICAvLyBzaG93IG1lc3NhZ2UgYm94IHdoZW4gZXJyb3IgaGFwcGVucz9cclxuICAgICAgICBzaG93TWVzc2FnZUJveE9uRXJyb3I6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBhcHBsaWNhdGlvbiBpZGVudGlmaWVyXHJcbiAgICAgICAgYXBwSWQ6IFwiJHt0aGlzLmFwcElkfVwiLFxyXG5cclxuICAgICAgICAvLyBzZXJ2ZXIgd2lsbCBvbmx5IHJldHVybiBzeXN0ZW1zIHRoYXQgYXJlIG1lYW50IGZvciBnaXZlbiBhcHBJZFxyXG4gICAgICAgIGZpbHRlclN5c3RlbXNCeUFwcElkOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gc2hvdyBoZWxwIGxpbmtcclxuICAgICAgICBlbmFibGVIZWxwOiBmYWxzZSxcclxuXHJcbiAgICAgICAgLy8gc2hvdyBmZWVkYmFjayBsaW5rXHJcbiAgICAgICAgZW5hYmxlRmVlZGJhY2s6IGZhbHNlLFxyXG5cclxuICAgICAgICAvLyBhbGxvd2VkIHN5c3RlbSBzdGF0dXNlcywgYnkgZGVmYXVsdCBvbmx5IFwicnVubmluZ1wiXHJcbiAgICAgICAgYWxsb3dlZFN5c3RlbVN0YXR1c2VzOiBcInJ1bm5pbmdcIixcclxuXHJcbiAgICAgICAgLy8gcGFzc2VkIHRvIHRyYW5zbGF0aW9uIHNlcnZpY2UgZm9yIGxvZ2dpbmcuXHJcbiAgICAgICAgLy8gXCJ3ZWItZW1iZWRkZWRcIiBmb3Igd2lkZ2V0IHRoYXQgaXMgZW1iZWRkZWQgaW4gaHRtbCBwYWdlLFxyXG4gICAgICAgIC8vIFwid2ViXCIgZm9yIHdpZGdldCB0aGF0IGNhbiBsb2FkIGFuZCB0cmFuc2xhdGUgYW55IHdlYnNpdGVcclxuICAgICAgICB3aWRnZXQ6IFwid2ViXCJcclxuICAgIH07XHJcbiAgICBgO1xyXG4gICAgYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGlkPVwid2lkZ2V0XCIgY2xhc3M9XCJ0bGQtdHJhbnNsYXRlLXdlYlwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ0cmFuc2xhdGUtY29udGFpbmVyLWhlYWRlclwiPlxyXG4gICAgPGEgaHJlZj1cIi9cIiBpZD1cImhvbWUtbGlua1wiIFthdHRyLnRpdGxlXT1cIidXRUJUUkFOU0xBVEUuQkFDSycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgPGltZyBbc3JjXT1cImxvZ29Mb2NhdGlvblwiIGFsdD1cImxvZ29cIj5cclxuICAgICAgPGxpYi1jb21wYW55LXByb2R1Y3QgKm5nSWY9XCJjb21wYW55ICYmIHByb2R1Y3RcIiBbY29tcGFueV09XCJjb21wYW55XCIgW3Byb2R1Y3RdPVwicHJvZHVjdFwiPjwvbGliLWNvbXBhbnktcHJvZHVjdD5cclxuICAgIDwvYT5cclxuICAgIDxkaXYgW25nQ2xhc3MubHQtc21dPVwiJ3RsZC10cmFuc2xhdGUtbW9iaWxlJ1wiPlxyXG5cclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCIgY2xhc3M9XCJhZGRyZXNzLXdyYXBwZXJcIj5cclxuICAgICAgICA8ZGl2IGZ4RmxleCBjbGFzcz1cImJhY2stYnRuXCI+XHJcblxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZ29Ub0hvbWUoKVwiIGNvbG9yPVwiYWNjZW50XCIgbWF0LWZsYXQtYnV0dG9uIFthdHRyLnRpdGxlXT1cIidXRUJUUkFOU0xBVEUuQkFDSycgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGlubGluZT10cnVlPmNoZXZyb25fbGVmdDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmeEZsZXggY2xhc3M9XCJcIj5cclxuICAgICAgICAgIDxkaXYgZGF0YS10ZXh0PVwiYWRkcmVzc1wiIGNsYXNzPVwiXCI+e3snV0VCVFJBTlNMQVRFLkFERFJFU1MnIHwgdHJhbnNsYXRlfX08L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGZ4RmxleD1cIjEwMCVcIiBjbGFzcz1cImFkZHJlc3MtaW5wdXRcIj5cclxuICAgICAgICAgIDxpbnB1dCB0eXBlPVwidXJsXCIgI3VybCBjbGFzcz1cInVybCB3LTEwMFwiIGF1dG9mb2N1cz1cImF1dG9mb2N1c1wiIFsobmdNb2RlbCldPVwidXJsVG9UcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwibG9hZEJ1dHRvbkNsaWNrZWQoKVwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmeEZsZXggY2xhc3M9XCJsb2FkLWJ0blwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9hZEJ1dHRvbkNsaWNrZWQoKVwiIGNvbG9yPVwiYWNjZW50XCIgbWF0LWZsYXQtYnV0dG9uXHJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cIidXRUJUUkFOU0xBVEUuTE9BRF9QQUdFJyB8IHRyYW5zbGF0ZVwiIFtkaXNhYmxlZF09XCIhdXJsVG9UcmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGlubGluZT10cnVlPnNlYXJjaDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXJcIiBjbGFzcz1cInRsZC10cmFuc2xhdGUtc3dpdGNoZXItd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiIGZ4RmxleD5cclxuICAgICAgICAgIDx0bGQtdHJhbnNsYXRlLXN3aXRjaGVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwic3dpdGNoZXJPcHRpb25zXCJcclxuICAgICAgICAgICAgW2lzQ29sbGVjdGlvbnNBY3RpdmF0ZWRdPVwiaXNDb2xsZWN0aW9uc0FjdGl2YXRlZFwiXHJcbiAgICAgICAgICAgIFt1c2VQYXJlbnRXaWR0aF09XCJ1c2VQYXJlbnRXaWR0aFwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIFtzZXR0aW5nc109XCJzd2l0Y2hlck9wdGlvbnNcIlxyXG4gICAgICAgICAgICBbc2hvd1RyYW5zbGF0ZUJ1dHRvbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFtoaWRlT25TbWFsbFNjcmVlbnNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICBbaGlkZUxhbmdNZW51TGFiZWxzXT1cImhpZGVMYW5nTWVudUxhYmVsc1wiXHJcbiAgICAgICAgICAgIFttYXhEaXNwbGF5ZWRMYW5ndWFnZXNdPVwibWF4RGlzcGxheWVkTGFuZ3VhZ2VzXCJcclxuICAgICAgICAgICAgW3Nob3dEb21haW5zV2l0aExhbmd1YWdlTmFtZV09XCJzaG93RG9tYWluc1dpdGhMYW5ndWFnZU5hbWVcIlxyXG4gICAgICAgICAgICAob25Eb21haW5DaGFuZ2UpPVwic3lzdGVtQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25BY3Rpb25DbGljayk9XCJ0cmFuc2xhdGVCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgKG9uTGFuZ3VhZ2VTd2FwKT1cInN3YXBMYW5ndWFnZXMoKVwiXHJcbiAgICAgICAgICAgIChvblNvdXJjZUxhbmd1YWdlQ2hhbmdlKT1cInNvdXJjZUxhbmd1YWdlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICAgICAob25UYXJnZXRMYW5ndWFnZUNoYW5nZSk9XCJ0YXJnZXRMYW5ndWFnZUNoYW5nZSgkZXZlbnQpXCI+XHJcbiAgICAgICAgICA8L3RsZC10cmFuc2xhdGUtc3dpdGNoZXI+XHJcbiAgICAgICAgICA8ZGl2IGZ4RmxleEFsaWduPVwiY2VudGVyXCIgY2xhc3M9XCJhY3Rpb24tYnRuLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHRsZC10cmFuc2xhdGUtYnV0dG9uXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJzaG93VHJhbnNsYXRlQnRuXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cInN3aXRjaGVyLXRyYW5zbGF0ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJhY3Rpb25CdXR0b25EaXNhYmxlZCB8fCAhdXJsVG9UcmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPC90bGQtdHJhbnNsYXRlLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dDYW5jZWxcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIiAoY2xpY2spPVwiY2FuY2VsKClcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2FuY2VsLWJ1dHRvblwiPnt7J1dFQlRSQU5TTEFURS5DQU5DRUwnIHwgdHJhbnNsYXRlfX08L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cInNob3dSZXN0b3JlXCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgKGNsaWNrKT1cInJlc3RvcmUoKVwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJyZXN0b3JlLWJ1dHRvblwiPnt7J1dFQlRSQU5TTEFURS5SRVNUT1JFJyB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBpZD1cIndlYnNpdGUtZnJhbWUtY29udGFpbmVyXCI+XHJcbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyICpuZ0lmPVwic2hvd1Byb2dyZXNzXCIgY29sb3I9XCJhY2NlbnRcIiBbbW9kZV09XCJtb2RlXCIgW3ZhbHVlXT1cInByb2dyZXNzVmFsdWVcIj5cclxuICAgICAgPC9tYXQtcHJvZ3Jlc3MtYmFyPlxyXG4gICAgICA8bGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZSBbQG9wZW5DbG9zZUFuaW1hdGlvbl0gKm5nRm9yPVwibGV0IG1lc3NhZ2Ugb2YgbWVzc2FnZXM7IGxldCBpeCA9IGluZGV4XCIgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgICAgKGNsb3NlQ2xpY2tlZCk9XCJyZW1vdmVNZXNzYWdlKGl4KVwiPjwvbGliLXRsZC1ub3RpZmljYXRpb24tbWVzc2FnZT5cclxuICAgICAgICA8aWZyYW1lIGlkPVwibGV0c210LXRyYW5zbGF0ZS1wYWdlLWlmcmFtZVwiIG5hbWU9XCJsZXRzbXRUcmFuc2xhdGVQYWdlSWZyYW1lXCIgc3JjPVwiYWJvdXQ6YmxhbmtcIlxyXG4gICAgICAgICAgW2F0dHIuc2FuZGJveF09XCJzYW5kYm94XCI+PC9pZnJhbWU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -5,15 +5,18 @@ import { NgModule } from '@angular/core';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { TranslateModule, TranslateService } from '@ngx-translate/core';
7
7
  import { CloseButtonModule, NotificationMessageModule } from '@tilde-nlp/ngx-common';
8
+ import { mtTermApiFactory } from './factories/mt-term-term-api.factory';
8
9
  import { fileApiServiceFactory } from './factories/file-api-service.factory';
9
10
  import { systemServiceFactory } from './factories/system-service.factory';
10
11
  import { textApiServiceFactory } from './factories/text-api-service.factory';
11
12
  import { FILE_API_SERVICE_TOKEN, SYSTEM_SERVICE_TOKEN, TEXT_API_SERVICE_TOKEN, TLD_TRANSLATE_CONFIG_TOKEN, TRANSLATION_API_VERSION_TOKEN } from './injection-tokens';
13
+ import { MT_TERM_API_TOKEN } from './injection-tokens/mt-term-api.token';
12
14
  import { MaterialModule } from './modules/material.module';
13
15
  import { TldCommonModule } from './modules/tld-common';
14
16
  import { TldAlertService, TldTranslateConfigService } from './modules/tld-common/services';
15
17
  import { TldDocumentModule } from './modules/tld-document';
16
- import { TldTermCollectionsService } from './modules/tld-term/services';
18
+ import { EningeTermApiService } from './modules/tld-term/services/engine-term/eninge-term-api.service';
19
+ import { TerminologyService } from './modules/tld-term/services/terminology.service';
17
20
  import { TldTextModule } from './modules/tld-text';
18
21
  import { TldTooltipModule } from './modules/tld-tooltip';
19
22
  import { TldTranslateBodyComponent } from './tld-translate-body/tld-translate-body.component';
@@ -31,7 +34,7 @@ export class TldTranslateModule {
31
34
  TRANSLATION_API_VERSION_TOKEN,
32
35
  TldTranslateConfigService,
33
36
  HttpClient,
34
- TldTermCollectionsService,
37
+ TerminologyService,
35
38
  TldAlertService
36
39
  ]
37
40
  },
@@ -42,10 +45,20 @@ export class TldTranslateModule {
42
45
  TRANSLATION_API_VERSION_TOKEN,
43
46
  TldTranslateConfigService,
44
47
  HttpClient,
45
- TldTermCollectionsService,
48
+ TerminologyService,
46
49
  TldAlertService
47
50
  ]
48
51
  },
52
+ {
53
+ provide: MT_TERM_API_TOKEN,
54
+ useFactory: mtTermApiFactory,
55
+ deps: [
56
+ TRANSLATION_API_VERSION_TOKEN,
57
+ TldTranslateConfigService,
58
+ HttpClient,
59
+ EningeTermApiService
60
+ ]
61
+ },
49
62
  ];
50
63
  if (translationApiVersion !== null) {
51
64
  providers.push({
@@ -115,4 +128,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
115
128
  providers: [TranslateService]
116
129
  }]
117
130
  }] });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUF1QixRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNySyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUs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bGlwYm9hcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQ2xvc2VCdXR0b25Nb2R1bGUsIE5vdGlmaWNhdGlvbk1lc3NhZ2VNb2R1bGUgfSBmcm9tICdAdGlsZGUtbmxwL25neC1jb21tb24nO1xyXG5pbXBvcnQgeyBmaWxlQXBpU2VydmljZUZhY3RvcnkgfSBmcm9tICcuL2ZhY3Rvcmllcy9maWxlLWFwaS1zZXJ2aWNlLmZhY3RvcnknO1xyXG5pbXBvcnQgeyBzeXN0ZW1TZXJ2aWNlRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL3N5c3RlbS1zZXJ2aWNlLmZhY3RvcnknO1xyXG5pbXBvcnQgeyB0ZXh0QXBpU2VydmljZUZhY3RvcnkgfSBmcm9tICcuL2ZhY3Rvcmllcy90ZXh0LWFwaS1zZXJ2aWNlLmZhY3RvcnknO1xyXG5pbXBvcnQgeyBGSUxFX0FQSV9TRVJWSUNFX1RPS0VOLCBTWVNURU1fU0VSVklDRV9UT0tFTiwgVEVYVF9BUElfU0VSVklDRV9UT0tFTiwgVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4sIFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOIH0gZnJvbSAnLi9pbmplY3Rpb24tdG9rZW5zJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvbWF0ZXJpYWwubW9kdWxlJztcclxuaW1wb3J0IHsgVGxkQ29tbW9uTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24nO1xyXG5pbXBvcnQgeyBJVGxkVHJhbnNsYXRlQ29uZmlnIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24vbW9kZWxzJztcclxuaW1wb3J0IHsgVHJhbnNsYXRpb25BcGlWZXJzaW9uIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24vbW9kZWxzL2NvcmUnO1xyXG5pbXBvcnQgeyBUbGRBbGVydFNlcnZpY2UsIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLWNvbW1vbi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRsZERvY3VtZW50TW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1kb2N1bWVudCc7XHJcbmltcG9ydCB7IFRsZFRlcm1Db2xsZWN0aW9uc1NlcnZpY2UgfSBmcm9tICcuL21vZHVsZXMvdGxkLXRlcm0vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGRUZXh0TW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC10ZXh0JztcclxuaW1wb3J0IHsgVGxkVG9vbHRpcE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdG9vbHRpcCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUJvZHlDb21wb25lbnQgfSBmcm9tICcuL3RsZC10cmFuc2xhdGUtYm9keS90bGQtdHJhbnNsYXRlLWJvZHkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVGxkVHJhbnNsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi90bGQtdHJhbnNsYXRlLmNvbXBvbmVudCc7XHJcblxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRsZFRyYW5zbGF0ZUJvZHlDb21wb25lbnQsXHJcbiAgICBUbGRUcmFuc2xhdGVDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIENsaXBib2FyZE1vZHVsZSxcclxuICAgIFRsZENvbW1vbk1vZHVsZSxcclxuICAgIFRsZFRleHRNb2R1bGUsXHJcbiAgICBUbGREb2N1bWVudE1vZHVsZSxcclxuICAgIFRsZFRvb2x0aXBNb2R1bGUsXHJcbiAgICBOb3RpZmljYXRpb25NZXNzYWdlTW9kdWxlLFxyXG4gICAgQ2xvc2VCdXR0b25Nb2R1bGVcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRsZFRyYW5zbGF0ZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbVHJhbnNsYXRlU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRsZFRyYW5zbGF0ZU1vZHVsZSB7XHJcbiAgc3RhdGljIGZvclJvb3QodHJhbnNsYXRpb25BcGlWZXJzaW9uPzogVHJhbnNsYXRpb25BcGlWZXJzaW9uLCBjb25maWd1cmF0aW9uPzogSVRsZFRyYW5zbGF0ZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VGxkVHJhbnNsYXRlTW9kdWxlPiB7XHJcbiAgICBjb25zdCBwcm92aWRlcnM6IFByb3ZpZGVyW10gPSBbXHJcbiAgICAgIHsgcHJvdmlkZTogU1lTVEVNX1NFUlZJQ0VfVE9LRU4sIHVzZUZhY3Rvcnk6IHN5c3RlbVNlcnZpY2VGYWN0b3J5LCBkZXBzOiBbVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4sIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsIEh0dHBDbGllbnRdIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBURVhUX0FQSV9TRVJWSUNFX1RPS0VOLFxyXG4gICAgICAgIHVzZUZhY3Rvcnk6IHRleHRBcGlTZXJ2aWNlRmFjdG9yeSxcclxuICAgICAgICBkZXBzOiBbXHJcbiAgICAgICAgICBUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTixcclxuICAgICAgICAgIFRsZFRyYW5zbGF0ZUNvbmZpZ1NlcnZpY2UsXHJcbiAgICAgICAgICBIdHRwQ2xpZW50LFxyXG4gICAgICAgICAgVGxkVGVybUNvbGxlY3Rpb25zU2VydmljZSxcclxuICAgICAgICAgIFRsZEFsZXJ0U2VydmljZVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4sXHJcbiAgICAgICAgdXNlRmFjdG9yeTogZmlsZUFwaVNlcnZpY2VGYWN0b3J5LFxyXG4gICAgICAgIGRlcHM6IFtcclxuICAgICAgICAgIFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOLFxyXG4gICAgICAgICAgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgICAgICAgIEh0dHBDbGllbnQsXHJcbiAgICAgICAgICBUbGRUZXJtQ29sbGVjdGlvbnNTZXJ2aWNlLFxyXG4gICAgICAgICAgVGxkQWxlcnRTZXJ2aWNlXHJcbiAgICAgICAgXVxyXG4gICAgICB9LFxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAodHJhbnNsYXRpb25BcGlWZXJzaW9uICE9PSBudWxsKSB7XHJcbiAgICAgIHByb3ZpZGVycy5wdXNoKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHRyYW5zbGF0aW9uQXBpVmVyc2lvblxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWd1cmF0aW9uKSB7XHJcbiAgICAgIHByb3ZpZGVycy5wdXNoKHtcclxuICAgICAgICBwcm92aWRlOiBUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTixcclxuICAgICAgICB1c2VWYWx1ZTogY29uZmlndXJhdGlvblxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBuZ01vZHVsZTogVGxkVHJhbnNsYXRlTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnNcclxuICAgIH07XHJcbiAgfVxyXG59XHJcblxyXG5cclxuIl19
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGxkLXRyYW5zbGF0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90bGQtdHJhbnNsYXRlL3NyYy9saWIvdGxkLXRyYW5zbGF0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDcEUsT0FBTyxFQUF1QixRQUFRLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUM3RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNySyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFz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QVk7d0JBQ3BCLGNBQWM7d0JBQ2QsZUFBZSxDQUFDLFFBQVEsRUFBRTt3QkFDMUIsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixhQUFhO3dCQUNiLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQix5QkFBeUI7d0JBQ3pCLGlCQUFpQjtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHFCQUFxQjtxQkFDdEI7b0JBQ0QsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xpcGJvYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NsaXBib2FyZCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IENsb3NlQnV0dG9uTW9kdWxlLCBOb3RpZmljYXRpb25NZXNzYWdlTW9kdWxlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtY29tbW9uJztcclxuaW1wb3J0IHsgbXRUZXJtQXBpRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL210LXRlcm0tdGVybS1hcGkuZmFjdG9yeSc7XHJcbmltcG9ydCB7IGZpbGVBcGlTZXJ2aWNlRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL2ZpbGUtYXBpLXNlcnZpY2UuZmFjdG9yeSc7XHJcbmltcG9ydCB7IHN5c3RlbVNlcnZpY2VGYWN0b3J5IH0gZnJvbSAnLi9mYWN0b3JpZXMvc3lzdGVtLXNlcnZpY2UuZmFjdG9yeSc7XHJcbmltcG9ydCB7IHRleHRBcGlTZXJ2aWNlRmFjdG9yeSB9IGZyb20gJy4vZmFjdG9yaWVzL3RleHQtYXBpLXNlcnZpY2UuZmFjdG9yeSc7XHJcbmltcG9ydCB7IEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4sIFNZU1RFTV9TRVJWSUNFX1RPS0VOLCBURVhUX0FQSV9TRVJWSUNFX1RPS0VOLCBUTERfVFJBTlNMQVRFX0NPTkZJR19UT0tFTiwgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4gfSBmcm9tICcuL2luamVjdGlvbi10b2tlbnMnO1xyXG5pbXBvcnQgeyBNVF9URVJNX0FQSV9UT0tFTiB9IGZyb20gJy4vaW5qZWN0aW9uLXRva2Vucy9tdC10ZXJtLWFwaS50b2tlbic7XHJcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tb2R1bGVzL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFRsZENvbW1vbk1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtY29tbW9uJztcclxuaW1wb3J0IHsgSVRsZFRyYW5zbGF0ZUNvbmZpZyB9IGZyb20gJy4vbW9kdWxlcy90bGQtY29tbW9uL21vZGVscyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0aW9uQXBpVmVyc2lvbiB9IGZyb20gJy4vbW9kdWxlcy90bGQtY29tbW9uL21vZGVscy9jb3JlJztcclxuaW1wb3J0IHsgVGxkQWxlcnRTZXJ2aWNlLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBUbGREb2N1bWVudE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtZG9jdW1lbnQnO1xyXG5pbXBvcnQgeyBFbmluZ2VUZXJtQXBpU2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdGVybS9zZXJ2aWNlcy9lbmdpbmUtdGVybS9lbmluZ2UtdGVybS1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRlcm1pbm9sb2d5U2VydmljZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdGVybS9zZXJ2aWNlcy90ZXJtaW5vbG9neS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVGxkVGV4dE1vZHVsZSB9IGZyb20gJy4vbW9kdWxlcy90bGQtdGV4dCc7XHJcbmltcG9ydCB7IFRsZFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuL21vZHVsZXMvdGxkLXRvb2x0aXAnO1xyXG5pbXBvcnQgeyBUbGRUcmFuc2xhdGVCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi90bGQtdHJhbnNsYXRlLWJvZHkvdGxkLXRyYW5zbGF0ZS1ib2R5LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRsZFRyYW5zbGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vdGxkLXRyYW5zbGF0ZS5jb21wb25lbnQnO1xyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUbGRUcmFuc2xhdGVCb2R5Q29tcG9uZW50LFxyXG4gICAgVGxkVHJhbnNsYXRlQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxcclxuICAgIE1hdGVyaWFsTW9kdWxlLFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlLmZvckNoaWxkKCksXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIEh0dHBDbGllbnRNb2R1bGUsXHJcbiAgICBDbGlwYm9hcmRNb2R1bGUsXHJcbiAgICBUbGRDb21tb25Nb2R1bGUsXHJcbiAgICBUbGRUZXh0TW9kdWxlLFxyXG4gICAgVGxkRG9jdW1lbnRNb2R1bGUsXHJcbiAgICBUbGRUb29sdGlwTW9kdWxlLFxyXG4gICAgTm90aWZpY2F0aW9uTWVzc2FnZU1vZHVsZSxcclxuICAgIENsb3NlQnV0dG9uTW9kdWxlXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUbGRUcmFuc2xhdGVDb21wb25lbnRcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW1RyYW5zbGF0ZVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUbGRUcmFuc2xhdGVNb2R1bGUge1xyXG4gIHN0YXRpYyBmb3JSb290KHRyYW5zbGF0aW9uQXBpVmVyc2lvbj86IFRyYW5zbGF0aW9uQXBpVmVyc2lvbiwgY29uZmlndXJhdGlvbj86IElUbGRUcmFuc2xhdGVDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRsZFRyYW5zbGF0ZU1vZHVsZT4ge1xyXG4gICAgY29uc3QgcHJvdmlkZXJzOiBQcm92aWRlcltdID0gW1xyXG4gICAgICB7IHByb3ZpZGU6IFNZU1RFTV9TRVJWSUNFX1RPS0VOLCB1c2VGYWN0b3J5OiBzeXN0ZW1TZXJ2aWNlRmFjdG9yeSwgZGVwczogW1RSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOLCBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLCBIdHRwQ2xpZW50XSB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogVEVYVF9BUElfU0VSVklDRV9UT0tFTixcclxuICAgICAgICB1c2VGYWN0b3J5OiB0ZXh0QXBpU2VydmljZUZhY3RvcnksXHJcbiAgICAgICAgZGVwczogW1xyXG4gICAgICAgICAgVFJBTlNMQVRJT05fQVBJX1ZFUlNJT05fVE9LRU4sXHJcbiAgICAgICAgICBUbGRUcmFuc2xhdGVDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgICAgSHR0cENsaWVudCxcclxuICAgICAgICAgIFRlcm1pbm9sb2d5U2VydmljZSxcclxuICAgICAgICAgIFRsZEFsZXJ0U2VydmljZVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIHByb3ZpZGU6IEZJTEVfQVBJX1NFUlZJQ0VfVE9LRU4sXHJcbiAgICAgICAgdXNlRmFjdG9yeTogZmlsZUFwaVNlcnZpY2VGYWN0b3J5LFxyXG4gICAgICAgIGRlcHM6IFtcclxuICAgICAgICAgIFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOLFxyXG4gICAgICAgICAgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgICAgICAgIEh0dHBDbGllbnQsXHJcbiAgICAgICAgICBUZXJtaW5vbG9neVNlcnZpY2UsXHJcbiAgICAgICAgICBUbGRBbGVydFNlcnZpY2VcclxuICAgICAgICBdXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBwcm92aWRlOiBNVF9URVJNX0FQSV9UT0tFTixcclxuICAgICAgICB1c2VGYWN0b3J5OiBtdFRlcm1BcGlGYWN0b3J5LFxyXG4gICAgICAgIGRlcHM6IFtcclxuICAgICAgICAgIFRSQU5TTEFUSU9OX0FQSV9WRVJTSU9OX1RPS0VOLFxyXG4gICAgICAgICAgVGxkVHJhbnNsYXRlQ29uZmlnU2VydmljZSxcclxuICAgICAgICAgIEh0dHBDbGllbnQsXHJcbiAgICAgICAgICBFbmluZ2VUZXJtQXBpU2VydmljZVxyXG4gICAgICAgIF1cclxuICAgICAgfSxcclxuICAgIF07XHJcblxyXG4gICAgaWYgKHRyYW5zbGF0aW9uQXBpVmVyc2lvbiAhPT0gbnVsbCkge1xyXG4gICAgICBwcm92aWRlcnMucHVzaChcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBUUkFOU0xBVElPTl9BUElfVkVSU0lPTl9UT0tFTixcclxuICAgICAgICAgIHVzZVZhbHVlOiB0cmFuc2xhdGlvbkFwaVZlcnNpb25cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlndXJhdGlvbikge1xyXG4gICAgICBwcm92aWRlcnMucHVzaCh7XHJcbiAgICAgICAgcHJvdmlkZTogVExEX1RSQU5TTEFURV9DT05GSUdfVE9LRU4sXHJcbiAgICAgICAgdXNlVmFsdWU6IGNvbmZpZ3VyYXRpb25cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFRsZFRyYW5zbGF0ZU1vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzXHJcbiAgICB9O1xyXG4gIH1cclxufVxyXG5cclxuXHJcbiJdfQ==
@@ -15,8 +15,10 @@ export * from './lib/modules/tld-document/models';
15
15
  export * from './lib/modules/tld-document/services';
16
16
  // Term module
17
17
  export * from './lib/modules/tld-term';
18
- export * from './lib/modules/tld-term/models';
18
+ export * from './lib/modules/tld-term/services/term-api/models';
19
19
  export * from './lib/modules/tld-term/services';
20
+ export * from './lib/modules/tld-term/services/models';
21
+ export * from './lib/modules/tld-term/services/engine-term/models';
20
22
  // Text module
21
23
  export * from './lib/modules/tld-text';
22
24
  export * from './lib/modules/tld-text/models';
@@ -39,4 +41,4 @@ export * from "./lib/components/shared/extension-dialog";
39
41
  export * from "./lib/components/shared/text-to-speech";
40
42
  // Injection tokens
41
43
  export * from "./lib/injection-tokens";
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFHSCxpQkFBaUI7QUFDakIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxnQkFBZ0I7QUFDaEIsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGtCQUFrQjtBQUNsQixjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjO0FBQ2QsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYztBQUNkLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsaUJBQWlCO0FBQ2pCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELHNCQUFzQjtBQUN0QixjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsbUJBQW1CO0FBQ25CLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsZUFBZTtBQUNmLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxvQkFBb0I7QUFDcEIsY0FBYywwQ0FBMEMsQ0FBQztBQUN6RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELG1CQUFtQjtBQUNuQixjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHRsZC10cmFuc2xhdGVcclxuICovXHJcblxyXG5cclxuLy8gVG9vbHRpcCBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaTE4bi9hdmFpbGFibGUtbGFuZ3VhZ2VzJztcclxuLy8gQ29tbW9uIG1vZHVrZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC1jb21tb24vbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtY29tbW9uL3BpcGVzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtY29tbW9uL2NvbXBvbmVudHMnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLWNvbW1vbic7XHJcbi8vIERvY3VtZW50IG1vZHVsZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC1kb2N1bWVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvbW9kZWxzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC1kb2N1bWVudC9zZXJ2aWNlcydcclxuLy8gVGVybSBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtdGVybSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRlcm0vbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtdGVybS9zZXJ2aWNlcyc7XHJcbi8vIFRleHQgbW9kdWxlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRleHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC10ZXh0L21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRleHQvc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC10ZXh0L3V0aWxzJztcclxuLy8gVG9vbHRpcCBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtdG9vbHRpcCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRvb2x0aXAvbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC9zZXJ2aWNlcyc7XHJcbi8vIFdlYnRyYW5zbGF0ZSBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtd2ViJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90bGQtdHJhbnNsYXRlLmNvbXBvbmVudCc7XHJcbi8vIFRyYW5zbGF0ZSBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdGxkLXRyYW5zbGF0ZS5tb2R1bGUnO1xyXG4vLyBBdWRpbyBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtYXVkaW8nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC1hdWRpby9zZXJ2aWNlcyc7XHJcbi8vIFNoYXJlZCBjb21wb25lbnRzXHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NoYXJlZC9leHRlbnNpb24tZGlhbG9nXCI7XHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9jb21wb25lbnRzL3NoYXJlZC90ZXh0LXRvLXNwZWVjaFwiO1xyXG4vLyBJbmplY3Rpb24gdG9rZW5zXHJcbmV4cG9ydCAqIGZyb20gXCIuL2xpYi9pbmplY3Rpb24tdG9rZW5zXCI7XHJcbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3RsZC10cmFuc2xhdGUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFHSCxpQkFBaUI7QUFDakIsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxnQkFBZ0I7QUFDaEIsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGtCQUFrQjtBQUNsQixjQUFjLDRCQUE0QixDQUFBO0FBQzFDLGNBQWMsbUNBQW1DLENBQUE7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjO0FBQ2QsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWM7QUFDZCxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGlCQUFpQjtBQUNqQixjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxzQkFBc0I7QUFDdEIsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLG1CQUFtQjtBQUNuQixjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGVBQWU7QUFDZixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsb0JBQW9CO0FBQ3BCLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxtQkFBbUI7QUFDbkIsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0bGQtdHJhbnNsYXRlXHJcbiAqL1xyXG5cclxuXHJcbi8vIFRvb2x0aXAgbW9kdWxlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2kxOG4vYXZhaWxhYmxlLWxhbmd1YWdlcyc7XHJcbi8vIENvbW1vbiBtb2R1a2VcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtY29tbW9uL3NlcnZpY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtY29tbW9uL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLWNvbW1vbi9waXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLWNvbW1vbi9jb21wb25lbnRzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC1jb21tb24nO1xyXG4vLyBEb2N1bWVudCBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLWRvY3VtZW50L21vZGVscydcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtZG9jdW1lbnQvc2VydmljZXMnXHJcbi8vIFRlcm0gbW9kdWxlXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRlcm0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL3Rlcm0tYXBpL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRlcm0vc2VydmljZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC10ZXJtL3NlcnZpY2VzL21vZGVscyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRlcm0vc2VydmljZXMvZW5naW5lLXRlcm0vbW9kZWxzJztcclxuLy8gVGV4dCBtb2R1bGVcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtdGV4dCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRleHQvbW9kZWxzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtdGV4dC9zZXJ2aWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLXRleHQvdXRpbHMnO1xyXG4vLyBUb29sdGlwIG1vZHVsZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC10b29sdGlwJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy90bGQtdG9vbHRpcC9tb2RlbHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC10b29sdGlwL3NlcnZpY2VzJztcclxuLy8gV2VidHJhbnNsYXRlIG1vZHVsZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC13ZWInXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RsZC10cmFuc2xhdGUuY29tcG9uZW50JztcclxuLy8gVHJhbnNsYXRlIG1vZHVsZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90bGQtdHJhbnNsYXRlLm1vZHVsZSc7XHJcbi8vIEF1ZGlvIG1vZHVsZVxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3RsZC1hdWRpbyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGxkLWF1ZGlvL3NlcnZpY2VzJztcclxuLy8gU2hhcmVkIGNvbXBvbmVudHNcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc2hhcmVkL2V4dGVuc2lvbi1kaWFsb2dcIjtcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2NvbXBvbmVudHMvc2hhcmVkL3RleHQtdG8tc3BlZWNoXCI7XHJcbi8vIEluamVjdGlvbiB0b2tlbnNcclxuZXhwb3J0ICogZnJvbSBcIi4vbGliL2luamVjdGlvbi10b2tlbnNcIjtcclxuIl19