@microsoft/windows-admin-center-sdk 2.298.1 → 2.301.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular/assets/strings/cs-CZ/strings.json +1 -1
- package/angular/assets/strings/de-DE/strings.json +1 -1
- package/angular/assets/strings/es-ES/strings.json +1 -1
- package/angular/assets/strings/fr-FR/strings.json +1 -1
- package/angular/assets/strings/hu-HU/strings.json +1 -1
- package/angular/assets/strings/it-IT/strings.json +1 -1
- package/angular/assets/strings/ja-JP/strings.json +1 -1
- package/angular/assets/strings/ko-KR/strings.json +1 -1
- package/angular/assets/strings/nl-NL/strings.json +1 -1
- package/angular/assets/strings/pl-PL/strings.json +1 -1
- package/angular/assets/strings/pt-BR/strings.json +1 -1
- package/angular/assets/strings/pt-PT/strings.json +1 -1
- package/angular/assets/strings/ru-RU/strings.json +1 -1
- package/angular/assets/strings/strings.json +1 -1
- package/angular/assets/strings/sv-SE/strings.json +1 -1
- package/angular/assets/strings/tr-TR/strings.json +1 -1
- package/angular/assets/strings/zh-CN/strings.json +1 -1
- package/angular/assets/strings/zh-TW/strings.json +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js +239 -568
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.js.map +1 -1
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js +2 -2
- package/angular/bundles/microsoft-windows-admin-center-sdk-angular.umd.min.js.map +1 -1
- package/angular/esm2015/src/controls/actions/containers/action-bar/action-bar.component.js +2 -7
- package/angular/esm2015/src/controls/alert-bar/alert-bar.component.js +5 -5
- package/angular/esm2015/src/controls/common/base.component.js +1 -8
- package/angular/esm2015/src/controls/data-table/data-table.component.js +9 -39
- package/angular/esm2015/src/controls/form/form-field/checklist/checklist-form-field.component.js +8 -11
- package/angular/esm2015/src/controls/form/form-field/combobox/combobox-form-field.component.js +9 -8
- package/angular/esm2015/src/controls/form/form-field/file/file-form-field.component.js +2 -14
- package/angular/esm2015/src/controls/form/form-field/form-field.component.js +2 -9
- package/angular/esm2015/src/controls/layout/layout-definition.component.js +2 -9
- package/angular/esm2015/src/controls/layout/layout.component.js +2 -11
- package/angular/esm2015/src/controls/master-view/master-view.component.js +5 -32
- package/angular/esm2015/src/controls/page-alert-bar/models/index.js +1 -1
- package/angular/esm2015/src/controls/pivot/pivot-tab.component.js +1 -1
- package/angular/esm2015/src/controls/pivot/pivot.component.js +4 -21
- package/angular/esm2015/src/controls/property-grid/property-grid-item.component.js +2 -50
- package/angular/esm2015/src/controls/property-grid/property-grid.component.js +60 -73
- package/angular/esm2015/src/controls/property-grid/property-grid.module.js +1 -5
- package/angular/esm2015/src/controls/settings/common-settings/common-settings.component.js +70 -151
- package/angular/esm2015/src/controls/settings/settings.component.js +8 -48
- package/angular/esm2015/src/controls/settings/settings.module.js +9 -21
- package/angular/esm2015/src/controls/wizard/wizard.component.js +65 -55
- package/angular/esm2015/src/generated/strings.js +1 -1
- package/angular/esm2015/src/service/app-context.service.js +1 -3
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js +239 -545
- package/angular/fesm2015/microsoft-windows-admin-center-sdk-angular.js.map +1 -1
- package/angular/package.json +0 -2
- package/angular/src/controls/common/base.component.d.ts +0 -5
- package/angular/src/controls/data-table/data-table.component.d.ts +0 -15
- package/angular/src/controls/form/form-field/checklist/checklist-form-field.component.d.ts +0 -1
- package/angular/src/controls/form/form-field/file/file-form-field.component.d.ts +0 -4
- package/angular/src/controls/layout/layout-definition.component.d.ts +1 -6
- package/angular/src/controls/master-view/master-view.component.d.ts +2 -118
- package/angular/src/controls/page-alert-bar/models/index.d.ts +1 -1
- package/angular/src/controls/pivot/pivot-tab.component.d.ts +1 -0
- package/angular/src/controls/pivot/pivot.component.d.ts +0 -7
- package/angular/src/controls/property-grid/property-grid-item.component.d.ts +3 -53
- package/angular/src/controls/property-grid/property-grid.component.d.ts +2 -1
- package/angular/src/controls/property-grid/property-grid.module.d.ts +3 -4
- package/angular/src/controls/settings/common-settings/common-settings.component.d.ts +1 -32
- package/angular/src/controls/settings/settings.component.d.ts +1 -18
- package/angular/src/controls/settings/settings.module.d.ts +1 -3
- package/angular/src/generated/strings.d.ts +0 -3
- package/core/base/environment.d.ts +0 -10
- package/core/base/environment.js.map +1 -1
- package/core/data/gateway-connection.d.ts +0 -34
- package/core/data/gateway-connection.js +2 -59
- package/core/data/gateway-connection.js.map +1 -1
- package/core/data/node-connection.d.ts +0 -4
- package/core/data/node-connection.js.map +1 -1
- package/core/data/powershell.d.ts +0 -4
- package/core/data/powershell.js +0 -1
- package/core/data/powershell.js.map +1 -1
- package/core/diagnostics/sme-web-telemetry-models.d.ts +3 -20
- package/core/diagnostics/sme-web-telemetry-models.js +2 -6
- package/core/diagnostics/sme-web-telemetry-models.js.map +1 -1
- package/core/diagnostics/sme-web-telemetry.d.ts +1 -13
- package/core/diagnostics/sme-web-telemetry.js +11 -51
- package/core/diagnostics/sme-web-telemetry.js.map +1 -1
- package/core/generated/powershell-scripts.d.ts +0 -4
- package/core/generated/powershell-scripts.js +0 -4
- package/core/generated/powershell-scripts.js.map +1 -1
- package/core/index.d.ts +0 -2
- package/core/index.js +0 -1
- package/core/index.js.map +1 -1
- package/core/manifest/environment-modules.js +0 -10
- package/core/manifest/environment-modules.js.map +1 -1
- package/core/notification/powershell-notification.js +1 -1
- package/core/notification/powershell-notification.js.map +1 -1
- package/core/performance/performance-tracker.d.ts +0 -67
- package/core/performance/performance-tracker.js +4 -211
- package/core/performance/performance-tracker.js.map +1 -1
- package/core/rpc/credssp/rpc-credssp-model.d.ts +2 -27
- package/core/rpc/credssp/rpc-credssp-model.js +0 -10
- package/core/rpc/credssp/rpc-credssp-model.js.map +1 -1
- package/core/security/credssp-manager.d.ts +1 -15
- package/core/security/credssp-manager.js +0 -28
- package/core/security/credssp-manager.js.map +1 -1
- package/core/shared/gateway-inventory/gateway-inventory.d.ts +0 -10
- package/core/shared/gateway-inventory/gateway-inventory.js +0 -11
- package/core/shared/gateway-inventory/gateway-inventory.js.map +1 -1
- package/e2e/assets/strings/cs-CZ/strings.json +1 -1
- package/e2e/assets/strings/de-DE/strings.json +1 -1
- package/e2e/assets/strings/es-ES/strings.json +1 -1
- package/e2e/assets/strings/fr-FR/strings.json +1 -1
- package/e2e/assets/strings/hu-HU/strings.json +1 -1
- package/e2e/assets/strings/it-IT/strings.json +1 -1
- package/e2e/assets/strings/ja-JP/strings.json +1 -1
- package/e2e/assets/strings/ko-KR/strings.json +1 -1
- package/e2e/assets/strings/nl-NL/strings.json +1 -1
- package/e2e/assets/strings/pl-PL/strings.json +1 -1
- package/e2e/assets/strings/pt-BR/strings.json +1 -1
- package/e2e/assets/strings/pt-PT/strings.json +1 -1
- package/e2e/assets/strings/ru-RU/strings.json +1 -1
- package/e2e/assets/strings/strings.json +1 -1
- package/e2e/assets/strings/sv-SE/strings.json +1 -1
- package/e2e/assets/strings/tr-TR/strings.json +1 -1
- package/e2e/assets/strings/zh-CN/strings.json +1 -1
- package/e2e/assets/strings/zh-TW/strings.json +1 -1
- package/package.json +3 -5
- package/styles/css/main.css +1 -1
- package/tools/module-template/gulpfile.ts/index.ts +1 -1
- package/tools/package-lock.json +975 -14946
- package/tools/wac-cli/src/create/main.d.ts +3 -6
- package/tools/wac-cli/src/create/main.js +35 -87
- package/tools/wac-cli/src/create/main.js.map +1 -1
- package/tools/wac-cli/src/index.js +2 -2
- package/tools/wac-cli/src/index.js.map +1 -1
- package/tools/wac-cli/templates/{solution/manifest.json → manifest/solution-manifest.json} +0 -19
- package/tools/wac-cli/templates/{wac-template/src/manifest.json → manifest/tool-manifest.json} +0 -0
- package/tools/wac-cli/templates/wac-template/angular.json +2 -2
- package/tools/wac-cli/templates/wac-template/gulpfile.ts/config-data.ts +1 -1
- package/tools/wac-cli/templates/wac-template/package.json +8 -0
- package/tools/wac-cli/templates/wac-template/src/app/app-routing.module.ts +1 -1
- package/tools/wac-cli/templates/wac-template/src/main.ts +0 -2
- package/tools/wac-cli/templates/wac-template/src/polyfills.ts +1 -1
- package/tools/wac-cli/templates/wac-template/src/test.ts +2 -2
- package/core/data/gateway-status.d.ts +0 -24
- package/core/data/gateway-status.js +0 -3
- package/core/data/gateway-status.js.map +0 -1
- package/core/data/wdac-operations.d.ts +0 -123
- package/core/data/wdac-operations.js +0 -144
- package/core/data/wdac-operations.js.map +0 -1
- package/tools/wac-cli/templates/internal/npmrc.txt +0 -6
- package/tools/wac-cli/templates/internal/package.json +0 -101
- package/tools/wac-cli/templates/solution/strings.resjson +0 -16
- package/tools/wac-cli/templates/wac-template/src/version.ts +0 -3
- package/tools/wac-cli/templates/wac-template/version.json +0 -5
|
@@ -164,10 +164,6 @@ export class ActionBarComponent extends ActionContainerComponent {
|
|
|
164
164
|
else {
|
|
165
165
|
this.dropDown.onToggled.pipe(take(1)).subscribe(open => {
|
|
166
166
|
if (open) {
|
|
167
|
-
// blur/focus to refresh focus - this will make the tooltip disappear
|
|
168
|
-
// while menu is open (b/c tooltip will block view)
|
|
169
|
-
this.dropDownButtonElement.nativeElement.blur();
|
|
170
|
-
this.dropDownButtonElement.nativeElement.focus();
|
|
171
167
|
this.moreButtonElement = document.activeElement;
|
|
172
168
|
}
|
|
173
169
|
});
|
|
@@ -381,7 +377,7 @@ export class ActionBarComponent extends ActionContainerComponent {
|
|
|
381
377
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.dropDown = _t.first);
|
|
382
378
|
} }, hostBindings: function ActionBarComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
383
379
|
i0.ɵɵlistener("focusin", function ActionBarComponent_focusin_HostBindingHandler($event) { return ctx.onFocusEvent($event); })("focusout", function ActionBarComponent_focusout_HostBindingHandler($event) { return ctx.onFocusEvent($event); })("keydown", function ActionBarComponent_keydown_HostBindingHandler($event) { return ctx.onToggleKeydown($event); })("mouseenter", function ActionBarComponent_mouseenter_HostBindingHandler($event) { return ctx.onMouseEvent($event); })("mouseleave", function ActionBarComponent_mouseleave_HostBindingHandler($event) { return ctx.onMouseEvent($event); })("resize", function ActionBarComponent_resize_HostBindingHandler() { return ctx.onResize(); }, false, i0.ɵɵresolveWindow);
|
|
384
|
-
} }, outputs: { actionsUpdated: "actionsUpdated" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c3, decls: 12, vars:
|
|
380
|
+
} }, outputs: { actionsUpdated: "actionsUpdated" }, features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c3, decls: 12, vars: 14, consts: [["role", "menubar", 1, "sme-position-flex-none", "sme-arrange-stack-h"], ["actionBarElement", ""], ["class", "sme-arrange-stack-h sme-arrange-stack-centered sme-arrange-stack-inline", 3, "item", "sme-action-bar-item-no-padding-v", "itemChanged", 4, "ngFor", "ngForOf"], ["role", "presentation", 1, "sme-position-flex-none"], ["dropDown", ""], ["type", "button", "role", "menuitem", "aria-haspopup", "true", "data-uta-id", "action-bar-more", 1, "sme-button-trigger", "sme-layout-action-bar-item-height", "sme-button-auto-width", "sme-dropdown-toggle"], ["dropDownButton", ""], [1, "sme-icon", "sme-icon-more", 3, "title"], [1, "sme-screen-reader"], ["role", "menu", 1, "sme-dropdown-content", 3, "actions", "target", "targetChange", "error", "executed"], [1, "sme-arrange-stack-h", "sme-arrange-stack-centered", "sme-arrange-stack-inline", 3, "item", "itemChanged"]], template: function ActionBarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
385
381
|
i0.ɵɵprojectionDef();
|
|
386
382
|
i0.ɵɵelementStart(0, "div", 0, 1);
|
|
387
383
|
i0.ɵɵtemplate(2, ActionBarComponent_sme_dynamic_action_item_2_Template, 1, 3, "sme-dynamic-action-item", 2);
|
|
@@ -405,7 +401,6 @@ export class ActionBarComponent extends ActionContainerComponent {
|
|
|
405
401
|
i0.ɵɵproperty("ngForOf", ctx.hiddenFilter(ctx.displayedActions));
|
|
406
402
|
i0.ɵɵadvance(1);
|
|
407
403
|
i0.ɵɵclassProp("sme-layout-hidden", !ctx.compact && ctx.trayActions.length === 0)("sme-layout-none", ctx.compact && ctx.trayActions.length === 0);
|
|
408
|
-
i0.ɵɵproperty("title", ctx.moreActionsDisplay)("smeTooltipShow", !_r2.isOpen);
|
|
409
404
|
i0.ɵɵadvance(2);
|
|
410
405
|
i0.ɵɵclassProp("sme-toggled", _r2.isOpen);
|
|
411
406
|
i0.ɵɵattribute("aria-label", ctx.moreActionsDisplay)("aria-expanded", _r2.isOpen);
|
|
@@ -457,4 +452,4 @@ export class ActionBarComponent extends ActionContainerComponent {
|
|
|
457
452
|
type: HostListener,
|
|
458
453
|
args: ['window:resize']
|
|
459
454
|
}] }); })();
|
|
460
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9hY3Rpb25zL2NvbnRhaW5lcnMvYWN0aW9uLWJhci9hY3Rpb24tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FjdGlvbnMvY29udGFpbmVycy9hY3Rpb24tYmFyL2FjdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLGVBQWUsRUFFZixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUV2RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7SUN2QnZFLG1EQUc0RDtJQUYxRCxnUEFBcUM7SUFFcUIsaUJBQTBCOzs7O0lBQXBGLHlFQUF5RDtJQUhrQiw4QkFBYTs7O0FEeUI1Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBTUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHdCQUF3QjtJQWdGNUQ7O09BRUc7SUFDSCxZQUFZLGVBQWdDLEVB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QUM7O2tCQUNyQyxZQUFZO21CQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQztZQVd0QyxRQUFRO2tCQURQLFlBQVk7bUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgRG9DaGVjayxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbmplY3QsXHJcbiAgICBJbmplY3RvcixcclxuICAgIEl0ZXJhYmxlRGlmZmVycyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT3V0cHV0LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEtleUNvZGUgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RhdGEvYWNjZXNzaWJpbGl0eS1tYW5hZ2VyJztcclxuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nZ2luZyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBMYXlvdXQsIFNNRV9MQVlPVVRfUFJPVklERVIgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vbGF5b3V0JztcclxuaW1wb3J0IHsgRHJvcGRvd25Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vaXRlbXMvYWN0aW9uLWl0ZW0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQWN0aW9uQ29udGFpbmVyT3JpZW50YXRpb24gfSBmcm9tICcuLi9hY3Rpb24tY29udGFpbmVyJztcclxuaW1wb3J0IHsgQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vYWN0aW9uLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBzbWVEb2Mge0BsYWJlbCBBY3Rpb25zIEBpZCBzbWUtYWN0aW9uc31cclxuICpcclxuICogQG92ZXJ2aWV3XHJcbiAqIEBmaWxlIHtAZmlsZXBhdGggLi9leGFtcGxlcy9vdmVydmlldy5tZH1cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBEZWZpbmVkIGFjdGlvbnMgZnJvbSBjb21wb25lbnQgQGlkIGRlZmluZWQtYWN0aW9ucy1mcm9tLWNvbXBvbmVudH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9kZWZpbmVkLWFjdGlvbnMtZnJvbS1jb21wb25lbnQuY29tcG9uZW50Lmh0bWx9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2FjdGlvbnMtZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgRGVmaW5lZCBhY3Rpb25zIGZyb20gaHRtbCBAaWQgZGVmaW5lZC1hY3Rpb25zLWZyb20taHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9kZWZpbmVkLWFjdGlvbnMtZnJvbS1odG1sLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9hY3Rpb25zLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIERlZmluZWQgYWN0aW9ucyBmcm9tIGJvdGggQGlkIGRlZmluZWQtYWN0aW9ucy1mcm9tLWJvdGh9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvZGVmaW5lZC1hY3Rpb25zLWZyb20tYm90aC5jb21wb25lbnQuaHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYWN0aW9ucy1leGFtcGxlLmNvbXBvbmVudC50c31cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBBbGwgYnV0dG9ucyBkaXNhYmxlZCBAaWQgYWxsLWJ1dHRvbnMtZGlzYWJsZWR9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYWxsLWJ1dHRvbnMtZGlzYWJsZWQuY29tcG9uZW50Lmh0bWx9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2FjdGlvbnMtZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgTW9kZWwgZHJpdmVuIGFjdGlvbiBiYXIgQGlkIG1vZGVsLWRyaXZlbn1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9tb2RlbC1kcml2ZW4uY29tcG9uZW50Lmh0bWx9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2FjdGlvbnMtZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgQ29udGFpbmVyIGVtYmVkZGVkIGFjdGlvbiBiYXIgQGlkIGNvbnRhaW5lci1lbWJlZGRlZC1hY3Rpb24tYmFyfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2NvbnRhaW5lci1lbWJlZGRlZC1hY3Rpb24tYmFyLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9hY3Rpb25zLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtYWN0aW9uLWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWN0aW9uLWJhci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFjdGlvbkJhckNvbXBvbmVudCBleHRlbmRzIEFjdGlvbkNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIERvQ2hlY2ssIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcm90ZWN0ZWQgbG9nU291cmNlTmFtZTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmxhZyB0aGF0IHdoZW4gc2V0IHdpbGwgZGlzcGxheSBtaW5pbWFsIFVJIGZvciB0aGUgYWN0aW9uIGJhci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBjb21wYWN0KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmlzQ29tcGFjdDtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEF0dHJpYnV0ZSB0aGF0IHNldHMgdmVydGljYWwgb3IgaG9yaXpvbnRhbCBvcmllbnRhdGlvbiB3aGVyZSB2ZXJ0aWNhbCBkaXNwbGF5cyBhY3Rpb24gYmFyIGZyb20gdG9wIHRvIGJvdHRvbSBvZiBwYWdlXHJcbiAgICAgKiBhbmQgaG9yaXpvbnRhbCBkaXNwbGF5cyBhY3Rpb24gYmFyIGZyb20gbGVmdCB0byByaWdodC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBvcmllbnRhdGlvbigpOiBBY3Rpb25Db250YWluZXJPcmllbnRhdGlvbiB7XHJcbiAgICAgICAgcmV0dXJuICd2ZXJ0aWNhbCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IG9mIEFjdGlvbkl0ZW0gb2JqZWN0cyB0aGF0IHdlIHdhbnQgdG8gcGVyZm9ybS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRpc3BsYXllZEFjdGlvbnM6IEFjdGlvbkl0ZW1bXSA9IFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGlzdCBvZiBBY3Rpb25JdGVtIG9iamVjdHMgdGhhdCBhcmUgY29sbGFwc2VkIGludG8gZHJvcGRvd24uXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmF5QWN0aW9uczogQWN0aW9uSXRlbVtdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZXh0IGRpc3BsYXllZCBmb3IgdHJheSBkcm9wZG93bi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1vcmVBY3Rpb25zRGlzcGxheTogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTGFiZWwgb24gYWN0aW9uIG1lbnUgZm9yIGFjY2Vzc2liaWxpdHkuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY3Rpb25zQXJpYUxhYmVsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHRvIG1ha2Ugc3VyZSBpZiB0aGUgaGVpZ2h0IG9mIHRoZSBiYXIgaXMgY3VycmVudGx5IGdyZWF0ZXIgdGhhbiB0aGUgYXZhaWxhYmxlIGhlaWdodCBvZiB0aGUgdGFyZ2V0LFxyXG4gICAgICogdGhlbiB0aGUgaXRlbXMgYXJlIGFkanVzdGVkIGFjY29yZGluZ2x5LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaGVpZ2h0T3ZlcmZsb3c6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBCdXR0b24gZWxlbWVudCBmb3IgdHJheSBkcm9wZG93bi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG1vcmVCdXR0b25FbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExvY2FsaXplZCBzZXQgb2Ygc3RyaW5ncy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0cmluZ3MgPSBNc2Z0U21lLmdldFN0cmluZ3M8U3RyaW5ncz4oKTtcclxuICAgIHByaXZhdGUgaXNDb21wYWN0ID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGhvdmVyZWQgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgZm9jdXNlZCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBhdHRhY2hlZFRvOiBIVE1MRWxlbWVudDtcclxuICAgIHByaXZhdGUgc2hvdWxkU2hvdyA9IHRydWU7XHJcbiAgICBwcml2YXRlIGlzVmlzaWJsZSA9IHRydWU7XHJcbiAgICBwcml2YXRlIGxheW91dFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV2ZW50IGZpcmVkIHdoZW4gbGlzdCBvZiBBY3Rpb25JdGVtcyBjaGFuZ2VzLlxyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyBhY3Rpb25zVXBkYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICAgIHByaXZhdGUgZ2V0IGlzQXR0YWNoZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICFNc2Z0U21lLmlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuYXR0YWNoZWRUbyk7XHJcbiAgICB9XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnYWN0aW9uQmFyRWxlbWVudCcpIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjtcclxuICAgIEBWaWV3Q2hpbGQoJ2Ryb3BEb3duQnV0dG9uJykgcHJpdmF0ZSBkcm9wRG93bkJ1dHRvbkVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEcm9wZG93bkNvbXBvbmVudCBlbGVtZW50IGZvciBhY3Rpb24gdHJheS5cclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZCgnZHJvcERvd24nKSBwdWJsaWMgZHJvcERvd246IERyb3Bkb3duQ29tcG9uZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3IgZm9yIHRoZSBBY3Rpb25CYXJDb21wb25lbnQuXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGl0ZXJhYmxlRGlmZmVyczogSXRlcmFibGVEaWZmZXJzLCBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHVibGljIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoU01FX0xBWU9VVF9QUk9WSURFUikgcHJpdmF0ZSBsYXlvdXQ6IExheW91dCwgaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgICAgICAgc3VwZXIoaXRlcmFibGVEaWZmZXJzLCBpbmplY3Rvcik7XHJcbiAgICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm1heC1saW5lLWxlbmd0aFxyXG4gICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzbWUtcG9zaXRpb24tc3RyZXRjaC1oJyk7XHJcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1sYXlvdXQtYWN0aW9uLWJhcicpO1xyXG4gICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzbWUtYXJyYW5nZS1zdGFjay1oJyk7XHJcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1hcnJhbmdlLXdzLW5vd3JhcCcpO1xyXG4gICAgICAgIHJlbmRlcmVyLmFkZENsYXNzKGhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzbWUtYXJyYW5nZS1vdmVyZmxvdy1zaG93Jyk7XHJcbiAgICAgICAgcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnb3BhY2l0eScsIDApO1xyXG4gICAgICAgIHRoaXMubW9yZUFjdGlvbnNEaXNwbGF5ID0gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5tb3JlO1xyXG4gICAgICAgIHRoaXMuYWN0aW9uc0FyaWFMYWJlbCA9IHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uYWN0aW9ucztcclxuXHJcbiAgICAgICAgaWYgKGxheW91dCkge1xyXG4gICAgICAgICAgICB0aGlzLmxheW91dFN1YnNjcmlwdGlvbiA9IHRoaXMubGF5b3V0LmxheW91dENoYW5nZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMub25MYXlvdXRDaGFuZ2VkKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEZpbHRlcnMgb3V0IEFjdGlvbkl0ZW0gb2JqZWN0cyB0byBiZSBoaWRkZW4uXHJcbiAgICAgKiBAcGFyYW0gaXRlbXMgQWN0aW9uSXRlbSBvYmplY3RzIHRvIGNoZWNrLlxyXG4gICAgICogQHJldHVybnMgTGlzdCBvZiB1bmhpZGRlbiBBY3Rpb25JdGVtIG9iamVjdHMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRkZW5GaWx0ZXIoaXRlbXM6IEFjdGlvbkl0ZW1bXSk6IEFjdGlvbkl0ZW1bXSB7XHJcbiAgICAgICAgcmV0dXJuIGl0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmhpZGRlbik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayB0cmlnZ2VyZWQgYWZ0ZXIgdmlldyBpbml0aWFsaXplcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25CYXIoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIHRyaWdnZXJlZCBhZnRlciBjb21wb25lbnQgaXMgZGVzdHJveWVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLmxheW91dFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgdHJpZ2dlcmVkIHdoZW4gY29tcG9uZW50IGxheW91dCBjaGFuZ2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25MYXlvdXRDaGFuZ2VkKCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvbkJhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG9zdCBsaXN0ZW5lcnMgZm9yIGZvY3VzIGV2ZW50cy5cclxuICAgICAqL1xyXG4gICAgQEhvc3RMaXN0ZW5lcignZm9jdXNpbicsIFsnJGV2ZW50J10pXHJcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c291dCcsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMgb25Gb2N1c0V2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIC8vIG9uIGZvY3VzIGluL291dCBjaGFuZ2UgZm9jdXNlZCBzdGF0ZVxyXG4gICAgICAgIHRoaXMuZm9jdXNlZCA9IGV2ZW50LnR5cGUgPT09ICdmb2N1c2luJyB8fCAodGhpcy5mb2N1c2VkICYmIGV2ZW50LnR5cGUgIT09ICdmb2N1c291dCcpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlSGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3N0IGxpc3RlbmVycyBmb3Iga2V5Ym9hcmQgZXZlbnRzLlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcclxuICAgIHB1YmxpYyBvblRvZ2dsZUtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICAvLyBhY2Nlc3NpYmlsaXR5LCB0YWtlIGZvY3VzIHRvIHRoZSBtb3JlIGJ1dHRvbiBhZnRlciBhIHNlbGVjdGlvbiBpbiBkcm9wZG93biBlbGVtZW50cy5cclxuICAgICAgICBzd2l0Y2ggKGV2ZW50LmtleUNvZGUpIHtcclxuICAgICAgICAgICAgY2FzZSBLZXlDb2RlLkVudGVyOiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5kcm9wRG93bikge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vcmVCdXR0b25FbGVtZW50ICYmIHRoaXMuZHJvcERvd24uaXNPcGVuICYmIHRoaXMuZHJvcERvd24uY29udGVudEVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3JlQnV0dG9uRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZHJvcERvd24ub25Ub2dnbGVkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKG9wZW4gPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wZW4pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBibHVyL2ZvY3VzIHRvIHJlZnJlc2ggZm9jdXMgLSB0aGlzIHdpbGwgbWFrZSB0aGUgdG9vbHRpcCBkaXNhcHBlYXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB3aGlsZSBtZW51IGlzIG9wZW4gKGIvYyB0b29sdGlwIHdpbGwgYmxvY2sgdmlldylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BEb3duQnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRyb3BEb3duQnV0dG9uRWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3JlQnV0dG9uRWxlbWVudCA9IDxIVE1MRWxlbWVudD5kb2N1bWVudC5hY3RpdmVFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhvc3QgbGlzdGVuZXJzIGZvciBtb3VzZSBldmVudHMuXHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBbJyRldmVudCddKVxyXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXHJcbiAgICBwdWJsaWMgb25Nb3VzZUV2ZW50KGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIC8vIG9uIG1vdXNlIGVudGVyL2xlYXZlIGNoYW5nZSBob3ZlcmVkIHN0YXRlXHJcbiAgICAgICAgdGhpcy5ob3ZlcmVkID0gZXZlbnQudHlwZSA9PT0gJ21vdXNlZW50ZXInIHx8ICh0aGlzLmhvdmVyZWQgJiYgZXZlbnQudHlwZSAhPT0gJ21vdXNlbGVhdmUnKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUhlaWdodCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSG9zdCBsaXN0ZW5lciBmb3IgcGFnZSByZXNpemUgZXZlbnQuXHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxyXG4gICAgb25SZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25CYXIoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIHRyaWdnZXJlZCBhZnRlciBjaGlsZCBBY3Rpb25JdGVtIGNoYW5nZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkFjdGlvbkl0ZW1DaGFuZ2VkKCkge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvbkJhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBkYXRlSGVpZ2h0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmlzQXR0YWNoZWQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNWaXNpYmxlICYmICh0aGlzLnNob3VsZFNob3cgfHwgdGhpcy5mb2N1c2VkIHx8IHRoaXMuaG92ZXJlZCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnb3ZlcmZsb3cnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc21lLWFuaW1hdGlvbi1mYWRlLW91dC14cycpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzbWUtYW5pbWF0aW9uLWZhZGUtaW4teHMnKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnb3BhY2l0eScsIDApO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdvdmVyZmxvdycsICdoaWRkZW4nKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc21lLWFuaW1hdGlvbi1mYWRlLW91dC14cycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIHRvIHNldCB2aXNpYmlsaXR5IGZvciBBY3Rpb25CYXJDb21wb25lbnQuXHJcbiAgICAgKiBAcGFyYW0gaXNWaXNpYmxlIFRydWUgZm9yIHZpc2libGUsIGZhbHNlIGZvciBub3QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRWaXNpYmlsaXR5KGlzVmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNWaXNpYmxlID0gaXNWaXNpYmxlO1xyXG4gICAgICAgIHRoaXMudXBkYXRlSGVpZ2h0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdG8gc2V0IHZpc2liaWxpdHkgZm9yIEFjdGlvbkJhckNvbXBvbmVudC5cclxuICAgICAqIEBwYXJhbSBzaG91bGRTaG93IFRydWUgZm9yIHNob3dpbmcsIGZhbHNlIGZvciBub3QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaG93SGlkZShzaG91bGRTaG93OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zaG91bGRTaG93ID0gc2hvdWxkU2hvdztcclxuICAgICAgICB0aGlzLnVwZGF0ZUhlaWdodCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVwb3NpdGlvbnMgZ2l2ZW4gSFRNTEVsZW1lbnQgdG8gYmUgcmVsYXRpdmUgdG8gaXRzIHNpYmxpbmcgZWxlbWVudC5cclxuICAgICAqIEBwYXJhbSBlbGVtZW50IEVsZW1lbnQgdG8gcmVwb3NpdGlvbi5cclxuICAgICAqIEBwYXJhbSBjb21wYWN0IEJvb2xlYW4gZmxhZyB0byBzZXQgd2hldGhlciBvciBub3QgQWN0aW9uQmFyQ29tcG9uZW50IHNob3VsZCBiZSBjb21wYWN0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVwb3NpdGlvblJlbGF0aXZlVG8oZWxlbWVudDogSFRNTEVsZW1lbnQsIGNvbXBhY3Q6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICBpZiAoTXNmdFNtZS5pc051bGxPclVuZGVmaW5lZChlbGVtZW50Lm9mZnNldFBhcmVudCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IGlzU2libGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IHNpYmxpbmdzID0gZWxlbWVudC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2libGluZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3Qgc2libGluZyA9IHNpYmxpbmdzLml0ZW0oaSk7XHJcbiAgICAgICAgICAgIGlmIChzaWJsaW5nID09PSB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGlzU2libGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoIWlzU2libGluZykge1xyXG4gICAgICAgICAgICBMb2dnaW5nLmxvZ0Vycm9yKCdBY3Rpb25CYXIucmVwb3NpdGlvblJlbGF0aXZlVG8nLCAnQWN0aW9uQmFyIGNhbiBvbmx5IGJlIHBvc2l0aW9uZWQgcmVsYXRpdmUgdG8gYSBzaWJsaW5nIGVsZW1lbnQuJyk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgd2FzQXR0YWNoZWQgPSB0aGlzLmlzQXR0YWNoZWQ7XHJcbiAgICAgICAgdGhpcy5hdHRhY2hlZFRvID0gZWxlbWVudDtcclxuXHJcbiAgICAgICAgaWYgKCF3YXNBdHRhY2hlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNob3dIaWRlKGZhbHNlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHdoZW4gcG9zaXRpb25pbmcgb24gYW4gZWxlbWVudCwgdXNlIGNvbXBhY3Qgc2V0dGluZ3MgaWYgZGVzaXJlZFxyXG4gICAgICAgIHRoaXMuaXNDb21wYWN0ID0gY29tcGFjdDtcclxuXHJcbiAgICAgICAgLy8gY2hhbmdlIGNsYXNzZXMgdG8gYWNjb3VudCBmb3IgZGlmZmVyZW50IHBvc2l0aW9uaW5nIG1lY2hhbmlzbVxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAncG9zaXRpb24nKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1wb3NpdGlvbi1zdHJldGNoLWgnKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1sYXlvdXQtYWJzb2x1dGUnKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1iYWNrZ3JvdW5kLWNvbG9yLWJhc2UnKTtcclxuXHJcbiAgICAgICAgLy8gQ2FsY3VsYXRlIG5ldyBwb3NpdGlvblxyXG4gICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCk7XHJcbiAgICAgICAgY29uc3QgbWFyZ2luID0ge1xyXG4gICAgICAgICAgICB0b3A6IHBhcnNlSW50KHN0eWxlLm1hcmdpblRvcCwgMTApLFxyXG4gICAgICAgICAgICBib3R0b206IHBhcnNlSW50KHN0eWxlLm1hcmdpbkJvdHRvbSwgMTApLFxyXG4gICAgICAgICAgICBsZWZ0OiBwYXJzZUludChzdHlsZS5tYXJnaW5MZWZ0LCAxMCksXHJcbiAgICAgICAgICAgIHJpZ2h0OiBwYXJzZUludChzdHlsZS5tYXJnaW5SaWdodCwgMTApXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBib3JkZXIgPSB7XHJcbiAgICAgICAgICAgIHRvcDogcGFyc2VJbnQoc3R5bGUuYm9yZGVyVG9wLCAxMCksXHJcbiAgICAgICAgICAgIGJvdHRvbTogcGFyc2VJbnQoc3R5bGUuYm9yZGVyQm90dG9tLCAxMCksXHJcbiAgICAgICAgICAgIGxlZnQ6IHBhcnNlSW50KHN0eWxlLmJvcmRlckxlZnQsIDEwKSxcclxuICAgICAgICAgICAgcmlnaHQ6IHBhcnNlSW50KHN0eWxlLmJvcmRlclJpZ2h0LCAxMClcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZVdpZHRoID0gZWxlbWVudC5jbGllbnRXaWR0aCAtIGJvcmRlci5sZWZ0IC0gYm9yZGVyLnJpZ2h0IC0gbWFyZ2luLmxlZnQgLSBtYXJnaW4ucmlnaHQ7XHJcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlSGVpZ2h0ID0gZWxlbWVudC5jbGllbnRIZWlnaHQgLSBib3JkZXIuYm90dG9tIC0gbWFyZ2luLmJvdHRvbTtcclxuICAgICAgICBjb25zdCB3aWR0aCA9IE1hdGgubWluKE1hdGgubWF4KGF2YWlsYWJsZVdpZHRoIC8gMiwgMzAwKSwgYXZhaWxhYmxlV2lkdGgpO1xyXG4gICAgICAgIGNvbnN0IHJpZ2h0ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQuY2xpZW50V2lkdGggLSAoZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5jbGllbnRXaWR0aCk7XHJcbiAgICAgICAgY29uc3QgdG9wID0gZWxlbWVudC5vZmZzZXRUb3AgKyBib3JkZXIudG9wICsgbWFyZ2luLnRvcDtcclxuXHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdyaWdodCcsIGAke3JpZ2h0fXB4YCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd0b3AnLCBgJHt0b3B9cHhgKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3dpZHRoJywgYHVuc2V0YCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdtYXgtd2lkdGgnLCBgJHt3aWR0aH1weGApO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnbWF4LWhlaWdodCcsIGAke2F2YWlsYWJsZUhlaWdodH1weGApO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnanVzdGlmeS1jb250ZW50JywgYGZsZXgtZW5kYCk7XHJcblxyXG4gICAgICAgIC8vIGlmIHRoZSBoZWlnaHQgb2YgdGhlIGJhciBpcyBjdXJyZW50bHkgZ3JlYXRlciB0aGFuIHRoZSBhdmFpbGFibGUgaGVpZ2h0IG9mIHRoZSB0YXJnZXQsXHJcbiAgICAgICAgLy8gdGhlbiBtYWtlIHN1cmUgZGlzcGxheWVkIGl0ZW1zIGFyZSBhZGp1c3RlZCBhY2NvcmRpbmdseVxyXG4gICAgICAgIHRoaXMuaGVpZ2h0T3ZlcmZsb3cgPSBwYXJzZUludChzdHlsZS5oZWlnaHQsIDEwKSA+IGF2YWlsYWJsZUhlaWdodDtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQWN0aW9uQmFyKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNZXRob2QgdG8gdXBkYXRlIGhvdyBBY3Rpb25CYXJDb21wb25lbnQgaXMgZGlzcGxheWVkLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlQWN0aW9uQmFyKCkge1xyXG4gICAgICAgIGxldCBjdXJyZW50RmlsbCA9IDA7XHJcblxyXG4gICAgICAgIC8vIFNldCB1cCB0aGUgZm9sbG93aW5nIHN0eWxlcyBkdXJpbmcgdGhlIFVJIGNhbGN1bGF0aW9uIHRvIG1ha2Ugc3VyZSB0aGUgaHRtbCBlbGVtZW50IGZsaWNrZXJpbmcgd29uJ3QgZXhjZWVkXHJcbiAgICAgICAgLy8gdGhlIGFjdGlvbiBiYXIgY29udGFpbmVyLlxyXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgaW5saW5lIHN0eWxlcyB3aWxsIGJlIHJlbW92ZWQgYWZ0ZXIgdGhlIFVJIGNhbGN1bGF0aW9uIGlzIGRvbmUuXHJcbiAgICAgICAgY29uc3QgaG9zdEVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+dGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaG9zdEVsZW1lbnQsICdvdmVyZmxvdycsIGBoaWRkZW5gKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmlzQXR0YWNoZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShob3N0RWxlbWVudCwgJ3Bvc2l0aW9uJywgYHJlbGF0aXZlYCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnb3BhY2l0eScpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zID0gW107XHJcbiAgICAgICAgdGhpcy50cmF5QWN0aW9ucyA9IFtdO1xyXG5cclxuICAgICAgICBjb25zdCBzdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoaG9zdEVsZW1lbnQpO1xyXG4gICAgICAgIGNvbnN0IHBhZGRpbmcgPSBwYXJzZUludChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWxlZnQnKSwgMTApICsgcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1yaWdodCcpLCAxMCk7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSAodGhpcy5pc0F0dGFjaGVkID8gcGFyc2VJbnQoc3R5bGUubWF4V2lkdGgsIDEwKSA6IGhvc3RFbGVtZW50Lm9mZnNldFdpZHRoKSAtIHBhZGRpbmc7XHJcblxyXG4gICAgICAgIC8vIEZpcnN0bHksIHdlIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSB0b3RhbCB3aWR0aCBvZiBhbGwgYnV0dG9ucyB3aXRob3V0IFwibW9yZVwiIGJ1dHRvbi5cclxuICAgICAgICBsZXQgYnV0dG9uc1RvdGFsV2lkdGggPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5hY3Rpb25zLmxlbmd0aDsgKytpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9uc1tpXTtcclxuICAgICAgICAgICAgLy8gYXNzdW1lIGhpZGRlbiBhY3Rpb25zIGhhdmUgYSAwIHdpZHRoLiBXaGVuIHRoZXkgYXJlIHVuLWhpZGRlbiwgdGhlcmUgd2lkdGggd2lsbCBjaGFuZ2UgYW5kIHRyaWdnZXIgYW5vdGhlciB1cGRhdGUuXHJcbiAgICAgICAgICAgIGNvbnN0IGFjdGlvbldpZHRoID0gYWN0aW9uLmhpZGRlbiA/IDAgOiBhY3Rpb24ud2lkdGggfHwgMDtcclxuICAgICAgICAgICAgYnV0dG9uc1RvdGFsV2lkdGggKz0gYWN0aW9uV2lkdGg7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoYnV0dG9uc1RvdGFsV2lkdGggPD0gY29udGFpbmVyV2lkdGgpIHtcclxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuYWN0aW9ucy5sZW5ndGg7ICsraW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkQWN0aW9ucy5wdXNoKHRoaXMuYWN0aW9uc1tpbmRleF0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gSWYgdGhlIGJ1dHRvbnMgdG90YWwgd2lkdGggZXhjZWVkcyB0aGUgY29udGFpbmVyIHdpZHRoLCB0aGVuIHdlIGNhbGN1bGF0ZSB3aGljaCBidXR0b24gc2hvdWxkIGJlXHJcbiAgICAgICAgICAgIC8vIGRpc3BsYXllZCBhbmQgd2hpY2ggYnV0dG9uIHNob3VsZCBiZSBwdXQgaW50byBcIm1vcmVcIiBkcm9wLWRvd24uXHJcbiAgICAgICAgICAgIC8vIE5vdGU6IHRoZSBhdmFpbGFibGUgY29udGFpbmVyIHdpZHRoIHNob3VsZCBiZSB0aGUgY29udGFpbmVyIHdpZHRoIC0gXCJtb3JlXCIgYnV0dG9uJ3Mgd2lkdGguXHJcbiAgICAgICAgICAgIGNvbnN0IHZpc2libGVCdXR0b25Db250YWluZXJXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gdGhpcy5kcm9wRG93bkJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHRoaXMuYWN0aW9ucy5sZW5ndGg7ICsraW5kZXgpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbiA9IHRoaXMuYWN0aW9uc1tpbmRleF07XHJcbiAgICAgICAgICAgICAgICAvLyBhc3N1bWUgaGlkZGVuIGFjdGlvbnMgaGF2ZSBhIDAgd2lkdGguIFdoZW4gdGhleSBhcmUgdW4taGlkZGVuLCB0aGVyZSB3aWR0aCB3aWxsIGNoYW5nZSBhbmQgdHJpZ2dlciBhbm90aGVyIHVwZGF0ZS5cclxuICAgICAgICAgICAgICAgIGNvbnN0IGFjdGlvbldpZHRoID0gYWN0aW9uLmhpZGRlbiA/IDAgOiBhY3Rpb24ud2lkdGggfHwgMDtcclxuICAgICAgICAgICAgICAgIGlmIChjdXJyZW50RmlsbCArIGFjdGlvbldpZHRoID4gdmlzaWJsZUJ1dHRvbkNvbnRhaW5lcldpZHRoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmF5QWN0aW9ucy5wdXNoKGFjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcGxheWVkQWN0aW9ucy5wdXNoKGFjdGlvbik7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY3VycmVudEZpbGwgKz0gYWN0aW9uV2lkdGg7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXllZEFjdGlvbnMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9yZUFjdGlvbnNEaXNwbGF5ID0gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5hY3Rpb25zO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9yZUFjdGlvbnNEaXNwbGF5ID0gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5tb3JlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgYW55IGFjdGlvbiBiYXIgd2lkdGggaXMgTmFOLCB0aGF0IG1lYW5zIG5vdCBhbGwgdGhlIGFjdGlvbi1idXR0b25zIGZpbmlzaGVkIHJlbmRlcmluZyBvbiB0aGUgVUkuXHJcbiAgICAgICAgLy8gVGh1cyBcImN1cnJlbnRGaWxsXCIgaXMgc3RpbGwgTmFOLiBPdGhlcndpc2UsIHdlIGNvbnNpZGVyIGFsbCB0aGUgYWN0aW9uLWJ1dHRvbnMgZmluaXNoIHJlbmRlcmluZy5cclxuICAgICAgICAvLyBUaGVuIGl0J3MgdGltZSB0byByZW1vdmUgdGhlIHRlbXBvcmFyeSBpbmxpbmUgc3R5bGVzLlxyXG4gICAgICAgIGlmICghIWN1cnJlbnRGaWxsKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5pc0F0dGFjaGVkICYmICh0aGlzLnNob3VsZFNob3cgfHwgdGhpcy5ob3ZlcmVkIHx8IHRoaXMuZm9jdXNlZCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoaG9zdEVsZW1lbnQsICdvdmVyZmxvdycpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoaG9zdEVsZW1lbnQsICdwb3NpdGlvbicpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gc29tZSBhY3Rpb24gaXRlbSBzdGF0ZXMgZGVwZW5kIG9uIHdoYXQgY29udGFpbmVyIHRoZXkgcmVzaWRlIGluLlxyXG4gICAgICAgIC8vIFRyYXlBY3Rpb25zIHdpbGwgYmUgdXBkYXRlZCBiZWNhdXNlIHRoZXkgd2VyZSBtb3ZlZCBpbnRvIHRoZSBhY3Rpb25NZW51LFxyXG4gICAgICAgIC8vIGhvd2V2ZXIgZGlzcGxheWVkIGFjdGlvbnMgc2hvdWxkIGJlIHJlc2V0IGFzIHRoZXkgbWF5IGhhdmUgbW92ZWQuXHJcbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheWVkQWN0aW9ucyAmJiB0aGlzLmRpc3BsYXllZEFjdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLmRpc3BsYXllZEFjdGlvbnMuZm9yRWFjaChhY3Rpb24gPT4gYWN0aW9uLnNldEFjdGlvblN0YXRlKHRoaXMudGFyZ2V0LCB0aGlzKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmFjdGlvbnNVcGRhdGVkLmVtaXQoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IHJvbGU9XCJtZW51YmFyXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhY3Rpb25zQXJpYUxhYmVsXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1hcnJhbmdlLXN0YWNrLWhcIlxyXG4gICNhY3Rpb25CYXJFbGVtZW50PlxyXG4gIDxzbWUtZHluYW1pYy1hY3Rpb24taXRlbSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBoaWRkZW5GaWx0ZXIoZGlzcGxheWVkQWN0aW9ucylcIiBbaXRlbV09XCJpdGVtXCJcclxuICAgIChpdGVtQ2hhbmdlZCk9XCJvbkFjdGlvbkl0ZW1DaGFuZ2VkKClcIlxyXG4gICAgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay1oIHNtZS1hcnJhbmdlLXN0YWNrLWNlbnRlcmVkIHNtZS1hcnJhbmdlLXN0YWNrLWlubGluZVwiXHJcbiAgICBbY2xhc3Muc21lLWFjdGlvbi1iYXItaXRlbS1uby1wYWRkaW5nLXZdPVwiaGVpZ2h0T3ZlcmZsb3dcIj48L3NtZS1keW5hbWljLWFjdGlvbi1pdGVtPlxyXG5cclxuICA8c21lLWRyb3Bkb3duICNkcm9wRG93biByb2xlPVwicHJlc2VudGF0aW9uXCIgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1ub25lXCJcclxuICAgIFtjbGFzcy5zbWUtbGF5b3V0LWhpZGRlbl09XCIhY29tcGFjdCAmJiB0cmF5QWN0aW9ucy5sZW5ndGggPT09IDBcIlxyXG4gICAgW2NsYXNzLnNtZS1sYXlvdXQtbm9uZV09XCJjb21wYWN0ICYmIHRyYXlBY3Rpb25zLmxlbmd0aCA9PT0gMFwiIFt0aXRsZV09XCJtb3JlQWN0aW9uc0Rpc3BsYXlcIiBbc21lVG9vbHRpcFNob3ddPVwiIXRoaXMuZHJvcERvd24uaXNPcGVuXCI+XHJcbiAgICA8YnV0dG9uICNkcm9wRG93bkJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJtb3JlQWN0aW9uc0Rpc3BsYXlcIiByb2xlPVwibWVudWl0ZW1cIlxyXG4gICAgICBjbGFzcz1cInNtZS1idXR0b24tdHJpZ2dlciBzbWUtbGF5b3V0LWFjdGlvbi1iYXItaXRlbS1oZWlnaHQgc21lLWJ1dHRvbi1hdXRvLXdpZHRoIHNtZS1kcm9wZG93bi10b2dnbGVcIlxyXG4gICAgICBbY2xhc3Muc21lLXRvZ2dsZWRdPVwiZHJvcERvd24uaXNPcGVuXCIgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJkcm9wRG93bi5pc09wZW5cIiBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXHJcbiAgICAgIGRhdGEtdXRhLWlkPVwiYWN0aW9uLWJhci1tb3JlXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic21lLWljb24gc21lLWljb24tbW9yZVwiIFt0aXRsZV09XCJtb3JlQWN0aW9uc0Rpc3BsYXlcIj48L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic21lLXNjcmVlbi1yZWFkZXJcIj57eyBtb3JlQWN0aW9uc0Rpc3BsYXkgfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxzbWUtYWN0aW9uLW1lbnUgW2FjdGlvbnNdPVwidHJheUFjdGlvbnNcIiByb2xlPVwibWVudVwiIGNsYXNzPVwic21lLWRyb3Bkb3duLWNvbnRlbnRcIiBbKHRhcmdldCldPVwidGFyZ2V0XCJcclxuICAgICAgKGVycm9yKT1cImVycm9yLmVtaXQoJGV2ZW50KVwiIChleGVjdXRlZCk9XCJleGVjdXRlZC5lbWl0KCRldmVudClcIj48L3NtZS1hY3Rpb24tbWVudT5cclxuICA8L3NtZS1kcm9wZG93bj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
455
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9hY3Rpb25zL2NvbnRhaW5lcnMvYWN0aW9uLWJhci9hY3Rpb24tYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FjdGlvbnMvY29udGFpbmVycy9hY3Rpb24tYmFyL2FjdGlvbi1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFlBQVksRUFDWixNQUFNLEVBQ04sUUFBUSxFQUNSLGVBQWUsRUFFZixRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUV2RixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFVLG1CQUFtQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHekUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7SUN2QnZFLG1EQUc0RDtJQUYxRCxnUEFBcUM7SUFFcUIsaUJBQTBCOzs7O0lBQXBGLHlFQUF5RDtJQUhrQiw4QkFBYTs7O0FEeUI1Rjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOEJHO0FBTUgsTUFBTSxPQUFPLGtCQUFtQixTQUFRLHdCQUF3QjtJQWdGNUQ7O09BRUc7SUFDSCxZQUFZLGVBQWdDLEVB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QUFtQixrR0FDMUYsc0JBQWtCLElBRHdFLHdHQUMxRCx5QkFBcUIsSUFEcUM7UUFDbkMsaUJBQWtCO1FBQ3RGLGlCQUFlO1FBQ2YsbUJBQXlCO1FBQzNCLGlCQUFNOzs7UUFyQmMsa0RBQW9DO1FBRVosZUFBaUM7UUFBakMsZ0VBQWlDO1FBTXpFLGVBQWdFO1FBQWhFLGlGQUFnRSxnRUFBQTtRQUk5RCxlQUFxQztRQUFyQyx5Q0FBcUM7UUFGRCxvREFBc0MsNkJBQUE7UUFJckMsZUFBNEI7UUFBNUIsOENBQTRCO1FBQ2pDLGVBQXdCO1FBQXhCLDRDQUF3QjtRQUV6QyxlQUF1QjtRQUF2Qix5Q0FBdUIsc0JBQUE7O3VGRDhDL0Isa0JBQWtCO2NBSjlCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQixXQUFXLEVBQUUsNkJBQTZCO2FBQzdDOztzQkFxRlEsUUFBUTs7c0JBQUksTUFBTTt1QkFBQyxtQkFBbUI7K0NBbEJwQyxjQUFjO2tCQURwQixNQUFNO1lBT2dDLE9BQU87a0JBQTdDLFNBQVM7bUJBQUMsa0JBQWtCO1lBQ1EscUJBQXFCO2tCQUF6RCxTQUFTO21CQUFDLGdCQUFnQjtZQUtHLFFBQVE7a0JBQXJDLFNBQVM7bUJBQUMsVUFBVTtZQStEZCxZQUFZO2tCQUZsQixZQUFZO21CQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0JBQ2xDLFlBQVk7bUJBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBVzdCLGVBQWU7a0JBRHJCLFlBQVk7bUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDO1lBMEI1QixZQUFZO2tCQUZsQixZQUFZO21CQUFDLFlBQVksRUFBRSxDQUFDLFFBQVEsQ0FBQzs7a0JBQ3JDLFlBQVk7bUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxDQUFDO1lBV3RDLFFBQVE7a0JBRFAsWUFBWTttQkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBEb0NoZWNrLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIEhvc3RMaXN0ZW5lcixcclxuICAgIEluamVjdCxcclxuICAgIEluamVjdG9yLFxyXG4gICAgSXRlcmFibGVEaWZmZXJzLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgS2V5Q29kZSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGF0YS9hY2Nlc3NpYmlsaXR5LW1hbmFnZXInO1xyXG5pbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSAnQG1pY3Jvc29mdC93aW5kb3dzLWFkbWluLWNlbnRlci1zZGsvY29yZS9kaWFnbm9zdGljcy9sb2dnaW5nJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN0cmluZ3MgfSBmcm9tICcuLi8uLi8uLi8uLi9nZW5lcmF0ZWQvc3RyaW5ncyc7XHJcbmltcG9ydCB7IExheW91dCwgU01FX0xBWU9VVF9QUk9WSURFUiB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9sYXlvdXQnO1xyXG5pbXBvcnQgeyBEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFjdGlvbkl0ZW0gfSBmcm9tICcuLi8uLi9pdGVtcy9hY3Rpb24taXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBY3Rpb25Db250YWluZXJPcmllbnRhdGlvbiB9IGZyb20gJy4uL2FjdGlvbi1jb250YWluZXInO1xyXG5pbXBvcnQgeyBBY3Rpb25Db250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9hY3Rpb24tY29udGFpbmVyLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICpcclxuICogQHNtZURvYyB7QGxhYmVsIEFjdGlvbnMgQGlkIHNtZS1hY3Rpb25zfVxyXG4gKlxyXG4gKiBAb3ZlcnZpZXdcclxuICogQGZpbGUge0BmaWxlcGF0aCAuL2V4YW1wbGVzL292ZXJ2aWV3Lm1kfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIERlZmluZWQgYWN0aW9ucyBmcm9tIGNvbXBvbmVudCBAaWQgZGVmaW5lZC1hY3Rpb25zLWZyb20tY29tcG9uZW50fVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RlZmluZWQtYWN0aW9ucy1mcm9tLWNvbXBvbmVudC5jb21wb25lbnQuaHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYWN0aW9ucy1leGFtcGxlLmNvbXBvbmVudC50c31cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBEZWZpbmVkIGFjdGlvbnMgZnJvbSBodG1sIEBpZCBkZWZpbmVkLWFjdGlvbnMtZnJvbS1odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2RlZmluZWQtYWN0aW9ucy1mcm9tLWh0bWwuY29tcG9uZW50Lmh0bWx9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2FjdGlvbnMtZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqXHJcbiAqIEBleGFtcGxlIHtAbGFiZWwgRGVmaW5lZCBhY3Rpb25zIGZyb20gYm90aCBAaWQgZGVmaW5lZC1hY3Rpb25zLWZyb20tYm90aH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9kZWZpbmVkLWFjdGlvbnMtZnJvbS1ib3RoLmNvbXBvbmVudC5odG1sfVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC50cyBAZmlsZXBhdGggLi9leGFtcGxlcy9hY3Rpb25zLWV4YW1wbGUuY29tcG9uZW50LnRzfVxyXG4gKlxyXG4gKiBAZXhhbXBsZSB7QGxhYmVsIEFsbCBidXR0b25zIGRpc2FibGVkIEBpZCBhbGwtYnV0dG9ucy1kaXNhYmxlZH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQuaHRtbCBAZmlsZXBhdGggLi9leGFtcGxlcy9hbGwtYnV0dG9ucy1kaXNhYmxlZC5jb21wb25lbnQuaHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYWN0aW9ucy1leGFtcGxlLmNvbXBvbmVudC50c31cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBNb2RlbCBkcml2ZW4gYWN0aW9uIGJhciBAaWQgbW9kZWwtZHJpdmVufVxyXG4gKiBAZmlsZSB7QGZpbGVuYW1lIGNvbXBvbmVudC5odG1sIEBmaWxlcGF0aCAuL2V4YW1wbGVzL21vZGVsLWRyaXZlbi5jb21wb25lbnQuaHRtbH1cclxuICogQGZpbGUge0BmaWxlbmFtZSBjb21wb25lbnQudHMgQGZpbGVwYXRoIC4vZXhhbXBsZXMvYWN0aW9ucy1leGFtcGxlLmNvbXBvbmVudC50c31cclxuICpcclxuICogQGV4YW1wbGUge0BsYWJlbCBDb250YWluZXIgZW1iZWRkZWQgYWN0aW9uIGJhciBAaWQgY29udGFpbmVyLWVtYmVkZGVkLWFjdGlvbi1iYXJ9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50Lmh0bWwgQGZpbGVwYXRoIC4vZXhhbXBsZXMvY29udGFpbmVyLWVtYmVkZGVkLWFjdGlvbi1iYXIuY29tcG9uZW50Lmh0bWx9XHJcbiAqIEBmaWxlIHtAZmlsZW5hbWUgY29tcG9uZW50LnRzIEBmaWxlcGF0aCAuL2V4YW1wbGVzL2FjdGlvbnMtZXhhbXBsZS5jb21wb25lbnQudHN9XHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3NtZS1hY3Rpb24tYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hY3Rpb24tYmFyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uQmFyQ29tcG9uZW50IGV4dGVuZHMgQWN0aW9uQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICAgIHByb3RlY3RlZCBsb2dTb3VyY2VOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGbGFnIHRoYXQgd2hlbiBzZXQgd2lsbCBkaXNwbGF5IG1pbmltYWwgVUkgZm9yIHRoZSBhY3Rpb24gYmFyLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGNvbXBhY3QoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNDb21wYWN0O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXR0cmlidXRlIHRoYXQgc2V0cyB2ZXJ0aWNhbCBvciBob3Jpem9udGFsIG9yaWVudGF0aW9uIHdoZXJlIHZlcnRpY2FsIGRpc3BsYXlzIGFjdGlvbiBiYXIgZnJvbSB0b3AgdG8gYm90dG9tIG9mIHBhZ2VcclxuICAgICAqIGFuZCBob3Jpem9udGFsIGRpc3BsYXlzIGFjdGlvbiBiYXIgZnJvbSBsZWZ0IHRvIHJpZ2h0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IG9yaWVudGF0aW9uKCk6IEFjdGlvbkNvbnRhaW5lck9yaWVudGF0aW9uIHtcclxuICAgICAgICByZXR1cm4gJ3ZlcnRpY2FsJztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIExpc3Qgb2YgQWN0aW9uSXRlbSBvYmplY3RzIHRoYXQgd2Ugd2FudCB0byBwZXJmb3JtLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzcGxheWVkQWN0aW9uczogQWN0aW9uSXRlbVtdID0gW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMaXN0IG9mIEFjdGlvbkl0ZW0gb2JqZWN0cyB0aGF0IGFyZSBjb2xsYXBzZWQgaW50byBkcm9wZG93bi5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHRyYXlBY3Rpb25zOiBBY3Rpb25JdGVtW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRleHQgZGlzcGxheWVkIGZvciB0cmF5IGRyb3Bkb3duLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9yZUFjdGlvbnNEaXNwbGF5OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMYWJlbCBvbiBhY3Rpb24gbWVudSBmb3IgYWNjZXNzaWJpbGl0eS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGlvbnNBcmlhTGFiZWw6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZsYWcgdG8gbWFrZSBzdXJlIGlmIHRoZSBoZWlnaHQgb2YgdGhlIGJhciBpcyBjdXJyZW50bHkgZ3JlYXRlciB0aGFuIHRoZSBhdmFpbGFibGUgaGVpZ2h0IG9mIHRoZSB0YXJnZXQsXHJcbiAgICAgKiB0aGVuIHRoZSBpdGVtcyBhcmUgYWRqdXN0ZWQgYWNjb3JkaW5nbHkuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoZWlnaHRPdmVyZmxvdzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEJ1dHRvbiBlbGVtZW50IGZvciB0cmF5IGRyb3Bkb3duLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbW9yZUJ1dHRvbkVsZW1lbnQ6IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9jYWxpemVkIHNldCBvZiBzdHJpbmdzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RyaW5ncyA9IE1zZnRTbWUuZ2V0U3RyaW5nczxTdHJpbmdzPigpO1xyXG4gICAgcHJpdmF0ZSBpc0NvbXBhY3QgPSBmYWxzZTtcclxuICAgIHByaXZhdGUgaG92ZXJlZCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBmb2N1c2VkID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIGF0dGFjaGVkVG86IEhUTUxFbGVtZW50O1xyXG4gICAgcHJpdmF0ZSBzaG91bGRTaG93ID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgaXNWaXNpYmxlID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgbGF5b3V0U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXZlbnQgZmlyZWQgd2hlbiBsaXN0IG9mIEFjdGlvbkl0ZW1zIGNoYW5nZXMuXHJcbiAgICAgKi9cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgcHVibGljIGFjdGlvbnNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBnZXQgaXNBdHRhY2hlZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gIU1zZnRTbWUuaXNOdWxsT3JVbmRlZmluZWQodGhpcy5hdHRhY2hlZFRvKTtcclxuICAgIH1cclxuXHJcbiAgICBAVmlld0NoaWxkKCdhY3Rpb25CYXJFbGVtZW50JykgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmO1xyXG4gICAgQFZpZXdDaGlsZCgnZHJvcERvd25CdXR0b24nKSBwcml2YXRlIGRyb3BEb3duQnV0dG9uRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERyb3Bkb3duQ29tcG9uZW50IGVsZW1lbnQgZm9yIGFjdGlvbiB0cmF5LlxyXG4gICAgICovXHJcbiAgICBAVmlld0NoaWxkKCdkcm9wRG93bicpIHB1YmxpYyBkcm9wRG93bjogRHJvcGRvd25Db21wb25lbnQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIEFjdGlvbkJhckNvbXBvbmVudC5cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoaXRlcmFibGVEaWZmZXJzOiBJdGVyYWJsZURpZmZlcnMsIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLCBwdWJsaWMgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChTTUVfTEFZT1VUX1BST1ZJREVSKSBwcml2YXRlIGxheW91dDogTGF5b3V0LCBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihpdGVyYWJsZURpZmZlcnMsIGluamVjdG9yKTtcclxuICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bWF4LWxpbmUtbGVuZ3RoXHJcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1wb3NpdGlvbi1zdHJldGNoLWgnKTtcclxuICAgICAgICByZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc21lLWxheW91dC1hY3Rpb24tYmFyJyk7XHJcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1hcnJhbmdlLXN0YWNrLWgnKTtcclxuICAgICAgICByZW5kZXJlci5hZGRDbGFzcyhob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc21lLWFycmFuZ2Utd3Mtbm93cmFwJyk7XHJcbiAgICAgICAgcmVuZGVyZXIuYWRkQ2xhc3MoaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1hcnJhbmdlLW92ZXJmbG93LXNob3cnKTtcclxuICAgICAgICByZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdvcGFjaXR5JywgMCk7XHJcbiAgICAgICAgdGhpcy5tb3JlQWN0aW9uc0Rpc3BsYXkgPSB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQ29tbW9uLm1vcmU7XHJcbiAgICAgICAgdGhpcy5hY3Rpb25zQXJpYUxhYmVsID0gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkNvbW1vbi5hY3Rpb25zO1xyXG5cclxuICAgICAgICBpZiAobGF5b3V0KSB7XHJcbiAgICAgICAgICAgIHRoaXMubGF5b3V0U3Vic2NyaXB0aW9uID0gdGhpcy5sYXlvdXQubGF5b3V0Q2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkxheW91dENoYW5nZWQoKSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRmlsdGVycyBvdXQgQWN0aW9uSXRlbSBvYmplY3RzIHRvIGJlIGhpZGRlbi5cclxuICAgICAqIEBwYXJhbSBpdGVtcyBBY3Rpb25JdGVtIG9iamVjdHMgdG8gY2hlY2suXHJcbiAgICAgKiBAcmV0dXJucyBMaXN0IG9mIHVuaGlkZGVuIEFjdGlvbkl0ZW0gb2JqZWN0cy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGhpZGRlbkZpbHRlcihpdGVtczogQWN0aW9uSXRlbVtdKTogQWN0aW9uSXRlbVtdIHtcclxuICAgICAgICByZXR1cm4gaXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uaGlkZGVuKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxiYWNrIHRyaWdnZXJlZCBhZnRlciB2aWV3IGluaXRpYWxpemVzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvbkJhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGJhY2sgdHJpZ2dlcmVkIGFmdGVyIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgICAgIHRoaXMubGF5b3V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayB0cmlnZ2VyZWQgd2hlbiBjb21wb25lbnQgbGF5b3V0IGNoYW5nZXMuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvbkxheW91dENoYW5nZWQoKSB7XHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudXBkYXRlQWN0aW9uQmFyKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3N0IGxpc3RlbmVycyBmb3IgZm9jdXMgZXZlbnRzLlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1c2luJywgWyckZXZlbnQnXSlcclxuICAgIEBIb3N0TGlzdGVuZXIoJ2ZvY3Vzb3V0JywgWyckZXZlbnQnXSlcclxuICAgIHB1YmxpYyBvbkZvY3VzRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgLy8gb24gZm9jdXMgaW4vb3V0IGNoYW5nZSBmb2N1c2VkIHN0YXRlXHJcbiAgICAgICAgdGhpcy5mb2N1c2VkID0gZXZlbnQudHlwZSA9PT0gJ2ZvY3VzaW4nIHx8ICh0aGlzLmZvY3VzZWQgJiYgZXZlbnQudHlwZSAhPT0gJ2ZvY3Vzb3V0Jyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVIZWlnaHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhvc3QgbGlzdGVuZXJzIGZvciBrZXlib2FyZCBldmVudHMuXHJcbiAgICAgKi9cclxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uVG9nZ2xlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIC8vIGFjY2Vzc2liaWxpdHksIHRha2UgZm9jdXMgdG8gdGhlIG1vcmUgYnV0dG9uIGFmdGVyIGEgc2VsZWN0aW9uIGluIGRyb3Bkb3duIGVsZW1lbnRzLlxyXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkge1xyXG4gICAgICAgICAgICBjYXNlIEtleUNvZGUuRW50ZXI6IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRyb3BEb3duKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW9yZUJ1dHRvbkVsZW1lbnQgJiYgdGhpcy5kcm9wRG93bi5pc09wZW4gJiYgdGhpcy5kcm9wRG93bi5jb250ZW50RWxlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vcmVCdXR0b25FbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kcm9wRG93bi5vblRvZ2dsZWQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUob3BlbiA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob3Blbikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9yZUJ1dHRvbkVsZW1lbnQgPSA8SFRNTEVsZW1lbnQ+ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIb3N0IGxpc3RlbmVycyBmb3IgbW91c2UgZXZlbnRzLlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnXSlcclxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uTW91c2VFdmVudChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICAvLyBvbiBtb3VzZSBlbnRlci9sZWF2ZSBjaGFuZ2UgaG92ZXJlZCBzdGF0ZVxyXG4gICAgICAgIHRoaXMuaG92ZXJlZCA9IGV2ZW50LnR5cGUgPT09ICdtb3VzZWVudGVyJyB8fCAodGhpcy5ob3ZlcmVkICYmIGV2ZW50LnR5cGUgIT09ICdtb3VzZWxlYXZlJyk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVIZWlnaHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEhvc3QgbGlzdGVuZXIgZm9yIHBhZ2UgcmVzaXplIGV2ZW50LlxyXG4gICAgICovXHJcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcclxuICAgIG9uUmVzaXplKCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlQWN0aW9uQmFyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsYmFjayB0cmlnZ2VyZWQgYWZ0ZXIgY2hpbGQgQWN0aW9uSXRlbSBjaGFuZ2VzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25BY3Rpb25JdGVtQ2hhbmdlZCgpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVBY3Rpb25CYXIoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwZGF0ZUhlaWdodCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc0F0dGFjaGVkKSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmlzaWJsZSAmJiAodGhpcy5zaG91bGRTaG93IHx8IHRoaXMuZm9jdXNlZCB8fCB0aGlzLmhvdmVyZWQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ292ZXJmbG93Jyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1hbmltYXRpb24tZmFkZS1vdXQteHMnKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnc21lLWFuaW1hdGlvbi1mYWRlLWluLXhzJyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ29wYWNpdHknLCAwKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3NtZS1hbmltYXRpb24tZmFkZS1vdXQteHMnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE1ldGhvZCB0byBzZXQgdmlzaWJpbGl0eSBmb3IgQWN0aW9uQmFyQ29tcG9uZW50LlxyXG4gICAgICogQHBhcmFtIGlzVmlzaWJsZSBUcnVlIGZvciB2aXNpYmxlLCBmYWxzZSBmb3Igbm90LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0VmlzaWJpbGl0eShpc1Zpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzVmlzaWJsZSA9IGlzVmlzaWJsZTtcclxuICAgICAgICB0aGlzLnVwZGF0ZUhlaWdodCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIHRvIHNldCB2aXNpYmlsaXR5IGZvciBBY3Rpb25CYXJDb21wb25lbnQuXHJcbiAgICAgKiBAcGFyYW0gc2hvdWxkU2hvdyBUcnVlIGZvciBzaG93aW5nLCBmYWxzZSBmb3Igbm90LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2hvd0hpZGUoc2hvdWxkU2hvdzogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc2hvdWxkU2hvdyA9IHNob3VsZFNob3c7XHJcbiAgICAgICAgdGhpcy51cGRhdGVIZWlnaHQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlcG9zaXRpb25zIGdpdmVuIEhUTUxFbGVtZW50IHRvIGJlIHJlbGF0aXZlIHRvIGl0cyBzaWJsaW5nIGVsZW1lbnQuXHJcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBFbGVtZW50IHRvIHJlcG9zaXRpb24uXHJcbiAgICAgKiBAcGFyYW0gY29tcGFjdCBCb29sZWFuIGZsYWcgdG8gc2V0IHdoZXRoZXIgb3Igbm90IEFjdGlvbkJhckNvbXBvbmVudCBzaG91bGQgYmUgY29tcGFjdC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlcG9zaXRpb25SZWxhdGl2ZVRvKGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb21wYWN0OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKE1zZnRTbWUuaXNOdWxsT3JVbmRlZmluZWQoZWxlbWVudC5vZmZzZXRQYXJlbnQpKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCBpc1NpYmxpbmcgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBzaWJsaW5ncyA9IGVsZW1lbnQucGFyZW50RWxlbWVudC5jaGlsZHJlbjtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNpYmxpbmdzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNpYmxpbmcgPSBzaWJsaW5ncy5pdGVtKGkpO1xyXG4gICAgICAgICAgICBpZiAoc2libGluZyA9PT0gdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgICBpc1NpYmxpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKCFpc1NpYmxpbmcpIHtcclxuICAgICAgICAgICAgTG9nZ2luZy5sb2dFcnJvcignQWN0aW9uQmFyLnJlcG9zaXRpb25SZWxhdGl2ZVRvJywgJ0FjdGlvbkJhciBjYW4gb25seSBiZSBwb3NpdGlvbmVkIHJlbGF0aXZlIHRvIGEgc2libGluZyBlbGVtZW50LicpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHdhc0F0dGFjaGVkID0gdGhpcy5pc0F0dGFjaGVkO1xyXG4gICAgICAgIHRoaXMuYXR0YWNoZWRUbyA9IGVsZW1lbnQ7XHJcblxyXG4gICAgICAgIGlmICghd2FzQXR0YWNoZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93SGlkZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3aGVuIHBvc2l0aW9uaW5nIG9uIGFuIGVsZW1lbnQsIHVzZSBjb21wYWN0IHNldHRpbmdzIGlmIGRlc2lyZWRcclxuICAgICAgICB0aGlzLmlzQ29tcGFjdCA9IGNvbXBhY3Q7XHJcblxyXG4gICAgICAgIC8vIGNoYW5nZSBjbGFzc2VzIHRvIGFjY291bnQgZm9yIGRpZmZlcmVudCBwb3NpdGlvbmluZyBtZWNoYW5pc21cclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ3Bvc2l0aW9uJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzbWUtcG9zaXRpb24tc3RyZXRjaC1oJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzbWUtbGF5b3V0LWFic29sdXRlJyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICdzbWUtYmFja2dyb3VuZC1jb2xvci1iYXNlJyk7XHJcblxyXG4gICAgICAgIC8vIENhbGN1bGF0ZSBuZXcgcG9zaXRpb25cclxuICAgICAgICBjb25zdCBzdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpO1xyXG4gICAgICAgIGNvbnN0IG1hcmdpbiA9IHtcclxuICAgICAgICAgICAgdG9wOiBwYXJzZUludChzdHlsZS5tYXJnaW5Ub3AsIDEwKSxcclxuICAgICAgICAgICAgYm90dG9tOiBwYXJzZUludChzdHlsZS5tYXJnaW5Cb3R0b20sIDEwKSxcclxuICAgICAgICAgICAgbGVmdDogcGFyc2VJbnQoc3R5bGUubWFyZ2luTGVmdCwgMTApLFxyXG4gICAgICAgICAgICByaWdodDogcGFyc2VJbnQoc3R5bGUubWFyZ2luUmlnaHQsIDEwKVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3QgYm9yZGVyID0ge1xyXG4gICAgICAgICAgICB0b3A6IHBhcnNlSW50KHN0eWxlLmJvcmRlclRvcCwgMTApLFxyXG4gICAgICAgICAgICBib3R0b206IHBhcnNlSW50KHN0eWxlLmJvcmRlckJvdHRvbSwgMTApLFxyXG4gICAgICAgICAgICBsZWZ0OiBwYXJzZUludChzdHlsZS5ib3JkZXJMZWZ0LCAxMCksXHJcbiAgICAgICAgICAgIHJpZ2h0OiBwYXJzZUludChzdHlsZS5ib3JkZXJSaWdodCwgMTApXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBhdmFpbGFibGVXaWR0aCA9IGVsZW1lbnQuY2xpZW50V2lkdGggLSBib3JkZXIubGVmdCAtIGJvcmRlci5yaWdodCAtIG1hcmdpbi5sZWZ0IC0gbWFyZ2luLnJpZ2h0O1xyXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZUhlaWdodCA9IGVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gYm9yZGVyLmJvdHRvbSAtIG1hcmdpbi5ib3R0b207XHJcbiAgICAgICAgY29uc3Qgd2lkdGggPSBNYXRoLm1pbihNYXRoLm1heChhdmFpbGFibGVXaWR0aCAvIDIsIDMwMCksIGF2YWlsYWJsZVdpZHRoKTtcclxuICAgICAgICBjb25zdCByaWdodCA9IGVsZW1lbnQub2Zmc2V0UGFyZW50LmNsaWVudFdpZHRoIC0gKGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQuY2xpZW50V2lkdGgpO1xyXG4gICAgICAgIGNvbnN0IHRvcCA9IGVsZW1lbnQub2Zmc2V0VG9wICsgYm9yZGVyLnRvcCArIG1hcmdpbi50b3A7XHJcblxyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAncmlnaHQnLCBgJHtyaWdodH1weGApO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAndG9wJywgYCR7dG9wfXB4YCk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsICd3aWR0aCcsIGB1bnNldGApO1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCAnbWF4LXdpZHRoJywgYCR7d2lkdGh9cHhgKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ21heC1oZWlnaHQnLCBgJHthdmFpbGFibGVIZWlnaHR9cHhgKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ2p1c3RpZnktY29udGVudCcsIGBmbGV4LWVuZGApO1xyXG5cclxuICAgICAgICAvLyBpZiB0aGUgaGVpZ2h0IG9mIHRoZSBiYXIgaXMgY3VycmVudGx5IGdyZWF0ZXIgdGhhbiB0aGUgYXZhaWxhYmxlIGhlaWdodCBvZiB0aGUgdGFyZ2V0LFxyXG4gICAgICAgIC8vIHRoZW4gbWFrZSBzdXJlIGRpc3BsYXllZCBpdGVtcyBhcmUgYWRqdXN0ZWQgYWNjb3JkaW5nbHlcclxuICAgICAgICB0aGlzLmhlaWdodE92ZXJmbG93ID0gcGFyc2VJbnQoc3R5bGUuaGVpZ2h0LCAxMCkgPiBhdmFpbGFibGVIZWlnaHQ7XHJcblxyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFjdGlvbkJhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0aG9kIHRvIHVwZGF0ZSBob3cgQWN0aW9uQmFyQ29tcG9uZW50IGlzIGRpc3BsYXllZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHVwZGF0ZUFjdGlvbkJhcigpIHtcclxuICAgICAgICBsZXQgY3VycmVudEZpbGwgPSAwO1xyXG5cclxuICAgICAgICAvLyBTZXQgdXAgdGhlIGZvbGxvd2luZyBzdHlsZXMgZHVyaW5nIHRoZSBVSSBjYWxjdWxhdGlvbiB0byBtYWtlIHN1cmUgdGhlIGh0bWwgZWxlbWVudCBmbGlja2VyaW5nIHdvbid0IGV4Y2VlZFxyXG4gICAgICAgIC8vIHRoZSBhY3Rpb24gYmFyIGNvbnRhaW5lci5cclxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGlubGluZSBzdHlsZXMgd2lsbCBiZSByZW1vdmVkIGFmdGVyIHRoZSBVSSBjYWxjdWxhdGlvbiBpcyBkb25lLlxyXG4gICAgICAgIGNvbnN0IGhvc3RFbGVtZW50ID0gPEhUTUxFbGVtZW50PnRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGhvc3RFbGVtZW50LCAnb3ZlcmZsb3cnLCBgaGlkZGVuYCk7XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5pc0F0dGFjaGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoaG9zdEVsZW1lbnQsICdwb3NpdGlvbicsIGByZWxhdGl2ZWApO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgJ29wYWNpdHknKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZGlzcGxheWVkQWN0aW9ucyA9IFtdO1xyXG4gICAgICAgIHRoaXMudHJheUFjdGlvbnMgPSBbXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3R5bGUgPSBnZXRDb21wdXRlZFN0eWxlKGhvc3RFbGVtZW50KTtcclxuICAgICAgICBjb25zdCBwYWRkaW5nID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy1sZWZ0JyksIDEwKSArIHBhcnNlSW50KHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctcmlnaHQnKSwgMTApO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKHRoaXMuaXNBdHRhY2hlZCA/IHBhcnNlSW50KHN0eWxlLm1heFdpZHRoLCAxMCkgOiBob3N0RWxlbWVudC5vZmZzZXRXaWR0aCkgLSBwYWRkaW5nO1xyXG5cclxuICAgICAgICAvLyBGaXJzdGx5LCB3ZSBuZWVkIHRvIGNhbGN1bGF0ZSB0aGUgdG90YWwgd2lkdGggb2YgYWxsIGJ1dHRvbnMgd2l0aG91dCBcIm1vcmVcIiBidXR0b24uXHJcbiAgICAgICAgbGV0IGJ1dHRvbnNUb3RhbFdpZHRoID0gMDtcclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuYWN0aW9ucy5sZW5ndGg7ICsraSkge1xyXG4gICAgICAgICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvbnNbaV07XHJcbiAgICAgICAgICAgIC8vIGFzc3VtZSBoaWRkZW4gYWN0aW9ucyBoYXZlIGEgMCB3aWR0aC4gV2hlbiB0aGV5IGFyZSB1bi1oaWRkZW4sIHRoZXJlIHdpZHRoIHdpbGwgY2hhbmdlIGFuZCB0cmlnZ2VyIGFub3RoZXIgdXBkYXRlLlxyXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25XaWR0aCA9IGFjdGlvbi5oaWRkZW4gPyAwIDogYWN0aW9uLndpZHRoIHx8IDA7XHJcbiAgICAgICAgICAgIGJ1dHRvbnNUb3RhbFdpZHRoICs9IGFjdGlvbldpZHRoO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKGJ1dHRvbnNUb3RhbFdpZHRoIDw9IGNvbnRhaW5lcldpZHRoKSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmFjdGlvbnMubGVuZ3RoOyArK2luZGV4KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXllZEFjdGlvbnMucHVzaCh0aGlzLmFjdGlvbnNbaW5kZXhdKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIElmIHRoZSBidXR0b25zIHRvdGFsIHdpZHRoIGV4Y2VlZHMgdGhlIGNvbnRhaW5lciB3aWR0aCwgdGhlbiB3ZSBjYWxjdWxhdGUgd2hpY2ggYnV0dG9uIHNob3VsZCBiZVxyXG4gICAgICAgICAgICAvLyBkaXNwbGF5ZWQgYW5kIHdoaWNoIGJ1dHRvbiBzaG91bGQgYmUgcHV0IGludG8gXCJtb3JlXCIgZHJvcC1kb3duLlxyXG4gICAgICAgICAgICAvLyBOb3RlOiB0aGUgYXZhaWxhYmxlIGNvbnRhaW5lciB3aWR0aCBzaG91bGQgYmUgdGhlIGNvbnRhaW5lciB3aWR0aCAtIFwibW9yZVwiIGJ1dHRvbidzIHdpZHRoLlxyXG4gICAgICAgICAgICBjb25zdCB2aXNpYmxlQnV0dG9uQ29udGFpbmVyV2lkdGggPSBjb250YWluZXJXaWR0aCAtIHRoaXMuZHJvcERvd25CdXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0aGlzLmFjdGlvbnMubGVuZ3RoOyArK2luZGV4KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvbnNbaW5kZXhdO1xyXG4gICAgICAgICAgICAgICAgLy8gYXNzdW1lIGhpZGRlbiBhY3Rpb25zIGhhdmUgYSAwIHdpZHRoLiBXaGVuIHRoZXkgYXJlIHVuLWhpZGRlbiwgdGhlcmUgd2lkdGggd2lsbCBjaGFuZ2UgYW5kIHRyaWdnZXIgYW5vdGhlciB1cGRhdGUuXHJcbiAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb25XaWR0aCA9IGFjdGlvbi5oaWRkZW4gPyAwIDogYWN0aW9uLndpZHRoIHx8IDA7XHJcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudEZpbGwgKyBhY3Rpb25XaWR0aCA+IHZpc2libGVCdXR0b25Db250YWluZXJXaWR0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudHJheUFjdGlvbnMucHVzaChhY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpc3BsYXllZEFjdGlvbnMucHVzaChhY3Rpb24pO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGN1cnJlbnRGaWxsICs9IGFjdGlvbldpZHRoO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5ZWRBY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLm1vcmVBY3Rpb25zRGlzcGxheSA9IHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24uYWN0aW9ucztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1vcmVBY3Rpb25zRGlzcGxheSA9IHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5Db21tb24ubW9yZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIElmIGFueSBhY3Rpb24gYmFyIHdpZHRoIGlzIE5hTiwgdGhhdCBtZWFucyBub3QgYWxsIHRoZSBhY3Rpb24tYnV0dG9ucyBmaW5pc2hlZCByZW5kZXJpbmcgb24gdGhlIFVJLlxyXG4gICAgICAgIC8vIFRodXMgXCJjdXJyZW50RmlsbFwiIGlzIHN0aWxsIE5hTi4gT3RoZXJ3aXNlLCB3ZSBjb25zaWRlciBhbGwgdGhlIGFjdGlvbi1idXR0b25zIGZpbmlzaCByZW5kZXJpbmcuXHJcbiAgICAgICAgLy8gVGhlbiBpdCdzIHRpbWUgdG8gcmVtb3ZlIHRoZSB0ZW1wb3JhcnkgaW5saW5lIHN0eWxlcy5cclxuICAgICAgICBpZiAoISFjdXJyZW50RmlsbCkge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNBdHRhY2hlZCAmJiAodGhpcy5zaG91bGRTaG93IHx8IHRoaXMuaG92ZXJlZCB8fCB0aGlzLmZvY3VzZWQpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGhvc3RFbGVtZW50LCAnb3ZlcmZsb3cnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGhvc3RFbGVtZW50LCAncG9zaXRpb24nKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIHNvbWUgYWN0aW9uIGl0ZW0gc3RhdGVzIGRlcGVuZCBvbiB3aGF0IGNvbnRhaW5lciB0aGV5IHJlc2lkZSBpbi5cclxuICAgICAgICAvLyBUcmF5QWN0aW9ucyB3aWxsIGJlIHVwZGF0ZWQgYmVjYXVzZSB0aGV5IHdlcmUgbW92ZWQgaW50byB0aGUgYWN0aW9uTWVudSxcclxuICAgICAgICAvLyBob3dldmVyIGRpc3BsYXllZCBhY3Rpb25zIHNob3VsZCBiZSByZXNldCBhcyB0aGV5IG1heSBoYXZlIG1vdmVkLlxyXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXllZEFjdGlvbnMgJiYgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zLmZvckVhY2goYWN0aW9uID0+IGFjdGlvbi5zZXRBY3Rpb25TdGF0ZSh0aGlzLnRhcmdldCwgdGhpcykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hY3Rpb25zVXBkYXRlZC5lbWl0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiByb2xlPVwibWVudWJhclwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWN0aW9uc0FyaWFMYWJlbFwiIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtYXJyYW5nZS1zdGFjay1oXCJcclxuICAjYWN0aW9uQmFyRWxlbWVudD5cclxuICA8c21lLWR5bmFtaWMtYWN0aW9uLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgaGlkZGVuRmlsdGVyKGRpc3BsYXllZEFjdGlvbnMpXCIgW2l0ZW1dPVwiaXRlbVwiXHJcbiAgICAoaXRlbUNoYW5nZWQpPVwib25BY3Rpb25JdGVtQ2hhbmdlZCgpXCJcclxuICAgIGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staCBzbWUtYXJyYW5nZS1zdGFjay1jZW50ZXJlZCBzbWUtYXJyYW5nZS1zdGFjay1pbmxpbmVcIlxyXG4gICAgW2NsYXNzLnNtZS1hY3Rpb24tYmFyLWl0ZW0tbm8tcGFkZGluZy12XT1cImhlaWdodE92ZXJmbG93XCI+PC9zbWUtZHluYW1pYy1hY3Rpb24taXRlbT5cclxuXHJcbiAgPHNtZS1kcm9wZG93biAjZHJvcERvd24gcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZVwiXHJcbiAgICBbY2xhc3Muc21lLWxheW91dC1oaWRkZW5dPVwiIWNvbXBhY3QgJiYgdHJheUFjdGlvbnMubGVuZ3RoID09PSAwXCJcclxuICAgIFtjbGFzcy5zbWUtbGF5b3V0LW5vbmVdPVwiY29tcGFjdCAmJiB0cmF5QWN0aW9ucy5sZW5ndGggPT09IDBcIj5cclxuICAgIDxidXR0b24gI2Ryb3BEb3duQnV0dG9uIHR5cGU9XCJidXR0b25cIiBbYXR0ci5hcmlhLWxhYmVsXT1cIm1vcmVBY3Rpb25zRGlzcGxheVwiIHJvbGU9XCJtZW51aXRlbVwiXHJcbiAgICAgIGNsYXNzPVwic21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1sYXlvdXQtYWN0aW9uLWJhci1pdGVtLWhlaWdodCBzbWUtYnV0dG9uLWF1dG8td2lkdGggc21lLWRyb3Bkb3duLXRvZ2dsZVwiXHJcbiAgICAgIFtjbGFzcy5zbWUtdG9nZ2xlZF09XCJkcm9wRG93bi5pc09wZW5cIiBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImRyb3BEb3duLmlzT3BlblwiIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcclxuICAgICAgZGF0YS11dGEtaWQ9XCJhY3Rpb24tYmFyLW1vcmVcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1tb3JlXCIgW3RpdGxlXT1cIm1vcmVBY3Rpb25zRGlzcGxheVwiPjwvc3Bhbj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiPnt7IG1vcmVBY3Rpb25zRGlzcGxheSB9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG4gICAgPHNtZS1hY3Rpb24tbWVudSBbYWN0aW9uc109XCJ0cmF5QWN0aW9uc1wiIHJvbGU9XCJtZW51XCIgY2xhc3M9XCJzbWUtZHJvcGRvd24tY29udGVudFwiIFsodGFyZ2V0KV09XCJ0YXJnZXRcIlxyXG4gICAgICAoZXJyb3IpPVwiZXJyb3IuZW1pdCgkZXZlbnQpXCIgKGV4ZWN1dGVkKT1cImV4ZWN1dGVkLmVtaXQoJGV2ZW50KVwiPjwvc21lLWFjdGlvbi1tZW51PlxyXG4gIDwvc21lLWRyb3Bkb3duPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -52,7 +52,7 @@ function AlertBarComponent_div_1_label_14_div_1_a_1_Template(rf, ctx) { if (rf &
|
|
|
52
52
|
} if (rf & 2) {
|
|
53
53
|
const link_r13 = i0.ɵɵnextContext().$implicit;
|
|
54
54
|
i0.ɵɵadvance(1);
|
|
55
|
-
i0.ɵɵ
|
|
55
|
+
i0.ɵɵtextInterpolate(link_r13.displayText);
|
|
56
56
|
} }
|
|
57
57
|
function AlertBarComponent_div_1_label_14_div_1_div_2_a_1_Template(rf, ctx) { if (rf & 1) {
|
|
58
58
|
i0.ɵɵelementStart(0, "a", 27);
|
|
@@ -62,7 +62,7 @@ function AlertBarComponent_div_1_label_14_div_1_div_2_a_1_Template(rf, ctx) { if
|
|
|
62
62
|
const link_r13 = i0.ɵɵnextContext(2).$implicit;
|
|
63
63
|
i0.ɵɵproperty("href", link_r13.uri, i0.ɵɵsanitizeUrl);
|
|
64
64
|
i0.ɵɵadvance(1);
|
|
65
|
-
i0.ɵɵ
|
|
65
|
+
i0.ɵɵtextInterpolate(link_r13.displayText);
|
|
66
66
|
} }
|
|
67
67
|
function AlertBarComponent_div_1_label_14_div_1_div_2_a_2_Template(rf, ctx) { if (rf & 1) {
|
|
68
68
|
i0.ɵɵelementStart(0, "a", 28);
|
|
@@ -72,7 +72,7 @@ function AlertBarComponent_div_1_label_14_div_1_div_2_a_2_Template(rf, ctx) { if
|
|
|
72
72
|
const link_r13 = i0.ɵɵnextContext(2).$implicit;
|
|
73
73
|
i0.ɵɵproperty("routerLink", link_r13.uri);
|
|
74
74
|
i0.ɵɵadvance(1);
|
|
75
|
-
i0.ɵɵ
|
|
75
|
+
i0.ɵɵtextInterpolate(link_r13.displayText);
|
|
76
76
|
} }
|
|
77
77
|
function AlertBarComponent_div_1_label_14_div_1_div_2_Template(rf, ctx) { if (rf & 1) {
|
|
78
78
|
const _r25 = i0.ɵɵgetCurrentView();
|
|
@@ -327,7 +327,7 @@ export class AlertBarComponent extends CoreBaseComponent {
|
|
|
327
327
|
}
|
|
328
328
|
}
|
|
329
329
|
/** @nocollapse */ AlertBarComponent.ɵfac = function AlertBarComponent_Factory(t) { return new (t || AlertBarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.AlertBarService), i0.ɵɵdirectiveInject(i2.DialogService)); };
|
|
330
|
-
/** @nocollapse */ AlertBarComponent.ɵcmp = i0.ɵɵdefineComponent({ type: AlertBarComponent, selectors: [["sme-alert-bar"]], inputs: { id: "id" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [[1, "sme-layer-notification", "sme-layout-absolute", "sme-layout-notification-popup-list"], ["tabindex", "0", "class", "sme-layout-notification-popup sme-shadow-notification-popup sme-margin-right-sm sme-margin-top-sm sme-arrange-stack-h\n sme-background-color-alt-5 sme-border-color-alt-5 sme-padding-top-xs sme-padding-left-sm sme-padding-right-xs sme-padding-bottom-xs sme-behavior-hover-trigger", 3, "click", 4, "ngFor", "ngForOf"], ["tabindex", "0", 1, "sme-layout-notification-popup", "sme-shadow-notification-popup", "sme-margin-right-sm", "sme-margin-top-sm", "sme-arrange-stack-h", "sme-background-color-alt-5", "sme-border-color-alt-5", "sme-padding-top-xs", "sme-padding-left-sm", "sme-padding-right-xs", "sme-padding-bottom-xs", "sme-behavior-hover-trigger", 3, "click"], [1, "sme-arrange-stack-v"], ["size", "16px", 1, "sme-padding-right-xs", "sme-padding-top-xxxs", 3, "status", "title"], ["role", "button", "class", "sme-button-trigger sme-button-auto-width sme-position-flex-none sme-padding-inset-none sme-icon sme-padding-top-xxs sme-behavior-hover-target-show", 3, "ngClass", "title", "click", 4, "ngIf"], ["role", "alert", "id", "sme-alert-bar-content", 1, "sme-arrange-stack-v", "sme-arrange-overflow-hide-x", "sme-arrange-word-wrap-break-word", "sme-position-stretch-h"], [1, "sme-layout-notification-message"], [1, "sme-arrange-stack-h"], [1, "sme-screen-reader"], [1, "sme-font-family-bold", "sme-font-label", "sme-margin-inset-none", "sme-padding-top-xxxs", "sme-position-stretch-h", "sme-position-left-inline"], ["class", "sme-font-label", 4, "ngIf"], [4, "ngIf"], [1, "sme-arrange-stack-h", "sme-font-label", "sme-color-base-40"], [1, "sme-position-flex-auto", "sme-arrange-ellipsis"], [1, "sme-position-flex-none", "sme-margin-left-xxs"], ["
|
|
330
|
+
/** @nocollapse */ AlertBarComponent.ɵcmp = i0.ɵɵdefineComponent({ type: AlertBarComponent, selectors: [["sme-alert-bar"]], inputs: { id: "id" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 1, consts: [[1, "sme-layer-notification", "sme-layout-absolute", "sme-layout-notification-popup-list"], ["tabindex", "0", "class", "sme-layout-notification-popup sme-shadow-notification-popup sme-margin-right-sm sme-margin-top-sm sme-arrange-stack-h\n sme-background-color-alt-5 sme-border-color-alt-5 sme-padding-top-xs sme-padding-left-sm sme-padding-right-xs sme-padding-bottom-xs sme-behavior-hover-trigger", 3, "click", 4, "ngFor", "ngForOf"], ["tabindex", "0", 1, "sme-layout-notification-popup", "sme-shadow-notification-popup", "sme-margin-right-sm", "sme-margin-top-sm", "sme-arrange-stack-h", "sme-background-color-alt-5", "sme-border-color-alt-5", "sme-padding-top-xs", "sme-padding-left-sm", "sme-padding-right-xs", "sme-padding-bottom-xs", "sme-behavior-hover-trigger", 3, "click"], [1, "sme-arrange-stack-v"], ["size", "16px", 1, "sme-padding-right-xs", "sme-padding-top-xxxs", 3, "status", "title"], ["role", "button", "class", "sme-button-trigger sme-button-auto-width sme-position-flex-none sme-padding-inset-none sme-icon sme-padding-top-xxs sme-behavior-hover-target-show", 3, "ngClass", "title", "click", 4, "ngIf"], ["role", "alert", "id", "sme-alert-bar-content", 1, "sme-arrange-stack-v", "sme-arrange-overflow-hide-x", "sme-arrange-word-wrap-break-word", "sme-position-stretch-h"], [1, "sme-layout-notification-message"], [1, "sme-arrange-stack-h"], [1, "sme-screen-reader"], [1, "sme-font-family-bold", "sme-font-label", "sme-margin-inset-none", "sme-padding-top-xxxs", "sme-position-stretch-h", "sme-position-left-inline"], ["class", "sme-font-label", 4, "ngIf"], [4, "ngIf"], [1, "sme-arrange-stack-h", "sme-font-label", "sme-color-base-40"], [1, "sme-position-flex-auto", "sme-arrange-ellipsis"], [1, "sme-position-flex-none", "sme-margin-left-xxs"], ["aria-describedby", "sme-alert-bar-content", 1, "sme-button-trigger", "sme-button-auto-width", "sme-position-flex-none", "sme-padding-inset-none", "sme-padding-left-xxs", "sme-padding-right-xxs", 3, "click"], [1, "sme-icon", "sme-icon-cancel", 3, "title"], ["role", "button", 1, "sme-button-trigger", "sme-button-auto-width", "sme-position-flex-none", "sme-padding-inset-none", "sme-icon", "sme-padding-top-xxs", "sme-behavior-hover-target-show", 3, "ngClass", "title", "click"], [1, "sme-font-label"], [4, "ngFor", "ngForOf"], ["class", "sme-link", 3, "click", 4, "ngIf"], [3, "click", 4, "ngIf"], [1, "sme-link", 3, "click"], [3, "click"], ["class", "sme-link", "target", "_blank", 3, "href", 4, "ngIf"], ["class", "sme-link", 3, "routerLink", 4, "ngIf"], ["target", "_blank", 1, "sme-link", 3, "href"], [1, "sme-link", 3, "routerLink"]], template: function AlertBarComponent_Template(rf, ctx) { if (rf & 1) {
|
|
331
331
|
i0.ɵɵelementStart(0, "div", 0);
|
|
332
332
|
i0.ɵɵtemplate(1, AlertBarComponent_div_1_Template, 23, 13, "div", 1);
|
|
333
333
|
i0.ɵɵelementEnd();
|
|
@@ -350,4 +350,4 @@ __decorate([
|
|
|
350
350
|
}], function () { return [{ type: i0.Injector }, { type: i1.AlertBarService }, { type: i2.DialogService }]; }, { id: [{
|
|
351
351
|
type: Input
|
|
352
352
|
}], assignClamped: [] }); })();
|
|
353
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FsZXJ0LWJhci9hbGVydC1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYWxlcnQtYmFyL2FsZXJ0LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFFeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQW1CLGVBQWUsRUFBYSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7SUNHM0YsZ0NBR3lEO0lBSEcsZ1FBQW9DO0lBR3ZDLGlCQUFPOzs7O0lBRDlELCtGQUFpRyw4REFBQTs7O0lBYy9GLDZCQUFxRztJQUNuRyxZQUNGO0lBQUEsaUJBQUk7OztJQUYrRCw4Q0FBaUM7SUFDbEcsZUFDRjtJQURFLGlEQUNGOzs7SUFDQSw2QkFBb0c7SUFDbEcsWUFDRjtJQUFBLGlCQUFJOzs7SUFGOEQsOENBQWlDO0lBQ2pHLGVBQ0Y7SUFERSxpREFDRjs7OztJQUlJLDZCQUEyRjtJQUFwRCw2TkFBUyxnQkFBWSxpREFBOEI7SUFDeEYsWUFDRjtJQUFBLGlCQUFJOzs7SUFERixlQUNGO0lBREUscURBQ0Y7OztJQUVFLDZCQUFrRjtJQUNoRixZQUNGO0lBQUEsaUJBQUk7OztJ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QUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLFNBQVMsQ0FBQyxLQUFZO1FBQzFCLE9BQU8sS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUMzRixDQUFDOztxR0E3S1EsaUJBQWlCO3lFQUFqQixpQkFBaUI7UUNaOUIsOEJBQTJGO1FBRXpGLG9FQStETTtRQUNSLGlCQUFNOztRQWhFbUIsZUFBUztRQUFULG9DQUFTOztBRGtHOUI7SUFEQyxRQUFRLEVBQUU7Ozs7c0RBR1Y7dUZBMUZRLGlCQUFpQjtjQUo3QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFdBQVcsRUFBRSw0QkFBNEI7YUFDNUM7cUhBVVUsRUFBRTtrQkFEUixLQUFLO1lBZ0ZDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGVib3VuY2UgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2Jhc2UvZGVjb3JhdG9ycy9kZWJvdW5jZS5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENvcmVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbW9uL2Jhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGlhbG9nQ2hhbmdlRXZlbnQsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdGF0dXNJY29uVHlwZSB9IGZyb20gJy4uL2ljb24vbGF5ZXJlZC1pY29uL3N0YXR1cy9zdGF0dXMtaWNvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBbGVydCwgQWxlcnRCYXIsIEFsZXJ0QmFyU2VydmljZSwgQWxlcnRJbmZvLCBBbGVydFNldmVyaXR5IH0gZnJvbSAnLi9hbGVydC1iYXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnc21lLWFsZXJ0LWJhcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vYWxlcnQtYmFyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQWxlcnRCYXJDb21wb25lbnQgZXh0ZW5kcyBDb3JlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBbGVydEJhciB7XHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldCBsb2dTb3VyY2VOYW1lKCkge1xyXG4gICAgICAgIHJldHVybiAnQWxlcnRCYXJDb21wb25lbnQnO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaWQ6IHN0cmluZztcclxuICAgIHByaXZhdGUgZGlhbG9nU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgICAvLyBLZWVwIHRoZSBhcnJheSB0byBtYWludGFpbiB0aGUgb3JkZXIgb2YgQWxlcnRzIHJlY2VpdmVkLlxyXG4gICAgcHVibGljIGFsZXJ0czogQWxlcnRbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSB7QWxlcnRCYXJDb21wb25lbnR9IGNsYXNzLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhbGVydEJhclNlcnZpY2UgVGhlIGFsZXJ0IHNlcnZpY2UuXHJcbiAgICAgKiBAcGFyYW0gcm91dGVyIFRoZSByb3V0ZXIuXHJcbiAgICAgKiBAcGFyYW0gYWN0aXZhdGVkUm91dGUgVGhlIGFjdGl2YXRlZCByb3V0ZS5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIGFsZXJ0QmFyU2VydmljZTogQWxlcnRCYXJTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge1xyXG4gICAgICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbWV0aG9kIHRvIHJ1biB3aGVuIHRoZSBjb21wb25lbnQgaXMgaW5pdGlhbGl6ZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFsZXJ0cyA9IFtdO1xyXG4gICAgICAgIHRoaXMuYWxlcnRCYXJTZXJ2aWNlLnJlZ2lzdGVyKHRoaXMsIHRoaXMuaWQpO1xyXG5cclxuICAgICAgICB0aGlzLmRpYWxvZ1N1YnNjcmlwdGlvbnMucHVzaCh0aGlzLmRpYWxvZ1NlcnZpY2UuY2hhbmdlZC5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICAgICAgICAvLyBjbGVhciBhbGwgYWxlcnRzIGlmIHRoZSBub3RpZmljYXRpb24gZGlhbG9nIG9wZW5zXHJcbiAgICAgICAgICAgIGlmIChldmVudC5kaWFsb2dJZCA9PT0gdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbW1vbklkcy5ub3RpZmljYXRpb25zUGFuZSAmJiBldmVudC5jaGFuZ2VFdmVudCA9PT0gRGlhbG9nQ2hhbmdlRXZlbnQuU2hvdykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hbGVydHMgPSBbXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtZXRob2QgdG8gcnVuIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBkZXN0cm95ZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFsZXJ0QmFyU2VydmljZS51bnJlZ2lzdGVyKHRoaXMuaWQpO1xyXG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ1N1YnNjcmlwdGlvbnMpIHtcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTdWJzY3JpcHRpb25zLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPcGVuIGRldGFpbHMgdmlldyBpbiBub3RpZmljYXRpb24gcGFuZVxyXG4gICAgICogQHBhcmFtIGFsZXJ0IHRoZSBhbGVydCBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvcGVuTm90aWZpY2F0aW9uRGV0YWlscyhhbGVydDogQWxlcnQpIHtcclxuICAgICAgICB0aGlzLmRpYWxvZ1N1YnNjcmlwdGlvbnMucHVzaChcclxuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3codGhpcy5kaWFsb2dTZXJ2aWNlLmNvbW1vbklkcy5ub3RpZmljYXRpb25zUGFuZSwgeyBpZDogYWxlcnQuaWQgfSkuc3Vic2NyaWJlKClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogY2xpY2sgdGhlIG1lc3NhZ2UgZXhwYW5kIGJ1dHRvblxyXG4gICAgICogQHBhcmFtIGV2ZW50IHRoZSBldmVudFxyXG4gICAgICogQHBhcmFtIGFsZXJ0IHRoZSBhbGVydCBjbGlja2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjbGlja0V4cGFuZChldmVudDogRXZlbnQsIGFsZXJ0OiBBbGVydCkge1xyXG4gICAgICAgIGFsZXJ0LmlzRXhwYW5kZWQgPSAhYWxlcnQuaXNFeHBhbmRlZDtcclxuICAgICAgICB0aGlzLnN0b3BDbGlja1Byb3BhZ2F0aW9uKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIHN0b3AgcHJvcGFnYXRpb24gb24gdGhlIGV2ZW50XHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50IHRvIHN0b3BcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0b3BDbGlja1Byb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCkge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXNzaWducyBuZWVkc0NsYW1wIHByb3Blcmx5IHRvIGdpdmVuIGFsZXJ0XHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgdGhlIGFsZXJ0XHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgdGhlIGNsYW1wZWQgZXZlbnRcclxuICAgICAqL1xyXG4gICAgQERlYm91bmNlKClcclxuICAgIHB1YmxpYyBhc3NpZ25DbGFtcGVkKGFsZXJ0OiBBbGVydCwgZXZlbnQ6IGFueSkge1xyXG4gICAgICAgIGFsZXJ0Lm5lZWRzQ2xhbXAgPSBldmVudC5jbGFtcGVkO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgc3RhdHVzIHN0cmluZyBmb3IgdGhlIHN0YXR1cyBpY29uXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsZXJ0IFRoZSBhbGVydC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldFN0YXR1c1N0cmluZyhhbGVydDogQWxlcnQpOiBTdGF0dXNJY29uVHlwZSB7XHJcbiAgICAgICAgc3dpdGNoIChhbGVydC5zZXZlcml0eSkge1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuRXJyb3I6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuRXJyb3I7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5XYXJuaW5nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0ljb25UeXBlLldhcm5pbmc7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5TdWNjZXNzOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0ljb25UeXBlLlN1Y2Nlc3M7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5JblByb2dyZXNzOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0ljb25UeXBlLlByb2dyZXNzO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuSW5mb3JtYXRpb25hbDpcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNJY29uVHlwZS5JbmZvO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0SWNvblRpdGxlKGFsZXJ0OiBBbGVydCk6IHN0cmluZyB7XHJcbiAgICAgICAgc3dpdGNoIChhbGVydC5zZXZlcml0eSkge1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuRXJyb3I6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLkVycm9yO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuV2FybmluZzpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuV2FybmluZztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LlN1Y2Nlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLlN1Y2Nlc3M7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5JblByb2dyZXNzOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5JblByb2dyZXNzO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuSW5mb3JtYXRpb25hbDpcclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuSW5mb3JtYXRpb247XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvd3MgYW4gYWxlcnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsZXJ0IFRoZSBhbGVydCB0byBzaG93LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2hvdyhhbGVydDogQWxlcnQpOiB2b2lkIHtcclxuICAgICAgICAvLyBkb24ndCBzaG93IHBvcHVwIGlmIG5vdGlmaWNhdGlvbnMgYXJlIGFscmVhZHkgb3BlblxyXG4gICAgICAgIGlmICghTXNmdFNtZS5maW5kKHRoaXMuZGlhbG9nU2VydmljZS5hY3RpdmVEaWFsb2dzU3RhY2ssIGRpYWxvZyA9PiBkaWFsb2cuaWQgPT09IHRoaXMuZGlhbG9nU2VydmljZS5jb21tb25JZHMubm90aWZpY2F0aW9uc1BhbmUpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nQWxlcnQgPSB0aGlzLmFsZXJ0cy5maW5kKHggPT4geC5pZCA9PT0gYWxlcnQuaWQgfHwgdGhpcy5pbmRleE5hbWUoeCkgPT09IHRoaXMuaW5kZXhOYW1lKGFsZXJ0KSk7XHJcbiAgICAgICAgICAgIGlmIChleGlzdGluZ0FsZXJ0KSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXhpc3RpbmdBbGVydC5zZXRUaW1lb3V0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGV4aXN0aW5nQWxlcnQuc2V0VGltZW91dCk7XHJcbiAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmdBbGVydC5zZXRUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3MoZXhpc3RpbmdBbGVydCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmIChhbGVydC5zZXRUaW1lb3V0KSB7XHJcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoYWxlcnQuc2V0VGltZW91dCk7XHJcbiAgICAgICAgICAgICAgICBhbGVydC5zZXRUaW1lb3V0ID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5hbGVydHMudW5zaGlmdChhbGVydCk7XHJcbiAgICAgICAgICAgIGFsZXJ0LnNldFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHsgdGhpcy5kaXNtaXNzKGFsZXJ0KTsgfSwgNzAwMCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGlzbWlzc2VzIGFuIGFsZXJ0LlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhbGVydCBUaGUgYWxlcnQgdG8gZGlzbWlzcy5cclxuICAgICAqL1xyXG4gICAgcHVibGljIGRpc21pc3MoYWxlcnQ6IEFsZXJ0KTogdm9pZCB7XHJcbiAgICAgICAgTXNmdFNtZS5yZW1vdmUodGhpcy5hbGVydHMsIGFsZXJ0KTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSB0aGUgaW5kZXggbmFtZSBpbiBtYXAgY29sbGVjdGlvbi5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgdGhlIGFsZXJ0XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgaW5kZXhOYW1lKGFsZXJ0OiBBbGVydCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGFsZXJ0LnNldmVyaXR5ICsgJzonICsgYWxlcnQudGl0bGUgKyAnOicgKyBhbGVydC5tZXNzYWdlICsgJzonICsgYWxlcnQubm9kZU5hbWU7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInNtZS1sYXllci1ub3RpZmljYXRpb24gc21lLWxheW91dC1hYnNvbHV0ZSBzbWUtbGF5b3V0LW5vdGlmaWNhdGlvbi1wb3B1cC1saXN0XCI+XHJcblxyXG4gIDxkaXYgKm5nRm9yPVwibGV0IGFsZXJ0IG9mIGFsZXJ0c1wiIHRhYmluZGV4PVwiMFwiIChjbGljayk9XCJvcGVuTm90aWZpY2F0aW9uRGV0YWlscyhhbGVydClcIlxyXG4gICAgY2xhc3M9XCJzbWUtbGF5b3V0LW5vdGlmaWNhdGlvbi1wb3B1cCBzbWUtc2hhZG93LW5vdGlmaWNhdGlvbi1wb3B1cCBzbWUtbWFyZ2luLXJpZ2h0LXNtIHNtZS1tYXJnaW4tdG9wLXNtIHNtZS1hcnJhbmdlLXN0YWNrLWhcclxuICAgIHNtZS1iYWNrZ3JvdW5kLWNvbG9yLWFsdC01IHNtZS1ib3JkZXItY29sb3ItYWx0LTUgc21lLXBhZGRpbmctdG9wLXhzIHNtZS1wYWRkaW5nLWxlZnQtc20gc21lLXBhZGRpbmctcmlnaHQteHMgc21lLXBhZGRpbmctYm90dG9tLXhzIHNtZS1iZWhhdmlvci1ob3Zlci10cmlnZ2VyXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLXZcIj5cclxuICAgICAgPHNtZS1zdGF0dXMtaWNvbiBjbGFzcz1cInNtZS1wYWRkaW5nLXJpZ2h0LXhzIHNtZS1wYWRkaW5nLXRvcC14eHhzXCIgW3N0YXR1c109XCJnZXRTdGF0dXNTdHJpbmcoYWxlcnQpXCIgc2l6ZT1cIjE2cHhcIlxyXG4gICAgICAgIFt0aXRsZV09XCJnZXRJY29uVGl0bGUoYWxlcnQpXCI+PC9zbWUtc3RhdHVzLWljb24+XHJcbiAgICAgIDxzcGFuIHJvbGU9XCJidXR0b25cIiAqbmdJZj1cImFsZXJ0LnRpdGxlICYmIGFsZXJ0Lm5lZWRzQ2xhbXBcIiAoY2xpY2spPVwiY2xpY2tFeHBhbmQoJGV2ZW50LCBhbGVydClcIlxyXG4gICAgICAgIGNsYXNzPVwic21lLWJ1dHRvbi10cmlnZ2VyIHNtZS1idXR0b24tYXV0by13aWR0aCBzbWUtcG9zaXRpb24tZmxleC1ub25lIHNtZS1wYWRkaW5nLWluc2V0LW5vbmUgc21lLWljb24gc21lLXBhZGRpbmctdG9wLXh4cyBzbWUtYmVoYXZpb3ItaG92ZXItdGFyZ2V0LXNob3dcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cInsnc21lLWljb24tY2hldnJvbkRvd24nOmFsZXJ0LmlzRXhwYW5kZWQsICdzbWUtaWNvbi1jaGV2cm9uUmlnaHQnOiAhYWxlcnQuaXNFeHBhbmRlZH1cIlxyXG4gICAgICAgIFt0aXRsZV09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLkV4cGFuZFwiPjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgcm9sZT1cImFsZXJ0XCIgaWQ9XCJzbWUtYWxlcnQtYmFyLWNvbnRlbnRcIlxyXG4gICAgICBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLXYgc21lLWFycmFuZ2Utb3ZlcmZsb3ctaGlkZS14IHNtZS1hcnJhbmdlLXdvcmQtd3JhcC1icmVhay13b3JkIHNtZS1wb3NpdGlvbi1zdHJldGNoLWhcIj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzbWUtbGF5b3V0LW5vdGlmaWNhdGlvbi1tZXNzYWdlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInNtZS1hcnJhbmdlLXN0YWNrLWhcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwic21lLXNjcmVlbi1yZWFkZXJcIj57eyBnZXRJY29uVGl0bGUoYWxlcnQpIH19PC9wPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJzbWUtZm9udC1mYW1pbHktYm9sZCBzbWUtZm9udC1sYWJlbCBzbWUtbWFyZ2luLWluc2V0LW5vbmUgc21lLXBhZGRpbmctdG9wLXh4eHMgc21lLXBvc2l0aW9uLXN0cmV0Y2gtaCBzbWUtcG9zaXRpb24tbGVmdC1pbmxpbmVcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFsZXJ0LnRpdGxlIHx8IGFsZXJ0Lm1lc3NhZ2VcIj57eyBhbGVydC50aXRsZSB8fCBhbGVydC5tZXNzYWdlIH19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay12XCI+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImFsZXJ0LnRpdGxlICYmICFhbGVydC5pc0V4cGFuZGVkXCIgY2xhc3M9XCJzbWUtZm9udC1sYWJlbFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWxlcnQubWVzc2FnZVwiPlxyXG4gICAgICAgICAgICB7eyBhbGVydC5tZXNzYWdlIH19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImFsZXJ0LnRpdGxlICYmIGFsZXJ0LmlzRXhwYW5kZWRcIiBjbGFzcz1cInNtZS1mb250LWxhYmVsXCIgW2F0dHIuYXJpYS1sYWJlbF09XCJhbGVydC5tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgIHt7IGFsZXJ0Lm1lc3NhZ2UgfX1cclxuICAgICAgICAgIDwvcD5cclxuXHJcbiAgICAgICAgICA8bGFiZWwgKm5nSWY9XCJhbGVydC5saW5rc1wiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBsaW5rIG9mIGFsZXJ0LmxpbmtzXCI+XHJcbiAgICAgICAgICAgICAgPGEgKm5nSWY9XCJsaW5rLmV2ZW50XCIgY2xhc3M9XCJzbWUtbGlua1wiIChjbGljayk9XCJsaW5rLmV2ZW50KCk7c3RvcENsaWNrUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbGluay5kaXNwbGF5VGV4dCB9fVxyXG4gICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxpbmsuZXZlbnQgJiYgbGluay51cmlcIiAoY2xpY2spPVwic3RvcENsaWNrUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJsaW5rLmlzRXh0ZXJuYWxMaW5rXCIgY2xhc3M9XCJzbWUtbGlua1wiIFtocmVmXT1cImxpbmsudXJpXCIgdGFyZ2V0PVwiX2JsYW5rXCI+XHJcbiAgICAgICAgICAgICAgICAgIHt7IGxpbmsuZGlzcGxheVRleHQgfX1cclxuICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIWxpbmsuaXNFeHRlcm5hbExpbmtcIiBjbGFzcz1cInNtZS1saW5rXCIgW3JvdXRlckxpbmtdPVwibGluay51cmlcIj5cclxuICAgICAgICAgICAgICAgICAge3sgbGluay5kaXNwbGF5VGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staCBzbWUtZm9udC1sYWJlbCBzbWUtY29sb3ItYmFzZS00MFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1hcnJhbmdlLWVsbGlwc2lzXCI+e3sgYWxlcnQubm9kZU5hbWUgfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtbWFyZ2luLWxlZnQteHhzXCI+IHt7IGFsZXJ0LnRpbWVzdGFtcCB9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdlwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWJ1dHRvbi1hdXRvLXdpZHRoIHNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLXBhZGRpbmctaW5zZXQtbm9uZSBzbWUtcGFkZGluZy1sZWZ0LXh4cyBzbWUtcGFkZGluZy1yaWdodC14eHNcIlxyXG4gICAgICAgIChjbGljayk9XCJkaXNtaXNzKGFsZXJ0KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5EaXNtaXNzQXJpYUxhYmVsXCJcclxuICAgICAgICBkYXRhLXV0YS1pZD1cImNhbmNlbC1hbGVydFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJzbWUtYWxlcnQtYmFyLWNvbnRlbnRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInNtZS1pY29uIHNtZS1pY29uLWNhbmNlbFwiIFt0aXRsZV09XCJzdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLkRpc21pc3NcIj48L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
353
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQtYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2FuZ3VsYXIvc3JjL2NvbnRyb2xzL2FsZXJ0LWJhci9hbGVydC1iYXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vYW5ndWxhci9zcmMvY29udHJvbHMvYWxlcnQtYmFyL2FsZXJ0LWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEVBQThFLENBQUM7QUFFeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRixPQUFPLEVBQW1CLGVBQWUsRUFBYSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7SUNHM0YsZ0NBR3lEO0lBSEcsZ1FBQW9DO0lBR3ZDLGlCQUFPOzs7O0lBRDlELCtGQUFpRyw4REFBQTs7O0lBYy9GLDZCQUFxRztJQUNuRyxZQUNGO0lBQUEsaUJBQUk7OztJQUYrRCw4Q0FBaUM7SUFDbEcsZUFDRjtJQURFLGlEQUNGOzs7SUFDQSw2QkFBb0c7SUFDbEcsWUFDRjtJQUFBLGlCQUFJOzs7SUFGOEQsOENBQWlDO0lBQ2pHLGVBQ0Y7SUFERSxpREFDRjs7OztJQUlJLDZCQUNzRDtJQUFwRCw2TkFBUyxnQkFBWSxpREFBOEI7SUFBQyxZQUFzQjtJQUFBLGlCQUFJOzs7SUFBMUIsZUFBc0I7SUFBdEIsMENBQXNCOzs7SUFFMUUsNkJBQWtGO0lBQUEsWUFBc0I7SUFBQSxpQkFB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LE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssU0FBUyxDQUFDLEtBQVk7UUFDMUIsT0FBTyxLQUFLLENBQUMsUUFBUSxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQzNGLENBQUM7O3FHQTdLUSxpQkFBaUI7eUVBQWpCLGlCQUFpQjtRQ1o5Qiw4QkFBMkY7UUFFekYsb0VBMERNO1FBQ1IsaUJBQU07O1FBM0RtQixlQUFTO1FBQVQsb0NBQVM7O0FEa0c5QjtJQURDLFFBQVEsRUFBRTs7OztzREFHVjt1RkExRlEsaUJBQWlCO2NBSjdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsV0FBVyxFQUFFLDRCQUE0QjthQUM1QztxSEFVVSxFQUFFO2tCQURSLEtBQUs7WUFnRkMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvYmFzZS9kZWNvcmF0b3JzL2RlYm91bmNlLmRlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29yZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9jb21tb24vYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dDaGFuZ2VFdmVudCwgRGlhbG9nU2VydmljZSB9IGZyb20gJy4uL2RpYWxvZy9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7IFN0YXR1c0ljb25UeXBlIH0gZnJvbSAnLi4vaWNvbi9sYXllcmVkLWljb24vc3RhdHVzL3N0YXR1cy1pY29uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFsZXJ0LCBBbGVydEJhciwgQWxlcnRCYXJTZXJ2aWNlLCBBbGVydEluZm8sIEFsZXJ0U2V2ZXJpdHkgfSBmcm9tICcuL2FsZXJ0LWJhci5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdzbWUtYWxlcnQtYmFyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9hbGVydC1iYXIuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBbGVydEJhckNvbXBvbmVudCBleHRlbmRzIENvcmVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFsZXJ0QmFyIHtcclxuICAgIC8qKlxyXG4gICAgICogVGhlIHNvdXJjZSBuYW1lIHRvIHVzZSBmb3IgbG9nZ2luZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGxvZ1NvdXJjZU5hbWUoKSB7XHJcbiAgICAgICAgcmV0dXJuICdBbGVydEJhckNvbXBvbmVudCc7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpZDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBkaWFsb2dTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIC8vIEtlZXAgdGhlIGFycmF5IHRvIG1haW50YWluIHRoZSBvcmRlciBvZiBBbGVydHMgcmVjZWl2ZWQuXHJcbiAgICBwdWJsaWMgYWxlcnRzOiBBbGVydFtdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIHtBbGVydEJhckNvbXBvbmVudH0gY2xhc3MuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsZXJ0QmFyU2VydmljZSBUaGUgYWxlcnQgc2VydmljZS5cclxuICAgICAqIEBwYXJhbSByb3V0ZXIgVGhlIHJvdXRlci5cclxuICAgICAqIEBwYXJhbSBhY3RpdmF0ZWRSb3V0ZSBUaGUgYWN0aXZhdGVkIHJvdXRlLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXHJcbiAgICAgICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgYWxlcnRCYXJTZXJ2aWNlOiBBbGVydEJhclNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7XHJcbiAgICAgICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBtZXRob2QgdG8gcnVuIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBpbml0aWFsaXplZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWxlcnRzID0gW107XHJcbiAgICAgICAgdGhpcy5hbGVydEJhclNlcnZpY2UucmVnaXN0ZXIodGhpcywgdGhpcy5pZCk7XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMuZGlhbG9nU2VydmljZS5jaGFuZ2VkLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgICAgICAgIC8vIGNsZWFyIGFsbCBhbGVydHMgaWYgdGhlIG5vdGlmaWNhdGlvbiBkaWFsb2cgb3BlbnNcclxuICAgICAgICAgICAgaWYgKGV2ZW50LmRpYWxvZ0lkID09PSB0aGlzLmRpYWxvZ1NlcnZpY2UuY29tbW9uSWRzLm5vdGlmaWNhdGlvbnNQYW5lICYmIGV2ZW50LmNoYW5nZUV2ZW50ID09PSBEaWFsb2dDaGFuZ2VFdmVudC5TaG93KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmFsZXJ0cyA9IFtdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIG1ldGhvZCB0byBydW4gd2hlbiB0aGUgY29tcG9uZW50IGlzIGRlc3Ryb3llZC5cclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYWxlcnRCYXJTZXJ2aWNlLnVucmVnaXN0ZXIodGhpcy5pZCk7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9ucykge1xyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1N1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9wZW4gZGV0YWlscyB2aWV3IGluIG5vdGlmaWNhdGlvbiBwYW5lXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgdGhlIGFsZXJ0IGNsaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG9wZW5Ob3RpZmljYXRpb25EZXRhaWxzKGFsZXJ0OiBBbGVydCkge1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9ucy5wdXNoKFxyXG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvdyh0aGlzLmRpYWxvZ1NlcnZpY2UuY29tbW9uSWRzLm5vdGlmaWNhdGlvbnNQYW5lLCB7IGlkOiBhbGVydC5pZCB9KS5zdWJzY3JpYmUoKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBjbGljayB0aGUgbWVzc2FnZSBleHBhbmQgYnV0dG9uXHJcbiAgICAgKiBAcGFyYW0gZXZlbnQgdGhlIGV2ZW50XHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgdGhlIGFsZXJ0IGNsaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNsaWNrRXhwYW5kKGV2ZW50OiBFdmVudCwgYWxlcnQ6IEFsZXJ0KSB7XHJcbiAgICAgICAgYWxlcnQuaXNFeHBhbmRlZCA9ICFhbGVydC5pc0V4cGFuZGVkO1xyXG4gICAgICAgIHRoaXMuc3RvcENsaWNrUHJvcGFnYXRpb24oZXZlbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogc3RvcCBwcm9wYWdhdGlvbiBvbiB0aGUgZXZlbnRcclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgZXZlbnQgdG8gc3RvcFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RvcENsaWNrUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBc3NpZ25zIG5lZWRzQ2xhbXAgcHJvcGVybHkgdG8gZ2l2ZW4gYWxlcnRcclxuICAgICAqIEBwYXJhbSBhbGVydCB0aGUgYWxlcnRcclxuICAgICAqIEBwYXJhbSBldmVudCB0aGUgY2xhbXBlZCBldmVudFxyXG4gICAgICovXHJcbiAgICBARGVib3VuY2UoKVxyXG4gICAgcHVibGljIGFzc2lnbkNsYW1wZWQoYWxlcnQ6IEFsZXJ0LCBldmVudDogYW55KSB7XHJcbiAgICAgICAgYWxlcnQubmVlZHNDbGFtcCA9IGV2ZW50LmNsYW1wZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSBzdGF0dXMgc3RyaW5nIGZvciB0aGUgc3RhdHVzIGljb25cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgVGhlIGFsZXJ0LlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0U3RhdHVzU3RyaW5nKGFsZXJ0OiBBbGVydCk6IFN0YXR1c0ljb25UeXBlIHtcclxuICAgICAgICBzd2l0Y2ggKGFsZXJ0LnNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5FcnJvcjpcclxuICAgICAgICAgICAgICAgIHJldHVybiBTdGF0dXNJY29uVHlwZS5FcnJvcjtcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5Lldhcm5pbmc6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuV2FybmluZztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LlN1Y2Nlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuU3VjY2VzcztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkluUHJvZ3Jlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3RhdHVzSWNvblR5cGUuUHJvZ3Jlc3M7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5JbmZvcm1hdGlvbmFsOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIFN0YXR1c0ljb25UeXBlLkluZm87XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRJY29uVGl0bGUoYWxlcnQ6IEFsZXJ0KTogc3RyaW5nIHtcclxuICAgICAgICBzd2l0Y2ggKGFsZXJ0LnNldmVyaXR5KSB7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5FcnJvcjpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuRXJyb3I7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5XYXJuaW5nOlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5XYXJuaW5nO1xyXG4gICAgICAgICAgICBjYXNlIEFsZXJ0U2V2ZXJpdHkuU3VjY2VzczpcclxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuU3VjY2VzcztcclxuICAgICAgICAgICAgY2FzZSBBbGVydFNldmVyaXR5LkluUHJvZ3Jlc3M6XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdHJpbmdzLk1zZnRTbWVTaGVsbC5Bbmd1bGFyLkFsZXJ0QmFyLkluUHJvZ3Jlc3M7XHJcbiAgICAgICAgICAgIGNhc2UgQWxlcnRTZXZlcml0eS5JbmZvcm1hdGlvbmFsOlxyXG4gICAgICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5JbmZvcm1hdGlvbjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG93cyBhbiBhbGVydC5cclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gYWxlcnQgVGhlIGFsZXJ0IHRvIHNob3cuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzaG93KGFsZXJ0OiBBbGVydCk6IHZvaWQge1xyXG4gICAgICAgIC8vIGRvbid0IHNob3cgcG9wdXAgaWYgbm90aWZpY2F0aW9ucyBhcmUgYWxyZWFkeSBvcGVuXHJcbiAgICAgICAgaWYgKCFNc2Z0U21lLmZpbmQodGhpcy5kaWFsb2dTZXJ2aWNlLmFjdGl2ZURpYWxvZ3NTdGFjaywgZGlhbG9nID0+IGRpYWxvZy5pZCA9PT0gdGhpcy5kaWFsb2dTZXJ2aWNlLmNvbW1vbklkcy5ub3RpZmljYXRpb25zUGFuZSkpIHtcclxuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdBbGVydCA9IHRoaXMuYWxlcnRzLmZpbmQoeCA9PiB4LmlkID09PSBhbGVydC5pZCB8fCB0aGlzLmluZGV4TmFtZSh4KSA9PT0gdGhpcy5pbmRleE5hbWUoYWxlcnQpKTtcclxuICAgICAgICAgICAgaWYgKGV4aXN0aW5nQWxlcnQpIHtcclxuICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0FsZXJ0LnNldFRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoZXhpc3RpbmdBbGVydC5zZXRUaW1lb3V0KTtcclxuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ0FsZXJ0LnNldFRpbWVvdXQgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzbWlzcyhleGlzdGluZ0FsZXJ0KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKGFsZXJ0LnNldFRpbWVvdXQpIHtcclxuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dChhbGVydC5zZXRUaW1lb3V0KTtcclxuICAgICAgICAgICAgICAgIGFsZXJ0LnNldFRpbWVvdXQgPSBudWxsO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmFsZXJ0cy51bnNoaWZ0KGFsZXJ0KTtcclxuICAgICAgICAgICAgYWxlcnQuc2V0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmRpc21pc3MoYWxlcnQpOyB9LCA3MDAwKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNtaXNzZXMgYW4gYWxlcnQuXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGFsZXJ0IFRoZSBhbGVydCB0byBkaXNtaXNzLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZGlzbWlzcyhhbGVydDogQWxlcnQpOiB2b2lkIHtcclxuICAgICAgICBNc2Z0U21lLnJlbW92ZSh0aGlzLmFsZXJ0cywgYWxlcnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlIHRoZSBpbmRleCBuYW1lIGluIG1hcCBjb2xsZWN0aW9uLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBhbGVydCB0aGUgYWxlcnRcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBpbmRleE5hbWUoYWxlcnQ6IEFsZXJ0KTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYWxlcnQuc2V2ZXJpdHkgKyAnOicgKyBhbGVydC50aXRsZSArICc6JyArIGFsZXJ0Lm1lc3NhZ2UgKyAnOicgKyBhbGVydC5ub2RlTmFtZTtcclxuICAgIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwic21lLWxheWVyLW5vdGlmaWNhdGlvbiBzbWUtbGF5b3V0LWFic29sdXRlIHNtZS1sYXlvdXQtbm90aWZpY2F0aW9uLXBvcHVwLWxpc3RcIj5cclxuXHJcbiAgPGRpdiAqbmdGb3I9XCJsZXQgYWxlcnQgb2YgYWxlcnRzXCIgdGFiaW5kZXg9XCIwXCIgKGNsaWNrKT1cIm9wZW5Ob3RpZmljYXRpb25EZXRhaWxzKGFsZXJ0KVwiXHJcbiAgICBjbGFzcz1cInNtZS1sYXlvdXQtbm90aWZpY2F0aW9uLXBvcHVwIHNtZS1zaGFkb3ctbm90aWZpY2F0aW9uLXBvcHVwIHNtZS1tYXJnaW4tcmlnaHQtc20gc21lLW1hcmdpbi10b3Atc20gc21lLWFycmFuZ2Utc3RhY2staFxyXG4gICAgc21lLWJhY2tncm91bmQtY29sb3ItYWx0LTUgc21lLWJvcmRlci1jb2xvci1hbHQtNSBzbWUtcGFkZGluZy10b3AteHMgc21lLXBhZGRpbmctbGVmdC1zbSBzbWUtcGFkZGluZy1yaWdodC14cyBzbWUtcGFkZGluZy1ib3R0b20teHMgc21lLWJlaGF2aW9yLWhvdmVyLXRyaWdnZXJcIj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdlwiPlxyXG4gICAgICA8c21lLXN0YXR1cy1pY29uIGNsYXNzPVwic21lLXBhZGRpbmctcmlnaHQteHMgc21lLXBhZGRpbmctdG9wLXh4eHNcIiBbc3RhdHVzXT1cImdldFN0YXR1c1N0cmluZyhhbGVydClcIiBzaXplPVwiMTZweFwiXHJcbiAgICAgICAgW3RpdGxlXT1cImdldEljb25UaXRsZShhbGVydClcIj48L3NtZS1zdGF0dXMtaWNvbj5cclxuICAgICAgPHNwYW4gcm9sZT1cImJ1dHRvblwiICpuZ0lmPVwiYWxlcnQudGl0bGUgJiYgYWxlcnQubmVlZHNDbGFtcFwiIChjbGljayk9XCJjbGlja0V4cGFuZCgkZXZlbnQsIGFsZXJ0KVwiXHJcbiAgICAgICAgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWJ1dHRvbi1hdXRvLXdpZHRoIHNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLXBhZGRpbmctaW5zZXQtbm9uZSBzbWUtaWNvbiBzbWUtcGFkZGluZy10b3AteHhzIHNtZS1iZWhhdmlvci1ob3Zlci10YXJnZXQtc2hvd1wiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwieydzbWUtaWNvbi1jaGV2cm9uRG93bic6YWxlcnQuaXNFeHBhbmRlZCwgJ3NtZS1pY29uLWNoZXZyb25SaWdodCc6ICFhbGVydC5pc0V4cGFuZGVkfVwiXHJcbiAgICAgICAgW3RpdGxlXT1cInN0cmluZ3MuTXNmdFNtZVNoZWxsLkFuZ3VsYXIuQWxlcnRCYXIuRXhwYW5kXCI+PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiByb2xlPVwiYWxlcnRcIiBpZD1cInNtZS1hbGVydC1iYXItY29udGVudFwiXHJcbiAgICAgIGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdiBzbWUtYXJyYW5nZS1vdmVyZmxvdy1oaWRlLXggc21lLWFycmFuZ2Utd29yZC13cmFwLWJyZWFrLXdvcmQgc21lLXBvc2l0aW9uLXN0cmV0Y2gtaFwiPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cInNtZS1sYXlvdXQtbm90aWZpY2F0aW9uLW1lc3NhZ2VcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staFwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJzbWUtc2NyZWVuLXJlYWRlclwiPnt7IGdldEljb25UaXRsZShhbGVydCkgfX08L3A+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cInNtZS1mb250LWZhbWlseS1ib2xkIHNtZS1mb250LWxhYmVsIHNtZS1tYXJnaW4taW5zZXQtbm9uZSBzbWUtcGFkZGluZy10b3AteHh4cyBzbWUtcG9zaXRpb24tc3RyZXRjaC1oIHNtZS1wb3NpdGlvbi1sZWZ0LWlubGluZVwiXHJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFsZXJ0LnRpdGxlIHx8IGFsZXJ0Lm1lc3NhZ2VcIj57eyBhbGVydC50aXRsZSB8fCBhbGVydC5tZXNzYWdlIH19PC9wPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtYXJyYW5nZS1zdGFjay12XCI+XHJcbiAgICAgICAgICA8cCAqbmdJZj1cImFsZXJ0LnRpdGxlICYmICFhbGVydC5pc0V4cGFuZGVkXCIgY2xhc3M9XCJzbWUtZm9udC1sYWJlbFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWxlcnQubWVzc2FnZVwiPlxyXG4gICAgICAgICAgICB7eyBhbGVydC5tZXNzYWdlIH19IFxyXG4gICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgPHAgKm5nSWY9XCJhbGVydC50aXRsZSAmJiBhbGVydC5pc0V4cGFuZGVkXCIgY2xhc3M9XCJzbWUtZm9udC1sYWJlbFwiIFthdHRyLmFyaWEtbGFiZWxdPVwiYWxlcnQubWVzc2FnZVwiPlxyXG4gICAgICAgICAgICB7eyBhbGVydC5tZXNzYWdlIH19XHJcbiAgICAgICAgICA8L3A+XHJcblxyXG4gICAgICAgICAgPGxhYmVsICpuZ0lmPVwiYWxlcnQubGlua3NcIj5cclxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGluayBvZiBhbGVydC5saW5rc1wiPlxyXG4gICAgICAgICAgICAgIDxhICpuZ0lmPVwibGluay5ldmVudFwiIGNsYXNzPVwic21lLWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImxpbmsuZXZlbnQoKTtzdG9wQ2xpY2tQcm9wYWdhdGlvbigkZXZlbnQpXCI+e3sgbGluay5kaXNwbGF5VGV4dCB9fTwvYT5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIWxpbmsuZXZlbnQgJiYgbGluay51cmlcIiAoY2xpY2spPVwic3RvcENsaWNrUHJvcGFnYXRpb24oJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPGEgKm5nSWY9XCJsaW5rLmlzRXh0ZXJuYWxMaW5rXCIgY2xhc3M9XCJzbWUtbGlua1wiIFtocmVmXT1cImxpbmsudXJpXCIgdGFyZ2V0PVwiX2JsYW5rXCI+e3sgbGluay5kaXNwbGF5VGV4dCB9fTwvYT5cclxuICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIWxpbmsuaXNFeHRlcm5hbExpbmtcIiBjbGFzcz1cInNtZS1saW5rXCIgW3JvdXRlckxpbmtdPVwibGluay51cmlcIj57eyBsaW5rLmRpc3BsYXlUZXh0IH19PC9hPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2staCBzbWUtZm9udC1sYWJlbCBzbWUtY29sb3ItYmFzZS00MFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbWUtcG9zaXRpb24tZmxleC1hdXRvIHNtZS1hcnJhbmdlLWVsbGlwc2lzXCI+e3sgYWxlcnQubm9kZU5hbWUgfX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic21lLXBvc2l0aW9uLWZsZXgtbm9uZSBzbWUtbWFyZ2luLWxlZnQteHhzXCI+IHt7IGFsZXJ0LnRpbWVzdGFtcCB9fTwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic21lLWFycmFuZ2Utc3RhY2stdlwiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgY2xhc3M9XCJzbWUtYnV0dG9uLXRyaWdnZXIgc21lLWJ1dHRvbi1hdXRvLXdpZHRoIHNtZS1wb3NpdGlvbi1mbGV4LW5vbmUgc21lLXBhZGRpbmctaW5zZXQtbm9uZSBzbWUtcGFkZGluZy1sZWZ0LXh4cyBzbWUtcGFkZGluZy1yaWdodC14eHNcIlxyXG4gICAgICAgIChjbGljayk9XCJkaXNtaXNzKGFsZXJ0KVwiIFthdHRyLmFyaWEtbGFiZWxdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5EaXNtaXNzQXJpYUxhYmVsXCJcclxuICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwic21lLWFsZXJ0LWJhci1jb250ZW50XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzbWUtaWNvbiBzbWUtaWNvbi1jYW5jZWxcIiBbdGl0bGVdPVwic3RyaW5ncy5Nc2Z0U21lU2hlbGwuQW5ndWxhci5BbGVydEJhci5EaXNtaXNzXCI+PC9zcGFuPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -57,13 +57,6 @@ export class BaseComponent extends NgLifecycleBaseComponent {
|
|
|
57
57
|
getInitialHostClasses() {
|
|
58
58
|
return [];
|
|
59
59
|
}
|
|
60
|
-
/**
|
|
61
|
-
* Shortcut to get an attribute on the host element
|
|
62
|
-
* @param name The name of the attribute
|
|
63
|
-
*/
|
|
64
|
-
getAttribute(name) {
|
|
65
|
-
return this.hostElement.nativeElement.getAttribute(name);
|
|
66
|
-
}
|
|
67
60
|
/**
|
|
68
61
|
* Shortcut to set an attribute on the host element
|
|
69
62
|
* @param name The name of the attribute
|
|
@@ -160,4 +153,4 @@ __decorate([
|
|
|
160
153
|
*/
|
|
161
154
|
export class CoreBaseComponent extends BaseComponent {
|
|
162
155
|
}
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9jb21tb24vYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN2RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUV6RTs7O0dBR0c7QUFFSCxtREFBbUQ7QUFDbkQsTUFBTSxPQUFnQixhQUFnQyxTQUFRLHdCQUF3QjtJQStDbEY7OztPQUdHO0lBQ0gsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEIsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQXFCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBRWxFLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV4QiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLGFBQWEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO1FBRUgsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSSxXQUFXO1FBQ2QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN4QyxJQUFJLFlBQVksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUM5QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7O09BR0c7SUFDTyxXQUFXO1FBQ2pCLE9BQU8sRUFBRSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNPLHFCQUFxQjtRQUMzQixPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFRDs7O09BR0c7SUFDTyxZQUFZLENBQUMsSUFBWTtRQUMvQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLFlBQVksQ0FBQyxJQUFZLEVBQUUsS0FBYTtRQUM5QyxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGVBQWUsQ0FBQyxJQUFZO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFRDs7O09BR0c7SUFDTyxRQUFRLENBQUMsU0FBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFdBQVcsQ0FBQyxTQUFpQjtRQUNuQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNPLFFBQVEsQ0FBQyxLQUFhLEVBQUUsS0FBVTtRQUN4QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVEOzs7T0FHRztJQUNPLFdBQVcsQ0FBQyxLQUFhO1FBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ08sR0FBRyxDQUFDLE9BQWUsRUFBRSxRQUFrQixRQUFRLENBQUMsS0FBSyxFQUFFLE1BQVksRUFBRSxTQUFpQixJQUFJLENBQUMsYUFBYTtRQUM5RyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDZixLQUFLLEVBQUUsS0FBSztZQUNaLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLE1BQU0sRUFBRSxNQUFNO1NBQ2pCLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSyx1QkFBdUI7UUFDM0IsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3JFLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxxQkFBcUIsRUFBRTthQUN2QixNQUFNLENBQUMsYUFBYSxDQUFDO2FBQ3JCLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzs7QUF0TEQ7OztHQUdHO0FBQ1ksNkJBQWUsR0FBRyxDQUFDLENBQUM7NkZBTmpCLGFBQWE7cUVBQWIsYUFBYTtBQXVDL0I7SUFEQyxTQUFTLENBQUMsU0FBUyxDQUFDOzhCQUNELFNBQVM7K0NBQUM7QUFNOUI7SUFEQyxTQUFTLENBQUMsVUFBVSxDQUFDOzhCQUNDLFVBQVU7a0RBQUM7dUZBN0NoQixhQUFhO2NBRmxDLFNBQVM7MkRBeUNJLFFBQVEsTUFNUixXQUFXO0FBOEl6Qjs7O0dBR0c7QUFDSCxNQUFNLE9BQWdCLGlCQUFrQixTQUFRLGFBQXNCO0NBRXJFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3RvciwgT25EZXN0cm95LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZy1sZXZlbCc7XHJcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RpYWdub3N0aWNzL2xvZ2dpbmcnO1xyXG5pbXBvcnQgeyBEb20gfSBmcm9tICdAbWljcm9zb2Z0L3dpbmRvd3MtYWRtaW4tY2VudGVyLXNkay9jb3JlL2RvbS9kb20nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RyaW5ncyB9IGZyb20gJy4uLy4uL2dlbmVyYXRlZC9zdHJpbmdzJztcclxuaW1wb3J0IHsgU21lSW5qZWN0IH0gZnJvbSAnLi9kZWNvcmF0b3JzL2luamVjdGlvbi5kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgTmdMaWZlY3ljbGVCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9uZy1saWZlY3ljbGUtYmFzZS5jb21wb25lbnQnO1xyXG5cclxuLyoqXHJcbiAqIEEgYmFzZSBjbGFzcyBmb3IgYWxsIGNvbXBvbmVudHMuXHJcbiAqIC0gVFJlc291cmNlU3RyaW5ncyBUaGUgdHlwZWQgaW50ZXJmYWNlIGZvciByZXNvdXJjZSBzdHJpbmdzLlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTogZGlyZWN0aXZlLWNsYXNzLXN1ZmZpeFxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudDxUUmVzb3VyY2VTdHJpbmdzPiBleHRlbmRzIE5nTGlmZWN5Y2xlQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdGF0aWMgY29uc3RhbnQgdG8gcHJvdmlkZSB1bmlxdWUgaWRzIGZvciBlYWNoIGNvbXBvbmVudFxyXG4gICAgICogQHNlZSB7Y29tcG9uZW50SWR9XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIG5leHRDb21wb25lbnRJZCA9IDA7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc291cmNlIG5hbWUgdG8gdXNlIGZvciBsb2dnaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBsb2dTb3VyY2VOYW1lOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgbG9jYWxpemVkIHN0cmluZ3MgZm9yIHRoZSBjdXJyZW50IHByb2plY3RcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0cmluZ3M6IFRSZXNvdXJjZVN0cmluZ3M7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBIGJhZyBvZiBpZHMgZ2VuZXJhdGVkIHVzaW5nIEBzZWUge2NvbXBvbmVudElkfSBhbmQgdGhlIG1hcCByZXR1cm5lZCBmcm9tIEBzZWUge2NyZWF0ZUlkQmFnfVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgaWRCYWc6IE1zZnRTbWUuU3RyaW5nTWFwPHN0cmluZz47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgdW5pcXVlIGlkIG9mIHRoaXMgY29tcG9uZW50LlxyXG4gICAgICogVGhpcyBpcyB1c2VmdWwgd2hlbiBjb250cm9scyBuZWVkIHRvIHVzZSBhbiBJRCAoc3VjaCBhcyBpbiBmb3JtcykgYnV0IG1heSBhcHBlYXIgbXVsdGlwbGUgdGltZXMgb24gdGhlIHNhbWUgcGFnZS5cclxuICAgICAqIFVzaW5nIHRoaXMgSUQgYXMgdGhlIGJhc2lzIGZvciB0aGUgY29udHJvbHMgaW50ZXJuYWwgSURzIGdlbmVyYXRlZCBpbiBAc2VlIHtjcmVhdGVJZEJhZ30ga2VlcHMgdGhlIElEcyB1bmlxdWUuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBjb21wb25lbnRJZDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29udGFpbmVyIGZvciBhY3RpdmUgc3Vic2NyaXB0aW9ucyB0aGF0IHNob3VsZCBiZSBjbGVhbmVkIHVwIGluIHRoZSBPbkRlc3Ryb3kgY2FsbC5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGFuZ3VsYXIgcmVuZGVyZXIgc2VydmljZVxyXG4gICAgICovXHJcbiAgICBAU21lSW5qZWN0KFJlbmRlcmVyMilcclxuICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGVsZW1lbnQgcmVmZXJlbmNlIGZvciB0aGlzIGNvbXBvbmVudFxyXG4gICAgICovXHJcbiAgICBAU21lSW5qZWN0KEVsZW1lbnRSZWYpXHJcbiAgICBwcm90ZWN0ZWQgaG9zdEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbml0aWFsaXplcyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUge0Jhc2VDb21wb25lbnR9IGNsYXNzLlxyXG4gICAgICogQHBhcmFtIGluamVjdG9yIFRoZSBhbmd1bGFyIGluamVjdGlvbiBzZXJ2aWNlLiByZXF1aXJlZCBieSBAU21lSW5qZWN0YWJsZSgpIGRlY29yYXRvclxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICAgICAgICBzdXBlcihpbmplY3Rvcik7XHJcbiAgICAgICAgLy8gbG9hZCB0aGUgc3RyaW5ncyBmb3IgdGhlIGFwcGxpY2F0aW9uXHJcbiAgICAgICAgdGhpcy5zdHJpbmdzID0gPFRSZXNvdXJjZVN0cmluZ3M+TXNmdFNtZS5zZWxmKCkuUmVzb3VyY2VzLnN0cmluZ3M7XHJcblxyXG4gICAgICAgIC8vIGluaXRpYWxpemUgc3Vic2NyaXB0aW9ucyB0byBlbXB0eVxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucyA9IFtdO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBjb21wb25lbnQgaWQgYW5kIGlkQmFnXHJcbiAgICAgICAgdGhpcy5jb21wb25lbnRJZCA9IGBjb21wb25lbnQtJHtCYXNlQ29tcG9uZW50Lm5leHRDb21wb25lbnRJZCsrfWA7XHJcbiAgICAgICAgdGhpcy5pZEJhZyA9IHRoaXMuY3JlYXRlSWRCYWcoKTtcclxuICAgICAgICBNc2Z0U21lLmZvckVhY2hLZXkodGhpcy5pZEJhZywgKGtleSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmlkQmFnW2tleV0gPSBgJHt0aGlzLmNvbXBvbmVudElkfS0ke2tleX1gO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICAvLyBzZXR1cCBpbml0aWFsIGhvc3QgY2xhc3NlcyBvbiB0aGlzIGVsZW1lbnRcclxuICAgICAgICB0aGlzLmFwcGx5SW5pdGlhbEhvc3RDbGFzc2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiBhbmd1bGFyIE9uRGVzdHJveSBpbnRlcmZhY2VcclxuICAgICAqIGRlcml2ZWQgY2xhc3NlcyBhcmUgYWx3YXlzIGV4cGVjdGVkIHRvIGNhbGwgc3VwZXIubmdPbkRlc3Ryb3koKSB3aGVuIG92ZXJyaWRpbmdcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHtcclxuICAgICAgICAgICAgaWYgKHN1YnNjcmlwdGlvbiAmJiAhc3Vic2NyaXB0aW9uLmNsb3NlZCkge1xyXG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyB0aGUgaWRCYWcgdXNlZCBieSB0aGlzIGNvbXBvbmVudCB0byBzdG9yZSB1bmlxdWUgZWxlbWVudCBpZHNcclxuICAgICAqIERlcml2ZWQgY2xhc3NlcyBhcmUgYWx3YXlzIGV4cGVjdGVkIHRvIGNhbGwgc3VwZXIuY3JlYXRlSWRCYWcoKSB3aGVuIG92ZXJyaWRpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNyZWF0ZUlkQmFnKCk6IE1zZnRTbWUuU3RyaW5nTWFwPHN0cmluZz4ge1xyXG4gICAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgdGhlIGluaXRpYWwgaG9zdCBjbGFzc2VzIHRvIGJlIGFwcGxpZWQgdG8gdGhpcyBlbGVtZW50XHJcbiAgICAgKiBEZXJpdmVkIGNsYXNzZXMgYXJlIGFsd2F5cyBleHBlY3RlZCB0byBjYWxsIHN1cGVyLmdldEluaXRpYWxIb3N0Q2xhc3NlcygpIHdoZW4gb3ZlcnJpZGluZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCk6IHN0cmluZ1tdIHtcclxuICAgICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydGN1dCB0byBnZXQgYW4gYXR0cmlidXRlIG9uIHRoZSBob3N0IGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGdldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvcnRjdXQgdG8gc2V0IGFuIGF0dHJpYnV0ZSBvbiB0aGUgaG9zdCBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0gbmFtZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIG9mIHRoZSBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHNldEF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG5hbWUsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3J0Y3V0IHRvIHJlbW92ZSBhbiBhdHRyaWJ1dGUgb24gdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgbmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydGN1dCB0byBhZGQgYSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFkZENsYXNzKGNsYXNzTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydGN1dCB0byByZW1vdmUgYSBjbGFzcyBvbiB0aGUgaG9zdCBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIFRoZSBuYW1lIG9mIHRoZSBjbGFzc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVtb3ZlQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgY2xhc3NOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3J0Y3V0IHRvIHNldCBhIHN0eWxlIG9uIHRoZSBob3N0IGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBzdHlsZSBUaGUgbmFtZSBvZiB0aGUgc3R5bGVcclxuICAgICAqIEBwYXJhbSB2YWx1ZSBUaGUgbmV3IHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBzZXRTdHlsZShzdHlsZTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHN0eWxlLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydGN1dCB0byByZW1vdmUgYSBzdHlsZSBvbiB0aGUgaG9zdCBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIG5hbWUgb2YgdGhlIHN0eWxlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCByZW1vdmVTdHlsZShzdHlsZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIHN0eWxlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3J0Y3V0IHRvIGxvZyBhIHJlY29yZC4gVGhlIHNvdXJjZSBuYW1lIGlzIGF1dG9tYXRpY2FsbHkgcGlja2VkIHVwIGZyb20gdGhlIGNsYXNzIGluc3RhbmNlXHJcbiAgICAgKiBAcGFyYW0gbWVzc2FnZSB0aGUgbWVzc2FnZSBvZiB0aGUgbG9nIHJlY29yZFxyXG4gICAgICogQHBhcmFtIGxldmVsIChvcHRpb25hbCkgdGhlIGxvZyBsZXZlbCAoZGVmYXVsdHMgdG8gRGVidWcpXHJcbiAgICAgKiBAcGFyYW0gcGFyYW1zIChvcHRpb25hbCkgdGhlIHBhcmFtZXRlcnMgdG8gbG9nXHJcbiAgICAgKiBAcGFyYW0gc291cmNlIChvcHRpb25hbCkgdGhlIHNvdXJjZSBvZiB0aGUgbG9nIG1lc3NhZ2UuIERlZmF1bHRzIHRvIHRoZSBuYW1lIG9mIHRoZSBjb25zdHJ1Y3RvciB0aGF0IGluc3RhbnRpYXRlZCB0aGlzIGluc3RhbmNlXHJcbiAgICAgKiBAcmV0dXJuIFByb21pc2U8YW55PiBzZXR0bGUgdG8gcmVzb2x2ZSBpZiBidWZmZXJlZC5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGxvZyhtZXNzYWdlOiBzdHJpbmcsIGxldmVsOiBMb2dMZXZlbCA9IExvZ0xldmVsLkRlYnVnLCBwYXJhbXM/OiBhbnksIHNvdXJjZTogc3RyaW5nID0gdGhpcy5sb2dTb3VyY2VOYW1lKTogUHJvbWlzZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gTG9nZ2luZy5sb2coe1xyXG4gICAgICAgICAgICBsZXZlbDogbGV2ZWwsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IG1lc3NhZ2UsXHJcbiAgICAgICAgICAgIGxvY2FsUGFyYW1zOiBwYXJhbXMsXHJcbiAgICAgICAgICAgIHNvdXJjZTogc291cmNlXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBcHBsaWVzIHRoZSBpbml0aWFsIGNsYXNzZXMgdG8gdGhpcyBjb21wb25lbnRzIGhvc3QgZWxlbWVudC5cclxuICAgICAqIFdlIHByZXNlcnZlIGFueSBjdXN0b20gY2xhc3NlcyBieSByZW1vdmluZyB0aGVtLCBhcHBseWluZyB0aGUgYmFzZSBjbGFzc2VzIGFuZCByZWFwcGx5aW5nIHRoZSBjdXN0b20gY2xhc3Nlcy5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBhcHBseUluaXRpYWxIb3N0Q2xhc3NlcygpIHtcclxuICAgICAgICBjb25zdCBjdXN0b21DbGFzc2VzID0gRG9tLmdldENsYXNzZXModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICBjdXN0b21DbGFzc2VzLmZvckVhY2goYyA9PiB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgYykpO1xyXG4gICAgICAgIHRoaXMuZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKClcclxuICAgICAgICAgICAgLmNvbmNhdChjdXN0b21DbGFzc2VzKVxyXG4gICAgICAgICAgICAuZm9yRWFjaChjID0+IHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBjKSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbnRlcm5hbCBiYXNlIGNvbXBvbmVudCBmb3IgU01FIENvcmUgY29udHJvbHMuIEl0IHNpbXBseSByZW1vdmVzIHRoZSBuZWVkIHRvIHN1cHBseSB0aGUgc3RyaW5nIHR5cGUgcGFyYW1ldGVyXHJcbiAqIFRoaXMgY2xhc3MgaXMgZXhwb3J0ZWQgZnJvbSB0aGlzIGZpbGUsIGJ1dCBub3QgbWVhbnQgdG8gYmUgZXhwb3J0ZWQgZnJvbSBpbmRleC50cyBidW5kbGVzLlxyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvcmVCYXNlQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudDxTdHJpbmdzPiB7XHJcbiAgICAvLyBTaG91bGQgUmVtYWluIEVtcHR5LlxyXG59XHJcbiJdfQ==
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9hbmd1bGFyL3NyYy9jb250cm9scy9jb21tb24vYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEYsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN2RixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUV6RTs7O0dBR0c7QUFFSCxtREFBbUQ7QUFDbkQsTUFBTSxPQUFnQixhQUFnQyxTQUFRLHdCQUF3QjtJQStDbEY7OztPQUdHO0lBQ0gsWUFBWSxRQUFrQjtRQUMxQixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEIsdUNBQXVDO1FBQ3ZDLElBQUksQ0FBQyxPQUFPLEdBQXFCLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDO1FBRWxFLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV4QiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxhQUFhLGFBQWEsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ2xFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lB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TyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRixDQUFDOztBQTlLRDs7O0dBR0c7QUFDWSw2QkFBZSxHQUFHLENBQUMsQ0FBQzs2RkFOakIsYUFBYTtxRUFBYixhQUFhO0FBdUMvQjtJQURDLFNBQVMsQ0FBQyxTQUFTLENBQUM7OEJBQ0QsU0FBUzsrQ0FBQztBQU05QjtJQURDLFNBQVMsQ0FBQyxVQUFVLENBQUM7OEJBQ0MsVUFBVTtrREFBQzt1RkE3Q2hCLGFBQWE7Y0FGbEMsU0FBUzsyREF5Q0ksUUFBUSxNQU1SLFdBQVc7QUFzSXpCOzs7R0FHRztBQUNILE1BQU0sT0FBZ0IsaUJBQWtCLFNBQVEsYUFBc0I7Q0FFckUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEluamVjdG9yLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2dMZXZlbCB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nLWxldmVsJztcclxuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZGlhZ25vc3RpY3MvbG9nZ2luZyc7XHJcbmltcG9ydCB7IERvbSB9IGZyb20gJ0BtaWNyb3NvZnQvd2luZG93cy1hZG1pbi1jZW50ZXItc2RrL2NvcmUvZG9tL2RvbSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTdHJpbmdzIH0gZnJvbSAnLi4vLi4vZ2VuZXJhdGVkL3N0cmluZ3MnO1xyXG5pbXBvcnQgeyBTbWVJbmplY3QgfSBmcm9tICcuL2RlY29yYXRvcnMvaW5qZWN0aW9uLmRlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBOZ0xpZmVjeWNsZUJhc2VDb21wb25lbnQgfSBmcm9tICcuL25nLWxpZmVjeWNsZS1iYXNlLmNvbXBvbmVudCc7XHJcblxyXG4vKipcclxuICogQSBiYXNlIGNsYXNzIGZvciBhbGwgY29tcG9uZW50cy5cclxuICogLSBUUmVzb3VyY2VTdHJpbmdzIFRoZSB0eXBlZCBpbnRlcmZhY2UgZm9yIHJlc291cmNlIHN0cmluZ3MuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKClcclxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBkaXJlY3RpdmUtY2xhc3Mtc3VmZml4XHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlQ29tcG9uZW50PFRSZXNvdXJjZVN0cmluZ3M+IGV4dGVuZHMgTmdMaWZlY3ljbGVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN0YXRpYyBjb25zdGFudCB0byBwcm92aWRlIHVuaXF1ZSBpZHMgZm9yIGVhY2ggY29tcG9uZW50XHJcbiAgICAgKiBAc2VlIHtjb21wb25lbnRJZH1cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzdGF0aWMgbmV4dENvbXBvbmVudElkID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBzb3VyY2UgbmFtZSB0byB1c2UgZm9yIGxvZ2dpbmdcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IGxvZ1NvdXJjZU5hbWU6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBsb2NhbGl6ZWQgc3RyaW5ncyBmb3IgdGhlIGN1cnJlbnQgcHJvamVjdFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RyaW5nczogVFJlc291cmNlU3RyaW5ncztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEEgYmFnIG9mIGlkcyBnZW5lcmF0ZWQgdXNpbmcgQHNlZSB7Y29tcG9uZW50SWR9IGFuZCB0aGUgbWFwIHJldHVybmVkIGZyb20gQHNlZSB7Y3JlYXRlSWRCYWd9XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBpZEJhZzogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB1bmlxdWUgaWQgb2YgdGhpcyBjb21wb25lbnQuXHJcbiAgICAgKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIGNvbnRyb2xzIG5lZWQgdG8gdXNlIGFuIElEIChzdWNoIGFzIGluIGZvcm1zKSBidXQgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcyBvbiB0aGUgc2FtZSBwYWdlLlxyXG4gICAgICogVXNpbmcgdGhpcyBJRCBhcyB0aGUgYmFzaXMgZm9yIHRoZSBjb250cm9scyBpbnRlcm5hbCBJRHMgZ2VuZXJhdGVkIGluIEBzZWUge2NyZWF0ZUlkQmFnfSBrZWVwcyB0aGUgSURzIHVuaXF1ZS5cclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIGNvbXBvbmVudElkOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDb250YWluZXIgZm9yIGFjdGl2ZSBzdWJzY3JpcHRpb25zIHRoYXQgc2hvdWxkIGJlIGNsZWFuZWQgdXAgaW4gdGhlIE9uRGVzdHJveSBjYWxsLlxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgYW5ndWxhciByZW5kZXJlciBzZXJ2aWNlXHJcbiAgICAgKi9cclxuICAgIEBTbWVJbmplY3QoUmVuZGVyZXIyKVxyXG4gICAgcHJvdGVjdGVkIHJlbmRlcmVyOiBSZW5kZXJlcjI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgZWxlbWVudCByZWZlcmVuY2UgZm9yIHRoaXMgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIEBTbWVJbmplY3QoRWxlbWVudFJlZilcclxuICAgIHByb3RlY3RlZCBob3N0RWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemVzIGEgbmV3IGluc3RhbmNlIG9mIHRoZSB7QmFzZUNvbXBvbmVudH0gY2xhc3MuXHJcbiAgICAgKiBAcGFyYW0gaW5qZWN0b3IgVGhlIGFuZ3VsYXIgaW5qZWN0aW9uIHNlcnZpY2UuIHJlcXVpcmVkIGJ5IEBTbWVJbmplY3RhYmxlKCkgZGVjb3JhdG9yXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gICAgICAgIHN1cGVyKGluamVjdG9yKTtcclxuICAgICAgICAvLyBsb2FkIHRoZSBzdHJpbmdzIGZvciB0aGUgYXBwbGljYXRpb25cclxuICAgICAgICB0aGlzLnN0cmluZ3MgPSA8VFJlc291cmNlU3RyaW5ncz5Nc2Z0U21lLnNlbGYoKS5SZXNvdXJjZXMuc3RyaW5ncztcclxuXHJcbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBzdWJzY3JpcHRpb25zIHRvIGVtcHR5XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zID0gW107XHJcblxyXG4gICAgICAgIC8vIHNldHVwIGNvbXBvbmVudCBpZCBhbmQgaWRCYWdcclxuICAgICAgICB0aGlzLmNvbXBvbmVudElkID0gYGNvbXBvbmVudC0ke0Jhc2VDb21wb25lbnQubmV4dENvbXBvbmVudElkKyt9YDtcclxuICAgICAgICB0aGlzLmlkQmFnID0gdGhpcy5jcmVhdGVJZEJhZygpO1xyXG4gICAgICAgIE1zZnRTbWUuZm9yRWFjaEtleSh0aGlzLmlkQmFnLCAoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaWRCYWdba2V5XSA9IGAke3RoaXMuY29tcG9uZW50SWR9LSR7a2V5fWA7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIHNldHVwIGluaXRpYWwgaG9zdCBjbGFzc2VzIG9uIHRoaXMgZWxlbWVudFxyXG4gICAgICAgIHRoaXMuYXBwbHlJbml0aWFsSG9zdENsYXNzZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcGxlbWVudGF0aW9uIG9mIGFuZ3VsYXIgT25EZXN0cm95IGludGVyZmFjZVxyXG4gICAgICogZGVyaXZlZCBjbGFzc2VzIGFyZSBhbHdheXMgZXhwZWN0ZWQgdG8gY2FsbCBzdXBlci5uZ09uRGVzdHJveSgpIHdoZW4gb3ZlcnJpZGluZ1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YnNjcmlwdGlvbikgPT4ge1xyXG4gICAgICAgICAgICBpZiAoc3Vic2NyaXB0aW9uICYmICFzdWJzY3JpcHRpb24uY2xvc2VkKSB7XHJcbiAgICAgICAgICAgICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDcmVhdGVzIHRoZSBpZEJhZyB1c2VkIGJ5IHRoaXMgY29tcG9uZW50IHRvIHN0b3JlIHVuaXF1ZSBlbGVtZW50IGlkc1xyXG4gICAgICogRGVyaXZlZCBjbGFzc2VzIGFyZSBhbHdheXMgZXhwZWN0ZWQgdG8gY2FsbCBzdXBlci5jcmVhdGVJZEJhZygpIHdoZW4gb3ZlcnJpZGluZ1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlSWRCYWcoKTogTXNmdFNtZS5TdHJpbmdNYXA8c3RyaW5nPiB7XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyB0aGUgaW5pdGlhbCBob3N0IGNsYXNzZXMgdG8gYmUgYXBwbGllZCB0byB0aGlzIGVsZW1lbnRcclxuICAgICAqIERlcml2ZWQgY2xhc3NlcyBhcmUgYWx3YXlzIGV4cGVjdGVkIHRvIGNhbGwgc3VwZXIuZ2V0SW5pdGlhbEhvc3RDbGFzc2VzKCkgd2hlbiBvdmVycmlkaW5nXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBnZXRJbml0aWFsSG9zdENsYXNzZXMoKTogc3RyaW5nW10ge1xyXG4gICAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNob3J0Y3V0IHRvIHNldCBhbiBhdHRyaWJ1dGUgb24gdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIG5hbWUgVGhlIG5hbWUgb2YgdGhlIGF0dHJpYnV0ZVxyXG4gICAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZSBvZiB0aGUgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBzZXRBdHRyaWJ1dGUobmFtZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBuYW1lLCB2YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydGN1dCB0byByZW1vdmUgYW4gYXR0cmlidXRlIG9uIHRoZSBob3N0IGVsZW1lbnRcclxuICAgICAqIEBwYXJhbSBuYW1lIFRoZSBuYW1lIG9mIHRoZSBhdHRyaWJ1dGVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlbW92ZUF0dHJpYnV0ZShuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZSh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIG5hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvcnRjdXQgdG8gYWRkIGEgY2xhc3Mgb24gdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBUaGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBhZGRDbGFzcyhjbGFzc05hbWU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBjbGFzc05hbWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvcnRjdXQgdG8gcmVtb3ZlIGEgY2xhc3Mgb24gdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBUaGUgbmFtZSBvZiB0aGUgY2xhc3NcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIHJlbW92ZUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGNsYXNzTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydGN1dCB0byBzZXQgYSBzdHlsZSBvbiB0aGUgaG9zdCBlbGVtZW50XHJcbiAgICAgKiBAcGFyYW0gc3R5bGUgVGhlIG5hbWUgb2YgdGhlIHN0eWxlXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIG5ldyB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgc2V0U3R5bGUoc3R5bGU6IHN0cmluZywgdmFsdWU6IGFueSkge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBzdHlsZSwgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2hvcnRjdXQgdG8gcmVtb3ZlIGEgc3R5bGUgb24gdGhlIGhvc3QgZWxlbWVudFxyXG4gICAgICogQHBhcmFtIHN0eWxlIFRoZSBuYW1lIG9mIHRoZSBzdHlsZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgcmVtb3ZlU3R5bGUoc3R5bGU6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUodGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LCBzdHlsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTaG9ydGN1dCB0byBsb2cgYSByZWNvcmQuIFRoZSBzb3VyY2UgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IHBpY2tlZCB1cCBmcm9tIHRoZSBjbGFzcyBpbnN0YW5jZVxyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgdGhlIG1lc3NhZ2Ugb2YgdGhlIGxvZyByZWNvcmRcclxuICAgICAqIEBwYXJhbSBsZXZlbCAob3B0aW9uYWwpIHRoZSBsb2cgbGV2ZWwgKGRlZmF1bHRzIHRvIERlYnVnKVxyXG4gICAgICogQHBhcmFtIHBhcmFtcyAob3B0aW9uYWwpIHRoZSBwYXJhbWV0ZXJzIHRvIGxvZ1xyXG4gICAgICogQHBhcmFtIHNvdXJjZSAob3B0aW9uYWwpIHRoZSBzb3VyY2Ugb2YgdGhlIGxvZyBtZXNzYWdlLiBEZWZhdWx0cyB0byB0aGUgbmFtZSBvZiB0aGUgY29uc3RydWN0b3IgdGhhdCBpbnN0YW50aWF0ZWQgdGhpcyBpbnN0YW5jZVxyXG4gICAgICogQHJldHVybiBQcm9taXNlPGFueT4gc2V0dGxlIHRvIHJlc29sdmUgaWYgYnVmZmVyZWQuXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBsb2cobWVzc2FnZTogc3RyaW5nLCBsZXZlbDogTG9nTGV2ZWwgPSBMb2dMZXZlbC5EZWJ1ZywgcGFyYW1zPzogYW55LCBzb3VyY2U6IHN0cmluZyA9IHRoaXMubG9nU291cmNlTmFtZSk6IFByb21pc2U8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIExvZ2dpbmcubG9nKHtcclxuICAgICAgICAgICAgbGV2ZWw6IGxldmVsLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBtZXNzYWdlLFxyXG4gICAgICAgICAgICBsb2NhbFBhcmFtczogcGFyYW1zLFxyXG4gICAgICAgICAgICBzb3VyY2U6IHNvdXJjZVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQXBwbGllcyB0aGUgaW5pdGlhbCBjbGFzc2VzIHRvIHRoaXMgY29tcG9uZW50cyBob3N0IGVsZW1lbnQuXHJcbiAgICAgKiBXZSBwcmVzZXJ2ZSBhbnkgY3VzdG9tIGNsYXNzZXMgYnkgcmVtb3ZpbmcgdGhlbSwgYXBwbHlpbmcgdGhlIGJhc2UgY2xhc3NlcyBhbmQgcmVhcHBseWluZyB0aGUgY3VzdG9tIGNsYXNzZXMuXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgYXBwbHlJbml0aWFsSG9zdENsYXNzZXMoKSB7XHJcbiAgICAgICAgY29uc3QgY3VzdG9tQ2xhc3NlcyA9IERvbS5nZXRDbGFzc2VzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCk7XHJcbiAgICAgICAgY3VzdG9tQ2xhc3Nlcy5mb3JFYWNoKGMgPT4gdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmhvc3RFbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGMpKTtcclxuICAgICAgICB0aGlzLmdldEluaXRpYWxIb3N0Q2xhc3NlcygpXHJcbiAgICAgICAgICAgIC5jb25jYXQoY3VzdG9tQ2xhc3NlcylcclxuICAgICAgICAgICAgLmZvckVhY2goYyA9PiB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuaG9zdEVsZW1lbnQubmF0aXZlRWxlbWVudCwgYykpO1xyXG4gICAgfVxyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJuYWwgYmFzZSBjb21wb25lbnQgZm9yIFNNRSBDb3JlIGNvbnRyb2xzLiBJdCBzaW1wbHkgcmVtb3ZlcyB0aGUgbmVlZCB0byBzdXBwbHkgdGhlIHN0cmluZyB0eXBlIHBhcmFtZXRlclxyXG4gKiBUaGlzIGNsYXNzIGlzIGV4cG9ydGVkIGZyb20gdGhpcyBmaWxlLCBidXQgbm90IG1lYW50IHRvIGJlIGV4cG9ydGVkIGZyb20gaW5kZXgudHMgYnVuZGxlcy5cclxuICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb3JlQmFzZUNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQ8U3RyaW5ncz4ge1xyXG4gICAgLy8gU2hvdWxkIFJlbWFpbiBFbXB0eS5cclxufVxyXG4iXX0=
|