@wavemaker/app-ng-runtime 12.0.0-next.140534 → 12.0.0-next.141130
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.
- app-ng-runtime/build-task/advanced/custom-widget-container/custom-widget-container.build.d.ts +2 -0
- app-ng-runtime/build-task/advanced/custom-widget-wrapper/custom-widget-wrapper.build.d.ts +2 -0
- app-ng-runtime/build-task/bundles/index.umd.js +451 -405
- app-ng-runtime/build-task/esm2022/advanced/custom-widget-container/custom-widget-container.build.mjs +15 -0
- app-ng-runtime/build-task/esm2022/advanced/custom-widget-wrapper/custom-widget-wrapper.build.mjs +26 -0
- app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -2
- app-ng-runtime/build-task/esm2022/public_api.mjs +3 -1
- app-ng-runtime/build-task/fesm2022/index.mjs +454 -406
- app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/build-task/public_api.d.ts +2 -0
- app-ng-runtime/components/advanced/custom/.npmignore +2 -0
- app-ng-runtime/components/advanced/custom/bundles/index.umd.js +232 -0
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget-container.directive.d.ts +19 -0
- app-ng-runtime/components/advanced/custom/custom-widget-container/custom-widget.props.d.ts +2 -0
- app-ng-runtime/components/advanced/custom/custom-widget-prop.d.ts +1 -0
- app-ng-runtime/components/advanced/custom/custom-widget.directive.d.ts +19 -0
- app-ng-runtime/components/advanced/custom/custom-widget.module.d.ts +10 -0
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget-container.directive.mjs +102 -0
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-container/custom-widget.props.mjs +12 -0
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget-prop.mjs +8 -0
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.directive.mjs +68 -0
- app-ng-runtime/components/advanced/custom/esm2022/custom-widget.module.mjs +32 -0
- app-ng-runtime/components/advanced/custom/esm2022/index.mjs +5 -0
- app-ng-runtime/components/advanced/custom/esm2022/public_api.mjs +4 -0
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs +215 -0
- app-ng-runtime/components/advanced/custom/fesm2022/index.mjs.map +1 -0
- app-ng-runtime/components/advanced/custom/index.d.ts +5 -0
- app-ng-runtime/components/advanced/custom/package.json +23 -0
- app-ng-runtime/components/advanced/custom/public_api.d.ts +3 -0
- app-ng-runtime/components/base/bundles/index.umd.js +63 -21
- app-ng-runtime/components/base/components.module.d.ts +12 -11
- app-ng-runtime/components/base/esm2022/components.module.mjs +5 -1
- app-ng-runtime/components/base/esm2022/public_api.mjs +2 -1
- app-ng-runtime/components/base/esm2022/utils/live-utils.mjs +2 -8
- app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +25 -15
- app-ng-runtime/components/base/esm2022/widgets/common/base/custom-widget-container.directive.mjs +39 -0
- app-ng-runtime/components/base/fesm2022/index.mjs +63 -22
- app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/base/public_api.d.ts +1 -0
- app-ng-runtime/components/base/widgets/common/base/base.component.d.ts +10 -5
- app-ng-runtime/components/base/widgets/common/base/custom-widget-container.directive.d.ts +14 -0
- app-ng-runtime/components/basic/search/bundles/index.umd.js +36 -24
- app-ng-runtime/components/basic/search/esm2022/search.component.mjs +33 -24
- app-ng-runtime/components/basic/search/esm2022/search.props.mjs +5 -2
- app-ng-runtime/components/basic/search/fesm2022/index.mjs +36 -24
- app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/basic/search/search.component.d.ts +3 -0
- app-ng-runtime/components/containers/tabs/bundles/index.umd.js +14 -6
- app-ng-runtime/components/containers/tabs/esm2022/tabs.component.mjs +14 -7
- app-ng-runtime/components/containers/tabs/esm2022/tabs.props.mjs +3 -2
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs +14 -6
- app-ng-runtime/components/containers/tabs/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/tabs/tabs.component.d.ts +1 -0
- app-ng-runtime/components/containers/wizard/bundles/index.umd.js +0 -17
- app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +1 -18
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +0 -17
- app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/containers/wizard/wizard.component.d.ts +0 -1
- app-ng-runtime/components/data/form/bundles/index.umd.js +0 -4
- app-ng-runtime/components/data/form/esm2022/form-field/form-field.directive.mjs +3 -5
- app-ng-runtime/components/data/form/fesm2022/index.mjs +2 -4
- app-ng-runtime/components/data/form/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/form/form-field/form-field.directive.d.ts +0 -1
- app-ng-runtime/components/data/table/bundles/index.umd.js +2 -2
- app-ng-runtime/components/data/table/esm2022/table.component.mjs +3 -3
- app-ng-runtime/components/data/table/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/data/table/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/data/table/table.component.d.ts +1 -1
- app-ng-runtime/components/dialogs/default/base-dialog.d.ts +2 -0
- app-ng-runtime/components/dialogs/default/bundles/index.umd.js +17 -17
- app-ng-runtime/components/dialogs/default/esm2022/base-dialog.mjs +1 -12
- app-ng-runtime/components/dialogs/default/esm2022/dialog-body/dialog-body.directive.mjs +14 -2
- app-ng-runtime/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +6 -7
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs +18 -18
- app-ng-runtime/components/dialogs/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/dialogs/design-dialog/bundles/index.umd.js +21 -3
- app-ng-runtime/components/dialogs/design-dialog/dialog.component.d.ts +3 -2
- app-ng-runtime/components/dialogs/design-dialog/esm2022/dialog.component.mjs +22 -4
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs +21 -3
- app-ng-runtime/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/bundles/index.umd.js +116 -115
- app-ng-runtime/components/input/default/checkboxset/checkboxset.component.d.ts +1 -0
- app-ng-runtime/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +8 -5
- app-ng-runtime/components/input/default/esm2022/radioset/radioset.component.mjs +8 -5
- app-ng-runtime/components/input/default/esm2022/select/select.component.mjs +29 -59
- app-ng-runtime/components/input/default/esm2022/switch/switch.component.mjs +64 -38
- app-ng-runtime/components/input/default/esm2022/switch/switch.props.mjs +2 -1
- app-ng-runtime/components/input/default/esm2022/text/base/base-input.mjs +4 -1
- app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +2 -2
- app-ng-runtime/components/input/default/esm2022/textarea/textarea.component.mjs +1 -4
- app-ng-runtime/components/input/default/fesm2022/index.mjs +117 -116
- app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/default/radioset/radioset.component.d.ts +1 -0
- app-ng-runtime/components/input/default/select/select.component.d.ts +4 -2
- app-ng-runtime/components/input/default/switch/switch.component.d.ts +2 -0
- app-ng-runtime/components/input/default/textarea/textarea.component.d.ts +2 -3
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +0 -3
- app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +1 -4
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs +0 -3
- app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/bundles/index.umd.js +5 -31
- app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +8 -34
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +6 -32
- app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +2 -6
- app-ng-runtime/components/input/rating/bundles/index.umd.js +26 -35
- app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +26 -37
- app-ng-runtime/components/input/rating/esm2022/rating.props.mjs +3 -1
- app-ng-runtime/components/input/rating/fesm2022/index.mjs +27 -36
- app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/input/rating/rating.component.d.ts +3 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/esm2022/nav/nav.component.mjs +2 -2
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +2 -2
- app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/bundles/index.umd.js +6 -2
- app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +9 -5
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +8 -4
- app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
- app-ng-runtime/components/page/right-panel/bundles/index.umd.js +6 -2
- app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +9 -5
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +8 -4
- app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +2 -2
- app-ng-runtime/core/bundles/index.umd.js +28 -6
- app-ng-runtime/core/enums/enums.d.ts +2 -1
- app-ng-runtime/core/esm2022/enums/enums.mjs +2 -1
- app-ng-runtime/core/esm2022/public_api.mjs +2 -2
- app-ng-runtime/core/esm2022/types/types.mjs +4 -1
- app-ng-runtime/core/esm2022/utils/build-utils.mjs +6 -1
- app-ng-runtime/core/esm2022/utils/utils.mjs +11 -4
- app-ng-runtime/core/fesm2022/index.mjs +22 -4
- app-ng-runtime/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/core/public_api.d.ts +1 -1
- app-ng-runtime/core/types/types.d.ts +5 -1
- app-ng-runtime/core/utils/utils.d.ts +2 -1
- app-ng-runtime/mobile/core/bundles/index.umd.js +2 -18
- app-ng-runtime/mobile/core/esm2022/native.xhr.mjs +3 -19
- app-ng-runtime/mobile/core/fesm2022/index.mjs +2 -18
- app-ng-runtime/mobile/core/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/package.json +1 -1
- app-ng-runtime/runtime/base/bundles/index.umd.js +296 -5
- app-ng-runtime/runtime/base/components/base-custom-widget.component.d.ts +73 -0
- app-ng-runtime/runtime/base/esm2022/components/base-custom-widget.component.mjs +294 -0
- app-ng-runtime/runtime/base/esm2022/public_api.mjs +2 -1
- app-ng-runtime/runtime/base/esm2022/runtime-base.module.mjs +6 -1
- app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
- app-ng-runtime/runtime/base/esm2022/types/types.mjs +4 -1
- app-ng-runtime/runtime/base/fesm2022/index.mjs +294 -4
- app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/runtime/base/public_api.d.ts +1 -0
- app-ng-runtime/runtime/base/runtime-base.module.d.ts +9 -8
- app-ng-runtime/runtime/base/types/types.d.ts +5 -1
- app-ng-runtime/runtime/dynamic/app/services/customwidget-config-provider.service.d.ts +8 -0
- app-ng-runtime/runtime/dynamic/bundles/index.umd.js +49 -13
- app-ng-runtime/runtime/dynamic/esm2022/app/app.module.mjs +8 -3
- app-ng-runtime/runtime/dynamic/esm2022/app/services/component-ref-provider.service.mjs +23 -7
- app-ng-runtime/runtime/dynamic/esm2022/app/services/customwidget-config-provider.service.mjs +22 -0
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs +50 -11
- app-ng-runtime/runtime/dynamic/fesm2022/index.mjs.map +1 -1
- app-ng-runtime/scripts/@wavemaker/nvd3/build/nv.d3.min.js +1 -1
- app-ng-runtime/scripts/datatable/datatable.js +4 -7
- app-ng-runtime/scripts/summernote/dist/summernote-lite.min.js +3 -2
- app-ng-runtime/transpiler/bundles/index.umd.js +5 -0
- app-ng-runtime/transpiler/esm2022/build.mjs +4 -1
- app-ng-runtime/transpiler/esm2022/imports.mjs +3 -1
- app-ng-runtime/transpiler/fesm2022/index.mjs +5 -0
- app-ng-runtime/transpiler/fesm2022/index.mjs.map +1 -1
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import { Directive, inject } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { $invokeWatchers, AbstractI18nService, App, noop, Viewport, ScriptLoaderService, UtilsService, $watch, isIE } from '@wm/core';
|
|
4
|
+
import { WidgetRef } from '@wm/components/base';
|
|
5
|
+
import { PageDirective, SpaPageDirective } from '@wm/components/page';
|
|
6
|
+
import { VariablesService } from '@wm/variables';
|
|
7
|
+
import { CustomwidgetConfigProvider } from '../types/types';
|
|
8
|
+
import { FragmentMonitor } from '../util/fragment-monitor';
|
|
9
|
+
import { commonPartialWidgets } from "./base-partial.component";
|
|
10
|
+
import { capitalize, forEach } from "lodash-es";
|
|
11
|
+
import { CheckboxsetComponent, RadiosetComponent } from "@wm/components/input";
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
// export const commonPartialWidgets = {};
|
|
14
|
+
export class BaseCustomWidgetComponent extends FragmentMonitor {
|
|
15
|
+
constructor() {
|
|
16
|
+
super(...arguments);
|
|
17
|
+
this.BaseWidget = {};
|
|
18
|
+
this.compileContent = false;
|
|
19
|
+
this.destroy$ = new Subject();
|
|
20
|
+
this.viewInit$ = new Subject();
|
|
21
|
+
this.invokeEvent = (eventName) => {
|
|
22
|
+
this.events[eventName]();
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
getContainerWidgetInjector() {
|
|
26
|
+
return this.containerWidget.inj || this.containerWidget.injector;
|
|
27
|
+
}
|
|
28
|
+
init() {
|
|
29
|
+
let resolveFn;
|
|
30
|
+
const promise = new Promise((res) => resolveFn = res);
|
|
31
|
+
this.App = this.injector ? this.injector.get(App) : inject(App);
|
|
32
|
+
//making the code compatible in both the JIT and AOT modes
|
|
33
|
+
this.containerWidget = this.injector ? this.injector.get(WidgetRef) : inject(WidgetRef);
|
|
34
|
+
this.i18nService = this.injector ? this.injector.get(AbstractI18nService) : inject(AbstractI18nService);
|
|
35
|
+
this.scriptLoaderService = this.injector ? this.injector.get(ScriptLoaderService) : inject(ScriptLoaderService);
|
|
36
|
+
this.Viewport = this.injector ? this.injector.get(Viewport) : inject(Viewport);
|
|
37
|
+
this.customwidgetConfigProvider = this.injector ? this.injector.get(CustomwidgetConfigProvider) : inject(CustomwidgetConfigProvider);
|
|
38
|
+
// this.viewContainerRef = this.getContainerWidgetInjector().get(ViewContainerRef);
|
|
39
|
+
// Replacing this.getContainerWidgetInjector().view.component as viewParent
|
|
40
|
+
// this.viewParent = (this.viewContainerRef as any).parentInjector._lView[8];
|
|
41
|
+
this.viewParent = this.containerWidget.viewParent;
|
|
42
|
+
if (this.viewParent.registerFragment) {
|
|
43
|
+
this.viewParent.registerFragment();
|
|
44
|
+
}
|
|
45
|
+
// register functions for binding evaluation
|
|
46
|
+
this.registerExpressions();
|
|
47
|
+
this.initUserScript();
|
|
48
|
+
this.registerPropsInContainerWidget(resolveFn);
|
|
49
|
+
// Using promise to make sure the props are registered in the container widget before registering events, Otherwise no events will be registered
|
|
50
|
+
promise.then(() => this.registerEvents());
|
|
51
|
+
this.registerWidgets();
|
|
52
|
+
this.initVariables();
|
|
53
|
+
this.activePageName = this.App.activePageName; // Todo: remove this
|
|
54
|
+
this.registerProps();
|
|
55
|
+
this.defineI18nProps();
|
|
56
|
+
this.viewInit$.subscribe(noop, noop, () => {
|
|
57
|
+
this.props = this.containerWidget.props;
|
|
58
|
+
});
|
|
59
|
+
if (this.spa) {
|
|
60
|
+
this.pageDirective = this.injector ? this.injector.get(SpaPageDirective) : inject(SpaPageDirective);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
this.pageDirective = this.injector ? this.injector.get(PageDirective) : inject(PageDirective);
|
|
64
|
+
}
|
|
65
|
+
if (this.pageDirective) {
|
|
66
|
+
this.registerDestroyListener(this.pageDirective.subscribe('attach', data => this.ngOnAttach(data.refreshData)));
|
|
67
|
+
this.registerDestroyListener(this.pageDirective.subscribe('detach', () => this.ngOnDetach()));
|
|
68
|
+
}
|
|
69
|
+
super.init();
|
|
70
|
+
}
|
|
71
|
+
registerWidgets() {
|
|
72
|
+
// common partial widgets should be accessible from page
|
|
73
|
+
this.Widgets = Object.create(commonPartialWidgets);
|
|
74
|
+
// expose current page widgets on app
|
|
75
|
+
this.App.Widgets = Object.create(this.Widgets);
|
|
76
|
+
}
|
|
77
|
+
initializeComponentData(children) {
|
|
78
|
+
Array.from(children).forEach((child) => {
|
|
79
|
+
if (!child.hasAttribute('wmcustomwidget'))
|
|
80
|
+
this.initializeComponentData(child.children);
|
|
81
|
+
else {
|
|
82
|
+
const asAttr = child.getAttribute('as') || '';
|
|
83
|
+
if (!asAttr) {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
let baseWidget, splitArr = asAttr.split('-'), modifiedArr = [];
|
|
87
|
+
modifiedArr = splitArr.map((item) => {
|
|
88
|
+
item = item !== 'wm' ? capitalize(item) : item;
|
|
89
|
+
return item;
|
|
90
|
+
});
|
|
91
|
+
baseWidget = modifiedArr.join('');
|
|
92
|
+
switch (baseWidget) {
|
|
93
|
+
case 'wmCheckboxset':
|
|
94
|
+
this[baseWidget] = new CheckboxsetComponent(this.injector, undefined);
|
|
95
|
+
this[baseWidget]["_select"] = (item, $event) => {
|
|
96
|
+
const keys = [];
|
|
97
|
+
forEach(this[baseWidget].datasetItems, (datasetItem) => {
|
|
98
|
+
if (datasetItem.key === item.key)
|
|
99
|
+
datasetItem.selected = !datasetItem.selected;
|
|
100
|
+
if (datasetItem.selected)
|
|
101
|
+
keys.push(datasetItem.key);
|
|
102
|
+
});
|
|
103
|
+
this[baseWidget].triggerInvokeOnChange(keys, $event);
|
|
104
|
+
};
|
|
105
|
+
break;
|
|
106
|
+
case 'wmRadioset':
|
|
107
|
+
this[baseWidget] = new RadiosetComponent(this.injector, undefined);
|
|
108
|
+
this[baseWidget]["_select"] = (item, $event) => {
|
|
109
|
+
this[baseWidget].triggerInvokeOnChange(item.key, $event);
|
|
110
|
+
};
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
for (let [key, value] of this.containerWidget.$attrs) {
|
|
114
|
+
if (key.startsWith('base-')) {
|
|
115
|
+
let modifiedKey = key.replace('base-', '');
|
|
116
|
+
this[baseWidget][modifiedKey] = value;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
this[baseWidget].initDatasetItems();
|
|
120
|
+
this.containerWidget[baseWidget] = this[baseWidget];
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
registerBaseWidget() {
|
|
125
|
+
this.initializeComponentData(this.containerWidget.nativeElement.children);
|
|
126
|
+
}
|
|
127
|
+
registerEvents() {
|
|
128
|
+
this.events = {};
|
|
129
|
+
this.containerWidget.eventHandlers.forEach((callback, key) => {
|
|
130
|
+
this.events[key] = (...args) => {
|
|
131
|
+
this.containerWidget.invokeEventCallback(key, { $event: args[0], $data: args[1] });
|
|
132
|
+
};
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
registerDestroyListener(fn) {
|
|
136
|
+
this.destroy$.subscribe(noop, noop, () => fn());
|
|
137
|
+
}
|
|
138
|
+
registerChangeListeners() {
|
|
139
|
+
this.containerWidget.registerPropertyChangeListener(this.onPropertyChange);
|
|
140
|
+
this.containerWidget.registerStyleChangeListener(this.onPropertyChange);
|
|
141
|
+
}
|
|
142
|
+
initUserScript() {
|
|
143
|
+
try {
|
|
144
|
+
// partials inside prefab should have access to Prefab properties and events
|
|
145
|
+
if (this.viewParent.prefabName) {
|
|
146
|
+
// for partial within partial within prefabs, just assign the parent partial's prefab object
|
|
147
|
+
if (this.viewParent.Prefab) {
|
|
148
|
+
this.Prefab = this.viewParent.Prefab;
|
|
149
|
+
}
|
|
150
|
+
else {
|
|
151
|
+
this.Prefab = this.viewParent;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
this.evalUserScript(this, this.App, this.injector ? this.injector.get(UtilsService) : inject(UtilsService));
|
|
155
|
+
}
|
|
156
|
+
catch (e) {
|
|
157
|
+
console.error(`Error in evaluating partial (${this.customWidgetName}) script\n`, e);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
initVariables() {
|
|
161
|
+
const variablesService = this.injector ? this.injector.get(VariablesService) : inject(VariablesService);
|
|
162
|
+
// get variables and actions instances for the page
|
|
163
|
+
const variableCollection = variablesService.register(this.customWidgetName, this.getVariables(), this);
|
|
164
|
+
// create namespace for Variables nad Actions on page/partial, which inherits the Variables and Actions from App instance
|
|
165
|
+
this.Variables = Object.create(this.App.Variables);
|
|
166
|
+
this.Actions = Object.create(this.App.Actions);
|
|
167
|
+
this.containerWidget.Variables = this.Variables;
|
|
168
|
+
this.containerWidget.Actions = this.Actions;
|
|
169
|
+
// assign all the page variables to the pageInstance
|
|
170
|
+
Object.entries(variableCollection.Variables).forEach(([name, variable]) => this.Variables[name] = variable);
|
|
171
|
+
Object.entries(variableCollection.Actions).forEach(([name, action]) => this.Actions[name] = action);
|
|
172
|
+
this.viewInit$.subscribe(noop, noop, () => {
|
|
173
|
+
// TEMP: triggering watchers so variables watching over params are updated
|
|
174
|
+
$invokeWatchers(true, true);
|
|
175
|
+
variableCollection.callback(variableCollection.Variables).catch(noop);
|
|
176
|
+
variableCollection.callback(variableCollection.Actions);
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* function to register bind expressions generated in this partial instance
|
|
181
|
+
* getExpressions function is defined in the generated page.comp.ts file
|
|
182
|
+
* @param expressions, map of bind expression vs generated function
|
|
183
|
+
*/
|
|
184
|
+
registerExpressions() {
|
|
185
|
+
// const expressions = this.getExpressions();
|
|
186
|
+
// _.each(expressions, (fn, expr)=>{
|
|
187
|
+
// registerFnByExpr(expr, fn[0], fn[1]);
|
|
188
|
+
// });
|
|
189
|
+
}
|
|
190
|
+
registerProps() {
|
|
191
|
+
this.props = this.containerWidget.props;
|
|
192
|
+
}
|
|
193
|
+
defineI18nProps() {
|
|
194
|
+
this.appLocale = this.i18nService.getAppLocale();
|
|
195
|
+
}
|
|
196
|
+
invokeOnReady() {
|
|
197
|
+
let params;
|
|
198
|
+
if (this.containerWidget.userComponentParams) {
|
|
199
|
+
params = this.containerWidget.userComponentParams;
|
|
200
|
+
}
|
|
201
|
+
this.onReady(params);
|
|
202
|
+
if (this.viewParent.resolveFragment) {
|
|
203
|
+
this.viewParent.resolveFragment();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
loadScripts() {
|
|
207
|
+
// return new Promise<void>((resolve) => {
|
|
208
|
+
// const scriptsRequired = this.partialDirective.$element.attr('scripts-to-load');
|
|
209
|
+
// if (scriptsRequired) {
|
|
210
|
+
// this.scriptLoaderService
|
|
211
|
+
// .load(...scriptsRequired.split(','))
|
|
212
|
+
// .then(resolve);
|
|
213
|
+
// } else {
|
|
214
|
+
// resolve();
|
|
215
|
+
// }
|
|
216
|
+
// });
|
|
217
|
+
}
|
|
218
|
+
registerPropsInContainerWidget(resolveFn) {
|
|
219
|
+
this.customwidgetConfigProvider.getConfig(this.customWidgetName).then((config) => {
|
|
220
|
+
if (config) {
|
|
221
|
+
Object.entries((config.properties || {})).forEach(([key, prop]) => {
|
|
222
|
+
let expr;
|
|
223
|
+
const value = _.trim(prop.value);
|
|
224
|
+
if (_.startsWith(value, 'bind:')) {
|
|
225
|
+
expr = value.replace('bind:', '');
|
|
226
|
+
}
|
|
227
|
+
Object.defineProperty(this, key, {
|
|
228
|
+
get: () => this.containerWidget[key],
|
|
229
|
+
set: nv => this.containerWidget.widget[key] = nv
|
|
230
|
+
});
|
|
231
|
+
if (expr) {
|
|
232
|
+
//[Todo-CSP]: expr will be generated with prefab.comp.expr.ts
|
|
233
|
+
this.registerDestroyListener($watch(expr, this, {}, nv => this.containerWidget.widget[key] = nv));
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
this.containerWidget.setProps(config, resolveFn);
|
|
238
|
+
// Reassigning the proxy handler for prefab inbound properties as we
|
|
239
|
+
// will get them only after the prefab config call.
|
|
240
|
+
if (isIE()) {
|
|
241
|
+
this.containerWidget.widget = this.containerWidget.createProxy();
|
|
242
|
+
}
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
mute() {
|
|
246
|
+
const m = o => { o && o.mute && o.mute(); };
|
|
247
|
+
_.each(this.Widgets, m);
|
|
248
|
+
_.each(this.Variables, m);
|
|
249
|
+
_.each(this.Actions, m);
|
|
250
|
+
}
|
|
251
|
+
unmute() {
|
|
252
|
+
const um = o => { o && o.unmute && o.unmute(); };
|
|
253
|
+
_.each(this.Widgets, um);
|
|
254
|
+
_.each(this.Variables, um);
|
|
255
|
+
_.each(this.Actions, um);
|
|
256
|
+
}
|
|
257
|
+
// ngOnInit() {
|
|
258
|
+
// this.init();
|
|
259
|
+
// }
|
|
260
|
+
ngAfterViewInit() {
|
|
261
|
+
this.registerChangeListeners();
|
|
262
|
+
this.registerBaseWidget();
|
|
263
|
+
setTimeout(() => {
|
|
264
|
+
this.viewInit$.complete();
|
|
265
|
+
this.fragmentsLoaded$.subscribe(noop, noop, () => this.invokeOnReady());
|
|
266
|
+
}, 100);
|
|
267
|
+
}
|
|
268
|
+
ngOnDestroy() {
|
|
269
|
+
this.destroy$.complete();
|
|
270
|
+
}
|
|
271
|
+
ngOnAttach(refreshData) {
|
|
272
|
+
this.unmute();
|
|
273
|
+
if (refreshData) {
|
|
274
|
+
const refresh = v => { v && v.startUpdate && v.invoke && v.invoke(); };
|
|
275
|
+
_.each(this.Variables, refresh);
|
|
276
|
+
_.each(this.Actions, refresh);
|
|
277
|
+
}
|
|
278
|
+
_.each(this.Widgets, w => w && w.ngOnAttach && w.ngOnAttach());
|
|
279
|
+
}
|
|
280
|
+
ngOnDetach() {
|
|
281
|
+
this.mute();
|
|
282
|
+
_.each(this.Widgets, w => w && w.ngOnDetach && w.ngOnDetach());
|
|
283
|
+
}
|
|
284
|
+
// user overrides this
|
|
285
|
+
onPropertyChange() { }
|
|
286
|
+
onReady(params) {
|
|
287
|
+
}
|
|
288
|
+
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵBaseCustomWidgetComponent_BaseFactory; return function BaseCustomWidgetComponent_Factory(t) { return (ɵBaseCustomWidgetComponent_BaseFactory || (ɵBaseCustomWidgetComponent_BaseFactory = i0.ɵɵgetInheritedFactory(BaseCustomWidgetComponent)))(t || BaseCustomWidgetComponent); }; })(); }
|
|
289
|
+
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: BaseCustomWidgetComponent, features: [i0.ɵɵInheritDefinitionFeature] }); }
|
|
290
|
+
}
|
|
291
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BaseCustomWidgetComponent, [{
|
|
292
|
+
type: Directive
|
|
293
|
+
}], null, null); })();
|
|
294
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jdXN0b20td2lkZ2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvY29tcG9uZW50cy9iYXNlLWN1c3RvbS13aWRnZXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFLSCxTQUFTLEVBQ1QsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFFbkIsR0FBRyxFQUNILElBQUksRUFDSixRQUFRLEVBQ1IsbUJBQW1CLEVBQ25CLFlBQVksRUFFWixNQUFNLEVBQ04sSUFBSSxFQUNQLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBdUIsU0FBUyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDOUMsT0FBTyxFQUFDLG9CQUFvQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sc0JBQXNCLENBQUM7O0FBSTdFLDBDQUEwQztBQUcxQyxNQUFNLE9BQWdCLHlCQUEwQixTQUFRLGVBQWU7SUFEdkU7O1FBR0ksZUFBVSxHQUFRLEVBQUUsQ0FBQztRQXFCckIsbUJBQWMsR0FBRyxLQUFLLENBQUM7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Q0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsZ0JBQWdCLEtBQUssQ0FBQztJQUV0QixPQUFPLENBQUMsTUFBTztJQUNmLENBQUM7d1FBclZpQix5QkFBeUIsU0FBekIseUJBQXlCO29FQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FEOUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgVmlld0NoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgICAkaW52b2tlV2F0Y2hlcnMsXG4gICAgQWJzdHJhY3RJMThuU2VydmljZSxcbiAgICBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIEFwcCxcbiAgICBub29wLFxuICAgIFZpZXdwb3J0LFxuICAgIFNjcmlwdExvYWRlclNlcnZpY2UsXG4gICAgVXRpbHNTZXJ2aWNlLFxuICAgIHJlZ2lzdGVyRm5CeUV4cHIsXG4gICAgJHdhdGNoLFxuICAgIGlzSUUsIGlzRGVmaW5lZFxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge2dldFdpZGdldFByb3BzQnlUeXBlLCBXaWRnZXRSZWZ9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgUGFnZURpcmVjdGl2ZSwgU3BhUGFnZURpcmVjdGl2ZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL3BhZ2UnO1xuaW1wb3J0IHtQcmVmYWJEaXJlY3RpdmV9IGZyb20gJ0B3bS9jb21wb25lbnRzL3ByZWZhYic7XG5pbXBvcnQgeyBWYXJpYWJsZXNTZXJ2aWNlIH0gZnJvbSAnQHdtL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBDdXN0b213aWRnZXRDb25maWdQcm92aWRlciB9IGZyb20gJy4uL3R5cGVzL3R5cGVzJztcbmltcG9ydCB7IEZyYWdtZW50TW9uaXRvciB9IGZyb20gJy4uL3V0aWwvZnJhZ21lbnQtbW9uaXRvcic7XG5pbXBvcnQgeyBBcHBNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2FwcC5tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtjb21tb25QYXJ0aWFsV2lkZ2V0c30gZnJvbSBcIi4vYmFzZS1wYXJ0aWFsLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtjYXBpdGFsaXplLCBmb3JFYWNofSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQge0NoZWNrYm94c2V0Q29tcG9uZW50LCBSYWRpb3NldENvbXBvbmVudH0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0XCI7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuLy8gZXhwb3J0IGNvbnN0IGNvbW1vblBhcnRpYWxXaWRnZXRzID0ge307XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDdXN0b21XaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBGcmFnbWVudE1vbml0b3IgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIFdpZGdldHM6IGFueTtcbiAgICBCYXNlV2lkZ2V0OiBhbnkgPSB7fTtcbiAgICBWYXJpYWJsZXM6IGFueTtcbiAgICBBY3Rpb25zOiBhbnk7XG4gICAgQXBwOiBBcHA7XG4gICAgaW5qZWN0b3I6IEluamVjdG9yO1xuICAgIGN1c3RvbVdpZGdldE5hbWU6IHN0cmluZztcbiAgICBhY3RpdmVQYWdlTmFtZTogc3RyaW5nO1xuICAgIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBhcHBNYW5hZ2VyOiBBcHBNYW5hZ2VyU2VydmljZTtcbiAgICBuYXZpZ2F0aW9uU2VydmljZTogQWJzdHJhY3ROYXZpZ2F0aW9uU2VydmljZTtcbiAgICByb3V0ZXI6IFJvdXRlcjtcbiAgICBwcm9wczogYW55O1xuICAgIGNvbnRhaW5lcldpZGdldDogYW55O1xuICAgIGkxOG5TZXJ2aWNlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlO1xuICAgIGFwcExvY2FsZTogYW55O1xuICAgIC8vIEBWaWV3Q2hpbGQoUGFydGlhbERpcmVjdGl2ZSkgcGFydGlhbERpcmVjdGl2ZTtcbiAgICBwYWdlRGlyZWN0aXZlOiBQYWdlRGlyZWN0aXZlIHwgU3BhUGFnZURpcmVjdGl2ZTtcbiAgICBQcmVmYWI6IFByZWZhYkRpcmVjdGl2ZTtcbiAgICBzY3JpcHRMb2FkZXJTZXJ2aWNlOiBTY3JpcHRMb2FkZXJTZXJ2aWNlO1xuICAgIGN1c3RvbXdpZGdldENvbmZpZ1Byb3ZpZGVyOiBDdXN0b213aWRnZXRDb25maWdQcm92aWRlcjtcbiAgICBWaWV3cG9ydDogVmlld3BvcnQ7XG4gICAgY29tcGlsZUNvbnRlbnQgPSBmYWxzZTtcbiAgICBzcGE6IGJvb2xlYW47XG4gICAgZXZlbnRzOiBhbnk7XG5cbiAgICBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgdmlld0luaXQkID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIHZpZXdQYXJlbnQ6IGFueTtcblxuICAgIGFic3RyYWN0IGV2YWxVc2VyU2NyaXB0KHByZWZhYkNvbnRleHQ6IGFueSwgYXBwQ29udGV4dDogYW55LCB1dGlsczogYW55KTtcblxuICAgIGFic3RyYWN0IGdldFZhcmlhYmxlcygpO1xuXG4gICAgZ2V0Q29udGFpbmVyV2lkZ2V0SW5qZWN0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRhaW5lcldpZGdldC5pbmogfHwgdGhpcy5jb250YWluZXJXaWRnZXQuaW5qZWN0b3I7XG4gICAgfVxuXG4gICAgaW5pdCgpIHtcbiAgICAgICAgbGV0IHJlc29sdmVGbjogRnVuY3Rpb247XG4gICAgICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzKT0+IHJlc29sdmVGbiA9IHJlcylcbiAgICAgICAgdGhpcy5BcHAgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoQXBwKSA6IGluamVjdChBcHApO1xuICAgICAgICAvL21ha2luZyB0aGUgY29kZSBjb21wYXRpYmxlIGluIGJvdGggdGhlIEpJVCBhbmQgQU9UIG1vZGVzXG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0ID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFdpZGdldFJlZikgOiBpbmplY3QoV2lkZ2V0UmVmKTtcbiAgICAgICAgdGhpcy5pMThuU2VydmljZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChBYnN0cmFjdEkxOG5TZXJ2aWNlKSA6IGluamVjdChBYnN0cmFjdEkxOG5TZXJ2aWNlKTtcbiAgICAgICAgdGhpcy5zY3JpcHRMb2FkZXJTZXJ2aWNlID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFNjcmlwdExvYWRlclNlcnZpY2UpIDogaW5qZWN0KFNjcmlwdExvYWRlclNlcnZpY2UpO1xuICAgICAgICB0aGlzLlZpZXdwb3J0ID0gdGhpcy5pbmplY3RvciA/IHRoaXMuaW5qZWN0b3IuZ2V0KFZpZXdwb3J0KSA6IGluamVjdChWaWV3cG9ydCk7XG4gICAgICAgIHRoaXMuY3VzdG9td2lkZ2V0Q29uZmlnUHJvdmlkZXIgPSB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoQ3VzdG9td2lkZ2V0Q29uZmlnUHJvdmlkZXIpIDogaW5qZWN0KEN1c3RvbXdpZGdldENvbmZpZ1Byb3ZpZGVyKTtcbiAgICAgICAgLy8gdGhpcy52aWV3Q29udGFpbmVyUmVmID0gdGhpcy5nZXRDb250YWluZXJXaWRnZXRJbmplY3RvcigpLmdldChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgLy8gUmVwbGFjaW5nIHRoaXMuZ2V0Q29udGFpbmVyV2lkZ2V0SW5qZWN0b3IoKS52aWV3LmNvbXBvbmVudCBhcyB2aWV3UGFyZW50XG4gICAgICAgIC8vIHRoaXMudmlld1BhcmVudCA9ICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KS5wYXJlbnRJbmplY3Rvci5fbFZpZXdbOF07XG4gICAgICAgIHRoaXMudmlld1BhcmVudCA9IHRoaXMuY29udGFpbmVyV2lkZ2V0LnZpZXdQYXJlbnQ7XG5cbiAgICAgICAgaWYgKHRoaXMudmlld1BhcmVudC5yZWdpc3RlckZyYWdtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdQYXJlbnQucmVnaXN0ZXJGcmFnbWVudCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcmVnaXN0ZXIgZnVuY3Rpb25zIGZvciBiaW5kaW5nIGV2YWx1YXRpb25cbiAgICAgICAgdGhpcy5yZWdpc3RlckV4cHJlc3Npb25zKCk7XG4gICAgICAgIHRoaXMuaW5pdFVzZXJTY3JpcHQoKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlclByb3BzSW5Db250YWluZXJXaWRnZXQocmVzb2x2ZUZuKTtcbiAgICAgICAgLy8gVXNpbmcgcHJvbWlzZSB0byBtYWtlIHN1cmUgdGhlIHByb3BzIGFyZSByZWdpc3RlcmVkIGluIHRoZSBjb250YWluZXIgd2lkZ2V0IGJlZm9yZSByZWdpc3RlcmluZyBldmVudHMsIE90aGVyd2lzZSBubyBldmVudHMgd2lsbCBiZSByZWdpc3RlcmVkXG4gICAgICAgIHByb21pc2UudGhlbigoKSA9PiB0aGlzLnJlZ2lzdGVyRXZlbnRzKCkpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJXaWRnZXRzKCk7XG4gICAgICAgIHRoaXMuaW5pdFZhcmlhYmxlcygpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlUGFnZU5hbWUgPSB0aGlzLkFwcC5hY3RpdmVQYWdlTmFtZTsgLy8gVG9kbzogcmVtb3ZlIHRoaXNcbiAgICAgICAgdGhpcy5yZWdpc3RlclByb3BzKCk7XG4gICAgICAgIHRoaXMuZGVmaW5lSTE4blByb3BzKCk7XG5cbiAgICAgICAgdGhpcy52aWV3SW5pdCQuc3Vic2NyaWJlKG5vb3AsIG5vb3AsICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucHJvcHMgPSB0aGlzLmNvbnRhaW5lcldpZGdldC5wcm9wcztcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYodGhpcy5zcGEpIHtcbiAgICAgICAgICAgIHRoaXMucGFnZURpcmVjdGl2ZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChTcGFQYWdlRGlyZWN0aXZlKSA6IGluamVjdChTcGFQYWdlRGlyZWN0aXZlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMucGFnZURpcmVjdGl2ZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChQYWdlRGlyZWN0aXZlKSA6IGluamVjdChQYWdlRGlyZWN0aXZlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5wYWdlRGlyZWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKHRoaXMucGFnZURpcmVjdGl2ZS5zdWJzY3JpYmUoJ2F0dGFjaCcsIGRhdGEgPT4gdGhpcy5uZ09uQXR0YWNoKGRhdGEucmVmcmVzaERhdGEpKSk7XG4gICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKHRoaXMucGFnZURpcmVjdGl2ZS5zdWJzY3JpYmUoJ2RldGFjaCcsICgpID0+IHRoaXMubmdPbkRldGFjaCgpKSk7XG4gICAgICAgIH1cbiAgICAgICAgc3VwZXIuaW5pdCgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyV2lkZ2V0cygpIHtcbiAgICAgICAgLy8gY29tbW9uIHBhcnRpYWwgd2lkZ2V0cyBzaG91bGQgYmUgYWNjZXNzaWJsZSBmcm9tIHBhZ2VcbiAgICAgICAgdGhpcy5XaWRnZXRzID0gT2JqZWN0LmNyZWF0ZShjb21tb25QYXJ0aWFsV2lkZ2V0cyk7XG5cbiAgICAgICAgLy8gZXhwb3NlIGN1cnJlbnQgcGFnZSB3aWRnZXRzIG9uIGFwcFxuICAgICAgICAodGhpcy5BcHAgYXMgYW55KS5XaWRnZXRzID0gT2JqZWN0LmNyZWF0ZSh0aGlzLldpZGdldHMpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVDb21wb25lbnREYXRhKGNoaWxkcmVuKSB7XG4gICAgICAgIEFycmF5LmZyb20oY2hpbGRyZW4pLmZvckVhY2goKGNoaWxkOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGlmKCFjaGlsZC5oYXNBdHRyaWJ1dGUoJ3dtY3VzdG9td2lkZ2V0JykpXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50RGF0YShjaGlsZC5jaGlsZHJlbik7XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhc0F0dHIgPSBjaGlsZC5nZXRBdHRyaWJ1dGUoJ2FzJykgfHwgJyc7XG4gICAgICAgICAgICAgICAgaWYgKCFhc0F0dHIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgYmFzZVdpZGdldCwgc3BsaXRBcnIgPSBhc0F0dHIuc3BsaXQoJy0nKSwgbW9kaWZpZWRBcnIgPSBbXTtcbiAgICAgICAgICAgICAgICBtb2RpZmllZEFyciA9IHNwbGl0QXJyLm1hcCgoaXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBpdGVtICE9PSAnd20nID8gY2FwaXRhbGl6ZShpdGVtKSA6IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJhc2VXaWRnZXQgPSBtb2RpZmllZEFyci5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGJhc2VXaWRnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnd21DaGVja2JveHNldCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdID0gbmV3IENoZWNrYm94c2V0Q29tcG9uZW50KHRoaXMuaW5qZWN0b3IsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdW1wiX3NlbGVjdFwiXSA9IChpdGVtOiBhbnksICRldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qga2V5cyA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvckVhY2godGhpc1tiYXNlV2lkZ2V0XS5kYXRhc2V0SXRlbXMsIChkYXRhc2V0SXRlbTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGFzZXRJdGVtLmtleSA9PT0gaXRlbS5rZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhc2V0SXRlbS5zZWxlY3RlZCA9ICFkYXRhc2V0SXRlbS5zZWxlY3RlZDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihkYXRhc2V0SXRlbS5zZWxlY3RlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMucHVzaChkYXRhc2V0SXRlbS5rZXkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNbYmFzZVdpZGdldF0udHJpZ2dlckludm9rZU9uQ2hhbmdlKGtleXMsICRldmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnd21SYWRpb3NldCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdID0gbmV3IFJhZGlvc2V0Q29tcG9uZW50KHRoaXMuaW5qZWN0b3IsIHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdW1wiX3NlbGVjdFwiXSA9IChpdGVtOiBhbnksICRldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdLnRyaWdnZXJJbnZva2VPbkNoYW5nZShpdGVtLmtleSwgJGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIHRoaXMuY29udGFpbmVyV2lkZ2V0LiRhdHRycykge1xuICAgICAgICAgICAgICAgICAgICBpZihrZXkuc3RhcnRzV2l0aCgnYmFzZS0nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1vZGlmaWVkS2V5ID0ga2V5LnJlcGxhY2UoJ2Jhc2UtJywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1tiYXNlV2lkZ2V0XVttb2RpZmllZEtleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzW2Jhc2VXaWRnZXRdLmluaXREYXRhc2V0SXRlbXMoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldFtiYXNlV2lkZ2V0XSA9IHRoaXNbYmFzZVdpZGdldF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQmFzZVdpZGdldCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplQ29tcG9uZW50RGF0YSh0aGlzLmNvbnRhaW5lcldpZGdldC5uYXRpdmVFbGVtZW50LmNoaWxkcmVuKTtcbiAgICB9XG5cbiAgICBpbnZva2VFdmVudCA9IChldmVudE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICB0aGlzLmV2ZW50c1tldmVudE5hbWVdKCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJFdmVudHMoKSB7XG4gICAgICAgIHRoaXMuZXZlbnRzID0ge307XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LmV2ZW50SGFuZGxlcnMuZm9yRWFjaCgoY2FsbGJhY2s6IGFueSwga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZXZlbnRzW2tleV0gPSAoLi4uYXJncykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0Lmludm9rZUV2ZW50Q2FsbGJhY2soa2V5LCB7JGV2ZW50OiBhcmdzWzBdLCAkZGF0YTogYXJnc1sxXX0pO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoZm46IEZ1bmN0aW9uKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuc3Vic2NyaWJlKG5vb3AsIG5vb3AsICgpID0+IGZuKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQ2hhbmdlTGlzdGVuZXJzKCkge1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZGdldC5yZWdpc3RlclByb3BlcnR5Q2hhbmdlTGlzdGVuZXIodGhpcy5vblByb3BlcnR5Q2hhbmdlKTtcbiAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQucmVnaXN0ZXJTdHlsZUNoYW5nZUxpc3RlbmVyKHRoaXMub25Qcm9wZXJ0eUNoYW5nZSk7XG4gICAgfVxuXG4gICAgaW5pdFVzZXJTY3JpcHQoKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBwYXJ0aWFscyBpbnNpZGUgcHJlZmFiIHNob3VsZCBoYXZlIGFjY2VzcyB0byBQcmVmYWIgcHJvcGVydGllcyBhbmQgZXZlbnRzXG4gICAgICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50LnByZWZhYk5hbWUpIHtcbiAgICAgICAgICAgICAgICAvLyBmb3IgcGFydGlhbCB3aXRoaW4gcGFydGlhbCB3aXRoaW4gcHJlZmFicywganVzdCBhc3NpZ24gdGhlIHBhcmVudCBwYXJ0aWFsJ3MgcHJlZmFiIG9iamVjdFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnZpZXdQYXJlbnQuUHJlZmFiKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuUHJlZmFiID0gdGhpcy52aWV3UGFyZW50LlByZWZhYjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLlByZWZhYiA9IHRoaXMudmlld1BhcmVudDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmV2YWxVc2VyU2NyaXB0KHRoaXMsIHRoaXMuQXBwLCB0aGlzLmluamVjdG9yID8gdGhpcy5pbmplY3Rvci5nZXQoVXRpbHNTZXJ2aWNlKSA6IGluamVjdChVdGlsc1NlcnZpY2UpKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3IgaW4gZXZhbHVhdGluZyBwYXJ0aWFsICgke3RoaXMuY3VzdG9tV2lkZ2V0TmFtZX0pIHNjcmlwdFxcbmAsIGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdFZhcmlhYmxlcygpIHtcbiAgICAgICAgY29uc3QgdmFyaWFibGVzU2VydmljZSA9IHRoaXMuaW5qZWN0b3IgPyB0aGlzLmluamVjdG9yLmdldChWYXJpYWJsZXNTZXJ2aWNlKSA6IGluamVjdChWYXJpYWJsZXNTZXJ2aWNlKTtcblxuICAgICAgICAvLyBnZXQgdmFyaWFibGVzIGFuZCBhY3Rpb25zIGluc3RhbmNlcyBmb3IgdGhlIHBhZ2VcbiAgICAgICAgY29uc3QgdmFyaWFibGVDb2xsZWN0aW9uID0gdmFyaWFibGVzU2VydmljZS5yZWdpc3Rlcih0aGlzLmN1c3RvbVdpZGdldE5hbWUsIHRoaXMuZ2V0VmFyaWFibGVzKCksIHRoaXMpO1xuXG4gICAgICAgIC8vIGNyZWF0ZSBuYW1lc3BhY2UgZm9yIFZhcmlhYmxlcyBuYWQgQWN0aW9ucyBvbiBwYWdlL3BhcnRpYWwsIHdoaWNoIGluaGVyaXRzIHRoZSBWYXJpYWJsZXMgYW5kIEFjdGlvbnMgZnJvbSBBcHAgaW5zdGFuY2VcbiAgICAgICAgdGhpcy5WYXJpYWJsZXMgPSBPYmplY3QuY3JlYXRlKHRoaXMuQXBwLlZhcmlhYmxlcyk7XG4gICAgICAgIHRoaXMuQWN0aW9ucyA9IE9iamVjdC5jcmVhdGUodGhpcy5BcHAuQWN0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQuVmFyaWFibGVzID0gdGhpcy5WYXJpYWJsZXM7XG4gICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LkFjdGlvbnMgPSB0aGlzLkFjdGlvbnM7XG5cbiAgICAgICAgLy8gYXNzaWduIGFsbCB0aGUgcGFnZSB2YXJpYWJsZXMgdG8gdGhlIHBhZ2VJbnN0YW5jZVxuICAgICAgICBPYmplY3QuZW50cmllcyh2YXJpYWJsZUNvbGxlY3Rpb24uVmFyaWFibGVzKS5mb3JFYWNoKChbbmFtZSwgdmFyaWFibGVdKSA9PiB0aGlzLlZhcmlhYmxlc1tuYW1lXSA9IHZhcmlhYmxlKTtcbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFyaWFibGVDb2xsZWN0aW9uLkFjdGlvbnMpLmZvckVhY2goKFtuYW1lLCBhY3Rpb25dKSA9PiB0aGlzLkFjdGlvbnNbbmFtZV0gPSBhY3Rpb24pO1xuXG5cbiAgICAgICAgdGhpcy52aWV3SW5pdCQuc3Vic2NyaWJlKG5vb3AsIG5vb3AsICgpID0+IHtcbiAgICAgICAgICAgIC8vIFRFTVA6IHRyaWdnZXJpbmcgd2F0Y2hlcnMgc28gdmFyaWFibGVzIHdhdGNoaW5nIG92ZXIgcGFyYW1zIGFyZSB1cGRhdGVkXG4gICAgICAgICAgICAkaW52b2tlV2F0Y2hlcnModHJ1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB2YXJpYWJsZUNvbGxlY3Rpb24uY2FsbGJhY2sodmFyaWFibGVDb2xsZWN0aW9uLlZhcmlhYmxlcykuY2F0Y2gobm9vcCk7XG4gICAgICAgICAgICB2YXJpYWJsZUNvbGxlY3Rpb24uY2FsbGJhY2sodmFyaWFibGVDb2xsZWN0aW9uLkFjdGlvbnMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBmdW5jdGlvbiB0byByZWdpc3RlciBiaW5kIGV4cHJlc3Npb25zIGdlbmVyYXRlZCBpbiB0aGlzIHBhcnRpYWwgaW5zdGFuY2VcbiAgICAgKiBnZXRFeHByZXNzaW9ucyBmdW5jdGlvbiBpcyBkZWZpbmVkIGluIHRoZSBnZW5lcmF0ZWQgcGFnZS5jb21wLnRzIGZpbGVcbiAgICAgKiBAcGFyYW0gZXhwcmVzc2lvbnMsIG1hcCBvZiBiaW5kIGV4cHJlc3Npb24gdnMgZ2VuZXJhdGVkIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcmVnaXN0ZXJFeHByZXNzaW9ucygpIHtcbiAgICAgICAgLy8gY29uc3QgZXhwcmVzc2lvbnMgPSB0aGlzLmdldEV4cHJlc3Npb25zKCk7XG4gICAgICAgIC8vIF8uZWFjaChleHByZXNzaW9ucywgKGZuLCBleHByKT0+e1xuICAgICAgICAvLyAgICAgcmVnaXN0ZXJGbkJ5RXhwcihleHByLCBmblswXSwgZm5bMV0pO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICByZWdpc3RlclByb3BzKCkge1xuICAgICAgICB0aGlzLnByb3BzID0gdGhpcy5jb250YWluZXJXaWRnZXQucHJvcHM7XG4gICAgfVxuXG4gICAgZGVmaW5lSTE4blByb3BzKCkge1xuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IHRoaXMuaTE4blNlcnZpY2UuZ2V0QXBwTG9jYWxlKCk7XG4gICAgfVxuXG4gICAgaW52b2tlT25SZWFkeSgpIHtcbiAgICAgICAgbGV0IHBhcmFtcztcbiAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyV2lkZ2V0LnVzZXJDb21wb25lbnRQYXJhbXMpIHtcbiAgICAgICAgICAgIHBhcmFtcyA9IHRoaXMuY29udGFpbmVyV2lkZ2V0LnVzZXJDb21wb25lbnRQYXJhbXM7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vblJlYWR5KHBhcmFtcyk7XG4gICAgICAgIGlmICh0aGlzLnZpZXdQYXJlbnQucmVzb2x2ZUZyYWdtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdQYXJlbnQucmVzb2x2ZUZyYWdtZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGxvYWRTY3JpcHRzKCkge1xuICAgICAgICAvLyByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgICAgLy8gICAgIGNvbnN0IHNjcmlwdHNSZXF1aXJlZCA9IHRoaXMucGFydGlhbERpcmVjdGl2ZS4kZWxlbWVudC5hdHRyKCdzY3JpcHRzLXRvLWxvYWQnKTtcbiAgICAgICAgLy8gICAgIGlmIChzY3JpcHRzUmVxdWlyZWQpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLnNjcmlwdExvYWRlclNlcnZpY2VcbiAgICAgICAgLy8gICAgICAgICAgICAgLmxvYWQoLi4uc2NyaXB0c1JlcXVpcmVkLnNwbGl0KCcsJykpXG4gICAgICAgIC8vICAgICAgICAgICAgIC50aGVuKHJlc29sdmUpO1xuICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIC8vICAgICB9XG4gICAgICAgIC8vIH0pO1xuICAgIH1cbiAgICByZWdpc3RlclByb3BzSW5Db250YWluZXJXaWRnZXQocmVzb2x2ZUZuOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLmN1c3RvbXdpZGdldENvbmZpZ1Byb3ZpZGVyLmdldENvbmZpZyh0aGlzLmN1c3RvbVdpZGdldE5hbWUpLnRoZW4oKGNvbmZpZykgPT4ge1xuICAgICAgICAgICAgaWYgKGNvbmZpZykge1xuICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKChjb25maWcucHJvcGVydGllcyB8fCB7fSkpLmZvckVhY2goKFtrZXksIHByb3BdOiBbc3RyaW5nLCBhbnldKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBleHByO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IF8udHJpbShwcm9wLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoXy5zdGFydHNXaXRoKHZhbHVlLCAnYmluZDonKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwciA9IHZhbHVlLnJlcGxhY2UoJ2JpbmQ6JywgJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIGtleSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZ2V0OiAoKSA9PiB0aGlzLmNvbnRhaW5lcldpZGdldFtrZXldLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0OiBudiA9PiB0aGlzLmNvbnRhaW5lcldpZGdldC53aWRnZXRba2V5XSA9IG52XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChleHByKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvL1tUb2RvLUNTUF06IGV4cHIgd2lsbCBiZSBnZW5lcmF0ZWQgd2l0aCBwcmVmYWIuY29tcC5leHByLnRzXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3YXRjaChleHByLCB0aGlzLCB7fSwgbnYgPT4gdGhpcy5jb250YWluZXJXaWRnZXQud2lkZ2V0W2tleV0gPSBudilcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb250YWluZXJXaWRnZXQuc2V0UHJvcHMoY29uZmlnLCByZXNvbHZlRm4pO1xuICAgICAgICAgICAgLy8gUmVhc3NpZ25pbmcgdGhlIHByb3h5IGhhbmRsZXIgZm9yIHByZWZhYiBpbmJvdW5kIHByb3BlcnRpZXMgYXMgd2VcbiAgICAgICAgICAgIC8vIHdpbGwgZ2V0IHRoZW0gb25seSBhZnRlciB0aGUgcHJlZmFiIGNvbmZpZyBjYWxsLlxuICAgICAgICAgICAgaWYgKGlzSUUoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGFpbmVyV2lkZ2V0LndpZGdldCA9IHRoaXMuY29udGFpbmVyV2lkZ2V0LmNyZWF0ZVByb3h5KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgbXV0ZSgpIHtcbiAgICAgICAgY29uc3QgbSA9IG8gPT4geyBvICYmIG8ubXV0ZSAmJiBvLm11dGUoKTsgfTtcbiAgICAgICAgXy5lYWNoKHRoaXMuV2lkZ2V0cywgbSk7XG4gICAgICAgIF8uZWFjaCh0aGlzLlZhcmlhYmxlcywgbSk7XG4gICAgICAgIF8uZWFjaCh0aGlzLkFjdGlvbnMsIG0pO1xuICAgIH1cblxuICAgIHVubXV0ZSgpIHtcbiAgICAgICAgY29uc3QgdW0gPSBvID0+IHsgbyAmJiBvLnVubXV0ZSAmJiBvLnVubXV0ZSgpOyB9O1xuICAgICAgICBfLmVhY2godGhpcy5XaWRnZXRzLCB1bSk7XG4gICAgICAgIF8uZWFjaCh0aGlzLlZhcmlhYmxlcywgdW0pO1xuICAgICAgICBfLmVhY2godGhpcy5BY3Rpb25zLCB1bSk7XG4gICAgfVxuXG4gICAgLy8gbmdPbkluaXQoKSB7XG4gICAgLy8gICAgIHRoaXMuaW5pdCgpO1xuICAgIC8vIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckNoYW5nZUxpc3RlbmVycygpO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyQmFzZVdpZGdldCgpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3SW5pdCQuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZyYWdtZW50c0xvYWRlZCQuc3Vic2NyaWJlKG5vb3AsIG5vb3AsICgpID0+IHRoaXMuaW52b2tlT25SZWFkeSgpKTtcbiAgICAgICAgICAgIH0sIDEwMCk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBuZ09uQXR0YWNoKHJlZnJlc2hEYXRhKSB7XG4gICAgICAgIHRoaXMudW5tdXRlKCk7XG4gICAgICAgIGlmIChyZWZyZXNoRGF0YSkge1xuICAgICAgICAgICAgY29uc3QgcmVmcmVzaCA9IHYgPT4geyB2ICYmIHYuc3RhcnRVcGRhdGUgJiYgdi5pbnZva2UgJiYgdi5pbnZva2UoKTsgfTtcbiAgICAgICAgICAgIF8uZWFjaCh0aGlzLlZhcmlhYmxlcywgcmVmcmVzaCk7XG4gICAgICAgICAgICBfLmVhY2godGhpcy5BY3Rpb25zLCByZWZyZXNoKTtcbiAgICAgICAgfVxuICAgICAgICBfLmVhY2godGhpcy5XaWRnZXRzLCB3ID0+IHcgJiYgdy5uZ09uQXR0YWNoICYmIHcubmdPbkF0dGFjaCgpKTtcbiAgICB9XG5cbiAgICBuZ09uRGV0YWNoKCkge1xuICAgICAgICB0aGlzLm11dGUoKTtcbiAgICAgICAgXy5lYWNoKHRoaXMuV2lkZ2V0cywgdyA9PiB3ICYmIHcubmdPbkRldGFjaCAmJiB3Lm5nT25EZXRhY2goKSk7XG4gICAgfVxuXG4gICAgLy8gdXNlciBvdmVycmlkZXMgdGhpc1xuICAgIG9uUHJvcGVydHlDaGFuZ2UoKSB7IH1cblxuICAgIG9uUmVhZHkocGFyYW1zPykge1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -3,6 +3,7 @@ export * from './services/app.manager.service';
|
|
|
3
3
|
export * from './services/prefab-manager.service';
|
|
4
4
|
export * from './components/base-page.component';
|
|
5
5
|
export * from './components/base-partial.component';
|
|
6
|
+
export * from './components/base-custom-widget.component';
|
|
6
7
|
export * from './components/base-prefab.component';
|
|
7
8
|
export * from './components/base-layout.component';
|
|
8
9
|
export * from './components/base-spa-page.component';
|
|
@@ -42,4 +43,4 @@ export * from './services/toaster.service';
|
|
|
42
43
|
export * from './types/types';
|
|
43
44
|
export * from './util/fragment-monitor';
|
|
44
45
|
export * from './util/utils';
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsc0NBQXNDLENBQUE7QUFDcEQsT0FBTyxFQUNILGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsdUNBQXVDLEVBQ3ZDLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDdEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsT0FBTyxFQUNILE1BQU0sRUFDVCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsT0FBTyxFQUNILGtDQUFrQyxFQUNyQyxNQUFNLG1EQUFtRCxDQUFDO0FBQzNELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxPQUFPLEVBQ0gsb0JBQW9CLEVBQ3ZCLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQcmVmYWJNYW5hZ2VyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJlZmFiLW1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBSZWYgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcbmltcG9ydCB7IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2R5bmFtaWMtY29tcG9uZW50LXJlZi1wcm92aWRlci5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi90eXBlcy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2FwcC5tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXBhcnRpYWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLWN1c3RvbS13aWRnZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9iYXNlLXByZWZhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1zcGEtcGFnZS5jb21wb25lbnQnXG5leHBvcnQge1xuICAgIEluaXRpYWxpemVBcHAsXG4gICAgc2V0QW5ndWxhckxvY2FsZSxcbiAgICBSRVFVSVJFRF9NT0RVTEVTX0ZPUl9EWU5BTUlDX0NPTVBPTkVOVFMsXG4gICAgUnVudGltZUJhc2VNb2R1bGUsXG4gICAgV01fTU9EVUxFU19GT1JfUk9PVFxufSBmcm9tICcuL3J1bnRpbWUtYmFzZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9ndWFyZHMvcm9sZS5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2d1YXJkcy9wYWdlLW5vdC1mb3VuZC5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9lbXB0eS1jb21wb25lbnQvZW1wdHktcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3ByZWZhYi1wcmV2aWV3LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL2FwcC1qcy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvYXBwLWV4dGVuc2lvbi5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvYXBwLXZhcmlhYmxlcy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvaTE4bi5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZXMvbWV0YWRhdGEucmVzb2x2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc29sdmVzL3NlY3VyaXR5LWNvbmZpZy5yZXNvbHZlJztcbmV4cG9ydCAqIGZyb20gJy4vZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLXBhZ2UuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi91dGlsL3dtLXJvdXRlLXJldXNlLXN0cmF0ZWd5JztcbmV4cG9ydCAqIGZyb20gJy4vY29tcG9uZW50cy9hcHAtc3Bpbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2Jhc2UtcGFydGlhbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS10b2FzdGVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvYWNjZXNzcm9sZXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vZGlyZWN0aXZlcy9wcmVmYWIuZGlyZWN0aXZlJztcbmV4cG9ydCB7XG4gICAgQXBwUmVmXG59IGZyb20gJy4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9hcHAtZGVmYXVsdHMuc2VydmljZSc7XG5leHBvcnQge1xuICAgIER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2Vcbn0gZnJvbSAnLi9zZXJ2aWNlcy9keW5hbWljLWNvbXBvbmVudC1yZWYtcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9pMThuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9waXBlLXByb3ZpZGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9waXBlLnNlcnZpY2UnO1xuZXhwb3J0IHtcbiAgICBQcmVmYWJNYW5hZ2VyU2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzL3ByZWZhYi1tYW5hZ2VyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9zcGlubmVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcy90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvZnJhZ21lbnQtbW9uaXRvcic7XG5leHBvcnQgKiBmcm9tICcuL3V0aWwvdXRpbHMnO1xuIl19
|
|
@@ -91,6 +91,7 @@ import { PopoverModule } from "@wm/components/navigation/popover";
|
|
|
91
91
|
import { CarouselModule } from "@wm/components/advanced/carousel";
|
|
92
92
|
import { LoginModule } from "@wm/components/advanced/login";
|
|
93
93
|
import { MarqueeModule } from "@wm/components/advanced/marquee";
|
|
94
|
+
import { CustomModule } from "@wm/components/advanced/custom";
|
|
94
95
|
import { BsDatepickerModule } from "ngx-bootstrap/datepicker";
|
|
95
96
|
import { TimepickerModule as ngxTimepickerModule } from "ngx-bootstrap/timepicker";
|
|
96
97
|
import { BsDropdownModule } from "ngx-bootstrap/dropdown";
|
|
@@ -216,6 +217,7 @@ export const REQUIRED_MODULES_FOR_DYNAMIC_COMPONENTS = [
|
|
|
216
217
|
CarouselModule,
|
|
217
218
|
LoginModule,
|
|
218
219
|
MarqueeModule,
|
|
220
|
+
CustomModule,
|
|
219
221
|
PageModule,
|
|
220
222
|
FooterModule,
|
|
221
223
|
HeaderModule,
|
|
@@ -410,6 +412,7 @@ export class RuntimeBaseModule {
|
|
|
410
412
|
CarouselModule,
|
|
411
413
|
LoginModule,
|
|
412
414
|
MarqueeModule,
|
|
415
|
+
CustomModule,
|
|
413
416
|
PageModule,
|
|
414
417
|
FooterModule,
|
|
415
418
|
HeaderModule,
|
|
@@ -540,6 +543,7 @@ export class RuntimeBaseModule {
|
|
|
540
543
|
CarouselModule,
|
|
541
544
|
LoginModule,
|
|
542
545
|
MarqueeModule,
|
|
546
|
+
CustomModule,
|
|
543
547
|
PageModule,
|
|
544
548
|
FooterModule,
|
|
545
549
|
HeaderModule,
|
|
@@ -624,6 +628,7 @@ export class RuntimeBaseModule {
|
|
|
624
628
|
CarouselModule,
|
|
625
629
|
LoginModule,
|
|
626
630
|
MarqueeModule,
|
|
631
|
+
CustomModule,
|
|
627
632
|
PageModule,
|
|
628
633
|
FooterModule,
|
|
629
634
|
HeaderModule,
|
|
@@ -641,4 +646,4 @@ export const WM_MODULES_FOR_ROOT = [
|
|
|
641
646
|
HttpServiceModule.forRoot(),
|
|
642
647
|
RuntimeBaseModule.forRoot()
|
|
643
648
|
];
|
|
644
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcnVudGltZS1iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FB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QjtRQUVuQixhQUFhO1FBQ2IsZ0JBQWdCO1FBQ2hCLFVBQVU7UUFDVixZQUFZO1FBQ1osYUFBYTtRQUViLFdBQVc7UUFDWCxjQUFjO1FBQ2QsV0FBVztRQUNYLGFBQWE7UUFFYixVQUFVO1FBQ1YsWUFBWTtRQUNaLFlBQVk7UUFDWixlQUFlO1FBQ2YsZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixZQUFZO0FBeUpoQixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixrQkFBa0IsQ0FBQyxPQUFPLEVBQUU7SUFDNUIsbUJBQW1CLENBQUMsT0FBTyxFQUFFO0lBQzdCLFVBQVUsQ0FBQyxPQUFPLEVBQUU7SUFDcEIsY0FBYyxDQUFDLE9BQU8sRUFBRTtJQUN4QixXQUFXLENBQUMsT0FBTyxFQUFFO0lBQ3JCLGVBQWUsQ0FBQyxPQUFPLEVBQUU7SUFDekIsaUJBQWlCLENBQUMsT0FBTyxFQUFFO0lBQzNCLGlCQUFpQixDQUFDLE9BQU8sRUFBRTtDQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBUFBfSU5JVElBTElaRVIsIExPQ0FMRV9JRCwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUsIERlY2ltYWxQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEhUVFBfSU5URVJDRVBUT1JTLCBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgybVTaGFyZWRTdHlsZXNIb3N0IH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge8m1RG9tUmVuZGVyZXJGYWN0b3J5Mn0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBUb2FzdHJNb2R1bGUgfSBmcm9tICduZ3gtdG9hc3RyJztcblxuaW1wb3J0IHtcbiAgICBfV01fQVBQX1BST0pFQ1QsXG4gICAgJHBhcnNlRXhwcixcbiAgICBBYnN0cmFjdEkxOG5TZXJ2aWNlLFxuICAgIEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2UsXG4gICAgQWJzdHJhY3RTcGlubmVyU2VydmljZSxcbiAgICBBYnN0cmFjdFRvYXN0ZXJTZXJ2aWNlLFxuICAgIEFwcCxcbiAgICBBcHBEZWZhdWx0cyxcbiAgICBDb3JlTW9kdWxlLFxuICAgIER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlcixcbiAgICBpc09iamVjdCxcbiAgICBpc0lwaG9uZSxcbiAgICBpc0lwb2QsXG4gICAgaXNJcGFkLFxuICAgIFZpZXdwb3J0LFxuICAgIGhhc0NvcmRvdmFcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgV21Db21wb25lbnRzTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBEaWFsb2dNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9kaWFsb2dzL2NvbmZpcm0tZGlhbG9nJztcbmltcG9ydCB7IERlc2lnbkRpYWxvZ01vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RpYWxvZ3MvZGVzaWduLWRpYWxvZyc7XG5pbXBvcnQgeyBQcmVmYWJNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9wcmVmYWInO1xuaW1wb3J0IHsgTW9iaWxlUnVudGltZU1vZHVsZSB9IGZyb20gJ0B3bS9tb2JpbGUvcnVudGltZSc7XG5pbXBvcnQgeyBTZWN1cml0eU1vZHVsZSB9IGZyb20gJ0B3bS9zZWN1cml0eSc7XG5pbXBvcnQgeyBIdHRwU2VydmljZU1vZHVsZSB9IGZyb20gJ0B3bS9odHRwJztcbmltcG9ydCB7IFZhcmlhYmxlc01vZHVsZSB9IGZyb20gJ0B3bS92YXJpYWJsZXMnO1xuaW1wb3J0IHsgT0F1dGhNb2R1bGUgfSBmcm9tICdAd20vb0F1dGgnO1xuXG5pbXBvcnQgeyBBY2Nlc3Nyb2xlc0RpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9hY2Nlc3Nyb2xlcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXBwU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHAtc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3VzdG9tVG9hc3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tdG9hc3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRW1wdHlQYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VtcHR5LWNvbXBvbmVudC9lbXB0eS1wYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcmVmYWJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvcHJlZmFiLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBcHBSZWYgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC5zZXJ2aWNlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvdG9hc3Rlci5zZXJ2aWNlJztcbmltcG9ydCB7IEkxOG5TZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IFNwaW5uZXJTZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvc3Bpbm5lci5zZXJ2aWNlJztcbmltcG9ydCB7IE5hdmlnYXRpb25TZXJ2aWNlSW1wbCB9IGZyb20gJy4vc2VydmljZXMvbmF2aWdhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFBpcGVTZXJ2aWNlIH0gZnJvbSBcIi4vc2VydmljZXMvcGlwZS5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBBcHBEZWZhdWx0c1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC1kZWZhdWx0cy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcE1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcHAubWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZhYk1hbmFnZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wcmVmYWItbWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IEF1dGhHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL2F1dGguZ3VhcmQnO1xuaW1wb3J0IHsgUm9sZUd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvcm9sZS5ndWFyZCc7XG5pbXBvcnQgeyBQYWdlTm90Rm91bmRHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL3BhZ2Utbm90LWZvdW5kLmd1YXJkJztcbmltcG9ydCB7IEFwcEpTUmVzb2x2ZSB9IGZyb20gJy4vcmVzb2x2ZXMvYXBwLWpzLnJlc29sdmUnO1xuaW1wb3J0IHsgQXBwRXh0ZW5zaW9uSlNSZXNvbHZlIH0gZnJvbSAnLi9yZXNvbHZlcy9hcHAtZXh0ZW5zaW9uLnJlc29sdmUnO1xuaW1wb3J0IHsgSTE4blJlc29sdmUgfSBmcm9tICcuL3Jlc29sdmVzL2kxOG4ucmVzb2x2ZSc7XG5pbXBvcnQgeyBBcHBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwLWNvbXBvbmVudC9hcHAuY29tcG9uZW50JztcbmltcG9ydCB7IEh0dHBDYWxsSW50ZXJjZXB0b3IgfSBmcm9tICcuL3NlcnZpY2VzL2h0dHAtaW50ZXJjZXB0b3Iuc2VydmljZXMnO1xuaW1wb3J0IHsgUHJlZmFiUHJldmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcmVmYWItcHJldmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvZHluYW1pYy1jb21wb25lbnQtcmVmLXByb3ZpZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FuRGVhY3RpdmF0ZVBhZ2VHdWFyZCB9IGZyb20gJy4vZ3VhcmRzL2Nhbi1kZWFjdGl2YXRlLXBhZ2UuZ3VhcmQnO1xuaW1wb3J0IHsgTUFYX0NBQ0hFX0FHRSwgTUFYX0NBQ0hFX1NJWkUgfSBmcm9tICcuL3V0aWwvd20tcm91dGUtcmV1c2Utc3RyYXRlZ3knO1xuXG4vL2FuZ3VsYXIgb3ZlcnJpZGVzXG5pbXBvcnQgeyBXTURvbVNoYXJlZFN0eWxlc0hvc3QgfSBmcm9tIFwiLi9vdmVycmlkZXMvd21fc2hhcmVkX3N0eWxlc19ob3N0XCI7XG5pbXBvcnQgeyBXTURvbVJlbmRlcmVyRmFjdG9yeTIgfSBmcm9tIFwiLi9vdmVycmlkZXMvd21fZG9tX3JlbmRlcmVyXCI7XG5pbXBvcnQge1BhZ2VNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlXCI7XG5pbXBvcnQge0Zvb3Rlck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvZm9vdGVyXCI7XG5pbXBvcnQge0hlYWRlck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvaGVhZGVyXCI7XG5pbXBvcnQge0xlZnRQYW5lbE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvbGVmdC1wYW5lbFwiO1xuaW1wb3J0IHtSaWdodFBhbmVsTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvcGFnZS9yaWdodC1wYW5lbFwiO1xuaW1wb3J0IHtUb3BOYXZNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlL3RvcC1uYXZcIjtcbmltcG9ydCB7QmFzaWNNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNpY1wiO1xuaW1wb3J0IHtQcm9ncmVzc01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2ljL3Byb2dyZXNzXCI7XG5pbXBvcnQge1JpY2hUZXh0RWRpdG9yTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvclwiO1xuaW1wb3J0IHtTZWFyY2hNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNpYy9zZWFyY2hcIjtcbmltcG9ydCB7VHJlZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2ljL3RyZWVcIjtcbmltcG9ydCB7Q2FsZW5kYXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9jYWxlbmRhclwiO1xuaW1wb3J0IHtDaGlwc01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2NoaXBzXCI7XG5pbXBvcnQge0NvbG9yUGlja2VyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvY29sb3ItcGlja2VyXCI7XG5pbXBvcnQge0N1cnJlbmN5TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvY3VycmVuY3lcIjtcbmltcG9ydCB7RXBvY2hNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9lcG9jaFwiO1xuaW1wb3J0IHtGaWxlVXBsb2FkTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvZmlsZS11cGxvYWRcIjtcbmltcG9ydCB7SW5wdXRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dFwiO1xuaW1wb3J0IHtSYXRpbmdNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9yYXRpbmdcIjtcbmltcG9ydCB7U2xpZGVyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvc2xpZGVyXCI7XG5pbXBvcnQge0NhcmRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kYXRhL2NhcmRcIjtcbmltcG9ydCB7Rm9ybU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvZm9ybVwiO1xuaW1wb3J0IHtMaXN0TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS9saXN0XCI7XG5pbXBvcnQge0xpdmVUYWJsZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvbGl2ZS10YWJsZVwiO1xuaW1wb3J0IHtQYWdpbmF0aW9uTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS9wYWdpbmF0aW9uXCI7XG5pbXBvcnQge1RhYmxlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS90YWJsZVwiO1xuaW1wb3J0IHtDaGFydE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NoYXJ0XCI7XG5pbXBvcnQge0FjY29yZGlvbk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvYWNjb3JkaW9uXCI7XG5pbXBvcnQge0xpbmVhckxheW91dE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvbGluZWFyLWxheW91dFwiO1xuaW1wb3J0IHtMYXlvdXRHcmlkTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy9sYXlvdXQtZ3JpZFwiO1xuaW1wb3J0IHtQYW5lbE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvcGFuZWxcIjtcbmltcG9ydCB7VGFic01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvdGFic1wiO1xuaW1wb3J0IHtUaWxlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy90aWxlXCI7XG5pbXBvcnQge1dpemFyZE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2NvbnRhaW5lcnMvd2l6YXJkXCI7XG5pbXBvcnQge0FsZXJ0RGlhbG9nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9hbGVydC1kaWFsb2dcIjtcbmltcG9ydCB7SWZyYW1lRGlhbG9nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9pZnJhbWUtZGlhbG9nXCI7XG5pbXBvcnQge0xvZ2luRGlhbG9nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9sb2dpbi1kaWFsb2dcIjtcbmltcG9ydCB7UGFydGlhbERpYWxvZ01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RpYWxvZ3MvcGFydGlhbC1kaWFsb2dcIjtcbmltcG9ydCB7QnJlYWRjcnVtYk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL25hdmlnYXRpb24vYnJlYWRjcnVtYlwiO1xuaW1wb3J0IHtNZW51TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9tZW51XCI7XG5pbXBvcnQge05hdmJhck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL25hdmlnYXRpb24vbmF2YmFyXCI7XG5pbXBvcnQge1BvcG92ZXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9uYXZpZ2F0aW9uL3BvcG92ZXJcIjtcbmltcG9ydCB7Q2Fyb3VzZWxNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9hZHZhbmNlZC9jYXJvdXNlbFwiO1xuaW1wb3J0IHtMb2dpbk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2FkdmFuY2VkL2xvZ2luXCI7XG5pbXBvcnQge01hcnF1ZWVNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9hZHZhbmNlZC9tYXJxdWVlXCI7XG5pbXBvcnQge0JzRGF0ZXBpY2tlck1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvZGF0ZXBpY2tlclwiO1xuaW1wb3J0IHtUaW1lcGlja2VyTW9kdWxlIGFzIG5neFRpbWVwaWNrZXJNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3RpbWVwaWNrZXJcIjtcbmltcG9ydCB7QnNEcm9wZG93bk1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcbmltcG9ydCB7UGFnaW5hdGlvbk1vZHVsZSBhcyBuZ3hQYWdpbmF0aW9uTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wYWdpbmF0aW9uXCI7XG5pbXBvcnQge1R5cGVhaGVhZE1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvdHlwZWFoZWFkXCI7XG5pbXBvcnQge1Byb2dyZXNzYmFyTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wcm9ncmVzc2JhclwiO1xuaW1wb3J0IHtDYXJvdXNlbE1vZHVsZSBhcyBuZ3hDYXJvdXNlbE1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvY2Fyb3VzZWxcIjtcbmltcG9ydCB7UG9wb3Zlck1vZHVsZSBhcyBuZ3hQb3BvdmVyTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wb3BvdmVyXCI7XG5pbXBvcnQge05nQ2lyY2xlUHJvZ3Jlc3NNb2R1bGV9IGZyb20gXCJuZy1jaXJjbGUtcHJvZ3Jlc3NcIjtcbmltcG9ydCB7VG9vbHRpcE1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvdG9vbHRpcFwiO1xuXG5kZWNsYXJlIGNvbnN0IF9XTV9BUFBfUFJPUEVSVElFUztcblxuY29uc3QgaW5pdGlhbGl6ZVByb2plY3REZXRhaWxzID0gKCkgPT4ge1xuICAgIGxldCBjZG5VcmwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImRlcGxveVVybFwiXScpICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPVwiZGVwbG95VXJsXCJdJykuZ2V0QXR0cmlidXRlKCdjb250ZW50Jyk7XG4gICAgLy9mb3IgcHJldmlld1xuICAgIGlmKCFjZG5VcmwpIHtcbiAgICAgICAgY2RuVXJsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJjZG5VcmxcIl0nKSAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImNkblVybFwiXScpLmdldEF0dHJpYnV0ZSgnY29udGVudCcpO1xuICAgIH1cbiAgICBfV01fQVBQX1BST0pFQ1QuaWQgPSBoYXNDb3Jkb3ZhKCkgPyBfV01fQVBQX1BST1BFUlRJRVMuZGlzcGxheU5hbWUgOiBsb2NhdGlvbi5ocmVmLnNwbGl0KCcvJylbM107XG4gICAgLy8gSW50ZWdyYXRpb24gd2l0aCB0aGlyZCBwYXJ0eSBhcHBzIGxpa2UgaW4gU1NQQS9XZWJDb21wb25lbnRzLCB0aGlzIG1ldGEgdGFnIHdpdGggY2RuVXJsIHdpbGwgbm90IGJlIHRoZXJlIHRoZW4gZGVmYXVsdCBpdCB0byBuZy1idW5kbGUvXG4gICAgX1dNX0FQUF9QUk9KRUNULmNkblVybCA9IGNkblVybCB8fCAnbmctYnVuZGxlLyc7XG4gICAgX1dNX0FQUF9QUk9KRUNULm5nRGVzdCA9ICduZy1idW5kbGUvJztcbiAgICB0cnkge1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBjZG5Vcmw7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICAgIC8vZm9yIGFwcCBwcmV2aWV3IHRoZXJlIGlzIG5vIHdlYnBhY2suIERvbid0IGRvIGFueXRoaW5nLlxuICAgIH1cbn07XG5cbmVudW0gT1Mge1xuICAgIElPUyA9ICdpb3MnLFxuICAgIEFORFJPSUQgPSAnYW5kcm9pZCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNldHRpbmdQcm92aWRlcihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBrZXksXG4gICAgICAgIHVzZVZhbHVlOiBkZWZhdWx0VmFsdWVcbiAgICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEluaXRpYWxpemVBcHAoSTE4blNlcnZpY2UsIEFwcEpTUmVzb2x2ZSkge1xuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGluaXRpYWxpemVQcm9qZWN0RGV0YWlscygpO1xuICAgICAgICBhd2FpdCBBcHBKU1Jlc29sdmUucmVzb2x2ZSgpO1xuICAgICAgICByZXR1cm4gSTE4blNlcnZpY2UubG9hZERlZmF1bHRMb2NhbGUoKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QW5ndWxhckxvY2FsZShJMThuU2VydmljZSkge1xuICAgIGluaXRpYWxpemVQcm9qZWN0RGV0YWlscygpO1xuICAgIHJldHVybiBJMThuU2VydmljZS5kZWR1Y2VBcHBMb2NhbGUoKTtcbn1cblxuY29uc3QgZGVmaW5pdGlvbnMgPSBbXG4gICAgQWNjZXNzcm9sZXNEaXJlY3RpdmUsXG4gICAgQXBwU3Bpbm5lckNvbXBvbmVudCxcbiAgICBDdXN0b21Ub2FzdGVyQ29tcG9uZW50LFxuICAgIFByZWZhYkRpcmVjdGl2ZSxcbiAgICBBcHBDb21wb25lbnQsXG4gICAgUHJlZmFiUHJldmlld0NvbXBvbmVudCxcbiAgICBFbXB0eVBhZ2VDb21wb25lbnRcbl07XG5cbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9NT0RVTEVTX0ZPUl9EWU5BTUlDX0NPTVBPTkVOVFMgPSBbXG4gICAgQ29uZmlybURpYWxvZ01vZHVsZSxcbiAgICBEZXNpZ25EaWFsb2dNb2R1bGUsXG4gICAgRGlhbG9nTW9kdWxlLFxuXG4gICAgLy8gTkdYIEJvb3RzdHJhcFxuICAgIEJzRGF0ZXBpY2tlck1vZHVsZSxcbiAgICBuZ3hUaW1lcGlja2VyTW9kdWxlLFxuICAgIEJzRHJvcGRvd25Nb2R1bGUsXG4gICAgbmd4UGFnaW5hdGlvbk1vZHVsZSxcbiAgICBUeXBlYWhlYWRNb2R1bGUsXG4gICAgUHJvZ3Jlc3NiYXJNb2R1bGUsXG4gICAgbmd4Q2Fyb3VzZWxNb2R1bGUsXG4gICAgbmd4UG9wb3Zlck1vZHVsZSxcbiAgICBOZ0NpcmNsZVByb2dyZXNzTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG5cbiAgICAvLyBCYXNpYyB3aWRnZXRzXG4gICAgQmFzaWNNb2R1bGUsXG4gICAgUHJvZ3Jlc3NNb2R1bGUsXG4gICAgUmljaFRleHRFZGl0b3JNb2R1bGUsXG4gICAgU2VhcmNoTW9kdWxlLFxuICAgIFRyZWVNb2R1bGUsXG5cbiAgICAvLyBJbnB1dFxuICAgIENhbGVuZGFyTW9kdWxlLFxuICAgIENoaXBzTW9kdWxlLFxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxuICAgIEN1cnJlbmN5TW9kdWxlLFxuICAgIEVwb2NoTW9kdWxlLFxuICAgIEZpbGVVcGxvYWRNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmF0aW5nTW9kdWxlLFxuICAgIFNsaWRlck1vZHVsZSxcblxuICAgIC8vIERhdGFcbiAgICBDYXJkTW9kdWxlLFxuICAgIEZvcm1Nb2R1bGUsXG4gICAgTGlzdE1vZHVsZSxcbiAgICBMaXZlVGFibGVNb2R1bGUsXG4gICAgUGFnaW5hdGlvbk1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcblxuICAgIC8vIGNoYXJ0XG4gICAgQ2hhcnRNb2R1bGUsXG5cbiAgICAvLyBjb250YWluZXIgbW9kdWxlc1xuICAgIEFjY29yZGlvbk1vZHVsZSxcbiAgICBMaW5lYXJMYXlvdXRNb2R1bGUsXG4gICAgTGF5b3V0R3JpZE1vZHVsZSxcbiAgICBQYW5lbE1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIFRpbGVNb2R1bGUsXG4gICAgV2l6YXJkTW9kdWxlLFxuXG4gICAgLy8gZGlhbG9nc1xuICAgIEFsZXJ0RGlhbG9nTW9kdWxlLFxuICAgIElmcmFtZURpYWxvZ01vZHVsZSxcbiAgICBMb2dpbkRpYWxvZ01vZHVsZSxcbiAgICBQYXJ0aWFsRGlhbG9nTW9kdWxlLFxuXG4gICAgLy8gbmF2aWdhdGlvblxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgTWVudU1vZHVsZSxcbiAgICBOYXZiYXJNb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcblxuICAgIC8vIEFkdmFuY2VkXG4gICAgQ2Fyb3VzZWxNb2R1bGUsXG4gICAgTG9naW5Nb2R1bGUsXG4gICAgTWFycXVlZU1vZHVsZSxcblxuICAgIFBhZ2VNb2R1bGUsXG4gICAgRm9vdGVyTW9kdWxlLFxuICAgIEhlYWRlck1vZHVsZSxcbiAgICBMZWZ0UGFuZWxNb2R1bGUsXG4gICAgUmlnaHRQYW5lbE1vZHVsZSxcbiAgICBUb3BOYXZNb2R1bGUsXG4gICAgUHJlZmFiTW9kdWxlXG5dO1xuXG4vLyBzZXR0aW5nIHBhcnNlRXhwciBhcyBleHByRXZhbHVhdG9yIGZvciBzd2lwZUFuaW1hdGlvblxuKCQuZm4gYXMgYW55KS5zd2lwZUFuaW1hdGlvbi5leHByZXNzaW9uRXZhbHVhdG9yID0gJHBhcnNlRXhwcjtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFsgLi4uZGVmaW5pdGlvbnMgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcblxuICAgICAgICBUb2FzdHJNb2R1bGUsXG4gICAgICAgIFdtQ29tcG9uZW50c01vZHVsZSxcbiAgICAgICAgTW9iaWxlUnVudGltZU1vZHVsZSxcbiAgICAgICAgQ29yZU1vZHVsZSxcbiAgICAgICAgU2VjdXJpdHlNb2R1bGUsXG4gICAgICAgIE9BdXRoTW9kdWxlLFxuICAgICAgICBWYXJpYWJsZXNNb2R1bGUsXG4gICAgICAgIEh0dHBTZXJ2aWNlTW9kdWxlLFxuICAgICAgICAuLi5SRVFVSVJFRF9NT0RVTEVTX0ZPUl9EWU5BTUlDX0NPTVBPTkVOVFNcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG5cbiAgICAgICAgLi4uZGVmaW5pdGlvbnMsXG5cbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIEh0dHBDbGllbnRNb2R1bGUsXG5cbiAgICAgICAgVG9hc3RyTW9kdWxlLFxuICAgICAgICBXbUNvbXBvbmVudHNNb2R1bGUsXG4gICAgICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFNlY3VyaXR5TW9kdWxlLFxuICAgICAgICBPQXV0aE1vZHVsZSxcbiAgICAgICAgVmFyaWFibGVzTW9kdWxlLFxuICAgICAgICBIdHRwU2VydmljZU1vZHVsZSxcbiAgICAgICAgLi4uUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge3Byb3ZpZGU6IMm1U2hhcmVkU3R5bGVzSG9zdCwgdXNlQ2xhc3M6IFdNRG9tU2hhcmVkU3R5bGVzSG9zdH0sXG4gICAgICAgIHtwcm92aWRlOiDJtURvbVJlbmRlcmVyRmFjdG9yeTIsIHVzZUNsYXNzOiBXTURvbVJlbmRlcmVyRmFjdG9yeTJ9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBSdW50aW1lQmFzZU1vZHVsZSB7XG5cbiAgICAvLyB0aGlzIHBvbHlmaWxsIGlzIHRvIGFkZCBzdXBwb3J0IGZvciBDdXN0b21FdmVudCBpbiBJRTExXG4gICAgc3RhdGljIGFkZEN1c3RvbUV2ZW50UG9seWZpbGwoKSB7XG4gICAgICAgICAgICBpZiAoIHR5cGVvZiB3aW5kb3dbJ0N1c3RvbUV2ZW50J10gPT09ICdmdW5jdGlvbicgKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQWRkaW5nIHR5cGUgYXMgYW55IHRvIGF2b2lkIGVycm9yIFRTMjMyMlxuICAgICAgICAgICAgY29uc3QgQ3VzdG9tRXZlbnQ6IGFueSA9IChldmVudCwgcGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgcGFyYW1zID0gcGFyYW1zIHx8IHsgYnViYmxlczogZmFsc2UsIGNhbmNlbGFibGU6IGZhbHNlLCBkZXRhaWw6IG51bGwgfTtcbiAgICAgICAgICAgICAgICBjb25zdCBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCggJ0N1c3RvbUV2ZW50JyApO1xuICAgICAgICAgICAgICAgIGV2dC5pbml0Q3VzdG9tRXZlbnQoIGV2ZW50LCBwYXJhbXMuYnViYmxlcywgcGFyYW1zLmNhbmNlbGFibGUsIHBhcmFtcy5kZXRhaWwgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZXZ0O1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgQ3VzdG9tRXZlbnQucHJvdG90eXBlID0gd2luZG93WydFdmVudCddLnByb3RvdHlwZTtcbiAgICAgICAgICAgIC8vICMjIyBBTkdVTEFSOVRPRE8gIyMjXG4gICAgICAgICAgICB3aW5kb3dbJ0N1c3RvbUV2ZW50J10gPSBDdXN0b21FdmVudDtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yUm9vdCgpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFJ1bnRpbWVCYXNlTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogUnVudGltZUJhc2VNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQXBwLCB1c2VDbGFzczogQXBwUmVmfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3RUb2FzdGVyU2VydmljZSwgdXNlQ2xhc3M6IFRvYXN0ZXJTZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0STE4blNlcnZpY2UsIHVzZUNsYXNzOiBJMThuU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlLCB1c2VDbGFzczogU3Bpbm5lclNlcnZpY2VJbXBsfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3ROYXZpZ2F0aW9uU2VydmljZSwgdXNlQ2xhc3M6IE5hdmlnYXRpb25TZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFwcERlZmF1bHRzLCB1c2VDbGFzczogQXBwRGVmYXVsdHNTZXJ2aWNlfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyLCB1c2VDbGFzczogRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyU2VydmljZX0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IEluaXRpYWxpemVBcHAsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtBYnN0cmFjdEkxOG5TZXJ2aWNlLCBBcHBKU1Jlc29sdmVdLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBMT0NBTEVfSUQsXG4gICAgICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IHNldEFuZ3VsYXJMb2NhbGUsXG4gICAgICAgICAgICAgICAgICAgIGRlcHM6IFtBYnN0cmFjdEkxOG5TZXJ2aWNlXVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBIVFRQX0lOVEVSQ0VQVE9SUyxcbiAgICAgICAgICAgICAgICAgICAgdXNlQ2xhc3M6IEh0dHBDYWxsSW50ZXJjZXB0b3IsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBQaXBlU2VydmljZSxcbiAgICAgICAgICAgICAgICBEZWNpbWFsUGlwZSxcbiAgICAgICAgICAgICAgICBEYXRlUGlwZSxcbiAgICAgICAgICAgICAgICBBcHBNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBQcmVmYWJNYW5hZ2VyU2VydmljZSxcbiAgICAgICAgICAgICAgICBBdXRoR3VhcmQsXG4gICAgICAgICAgICAgICAgUm9sZUd1YXJkLFxuICAgICAgICAgICAgICAgIFBhZ2VOb3RGb3VuZEd1YXJkLFxuICAgICAgICAgICAgICAgIENhbkRlYWN0aXZhdGVQYWdlR3VhcmQsXG4gICAgICAgICAgICAgICAgQXBwSlNSZXNvbHZlLFxuICAgICAgICAgICAgICAgIEFwcEV4dGVuc2lvbkpTUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBJMThuUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBnZXRTZXR0aW5nUHJvdmlkZXIoTUFYX0NBQ0hFX1NJWkUsIDEwKSxcbiAgICAgICAgICAgICAgICBnZXRTZXR0aW5nUHJvdmlkZXIoTUFYX0NBQ0hFX0FHRSwgMzAgKiA2MClcbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihtb2JpbGVSdW50aW1lTW9kdWxlOiBNb2JpbGVSdW50aW1lTW9kdWxlLFxuICAgICAgICAgICAgICAgIGFwcDogQXBwLFxuICAgICAgICAgICAgICAgIHZpZXdwb3J0OiBWaWV3cG9ydCkge1xuICAgICAgICBSdW50aW1lQmFzZU1vZHVsZS5hZGRDdXN0b21FdmVudFBvbHlmaWxsKCk7XG5cbiAgICAgICAgdGhpcy5nZXREZXZpY2VEZXRhaWxzKCkudGhlbihkZXRhaWxzID0+IHtcbiAgICAgICAgICAgIGFwcC5zZWxlY3RlZFZpZXdQb3J0ID0ge1xuICAgICAgICAgICAgICAgIG9zOiBkZXRhaWxzLm9zLFxuICAgICAgICAgICAgICAgIGNhdGVnb3J5OiBkZXRhaWxzLnNlbGVjdGVkRGV2aWNlQ2F0ZWdvcnlcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB2aWV3cG9ydC51cGRhdGUoZGV0YWlscyk7XG4gICAgICAgICAgICBhcHAubm90aWZ5KCdvbi12aWV3cG9ydC1kZXRhaWxzJywgZGV0YWlscy5vcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgcHJpdmF0ZSBnZXREZXZpY2VEZXRhaWxzKCk6IFByb21pc2U8YW55PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGNvbnN0IG1zZ0NvbnRlbnQgPSB7a2V5OiAnb24tbG9hZCd9O1xuICAgICAgICAgICAgLy8gTm90aWZ5IHByZXZpZXcgd2luZG93IHRoYXQgYXBwbGljYXRpb24gaXMgcmVhZHkuIE90aGVyd2lzZSwgaWRlbnRpZnkgdGhlIE9TLlxuICAgICAgICAgICAgaWYgKHdpbmRvdy50b3AgIT09IHdpbmRvdykge1xuICAgICAgICAgICAgICAgIHdpbmRvdy50b3AucG9zdE1lc3NhZ2UobXNnQ29udGVudCwgJyonKTtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGZvciBwcmV2aWV3IHBhZ2VcbiAgICAgICAgICAgICAgICB3aW5kb3cub25tZXNzYWdlID0gZnVuY3Rpb24gKG1zZykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBkYXRhID0gbXNnLmRhdGE7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChkYXRhKSAmJiBkYXRhLmtleSA9PT0gJ3N3aXRjaC1kZXZpY2UnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRhdGEuZGV2aWNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSXBob25lKCkgfHwgaXNJcG9kKCkgfHwgaXNJcGFkKCkpIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHsnb3MnOiBPUy5JT1N9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7J29zJzogT1MuQU5EUk9JRH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCBXTV9NT0RVTEVTX0ZPUl9ST09UID0gW1xuICAgIFdtQ29tcG9uZW50c01vZHVsZS5mb3JSb290KCksXG4gICAgTW9iaWxlUnVudGltZU1vZHVsZS5mb3JSb290KCksXG4gICAgQ29yZU1vZHVsZS5mb3JSb290KCksXG4gICAgU2VjdXJpdHlNb2R1bGUuZm9yUm9vdCgpLFxuICAgIE9BdXRoTW9kdWxlLmZvclJvb3QoKSxcbiAgICBWYXJpYWJsZXNNb2R1bGUuZm9yUm9vdCgpLFxuICAgIEh0dHBTZXJ2aWNlTW9kdWxlLmZvclJvb3QoKSxcbiAgICBSdW50aW1lQmFzZU1vZHVsZS5mb3JSb290KClcbl07XG4iXX0=
|
|
649
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVudGltZS1iYXNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3J1bnRpbWUtYmFzZS9zcmMvcnVudGltZS1iYXNlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUxQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFVBQVUsRUFDVixtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLHNCQUFzQixFQUN0QixzQkFBc0IsRUFDdEIsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLFFBQVEsRUFDUixRQUFRLEVBQ1IsTUFBTSxFQUNOLE1BQU0sRUFDTixRQUFRLEVBQ1IsVUFBVSxFQUNiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1Q0FB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QUFVO1FBQ1YsWUFBWTtRQUVaLFVBQVU7UUFDVixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQixtQkFBbUI7UUFFbkIsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixVQUFVO1FBQ1YsWUFBWTtRQUNaLGFBQWE7UUFFYixXQUFXO1FBQ1gsY0FBYztRQUNkLFdBQVc7UUFDWCxhQUFhO1FBQ2IsWUFBWTtRQUVaLFVBQVU7UUFDVixZQUFZO1FBQ1osWUFBWTtRQUNaLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsWUFBWTtRQUNaLFlBQVk7QUF5SmhCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQy9CLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtJQUM1QixtQkFBbUIsQ0FBQyxPQUFPLEVBQUU7SUFDN0IsVUFBVSxDQUFDLE9BQU8sRUFBRTtJQUNwQixjQUFjLENBQUMsT0FBTyxFQUFFO0lBQ3hCLFdBQVcsQ0FBQyxPQUFPLEVBQUU7SUFDckIsZUFBZSxDQUFDLE9BQU8sRUFBRTtJQUN6QixpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7SUFDM0IsaUJBQWlCLENBQUMsT0FBTyxFQUFFO0NBQzlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FQUF9JTklUSUFMSVpFUiwgTE9DQUxFX0lELCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSwgRGVjaW1hbFBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSFRUUF9JTlRFUkNFUFRPUlMsIEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyDJtVNoYXJlZFN0eWxlc0hvc3QgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7ybVEb21SZW5kZXJlckZhY3RvcnkyfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFRvYXN0ck1vZHVsZSB9IGZyb20gJ25neC10b2FzdHInO1xuXG5pbXBvcnQge1xuICAgIF9XTV9BUFBfUFJPSkVDVCxcbiAgICAkcGFyc2VFeHByLFxuICAgIEFic3RyYWN0STE4blNlcnZpY2UsXG4gICAgQWJzdHJhY3ROYXZpZ2F0aW9uU2VydmljZSxcbiAgICBBYnN0cmFjdFNwaW5uZXJTZXJ2aWNlLFxuICAgIEFic3RyYWN0VG9hc3RlclNlcnZpY2UsXG4gICAgQXBwLFxuICAgIEFwcERlZmF1bHRzLFxuICAgIENvcmVNb2R1bGUsXG4gICAgRHluYW1pY0NvbXBvbmVudFJlZlByb3ZpZGVyLFxuICAgIGlzT2JqZWN0LFxuICAgIGlzSXBob25lLFxuICAgIGlzSXBvZCxcbiAgICBpc0lwYWQsXG4gICAgVmlld3BvcnQsXG4gICAgaGFzQ29yZG92YVxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBXbUNvbXBvbmVudHNNb2R1bGUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RpYWxvZ3MnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ01vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2RpYWxvZ3MvY29uZmlybS1kaWFsb2cnO1xuaW1wb3J0IHsgRGVzaWduRGlhbG9nTW9kdWxlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9kZXNpZ24tZGlhbG9nJztcbmltcG9ydCB7IFByZWZhYk1vZHVsZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL3ByZWZhYic7XG5pbXBvcnQgeyBNb2JpbGVSdW50aW1lTW9kdWxlIH0gZnJvbSAnQHdtL21vYmlsZS9ydW50aW1lJztcbmltcG9ydCB7IFNlY3VyaXR5TW9kdWxlIH0gZnJvbSAnQHdtL3NlY3VyaXR5JztcbmltcG9ydCB7IEh0dHBTZXJ2aWNlTW9kdWxlIH0gZnJvbSAnQHdtL2h0dHAnO1xuaW1wb3J0IHsgVmFyaWFibGVzTW9kdWxlIH0gZnJvbSAnQHdtL3ZhcmlhYmxlcyc7XG5pbXBvcnQgeyBPQXV0aE1vZHVsZSB9IGZyb20gJ0B3bS9vQXV0aCc7XG5cbmltcG9ydCB7IEFjY2Vzc3JvbGVzRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2FjY2Vzc3JvbGVzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBcHBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1zcGlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDdXN0b21Ub2FzdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2N1c3RvbS10b2FzdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVBhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZW1wdHktY29tcG9uZW50L2VtcHR5LXBhZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IFByZWZhYkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9wcmVmYWIuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFwcFJlZiB9IGZyb20gJy4vc2VydmljZXMvYXBwLnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9hc3RlclNlcnZpY2VJbXBsIH0gZnJvbSAnLi9zZXJ2aWNlcy90b2FzdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2VJbXBsIH0gZnJvbSAnLi9zZXJ2aWNlcy9pMThuLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Bpbm5lclNlcnZpY2VJbXBsIH0gZnJvbSAnLi9zZXJ2aWNlcy9zcGlubmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblNlcnZpY2VJbXBsIH0gZnJvbSAnLi9zZXJ2aWNlcy9uYXZpZ2F0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGlwZVNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9waXBlLnNlcnZpY2VcIjtcbmltcG9ydCB7IEFwcERlZmF1bHRzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvYXBwLWRlZmF1bHRzLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwcC5tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJlZmFiTWFuYWdlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3ByZWZhYi1tYW5hZ2VyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXV0aEd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvYXV0aC5ndWFyZCc7XG5pbXBvcnQgeyBSb2xlR3VhcmQgfSBmcm9tICcuL2d1YXJkcy9yb2xlLmd1YXJkJztcbmltcG9ydCB7IFBhZ2VOb3RGb3VuZEd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvcGFnZS1ub3QtZm91bmQuZ3VhcmQnO1xuaW1wb3J0IHsgQXBwSlNSZXNvbHZlIH0gZnJvbSAnLi9yZXNvbHZlcy9hcHAtanMucmVzb2x2ZSc7XG5pbXBvcnQgeyBBcHBFeHRlbnNpb25KU1Jlc29sdmUgfSBmcm9tICcuL3Jlc29sdmVzL2FwcC1leHRlbnNpb24ucmVzb2x2ZSc7XG5pbXBvcnQgeyBJMThuUmVzb2x2ZSB9IGZyb20gJy4vcmVzb2x2ZXMvaTE4bi5yZXNvbHZlJztcbmltcG9ydCB7IEFwcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHAtY29tcG9uZW50L2FwcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSHR0cENhbGxJbnRlcmNlcHRvciB9IGZyb20gJy4vc2VydmljZXMvaHR0cC1pbnRlcmNlcHRvci5zZXJ2aWNlcyc7XG5pbXBvcnQgeyBQcmVmYWJQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ByZWZhYi1wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEeW5hbWljQ29tcG9uZW50UmVmUHJvdmlkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9keW5hbWljLWNvbXBvbmVudC1yZWYtcHJvdmlkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBDYW5EZWFjdGl2YXRlUGFnZUd1YXJkIH0gZnJvbSAnLi9ndWFyZHMvY2FuLWRlYWN0aXZhdGUtcGFnZS5ndWFyZCc7XG5pbXBvcnQgeyBNQVhfQ0FDSEVfQUdFLCBNQVhfQ0FDSEVfU0laRSB9IGZyb20gJy4vdXRpbC93bS1yb3V0ZS1yZXVzZS1zdHJhdGVneSc7XG5cbi8vYW5ndWxhciBvdmVycmlkZXNcbmltcG9ydCB7IFdNRG9tU2hhcmVkU3R5bGVzSG9zdCB9IGZyb20gXCIuL292ZXJyaWRlcy93bV9zaGFyZWRfc3R5bGVzX2hvc3RcIjtcbmltcG9ydCB7IFdNRG9tUmVuZGVyZXJGYWN0b3J5MiB9IGZyb20gXCIuL292ZXJyaWRlcy93bV9kb21fcmVuZGVyZXJcIjtcbmltcG9ydCB7UGFnZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2VcIjtcbmltcG9ydCB7Rm9vdGVyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvcGFnZS9mb290ZXJcIjtcbmltcG9ydCB7SGVhZGVyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvcGFnZS9oZWFkZXJcIjtcbmltcG9ydCB7TGVmdFBhbmVsTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvcGFnZS9sZWZ0LXBhbmVsXCI7XG5pbXBvcnQge1JpZ2h0UGFuZWxNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9wYWdlL3JpZ2h0LXBhbmVsXCI7XG5pbXBvcnQge1RvcE5hdk1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL3BhZ2UvdG9wLW5hdlwiO1xuaW1wb3J0IHtCYXNpY01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2ljXCI7XG5pbXBvcnQge1Byb2dyZXNzTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzaWMvcHJvZ3Jlc3NcIjtcbmltcG9ydCB7UmljaFRleHRFZGl0b3JNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9iYXNpYy9yaWNoLXRleHQtZWRpdG9yXCI7XG5pbXBvcnQge1NlYXJjaE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2Jhc2ljL3NlYXJjaFwiO1xuaW1wb3J0IHtUcmVlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYmFzaWMvdHJlZVwiO1xuaW1wb3J0IHtDYWxlbmRhck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2NhbGVuZGFyXCI7XG5pbXBvcnQge0NoaXBzTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvaW5wdXQvY2hpcHNcIjtcbmltcG9ydCB7Q29sb3JQaWNrZXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9jb2xvci1waWNrZXJcIjtcbmltcG9ydCB7Q3VycmVuY3lNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9jdXJyZW5jeVwiO1xuaW1wb3J0IHtFcG9jaE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L2Vwb2NoXCI7XG5pbXBvcnQge0ZpbGVVcGxvYWRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9maWxlLXVwbG9hZFwiO1xuaW1wb3J0IHtJbnB1dE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0XCI7XG5pbXBvcnQge1JhdGluZ01vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2lucHV0L3JhdGluZ1wiO1xuaW1wb3J0IHtTbGlkZXJNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9pbnB1dC9zbGlkZXJcIjtcbmltcG9ydCB7Q2FyZE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2RhdGEvY2FyZFwiO1xuaW1wb3J0IHtGb3JtTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS9mb3JtXCI7XG5pbXBvcnQge0xpc3RNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kYXRhL2xpc3RcIjtcbmltcG9ydCB7TGl2ZVRhYmxlTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGF0YS9saXZlLXRhYmxlXCI7XG5pbXBvcnQge1BhZ2luYXRpb25Nb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kYXRhL3BhZ2luYXRpb25cIjtcbmltcG9ydCB7VGFibGVNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kYXRhL3RhYmxlXCI7XG5pbXBvcnQge0NoYXJ0TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY2hhcnRcIjtcbmltcG9ydCB7QWNjb3JkaW9uTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy9hY2NvcmRpb25cIjtcbmltcG9ydCB7TGluZWFyTGF5b3V0TW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy9saW5lYXItbGF5b3V0XCI7XG5pbXBvcnQge0xheW91dEdyaWRNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jb250YWluZXJzL2xheW91dC1ncmlkXCI7XG5pbXBvcnQge1BhbmVsTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy9wYW5lbFwiO1xuaW1wb3J0IHtUYWJzTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy90YWJzXCI7XG5pbXBvcnQge1RpbGVNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9jb250YWluZXJzL3RpbGVcIjtcbmltcG9ydCB7V2l6YXJkTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvY29udGFpbmVycy93aXphcmRcIjtcbmltcG9ydCB7QWxlcnREaWFsb2dNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kaWFsb2dzL2FsZXJ0LWRpYWxvZ1wiO1xuaW1wb3J0IHtJZnJhbWVEaWFsb2dNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kaWFsb2dzL2lmcmFtZS1kaWFsb2dcIjtcbmltcG9ydCB7TG9naW5EaWFsb2dNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9kaWFsb2dzL2xvZ2luLWRpYWxvZ1wiO1xuaW1wb3J0IHtQYXJ0aWFsRGlhbG9nTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvZGlhbG9ncy9wYXJ0aWFsLWRpYWxvZ1wiO1xuaW1wb3J0IHtCcmVhZGNydW1iTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9icmVhZGNydW1iXCI7XG5pbXBvcnQge01lbnVNb2R1bGV9IGZyb20gXCJAd20vY29tcG9uZW50cy9uYXZpZ2F0aW9uL21lbnVcIjtcbmltcG9ydCB7TmF2YmFyTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvbmF2aWdhdGlvbi9uYXZiYXJcIjtcbmltcG9ydCB7UG9wb3Zlck1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL25hdmlnYXRpb24vcG9wb3ZlclwiO1xuaW1wb3J0IHtDYXJvdXNlbE1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2FkdmFuY2VkL2Nhcm91c2VsXCI7XG5pbXBvcnQge0xvZ2luTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYWR2YW5jZWQvbG9naW5cIjtcbmltcG9ydCB7TWFycXVlZU1vZHVsZX0gZnJvbSBcIkB3bS9jb21wb25lbnRzL2FkdmFuY2VkL21hcnF1ZWVcIjtcbmltcG9ydCB7Q3VzdG9tTW9kdWxlfSBmcm9tIFwiQHdtL2NvbXBvbmVudHMvYWR2YW5jZWQvY3VzdG9tXCI7XG5pbXBvcnQge0JzRGF0ZXBpY2tlck1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvZGF0ZXBpY2tlclwiO1xuaW1wb3J0IHtUaW1lcGlja2VyTW9kdWxlIGFzIG5neFRpbWVwaWNrZXJNb2R1bGV9IGZyb20gXCJuZ3gtYm9vdHN0cmFwL3RpbWVwaWNrZXJcIjtcbmltcG9ydCB7QnNEcm9wZG93bk1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvZHJvcGRvd25cIjtcbmltcG9ydCB7UGFnaW5hdGlvbk1vZHVsZSBhcyBuZ3hQYWdpbmF0aW9uTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wYWdpbmF0aW9uXCI7XG5pbXBvcnQge1R5cGVhaGVhZE1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvdHlwZWFoZWFkXCI7XG5pbXBvcnQge1Byb2dyZXNzYmFyTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wcm9ncmVzc2JhclwiO1xuaW1wb3J0IHtDYXJvdXNlbE1vZHVsZSBhcyBuZ3hDYXJvdXNlbE1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvY2Fyb3VzZWxcIjtcbmltcG9ydCB7UG9wb3Zlck1vZHVsZSBhcyBuZ3hQb3BvdmVyTW9kdWxlfSBmcm9tIFwibmd4LWJvb3RzdHJhcC9wb3BvdmVyXCI7XG5pbXBvcnQge05nQ2lyY2xlUHJvZ3Jlc3NNb2R1bGV9IGZyb20gXCJuZy1jaXJjbGUtcHJvZ3Jlc3NcIjtcbmltcG9ydCB7VG9vbHRpcE1vZHVsZX0gZnJvbSBcIm5neC1ib290c3RyYXAvdG9vbHRpcFwiO1xuXG5kZWNsYXJlIGNvbnN0IF9XTV9BUFBfUFJPUEVSVElFUztcblxuY29uc3QgaW5pdGlhbGl6ZVByb2plY3REZXRhaWxzID0gKCkgPT4ge1xuICAgIGxldCBjZG5VcmwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImRlcGxveVVybFwiXScpICYmIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPVwiZGVwbG95VXJsXCJdJykuZ2V0QXR0cmlidXRlKCdjb250ZW50Jyk7XG4gICAgLy9mb3IgcHJldmlld1xuICAgIGlmKCFjZG5VcmwpIHtcbiAgICAgICAgY2RuVXJsID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW25hbWU9XCJjZG5VcmxcIl0nKSAmJiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbbmFtZT1cImNkblVybFwiXScpLmdldEF0dHJpYnV0ZSgnY29udGVudCcpO1xuICAgIH1cbiAgICBfV01fQVBQX1BST0pFQ1QuaWQgPSBoYXNDb3Jkb3ZhKCkgPyBfV01fQVBQX1BST1BFUlRJRVMuZGlzcGxheU5hbWUgOiBsb2NhdGlvbi5ocmVmLnNwbGl0KCcvJylbM107XG4gICAgLy8gSW50ZWdyYXRpb24gd2l0aCB0aGlyZCBwYXJ0eSBhcHBzIGxpa2UgaW4gU1NQQS9XZWJDb21wb25lbnRzLCB0aGlzIG1ldGEgdGFnIHdpdGggY2RuVXJsIHdpbGwgbm90IGJlIHRoZXJlIHRoZW4gZGVmYXVsdCBpdCB0byBuZy1idW5kbGUvXG4gICAgX1dNX0FQUF9QUk9KRUNULmNkblVybCA9IGNkblVybCB8fCAnbmctYnVuZGxlLyc7XG4gICAgX1dNX0FQUF9QUk9KRUNULm5nRGVzdCA9ICduZy1idW5kbGUvJztcbiAgICB0cnkge1xuICAgICAgICAvL0B0cy1pZ25vcmVcbiAgICAgICAgX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBjZG5Vcmw7XG4gICAgfSBjYXRjaChlKSB7XG4gICAgICAgIC8vZm9yIGFwcCBwcmV2aWV3IHRoZXJlIGlzIG5vIHdlYnBhY2suIERvbid0IGRvIGFueXRoaW5nLlxuICAgIH1cbn07XG5cbmVudW0gT1Mge1xuICAgIElPUyA9ICdpb3MnLFxuICAgIEFORFJPSUQgPSAnYW5kcm9pZCdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNldHRpbmdQcm92aWRlcihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlOiBhbnkpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICBwcm92aWRlOiBrZXksXG4gICAgICAgIHVzZVZhbHVlOiBkZWZhdWx0VmFsdWVcbiAgICB9O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIEluaXRpYWxpemVBcHAoSTE4blNlcnZpY2UsIEFwcEpTUmVzb2x2ZSkge1xuICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgIGluaXRpYWxpemVQcm9qZWN0RGV0YWlscygpO1xuICAgICAgICBhd2FpdCBBcHBKU1Jlc29sdmUucmVzb2x2ZSgpO1xuICAgICAgICByZXR1cm4gSTE4blNlcnZpY2UubG9hZERlZmF1bHRMb2NhbGUoKTtcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QW5ndWxhckxvY2FsZShJMThuU2VydmljZSkge1xuICAgIGluaXRpYWxpemVQcm9qZWN0RGV0YWlscygpO1xuICAgIHJldHVybiBJMThuU2VydmljZS5kZWR1Y2VBcHBMb2NhbGUoKTtcbn1cblxuY29uc3QgZGVmaW5pdGlvbnMgPSBbXG4gICAgQWNjZXNzcm9sZXNEaXJlY3RpdmUsXG4gICAgQXBwU3Bpbm5lckNvbXBvbmVudCxcbiAgICBDdXN0b21Ub2FzdGVyQ29tcG9uZW50LFxuICAgIFByZWZhYkRpcmVjdGl2ZSxcbiAgICBBcHBDb21wb25lbnQsXG4gICAgUHJlZmFiUHJldmlld0NvbXBvbmVudCxcbiAgICBFbXB0eVBhZ2VDb21wb25lbnRcbl07XG5cbmV4cG9ydCBjb25zdCBSRVFVSVJFRF9NT0RVTEVTX0ZPUl9EWU5BTUlDX0NPTVBPTkVOVFMgPSBbXG4gICAgQ29uZmlybURpYWxvZ01vZHVsZSxcbiAgICBEZXNpZ25EaWFsb2dNb2R1bGUsXG4gICAgRGlhbG9nTW9kdWxlLFxuXG4gICAgLy8gTkdYIEJvb3RzdHJhcFxuICAgIEJzRGF0ZXBpY2tlck1vZHVsZSxcbiAgICBuZ3hUaW1lcGlja2VyTW9kdWxlLFxuICAgIEJzRHJvcGRvd25Nb2R1bGUsXG4gICAgbmd4UGFnaW5hdGlvbk1vZHVsZSxcbiAgICBUeXBlYWhlYWRNb2R1bGUsXG4gICAgUHJvZ3Jlc3NiYXJNb2R1bGUsXG4gICAgbmd4Q2Fyb3VzZWxNb2R1bGUsXG4gICAgbmd4UG9wb3Zlck1vZHVsZSxcbiAgICBOZ0NpcmNsZVByb2dyZXNzTW9kdWxlLFxuICAgIFRvb2x0aXBNb2R1bGUsXG5cbiAgICAvLyBCYXNpYyB3aWRnZXRzXG4gICAgQmFzaWNNb2R1bGUsXG4gICAgUHJvZ3Jlc3NNb2R1bGUsXG4gICAgUmljaFRleHRFZGl0b3JNb2R1bGUsXG4gICAgU2VhcmNoTW9kdWxlLFxuICAgIFRyZWVNb2R1bGUsXG5cbiAgICAvLyBJbnB1dFxuICAgIENhbGVuZGFyTW9kdWxlLFxuICAgIENoaXBzTW9kdWxlLFxuICAgIENvbG9yUGlja2VyTW9kdWxlLFxuICAgIEN1cnJlbmN5TW9kdWxlLFxuICAgIEVwb2NoTW9kdWxlLFxuICAgIEZpbGVVcGxvYWRNb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUmF0aW5nTW9kdWxlLFxuICAgIFNsaWRlck1vZHVsZSxcblxuICAgIC8vIERhdGFcbiAgICBDYXJkTW9kdWxlLFxuICAgIEZvcm1Nb2R1bGUsXG4gICAgTGlzdE1vZHVsZSxcbiAgICBMaXZlVGFibGVNb2R1bGUsXG4gICAgUGFnaW5hdGlvbk1vZHVsZSxcbiAgICBUYWJsZU1vZHVsZSxcblxuICAgIC8vIGNoYXJ0XG4gICAgQ2hhcnRNb2R1bGUsXG5cbiAgICAvLyBjb250YWluZXIgbW9kdWxlc1xuICAgIEFjY29yZGlvbk1vZHVsZSxcbiAgICBMaW5lYXJMYXlvdXRNb2R1bGUsXG4gICAgTGF5b3V0R3JpZE1vZHVsZSxcbiAgICBQYW5lbE1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIFRpbGVNb2R1bGUsXG4gICAgV2l6YXJkTW9kdWxlLFxuXG4gICAgLy8gZGlhbG9nc1xuICAgIEFsZXJ0RGlhbG9nTW9kdWxlLFxuICAgIElmcmFtZURpYWxvZ01vZHVsZSxcbiAgICBMb2dpbkRpYWxvZ01vZHVsZSxcbiAgICBQYXJ0aWFsRGlhbG9nTW9kdWxlLFxuXG4gICAgLy8gbmF2aWdhdGlvblxuICAgIEJyZWFkY3J1bWJNb2R1bGUsXG4gICAgTWVudU1vZHVsZSxcbiAgICBOYXZiYXJNb2R1bGUsXG4gICAgUG9wb3Zlck1vZHVsZSxcblxuICAgIC8vIEFkdmFuY2VkXG4gICAgQ2Fyb3VzZWxNb2R1bGUsXG4gICAgTG9naW5Nb2R1bGUsXG4gICAgTWFycXVlZU1vZHVsZSxcbiAgICBDdXN0b21Nb2R1bGUsXG5cbiAgICBQYWdlTW9kdWxlLFxuICAgIEZvb3Rlck1vZHVsZSxcbiAgICBIZWFkZXJNb2R1bGUsXG4gICAgTGVmdFBhbmVsTW9kdWxlLFxuICAgIFJpZ2h0UGFuZWxNb2R1bGUsXG4gICAgVG9wTmF2TW9kdWxlLFxuICAgIFByZWZhYk1vZHVsZVxuXTtcblxuLy8gc2V0dGluZyBwYXJzZUV4cHIgYXMgZXhwckV2YWx1YXRvciBmb3Igc3dpcGVBbmltYXRpb25cbigkLmZuIGFzIGFueSkuc3dpcGVBbmltYXRpb24uZXhwcmVzc2lvbkV2YWx1YXRvciA9ICRwYXJzZUV4cHI7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbIC4uLmRlZmluaXRpb25zIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZSxcbiAgICAgICAgSHR0cENsaWVudE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG5cbiAgICAgICAgVG9hc3RyTW9kdWxlLFxuICAgICAgICBXbUNvbXBvbmVudHNNb2R1bGUsXG4gICAgICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUsXG4gICAgICAgIENvcmVNb2R1bGUsXG4gICAgICAgIFNlY3VyaXR5TW9kdWxlLFxuICAgICAgICBPQXV0aE1vZHVsZSxcbiAgICAgICAgVmFyaWFibGVzTW9kdWxlLFxuICAgICAgICBIdHRwU2VydmljZU1vZHVsZSxcbiAgICAgICAgLi4uUkVRVUlSRURfTU9EVUxFU19GT1JfRFlOQU1JQ19DT01QT05FTlRTXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuXG4gICAgICAgIC4uLmRlZmluaXRpb25zLFxuXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBIdHRwQ2xpZW50TW9kdWxlLFxuXG4gICAgICAgIFRvYXN0ck1vZHVsZSxcbiAgICAgICAgV21Db21wb25lbnRzTW9kdWxlLFxuICAgICAgICBNb2JpbGVSdW50aW1lTW9kdWxlLFxuICAgICAgICBDb3JlTW9kdWxlLFxuICAgICAgICBTZWN1cml0eU1vZHVsZSxcbiAgICAgICAgT0F1dGhNb2R1bGUsXG4gICAgICAgIFZhcmlhYmxlc01vZHVsZSxcbiAgICAgICAgSHR0cFNlcnZpY2VNb2R1bGUsXG4gICAgICAgIC4uLlJFUVVJUkVEX01PRFVMRVNfRk9SX0RZTkFNSUNfQ09NUE9ORU5UU1xuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtwcm92aWRlOiDJtVNoYXJlZFN0eWxlc0hvc3QsIHVzZUNsYXNzOiBXTURvbVNoYXJlZFN0eWxlc0hvc3R9LFxuICAgICAgICB7cHJvdmlkZTogybVEb21SZW5kZXJlckZhY3RvcnkyLCB1c2VDbGFzczogV01Eb21SZW5kZXJlckZhY3RvcnkyfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUnVudGltZUJhc2VNb2R1bGUge1xuXG4gICAgLy8gdGhpcyBwb2x5ZmlsbCBpcyB0byBhZGQgc3VwcG9ydCBmb3IgQ3VzdG9tRXZlbnQgaW4gSUUxMVxuICAgIHN0YXRpYyBhZGRDdXN0b21FdmVudFBvbHlmaWxsKCkge1xuICAgICAgICAgICAgaWYgKCB0eXBlb2Ygd2luZG93WydDdXN0b21FdmVudCddID09PSAnZnVuY3Rpb24nICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFkZGluZyB0eXBlIGFzIGFueSB0byBhdm9pZCBlcnJvciBUUzIzMjJcbiAgICAgICAgICAgIGNvbnN0IEN1c3RvbUV2ZW50OiBhbnkgPSAoZXZlbnQsIHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7IGJ1YmJsZXM6IGZhbHNlLCBjYW5jZWxhYmxlOiBmYWxzZSwgZGV0YWlsOiBudWxsIH07XG4gICAgICAgICAgICAgICAgY29uc3QgZXZ0ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoICdDdXN0b21FdmVudCcgKTtcbiAgICAgICAgICAgICAgICBldnQuaW5pdEN1c3RvbUV2ZW50KCBldmVudCwgcGFyYW1zLmJ1YmJsZXMsIHBhcmFtcy5jYW5jZWxhYmxlLCBwYXJhbXMuZGV0YWlsICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2dDtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIEN1c3RvbUV2ZW50LnByb3RvdHlwZSA9IHdpbmRvd1snRXZlbnQnXS5wcm90b3R5cGU7XG4gICAgICAgICAgICAvLyAjIyMgQU5HVUxBUjlUT0RPICMjI1xuICAgICAgICAgICAgd2luZG93WydDdXN0b21FdmVudCddID0gQ3VzdG9tRXZlbnQ7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxSdW50aW1lQmFzZU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFJ1bnRpbWVCYXNlTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFwcCwgdXNlQ2xhc3M6IEFwcFJlZn0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0VG9hc3RlclNlcnZpY2UsIHVzZUNsYXNzOiBUb2FzdGVyU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBYnN0cmFjdEkxOG5TZXJ2aWNlLCB1c2VDbGFzczogSTE4blNlcnZpY2VJbXBsfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogQWJzdHJhY3RTcGlubmVyU2VydmljZSwgdXNlQ2xhc3M6IFNwaW5uZXJTZXJ2aWNlSW1wbH0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFic3RyYWN0TmF2aWdhdGlvblNlcnZpY2UsIHVzZUNsYXNzOiBOYXZpZ2F0aW9uU2VydmljZUltcGx9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBBcHBEZWZhdWx0cywgdXNlQ2xhc3M6IEFwcERlZmF1bHRzU2VydmljZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlciwgdXNlQ2xhc3M6IER5bmFtaWNDb21wb25lbnRSZWZQcm92aWRlclNlcnZpY2V9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBJbml0aWFsaXplQXBwLFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQWJzdHJhY3RJMThuU2VydmljZSwgQXBwSlNSZXNvbHZlXSxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGk6IHRydWVcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgICAgICAgICAgICAgICAgICB1c2VGYWN0b3J5OiBzZXRBbmd1bGFyTG9jYWxlLFxuICAgICAgICAgICAgICAgICAgICBkZXBzOiBbQWJzdHJhY3RJMThuU2VydmljZV1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogSFRUUF9JTlRFUkNFUFRPUlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBIdHRwQ2FsbEludGVyY2VwdG9yLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgUGlwZVNlcnZpY2UsXG4gICAgICAgICAgICAgICAgRGVjaW1hbFBpcGUsXG4gICAgICAgICAgICAgICAgRGF0ZVBpcGUsXG4gICAgICAgICAgICAgICAgQXBwTWFuYWdlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgUHJlZmFiTWFuYWdlclNlcnZpY2UsXG4gICAgICAgICAgICAgICAgQXV0aEd1YXJkLFxuICAgICAgICAgICAgICAgIFJvbGVHdWFyZCxcbiAgICAgICAgICAgICAgICBQYWdlTm90Rm91bmRHdWFyZCxcbiAgICAgICAgICAgICAgICBDYW5EZWFjdGl2YXRlUGFnZUd1YXJkLFxuICAgICAgICAgICAgICAgIEFwcEpTUmVzb2x2ZSxcbiAgICAgICAgICAgICAgICBBcHBFeHRlbnNpb25KU1Jlc29sdmUsXG4gICAgICAgICAgICAgICAgSTE4blJlc29sdmUsXG4gICAgICAgICAgICAgICAgZ2V0U2V0dGluZ1Byb3ZpZGVyKE1BWF9DQUNIRV9TSVpFLCAxMCksXG4gICAgICAgICAgICAgICAgZ2V0U2V0dGluZ1Byb3ZpZGVyKE1BWF9DQUNIRV9BR0UsIDMwICogNjApXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IobW9iaWxlUnVudGltZU1vZHVsZTogTW9iaWxlUnVudGltZU1vZHVsZSxcbiAgICAgICAgICAgICAgICBhcHA6IEFwcCxcbiAgICAgICAgICAgICAgICB2aWV3cG9ydDogVmlld3BvcnQpIHtcbiAgICAgICAgUnVudGltZUJhc2VNb2R1bGUuYWRkQ3VzdG9tRXZlbnRQb2x5ZmlsbCgpO1xuXG4gICAgICAgIHRoaXMuZ2V0RGV2aWNlRGV0YWlscygpLnRoZW4oZGV0YWlscyA9PiB7XG4gICAgICAgICAgICBhcHAuc2VsZWN0ZWRWaWV3UG9ydCA9IHtcbiAgICAgICAgICAgICAgICBvczogZGV0YWlscy5vcyxcbiAgICAgICAgICAgICAgICBjYXRlZ29yeTogZGV0YWlscy5zZWxlY3RlZERldmljZUNhdGVnb3J5XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdmlld3BvcnQudXBkYXRlKGRldGFpbHMpO1xuICAgICAgICAgICAgYXBwLm5vdGlmeSgnb24tdmlld3BvcnQtZGV0YWlscycsIGRldGFpbHMub3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIHByaXZhdGUgZ2V0RGV2aWNlRGV0YWlscygpOiBQcm9taXNlPGFueT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PihmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICBjb25zdCBtc2dDb250ZW50ID0ge2tleTogJ29uLWxvYWQnfTtcbiAgICAgICAgICAgIC8vIE5vdGlmeSBwcmV2aWV3IHdpbmRvdyB0aGF0IGFwcGxpY2F0aW9uIGlzIHJlYWR5LiBPdGhlcndpc2UsIGlkZW50aWZ5IHRoZSBPUy5cbiAgICAgICAgICAgIGlmICh3aW5kb3cudG9wICE9PSB3aW5kb3cpIHtcbiAgICAgICAgICAgICAgICB3aW5kb3cudG9wLnBvc3RNZXNzYWdlKG1zZ0NvbnRlbnQsICcqJyk7XG4gICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBmb3IgcHJldmlldyBwYWdlXG4gICAgICAgICAgICAgICAgd2luZG93Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChtc2cpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IG1zZy5kYXRhO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNPYmplY3QoZGF0YSkgJiYgZGF0YS5rZXkgPT09ICdzd2l0Y2gtZGV2aWNlJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhLmRldmljZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0lwaG9uZSgpIHx8IGlzSXBvZCgpIHx8IGlzSXBhZCgpKSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSh7J29zJzogT1MuSU9TfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlc29sdmUoeydvcyc6IE9TLkFORFJPSUR9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY29uc3QgV01fTU9EVUxFU19GT1JfUk9PVCA9IFtcbiAgICBXbUNvbXBvbmVudHNNb2R1bGUuZm9yUm9vdCgpLFxuICAgIE1vYmlsZVJ1bnRpbWVNb2R1bGUuZm9yUm9vdCgpLFxuICAgIENvcmVNb2R1bGUuZm9yUm9vdCgpLFxuICAgIFNlY3VyaXR5TW9kdWxlLmZvclJvb3QoKSxcbiAgICBPQXV0aE1vZHVsZS5mb3JSb290KCksXG4gICAgVmFyaWFibGVzTW9kdWxlLmZvclJvb3QoKSxcbiAgICBIdHRwU2VydmljZU1vZHVsZS5mb3JSb290KCksXG4gICAgUnVudGltZUJhc2VNb2R1bGUuZm9yUm9vdCgpXG5dO1xuIl19
|