@microsoft/windows-admin-center-sdk 2.523.1 → 2.538.1

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 (67) hide show
  1. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js +88 -41
  2. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js.map +1 -1
  3. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js +1 -1
  4. package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js.map +1 -1
  5. package/angular/esm2015/src/controls/data-table/data-table.component.js +6 -2
  6. package/angular/esm2015/src/controls/dialog/dialog.component.js +11 -11
  7. package/angular/esm2015/src/controls/dialog/extension-dialog/extension-dialog.component.js +7 -7
  8. package/angular/esm2015/src/controls/header/header.component.js +52 -14
  9. package/angular/esm2015/src/controls/layout/layout-config.js +1 -2
  10. package/angular/esm2015/src/controls/query-editor/query-editor.component.js +4 -4
  11. package/angular/esm2015/src/controls/snap-in-extension/snap-in-extension.component.js +1 -1
  12. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js +75 -34
  13. package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js.map +1 -1
  14. package/angular/src/controls/header/header.component.d.ts +14 -1
  15. package/angular/src/controls/query-editor/query-editor.component.d.ts +1 -1
  16. package/core/data/active-directory/active-directory.js +2 -2
  17. package/core/data/active-directory/active-directory.js.map +1 -1
  18. package/core/data/powershell.d.ts +2 -2
  19. package/core/data/powershell.js +2 -2
  20. package/core/data/powershell.js.map +1 -1
  21. package/core/notification/notification-manager.d.ts +18 -0
  22. package/core/notification/notification-manager.js +55 -10
  23. package/core/notification/notification-manager.js.map +1 -1
  24. package/core/notification/notification-message.d.ts +41 -0
  25. package/core/notification/notification-message.js +3 -0
  26. package/core/notification/notification-message.js.map +1 -0
  27. package/core/notification/notification.d.ts +10 -1
  28. package/core/notification/notification.js +30 -33
  29. package/core/notification/notification.js.map +1 -1
  30. package/core/notification/powershell-notification.d.ts +15 -15
  31. package/core/notification/powershell-notification.js +19 -8
  32. package/core/notification/powershell-notification.js.map +1 -1
  33. package/core/notification/socket-signalr.d.ts +8 -14
  34. package/core/notification/socket-signalr.js +18 -19
  35. package/core/notification/socket-signalr.js.map +1 -1
  36. package/core/notification/work-item-manager.d.ts +4 -0
  37. package/core/notification/work-item-manager.js +76 -20
  38. package/core/notification/work-item-manager.js.map +1 -1
  39. package/e2e/assets/strings/cs-CZ/strings.json +1 -1
  40. package/e2e/assets/strings/de-DE/strings.json +1 -1
  41. package/e2e/assets/strings/es-ES/strings.json +1 -1
  42. package/e2e/assets/strings/fr-FR/strings.json +1 -1
  43. package/e2e/assets/strings/hu-HU/strings.json +1 -1
  44. package/e2e/assets/strings/id-ID/strings.json +1 -1
  45. package/e2e/assets/strings/it-IT/strings.json +1 -1
  46. package/e2e/assets/strings/ja-JP/strings.json +1 -1
  47. package/e2e/assets/strings/ko-KR/strings.json +1 -1
  48. package/e2e/assets/strings/nl-NL/strings.json +1 -1
  49. package/e2e/assets/strings/pl-PL/strings.json +1 -1
  50. package/e2e/assets/strings/pt-BR/strings.json +1 -1
  51. package/e2e/assets/strings/pt-PT/strings.json +1 -1
  52. package/e2e/assets/strings/ru-RU/strings.json +1 -1
  53. package/e2e/assets/strings/strings.json +1 -1
  54. package/e2e/assets/strings/sv-SE/strings.json +1 -1
  55. package/e2e/assets/strings/tr-TR/strings.json +1 -1
  56. package/e2e/assets/strings/zh-CN/strings.json +1 -1
  57. package/e2e/assets/strings/zh-TW/strings.json +1 -1
  58. package/package.json +3 -6
  59. package/styles/css/main-v2.css +1 -1
  60. package/tools/test-runner/index.js +12 -2
  61. package/tools/test-runner/index.js.map +1 -1
  62. package/tools/wac-cli/templates/internal/package.json +0 -4
  63. package/tools/wac-cli/templates/library/angular.json +0 -3
  64. package/tools/wac-cli/templates/library/tsconfig.lib.json +1 -1
  65. package/tools/wac-cli/templates/wac-template/angular.json +0 -3
  66. package/tools/wac-cli/templates/wac-template/package.json +0 -4
  67. package/tools/wac-cli/templates/wac-template/tsconfig.base.json +23 -24
@@ -8,9 +8,9 @@ import * as i0 from "@angular/core";
8
8
  const _c0 = ["*"];
9
9
  function DialogComponent_sme_backdrop_0_button_2_Template(rf, ctx) { if (rf & 1) {
10
10
  const _r5 = i0.ɵɵgetCurrentView();
11
- i0.ɵɵelementStart(0, "button", 7);
11
+ i0.ɵɵelementStart(0, "button", 8);
12
12
  i0.ɵɵlistener("click", function DialogComponent_sme_backdrop_0_button_2_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r4 = i0.ɵɵnextContext(2); return ctx_r4.onCloseClicked(); });
13
- i0.ɵɵelement(1, "span", 8);
13
+ i0.ɵɵelement(1, "span", 9);
14
14
  i0.ɵɵelementEnd();
15
15
  } if (rf & 2) {
16
16
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -18,7 +18,7 @@ function DialogComponent_sme_backdrop_0_button_2_Template(rf, ctx) { if (rf & 1)
18
18
  i0.ɵɵattribute("aria-label", ctx_r1.strings.MsftSmeShell.Angular.Common.close);
19
19
  } }
20
20
  function DialogComponent_sme_backdrop_0_span_9_Template(rf, ctx) { if (rf & 1) {
21
- i0.ɵɵelementStart(0, "span", 9);
21
+ i0.ɵɵelementStart(0, "span", 10);
22
22
  i0.ɵɵtext(1);
23
23
  i0.ɵɵelementEnd();
24
24
  } if (rf & 2) {
@@ -28,7 +28,7 @@ function DialogComponent_sme_backdrop_0_span_9_Template(rf, ctx) { if (rf & 1) {
28
28
  i0.ɵɵtextInterpolate(ctx_r2.ariaLabel);
29
29
  } }
30
30
  function DialogComponent_sme_backdrop_0_span_10_Template(rf, ctx) { if (rf & 1) {
31
- i0.ɵɵelementStart(0, "span", 9);
31
+ i0.ɵɵelementStart(0, "span", 10);
32
32
  i0.ɵɵtext(1);
33
33
  i0.ɵɵelementEnd();
34
34
  } if (rf & 2) {
@@ -49,12 +49,12 @@ function DialogComponent_sme_backdrop_0_Template(rf, ctx) { if (rf & 1) {
49
49
  i0.ɵɵelementStart(5, "div", 5);
50
50
  i0.ɵɵprojection(6, 1);
51
51
  i0.ɵɵelementEnd();
52
- i0.ɵɵelementStart(7, "div", 4);
52
+ i0.ɵɵelementStart(7, "div", 6);
53
53
  i0.ɵɵprojection(8, 2);
54
54
  i0.ɵɵelementEnd();
55
55
  i0.ɵɵelementEnd();
56
- i0.ɵɵtemplate(9, DialogComponent_sme_backdrop_0_span_9_Template, 2, 2, "span", 6);
57
- i0.ɵɵtemplate(10, DialogComponent_sme_backdrop_0_span_10_Template, 2, 2, "span", 6);
56
+ i0.ɵɵtemplate(9, DialogComponent_sme_backdrop_0_span_9_Template, 2, 2, "span", 7);
57
+ i0.ɵɵtemplate(10, DialogComponent_sme_backdrop_0_span_10_Template, 2, 2, "span", 7);
58
58
  i0.ɵɵelementEnd();
59
59
  } if (rf & 2) {
60
60
  const ctx_r0 = i0.ɵɵnextContext();
@@ -124,7 +124,7 @@ export class DialogContentComponent {
124
124
  export class DialogFooterComponent {
125
125
  }
126
126
  /** @nocollapse */ DialogFooterComponent.ɵfac = function DialogFooterComponent_Factory(t) { return new (t || DialogFooterComponent)(); };
127
- /** @nocollapse */ DialogFooterComponent.ɵcmp = i0.ɵɵdefineComponent({ type: DialogFooterComponent, selectors: [["sme-dialog-footer"]], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, "sme-layout-float-right", "sme-position-right-inline", "sme-padding-spread-h-xs", "sme-layout-dialog-footer"]], template: function DialogFooterComponent_Template(rf, ctx) { if (rf & 1) {
127
+ /** @nocollapse */ DialogFooterComponent.ɵcmp = i0.ɵɵdefineComponent({ type: DialogFooterComponent, selectors: [["sme-dialog-footer"]], ngContentSelectors: _c0, decls: 2, vars: 0, consts: [[1, "sme-layout-dialog-footer"]], template: function DialogFooterComponent_Template(rf, ctx) { if (rf & 1) {
128
128
  i0.ɵɵprojectionDef();
129
129
  i0.ɵɵelementStart(0, "div", 0);
130
130
  i0.ɵɵprojection(1);
@@ -134,7 +134,7 @@ export class DialogFooterComponent {
134
134
  type: Component,
135
135
  args: [{
136
136
  selector: 'sme-dialog-footer',
137
- template: `<div class="sme-layout-float-right sme-position-right-inline sme-padding-spread-h-xs sme-layout-dialog-footer">
137
+ template: `<div class="sme-layout-dialog-footer">
138
138
  <ng-content></ng-content></div>`
139
139
  }]
140
140
  }], null, null); })();
@@ -375,7 +375,7 @@ DialogComponent.nextDialogId = 0;
375
375
  /** @nocollapse */ DialogComponent.ɵfac = function DialogComponent_Factory(t) { return new (t || DialogComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.Injector)); };
376
376
  /** @nocollapse */ DialogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: DialogComponent, selectors: [["sme-dialog"]], hostBindings: function DialogComponent_HostBindings(rf, ctx) { if (rf & 1) {
377
377
  i0.ɵɵlistener("keyup.escape", function DialogComponent_keyup_escape_HostBindingHandler() { return ctx.onKeyUp(); }, false, i0.ɵɵresolveDocument);
378
- } }, inputs: { allowBackgroundInteraction: "allowBackgroundInteraction", showBackdrop: "showBackdrop", clickBackdrop: "clickBackdrop", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", actionPane: "actionPane", dialogMode: "dialogMode", dialogType: "dialogType", closeButton: "closeButton", compactFullHeight: "compactFullHeight" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [["class", "sme-layout-absolute sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked", 4, "ngIf"], [1, "sme-layout-absolute", "sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked"], ["aria-modal", "true", 3, "ngClass"], ["class", "sme-button-trigger sme-button-auto-width sme-dialog-close-button", 3, "title", "click", 4, "ngIf"], [1, "sme-position-flex-none", "sme-focus-zone"], [1, "sme-layout-relative", "sme-position-flex-auto", "sme-padding-horizontal-lg", "sme-arrange-overflow-auto-y", "sme-arrange-overflow-hide-x", "sme-focus-zone", "sme-layout-responsive-zone-xs", "sme-dialog-content-wrapper"], ["class", "sme-screen-reader", 3, "id", 4, "ngIf"], [1, "sme-button-trigger", "sme-button-auto-width", "sme-dialog-close-button", 3, "title", "click"], [1, "sme-icon", "sme-icon-cancel"], [1, "sme-screen-reader", 3, "id"]], template: function DialogComponent_Template(rf, ctx) { if (rf & 1) {
378
+ } }, inputs: { allowBackgroundInteraction: "allowBackgroundInteraction", showBackdrop: "showBackdrop", clickBackdrop: "clickBackdrop", ariaLabel: "ariaLabel", ariaDescription: "ariaDescription", actionPane: "actionPane", dialogMode: "dialogMode", dialogType: "dialogType", closeButton: "closeButton", compactFullHeight: "compactFullHeight" }, features: [i0.ɵɵInheritDefinitionFeature, i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c2, decls: 1, vars: 1, consts: [["class", "sme-layout-absolute sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked", 4, "ngIf"], [1, "sme-layout-absolute", "sme-position-inset-none", 3, "level", "showBackdrop", "allowBackgroundInteraction", "clicked"], ["aria-modal", "true", 3, "ngClass"], ["class", "sme-button-trigger sme-button-auto-width sme-dialog-close-button", 3, "title", "click", 4, "ngIf"], [1, "sme-position-flex-none", "sme-focus-zone"], [1, "sme-layout-relative", "sme-position-flex-auto", "sme-padding-horizontal-lg", "sme-arrange-overflow-auto-y", "sme-arrange-overflow-hide-x", "sme-focus-zone", "sme-layout-responsive-zone-xs", "sme-dialog-content-wrapper"], [1, "sme-position-flex-none", "sme-focus-zone", "sme-padding-horizontal-lg", "sme-padding-vertical-xs"], ["class", "sme-screen-reader", 3, "id", 4, "ngIf"], [1, "sme-button-trigger", "sme-button-auto-width", "sme-dialog-close-button", 3, "title", "click"], [1, "sme-icon", "sme-icon-cancel"], [1, "sme-screen-reader", 3, "id"]], template: function DialogComponent_Template(rf, ctx) { if (rf & 1) {
379
379
  i0.ɵɵprojectionDef(_c1);
380
380
  i0.ɵɵtemplate(0, DialogComponent_sme_backdrop_0_Template, 11, 11, "sme-backdrop", 0);
381
381
  } if (rf & 2) {
@@ -417,4 +417,4 @@ __decorate([
417
417
  type: HostListener,
418
418
  args: ['document:keyup.escape']
419
419
  }], autoFocus: [] }); })();
420
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUlSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7SUNWekQsaUNBRXNEO0lBRHBELDBNQUEwQjtJQUUxQiwwQkFBOEM7SUFDaEQsaUJBQVM7OztJQUZQLHdFQUFtRDtJQUR4Qiw4RUFBNkQ7OztJQWM1RiwrQkFBNkU7SUFBQSxZQUFhO0lBQUEsaUJBQU87OztJQUEvQywrQ0FBMEI7SUFBQyxlQUFhO0lBQWIsc0NBQWE7OztJQUMxRiwrQkFBeUY7SUFBQSxZQUFtQjtJQUFBLGlCQUFPOzs7SUFBM0QscURBQWdDO0lBQUMsZUFBbUI7SUFBbkIsNENBQW1COzs7O0lBdEI5Ryx1Q0FFc0Q7SUFGRix1T0FBcUQsRUFBRSxJQUFDO0lBRzFHLDhCQUU4RztJQUM1RyxxRkFJUztJQUNULDhCQUFtRDtJQUNqRCxrQkFBb0Q7SUFDdEQsaUJBQU07SUFDTiw4QkFBa047SUFDaE4scUJBQXFEO0lBQ3ZELGlCQUFNO0lBQ04sOEJBQW1EO0lBQ2pELHFCQUFv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QztnQkFDUCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjthQUN6QztvSEFnQ21CLDBCQUEwQjtrQkFBekMsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFDVSxhQUFhO2tCQUE1QixLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUNVLGVBQWU7a0JBQTlCLEtBQUs7WUFRYyxVQUFVO2tCQUE3QixLQUFLO1lBZUssVUFBVTtrQkFEcEIsS0FBSztZQWNVLFVBQVU7a0JBQXpCLEtBQUs7WUFLVSxXQUFXO2tCQUExQixLQUFLO1lBT1UsaUJBQWlCO2tCQUFoQyxLQUFLO1lBb0NDLE9BQU87a0JBRGIsWUFBWTttQkFBQyx1QkFBdUI7WUE0QjlCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERlYm91bmNlIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9iYXNlL2RlY29yYXRvcnMvZGVib3VuY2UuZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IERvbSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZG9tL2RvbSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RyaW5ncyB9IGZyb20gJy4uLy4uL2dlbmVyYXRlZC9zdHJpbmdzJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBzbWVEb2Mge0BsYWJlbCBEaWFsb2cgQGlkIHNtZS1kaWFsb2d9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLW92ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhc2ljIFVzYWdlIEBpZCBiYXNpYy11c2FnZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIERpYWxvZyBDaGFpbiBAaWQgZGlhbG9nLWNoYWlufVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS1kaWFsb2ctY2hhaW4uY29tcG9uZW50LnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLWRpYWxvZy1jaGFpbi5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBGdWxsIFNjcmVlbiBEaWFsb2cgQGlkIGZ1bGwtc2NyZWVuLWRpYWxvZ31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUtZnVsbC1zY3JlZW4tZGlhbG9nLmNvbXBvbmVudC50c31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS1mdWxsLXNjcmVlbi1kaWFsb2cuY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWRpYWxvZy1oZWFkZXInLFxyXG4gICAgdGVtcGxhdGU6ICc8ZGl2IGNsYXNzPVwic21lLXBhZGRpbmctaG9yaXpvbnRhbC1sZyBzbWUtcGFkZGluZy12ZXJ0aWNhbC1zbVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dIZWFkZXJDb21wb25lbnQge1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWRpYWxvZy1jb250ZW50JyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PidcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbnRlbnRDb21wb25lbnQge1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWRpYWxvZy1mb290ZXInLFxyXG4gICAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwic21lLWxheW91dC1mbG9hdC1yaWdodCBzbWUtcG9zaXRpb24tcmlnaHQtaW5saW5lIHNtZS1wYWRkaW5nLXNwcmVhZC1oLXhzIHNtZS1sYXlvdXQtZGlhbG9nLWZvb3RlclwiPlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PmBcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0Zvb3RlckNvbXBvbmVudCB7XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIERpYWxvZ0Nsb3NlUmVhc29uIHtcclxuICAgIFNvZnREaXNtaXNzID0gMCxcclxuICAgIENsb3NlQnV0dG9uID0gMSxcclxuICAgIEVzY2FwZUtleSA9IDIsXHJcbiAgICBDb21wZXRpbmdEaWFsb2cgPSAzXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dNb2RlIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgcGFuZSA9ICdwYW5lJztcclxuICAgIHB1YmxpYyBzdGF0aWMgd2lkZVBhbmUgPSAnd2lkZS1wYW5lJztcclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFjdCA9ICdjb21wYWN0JztcclxuICAgIHB1YmxpYyBzdGF0aWMgY29tcGFjdFNxdWFyZSA9ICdjb21wYWN0LXNxdWFyZSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIGZ1bGxzY3JlZW4gPSAnZnVsbHNjcmVlbic7XHJcbiAgICBwdWJsaWMgc3RhdGljIGNlbnRlcmVkID0gJ2NlbnRlcmVkJztcclxuICAgIHB1YmxpYyBzdGF0aWMgY2VudGVyZWRNZWRpdW0gPSAnY2VudGVyZWQtbWVkaXVtJztcclxuICAgIHB1YmxpYyBzdGF0aWMgY2VudGVyZWRMYXJnZSA9ICdjZW50ZXJlZC1sYXJnZSc7XHJcbiAgICBwdWJsaWMgc3RhdGljIG5vdGlmaWNhdGlvbiA9ICdub3RpZmljYXRpb24nO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgbW9kYWxEaWFsb2cgPSAnbW9kYWwnO1xyXG5leHBvcnQgY29uc3QgYWxlcnREaWFsb2cgPSAnYWxlcnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0RpYWxvZ0NvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdGF0aWMgY29uc3RhbnQgdG8gcHJvdmlkZSB1bmlxdWUgaWRzIGZvciBlYWNoIG1hc3RlciB2aWV3XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIG5leHREaWFsb2dJZCA9IDA7XHJcbiAgICBwdWJsaWMgZGlhbG9nQ2xhc3Nlczogc3RyaW5nW107XHJcbiAgICBwdWJsaWMgZGlhbG9nUm9sZSA9ICdhbGVydGRpYWxvZyc7XHJcblxyXG4gICAgcHVibGljIHN0cmluZ3MgPSBNc2Z0U21lLmdldFN0cmluZ3M8U3RyaW5ncz4oKTtcclxuXHJcbiAgICBwdWJsaWMgZGlhbG9nTGV2ZWwgPSAxO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQSBiYWcgb2YgaWRzIGdlbmVyYXRlZCB1c2luZyBAc2VlIHttYXN0ZXJWaWV3SWR9IGFuZCB0aGUgbWFwIHJldHVybmVkIGZyb20gQHNlZSB7Y3JlYXRlSWRCYWd9XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpZEJhZzogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPjtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHVuaXF1ZSBpZCBvZiB0aGlzIG1hc3RlciB2aWV3LlxyXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiBtYXN0ZXJWaWV3cyBuZWVkIHRvIHVzZSBhbiBJRCBidXQgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBwYWdlLlxyXG4gICAgICogVXNpbmcgdGhpcyBJRCBhcyB0aGUgYmFzaXMgZm9yIHRoZSBjb250cm9scyBpbnRlcm5hbCBJRHMgZ2VuZXJhdGVkIGluIEBzZWUge2NyZWF0ZUlkQmFnfSBrZWVwcyB0aGUgSURzIHVuaXF1ZS5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ0lkOiBudW1iZXI7XHJcbiAgICBwcm90ZWN0ZWQgbW9kZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhbGxvd0JhY2tncm91bmRJbnRlcmFjdGlvbiA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHVibGljIHNob3dCYWNrZHJvcCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xpY2tCYWNrZHJvcCA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXJpYUxhYmVsID0gJyc7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgYXJpYURlc2NyaXB0aW9uID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIHdoZXRoZXIgdGhpcyBzaG91bGQgYmUgYW4gYWN0aW9uIHBhbmUgb3IgYSBjZW50ZXJlZCBkaWFsb2dcclxuICAgICAqXHJcbiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgZGlhbG9nTW9kZSBpbnN0ZWFkXHJcbiAgICAgKiBAcGFyYW0gbmV3VmFsdWUgaWYgdHJ1ZSwgdXNlcyBhIGxlZnQgcGFuZSBkaWFsb2csIG90aGVyd2lzZSBhIGNlbnRlcmVkIGRpYWxvZ1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2V0IGFjdGlvblBhbmUobmV3VmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICBpZiAobmV3VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dNb2RlID0gRGlhbG9nTW9kZS5wYW5lO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nTW9kZSA9IERpYWxvZ01vZGUuY2VudGVyZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnNldERpYWxvZ01vZGVGcm9tSW5wdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRlcyB0aGUgZGlhbG9nIG1vZGUgdG8gdXNlXHJcbiAgICAgKiBAc2VlIERpYWxvZ01vZGVcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzZXQgZGlhbG9nTW9kZShtb2RlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLm1vZGUgPSBtb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgZGlhbG9nTW9kZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tb2RlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlhbG9nIHR5cGVzLiBNb3N0bHkgdXNlZCBmb3IgYWNjZXNzaWJpbGl0eS4gVmFsaWQgdmFsdWVzOlxyXG4gICAgICogQHNlZSBtb2RhbERpYWxvZyA9ICdtb2RhbCc7XHJcbiAgICAgKiBAc2VlIGFsZXJ0RGlhbG9nID0gXCJhbGVydFwiO1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgZGlhbG9nVHlwZSA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgZGlhbG9nIHNob3VsZCBoYXZlIGEgY2xvc2UgYnV0dG9uIGluIHRvcCByaWdodCBvciBub3RcclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGNsb3NlQnV0dG9uID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb21wYWN0IGRpYWxvZyBjYW4gYmUgZnVsbCBoZWlnaHQgd2hlbiBkaXNwbGF5aW5nIG9uIHRoZSByaWdodCBzaWRlIG9mIHRoZSBzY3JlZW4uXHJcbiAgICAgKiBJdCBjYW4gYWxzbyBiZSBkaXNwbGF5ZWQgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc2NyZWVuIHRoYXQgbmVlZHMgdG8gYmUgaGF2aW5nIHBhZGRpbmdzIHRvIGVhY2ggZGlyZWN0aW9uLlxyXG4gICAgICogVGhpcyBjb21wYWN0RnVsbEhlaWdodCB0byB0cnVlIHdpbGwgYWx3YXlzIGJlIDEwMCUgaGVpZ2h0LiBPdGhlcndpc2UgY3NzIHdvdWxkIGNvbnRyb2wgdGhlIG1heCBoZWlnaHQuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjb21wYWN0RnVsbEhlaWdodCA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBjbG9zZVJlcXVlc3RlZDogU3ViamVjdDxEaWFsb2dDbG9zZVJlYXNvbj47XHJcblxyXG4gICAgcHJpdmF0ZSBkb0F1dG9Gb2N1cyA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBpc1Zpc2libGUgPSBmYWxzZTtcclxuICAgIHB1YmxpYyBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5pc1Zpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgICAgIHRoaXMuZG9BdXRvRm9jdXMgPSB2aXNpYmxlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgdmlzaWJsZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RlID0gRGlhbG9nTW9kZS5wYW5lO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgY2xvc2VSZXF1ZXN0ZWQgc3ViamVjdCB0byBub3RpZnkgZGlhbG9ncyB3aGVuIGEgY2xvc2UgaXMgcmVxdWVzdGVkIGFuZCBob3cgaXQgd2FzIHJlcXVlc3RlZCAoRGlhbG9nQ2xvc2VSZWFzb24pXHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZCA9IG5ldyBTdWJqZWN0PERpYWxvZ0Nsb3NlUmVhc29uPigpO1xyXG4gICAgICAgIHRoaXMuc2V0RGlhbG9nTW9kZUZyb21JbnB1dCgpO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBkaWFsb2cgaWQgYW5kIGlkQmFnXHJcbiAgICAgICAgdGhpcy5kaWFsb2dJZCA9IERpYWxvZ0NvbXBvbmVudC5uZXh0RGlhbG9nSWQrKztcclxuICAgICAgICB0aGlzLmlkQmFnID0gdGhpcy5jcmVhdGVJZEJhZygpO1xyXG4gICAgICAgIE1zZnRTbWUuZm9yRWFjaEtleSh0aGlzLmlkQmFnLCAoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaWRCYWdba2V5XSA9IGBkaWFsb2ctJHt0aGlzLmRpYWxvZ0lkLnRvU3RyaW5nKCl9LSR7a2V5fWA7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gZG9jdW1lbnQ6a2V5dXAuZXNjYXBlIGlzIHVzZWQgc28gdGhhdCBhIGRpYWxvZyBpcyBub3QgY2xvc2VkIHdoZW4gdHJ5aW5nIHRvIGNsb3NlIGEgdG9vbHRpcFxyXG4gICAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5dXAuZXNjYXBlJylcclxuICAgIHB1YmxpYyBvbktleVVwKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgICAgdGhpcy5vbkVzY2FwZVByZXNzZWQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbmd1bGFyIExpZmUgQ3ljbGUgaG9vayBmb3IgQWZ0ZXIgVmlldyBDaGVja2VkLlxyXG4gICAgICogV2hlbiB0aGUgdmlzaWJpbGl0eSBjaGFuZ2VzLCB3ZSBhcmUgZ29pbmcgdG8gZm9jdXMgb24gdGhlIGZpcnN0IGVsZW1lbnQgdGhhdCBoYXMgdGhlIGF1dG9mb2N1cyBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICBpZiAodGhpcy5kb0F1dG9Gb2N1cykge1xyXG4gICAgICAgICAgICB0aGlzLmF1dG9Gb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBsZXRlZCB0aGUgY2xvc2VSZXF1ZXN0ZWQgc3ViamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5jb21wbGV0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXV0byBmb2N1cyBvbiBmaXJzdCBlbGVtZW50IHRoYXQgaXMgZm9jdXNhYmxlXHJcbiAgICAgKi9cclxuICAgIEBEZWJvdW5jZSgwKVxyXG4gICAgcHVibGljIGF1dG9Gb2N1cygpIHtcclxuICAgICAgICB0aGlzLmRvQXV0b0ZvY3VzID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBkaWFsb2cgaGFzIGEgbG9hZGluZyB3aGVlbCwgZm9jdXMgZmlyc3QgZ29lcyB0byB0aGUgbG9hZGluZyB3aGVlbCB0aGVuIGdldHMgbG9zdC5cclxuICAgICAgICAgICAgLy8gVE8gYXZvaWQgdGhpcywgd2UgZ2V0IHRoZSBwYXJlbnQgZWxlbWVudCBvciBuYXRpdmUgZWxlbWVudCBvZiB0aGUgZGlhbG9nLCB0aGVuIGdldCB0aGUgZmlyc3RcclxuICAgICAgICAgICAgLy8gZm9jdXNhYmxlIGVsZW1lbnQgaW4gdGhhdCBlbGVtZW50XHJcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50IHx8IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICBjb25zdCBmaXJzdEZvY3VzYWJsZSA9IERvbS5nZXRGaXJzdEZvY3VzYWJsZURlc2NlbmRlbnQoZWxlbWVudCk7XHJcbiAgICAgICAgICAgIGlmIChmaXJzdEZvY3VzYWJsZSkge1xyXG4gICAgICAgICAgICAgICAgZmlyc3RGb2N1c2FibGUuZm9jdXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3dzIHRoZSBkaWFsb2cuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaG93KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIaWRlcyB0aGUgZGlhbG9nLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGlkZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vdGlmaWVzIGNsb3NlUmVxdWVzdGVkIHN1YnNjcmliZXJzIHRoYXQgdGhlIGJhY2tkcm9wIGhhcyBiZWVuIGNsaWNrZWQsIHJlcXVlc3RpbmcgYSBzb2Z0IGRpc21pc3NcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQmFja2dyb3VuZENsaWNrZWQoKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5uZXh0KERpYWxvZ0Nsb3NlUmVhc29uLlNvZnREaXNtaXNzKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE5vdGlmaWVzIGNsb3NlUmVxdWVzdGVkIHN1YnNjcmliZXJzIHRoYXQgdGhlIGNsb3NlIGJ1dHRvbiBoYXMgYmVlbiBwcmVzc2VkLCByZXF1ZXN0aW5nIGEgY2xvc2UgYnV0dG9uIGRpc21pc3NcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9uQ2xvc2VDbGlja2VkKCkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VSZXF1ZXN0ZWQubmV4dChEaWFsb2dDbG9zZVJlYXNvbi5DbG9zZUJ1dHRvbik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG9uRXNjYXBlUHJlc3NlZCgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkLm5leHQoRGlhbG9nQ2xvc2VSZWFzb24uRXNjYXBlS2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGNvbnN0IGRpYWxvZ01vZGVDaGFuZ2UgPSBjaGFuZ2VzWydkaWFsb2dNb2RlJ107XHJcbiAgICAgICAgaWYgKGRpYWxvZ01vZGVDaGFuZ2UgJiYgZGlhbG9nTW9kZUNoYW5nZS5jdXJyZW50VmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXREaWFsb2dNb2RlRnJvbUlucHV0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzZXREaWFsb2dNb2RlRnJvbUlucHV0KCkge1xyXG4gICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5kaWFsb2dNb2RlLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xyXG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSBbJ3NtZS1sYXlvdXQtYWJzb2x1dGUnLCAnc21lLXNjaGVtZS1kaWFsb2cnLCAnc21lLWFuaW1hdGlvbi10cmFuc2l0aW9uLXdpZHRoLXhzJywgJ3NtZS1yZXNwb25zaXZlLWRpYWxvZyddO1xyXG4gICAgICAgIGNvbnN0IGNvbW1vblBhbmVDbGFzc2VzID0gWydzbWUtcG9zaXRpb24tdmVydGljYWwtbm9uZScsICdzbWUtcG9zaXRpb24tcmlnaHQtbm9uZSddO1xyXG5cclxuICAgICAgICBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUucGFuZSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goLi4uY29tbW9uUGFuZUNsYXNzZXMsICdzbWUtbGF5b3V0LWRpYWxvZy1wYW5lJywgJ3NtZS1zaGFkb3ctYWN0aW9uLXBhbmUnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLndpZGVQYW5lKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLXdpZGUtcGFuZScsICdzbWUtc2hhZG93LWFjdGlvbi1wYW5lJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5jb21wYWN0KSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3QnLCAnc21lLXNoYWRvdy1hY3Rpb24tcGFuZScpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb21wYWN0RnVsbEhlaWdodCkge1xyXG4gICAgICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtbGF5b3V0LWRpYWxvZy1jb21wYWN0LWZ1bGwtaGVpZ2h0Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLmNvbXBhY3RTcXVhcmUpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtcG9zaXRpb24tY2VudGVyJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNlbnRlcmVkJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3Qtc3F1YXJlJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RGdWxsSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3QtZnVsbC1oZWlnaHQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuZnVsbHNjcmVlbikge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goLi4uY29tbW9uUGFuZUNsYXNzZXMsICdzbWUtbGF5b3V0LWRpYWxvZy1mdWxsc2NyZWVuJywgJ3NtZS1zaGFkb3ctYWN0aW9uLXBhbmUnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLmNlbnRlcmVkKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLXBvc2l0aW9uLWNlbnRlcicsICdzbWUtbGF5b3V0LWRpYWxvZy1jZW50ZXJlZCcsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY2VudGVyZWRNZWRpdW0pIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtcG9zaXRpb24tY2VudGVyJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNlbnRlcmVkLW1lZGl1bScsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY2VudGVyZWRMYXJnZSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi1jZW50ZXInLCAnc21lLWxheW91dC1kaWFsb2ctY2VudGVyZWQtbGFyZ2UnLCAnc21lLXNoYWRvdy1kaWFsb2cnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLm5vdGlmaWNhdGlvbikge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi10b3Atc20nLCAnc21lLXBvc2l0aW9uLXJpZ2h0LXNtJywgJ3NtZS1sYXlvdXQtZGlhbG9nLW5vdGlmaWNhdGlvbicsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtYXJyYW5nZS1zdGFjay12JywgJ3NtZS1hcnJhbmdlLW92ZXJmbG93LWF1dG8nKTtcclxuXHJcbiAgICAgICAgdGhpcy5kaWFsb2dDbGFzc2VzID0gY2xhc3NlcztcclxuXHJcbiAgICAgICAgLy8gYWNjZXNzaWJpbGl0eVxyXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1R5cGUpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dSb2xlID0gdGhpcy5kaWFsb2dUeXBlID09PSBtb2RhbERpYWxvZyA/ICdkaWFsb2cnIDogJ2FsZXJ0ZGlhbG9nJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBieSBkZWZhdWx0IGNlbnRlcmVkIGRpYWxvZ3MgYXJlIGNvbnNpZGVyZWQgYXMgYWxlcnRzXHJcbiAgICAgICAgICAgIGNvbnN0IGFsZXJ0TW9kZXMgPSBbRGlhbG9nTW9kZS5jZW50ZXJlZCwgRGlhbG9nTW9kZS5jZW50ZXJlZExhcmdlLCBEaWFsb2dNb2RlLmNvbXBhY3RTcXVhcmVdO1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JvbGUgPSBhbGVydE1vZGVzLnNvbWUobW9kZSA9PiB0aGlzLmRpYWxvZ01vZGUgPT09IG1vZGUpID8gJ2FsZXJ0ZGlhbG9nJyA6ICdkaWFsb2cnO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZXMgdGhlIGlkQmFnIHVzZWQgYnkgdGhpcyBjb21wb25lbnQgdG8gc3RvcmUgdW5pcXVlIGVsZW1lbnQgaWRzLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgYXJpYUxhYmVsU3BhbjogJycsXHJcbiAgICAgICAgICAgIGFyaWFEZXNjcmlwdGlvblNwYW46ICcnXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iLCI8c21lLWJhY2tkcm9wICpuZ0lmPVwidmlzaWJsZVwiIFtsZXZlbF09XCJkaWFsb2dMZXZlbFwiIChjbGlja2VkKT1cIiEhY2xpY2tCYWNrZHJvcCA/IG9uQmFja2dyb3VuZENsaWNrZWQoKSA6ICcnXCJcclxuICBbc2hvd0JhY2tkcm9wXT1cInNob3dCYWNrZHJvcFwiIFthbGxvd0JhY2tncm91bmRJbnRlcmFjdGlvbl09XCJhbGxvd0JhY2tncm91bmRJbnRlcmFjdGlvblwiXHJcbiAgY2xhc3M9XCJzbWUtbGF5b3V0LWFic29sdXRlIHNtZS1wb3NpdGlvbi1pbnNldC1ub25lXCI+XHJcbiAgPGRpdiBbbmdDbGFzc109XCJkaWFsb2dDbGFzc2VzXCIgW2F0dHIucm9sZV09XCJkaWFsb2dSb2xlXCIgW2F0dHIuYXJpYS1oaWRkZW5dPVwiIXZpc2libGVcIlxyXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbCA/IGlkQmFnLmFyaWFMYWJlbFNwYW4gOidzbWUtZGlhbG9nLXRpdGxlJ1wiXHJcbiAgICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmlwdGlvbiA/IGlkQmFnLmFyaWFEZXNjcmlwdGlvblNwYW4gOiAnc21lLWRpYWxvZy1kZXNjJ1wiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XHJcbiAgICA8YnV0dG9uICpuZ0lmPVwiY2xvc2VCdXR0b25cIiBjbGFzcz1cInNtZS1idXR0b24tdHJpZ2dlciBzbWUtYnV0dG9uLWF1dG8td2lkdGggc21lLWRpYWxvZy1jbG9zZS1idXR0b25cIlxyXG4gICAgICAoY2xpY2spPVwib25DbG9zZUNsaWNrZWQoKVwiIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uY2xvc2VcIlxyXG4gICAgICBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uY2xvc2VcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1jYW5jZWxcIj48L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1mb2N1cy16b25lXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctaGVhZGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0by15IHNtZS1hcnJhbmdlLW92ZXJmbG93LWhpZGUteCBzbWUtZm9jdXMtem9uZSBzbWUtbGF5b3V0LXJlc3BvbnNpdmUtem9uZS14cyBzbWUtZGlhbG9nLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzbWUtZGlhbG9nLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1mb2N1cy16b25lXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctZm9vdGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPHNwYW4gKm5nSWY9XCJhcmlhTGFiZWxcIiBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCIgW2lkXT1cImlkQmFnLmFyaWFMYWJlbFNwYW5cIj57e2FyaWFMYWJlbH19PC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwiYXJpYURlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy5hcmlhRGVzY3JpcHRpb25TcGFuXCI+e3thcmlhRGVzY3JpcHRpb259fTwvc3Bhbj5cclxuPC9zbWUtYmFja2Ryb3A+XHJcbiJdfQ==
420
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvZGlhbG9nL2RpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVILGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUlSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4RUFBOEUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7SUNWekQsaUNBRXNEO0lBRHBELDBNQUEwQjtJQUUxQiwwQkFBOEM7SUFDaEQsaUJBQVM7OztJQUZQLHdFQUFtRDtJQUR4Qiw4RUFBNkQ7OztJQWM1RixnQ0FBNkU7SUFBQSxZQUFhO0lBQUEsaUJBQU87OztJQUEvQywrQ0FBMEI7SUFBQyxlQUFhO0lBQWIsc0NBQWE7OztJQUMxRixnQ0FBeUY7SUFBQSxZQUFtQjtJQUFBLGlCQUFPOzs7SUFBM0QscURBQWdDO0lBQUMsZUFBbUI7SUFBbkIsNENBQW1COzs7O0lBdEI5Ryx1Q0FFc0Q7SUFGRix1T0FBcUQsRUFBRSxJQUFDO0lBRzFHLDhCQUU4RztJQUM1RyxxRkFJUztJQUNULDhCQUFtRDtJQUNqRCxrQkFBb0Q7SUFDdEQsaUJBQU07SUFDTiw4QkFBa047SUFDaE4scUJBQXFEO0lBQ3ZELGlCQUFNO0lBQ04sOEJBQXFHO0lBQ25HLHFCQUFv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QztnQkFDUCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsV0FBVyxFQUFFLHlCQUF5QjthQUN6QztvSEFnQ21CLDBCQUEwQjtrQkFBekMsS0FBSztZQUNVLFlBQVk7a0JBQTNCLEtBQUs7WUFDVSxhQUFhO2tCQUE1QixLQUFLO1lBQ1UsU0FBUztrQkFBeEIsS0FBSztZQUNVLGVBQWU7a0JBQTlCLEtBQUs7WUFRYyxVQUFVO2tCQUE3QixLQUFLO1lBZUssVUFBVTtrQkFEcEIsS0FBSztZQWNVLFVBQVU7a0JBQXpCLEtBQUs7WUFLVSxXQUFXO2tCQUExQixLQUFLO1lBT1UsaUJBQWlCO2tCQUFoQyxLQUFLO1lBb0NDLE9BQU87a0JBRGIsWUFBWTttQkFBQyx1QkFBdUI7WUE0QjlCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdG9yLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBPbkRlc3Ryb3ksXHJcbiAgICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERlYm91bmNlIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9iYXNlL2RlY29yYXRvcnMvZGVib3VuY2UuZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IERvbSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZG9tL2RvbSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RyaW5ncyB9IGZyb20gJy4uLy4uL2dlbmVyYXRlZC9zdHJpbmdzJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBzbWVEb2Mge0BsYWJlbCBEaWFsb2cgQGlkIHNtZS1kaWFsb2d9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLW92ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhc2ljIFVzYWdlIEBpZCBiYXNpYy11c2FnZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIERpYWxvZyBDaGFpbiBAaWQgZGlhbG9nLWNoYWlufVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS1kaWFsb2ctY2hhaW4uY29tcG9uZW50LnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RpYWxvZy1leGFtcGxlLWRpYWxvZy1jaGFpbi5jb21wb25lbnQuaHRtbH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBGdWxsIFNjcmVlbiBEaWFsb2cgQGlkIGZ1bGwtc2NyZWVuLWRpYWxvZ31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGlhbG9nLWV4YW1wbGUtZnVsbC1zY3JlZW4tZGlhbG9nLmNvbXBvbmVudC50c31cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9kaWFsb2ctZXhhbXBsZS1mdWxsLXNjcmVlbi1kaWFsb2cuY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWRpYWxvZy1oZWFkZXInLFxyXG4gICAgdGVtcGxhdGU6ICc8ZGl2IGNsYXNzPVwic21lLXBhZGRpbmctaG9yaXpvbnRhbC1sZyBzbWUtcGFkZGluZy12ZXJ0aWNhbC1zbVwiPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Rpdj4nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dIZWFkZXJDb21wb25lbnQge1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWRpYWxvZy1jb250ZW50JyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PidcclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0NvbnRlbnRDb21wb25lbnQge1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWRpYWxvZy1mb290ZXInLFxyXG4gICAgdGVtcGxhdGU6IGA8ZGl2IGNsYXNzPVwic21lLWxheW91dC1kaWFsb2ctZm9vdGVyXCI+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9kaXY+YFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nRm9vdGVyQ29tcG9uZW50IHtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gRGlhbG9nQ2xvc2VSZWFzb24ge1xyXG4gICAgU29mdERpc21pc3MgPSAwLFxyXG4gICAgQ2xvc2VCdXR0b24gPSAxLFxyXG4gICAgRXNjYXBlS2V5ID0gMixcclxuICAgIENvbXBldGluZ0RpYWxvZyA9IDNcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERpYWxvZ01vZGUge1xyXG4gICAgcHVibGljIHN0YXRpYyBwYW5lID0gJ3BhbmUnO1xyXG4gICAgcHVibGljIHN0YXRpYyB3aWRlUGFuZSA9ICd3aWRlLXBhbmUnO1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYWN0ID0gJ2NvbXBhY3QnO1xyXG4gICAgcHVibGljIHN0YXRpYyBjb21wYWN0U3F1YXJlID0gJ2NvbXBhY3Qtc3F1YXJlJztcclxuICAgIHB1YmxpYyBzdGF0aWMgZnVsbHNjcmVlbiA9ICdmdWxsc2NyZWVuJztcclxuICAgIHB1YmxpYyBzdGF0aWMgY2VudGVyZWQgPSAnY2VudGVyZWQnO1xyXG4gICAgcHVibGljIHN0YXRpYyBjZW50ZXJlZE1lZGl1bSA9ICdjZW50ZXJlZC1tZWRpdW0nO1xyXG4gICAgcHVibGljIHN0YXRpYyBjZW50ZXJlZExhcmdlID0gJ2NlbnRlcmVkLWxhcmdlJztcclxuICAgIHB1YmxpYyBzdGF0aWMgbm90aWZpY2F0aW9uID0gJ25vdGlmaWNhdGlvbic7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBtb2RhbERpYWxvZyA9ICdtb2RhbCc7XHJcbmV4cG9ydCBjb25zdCBhbGVydERpYWxvZyA9ICdhbGVydCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGlhbG9nLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlhbG9nQ29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnRGlhbG9nQ29tcG9uZW50JztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0YXRpYyBjb25zdGFudCB0byBwcm92aWRlIHVuaXF1ZSBpZHMgZm9yIGVhY2ggbWFzdGVyIHZpZXdcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgbmV4dERpYWxvZ0lkID0gMDtcclxuICAgIHB1YmxpYyBkaWFsb2dDbGFzc2VzOiBzdHJpbmdbXTtcclxuICAgIHB1YmxpYyBkaWFsb2dSb2xlID0gJ2FsZXJ0ZGlhbG9nJztcclxuXHJcbiAgICBwdWJsaWMgc3RyaW5ncyA9IE1zZnRTbWUuZ2V0U3RyaW5nczxTdHJpbmdzPigpO1xyXG5cclxuICAgIHB1YmxpYyBkaWFsb2dMZXZlbCA9IDE7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGJhZyBvZiBpZHMgZ2VuZXJhdGVkIHVzaW5nIEBzZWUge21hc3RlclZpZXdJZH0gYW5kIHRoZSBtYXAgcmV0dXJuZWQgZnJvbSBAc2VlIHtjcmVhdGVJZEJhZ31cclxuICAgICAqL1xyXG4gICAgcHVibGljIGlkQmFnOiBNc2Z0U21lLlN0cmluZ01hcDxzdHJpbmc+O1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdW5pcXVlIGlkIG9mIHRoaXMgbWFzdGVyIHZpZXcuXHJcbiAgICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIG1hc3RlclZpZXdzIG5lZWQgdG8gdXNlIGFuIElEIGJ1dCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIG9uIHRoZSBzYW1lIHBhZ2UuXHJcbiAgICAgKiBVc2luZyB0aGlzIElEIGFzIHRoZSBiYXNpcyBmb3IgdGhlIGNvbnRyb2xzIGludGVybmFsIElEcyBnZW5lcmF0ZWQgaW4gQHNlZSB7Y3JlYXRlSWRCYWd9IGtlZXBzIHRoZSBJRHMgdW5pcXVlLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZGlhbG9nSWQ6IG51bWJlcjtcclxuICAgIHByb3RlY3RlZCBtb2RlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KCkgcHVibGljIGFsbG93QmFja2dyb3VuZEludGVyYWN0aW9uID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBwdWJsaWMgc2hvd0JhY2tkcm9wID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBjbGlja0JhY2tkcm9wID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhcmlhTGFiZWwgPSAnJztcclxuICAgIEBJbnB1dCgpIHB1YmxpYyBhcmlhRGVzY3JpcHRpb24gPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgd2hldGhlciB0aGlzIHNob3VsZCBiZSBhbiBhY3Rpb24gcGFuZSBvciBhIGNlbnRlcmVkIGRpYWxvZ1xyXG4gICAgICpcclxuICAgICAqIEBkZXByZWNhdGVkIFVzZSBkaWFsb2dNb2RlIGluc3RlYWRcclxuICAgICAqIEBwYXJhbSBuZXdWYWx1ZSBpZiB0cnVlLCB1c2VzIGEgbGVmdCBwYW5lIGRpYWxvZywgb3RoZXJ3aXNlIGEgY2VudGVyZWQgZGlhbG9nXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgYWN0aW9uUGFuZShuZXdWYWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmIChuZXdWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ01vZGUgPSBEaWFsb2dNb2RlLnBhbmU7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dNb2RlID0gRGlhbG9nTW9kZS5jZW50ZXJlZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2V0RGlhbG9nTW9kZUZyb21JbnB1dCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHRoZSBkaWFsb2cgbW9kZSB0byB1c2VcclxuICAgICAqIEBzZWUgRGlhbG9nTW9kZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHNldCBkaWFsb2dNb2RlKG1vZGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMubW9kZSA9IG1vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBkaWFsb2dNb2RlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaWFsb2cgdHlwZXMuIE1vc3RseSB1c2VkIGZvciBhY2Nlc3NpYmlsaXR5LiBWYWxpZCB2YWx1ZXM6XHJcbiAgICAgKiBAc2VlIG1vZGFsRGlhbG9nID0gJ21vZGFsJztcclxuICAgICAqIEBzZWUgYWxlcnREaWFsb2cgPSBcImFsZXJ0XCI7XHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBkaWFsb2dUeXBlID0gJyc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBkaWFsb2cgc2hvdWxkIGhhdmUgYSBjbG9zZSBidXR0b24gaW4gdG9wIHJpZ2h0IG9yIG5vdFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKSBwdWJsaWMgY2xvc2VCdXR0b24gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvbXBhY3QgZGlhbG9nIGNhbiBiZSBmdWxsIGhlaWdodCB3aGVuIGRpc3BsYXlpbmcgb24gdGhlIHJpZ2h0IHNpZGUgb2YgdGhlIHNjcmVlbi5cclxuICAgICAqIEl0IGNhbiBhbHNvIGJlIGRpc3BsYXllZCBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3JlZW4gdGhhdCBuZWVkcyB0byBiZSBoYXZpbmcgcGFkZGluZ3MgdG8gZWFjaCBkaXJlY3Rpb24uXHJcbiAgICAgKiBUaGlzIGNvbXBhY3RGdWxsSGVpZ2h0IHRvIHRydWUgd2lsbCBhbHdheXMgYmUgMTAwJSBoZWlnaHQuIE90aGVyd2lzZSBjc3Mgd291bGQgY29udHJvbCB0aGUgbWF4IGhlaWdodC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCkgcHVibGljIGNvbXBhY3RGdWxsSGVpZ2h0ID0gZmFsc2U7XHJcblxyXG4gICAgcHVibGljIGNsb3NlUmVxdWVzdGVkOiBTdWJqZWN0PERpYWxvZ0Nsb3NlUmVhc29uPjtcclxuXHJcbiAgICBwcml2YXRlIGRvQXV0b0ZvY3VzID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGlzVmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgcHVibGljIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IHZpc2libGU7XHJcbiAgICAgICAgdGhpcy5kb0F1dG9Gb2N1cyA9IHZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB2aXNpYmxlKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzVmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGUgPSBEaWFsb2dNb2RlLnBhbmU7XHJcblxyXG4gICAgICAgIC8vIENyZWF0ZSBjbG9zZVJlcXVlc3RlZCBzdWJqZWN0IHRvIG5vdGlmeSBkaWFsb2dzIHdoZW4gYSBjbG9zZSBpcyByZXF1ZXN0ZWQgYW5kIGhvdyBpdCB3YXMgcmVxdWVzdGVkIChEaWFsb2dDbG9zZVJlYXNvbilcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkID0gbmV3IFN1YmplY3Q8RGlhbG9nQ2xvc2VSZWFzb24+KCk7XHJcbiAgICAgICAgdGhpcy5zZXREaWFsb2dNb2RlRnJvbUlucHV0KCk7XHJcblxyXG4gICAgICAgIC8vIHNldHVwIGRpYWxvZyBpZCBhbmQgaWRCYWdcclxuICAgICAgICB0aGlzLmRpYWxvZ0lkID0gRGlhbG9nQ29tcG9uZW50Lm5leHREaWFsb2dJZCsrO1xyXG4gICAgICAgIHRoaXMuaWRCYWcgPSB0aGlzLmNyZWF0ZUlkQmFnKCk7XHJcbiAgICAgICAgTXNmdFNtZS5mb3JFYWNoS2V5KHRoaXMuaWRCYWcsIChrZXkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5pZEJhZ1trZXldID0gYGRpYWxvZy0ke3RoaXMuZGlhbG9nSWQudG9TdHJpbmcoKX0tJHtrZXl9YDtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBkb2N1bWVudDprZXl1cC5lc2NhcGUgaXMgdXNlZCBzbyB0aGF0IGEgZGlhbG9nIGlzIG5vdCBjbG9zZWQgd2hlbiB0cnlpbmcgdG8gY2xvc2UgYSB0b29sdGlwXHJcbiAgICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cC5lc2NhcGUnKVxyXG4gICAgcHVibGljIG9uS2V5VXAoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgICB0aGlzLm9uRXNjYXBlUHJlc3NlZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEFuZ3VsYXIgTGlmZSBDeWNsZSBob29rIGZvciBBZnRlciBWaWV3IENoZWNrZWQuXHJcbiAgICAgKiBXaGVuIHRoZSB2aXNpYmlsaXR5IGNoYW5nZXMsIHdlIGFyZSBnb2luZyB0byBmb2N1cyBvbiB0aGUgZmlyc3QgZWxlbWVudCB0aGF0IGhhcyB0aGUgYXV0b2ZvY3VzIGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdDaGVja2VkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLmRvQXV0b0ZvY3VzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYXV0b0ZvY3VzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29tcGxldGVkIHRoZSBjbG9zZVJlcXVlc3RlZCBzdWJqZWN0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBdXRvIGZvY3VzIG9uIGZpcnN0IGVsZW1lbnQgdGhhdCBpcyBmb2N1c2FibGVcclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKDApXHJcbiAgICBwdWJsaWMgYXV0b0ZvY3VzKCkge1xyXG4gICAgICAgIHRoaXMuZG9BdXRvRm9jdXMgPSBmYWxzZTtcclxuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgLy8gSWYgdGhlIGRpYWxvZyBoYXMgYSBsb2FkaW5nIHdoZWVsLCBmb2N1cyBmaXJzdCBnb2VzIHRvIHRoZSBsb2FkaW5nIHdoZWVsIHRoZW4gZ2V0cyBsb3N0LlxyXG4gICAgICAgICAgICAvLyBUTyBhdm9pZCB0aGlzLCB3ZSBnZXQgdGhlIHBhcmVudCBlbGVtZW50IG9yIG5hdGl2ZSBlbGVtZW50IG9mIHRoZSBkaWFsb2csIHRoZW4gZ2V0IHRoZSBmaXJzdFxyXG4gICAgICAgICAgICAvLyBmb2N1c2FibGUgZWxlbWVudCBpbiB0aGF0IGVsZW1lbnRcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQgfHwgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlID0gRG9tLmdldEZpcnN0Rm9jdXNhYmxlRGVzY2VuZGVudChlbGVtZW50KTtcclxuICAgICAgICAgICAgaWYgKGZpcnN0Rm9jdXNhYmxlKSB7XHJcbiAgICAgICAgICAgICAgICBmaXJzdEZvY3VzYWJsZS5mb2N1cygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvd3MgdGhlIGRpYWxvZy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHNob3coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhpZGVzIHRoZSBkaWFsb2cuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm90aWZpZXMgY2xvc2VSZXF1ZXN0ZWQgc3Vic2NyaWJlcnMgdGhhdCB0aGUgYmFja2Ryb3AgaGFzIGJlZW4gY2xpY2tlZCwgcmVxdWVzdGluZyBhIHNvZnQgZGlzbWlzc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25CYWNrZ3JvdW5kQ2xpY2tlZCgpIHtcclxuICAgICAgICB0aGlzLmNsb3NlUmVxdWVzdGVkLm5leHQoRGlhbG9nQ2xvc2VSZWFzb24uU29mdERpc21pc3MpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTm90aWZpZXMgY2xvc2VSZXF1ZXN0ZWQgc3Vic2NyaWJlcnMgdGhhdCB0aGUgY2xvc2UgYnV0dG9uIGhhcyBiZWVuIHByZXNzZWQsIHJlcXVlc3RpbmcgYSBjbG9zZSBidXR0b24gZGlzbWlzc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25DbG9zZUNsaWNrZWQoKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZVJlcXVlc3RlZC5uZXh0KERpYWxvZ0Nsb3NlUmVhc29uLkNsb3NlQnV0dG9uKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Fc2NhcGVQcmVzc2VkKCkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VSZXF1ZXN0ZWQubmV4dChEaWFsb2dDbG9zZVJlYXNvbi5Fc2NhcGVLZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAgICAgY29uc3QgZGlhbG9nTW9kZUNoYW5nZSA9IGNoYW5nZXNbJ2RpYWxvZ01vZGUnXTtcclxuICAgICAgICBpZiAoZGlhbG9nTW9kZUNoYW5nZSAmJiBkaWFsb2dNb2RlQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgICAgICB0aGlzLnNldERpYWxvZ01vZGVGcm9tSW5wdXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIHNldERpYWxvZ01vZGVGcm9tSW5wdXQoKSB7XHJcbiAgICAgICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLmRpYWxvZ01vZGUudG9Mb3dlckNhc2UoKS50cmltKCk7XHJcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IFsnc21lLWxheW91dC1hYnNvbHV0ZScsICdzbWUtc2NoZW1lLWRpYWxvZycsICdzbWUtYW5pbWF0aW9uLXRyYW5zaXRpb24td2lkdGgteHMnLCAnc21lLXJlc3BvbnNpdmUtZGlhbG9nJ107XHJcbiAgICAgICAgY29uc3QgY29tbW9uUGFuZUNsYXNzZXMgPSBbJ3NtZS1wb3NpdGlvbi12ZXJ0aWNhbC1ub25lJywgJ3NtZS1wb3NpdGlvbi1yaWdodC1ub25lJ107XHJcblxyXG4gICAgICAgIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5wYW5lKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLXBhbmUnLCAnc21lLXNoYWRvdy1hY3Rpb24tcGFuZScpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUud2lkZVBhbmUpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLmNvbW1vblBhbmVDbGFzc2VzLCAnc21lLWxheW91dC1kaWFsb2ctd2lkZS1wYW5lJywgJ3NtZS1zaGFkb3ctYWN0aW9uLXBhbmUnKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG5ld1ZhbHVlID09PSBEaWFsb2dNb2RlLmNvbXBhY3QpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKC4uLmNvbW1vblBhbmVDbGFzc2VzLCAnc21lLWxheW91dC1kaWFsb2ctY29tcGFjdCcsICdzbWUtc2hhZG93LWFjdGlvbi1wYW5lJyk7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBhY3RGdWxsSGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1sYXlvdXQtZGlhbG9nLWNvbXBhY3QtZnVsbC1oZWlnaHQnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY29tcGFjdFNxdWFyZSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi1jZW50ZXInLCAnc21lLWxheW91dC1kaWFsb2ctY2VudGVyZWQnLCAnc21lLWxheW91dC1kaWFsb2ctY29tcGFjdC1zcXVhcmUnLCAnc21lLXNoYWRvdy1kaWFsb2cnKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29tcGFjdEZ1bGxIZWlnaHQpIHtcclxuICAgICAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLWxheW91dC1kaWFsb2ctY29tcGFjdC1mdWxsLWhlaWdodCcpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5mdWxsc2NyZWVuKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCguLi5jb21tb25QYW5lQ2xhc3NlcywgJ3NtZS1sYXlvdXQtZGlhbG9nLWZ1bGxzY3JlZW4nLCAnc21lLXNoYWRvdy1hY3Rpb24tcGFuZScpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUuY2VudGVyZWQpIHtcclxuICAgICAgICAgICAgY2xhc3Nlcy5wdXNoKCdzbWUtcG9zaXRpb24tY2VudGVyJywgJ3NtZS1sYXlvdXQtZGlhbG9nLWNlbnRlcmVkJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5jZW50ZXJlZE1lZGl1bSkge1xyXG4gICAgICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1wb3NpdGlvbi1jZW50ZXInLCAnc21lLWxheW91dC1kaWFsb2ctY2VudGVyZWQtbWVkaXVtJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChuZXdWYWx1ZSA9PT0gRGlhbG9nTW9kZS5jZW50ZXJlZExhcmdlKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLXBvc2l0aW9uLWNlbnRlcicsICdzbWUtbGF5b3V0LWRpYWxvZy1jZW50ZXJlZC1sYXJnZScsICdzbWUtc2hhZG93LWRpYWxvZycpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobmV3VmFsdWUgPT09IERpYWxvZ01vZGUubm90aWZpY2F0aW9uKSB7XHJcbiAgICAgICAgICAgIGNsYXNzZXMucHVzaCgnc21lLXBvc2l0aW9uLXRvcC1zbScsICdzbWUtcG9zaXRpb24tcmlnaHQtc20nLCAnc21lLWxheW91dC1kaWFsb2ctbm90aWZpY2F0aW9uJywgJ3NtZS1zaGFkb3ctZGlhbG9nJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjbGFzc2VzLnB1c2goJ3NtZS1hcnJhbmdlLXN0YWNrLXYnLCAnc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0bycpO1xyXG5cclxuICAgICAgICB0aGlzLmRpYWxvZ0NsYXNzZXMgPSBjbGFzc2VzO1xyXG5cclxuICAgICAgICAvLyBhY2Nlc3NpYmlsaXR5XHJcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nVHlwZSkge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JvbGUgPSB0aGlzLmRpYWxvZ1R5cGUgPT09IG1vZGFsRGlhbG9nID8gJ2RpYWxvZycgOiAnYWxlcnRkaWFsb2cnO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIGJ5IGRlZmF1bHQgY2VudGVyZWQgZGlhbG9ncyBhcmUgY29uc2lkZXJlZCBhcyBhbGVydHNcclxuICAgICAgICAgICAgY29uc3QgYWxlcnRNb2RlcyA9IFtEaWFsb2dNb2RlLmNlbnRlcmVkLCBEaWFsb2dNb2RlLmNlbnRlcmVkTGFyZ2UsIERpYWxvZ01vZGUuY29tcGFjdFNxdWFyZV07XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUm9sZSA9IGFsZXJ0TW9kZXMuc29tZShtb2RlID0+IHRoaXMuZGlhbG9nTW9kZSA9PT0gbW9kZSkgPyAnYWxlcnRkaWFsb2cnIDogJ2RpYWxvZyc7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgaWRCYWcgdXNlZCBieSB0aGlzIGNvbXBvbmVudCB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHMuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjcmVhdGVJZEJhZygpOiBNc2Z0U21lLlN0cmluZ01hcDxzdHJpbmc+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBhcmlhTGFiZWxTcGFuOiAnJyxcclxuICAgICAgICAgICAgYXJpYURlc2NyaXB0aW9uU3BhbjogJydcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG59XHJcbiIsIjxzbWUtYmFja2Ryb3AgKm5nSWY9XCJ2aXNpYmxlXCIgW2xldmVsXT1cImRpYWxvZ0xldmVsXCIgKGNsaWNrZWQpPVwiISFjbGlja0JhY2tkcm9wID8gb25CYWNrZ3JvdW5kQ2xpY2tlZCgpIDogJydcIlxyXG4gIFtzaG93QmFja2Ryb3BdPVwic2hvd0JhY2tkcm9wXCIgW2FsbG93QmFja2dyb3VuZEludGVyYWN0aW9uXT1cImFsbG93QmFja2dyb3VuZEludGVyYWN0aW9uXCJcclxuICBjbGFzcz1cInNtZS1sYXlvdXQtYWJzb2x1dGUgc21lLXBvc2l0aW9uLWluc2V0LW5vbmVcIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cImRpYWxvZ0NsYXNzZXNcIiBbYXR0ci5yb2xlXT1cImRpYWxvZ1JvbGVcIiBbYXR0ci5hcmlhLWhpZGRlbl09XCIhdmlzaWJsZVwiXHJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsID8gaWRCYWcuYXJpYUxhYmVsU3BhbiA6J3NtZS1kaWFsb2ctdGl0bGUnXCJcclxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiYXJpYURlc2NyaXB0aW9uID8gaWRCYWcuYXJpYURlc2NyaXB0aW9uU3BhbiA6ICdzbWUtZGlhbG9nLWRlc2MnXCIgYXJpYS1tb2RhbD1cInRydWVcIj5cclxuICAgIDxidXR0b24gKm5nSWY9XCJjbG9zZUJ1dHRvblwiIGNsYXNzPVwic21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtZGlhbG9nLWNsb3NlLWJ1dHRvblwiXHJcbiAgICAgIChjbGljayk9XCJvbkNsb3NlQ2xpY2tlZCgpXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5jbG9zZVwiXHJcbiAgICAgIFt0aXRsZV09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5jbG9zZVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWNhbmNlbFwiPjwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWZvY3VzLXpvbmVcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic21lLWRpYWxvZy1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJzbWUtbGF5b3V0LXJlbGF0aXZlIHNtZS1wb3NpdGlvbi1mbGV4LWF1dG8gc21lLXBhZGRpbmctaG9yaXpvbnRhbC1sZyBzbWUtYXJyYW5nZS1vdmVyZmxvdy1hdXRvLXkgc21lLWFycmFuZ2Utb3ZlcmZsb3ctaGlkZS14IHNtZS1mb2N1cy16b25lIHNtZS1sYXlvdXQtcmVzcG9uc2l2ZS16b25lLXhzIHNtZS1kaWFsb2ctY29udGVudC13cmFwcGVyXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctY29udGVudFwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWZvY3VzLXpvbmUgc21lLXBhZGRpbmctaG9yaXpvbnRhbC1sZyBzbWUtcGFkZGluZy12ZXJ0aWNhbC14c1wiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzbWUtZGlhbG9nLWZvb3RlclwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxzcGFuICpuZ0lmPVwiYXJpYUxhYmVsXCIgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy5hcmlhTGFiZWxTcGFuXCI+e3thcmlhTGFiZWx9fTwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cImFyaWFEZXNjcmlwdGlvblwiIGNsYXNzPVwic21lLXNjcmVlbi1yZWFkZXJcIiBbaWRdPVwiaWRCYWcuYXJpYURlc2NyaXB0aW9uU3BhblwiPnt7YXJpYURlc2NyaXB0aW9ufX08L3NwYW4+XHJcbjwvc21lLWJhY2tkcm9wPlxyXG4iXX0=
@@ -3,7 +3,7 @@ import { DialogComponent } from '../dialog.component';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  function ExtensionDialogComponent_span_7_Template(rf, ctx) { if (rf & 1) {
6
- i0.ɵɵelementStart(0, "span", 4);
6
+ i0.ɵɵelementStart(0, "span", 5);
7
7
  i0.ɵɵtext(1);
8
8
  i0.ɵɵelementEnd();
9
9
  } if (rf & 2) {
@@ -13,7 +13,7 @@ function ExtensionDialogComponent_span_7_Template(rf, ctx) { if (rf & 1) {
13
13
  i0.ɵɵtextInterpolate(ctx_r0.ariaLabel);
14
14
  } }
15
15
  function ExtensionDialogComponent_span_8_Template(rf, ctx) { if (rf & 1) {
16
- i0.ɵɵelementStart(0, "span", 4);
16
+ i0.ɵɵelementStart(0, "span", 5);
17
17
  i0.ɵɵtext(1);
18
18
  i0.ɵɵelementEnd();
19
19
  } if (rf & 2) {
@@ -27,7 +27,7 @@ const _c1 = ["sme-dialog-header", "sme-dialog-content", "sme-dialog-footer"];
27
27
  export class ExtensionDialogComponent extends DialogComponent {
28
28
  }
29
29
  /** @nocollapse */ ExtensionDialogComponent.ɵfac = function ExtensionDialogComponent_Factory(t) { return ɵExtensionDialogComponent_BaseFactory(t || ExtensionDialogComponent); };
30
- /** @nocollapse */ ExtensionDialogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ExtensionDialogComponent, selectors: [["sme-extension-dialog"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 9, vars: 6, consts: [["aria-modal", "true", 1, "sme-position-stretch-h", "sme-position-stretch-v", 3, "ngClass"], [1, "sme-position-flex-none", "sme-focus-zone"], [1, "sme-layout-relative", "sme-position-flex-auto", "sme-padding-horizontal-lg", "sme-arrange-overflow-auto-y", "sme-arrange-overflow-hide-x", "sme-focus-zone", "sme-layout-responsive-zone-xs"], ["class", "sme-screen-reader", 3, "id", 4, "ngIf"], [1, "sme-screen-reader", 3, "id"]], template: function ExtensionDialogComponent_Template(rf, ctx) { if (rf & 1) {
30
+ /** @nocollapse */ ExtensionDialogComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ExtensionDialogComponent, selectors: [["sme-extension-dialog"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c1, decls: 9, vars: 6, consts: [["aria-modal", "true", 1, "sme-position-stretch-h", "sme-position-stretch-v", 3, "ngClass"], [1, "sme-position-flex-none", "sme-focus-zone"], [1, "sme-layout-relative", "sme-position-flex-auto", "sme-padding-horizontal-lg", "sme-arrange-overflow-auto-y", "sme-arrange-overflow-hide-x", "sme-focus-zone", "sme-layout-responsive-zone-xs"], [1, "sme-position-flex-none", "sme-focus-zone", "sme-padding-horizontal-lg", "sme-padding-vertical-xs"], ["class", "sme-screen-reader", 3, "id", 4, "ngIf"], [1, "sme-screen-reader", 3, "id"]], template: function ExtensionDialogComponent_Template(rf, ctx) { if (rf & 1) {
31
31
  i0.ɵɵprojectionDef(_c0);
32
32
  i0.ɵɵelementStart(0, "div", 0);
33
33
  i0.ɵɵelementStart(1, "div", 1);
@@ -36,11 +36,11 @@ export class ExtensionDialogComponent extends DialogComponent {
36
36
  i0.ɵɵelementStart(3, "div", 2);
37
37
  i0.ɵɵprojection(4, 1);
38
38
  i0.ɵɵelementEnd();
39
- i0.ɵɵelementStart(5, "div", 1);
39
+ i0.ɵɵelementStart(5, "div", 3);
40
40
  i0.ɵɵprojection(6, 2);
41
41
  i0.ɵɵelementEnd();
42
- i0.ɵɵtemplate(7, ExtensionDialogComponent_span_7_Template, 2, 2, "span", 3);
43
- i0.ɵɵtemplate(8, ExtensionDialogComponent_span_8_Template, 2, 2, "span", 3);
42
+ i0.ɵɵtemplate(7, ExtensionDialogComponent_span_7_Template, 2, 2, "span", 4);
43
+ i0.ɵɵtemplate(8, ExtensionDialogComponent_span_8_Template, 2, 2, "span", 4);
44
44
  i0.ɵɵelementEnd();
45
45
  } if (rf & 2) {
46
46
  i0.ɵɵproperty("ngClass", ctx.dialogClasses);
@@ -58,4 +58,4 @@ const ɵExtensionDialogComponent_BaseFactory = /*@__PURE__*/ i0.ɵɵgetInherited
58
58
  templateUrl: './extension-dialog.component.html'
59
59
  }]
60
60
  }], null, null); })();
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9kaWFsb2cvZXh0ZW5zaW9uLWRpYWxvZy9leHRlbnNpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9leHRlbnNpb24tZGlhbG9nL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7SUNXcEQsK0JBQTZFO0lBQUEsWUFBYTtJQUFBLGlCQUFPOzs7SUFBL0MsK0NBQTBCO0lBQUMsZUFBYTtJQUFiLHNDQUFhOzs7SUFDMUYsK0JBQXlGO0lBQUEsWUFBbUI7SUFBQSxpQkFBTzs7O0lBQTNELHFEQUFnQztJQUFDLGVBQW1CO0lBQW5CLDRDQUFtQjs7OztBRE45RyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTs7b0pBQWhELHdCQUF3QjtnRkFBeEIsd0JBQXdCOztRQ1RyQyw4QkFFaUc7UUFDL0YsOEJBQW1EO1FBQ2pELGtCQUFvRDtRQUN0RCxpQkFBTTtRQUNOLDhCQUNvTDtRQUNsTCxxQkFBcUQ7UUFDdkQsaUJBQU07UUFDTiw4QkFBbUQ7UUFDakQscUJBQW9EO1FBQ3RELGlCQUFNO1FBRU4sMkVBQWlHO1FBQ2pHLDJFQUFtSDtRQUNySCxpQkFBTTs7UUFoQkQsMkNBQXlCO1FBQXVELHNDQUF3QixtRUFBQSxnRkFBQTtRQWNwRyxlQUFlO1FBQWYsb0NBQWU7UUFDZixlQUFxQjtRQUFyQiwwQ0FBcUI7O3FGRE5qQix3QkFBd0I7dUZBQXhCLHdCQUF3QjtjQUpwQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsV0FBVyxFQUFFLG1DQUFtQzthQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWV4dGVuc2lvbi1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpb25EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBEaWFsb2dDb21wb25lbnQgeyB9XHJcbiIsIjxkaXYgW25nQ2xhc3NdPVwiZGlhbG9nQ2xhc3Nlc1wiIGNsYXNzPVwic21lLXBvc2l0aW9uLXN0cmV0Y2gtaCBzbWUtcG9zaXRpb24tc3RyZXRjaC12XCIgW2F0dHIucm9sZV09XCJkaWFsb2dSb2xlXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsID8gaWRCYWcuYXJpYUxhYmVsU3BhbiA6bnVsbFwiXHJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpcHRpb24gPyBpZEJhZy5hcmlhRGVzY3JpcHRpb25TcGFuIDogbnVsbFwiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWZvY3VzLXpvbmVcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctaGVhZGVyXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0by15IHNtZS1hcnJhbmdlLW92ZXJmbG93LWhpZGUteCBzbWUtZm9jdXMtem9uZSBzbWUtbGF5b3V0LXJlc3BvbnNpdmUtem9uZS14c1wiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic21lLWRpYWxvZy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1mb2N1cy16b25lXCI+XHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzbWUtZGlhbG9nLWZvb3RlclwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPHNwYW4gKm5nSWY9XCJhcmlhTGFiZWxcIiBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCIgW2lkXT1cImlkQmFnLmFyaWFMYWJlbFNwYW5cIj57e2FyaWFMYWJlbH19PC9zcGFuPlxyXG4gIDxzcGFuICpuZ0lmPVwiYXJpYURlc2NyaXB0aW9uXCIgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiIFtpZF09XCJpZEJhZy5hcmlhRGVzY3JpcHRpb25TcGFuXCI+e3thcmlhRGVzY3JpcHRpb259fTwvc3Bhbj5cclxuPC9kaXY+XHJcbiJdfQ==
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9uLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9kaWFsb2cvZXh0ZW5zaW9uLWRpYWxvZy9leHRlbnNpb24tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2RpYWxvZy9leHRlbnNpb24tZGlhbG9nL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7SUNXcEQsK0JBQTZFO0lBQUEsWUFBYTtJQUFBLGlCQUFPOzs7SUFBL0MsK0NBQTBCO0lBQUMsZUFBYTtJQUFiLHNDQUFhOzs7SUFDMUYsK0JBQXlGO0lBQUEsWUFBbUI7SUFBQSxpQkFBTzs7O0lBQTNELHFEQUFnQztJQUFDLGVBQW1CO0lBQW5CLDRDQUFtQjs7OztBRE45RyxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZUFBZTs7b0pBQWhELHdCQUF3QjtnRkFBeEIsd0JBQXdCOztRQ1RyQyw4QkFFaUc7UUFDL0YsOEJBQW1EO1FBQ2pELGtCQUFvRDtRQUN0RCxpQkFBTTtRQUNOLDhCQUNvTDtRQUNsTCxxQkFBcUQ7UUFDdkQsaUJBQU07UUFDTiw4QkFBcUc7UUFDbkcscUJBQW9EO1FBQ3RELGlCQUFNO1FBRU4sMkVBQWlHO1FBQ2pHLDJFQUFtSDtRQUNySCxpQkFBTTs7UUFoQkQsMkNBQXlCO1FBQXVELHNDQUF3QixtRUFBQSxnRkFBQTtRQWNwRyxlQUFlO1FBQWYsb0NBQWU7UUFDZixlQUFxQjtRQUFyQiwwQ0FBcUI7O3FGRE5qQix3QkFBd0I7dUZBQXhCLHdCQUF3QjtjQUpwQyxTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLHNCQUFzQjtnQkFDaEMsV0FBVyxFQUFFLG1DQUFtQzthQUNuRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWV4dGVuc2lvbi1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2V4dGVuc2lvbi1kaWFsb2cuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFeHRlbnNpb25EaWFsb2dDb21wb25lbnQgZXh0ZW5kcyBEaWFsb2dDb21wb25lbnQgeyB9XHJcbiIsIjxkaXYgW25nQ2xhc3NdPVwiZGlhbG9nQ2xhc3Nlc1wiIGNsYXNzPVwic21lLXBvc2l0aW9uLXN0cmV0Y2gtaCBzbWUtcG9zaXRpb24tc3RyZXRjaC12XCIgW2F0dHIucm9sZV09XCJkaWFsb2dSb2xlXCJcclxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsID8gaWRCYWcuYXJpYUxhYmVsU3BhbiA6bnVsbFwiXHJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJhcmlhRGVzY3JpcHRpb24gPyBpZEJhZy5hcmlhRGVzY3JpcHRpb25TcGFuIDogbnVsbFwiIGFyaWEtbW9kYWw9XCJ0cnVlXCI+XHJcbiAgPGRpdiBjbGFzcz1cInNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLWZvY3VzLXpvbmVcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctaGVhZGVyXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwic21lLWxheW91dC1yZWxhdGl2ZSBzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLWFycmFuZ2Utb3ZlcmZsb3ctYXV0by15IHNtZS1hcnJhbmdlLW92ZXJmbG93LWhpZGUteCBzbWUtZm9jdXMtem9uZSBzbWUtbGF5b3V0LXJlc3BvbnNpdmUtem9uZS14c1wiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic21lLWRpYWxvZy1jb250ZW50XCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1mb2N1cy16b25lIHNtZS1wYWRkaW5nLWhvcml6b250YWwtbGcgc21lLXBhZGRpbmctdmVydGljYWwteHNcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNtZS1kaWFsb2ctZm9vdGVyXCI+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8c3BhbiAqbmdJZj1cImFyaWFMYWJlbFwiIGNsYXNzPVwic21lLXNjcmVlbi1yZWFkZXJcIiBbaWRdPVwiaWRCYWcuYXJpYUxhYmVsU3BhblwiPnt7YXJpYUxhYmVsfX08L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCJhcmlhRGVzY3JpcHRpb25cIiBjbGFzcz1cInNtZS1zY3JlZW4tcmVhZGVyXCIgW2lkXT1cImlkQmFnLmFyaWFEZXNjcmlwdGlvblNwYW5cIj57e2FyaWFEZXNjcmlwdGlvbn19PC9zcGFuPlxyXG48L2Rpdj5cclxuIl19
@@ -5,17 +5,43 @@ import { CoreBaseComponent } from '../common/base.component';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/common";
7
7
  function HeaderComponent_div_0_span_2_Template(rf, ctx) { if (rf & 1) {
8
- i0.ɵɵelement(0, "span", 11);
8
+ i0.ɵɵelement(0, "span", 12);
9
9
  } if (rf & 2) {
10
10
  const ctx_r5 = i0.ɵɵnextContext(2);
11
11
  i0.ɵɵclassMap(ctx_r5.smeIconClassName ? ctx_r5.smeIconClassName : "");
12
12
  } }
13
13
  function HeaderComponent_div_0_span_3_Template(rf, ctx) { if (rf & 1) {
14
- i0.ɵɵelement(0, "span", 12);
14
+ i0.ɵɵelement(0, "span", 13);
15
15
  } if (rf & 2) {
16
16
  const ctx_r6 = i0.ɵɵnextContext(2);
17
17
  i0.ɵɵstyleProp("background-image", ctx_r6.urlIcon);
18
18
  } }
19
+ function HeaderComponent_div_0_span_4_Template(rf, ctx) { if (rf & 1) {
20
+ i0.ɵɵelementStart(0, "span", 14);
21
+ i0.ɵɵtext(1);
22
+ i0.ɵɵelementEnd();
23
+ } if (rf & 2) {
24
+ const ctx_r7 = i0.ɵɵnextContext(2);
25
+ i0.ɵɵadvance(1);
26
+ i0.ɵɵtextInterpolate(ctx_r7.text);
27
+ } }
28
+ function HeaderComponent_div_0_div_5_Template(rf, ctx) { if (rf & 1) {
29
+ i0.ɵɵelementStart(0, "div", 15);
30
+ i0.ɵɵelementStart(1, "div");
31
+ i0.ɵɵtext(2);
32
+ i0.ɵɵelementEnd();
33
+ i0.ɵɵelementStart(3, "div", 16);
34
+ i0.ɵɵtext(4);
35
+ i0.ɵɵelementEnd();
36
+ i0.ɵɵelementEnd();
37
+ } if (rf & 2) {
38
+ const ctx_r8 = i0.ɵɵnextContext(2);
39
+ i0.ɵɵclassProp("sme-padding-left-xs", ctx_r8.urlIcon || ctx_r8.smeIconClassName);
40
+ i0.ɵɵadvance(2);
41
+ i0.ɵɵtextInterpolate(ctx_r8.text);
42
+ i0.ɵɵadvance(2);
43
+ i0.ɵɵtextInterpolate(ctx_r8.subtitle);
44
+ } }
19
45
  function HeaderComponent_div_0_ng_container_6_Template(rf, ctx) { if (rf & 1) {
20
46
  i0.ɵɵelementContainer(0);
21
47
  } }
@@ -24,11 +50,10 @@ function HeaderComponent_div_0_Template(rf, ctx) { if (rf & 1) {
24
50
  i0.ɵɵelementStart(1, "span", 6);
25
51
  i0.ɵɵtemplate(2, HeaderComponent_div_0_span_2_Template, 1, 2, "span", 7);
26
52
  i0.ɵɵtemplate(3, HeaderComponent_div_0_span_3_Template, 1, 2, "span", 8);
27
- i0.ɵɵelementStart(4, "span", 9);
28
- i0.ɵɵtext(5);
53
+ i0.ɵɵtemplate(4, HeaderComponent_div_0_span_4_Template, 2, 1, "span", 9);
54
+ i0.ɵɵtemplate(5, HeaderComponent_div_0_div_5_Template, 5, 4, "div", 10);
29
55
  i0.ɵɵelementEnd();
30
- i0.ɵɵelementEnd();
31
- i0.ɵɵtemplate(6, HeaderComponent_div_0_ng_container_6_Template, 1, 0, "ng-container", 10);
56
+ i0.ɵɵtemplate(6, HeaderComponent_div_0_ng_container_6_Template, 1, 0, "ng-container", 11);
32
57
  i0.ɵɵelementEnd();
33
58
  } if (rf & 2) {
34
59
  const ctx_r0 = i0.ɵɵnextContext();
@@ -39,13 +64,15 @@ function HeaderComponent_div_0_Template(rf, ctx) { if (rf & 1) {
39
64
  i0.ɵɵproperty("ngIf", ctx_r0.smeIconClassName);
40
65
  i0.ɵɵadvance(1);
41
66
  i0.ɵɵproperty("ngIf", ctx_r0.urlIcon);
42
- i0.ɵɵadvance(2);
43
- i0.ɵɵtextInterpolate(ctx_r0.text);
67
+ i0.ɵɵadvance(1);
68
+ i0.ɵɵproperty("ngIf", !ctx_r0.subtitle);
69
+ i0.ɵɵadvance(1);
70
+ i0.ɵɵproperty("ngIf", ctx_r0.subtitle);
44
71
  i0.ɵɵadvance(1);
45
72
  i0.ɵɵproperty("ngTemplateOutlet", _r3);
46
73
  } }
47
74
  function HeaderComponent_h2_1_Template(rf, ctx) { if (rf & 1) {
48
- i0.ɵɵelementStart(0, "h2", 13);
75
+ i0.ɵɵelementStart(0, "h2", 17);
49
76
  i0.ɵɵtext(1);
50
77
  i0.ɵɵelementEnd();
51
78
  } if (rf & 2) {
@@ -58,11 +85,11 @@ function HeaderComponent_div_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
58
85
  i0.ɵɵelementContainer(0);
59
86
  } }
60
87
  function HeaderComponent_div_2_Template(rf, ctx) { if (rf & 1) {
61
- i0.ɵɵelementStart(0, "div", 14);
88
+ i0.ɵɵelementStart(0, "div", 18);
62
89
  i0.ɵɵelementStart(1, "h3", 6);
63
90
  i0.ɵɵtext(2);
64
91
  i0.ɵɵelementEnd();
65
- i0.ɵɵtemplate(3, HeaderComponent_div_2_ng_container_3_Template, 1, 0, "ng-container", 10);
92
+ i0.ɵɵtemplate(3, HeaderComponent_div_2_ng_container_3_Template, 1, 0, "ng-container", 11);
66
93
  i0.ɵɵelementEnd();
67
94
  } if (rf & 2) {
68
95
  const ctx_r2 = i0.ɵɵnextContext();
@@ -94,8 +121,17 @@ export class HeaderComponent extends CoreBaseComponent {
94
121
  constructor(injector) {
95
122
  super(injector);
96
123
  this.styleTo = '';
124
+ /**
125
+ * The header type
126
+ */
97
127
  this.type = HeaderComponent.tool;
128
+ /**
129
+ * The font text for the main header
130
+ */
98
131
  this.text = '';
132
+ /**
133
+ * The font size level for the main header
134
+ */
99
135
  this.level = '';
100
136
  if (this.smeIconClassName && this.urlIcon) {
101
137
  Logging.log({
@@ -144,9 +180,9 @@ HeaderComponent.h2style = 'sme-font-h2';
144
180
  HeaderComponent.h3style = 'sme-font-h3';
145
181
  HeaderComponent.h4style = 'sme-font-h4 sme-font-h4-no-spacing';
146
182
  /** @nocollapse */ HeaderComponent.ɵfac = function HeaderComponent_Factory(t) { return new (t || HeaderComponent)(i0.ɵɵdirectiveInject(i0.Injector)); };
147
- /** @nocollapse */ HeaderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: HeaderComponent, selectors: [["sme-header"]], inputs: { type: "type", text: "text", level: "level", smeIconClassName: "smeIconClassName", urlIcon: "urlIcon" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 5, vars: 3, consts: [["class", "sme-layout-flex sme-position-flex-align-center sme-layout-tool-header", 4, "ngIf"], ["id", "sme-dialog-title", 3, "ngClass", 4, "ngIf"], ["class", "sme-position-flex-none sme-layout-settings-header", 4, "ngIf"], ["class", "sme-padding-left-xs"], ["contentTemplate", ""], [1, "sme-layout-flex", "sme-position-flex-align-center", "sme-layout-tool-header"], [3, "ngClass"], ["class", "sme-position-align-v-inline-middle sme-icon", 3, "class", 4, "ngIf"], ["class", "sme-position-align-v-inline-middle sme-url-icon", 3, "background-image", 4, "ngIf"], [1, "sme-position-align-v-inline-middle"], [4, "ngTemplateOutlet"], [1, "sme-position-align-v-inline-middle", "sme-icon"], [1, "sme-position-align-v-inline-middle", "sme-url-icon"], ["id", "sme-dialog-title", 3, "ngClass"], [1, "sme-position-flex-none", "sme-layout-settings-header"]], template: function HeaderComponent_Template(rf, ctx) { if (rf & 1) {
183
+ /** @nocollapse */ HeaderComponent.ɵcmp = i0.ɵɵdefineComponent({ type: HeaderComponent, selectors: [["sme-header"]], inputs: { type: "type", text: "text", level: "level", smeIconClassName: "smeIconClassName", urlIcon: "urlIcon", subtitle: "subtitle" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 5, vars: 3, consts: [["class", "sme-layout-flex sme-position-flex-align-center sme-layout-tool-header", 4, "ngIf"], ["id", "sme-dialog-title", 3, "ngClass", 4, "ngIf"], ["class", "sme-position-flex-none sme-layout-settings-header", 4, "ngIf"], ["class", "sme-padding-left-xs"], ["contentTemplate", ""], [1, "sme-layout-flex", "sme-position-flex-align-center", "sme-layout-tool-header"], [3, "ngClass"], ["class", "sme-position-align-v-inline-middle sme-icon", 3, "class", 4, "ngIf"], ["class", "sme-position-align-v-inline-middle sme-url-icon", 3, "background-image", 4, "ngIf"], ["class", "sme-position-align-v-inline-middle", 4, "ngIf"], ["class", "sme-arrange-stack-v sme-layout-inline-block", 3, "sme-padding-left-xs", 4, "ngIf"], [4, "ngTemplateOutlet"], [1, "sme-position-align-v-inline-middle", "sme-icon"], [1, "sme-position-align-v-inline-middle", "sme-url-icon"], [1, "sme-position-align-v-inline-middle"], [1, "sme-arrange-stack-v", "sme-layout-inline-block"], [1, "sme-font-label"], ["id", "sme-dialog-title", 3, "ngClass"], [1, "sme-position-flex-none", "sme-layout-settings-header"]], template: function HeaderComponent_Template(rf, ctx) { if (rf & 1) {
148
184
  i0.ɵɵprojectionDef();
149
- i0.ɵɵtemplate(0, HeaderComponent_div_0_Template, 7, 5, "div", 0);
185
+ i0.ɵɵtemplate(0, HeaderComponent_div_0_Template, 7, 6, "div", 0);
150
186
  i0.ɵɵtemplate(1, HeaderComponent_h2_1_Template, 2, 2, "h2", 1);
151
187
  i0.ɵɵtemplate(2, HeaderComponent_div_2_Template, 4, 3, "div", 2);
152
188
  i0.ɵɵtemplate(3, HeaderComponent_ng_template_3_Template, 1, 0, "ng-template", 3, 4, i0.ɵɵtemplateRefExtractor);
@@ -173,5 +209,7 @@ HeaderComponent.h4style = 'sme-font-h4 sme-font-h4-no-spacing';
173
209
  type: Input
174
210
  }], urlIcon: [{
175
211
  type: Input
212
+ }], subtitle: [{
213
+ type: Input
176
214
  }] }); })();
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztJQ0R6RCwyQkFBNkk7OztJQUExRCxxRUFBa0Q7OztJQUNySSwyQkFBd0g7OztJQUExQyxrREFBa0M7OztJQUdsSCx3QkFBaUU7OztJQU5uRSw4QkFBa0g7SUFDaEgsK0JBQXlEO0lBQ3ZELHdFQUE2STtJQUM3SSx3RUFBd0g7SUFDeEgsK0JBQWlEO0lBQUEsWUFBVTtJQUFBLGlCQUFPO0lBQ3BFLGlCQUFPO0lBQ1AseUZBQWlFO0lBQ25FLGlCQUFNOzs7O0lBTkUsZUFBa0Q7SUFBbEQsOEVBQWtEO0lBQy9DLGVBQXNCO0lBQXRCLDhDQUFzQjtJQUN0QixlQUFhO0lBQWIscUNBQWE7SUFDNkIsZUFBVTtJQUFWLGlDQUFVO0lBRTlDLGVBQWlDO0lBQWpDLHNDQUFpQzs7O0lBR2xELDhCQUE4RztJQUM1RyxZQUNGO0lBQUEsaUJBQUs7OztJQUZzRCw4RUFBa0Q7SUFDM0csZUFDRjtJQURFLDZDQUNGOzs7SUFJRSx3QkFBaUU7OztJQUZuRSwrQkFBdUc7SUFDckcsNkJBQTRDO0lBQUEsWUFBVTtJQUFBLGlCQUFLO0lBQzNELHlGQUFpRTtJQUNuRSxpQkFBTTs7OztJQUZBLGVBQXVDO0lBQXZDLG1FQUF1QztJQUFDLGVBQVU7SUFBVixpQ0FBVTtJQUN2QyxlQUFpQztJQUFqQyxzQ0FBaUM7OztJQUloRCxrQkFBeUI7OztBRGQzQjs7Ozs7Ozs7Ozs7R0FXRztBQUtILE1BQU0sT0FBTyxlQUFnQixTQUFRLGlCQUFpQjtJQXFDbEQsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUF4QmIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUdiLFNBQUksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDO1FBRzVCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFHVixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBaUJkLElBQUksSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkMsT0FBTyxDQUFDLEdBQUcsQ0FBQztnQkFDUixLQUFLLEVBQUUsUUFBUSxDQUFDLE9BQU87Z0JBQ3ZCLE9BQU8sRUFBRSwwQ0FBMEM7Z0JBQ25ELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxhQUFhLGNBQWM7YUFDOUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBOUNEOztPQUVHO0lBQ0gsSUFBYyxhQUFhO1FBQ3ZCLE9BQU8saUJBQWlCLENBQUM7SUFDN0IsQ0FBQztJQTJDRDs7T0FFRztJQUNJLFFBQVE7UUFDWCxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDaEIsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLE1BQU07YUFDVDtZQUNELEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxNQUFNO2FBQ1Q7WUFDRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztnQkFDdkMsTUFBTTthQUNUO1lBQ0QsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLE1BQU07YUFDVDtZQUNELE9BQU8sQ0FBQyxDQUFDO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO2FBQ3JCO1NBQ0o7SUFDTCxDQUFDOztBQW5FYyxvQkFBSSxHQUFHLGFBQWEsQ0FBQyxDQUFFLFVBQVU7QUFFakMsdUJBQU8sR0FBRyxhQUFhLENBQUM7QUFDeEIsdUJBQU8sR0FBRyxhQUFhLENBQUM7QUFDeEIsdUJBQU8sR0FBRyxhQUFhLENBQUM7QUFDeEIsdUJBQU8sR0FBRyxvQ0FBb0MsQ0FBQztpR0FackQsZUFBZTt1RUFBZixlQUFlOztRQ3JCNUIsZ0VBT007UUFFTiw4REFFSztRQUVMLGdFQUdNO1FBRU4sOEdBRWM7O1FBcEJSLGlEQUE0QjtRQVM3QixlQUE4QjtRQUE5QixtREFBOEI7UUFJN0IsZUFBcUM7UUFBckMsMERBQXFDOzt1RkRROUIsZUFBZTtjQUozQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFlBQVk7Z0JBQ3RCLFdBQVcsRUFBRSx5QkFBeUI7YUFDekM7MkRBa0JVLElBQUk7a0JBRFYsS0FBSztZQUlDLElBQUk7a0JBRFYsS0FBSztZQUlDLEtBQUs7a0JBRFgsS0FBSztZQU9DLGdCQUFnQjtrQkFEdEIsS0FBSztZQU9DLE9BQU87a0JBRGIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZy1sZXZlbCc7XHJcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZ2dpbmcnO1xyXG5pbXBvcnQgeyBDb3JlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbW1vbi9iYXNlLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIEhlYWRlciBAaWQgc21lLWhlYWRlcn1cclxuICpcclxuICogQG92ZXJ2aWV3XHJcbiAqIEBmaWxlIHtAZmlsZXBhdGggLi9leGFtcGxlcy9oZWFkZXItb3ZlcnZpZXcubWR9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgQmFzaWMgVXNhZ2UgQGlkIGJhc2ljLXVzYWdlfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9oZWFkZXItZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvaGVhZGVyLWV4YW1wbGUuY29tcG9uZW50Lmh0bWx9XHJcbiAqXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWhlYWRlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQ29yZUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXQgbG9nU291cmNlTmFtZSgpIHtcclxuICAgICAgICByZXR1cm4gJ0hlYWRlckNvbXBvbmVudCc7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHN0YXRpYyB0b29sID0gJ3Rvb2wtaGVhZGVyJzsgIC8vIGRlZmF1bHRcclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBoMXN0eWxlID0gJ3NtZS1mb250LWgxJztcclxuICAgIHByaXZhdGUgc3RhdGljIGgyc3R5bGUgPSAnc21lLWZvbnQtaDInO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaDNzdHlsZSA9ICdzbWUtZm9udC1oMyc7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBoNHN0eWxlID0gJ3NtZS1mb250LWg0IHNtZS1mb250LWg0LW5vLXNwYWNpbmcnO1xyXG5cclxuICAgIHB1YmxpYyBzdHlsZVRvID0gJyc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0eXBlID0gSGVhZGVyQ29tcG9uZW50LnRvb2w7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB0ZXh0ID0gJyc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBsZXZlbCA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNtZSBpY29uIGNsYXNzIGZvciBNREwgaWNvbnNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBzbWVJY29uQ2xhc3NOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc21lIGljb24gY2xhc3MgZm9yIFVSTCBpY29uc1xyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHVybEljb246IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnNtZUljb25DbGFzc05hbWUgJiYgdGhpcy51cmxJY29uKSB7XHJcbiAgICAgICAgICAgIExvZ2dpbmcubG9nKHtcclxuICAgICAgICAgICAgICAgIGxldmVsOiBMb2dMZXZlbC5XYXJuaW5nLFxyXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogJ0VpdGhlciBzbWUgaWNvbiBvciB1cmwgaWNvbiBpcyBhY2NlcHRlZC4nLFxyXG4gICAgICAgICAgICAgICAgc291cmNlOiBgJHt0aGlzLmxvZ1NvdXJjZU5hbWV9LmNvbnN0cnVjdG9yYFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIHJ1biB3aGVuIHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHN3aXRjaCAodGhpcy5sZXZlbCkge1xyXG4gICAgICAgICAgICBjYXNlICcxJzoge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZVRvID0gSGVhZGVyQ29tcG9uZW50Lmgxc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICcyJzoge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZVRvID0gSGVhZGVyQ29tcG9uZW50Lmgyc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICczJzoge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZVRvID0gSGVhZGVyQ29tcG9uZW50Lmgzc3R5bGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBjYXNlICc0Jzoge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZVRvID0gSGVhZGVyQ29tcG9uZW50Lmg0c3R5bGU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBkZWZhdWx0OiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlVG8gPSAnJztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3Rvb2wtaGVhZGVyJ1wiIGNsYXNzPVwic21lLWxheW91dC1mbGV4IHNtZS1wb3NpdGlvbi1mbGV4LWFsaWduLWNlbnRlciBzbWUtbGF5b3V0LXRvb2wtaGVhZGVyXCI+XHJcbiAgPHNwYW4gW25nQ2xhc3NdPVwibGV2ZWwgPT09ICcnID8gJ3NtZS1mb250LWgzJyA6IHN0eWxlVG9cIj5cclxuICAgIDxzcGFuICpuZ0lmPVwic21lSWNvbkNsYXNzTmFtZVwiIGNsYXNzPVwic21lLXBvc2l0aW9uLWFsaWduLXYtaW5saW5lLW1pZGRsZSBzbWUtaWNvblwiIFtjbGFzc109XCJzbWVJY29uQ2xhc3NOYW1lID8gc21lSWNvbkNsYXNzTmFtZSA6ICcnXCI+PC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCJ1cmxJY29uXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tYWxpZ24tdi1pbmxpbmUtbWlkZGxlIHNtZS11cmwtaWNvblwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cInVybEljb25cIj48L3NwYW4+XHJcbiAgICA8c3BhbiBjbGFzcz1cInNtZS1wb3NpdGlvbi1hbGlnbi12LWlubGluZS1taWRkbGVcIj57eyB0ZXh0IH19PC9zcGFuPlxyXG4gIDwvc3Bhbj5cclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPGgyICpuZ0lmPVwidHlwZSA9PT0gJ2RpYWxvZy1oZWFkZXInXCIgaWQ9XCJzbWUtZGlhbG9nLXRpdGxlXCIgW25nQ2xhc3NdPVwibGV2ZWwgPT09ICcnID8gJ3NtZS1mb250LWgzJyA6IHN0eWxlVG9cIj5cclxuICB7eyB0ZXh0IH19XHJcbjwvaDI+XHJcblxyXG48ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ3NldHRpbmdzLXBhZ2UtaGVhZGVyJ1wiIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtbGF5b3V0LXNldHRpbmdzLWhlYWRlclwiPlxyXG4gIDxoMyBbbmdDbGFzc109XCJsZXZlbCAhPT0gJycgPyBzdHlsZVRvIDogJydcIj57eyB0ZXh0IH19PC9oMz5cclxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGUgY2xhc3M9XCJzbWUtcGFkZGluZy1sZWZ0LXhzXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN2RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztJQ0R6RCwyQkFBNkk7OztJQUExRCxxRUFBa0Q7OztJQUNySSwyQkFBd0g7OztJQUExQyxrREFBa0M7OztJQUNoSCxnQ0FBbUU7SUFBQSxZQUFVO0lBQUEsaUJBQU87OztJQUFqQixlQUFVO0lBQVYsaUNBQVU7OztJQUM3RSwrQkFBb0k7SUFDbEksMkJBQUs7SUFBQSxZQUFVO0lBQUEsaUJBQU07SUFDckIsK0JBQTRCO0lBQUEsWUFBYztJQUFBLGlCQUFNO0lBQ2xELGlCQUFNOzs7SUFIbUQsZ0ZBQXlEO0lBQzNHLGVBQVU7SUFBVixpQ0FBVTtJQUNhLGVBQWM7SUFBZCxxQ0FBYzs7O0lBRzlDLHdCQUFpRTs7O0lBVm5FLDhCQUFrSDtJQUNoSCwrQkFBeUQ7SUFDdkQsd0VBQTZJO0lBQzdJLHdFQUF3SDtJQUN4SCx3RUFBb0Y7SUFDcEYsdUVBR007SUFDUixpQkFBTztJQUNQLHlGQUFpRTtJQUNuRSxpQkFBTTs7OztJQVZFLGVBQWtEO0lBQWxELDhFQUFrRDtJQUMvQyxlQUFzQjtJQUF0Qiw4Q0FBc0I7SUFDdEIsZUFBYTtJQUFiLHFDQUFhO0lBQ2IsZUFBZTtJQUFmLHVDQUFlO0lBQzhGLGVBQWM7SUFBZCxzQ0FBYztJQUtySCxlQUFpQztJQUFqQyxzQ0FBaUM7OztJQUdsRCw4QkFBOEc7SUFDNUcsWUFDRjtJQUFBLGlCQUFLOzs7SUFGc0QsOEVBQWtEO0lBQzNHLGVBQ0Y7SUFERSw2Q0FDRjs7O0lBSUUsd0JBQWlFOzs7SUFGbkUsK0JBQXVHO0lBQ3JHLDZCQUE0QztJQUFBLFlBQVU7SUFBQSxpQkFBSztJQUMzRCx5RkFBaUU7SUFDbkUsaUJBQU07Ozs7SUFGQSxlQUF1QztJQUF2QyxtRUFBdUM7SUFBQyxlQUFVO0lBQVYsaUNBQVU7SUFDdkMsZUFBaUM7SUFBakMsc0NBQWlDOzs7SUFJaEQsa0JBQXlCOzs7QURsQjNCOzs7Ozs7Ozs7OztHQVdHO0FBS0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsaUJBQWlCO0lBb0RsRCxZQUFZLFFBQWtCO1FBQzFCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQXZDYixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBRXBCOztXQUVHO1FBRUksU0FBSSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUM7UUFFbkM7O1dBRUc7UUFFSSxTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRWpCOztXQUVHO1FBRUksVUFBSyxHQUFHLEVBQUUsQ0FBQztRQXVCZCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZDLE9BQU8sQ0FBQyxHQUFHLENBQUM7Z0JBQ1IsS0FBSyxFQUFFLFFBQVEsQ0FBQyxPQUFPO2dCQUN2QixPQUFPLEVBQUUsMENBQTBDO2dCQUNuRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxjQUFjO2FBQzlDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQTdERDs7T0FFRztJQUNILElBQWMsYUFBYTtRQUN2QixPQUFPLGlCQUFpQixDQUFDO0lBQzdCLENBQUM7SUEwREQ7O09BRUc7SUFDSSxRQUFRO1FBQ1gsUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2hCLEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxNQUFNO2FBQ1Q7WUFDRCxLQUFLLEdBQUcsQ0FBQyxDQUFDO2dCQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsZUFBZSxDQUFDLE9BQU8sQ0FBQztnQkFDdkMsTUFBTTthQUNUO1lBQ0QsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDTixJQUFJLENBQUMsT0FBTyxHQUFHLGVBQWUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3ZDLE1BQU07YUFDVDtZQUNELEtBQUssR0FBRyxDQUFDLENBQUM7Z0JBQ04sSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO2dCQUN2QyxNQUFNO2FBQ1Q7WUFDRCxPQUFPLENBQUMsQ0FBQztnQkFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQzthQUNyQjtTQUNKO0lBQ0wsQ0FBQzs7QUFsRmMsb0JBQUksR0FBRyxhQUFhLENBQUMsQ0FBRSxVQUFVO0FBRWpDLHVCQUFPLEdBQUcsYUFBYSxDQUFDO0FBQ3hCLHVCQUFPLEdBQUcsYUFBYSxDQUFDO0FBQ3hCLHVCQUFPLEdBQUcsYUFBYSxDQUFDO0FBQ3hCLHVCQUFPLEdBQUcsb0NBQW9DLENBQUM7aUdBWnJELGVBQWU7dUVBQWYsZUFBZTs7UUNyQjVCLGdFQVdNO1FBRU4sOERBRUs7UUFFTCxnRUFHTTtRQUVOLDhHQUVjOztRQXhCUixpREFBNEI7UUFhN0IsZUFBOEI7UUFBOUIsbURBQThCO1FBSTdCLGVBQXFDO1FBQXJDLDBEQUFxQzs7dUZESTlCLGVBQWU7Y0FKM0IsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixXQUFXLEVBQUUseUJBQXlCO2FBQ3pDOzJEQXFCVSxJQUFJO2tCQURWLEtBQUs7WUFPQyxJQUFJO2tCQURWLEtBQUs7WUFPQyxLQUFLO2tCQURYLEtBQUs7WUFPQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFPQyxPQUFPO2tCQURiLEtBQUs7WUFPQyxRQUFRO2tCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kaWFnbm9zdGljcy9sb2ctbGV2ZWwnO1xyXG5pbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kaWFnbm9zdGljcy9sb2dnaW5nJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBzbWVEb2Mge0BsYWJlbCBIZWFkZXIgQGlkIHNtZS1oZWFkZXJ9XHJcbiAqXHJcbiAqIEBvdmVydmlld1xyXG4gKiBAZmlsZSB7QGZpbGVwYXRoIC4vZXhhbXBsZXMvaGVhZGVyLW92ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEJhc2ljIFVzYWdlIEBpZCBiYXNpYy11c2FnZX1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvaGVhZGVyLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2hlYWRlci1leGFtcGxlLmNvbXBvbmVudC5odG1sfVxyXG4gKlxyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1oZWFkZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdIZWFkZXJDb21wb25lbnQnO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgdG9vbCA9ICd0b29sLWhlYWRlcic7ICAvLyBkZWZhdWx0XHJcblxyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaDFzdHlsZSA9ICdzbWUtZm9udC1oMSc7XHJcbiAgICBwcml2YXRlIHN0YXRpYyBoMnN0eWxlID0gJ3NtZS1mb250LWgyJztcclxuICAgIHByaXZhdGUgc3RhdGljIGgzc3R5bGUgPSAnc21lLWZvbnQtaDMnO1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgaDRzdHlsZSA9ICdzbWUtZm9udC1oNCBzbWUtZm9udC1oNC1uby1zcGFjaW5nJztcclxuXHJcbiAgICBwdWJsaWMgc3R5bGVUbyA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGhlYWRlciB0eXBlXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdHlwZSA9IEhlYWRlckNvbXBvbmVudC50b29sO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZvbnQgdGV4dCBmb3IgdGhlIG1haW4gaGVhZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgdGV4dCA9ICcnO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGZvbnQgc2l6ZSBsZXZlbCBmb3IgdGhlIG1haW4gaGVhZGVyXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgbGV2ZWwgPSAnJztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzbWUgaWNvbiBjbGFzcyBmb3IgTURMIGljb25zXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgc21lSWNvbkNsYXNzTmFtZTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNtZSBpY29uIGNsYXNzIGZvciBVUkwgaWNvbnNcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyB1cmxJY29uOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc3VidGl0bGUgb2YgdGhlIGhlYWRlclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIHN1YnRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaW5qZWN0b3IpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5zbWVJY29uQ2xhc3NOYW1lICYmIHRoaXMudXJsSWNvbikge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmxvZyh7XHJcbiAgICAgICAgICAgICAgICBsZXZlbDogTG9nTGV2ZWwuV2FybmluZyxcclxuICAgICAgICAgICAgICAgIG1lc3NhZ2U6ICdFaXRoZXIgc21lIGljb24gb3IgdXJsIGljb24gaXMgYWNjZXB0ZWQuJyxcclxuICAgICAgICAgICAgICAgIHNvdXJjZTogYCR7dGhpcy5sb2dTb3VyY2VOYW1lfS5jb25zdHJ1Y3RvcmBcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCBydW4gd2hlbiB0aGUgY29tcG9uZW50IGlzIGluaXRpYWxpemVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgICAgICBzd2l0Y2ggKHRoaXMubGV2ZWwpIHtcclxuICAgICAgICAgICAgY2FzZSAnMSc6IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVUbyA9IEhlYWRlckNvbXBvbmVudC5oMXN0eWxlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnMic6IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVUbyA9IEhlYWRlckNvbXBvbmVudC5oMnN0eWxlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnMyc6IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVUbyA9IEhlYWRlckNvbXBvbmVudC5oM3N0eWxlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY2FzZSAnNCc6IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVUbyA9IEhlYWRlckNvbXBvbmVudC5oNHN0eWxlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDoge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZVRvID0gJyc7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInR5cGUgPT09ICd0b29sLWhlYWRlcidcIiBjbGFzcz1cInNtZS1sYXlvdXQtZmxleCBzbWUtcG9zaXRpb24tZmxleC1hbGlnbi1jZW50ZXIgc21lLWxheW91dC10b29sLWhlYWRlclwiPlxyXG4gIDxzcGFuIFtuZ0NsYXNzXT1cImxldmVsID09PSAnJyA/ICdzbWUtZm9udC1oMycgOiBzdHlsZVRvXCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cInNtZUljb25DbGFzc05hbWVcIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1hbGlnbi12LWlubGluZS1taWRkbGUgc21lLWljb25cIiBbY2xhc3NdPVwic21lSWNvbkNsYXNzTmFtZSA/IHNtZUljb25DbGFzc05hbWUgOiAnJ1wiPjwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ0lmPVwidXJsSWNvblwiIGNsYXNzPVwic21lLXBvc2l0aW9uLWFsaWduLXYtaW5saW5lLW1pZGRsZSBzbWUtdXJsLWljb25cIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCJ1cmxJY29uXCI+PC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nSWY9XCIhc3VidGl0bGVcIiBjbGFzcz1cInNtZS1wb3NpdGlvbi1hbGlnbi12LWlubGluZS1taWRkbGVcIj57eyB0ZXh0IH19PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLXYgc21lLWxheW91dC1pbmxpbmUtYmxvY2tcIiBbY2xhc3Muc21lLXBhZGRpbmctbGVmdC14c109XCJ1cmxJY29uIHx8IHNtZUljb25DbGFzc05hbWVcIiAqbmdJZj1cInN1YnRpdGxlXCI+XHJcbiAgICAgIDxkaXY+e3sgdGV4dCB9fTwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic21lLWZvbnQtbGFiZWxcIj57eyBzdWJ0aXRsZSB9fTwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zcGFuPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48aDIgKm5nSWY9XCJ0eXBlID09PSAnZGlhbG9nLWhlYWRlcidcIiBpZD1cInNtZS1kaWFsb2ctdGl0bGVcIiBbbmdDbGFzc109XCJsZXZlbCA9PT0gJycgPyAnc21lLWZvbnQtaDMnIDogc3R5bGVUb1wiPlxyXG4gIHt7IHRleHQgfX1cclxuPC9oMj5cclxuXHJcbjxkaXYgKm5nSWY9XCJ0eXBlID09PSAnc2V0dGluZ3MtcGFnZS1oZWFkZXInXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1sYXlvdXQtc2V0dGluZ3MtaGVhZGVyXCI+XHJcbiAgPGgzIFtuZ0NsYXNzXT1cImxldmVsICE9PSAnJyA/IHN0eWxlVG8gOiAnJ1wiPnt7IHRleHQgfX08L2gzPlxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZSBjbGFzcz1cInNtZS1wYWRkaW5nLWxlZnQteHNcIj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -40,7 +40,6 @@ export class LayoutConfigGenerator {
40
40
  this.parseConfig(layoutConfig, phoneUp, SmeResponsiveWindowBreakpoints.PhoneUp);
41
41
  this.parseConfig(layoutConfig, phoneDown, SmeResponsiveWindowBreakpoints.PhoneDown);
42
42
  this.parseConfig(layoutConfig, reflow, SmeResponsiveWindowBreakpoints.Reflow);
43
- console.log(layoutConfig);
44
43
  return layoutConfig;
45
44
  }
46
45
  parseConfig(layoutConfig, config, smeResponsiveWindowBreakpoints) {
@@ -66,4 +65,4 @@ export class LayoutConfigGenerator {
66
65
  }
67
66
  }
68
67
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2xheW91dC9sYXlvdXQtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBV25HLE1BQU0sQ0FBTixJQUFZLGlDQUdYO0FBSEQsV0FBWSxpQ0FBaUM7SUFDekMsOERBQXlCLENBQUE7SUFDekIsc0RBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGlDQUFpQyxLQUFqQyxpQ0FBaUMsUUFHNUM7QUFhRCxNQUFNLENBQU4sSUFBWSxvQkFHWDtBQUhELFdBQVksb0JBQW9CO0lBQzVCLDJDQUFtQixDQUFBO0lBQ25CLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUN4Qix1Q0FBbUIsQ0FBQTtJQUNuQix1RUFBbUQsQ0FBQTtBQUN2RCxDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUM5Qjs7Ozs7OztPQU9HO0lBQ0ksVUFBVSxDQUFDLE9BQWMsRUFBRSxTQUFpQixFQUFFLE1BQWM7UUFDL0QsTUFBTSxZQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RSxPQUFPLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFCLE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxXQUFXLENBQUMsWUFBMEIsRUFBRSxNQUFXLEVBQUUsOEJBQThEO1FBQ3ZILElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxZQUFZLENBQUMsOEJBQThCLENBQUMsR0FBRztnQkFDM0MsSUFBSSxFQUFFLG9CQUFvQixDQUFDLE9BQU87YUFDckMsQ0FBQztTQUNMO2FBQU07WUFDSCxZQUFZLENBQUMsOEJBQThCLENBQUMsR0FBRztnQkFDM0MsSUFBSSxFQUFFLG9CQUFvQixDQUFDLE1BQU07Z0JBQ2pDLE1BQU0sRUFBRSxFQUFFO2FBQ2IsQ0FBQztZQUVGLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNyQyxZQUFZLENBQUMsOEJBQThCLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNyRCxLQUFLLEVBQUU7d0JBQ0gsSUFBSSxFQUFFLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDOzRCQUNqQyxpQ0FBaUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLE1BQU07d0JBQzNGLEtBQUssRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztxQkFDM0U7aUJBQ0osQ0FBQyxDQUFDO2FBQ047U0FDSjtJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cyB9IGZyb20gJy4uL2NvbW1vbi9zbWUtcmVzcG9uc2l2ZS13aW5kb3ctbWFuYWdlci5jb21wb25lbnQnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRJdGVtQ29uZmlnIHtcclxuICAgIHdpZHRoOiBMYXlvdXRJdGVtQ29uZmlnUHJvcGVydHlXaWR0aDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMYXlvdXRJdGVtQ29uZmlnUHJvcGVydHlXaWR0aCB7XHJcbiAgICB0eXBlOiBMYXlvdXRJdGVtQ29uZmlnUHJvcGVydHlXaWR0aFR5cGU7XHJcbiAgICB2YWx1ZTogbnVtYmVyO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMYXlvdXRJdGVtQ29uZmlnUHJvcGVydHlXaWR0aFR5cGUge1xyXG4gICAgUGVyY2VudGFnZSA9ICdQZXJjZW50YWdlJyxcclxuICAgIE51bWJlciA9ICdOdW1iZXInXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0Q29uZmlnIHtcclxuICAgIFtTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMuUGhvbmVVcF0/OiBMYXlvdXRDb25maWdJdGVtO1xyXG4gICAgW1NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5QaG9uZURvd25dPzogTGF5b3V0Q29uZmlnSXRlbTtcclxuICAgIFtTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMuUmVmbG93XT86IExheW91dENvbmZpZ0l0ZW07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0Q29uZmlnSXRlbSB7XHJcbiAgICBtb2RlPzogTGF5b3V0SXRlbUNvbmZpZ01vZGU7XHJcbiAgICBjb25maWc/OiBMYXlvdXRJdGVtQ29uZmlnW107XHJcbn1cclxuXHJcbmV4cG9ydCBlbnVtIExheW91dEl0ZW1Db25maWdNb2RlIHtcclxuICAgIERlZmF1bHQgPSAnRGVmYXVsdCcsXHJcbiAgICBDdXN0b20gPSAnQ3VzdG9tJ1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMYXlvdXREcml2ZW5UeXBlIHtcclxuICAgIERlZmF1bHQgPSAnRGVmYXVsdCcsXHJcbiAgICBSZXNwb25zaXZlV2luZG93TWFuYWdlciA9ICdSZXNwb25zaXZlV2luZG93TWFuYWdlcidcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBsYXlvdXQgY29uZmlnIGdlbmVyYXRvci5cclxuICpcclxuICogSXQgZGV0ZXJtaW5lcyB0aGUgY29uZmlndXJhYmxlIHdpZHRoIGZvciB0aGUgbGF5b3V0IGl0ZW0uXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiBjb25zdCBsYXlvdXRDb25maWdHZW5lcmF0b3IgPSBuZXcgTGF5b3V0Q29uZmlnR2VuZXJhdG9yKCk7XHJcbiAqIGxheW91dENvbmZpZ0dlbmVyYXRvci5pbml0aWFsaXplKFsyMCwgJzEwMCddKVxyXG4gKlxyXG4gKiB0eXBlIG51bWJlciBpcyB1c2VkIGZvciBwaXhlbC5cclxuICogdHlwZSBzdHJpbmcgaXMgdXNlZCBmb3IgcGVyY2VudGFnZS5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb25maWdHZW5lcmF0b3Ige1xyXG4gICAgLyoqXHJcbiAgICAgKiBJdCBpbml0aWFsaXplZCB0aGUgbGF5b3V0IGNvbmZpZ3MgZm9yIHRoZSBsYXlvdXQgY29tcG9uZW50LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBwaG9uZVVwIHRoZSBsYXlvdXQgY29uZmlnIGFycmF5IGZvciBwaG9uZS11cFxyXG4gICAgICogQHBhcmFtIHBob25lRG93biB0aGUgbGF5b3V0IGNvbmZpZyBhcnJheSBmb3IgcGhvbmUtZG93blxyXG4gICAgICogQHBhcmFtIHJlZmxvdyB0aGUgbGF5b3V0IGNvbmZpZyBhcnJheSBmb3IgcmVmbG93XHJcbiAgICAgKiBAcmV0dXJuc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaW5pdGlhbGl6ZShwaG9uZVVwOiBhbnlbXSwgcGhvbmVEb3duPzogYW55W10sIHJlZmxvdz86IGFueVtdKTogTGF5b3V0Q29uZmlnIHtcclxuICAgICAgICBjb25zdCBsYXlvdXRDb25maWc6IExheW91dENvbmZpZyA9IHt9O1xyXG4gICAgICAgIHRoaXMucGFyc2VDb25maWcobGF5b3V0Q29uZmlnLCBwaG9uZVVwLCBTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMuUGhvbmVVcCk7XHJcbiAgICAgICAgdGhpcy5wYXJzZUNvbmZpZyhsYXlvdXRDb25maWcsIHBob25lRG93biwgU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlBob25lRG93bik7XHJcbiAgICAgICAgdGhpcy5wYXJzZUNvbmZpZyhsYXlvdXRDb25maWcsIHJlZmxvdywgU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlJlZmxvdyk7XHJcbiAgICAgICAgY29uc29sZS5sb2cobGF5b3V0Q29uZmlnKTtcclxuICAgICAgICByZXR1cm4gbGF5b3V0Q29uZmlnO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcGFyc2VDb25maWcobGF5b3V0Q29uZmlnOiBMYXlvdXRDb25maWcsIGNvbmZpZzogYW55LCBzbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHM6IFNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghY29uZmlnKSB7XHJcbiAgICAgICAgICAgIGxheW91dENvbmZpZ1tzbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHNdID0ge1xyXG4gICAgICAgICAgICAgICAgbW9kZTogTGF5b3V0SXRlbUNvbmZpZ01vZGUuRGVmYXVsdFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxheW91dENvbmZpZ1tzbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHNdID0ge1xyXG4gICAgICAgICAgICAgICAgbW9kZTogTGF5b3V0SXRlbUNvbmZpZ01vZGUuQ3VzdG9tLFxyXG4gICAgICAgICAgICAgICAgY29uZmlnOiBbXVxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPD0gY29uZmlnLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBsYXlvdXRDb25maWdbc21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzXS5jb25maWcucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogdHlwZW9mIGNvbmZpZ1tpXSA9PT0gJ3N0cmluZycgP1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGhUeXBlLlBlcmNlbnRhZ2UgOiBMYXlvdXRJdGVtQ29uZmlnUHJvcGVydHlXaWR0aFR5cGUuTnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdHlwZW9mIGNvbmZpZ1tpXSA9PT0gJ3N0cmluZycgPyBwYXJzZUZsb2F0KGNvbmZpZ1tpXSkgOiBjb25maWdbaV1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2xheW91dC9sYXlvdXQtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBV25HLE1BQU0sQ0FBTixJQUFZLGlDQUdYO0FBSEQsV0FBWSxpQ0FBaUM7SUFDekMsOERBQXlCLENBQUE7SUFDekIsc0RBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUhXLGlDQUFpQyxLQUFqQyxpQ0FBaUMsUUFHNUM7QUFhRCxNQUFNLENBQU4sSUFBWSxvQkFHWDtBQUhELFdBQVksb0JBQW9CO0lBQzVCLDJDQUFtQixDQUFBO0lBQ25CLHlDQUFpQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxvQkFBb0IsS0FBcEIsb0JBQW9CLFFBRy9CO0FBRUQsTUFBTSxDQUFOLElBQVksZ0JBR1g7QUFIRCxXQUFZLGdCQUFnQjtJQUN4Qix1Q0FBbUIsQ0FBQTtJQUNuQix1RUFBbUQsQ0FBQTtBQUN2RCxDQUFDLEVBSFcsZ0JBQWdCLEtBQWhCLGdCQUFnQixRQUczQjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxPQUFPLHFCQUFxQjtJQUM5Qjs7Ozs7OztPQU9HO0lBQ0ksVUFBVSxDQUFDLE9BQWMsRUFBRSxTQUFpQixFQUFFLE1BQWM7UUFDL0QsTUFBTSxZQUFZLEdBQWlCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxPQUFPLEVBQUUsOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLDhCQUE4QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLE1BQU0sRUFBRSw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5RSxPQUFPLFlBQVksQ0FBQztJQUN4QixDQUFDO0lBRU8sV0FBVyxDQUFDLFlBQTBCLEVBQUUsTUFBVyxFQUFFLDhCQUE4RDtRQUN2SCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsWUFBWSxDQUFDLDhCQUE4QixDQUFDLEdBQUc7Z0JBQzNDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxPQUFPO2FBQ3JDLENBQUM7U0FDTDthQUFNO1lBQ0gsWUFBWSxDQUFDLDhCQUE4QixDQUFDLEdBQUc7Z0JBQzNDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxNQUFNO2dCQUNqQyxNQUFNLEVBQUUsRUFBRTthQUNiLENBQUM7WUFFRixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsWUFBWSxDQUFDLDhCQUE4QixDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQztvQkFDckQsS0FBSyxFQUFFO3dCQUNILElBQUksRUFBRSxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQzs0QkFDakMsaUNBQWlDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxNQUFNO3dCQUMzRixLQUFLLEVBQUUsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7cUJBQzNFO2lCQUNKLENBQUMsQ0FBQzthQUNOO1NBQ0o7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMgfSBmcm9tICcuLi9jb21tb24vc21lLXJlc3BvbnNpdmUtd2luZG93LW1hbmFnZXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0SXRlbUNvbmZpZyB7XHJcbiAgICB3aWR0aDogTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGg7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGgge1xyXG4gICAgdHlwZTogTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGhUeXBlO1xyXG4gICAgdmFsdWU6IG51bWJlcjtcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTGF5b3V0SXRlbUNvbmZpZ1Byb3BlcnR5V2lkdGhUeXBlIHtcclxuICAgIFBlcmNlbnRhZ2UgPSAnUGVyY2VudGFnZScsXHJcbiAgICBOdW1iZXIgPSAnTnVtYmVyJ1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dENvbmZpZyB7XHJcbiAgICBbU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlBob25lVXBdPzogTGF5b3V0Q29uZmlnSXRlbTtcclxuICAgIFtTbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHMuUGhvbmVEb3duXT86IExheW91dENvbmZpZ0l0ZW07XHJcbiAgICBbU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlJlZmxvd10/OiBMYXlvdXRDb25maWdJdGVtO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIExheW91dENvbmZpZ0l0ZW0ge1xyXG4gICAgbW9kZT86IExheW91dEl0ZW1Db25maWdNb2RlO1xyXG4gICAgY29uZmlnPzogTGF5b3V0SXRlbUNvbmZpZ1tdO1xyXG59XHJcblxyXG5leHBvcnQgZW51bSBMYXlvdXRJdGVtQ29uZmlnTW9kZSB7XHJcbiAgICBEZWZhdWx0ID0gJ0RlZmF1bHQnLFxyXG4gICAgQ3VzdG9tID0gJ0N1c3RvbSdcclxufVxyXG5cclxuZXhwb3J0IGVudW0gTGF5b3V0RHJpdmVuVHlwZSB7XHJcbiAgICBEZWZhdWx0ID0gJ0RlZmF1bHQnLFxyXG4gICAgUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXIgPSAnUmVzcG9uc2l2ZVdpbmRvd01hbmFnZXInXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBUaGUgbGF5b3V0IGNvbmZpZyBnZW5lcmF0b3IuXHJcbiAqXHJcbiAqIEl0IGRldGVybWluZXMgdGhlIGNvbmZpZ3VyYWJsZSB3aWR0aCBmb3IgdGhlIGxheW91dCBpdGVtLlxyXG4gKiBVc2FnZTpcclxuICpcclxuICogY29uc3QgbGF5b3V0Q29uZmlnR2VuZXJhdG9yID0gbmV3IExheW91dENvbmZpZ0dlbmVyYXRvcigpO1xyXG4gKiBsYXlvdXRDb25maWdHZW5lcmF0b3IuaW5pdGlhbGl6ZShbMjAsICcxMDAnXSlcclxuICpcclxuICogdHlwZSBudW1iZXIgaXMgdXNlZCBmb3IgcGl4ZWwuXHJcbiAqIHR5cGUgc3RyaW5nIGlzIHVzZWQgZm9yIHBlcmNlbnRhZ2UuXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgTGF5b3V0Q29uZmlnR2VuZXJhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogSXQgaW5pdGlhbGl6ZWQgdGhlIGxheW91dCBjb25maWdzIGZvciB0aGUgbGF5b3V0IGNvbXBvbmVudC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcGhvbmVVcCB0aGUgbGF5b3V0IGNvbmZpZyBhcnJheSBmb3IgcGhvbmUtdXBcclxuICAgICAqIEBwYXJhbSBwaG9uZURvd24gdGhlIGxheW91dCBjb25maWcgYXJyYXkgZm9yIHBob25lLWRvd25cclxuICAgICAqIEBwYXJhbSByZWZsb3cgdGhlIGxheW91dCBjb25maWcgYXJyYXkgZm9yIHJlZmxvd1xyXG4gICAgICogQHJldHVybnNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGluaXRpYWxpemUocGhvbmVVcDogYW55W10sIHBob25lRG93bj86IGFueVtdLCByZWZsb3c/OiBhbnlbXSk6IExheW91dENvbmZpZyB7XHJcbiAgICAgICAgY29uc3QgbGF5b3V0Q29uZmlnOiBMYXlvdXRDb25maWcgPSB7fTtcclxuICAgICAgICB0aGlzLnBhcnNlQ29uZmlnKGxheW91dENvbmZpZywgcGhvbmVVcCwgU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzLlBob25lVXApO1xyXG4gICAgICAgIHRoaXMucGFyc2VDb25maWcobGF5b3V0Q29uZmlnLCBwaG9uZURvd24sIFNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5QaG9uZURvd24pO1xyXG4gICAgICAgIHRoaXMucGFyc2VDb25maWcobGF5b3V0Q29uZmlnLCByZWZsb3csIFNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50cy5SZWZsb3cpO1xyXG4gICAgICAgIHJldHVybiBsYXlvdXRDb25maWc7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwYXJzZUNvbmZpZyhsYXlvdXRDb25maWc6IExheW91dENvbmZpZywgY29uZmlnOiBhbnksIHNtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50czogU21lUmVzcG9uc2l2ZVdpbmRvd0JyZWFrcG9pbnRzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFjb25maWcpIHtcclxuICAgICAgICAgICAgbGF5b3V0Q29uZmlnW3NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50c10gPSB7XHJcbiAgICAgICAgICAgICAgICBtb2RlOiBMYXlvdXRJdGVtQ29uZmlnTW9kZS5EZWZhdWx0XHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbGF5b3V0Q29uZmlnW3NtZVJlc3BvbnNpdmVXaW5kb3dCcmVha3BvaW50c10gPSB7XHJcbiAgICAgICAgICAgICAgICBtb2RlOiBMYXlvdXRJdGVtQ29uZmlnTW9kZS5DdXN0b20sXHJcbiAgICAgICAgICAgICAgICBjb25maWc6IFtdXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjb25maWcubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGxheW91dENvbmZpZ1tzbWVSZXNwb25zaXZlV2luZG93QnJlYWtwb2ludHNdLmNvbmZpZy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICB3aWR0aDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0eXBlb2YgY29uZmlnW2ldID09PSAnc3RyaW5nJyA/XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBMYXlvdXRJdGVtQ29uZmlnUHJvcGVydHlXaWR0aFR5cGUuUGVyY2VudGFnZSA6IExheW91dEl0ZW1Db25maWdQcm9wZXJ0eVdpZHRoVHlwZS5OdW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0eXBlb2YgY29uZmlnW2ldID09PSAnc3RyaW5nJyA/IHBhcnNlRmxvYXQoY29uZmlnW2ldKSA6IGNvbmZpZ1tpXVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==