@wavemaker/app-ng-runtime 11.5.0-next.24738 → 11.5.0-next.24739
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/components/base/bundles/index.umd.js +24 -20
- app-ng-runtime/components/base/esm2020/widgets/common/base/base.component.mjs +13 -20
- app-ng-runtime/components/base/esm2020/widgets/common/partial-param/partial-param.directive.mjs +13 -2
- app-ng-runtime/components/base/fesm2015/index.mjs +24 -20
- app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/base/fesm2020/index.mjs +24 -20
- app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/base/widgets/common/partial-param/partial-param.directive.d.ts +1 -0
- app-ng-runtime/components/input/epoch/bundles/index.umd.js +6 -11
- app-ng-runtime/components/input/epoch/date/date.component.d.ts +2 -3
- app-ng-runtime/components/input/epoch/esm2020/date/date.component.mjs +6 -11
- app-ng-runtime/components/input/epoch/esm2020/date-time/date-time.component.mjs +2 -2
- app-ng-runtime/components/input/epoch/esm2020/time/time.component.mjs +2 -2
- app-ng-runtime/components/input/epoch/fesm2015/index.mjs +6 -11
- app-ng-runtime/components/input/epoch/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/input/epoch/fesm2020/index.mjs +6 -11
- app-ng-runtime/components/input/epoch/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/bundles/index.umd.js +12 -9
- app-ng-runtime/components/navigation/menu/esm2020/menu-dropdown-item/menu-dropdown-item.component.mjs +6 -5
- app-ng-runtime/components/navigation/menu/esm2020/menu.component.mjs +6 -5
- app-ng-runtime/components/navigation/menu/esm2020/nav/nav.component.mjs +6 -5
- app-ng-runtime/components/navigation/menu/fesm2015/index.mjs +12 -9
- app-ng-runtime/components/navigation/menu/fesm2015/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/fesm2020/index.mjs +12 -9
- app-ng-runtime/components/navigation/menu/fesm2020/index.mjs.map +1 -1
- app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +4 -3
- app-ng-runtime/components/navigation/menu/menu.component.d.ts +4 -3
- app-ng-runtime/components/navigation/menu/nav/nav.component.d.ts +4 -3
- app-ng-runtime/package.json +1 -1
|
@@ -172,10 +172,11 @@
|
|
|
172
172
|
get activePageName() {
|
|
173
173
|
return this.app.activePageName;
|
|
174
174
|
}
|
|
175
|
-
constructor(inj, cdRef, route, app, selectEventCB) {
|
|
175
|
+
constructor(inj, cdRef, route, userDefinedExecutionContext, app, selectEventCB) {
|
|
176
176
|
super(inj, WIDGET_CONFIG$2);
|
|
177
177
|
this.cdRef = cdRef;
|
|
178
178
|
this.route = route;
|
|
179
|
+
this.userDefinedExecutionContext = userDefinedExecutionContext;
|
|
179
180
|
this.app = app;
|
|
180
181
|
i5.styler(this.nativeElement, this, i5.APPLY_STYLES_TYPE.CONTAINER);
|
|
181
182
|
this.disableMenuContext = !!selectEventCB;
|
|
@@ -250,7 +251,7 @@
|
|
|
250
251
|
}
|
|
251
252
|
}
|
|
252
253
|
NavComponent.initializeProps = registerProps$1();
|
|
253
|
-
NavComponent.ɵfac = function NavComponent_Factory(t) { return new (t || NavComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.ChangeDetectorRef), i0__namespace.ɵɵdirectiveInject(i1__namespace.Router), i0__namespace.ɵɵdirectiveInject(i2__namespace.App), i0__namespace.ɵɵinjectAttribute('select.event')); };
|
|
254
|
+
NavComponent.ɵfac = function NavComponent_Factory(t) { return new (t || NavComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i0__namespace.ChangeDetectorRef), i0__namespace.ɵɵdirectiveInject(i1__namespace.Router), i0__namespace.ɵɵdirectiveInject(i2__namespace.UserDefinedExecutionContext), i0__namespace.ɵɵdirectiveInject(i2__namespace.App), i0__namespace.ɵɵinjectAttribute('select.event')); };
|
|
254
255
|
NavComponent.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: NavComponent, selectors: [["", "wmNav", ""]], features: [i0__namespace.ɵɵProvidersFeature([
|
|
255
256
|
i5.provideAsWidgetRef(NavComponent)
|
|
256
257
|
]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0$3, ngContentSelectors: _c5, decls: 6, vars: 2, consts: [["menuRef", ""], ["anchorRef", ""], [3, "class", "ngClass", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["wmMenu", "", "dropdown", "", "type", "anchor", "autoclose.bind", "autoclose", "iconclass.bind", "item.icon", "autoopen.bind", "autoopen", "caption.bind", "item.label", "dataset.bind", "item.children", "badgevalue.bind", "item.badge", "iconposition.bind", "iconposition", "select.event", "onMenuItemSelect($event, widget, $item)"], ["wmAnchor", "", "caption.bind", "item.label", "iconclass.bind", "item.icon", "badgevalue.bind", "item.badge", "iconposition.bind", "iconposition", "click.event", "onNavSelect($event, item, liRef)", 3, "disableMenuContext", "wmNavigationControl"], [3, "ngClass"], ["liRef", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function NavComponent_Template(rf, ctx) {
|
|
@@ -275,7 +276,7 @@
|
|
|
275
276
|
i5.provideAsWidgetRef(NavComponent)
|
|
276
277
|
], template: "<ng-template #menuRef let-item=\"item\" let-index=\"index\">\n <div wmMenu dropdown\n type=\"anchor\"\n autoclose.bind=\"autoclose\"\n iconclass.bind=\"item.icon\"\n autoopen.bind=\"autoopen\"\n caption.bind=\"item.label\"\n dataset.bind=\"item.children\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n select.event=\"onMenuItemSelect($event, widget, $item)\"></div>\n</ng-template>\n\n<ng-template #anchorRef let-item=\"item\" let-index=\"index\" let-liRef=\"liRef\">\n <a wmAnchor\n [disableMenuContext]=\"disableMenuContext || !!item.action\"\n [wmNavigationControl]=\"item.link\"\n [attr.aria-current]=\"item._selected || (!isactive && item.link === '#/' + activePageName) ? 'page' : ''\"\n caption.bind=\"item.label\"\n iconclass.bind=\"item.icon\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n click.event=\"onNavSelect($event, item, liRef)\"></a>\n</ng-template>\n\n<li class=\"app-nav-item {{item.class}}\" *ngFor=\"let item of nodes; let index = index;\" #liRef [ngClass]=\"{active: item._selected || (!isactive && item.link === '#/' + activePageName)}\">\n <ng-container [ngTemplateOutlet]=\"anchorRef\" [ngTemplateOutletContext]=\"{item: item, index:index, liRef: liRef}\" *ngIf=\"!item.children.length\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"menuRef\" [ngTemplateOutletContext]=\"{item: item, index:index}\" *ngIf=\"item.children.length\"></ng-container>\n</li>\n\n<ng-content *ngIf=\"!nodes.length\" select=\"[wmNavItem]\"></ng-content>\n" }]
|
|
277
278
|
}], function () {
|
|
278
|
-
return [{ type: i0__namespace.Injector }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.Router }, { type: i2__namespace.App }, { type: undefined, decorators: [{
|
|
279
|
+
return [{ type: i0__namespace.Injector }, { type: i0__namespace.ChangeDetectorRef }, { type: i1__namespace.Router }, { type: i2__namespace.UserDefinedExecutionContext }, { type: i2__namespace.App }, { type: undefined, decorators: [{
|
|
279
280
|
type: i0.Attribute,
|
|
280
281
|
args: ['select.event']
|
|
281
282
|
}] }];
|
|
@@ -423,9 +424,10 @@
|
|
|
423
424
|
}
|
|
424
425
|
$event.preventDefault();
|
|
425
426
|
}
|
|
426
|
-
constructor(inj, route, app, bsDropdown, parentNav, selectEventCB) {
|
|
427
|
+
constructor(inj, route, userDefinedExecutionContext, app, bsDropdown, parentNav, selectEventCB) {
|
|
427
428
|
super(inj, WIDGET_CONFIG$1);
|
|
428
429
|
this.route = route;
|
|
430
|
+
this.userDefinedExecutionContext = userDefinedExecutionContext;
|
|
429
431
|
this.app = app;
|
|
430
432
|
this.bsDropdown = bsDropdown;
|
|
431
433
|
this.parentNav = parentNav;
|
|
@@ -535,7 +537,7 @@
|
|
|
535
537
|
}
|
|
536
538
|
}
|
|
537
539
|
MenuComponent.initializeProps = registerProps$2();
|
|
538
|
-
MenuComponent.ɵfac = function MenuComponent_Factory(t) { return new (t || MenuComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.Router), i0__namespace.ɵɵdirectiveInject(i2__namespace.App), i0__namespace.ɵɵdirectiveInject(i2$1__namespace.BsDropdownDirective, 10), i0__namespace.ɵɵdirectiveInject(NavComponent, 8), i0__namespace.ɵɵinjectAttribute('select.event')); };
|
|
540
|
+
MenuComponent.ɵfac = function MenuComponent_Factory(t) { return new (t || MenuComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.Router), i0__namespace.ɵɵdirectiveInject(i2__namespace.UserDefinedExecutionContext), i0__namespace.ɵɵdirectiveInject(i2__namespace.App), i0__namespace.ɵɵdirectiveInject(i2$1__namespace.BsDropdownDirective, 10), i0__namespace.ɵɵdirectiveInject(NavComponent, 8), i0__namespace.ɵɵinjectAttribute('select.event')); };
|
|
539
541
|
MenuComponent.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: MenuComponent, selectors: [["", "wmMenu", ""]], hostBindings: function MenuComponent_HostBindings(rf, ctx) {
|
|
540
542
|
if (rf & 1) {
|
|
541
543
|
i0__namespace.ɵɵlistener("onShown", function MenuComponent_onShown_HostBindingHandler() { return ctx.onShow(); })("onHidden", function MenuComponent_onHidden_HostBindingHandler() { return ctx.onHide(); })("keydown.arrowup", function MenuComponent_keydown_arrowup_HostBindingHandler($event) { return ctx.onKeyDown($event, "UP-ARROW"); })("keydown.arrowdown", function MenuComponent_keydown_arrowdown_HostBindingHandler($event) { return ctx.onKeyDown($event, "DOWN-ARROW"); })("keydown.arrowright", function MenuComponent_keydown_arrowright_HostBindingHandler($event) { return ctx.onKeyDown($event, "RIGHT-ARROW"); })("keydown.arrowleft", function MenuComponent_keydown_arrowleft_HostBindingHandler($event) { return ctx.onKeyDown($event, "LEFT-ARROW"); })("keydown.enter", function MenuComponent_keydown_enter_HostBindingHandler($event) { return ctx.onKeyDown($event, "ENTER"); });
|
|
@@ -562,7 +564,7 @@
|
|
|
562
564
|
i5.provideAsWidgetRef(MenuComponent)
|
|
563
565
|
], template: "<ng-template #menuTemplate>\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"hint || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n</ng-template>\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n<ng-container *ngIf=\"type === 'anchor'; else menuTemplate\">\n <a wmAnchor\n dropdownToggle\n\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n</ng-container>\n\n<ul wmMenuDropdown [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" *dropdownMenu aria-labelledby=\"dropdownmenu\" role=\"menubar\"></ul>\n" }]
|
|
564
566
|
}], function () {
|
|
565
|
-
return [{ type: i0__namespace.Injector }, { type: i1__namespace.Router }, { type: i2__namespace.App }, { type: i2$1__namespace.BsDropdownDirective, decorators: [{
|
|
567
|
+
return [{ type: i0__namespace.Injector }, { type: i1__namespace.Router }, { type: i2__namespace.UserDefinedExecutionContext }, { type: i2__namespace.App }, { type: i2$1__namespace.BsDropdownDirective, decorators: [{
|
|
566
568
|
type: i0.Self
|
|
567
569
|
}, {
|
|
568
570
|
type: i0.Optional
|
|
@@ -645,9 +647,10 @@
|
|
|
645
647
|
VERTICAL: 'vertical'
|
|
646
648
|
};
|
|
647
649
|
class MenuDropdownItemComponent {
|
|
648
|
-
constructor(app, menuRef, parentNav, elRef) {
|
|
650
|
+
constructor(app, menuRef, userDefinedExecutionContext, parentNav, elRef) {
|
|
649
651
|
this.app = app;
|
|
650
652
|
this.menuRef = menuRef;
|
|
653
|
+
this.userDefinedExecutionContext = userDefinedExecutionContext;
|
|
651
654
|
this.parentNav = parentNav;
|
|
652
655
|
this.onSelect = ($event, item) => {
|
|
653
656
|
if (this.nativeElement !== $($event.target).closest('.app-menu-item').get(0)) {
|
|
@@ -776,7 +779,7 @@
|
|
|
776
779
|
}
|
|
777
780
|
}
|
|
778
781
|
}
|
|
779
|
-
MenuDropdownItemComponent.ɵfac = function MenuDropdownItemComponent_Factory(t) { return new (t || MenuDropdownItemComponent)(i0__namespace.ɵɵdirectiveInject(i2__namespace.App), i0__namespace.ɵɵdirectiveInject(MenuComponent), i0__namespace.ɵɵdirectiveInject(NavComponent, 8), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef)); };
|
|
782
|
+
MenuDropdownItemComponent.ɵfac = function MenuDropdownItemComponent_Factory(t) { return new (t || MenuDropdownItemComponent)(i0__namespace.ɵɵdirectiveInject(i2__namespace.App), i0__namespace.ɵɵdirectiveInject(MenuComponent), i0__namespace.ɵɵdirectiveInject(i2__namespace.UserDefinedExecutionContext), i0__namespace.ɵɵdirectiveInject(NavComponent, 8), i0__namespace.ɵɵdirectiveInject(i0__namespace.ElementRef)); };
|
|
780
783
|
MenuDropdownItemComponent.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: MenuDropdownItemComponent, selectors: [["li", "wmMenuDropdownItem", ""]], hostBindings: function MenuDropdownItemComponent_HostBindings(rf, ctx) {
|
|
781
784
|
if (rf & 1) {
|
|
782
785
|
i0__namespace.ɵɵlistener("keydown.tab", function MenuDropdownItemComponent_keydown_tab_HostBindingHandler($event) { return ctx.onKeyDown($event, "TAB"); })("keydown.shift.tab", function MenuDropdownItemComponent_keydown_shift_tab_HostBindingHandler($event) { return ctx.onKeyDown($event, "SHIFT-TAB"); })("keydown.escape", function MenuDropdownItemComponent_keydown_escape_HostBindingHandler($event) { return ctx.onKeyDown($event, "ESC"); })("keydown.enter", function MenuDropdownItemComponent_keydown_enter_HostBindingHandler($event) { return ctx.onKeyDown($event, "ENTER"); })("keydown.arrowup", function MenuDropdownItemComponent_keydown_arrowup_HostBindingHandler($event) { return ctx.onKeyDown($event, "UP-ARROW"); })("keydown.arrowdown", function MenuDropdownItemComponent_keydown_arrowdown_HostBindingHandler($event) { return ctx.onKeyDown($event, "DOWN-ARROW"); })("keydown.arrowright", function MenuDropdownItemComponent_keydown_arrowright_HostBindingHandler($event) { return ctx.onKeyDown($event, "RIGHT-ARROW"); })("keydown.arrowleft", function MenuDropdownItemComponent_keydown_arrowleft_HostBindingHandler($event) { return ctx.onKeyDown($event, "LEFT-ARROW"); })("click", function MenuDropdownItemComponent_click_HostBindingHandler($event) { return ctx.onSelect($event, ctx.item); });
|
|
@@ -813,7 +816,7 @@
|
|
|
813
816
|
type: i0.Component,
|
|
814
817
|
args: [{ selector: 'li[wmMenuDropdownItem]', template: "<a href=\"javascript:void(0);\" [title]=\"item.label\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"menuRef.disableMenuContext || !!item.action\">\n <span *ngIf=\"item.children.length\" class=\"pull-right fa caret {{menualign}}\"></span>\n <i class=\"app-icon {{item.icon}}\"></i>\n <span class=\"anchor-caption\">{{item.label}}</span>\n <span *ngIf=\"item.badge\" class=\"badge pull-right\" [textContent]=\"item.badge\"></span>\n</a>\n<ng-container [ngTemplateOutlet]=\"nestedMenuDropdown\" *ngIf=\"item.children.length\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n\n<ng-template #nestedMenuDropdown let-item=\"item\">\n <ul wmMenuDropdown [items]=\"item.children\"></ul>\n</ng-template>\n" }]
|
|
815
818
|
}], function () {
|
|
816
|
-
return [{ type: i2__namespace.App }, { type: MenuComponent }, { type: NavComponent, decorators: [{
|
|
819
|
+
return [{ type: i2__namespace.App }, { type: MenuComponent }, { type: i2__namespace.UserDefinedExecutionContext }, { type: NavComponent, decorators: [{
|
|
817
820
|
type: i0.Optional
|
|
818
821
|
}] }, { type: i0__namespace.ElementRef }];
|
|
819
822
|
}, { item: [{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, ElementRef, HostListener, Input, Optional } from '@angular/core';
|
|
2
|
-
import { addClass, triggerItemAction, App, toggleClass } from '@wm/core';
|
|
2
|
+
import { addClass, triggerItemAction, UserDefinedExecutionContext, App, toggleClass } from '@wm/core';
|
|
3
3
|
import { hasLinkToCurrentPage } from '@wm/components/base';
|
|
4
4
|
import { NavComponent } from '../nav/nav.component';
|
|
5
5
|
import { KEYBOARD_MOVEMENTS, MENU_POSITION, MenuComponent } from '../menu.component';
|
|
@@ -44,9 +44,10 @@ const MENU_LAYOUT_TYPE = {
|
|
|
44
44
|
VERTICAL: 'vertical'
|
|
45
45
|
};
|
|
46
46
|
export class MenuDropdownItemComponent {
|
|
47
|
-
constructor(app, menuRef, parentNav, elRef) {
|
|
47
|
+
constructor(app, menuRef, userDefinedExecutionContext, parentNav, elRef) {
|
|
48
48
|
this.app = app;
|
|
49
49
|
this.menuRef = menuRef;
|
|
50
|
+
this.userDefinedExecutionContext = userDefinedExecutionContext;
|
|
50
51
|
this.parentNav = parentNav;
|
|
51
52
|
this.onSelect = ($event, item) => {
|
|
52
53
|
if (this.nativeElement !== $($event.target).closest('.app-menu-item').get(0)) {
|
|
@@ -175,7 +176,7 @@ export class MenuDropdownItemComponent {
|
|
|
175
176
|
}
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
|
-
MenuDropdownItemComponent.ɵfac = function MenuDropdownItemComponent_Factory(t) { return new (t || MenuDropdownItemComponent)(i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject(i2.MenuComponent), i0.ɵɵdirectiveInject(i3.NavComponent, 8), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
|
179
|
+
MenuDropdownItemComponent.ɵfac = function MenuDropdownItemComponent_Factory(t) { return new (t || MenuDropdownItemComponent)(i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject(i2.MenuComponent), i0.ɵɵdirectiveInject(i1.UserDefinedExecutionContext), i0.ɵɵdirectiveInject(i3.NavComponent, 8), i0.ɵɵdirectiveInject(i0.ElementRef)); };
|
|
179
180
|
MenuDropdownItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuDropdownItemComponent, selectors: [["li", "wmMenuDropdownItem", ""]], hostBindings: function MenuDropdownItemComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
180
181
|
i0.ɵɵlistener("keydown.tab", function MenuDropdownItemComponent_keydown_tab_HostBindingHandler($event) { return ctx.onKeyDown($event, "TAB"); })("keydown.shift.tab", function MenuDropdownItemComponent_keydown_shift_tab_HostBindingHandler($event) { return ctx.onKeyDown($event, "SHIFT-TAB"); })("keydown.escape", function MenuDropdownItemComponent_keydown_escape_HostBindingHandler($event) { return ctx.onKeyDown($event, "ESC"); })("keydown.enter", function MenuDropdownItemComponent_keydown_enter_HostBindingHandler($event) { return ctx.onKeyDown($event, "ENTER"); })("keydown.arrowup", function MenuDropdownItemComponent_keydown_arrowup_HostBindingHandler($event) { return ctx.onKeyDown($event, "UP-ARROW"); })("keydown.arrowdown", function MenuDropdownItemComponent_keydown_arrowdown_HostBindingHandler($event) { return ctx.onKeyDown($event, "DOWN-ARROW"); })("keydown.arrowright", function MenuDropdownItemComponent_keydown_arrowright_HostBindingHandler($event) { return ctx.onKeyDown($event, "RIGHT-ARROW"); })("keydown.arrowleft", function MenuDropdownItemComponent_keydown_arrowleft_HostBindingHandler($event) { return ctx.onKeyDown($event, "LEFT-ARROW"); })("click", function MenuDropdownItemComponent_click_HostBindingHandler($event) { return ctx.onSelect($event, ctx.item); });
|
|
181
182
|
} }, inputs: { item: "item" }, attrs: _c0, decls: 9, vars: 10, consts: [["href", "javascript:void(0);", 3, "title", "wmNavigationControl", "disableMenuContext"], [3, "class", 4, "ngIf"], [1, "anchor-caption"], ["class", "badge pull-right", 3, "textContent", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], ["nestedMenuDropdown", ""], [1, "badge", "pull-right", 3, "textContent"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"], ["wmMenuDropdown", "", 3, "items"]], template: function MenuDropdownItemComponent_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -205,7 +206,7 @@ MenuDropdownItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: M
|
|
|
205
206
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MenuDropdownItemComponent, [{
|
|
206
207
|
type: Component,
|
|
207
208
|
args: [{ selector: 'li[wmMenuDropdownItem]', template: "<a href=\"javascript:void(0);\" [title]=\"item.label\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"menuRef.disableMenuContext || !!item.action\">\n <span *ngIf=\"item.children.length\" class=\"pull-right fa caret {{menualign}}\"></span>\n <i class=\"app-icon {{item.icon}}\"></i>\n <span class=\"anchor-caption\">{{item.label}}</span>\n <span *ngIf=\"item.badge\" class=\"badge pull-right\" [textContent]=\"item.badge\"></span>\n</a>\n<ng-container [ngTemplateOutlet]=\"nestedMenuDropdown\" *ngIf=\"item.children.length\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n\n<ng-template #nestedMenuDropdown let-item=\"item\">\n <ul wmMenuDropdown [items]=\"item.children\"></ul>\n</ng-template>\n" }]
|
|
208
|
-
}], function () { return [{ type: i1.App }, { type: i2.MenuComponent }, { type: i3.NavComponent, decorators: [{
|
|
209
|
+
}], function () { return [{ type: i1.App }, { type: i2.MenuComponent }, { type: i1.UserDefinedExecutionContext }, { type: i3.NavComponent, decorators: [{
|
|
209
210
|
type: Optional
|
|
210
211
|
}] }, { type: i0.ElementRef }]; }, { item: [{
|
|
211
212
|
type: Input
|
|
@@ -237,4 +238,4 @@ MenuDropdownItemComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: M
|
|
|
237
238
|
type: HostListener,
|
|
238
239
|
args: ['click', ['$event', 'item']]
|
|
239
240
|
}] }); })();
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUtZHJvcGRvd24taXRlbS9tZW51LWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbWVudS1kcm9wZG93bi1pdGVtL21lbnUtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0lDTGpGLHVCQUFvRjs7O0lBQWpELHVFQUF5Qzs7O0lBRzVFLDBCQUFvRjs7O0lBQWxDLCtDQUEwQjs7OztJQUVoRiwyQkFBMkk7Ozs7SUFBN0gsc0NBQXVDLG9FQUFBOzs7SUFHakQsd0JBQWdEOzs7SUFBN0Isd0NBQXVCOztBREM5QyxNQUFNLGNBQWMsR0FBRztJQUNuQixZQUFZLEVBQUcsZUFBZTtJQUM5QixpQkFBaUIsRUFBRyxlQUFlO0lBQ25DLFdBQVcsRUFBRyxnQkFBZ0I7Q0FDakMsQ0FBQztBQUVGLE1BQU0sZ0JBQWdC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bWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGFkZENsYXNzLCB0cmlnZ2VySXRlbUFjdGlvbiwgQXBwLCB0b2dnbGVDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IGhhc0xpbmtUb0N1cnJlbnRQYWdlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBOYXZDb21wb25lbnQgfSBmcm9tICcuLi9uYXYvbmF2LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEtFWUJPQVJEX01PVkVNRU5UUywgTUVOVV9QT1NJVElPTiwgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUuY29tcG9uZW50JztcblxuZGVjbGFyZSBjb25zdCBfLCAkO1xuXG5jb25zdCBtZW51QWxpZ25DbGFzcyA9IHtcbiAgICAncHVsbC1yaWdodCcgOiAnZmEtY2FyZXQtbGVmdCcsXG4gICAgJ2Ryb3BpbmxpbmUtbWVudScgOiAnZmEtY2FyZXQtZG93bicsXG4gICAgJ3B1bGwtbGVmdCcgOiAnZmEtY2FyZXQtcmlnaHQnXG59O1xuXG5jb25zdCBNRU5VX0xBWU9VVF9UWVBFID0ge1xuICAgIEhPUklaT05UQUw6ICdob3Jpem9udGFsJyxcbiAgICBWRVJUSUNBTDogJ3ZlcnRpY2FsJ1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaVt3bU1lbnVEcm9wZG93bkl0ZW1dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTWVudURyb3Bkb3duSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBtZW51YWxpZ246IHN0cmluZztcblxuICAgIHByaXZhdGUgaXRlbUFjdGlvbkZuOiBGdW5jdGlvbjtcblxuICAgIEBJbnB1dCgpIGl0ZW07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBoaWdobGlnaHRBY3RpdmVMaW5rU3Vic2NyaXB0aW9uOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIHB1YmxpYyBtZW51UmVmOiBNZW51Q29tcG9uZW50LFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudE5hdjogTmF2Q29tcG9uZW50LFxuICAgICAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICApIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnYXBwLW1lbnUtaXRlbScpO1xuXG4gICAgICAgIHRoaXMubWVudWFsaWduID0gbWVudUFsaWduQ2xhc3NbdGhpcy5tZW51UmVmLm1lbnVhbGlnbl0gfHwgbWVudUFsaWduQ2xhc3NbJ3B1bGwtbGVmdCddO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBhZGQgYWN0aXZlIGNsYXNzIHRvIHRoZSBpdGVtIG9ubHkgaWYgaXQgaXMgaW4gbmF2IGNvbXBvbmVudC5cbiAgICAgICAgaWYgKHRoaXMucGFyZW50TmF2KSB7XG4gICAgICAgICAgICBpZiAoaGFzTGlua1RvQ3VycmVudFBhZ2UoW3RoaXMuaXRlbV0sIHRoaXMubWVudVJlZi5yb3V0ZS51cmwpKSB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIGFjdGl2ZSBjbGFzcyB0byB0aGUgbGksIGlmIHRoZSBtZW51IGl0ZW0ncyBsaW5rIGlzIHNhbWUgYXMgdGhlIGN1cnJlbnQgcGFnZSBuYW1lLlxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRBY3RpdmVMaW5rU3Vic2NyaXB0aW9uID0gdGhpcy5hcHAuc3Vic2NyaWJlKFwiaGlnaGxpZ2h0QWN0aXZlTGlua1wiLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScsIGhhc0xpbmtUb0N1cnJlbnRQYWdlKFt0aGlzLml0ZW1dLCB0aGlzLm1lbnVSZWYucm91dGUudXJsKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEluaXRpYWxLZXlNb3ZlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IEtFWV9NT1ZFTUVOVFMgPSBfLmNsb25lKEtFWUJPQVJEX01PVkVNRU5UUyk7XG4gICAgICAgIGlmICh0aGlzLm1lbnVSZWYubWVudWxheW91dCA9PT0gTUVOVV9MQVlPVVRfVFlQRS5IT1JJWk9OVEFMKSB7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfVVAgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfTEVGVCA9ICdVUC1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnRE9XTi1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiA9ICdSSUdIVC1BUlJPVyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5ET1dOX0xFRlQgfHwgdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9MRUZUKSB7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfVVAgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnVVAtQVJST1cnO1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdET1dOLUFSUk9XJztcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiA9ICdSSUdIVC1BUlJPVyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEtFWV9NT1ZFTUVOVFM7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi50YWInLCBbJyRldmVudCcsICdcIlRBQlwiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5zaGlmdC50YWInLCBbJyRldmVudCcsICdcIlNISUZULVRBQlwiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCcsICdcIkVTQ1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50JywgJ1wiRU5URVJcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3d1cCcsIFsnJGV2ZW50JywgJ1wiVVAtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnLCAnXCJET1dOLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCcsICdcIlJJR0hULUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50JywgJ1wiTEVGVC1BUlJPV1wiJ10pXG4gICAgb25LZXlEb3duKCRldmVudCwgZXZlbnRBY3Rpb24pIHtcbiAgICAgICAgY29uc3QgJGxpID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCAkdWwgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkuY2xvc2VzdCgndWwuZHJvcGRvd24tbWVudScpO1xuICAgICAgICBjb25zdCAkcGFyZW50VWwgPSB0aGlzLm1lbnVSZWYuJGVsZW1lbnQuZmluZCgnPiB1bC5kcm9wZG93bi1tZW51Jyk7XG4gICAgICAgIGNvbnN0IEFSUk9XX0tFWVMgPSBbJ0xFRlQtQVJST1cnLCAnUklHSFQtQVJST1cnLCAnVVAtQVJST1cnLCAnRE9XTi1BUlJPVyddO1xuICAgICAgICBjb25zdCBLRVlfTU9WRU1FTlRTID0gdGhpcy5nZXRJbml0aWFsS2V5TW92ZW1lbnRzKCk7XG5cbiAgICAgICAgaWYgKF8uaW5jbHVkZXMoQVJST1dfS0VZUywgZXZlbnRBY3Rpb24pKSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50aW5nIGZyb20gcGFnZSBzY3JvbGwgd2hlbiB1cC9kb3duIGFycm93IGlzIHByZXNzZWQsIGluIGNhc2Ugb2YgbWVudSBpcyBvcGVuZWQuXG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fVEFCICYmICRwYXJlbnRVbC5jaGlsZHJlbigpLmxhc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgfHwgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX1NISUZUX1RBQiAmJiAkcGFyZW50VWwuY2hpbGRyZW4oKS5maXJzdCgpWzBdID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICB8fCBldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9FU0NBUEUpIHtcbiAgICAgICAgICAgIC8qY2xvc2luZyBhbGwgdGhlIGNoaWxkcmVuIGVsZW1lbnRzIHdoZW5cbiAgICAgICAgICAgICogMS4gVGFiIGlzIGNsaWNrZWQgb24gdGhlIGxhc3QgJGVsZW1lbnRcbiAgICAgICAgICAgICogMi4gU2hpZnQgVGFiIGlzIGNsaWNrZWQgb24gdGhlIGZpcnN0ICRlbGVtZW50XG4gICAgICAgICAgICAqIDMuIFdoZW4gRXNjYXBlIGtleSBpcyBjbGlja2VkKi9cbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5tZW51UmVmLmJzRHJvcGRvd24uaGlkZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9FTlRFUiAmJiAhdGhpcy5pdGVtLmxpbmspIHx8IGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQpIHtcbiAgICAgICAgICAgIC8vIHdoZW4gdGhlcmUgaXMgbm8gbGluayBmb3IgdGhlIG1lbnUsIG9uIGVudGVyIG9wZW4gdGhlIGlubmVyIGNoaWxkIGVsZW1lbnRzIGFuZCBmb2N1cyB0aGUgZmlyc3QgJGVsZW1lbnRcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKCdvcGVuJyk7XG4gICAgICAgICAgICAgICAgJGxpLmZpbmQoJ2xpJykuZmlyc3QoKS5maW5kKCc+IGEnKS5mb2N1cygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkbGkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlRcbiAgICAgICAgICAgIHx8IChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9UQUIgJiYgJHVsLmNoaWxkcmVuKCkubGFzdCgpWzBdID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICB8fCAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fU0hJRlRfVEFCICYmICR1bC5jaGlsZHJlbigpLmZpcnN0KClbMF0gPT09IHRoaXMubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGlmICgkcGFyZW50VWxbMF0gIT09ICR1bFswXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRwYXJlbnRJdGVtID0gJHVsLnBhcmVudCgpO1xuICAgICAgICAgICAgICAgICRwYXJlbnRJdGVtLnRvZ2dsZUNsYXNzKCdvcGVuJykuZmluZCgnbGkub3BlbicpLnJlbW92ZUNsYXNzKCdvcGVuJyk7XG4gICAgICAgICAgICAgICAgJHBhcmVudEl0ZW0uZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuTU9WRV9VUCkge1xuICAgICAgICAgICAgaWYgKCRwYXJlbnRVbFswXSAhPT0gJHVsWzBdIHx8ICRwYXJlbnRVbC5maW5kKCc+IGxpJykuZmlyc3QoKVswXSAhPT0gdGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICRsaS5wcmV2KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04pIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGlmICgkcGFyZW50VWwuZmluZCgnPiBsaScpLmxhc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgJiYgKHRoaXMubWVudVJlZi5tZW51bGF5b3V0ICE9PSBNRU5VX0xBWU9VVF9UWVBFLkhPUklaT05UQUxcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9SSUdIVFxuICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLm1lbnVSZWYubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLlVQX0xFRlQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51UmVmLmJzRHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkbGkubmV4dCgpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMub25TZWxlY3QoJGV2ZW50LCB0aGlzLml0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCcsICdpdGVtJ10pXG4gICAgb25TZWxlY3QgPSAoJGV2ZW50LCBpdGVtKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQgIT09ICQoJGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnLmFwcC1tZW51LWl0ZW0nKS5nZXQoMCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwcmV2ZW50IGV2ZW50IGV2ZW50IHByb3BhZ2F0aW9uIGlmIGF1dG8gY2xvc2UgaXMgb3V0c2lkZSBjbGljay5cbiAgICAgICAgaWYgKHRoaXMubWVudVJlZi5hdXRvY2xvc2UgPT09ICdvdXRzaWRlQ2xpY2snKSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgYXJncyA9IHskZXZlbnQsICRpdGVtOiBpdGVtfTtcbiAgICAgICAgdGhpcy5tZW51UmVmLm9uTWVudUl0ZW1TZWxlY3QoYXJncyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IF8uY2xvbmUoaXRlbSk7XG4gICAgICAgIHNlbGVjdGVkSXRlbS50YXJnZXQgPSBzZWxlY3RlZEl0ZW0udGFyZ2V0IHx8IHRoaXMubWVudVJlZi5saW5rdGFyZ2V0O1xuICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgIHRyaWdnZXJJdGVtQWN0aW9uKHRoaXMsIHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmKHRoaXMuaGlnaGxpZ2h0QWN0aXZlTGlua1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRBY3RpdmVMaW5rU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8YSBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiIFt0aXRsZV09XCJpdGVtLmxhYmVsXCIgW3dtTmF2aWdhdGlvbkNvbnRyb2xdPVwiaXRlbS5saW5rXCIgW2Rpc2FibGVNZW51Q29udGV4dF09XCJtZW51UmVmLmRpc2FibGVNZW51Q29udGV4dCB8fCAhIWl0ZW0uYWN0aW9uXCI+XG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmNoaWxkcmVuLmxlbmd0aFwiIGNsYXNzPVwicHVsbC1yaWdodCBmYSBjYXJldCB7e21lbnVhbGlnbn19XCI+PC9zcGFuPlxuICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tpdGVtLmljb259fVwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImFuY2hvci1jYXB0aW9uXCI+e3tpdGVtLmxhYmVsfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJpdGVtLmJhZGdlXCIgY2xhc3M9XCJiYWRnZSBwdWxsLXJpZ2h0XCIgW3RleHRDb250ZW50XT1cIml0ZW0uYmFkZ2VcIj48L3NwYW4+XG48L2E+XG48bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm5lc3RlZE1lbnVEcm9wZG93blwiICpuZ0lmPVwiaXRlbS5jaGlsZHJlbi5sZW5ndGhcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW19XCI+PC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbmVzdGVkTWVudURyb3Bkb3duIGxldC1pdGVtPVwiaXRlbVwiPlxuICAgIDx1bCB3bU1lbnVEcm9wZG93biBbaXRlbXNdPVwiaXRlbS5jaGlsZHJlblwiPjwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
241
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUtZHJvcGRvd24taXRlbS9tZW51LWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbWVudS1kcm9wZG93bi1pdGVtL21lbnUtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSwyQkFBMkIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0lDTGpGLHVCQUFvRjs7O0lBQWpELHVFQUF5Qzs7O0lBRzVFLDBCQUFvRjs7O0lBQWxDLCtDQUEwQjs7OztJQUVoRiwyQkFBMkk7Ozs7SUFBN0gsc0NBQXVDLG9FQUFBOzs7SUFHakQsd0JBQWdEOzs7SUFBN0Isd0NBQXVCOztBREM5QyxNQUFNLGNBQWMsR0FBRztJQUNuQixZQUFZLEVBQUcsZUFBZTtJQUM5QixpQkFBaUIsRUFBRyxlQUFlO0lBQ25DLFdBQVcsRUFBRyxnQkFBZ0I7Q0FDakMsQ0FBQztBQUVG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LEVBQUUsTUFBTSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgYWRkQ2xhc3MsIHRyaWdnZXJJdGVtQWN0aW9uLCBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQsIEFwcCwgdG9nZ2xlQ2xhc3MgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBoYXNMaW5rVG9DdXJyZW50UGFnZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbmF2L25hdi5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBLRVlCT0FSRF9NT1ZFTUVOVFMsIE1FTlVfUE9TSVRJT04sIE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51LmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgY29uc3QgXywgJDtcblxuY29uc3QgbWVudUFsaWduQ2xhc3MgPSB7XG4gICAgJ3B1bGwtcmlnaHQnIDogJ2ZhLWNhcmV0LWxlZnQnLFxuICAgICdkcm9waW5saW5lLW1lbnUnIDogJ2ZhLWNhcmV0LWRvd24nLFxuICAgICdwdWxsLWxlZnQnIDogJ2ZhLWNhcmV0LXJpZ2h0J1xufTtcblxuY29uc3QgTUVOVV9MQVlPVVRfVFlQRSA9IHtcbiAgICBIT1JJWk9OVEFMOiAnaG9yaXpvbnRhbCcsXG4gICAgVkVSVElDQUw6ICd2ZXJ0aWNhbCdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGlbd21NZW51RHJvcGRvd25JdGVtXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVEcm9wZG93bkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwdWJsaWMgbWVudWFsaWduOiBzdHJpbmc7XG5cbiAgICBwcml2YXRlIGl0ZW1BY3Rpb25GbjogRnVuY3Rpb247XG5cbiAgICBASW5wdXQoKSBpdGVtO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBuYXRpdmVFbGVtZW50O1xuICAgIHByaXZhdGUgaGlnaGxpZ2h0QWN0aXZlTGlua1N1YnNjcmlwdGlvbjogKCkgPT4gdm9pZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBwdWJsaWMgbWVudVJlZjogTWVudUNvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSB1c2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQ6IFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnROYXY6IE5hdkNvbXBvbmVudCxcbiAgICAgICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FwcC1tZW51LWl0ZW0nKTtcblxuICAgICAgICB0aGlzLm1lbnVhbGlnbiA9IG1lbnVBbGlnbkNsYXNzW3RoaXMubWVudVJlZi5tZW51YWxpZ25dIHx8IG1lbnVBbGlnbkNsYXNzWydwdWxsLWxlZnQnXTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gYWRkIGFjdGl2ZSBjbGFzcyB0byB0aGUgaXRlbSBvbmx5IGlmIGl0IGlzIGluIG5hdiBjb21wb25lbnQuXG4gICAgICAgIGlmICh0aGlzLnBhcmVudE5hdikge1xuICAgICAgICAgICAgaWYgKGhhc0xpbmtUb0N1cnJlbnRQYWdlKFt0aGlzLml0ZW1dLCB0aGlzLm1lbnVSZWYucm91dGUudXJsKSkge1xuICAgICAgICAgICAgICAgIC8vIGFkZCBhY3RpdmUgY2xhc3MgdG8gdGhlIGxpLCBpZiB0aGUgbWVudSBpdGVtJ3MgbGluayBpcyBzYW1lIGFzIHRoZSBjdXJyZW50IHBhZ2UgbmFtZS5cbiAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0QWN0aXZlTGlua1N1YnNjcmlwdGlvbiA9IHRoaXMuYXBwLnN1YnNjcmliZShcImhpZ2hsaWdodEFjdGl2ZUxpbmtcIiwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdhY3RpdmUnLCBoYXNMaW5rVG9DdXJyZW50UGFnZShbdGhpcy5pdGVtXSwgdGhpcy5tZW51UmVmLnJvdXRlLnVybCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbml0aWFsS2V5TW92ZW1lbnRzKCkge1xuICAgICAgICBjb25zdCBLRVlfTU9WRU1FTlRTID0gXy5jbG9uZShLRVlCT0FSRF9NT1ZFTUVOVFMpO1xuICAgICAgICBpZiAodGhpcy5tZW51UmVmLm1lbnVsYXlvdXQgPT09IE1FTlVfTEFZT1VUX1RZUEUuSE9SSVpPTlRBTCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnVVAtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUID0gJ0RPV04tQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnUklHSFQtQVJST1cnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uRE9XTl9MRUZUIHx8IHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uVVBfTEVGVCkge1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09ICdpbmxpbmUnKSB7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1VQLUFSUk9XJztcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnRE9XTi1BUlJPVyc7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBLRVlfTU9WRU1FTlRTO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24udGFiJywgWyckZXZlbnQnLCAnXCJUQUJcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc2hpZnQudGFiJywgWyckZXZlbnQnLCAnXCJTSElGVC1UQUJcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjYXBlJywgWyckZXZlbnQnLCAnXCJFU0NcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCcsICdcIkVOVEVSXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCcsICdcIlVQLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93ZG93bicsIFsnJGV2ZW50JywgJ1wiRE9XTi1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3JpZ2h0JywgWyckZXZlbnQnLCAnXCJSSUdIVC1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCcsICdcIkxFRlQtQVJST1dcIiddKVxuICAgIG9uS2V5RG93bigkZXZlbnQsIGV2ZW50QWN0aW9uKSB7XG4gICAgICAgIGNvbnN0ICRsaSA9ICQodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3QgJHVsID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLmNsb3Nlc3QoJ3VsLmRyb3Bkb3duLW1lbnUnKTtcbiAgICAgICAgY29uc3QgJHBhcmVudFVsID0gdGhpcy5tZW51UmVmLiRlbGVtZW50LmZpbmQoJz4gdWwuZHJvcGRvd24tbWVudScpO1xuICAgICAgICBjb25zdCBBUlJPV19LRVlTID0gWydMRUZULUFSUk9XJywgJ1JJR0hULUFSUk9XJywgJ1VQLUFSUk9XJywgJ0RPV04tQVJST1cnXTtcbiAgICAgICAgY29uc3QgS0VZX01PVkVNRU5UUyA9IHRoaXMuZ2V0SW5pdGlhbEtleU1vdmVtZW50cygpO1xuXG4gICAgICAgIGlmIChfLmluY2x1ZGVzKEFSUk9XX0tFWVMsIGV2ZW50QWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gcHJldmVudGluZyBmcm9tIHBhZ2Ugc2Nyb2xsIHdoZW4gdXAvZG93biBhcnJvdyBpcyBwcmVzc2VkLCBpbiBjYXNlIG9mIG1lbnUgaXMgb3BlbmVkLlxuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX1RBQiAmJiAkcGFyZW50VWwuY2hpbGRyZW4oKS5sYXN0KClbMF0gPT09IHRoaXMubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIHx8IChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9TSElGVF9UQUIgJiYgJHBhcmVudFVsLmNoaWxkcmVuKCkuZmlyc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgfHwgZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fRVNDQVBFKSB7XG4gICAgICAgICAgICAvKmNsb3NpbmcgYWxsIHRoZSBjaGlsZHJlbiBlbGVtZW50cyB3aGVuXG4gICAgICAgICAgICAqIDEuIFRhYiBpcyBjbGlja2VkIG9uIHRoZSBsYXN0ICRlbGVtZW50XG4gICAgICAgICAgICAqIDIuIFNoaWZ0IFRhYiBpcyBjbGlja2VkIG9uIHRoZSBmaXJzdCAkZWxlbWVudFxuICAgICAgICAgICAgKiAzLiBXaGVuIEVzY2FwZSBrZXkgaXMgY2xpY2tlZCovXG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMubWVudVJlZi5ic0Ryb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgfSBlbHNlIGlmICgoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fRU5URVIgJiYgIXRoaXMuaXRlbS5saW5rKSB8fCBldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUKSB7XG4gICAgICAgICAgICAvLyB3aGVuIHRoZXJlIGlzIG5vIGxpbmsgZm9yIHRoZSBtZW51LCBvbiBlbnRlciBvcGVuIHRoZSBpbm5lciBjaGlsZCBlbGVtZW50cyBhbmQgZm9jdXMgdGhlIGZpcnN0ICRlbGVtZW50XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcygnb3BlbicpO1xuICAgICAgICAgICAgICAgICRsaS5maW5kKCdsaScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJGxpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUXG4gICAgICAgICAgICB8fCAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fVEFCICYmICR1bC5jaGlsZHJlbigpLmxhc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgfHwgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX1NISUZUX1RBQiAmJiAkdWwuY2hpbGRyZW4oKS5maXJzdCgpWzBdID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICBpZiAoJHBhcmVudFVsWzBdICE9PSAkdWxbMF0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCAkcGFyZW50SXRlbSA9ICR1bC5wYXJlbnQoKTtcbiAgICAgICAgICAgICAgICAkcGFyZW50SXRlbS50b2dnbGVDbGFzcygnb3BlbicpLmZpbmQoJ2xpLm9wZW4nKS5yZW1vdmVDbGFzcygnb3BlbicpO1xuICAgICAgICAgICAgICAgICRwYXJlbnRJdGVtLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk1PVkVfVVApIHtcbiAgICAgICAgICAgIGlmICgkcGFyZW50VWxbMF0gIT09ICR1bFswXSB8fCAkcGFyZW50VWwuZmluZCgnPiBsaScpLmZpcnN0KClbMF0gIT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAkbGkucHJldigpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOKSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAoJHBhcmVudFVsLmZpbmQoJz4gbGknKS5sYXN0KClbMF0gPT09IHRoaXMubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICYmICh0aGlzLm1lbnVSZWYubWVudWxheW91dCAhPT0gTUVOVV9MQVlPVVRfVFlQRS5IT1JJWk9OVEFMXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uVVBfUklHSFRcbiAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9MRUZUKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudVJlZi5ic0Ryb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJGxpLm5leHQoKS5maW5kKCc+IGEnKS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX0VOVEVSKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0KCRldmVudCwgdGhpcy5pdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnLCAnaXRlbSddKVxuICAgIG9uU2VsZWN0ID0gKCRldmVudCwgaXRlbSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50ICE9PSAkKCRldmVudC50YXJnZXQpLmNsb3Nlc3QoJy5hcHAtbWVudS1pdGVtJykuZ2V0KDApKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcHJldmVudCBldmVudCBldmVudCBwcm9wYWdhdGlvbiBpZiBhdXRvIGNsb3NlIGlzIG91dHNpZGUgY2xpY2suXG4gICAgICAgIGlmICh0aGlzLm1lbnVSZWYuYXV0b2Nsb3NlID09PSAnb3V0c2lkZUNsaWNrJykge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSB7JGV2ZW50LCAkaXRlbTogaXRlbX07XG4gICAgICAgIHRoaXMubWVudVJlZi5vbk1lbnVJdGVtU2VsZWN0KGFyZ3MpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBfLmNsb25lKGl0ZW0pO1xuICAgICAgICBzZWxlY3RlZEl0ZW0udGFyZ2V0ID0gc2VsZWN0ZWRJdGVtLnRhcmdldCB8fCB0aGlzLm1lbnVSZWYubGlua3RhcmdldDtcbiAgICAgICAgLy8gVHJpZ2dlciB0aGUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBhY3RpdmUgaXRlbVxuICAgICAgICB0cmlnZ2VySXRlbUFjdGlvbih0aGlzLCBzZWxlY3RlZEl0ZW0pO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZih0aGlzLmhpZ2hsaWdodEFjdGl2ZUxpbmtTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0QWN0aXZlTGlua1N1YnNjcmlwdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGEgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiIFt3bU5hdmlnYXRpb25Db250cm9sXT1cIml0ZW0ubGlua1wiIFtkaXNhYmxlTWVudUNvbnRleHRdPVwibWVudVJlZi5kaXNhYmxlTWVudUNvbnRleHQgfHwgISFpdGVtLmFjdGlvblwiPlxuICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5jaGlsZHJlbi5sZW5ndGhcIiBjbGFzcz1cInB1bGwtcmlnaHQgZmEgY2FyZXQge3ttZW51YWxpZ259fVwiPjwvc3Bhbj5cbiAgICA8aSBjbGFzcz1cImFwcC1pY29uIHt7aXRlbS5pY29ufX1cIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJhbmNob3ItY2FwdGlvblwiPnt7aXRlbS5sYWJlbH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwiaXRlbS5iYWRnZVwiIGNsYXNzPVwiYmFkZ2UgcHVsbC1yaWdodFwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmJhZGdlXCI+PC9zcGFuPlxuPC9hPlxuPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJuZXN0ZWRNZW51RHJvcGRvd25cIiAqbmdJZj1cIml0ZW0uY2hpbGRyZW4ubGVuZ3RoXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOiBpdGVtfVwiPjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI25lc3RlZE1lbnVEcm9wZG93biBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8dWwgd21NZW51RHJvcGRvd24gW2l0ZW1zXT1cIml0ZW0uY2hpbGRyZW5cIj48L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Attribute, Component, HostListener, Injector, Optional, Self } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
3
|
import { BsDropdownDirective } from 'ngx-bootstrap/dropdown';
|
|
4
|
-
import { $appDigest, addClass, removeClass, triggerItemAction, App, toggleClass } from '@wm/core';
|
|
4
|
+
import { $appDigest, addClass, removeClass, triggerItemAction, App, toggleClass, UserDefinedExecutionContext } from '@wm/core';
|
|
5
5
|
import { DatasetAwareNavComponent, hasLinkToCurrentPage, provideAsWidgetRef, styler, AUTOCLOSE_TYPE } from '@wm/components/base';
|
|
6
6
|
import { NavComponent } from './nav/nav.component';
|
|
7
7
|
import { registerProps } from './menu.props';
|
|
@@ -139,9 +139,10 @@ export class MenuComponent extends DatasetAwareNavComponent {
|
|
|
139
139
|
}
|
|
140
140
|
$event.preventDefault();
|
|
141
141
|
}
|
|
142
|
-
constructor(inj, route, app, bsDropdown, parentNav, selectEventCB) {
|
|
142
|
+
constructor(inj, route, userDefinedExecutionContext, app, bsDropdown, parentNav, selectEventCB) {
|
|
143
143
|
super(inj, WIDGET_CONFIG);
|
|
144
144
|
this.route = route;
|
|
145
|
+
this.userDefinedExecutionContext = userDefinedExecutionContext;
|
|
145
146
|
this.app = app;
|
|
146
147
|
this.bsDropdown = bsDropdown;
|
|
147
148
|
this.parentNav = parentNav;
|
|
@@ -251,7 +252,7 @@ export class MenuComponent extends DatasetAwareNavComponent {
|
|
|
251
252
|
}
|
|
252
253
|
}
|
|
253
254
|
MenuComponent.initializeProps = registerProps();
|
|
254
|
-
MenuComponent.ɵfac = function MenuComponent_Factory(t) { return new (t || MenuComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.App), i0.ɵɵdirectiveInject(i3.BsDropdownDirective, 10), i0.ɵɵdirectiveInject(i4.NavComponent, 8), i0.ɵɵinjectAttribute('select.event')); };
|
|
255
|
+
MenuComponent.ɵfac = function MenuComponent_Factory(t) { return new (t || MenuComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.UserDefinedExecutionContext), i0.ɵɵdirectiveInject(i2.App), i0.ɵɵdirectiveInject(i3.BsDropdownDirective, 10), i0.ɵɵdirectiveInject(i4.NavComponent, 8), i0.ɵɵinjectAttribute('select.event')); };
|
|
255
256
|
MenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuComponent, selectors: [["", "wmMenu", ""]], hostBindings: function MenuComponent_HostBindings(rf, ctx) { if (rf & 1) {
|
|
256
257
|
i0.ɵɵlistener("onShown", function MenuComponent_onShown_HostBindingHandler() { return ctx.onShow(); })("onHidden", function MenuComponent_onHidden_HostBindingHandler() { return ctx.onHide(); })("keydown.arrowup", function MenuComponent_keydown_arrowup_HostBindingHandler($event) { return ctx.onKeyDown($event, "UP-ARROW"); })("keydown.arrowdown", function MenuComponent_keydown_arrowdown_HostBindingHandler($event) { return ctx.onKeyDown($event, "DOWN-ARROW"); })("keydown.arrowright", function MenuComponent_keydown_arrowright_HostBindingHandler($event) { return ctx.onKeyDown($event, "RIGHT-ARROW"); })("keydown.arrowleft", function MenuComponent_keydown_arrowleft_HostBindingHandler($event) { return ctx.onKeyDown($event, "LEFT-ARROW"); })("keydown.enter", function MenuComponent_keydown_enter_HostBindingHandler($event) { return ctx.onKeyDown($event, "ENTER"); });
|
|
257
258
|
} }, features: [i0.ɵɵProvidersFeature([
|
|
@@ -271,7 +272,7 @@ MenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuComponent
|
|
|
271
272
|
args: [{ selector: '[wmMenu]', providers: [
|
|
272
273
|
provideAsWidgetRef(MenuComponent)
|
|
273
274
|
], template: "<ng-template #menuTemplate>\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"hint || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n</ng-template>\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n<ng-container *ngIf=\"type === 'anchor'; else menuTemplate\">\n <a wmAnchor\n dropdownToggle\n\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n</ng-container>\n\n<ul wmMenuDropdown [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" *dropdownMenu aria-labelledby=\"dropdownmenu\" role=\"menubar\"></ul>\n" }]
|
|
274
|
-
}], function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i2.App }, { type: i3.BsDropdownDirective, decorators: [{
|
|
275
|
+
}], function () { return [{ type: i0.Injector }, { type: i1.Router }, { type: i2.UserDefinedExecutionContext }, { type: i2.App }, { type: i3.BsDropdownDirective, decorators: [{
|
|
275
276
|
type: Self
|
|
276
277
|
}, {
|
|
277
278
|
type: Optional
|
|
@@ -302,4 +303,4 @@ MenuComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MenuComponent
|
|
|
302
303
|
type: HostListener,
|
|
303
304
|
args: ['keydown.enter', ['$event', '"ENTER"']]
|
|
304
305
|
}] }); })();
|
|
305
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7OztJQ1J6QyxpQ0FXeUM7SUFDckMsMEJBQWlFO0lBQ3JFLGlCQUFTOzs7SUFSRCxrRkFBb0Q7SUFEcEQsbURBQWtDO0lBUUosZUFBdUI7SUFBdkIsc0VBQXVCOzs7SUFLN0Qsb0JBQXNDLGNBQUEsV0FBQTs7O0lBQW5DLDREQUE4QjtJQUNYLGVBQXVCO0lBQXZCLDRDQUF1QjtJQUN2QyxlQUF5QztJQUF6Qyx1RUFBeUM7OztJQUduRCw2QkFBMkQ7SUFDdkQsNEJBZ0JDO0lBQ0csMEJBQWlFO0lBQ3JFLGlCQUFJO0lBQ1IsMEJBQWU7OztJQVZSLGVBQXFDO0lBQXJDLG1FQUFxQztJQVFGLGVBQXVCO0lBQXZCLHNFQUF1Qjs7O0lBSWpFLHdCQUFrSzs7O0lBQXhHLG9FQUFzQztJQUE3RSxvQ0FBZSw4QkFBQTs7QURoQ2xDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLE9BQU8sRUFBRSxVQUFVO0lBQ25CLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFNBQVMsRUFBRSxZQUFZO0lBQ3ZCLFFBQVEsRUFBRSxPQUFPO0lBQ2pCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsWUFBWSxFQUFFLFdBQVc7SUFDekIsU0FBUyxFQUFFLEtBQUs7Q0FDbkIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRztJQUN6QixPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtJQUNwQixTQUFTLEVBQUUsV0FBVztJQUN0QixVQUFVLEVBQUUsWUFBWTtJQUN4QixNQUFNLEVBQUUsUUFBUTtDQUNuQixDQUFDO0FBRUYsTUFBTSxRQUFRLEdBQUc7SUFDYixVQUFVLEVBQUUsWUFBWTtJQUN4QixTQUFTLEVBQUUsV0FBVztJQUN0QixRQUFRLEVBQUUsVUFBVTtJQUNwQixPQUFPLEVBQUUsU0FBUztJQUNsQixNQUFNLEVBQUUsUUFBUTtDQUNuQixDQUFDO0FBQ0YsTUFBTSxTQUFTLEdBQUc7SUFDZCxFQUFFLEVBQUUsYUFBYTtJQUNqQixJQUFJLEVBQUUsZUFBZTtDQUN4QixDQUFDO0FBQ0YsTUFBTSxRQUFRLEdBQUc7SUFDYixJQUFJLEVBQUUsV0FBVztJQUNqQixLQUFLLEVBQUUsWUFBWTtDQUN0QixDQUFDO0FBRUYsTUFBTSxTQUFTLEdBQUc7SUFDZCxLQUFLLEVBQUUsT0FBTztJQUNkLFdBQVcsRUFBRSxZQUFZO0lBQ3pCLE1BQU0sRUFBRSxRQUFRO0NBQ25CLENBQUM7QUFFRixNQUFNLGFBQWEsR0FBRyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLENBQUM7QUFRaEYsTUFBTSxPQUFPLGFBQWMsU0FBUSx3QkFBd0I7SUFxQjlCLE1BQU07UUFDM0IsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1RixDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsVUFBVSxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUN5QixNQUFNO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDaEQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsVUFBVSxFQUFFLENBQUM7SUFDakIsQ0FBQztJQU1xRCxTQUFTLENBQUMsTUFBTSxFQUFFLFdBQVc7UUFDL0UsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ2xELElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQzlDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsWUFBWSxDQUFDO1lBQ3JDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO1NBQ3hDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLGFBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDcEQsYUFBYSxDQUFDLE9BQU8sR0FBRyxZQUFZLENBQUM7WUFDckMsYUFBYSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUM7WUFDckMsYUFBYSxDQUFDLFNBQVMsR0FBRyxhQUFhLENBQUM7WUFDeEMsYUFBYSxDQUFDLFVBQVUsR0FBRyxZQUFZLENBQUM7U0FDM0M7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssYUFBYSxDQUFDLFNBQVMsRUFBRTtZQUN0RCxhQUFhLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQztZQUN4QyxhQUFhLENBQUMsVUFBVSxHQUFHLFlBQVksQ0FBQztTQUMzQztRQUVELElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUsYUFBYSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQzlFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRTtnQkFDekIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztnQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxQjtpQkFBTTtnQkFDSCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUMzRjtTQUNKO2FBQU0sSUFBSSxXQUFXLEtBQUssYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNoQzthQUFNLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQ2xGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDMUI7UUFDRCxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVELFlBQ0ksR0FBYSxFQUNOLEtBQWEsRUFDWixHQUFRLEVBQ1csVUFBK0IsRUFDdEMsU0FBdUIsRUFDVCxhQUFxQjtRQUV2RCxLQUFLLENBQUMsR0FBRyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBTm5CLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDWixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ1csZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDdEMsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUNULGtCQUFhLEdBQWIsYUFBYSxDQUFRO1FBNURuRCxjQUFTLEdBQUcsZUFBZSxDQUFDO1FBQzVCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQThEN0IsSUFBSSxTQUFTLEVBQUU7WUFDWCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztTQUM1RDthQUFNO1lBQ0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUM7U0FDN0M7UUFDRCxpQ0FBaUM7UUFDakMsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbkQsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QixJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDbEQsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFnQixFQUFFLFFBQVEsQ0FBQyxDQUFDO2lCQUMzRjtnQkFDRCxnSUFBZ0k7Z0JBQ2hJLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDaEIsT0FBTztpQkFDVjtnQkFDRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLE1BQU0sT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ3RCLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7d0JBQ3RCLElBQUksU0FBUyxFQUFFOzRCQUNYLE9BQU87eUJBQ1Y7d0JBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFOzRCQUNmLFNBQVMsR0FBRyxJQUFJLENBQUM7NEJBQ2pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7NEJBQ25ELGlEQUFpRDs0QkFDakQsaUJBQWlCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDOzRCQUM5QixPQUFPLEtBQUssQ0FBQzt5QkFDaEI7d0JBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFOzRCQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3lCQUMxQjtvQkFFTCxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDLENBQUM7Z0JBQ0YsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUN2QjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFMUUsQ0FBQztJQUVTLFVBQVU7UUFDaEIsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ25CLHlHQUF5RztRQUN6RyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsV0FBVyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLE1BQU0sRUFBRTtZQUNySSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQzFCO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXZCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxRSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsa0JBQWtCLENBQWdCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUUsQ0FBQyxDQUFDO1FBQ2xKLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBVyxFQUFFLEVBQU8sRUFBRSxFQUFRO1FBRTNDLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRTtZQUNwQixPQUFPO1NBQ1Y7UUFFRCxJQUFJLEdBQUcsS0FBSyxXQUFXLEVBQUU7WUFDckIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxLQUFLLGNBQWMsQ0FBQyxRQUFRLENBQUM7U0FDOUQ7YUFBTTtZQUNILEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ3ZDO0lBQ0wsQ0FBQztJQUVPLGVBQWU7UUFDbkIsUUFBUSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3ZCLEtBQUssUUFBUSxDQUFDLFVBQVU7Z0JBQ3BCLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDaEMsTUFBTTtZQUNWLEtBQUssUUFBUSxDQUFDLFNBQVM7Z0JBQ25CLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQztnQkFDaEMsTUFBTTtZQUNWLEtBQUssUUFBUSxDQUFDLE9BQU87Z0JBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsTUFBTTtZQUNWLEtBQUssUUFBUSxDQUFDLFFBQVE7Z0JBQ2xCLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDOUIsTUFBTTtZQUNWLEtBQUssUUFBUSxDQUFDLE1BQU07Z0JBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUM7Z0JBQ25DLE1BQU07U0FDYjtJQUNMLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxJQUFJO1FBQ3hCLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxlQUFlO1FBQ1gsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN0RixDQUFDOztBQTNMTSw2QkFBZSxHQUFHLGFBQWEsRUFBRSxDQUFDOzBFQURoQyxhQUFhLHFOQTRFUCxjQUFjO2dFQTVFcEIsYUFBYTs4RkFBYixZQUFRLCtFQUFSLFlBQVEsbUdBQVIsc0JBQWlCLFVBQVUsQ0FBQyx1R0FBNUIsc0JBQWlCLFlBQVksQ0FBQyx5R0FBOUIsc0JBQWlCLGFBQWEsQ0FBQyx1R0FBL0Isc0JBQWlCLFlBQVksQ0FBQywrRkFBOUIsc0JBQWlCLE9BQU8sQ0FBQzswQ0FKdkI7WUFDUCxrQkFBa0IsQ0FBQyxhQUFhLENBQUM7U0FDcEM7UUM1REwsK0dBZWM7UUFFZCwrR0FJYztRQUVkLGdGQW9CZTtRQUVmLDREQUFrSzs7O1FBdEJuSixlQUF5QjtRQUF6Qiw0Q0FBeUIsaUJBQUE7O3VGRHVDM0IsYUFBYTtjQVB6QixTQUFTOzJCQUNJLFVBQVUsYUFFVDtvQkFDUCxrQkFBa0IsZUFBZTtpQkFDcEM7O3NCQTRFSSxJQUFJOztzQkFBSSxRQUFROztzQkFDaEIsUUFBUTs7c0JBQ1IsU0FBUzt1QkFBQyxjQUFjO3dCQXZESixNQUFNO2tCQUE5QixZQUFZO21CQUFDLFNBQVM7WUFRRyxNQUFNO2tCQUEvQixZQUFZO21CQUFDLFVBQVU7WUFXOEIsU0FBUztrQkFKOUQsWUFBWTttQkFBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUM7O2tCQUN4RCxZQUFZO21CQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQzs7a0JBQzVELFlBQVk7bUJBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDOztrQkFDOUQsWUFBWTttQkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUM7O2tCQUM1RCxZQUFZO21CQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBBdHRyaWJ1dGUsIENvbXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5cbmltcG9ydCB7ICRhcHBEaWdlc3QsIGFkZENsYXNzLCByZW1vdmVDbGFzcywgdHJpZ2dlckl0ZW1BY3Rpb24sIEFwcCwgdG9nZ2xlQ2xhc3MgfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQsIGhhc0xpbmtUb0N1cnJlbnRQYWdlLCBwcm92aWRlQXNXaWRnZXRSZWYsIHN0eWxlciwgQVVUT0NMT1NFX1RZUEUgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IE5hdkNvbXBvbmVudCB9IGZyb20gJy4vbmF2L25hdi5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9tZW51LnByb3BzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5leHBvcnQgY29uc3QgS0VZQk9BUkRfTU9WRU1FTlRTID0ge1xuICAgIE1PVkVfVVA6ICdVUC1BUlJPVycsXG4gICAgTU9WRV9MRUZUOiAnTEVGVC1BUlJPVycsXG4gICAgTU9WRV9SSUdIVDogJ1JJR0hULUFSUk9XJyxcbiAgICBNT1ZFX0RPV046ICdET1dOLUFSUk9XJyxcbiAgICBPTl9FTlRFUjogJ0VOVEVSJyxcbiAgICBPTl9UQUI6ICdUQUInLFxuICAgIE9OX1NISUZUX1RBQjogJ1NISUZULVRBQicsXG4gICAgT05fRVNDQVBFOiAnRVNDJ1xufTtcblxuZXhwb3J0IGNvbnN0IE1FTlVfUE9TSVRJT04gPSB7XG4gICAgVVBfTEVGVDogJ3VwLGxlZnQnLFxuICAgIFVQX1JJR0hUOiAndXAscmlnaHQnLFxuICAgIERPV05fTEVGVDogJ2Rvd24sbGVmdCcsXG4gICAgRE9XTl9SSUdIVDogJ2Rvd24scmlnaHQnLFxuICAgIElOTElORTogJ2lubGluZSdcbn07XG5cbmNvbnN0IFBPU0lUSU9OID0ge1xuICAgIERPV05fUklHSFQ6ICdkb3duLHJpZ2h0JyxcbiAgICBET1dOX0xFRlQ6ICdkb3duLGxlZnQnLFxuICAgIFVQX1JJR0hUOiAndXAscmlnaHQnLFxuICAgIFVQX0xFRlQ6ICd1cCxsZWZ0JyxcbiAgICBJTkxJTkU6ICdpbmxpbmUnXG59O1xuY29uc3QgQ0FSRVRfQ0xTID0ge1xuICAgIFVQOiAnZmEtY2FyZXQtdXAnLFxuICAgIERPV046ICdmYS1jYXJldC1kb3duJ1xufTtcbmNvbnN0IFBVTExfQ0xTID0ge1xuICAgIExFRlQ6ICdwdWxsLWxlZnQnLFxuICAgIFJJR0hUOiAncHVsbC1yaWdodCdcbn07XG5cbmNvbnN0IEFVVE9fT1BFTiA9IHtcbiAgICBORVZFUjogJ25ldmVyJyxcbiAgICBBQ1RJVkVfUEFHRTogJ2FjdGl2ZXBhZ2UnLFxuICAgIEFMV0FZUzogJ2Fsd2F5cydcbn07XG5cbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7IHdpZGdldFR5cGU6ICd3bS1tZW51JywgaG9zdENsYXNzOiAnZHJvcGRvd24gYXBwLW1lbnUnIH07XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ1t3bU1lbnVdJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihNZW51Q29tcG9uZW50KVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBleHRlbmRzIERhdGFzZXRBd2FyZU5hdkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIG1lbnVhbGlnbjogc3RyaW5nO1xuICAgIHB1YmxpYyBtZW51cG9zaXRpb246IHN0cmluZztcbiAgICBwdWJsaWMgbWVudWxheW91dDogc3RyaW5nO1xuICAgIHB1YmxpYyBtZW51Y2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgbGlua3RhcmdldDogc3RyaW5nO1xuICAgIHB1YmxpYyBpY29uY2xhc3M6IHN0cmluZztcbiAgICBwdWJsaWMgYW5pbWF0ZWl0ZW1zOiBzdHJpbmc7XG4gICAgcHVibGljIGRpc2FibGVNZW51Q29udGV4dDogYm9vbGVhbjtcbiAgICBwdWJsaWMgYXV0b2Nsb3NlOiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG9vcGVuOiBzdHJpbmc7XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgaXRlbUFjdGlvbkZuOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG1lbnVDYXJldCA9ICdmYS1jYXJldC1kb3duJztcbiAgICBwcml2YXRlIF9zZWxlY3RGaXJzdEl0ZW0gPSBmYWxzZTtcblxuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdvblNob3duJykgb25TaG93KCkge1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0Rmlyc3RJdGVtKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJz4gdWxbd21tZW51ZHJvcGRvd25dIGxpLmFwcC1tZW51LWl0ZW0nKS5maXJzdCgpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuICAgIEBIb3N0TGlzdGVuZXIoJ29uSGlkZGVuJykgb25IaWRlKCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJz4uZHJvcGRvd24tdG9nZ2xlJykuZm9jdXMoKTtcbiAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCdsaScpLnJlbW92ZUNsYXNzKCdvcGVuJyk7XG4gICAgICAgIHRoaXMuX3NlbGVjdEZpcnN0SXRlbSA9IGZhbHNlO1xuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3VwJywgWyckZXZlbnQnLCAnXCJVUC1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCcsICdcIkRPV04tQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50JywgJ1wiUklHSFQtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dsZWZ0JywgWyckZXZlbnQnLCAnXCJMRUZULUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnLCAnXCJFTlRFUlwiJ10pIG9uS2V5RG93bigkZXZlbnQsIGV2ZW50QWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IEtFWV9NT1ZFTUVOVFMgPSBfLmNsb25lKEtFWUJPQVJEX01PVkVNRU5UUyk7XG4gICAgICAgIGlmICh0aGlzLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9SSUdIVCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0RPV04tQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnVVAtQVJST1cnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLlVQX0xFRlQpIHtcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9VUCA9ICdET1dOLUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOID0gJ1VQLUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5ET1dOX0xFRlQpIHtcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfLmluY2x1ZGVzKFtLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiwgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUXSwgZXZlbnRBY3Rpb24pKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYnNEcm9wZG93bi5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RGaXJzdEl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPiB1bFt3bW1lbnVkcm9wZG93bl0gbGkuYXBwLW1lbnUtaXRlbScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9FTlRFUikge1xuICAgICAgICAgICAgdGhpcy5ic0Ryb3Bkb3duLnRvZ2dsZSh0cnVlKTtcbiAgICAgICAgfSBlbHNlIGlmIChfLmluY2x1ZGVzKFtLRVlfTU9WRU1FTlRTLk1PVkVfVVAsIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUXSwgZXZlbnRBY3Rpb24pKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24uaGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwdWJsaWMgcm91dGU6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgYnNEcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnROYXY6IE5hdkNvbXBvbmVudCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnc2VsZWN0LmV2ZW50JykgcHVibGljIHNlbGVjdEV2ZW50Q0I6IHN0cmluZ1xuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcpO1xuICAgICAgICBpZiAocGFyZW50TmF2KSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVNZW51Q29udGV4dCA9ICEhcGFyZW50TmF2LmRpc2FibGVNZW51Q29udGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFzZWxlY3RFdmVudENCO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBzZWxlY3RpbmcgdGhlIGl0ZW0gb24gbG9hZFxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5ub2RlcyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KHRoaXMubm9kZXMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0xpbmtUb0N1cnJlbnRQYWdlKHRoaXMubm9kZXMsIHRoaXMucm91dGUudXJsKSkge1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCAnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIG1lbnUgd2lkZ2V0IGlzIGluc2lkZSBuYXYgd2lkZ2V0IHRoZW4gZG9udCBjaGVjayBmb3IgaXRlbSBpc2FjdGl2ZSBwcm9wZXJ0eSBiZWNhdXNlIHRoZXNlIHdpbGwgYmUgaGFuZGxlZCBmb3JtIG5hdiB3aWRnZXQuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50TmF2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1Gb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldEl0ZW0gPSAobm9kZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgXy5mb3JFYWNoKG5vZGVzLCAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1Gb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmlzYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTWVudUl0ZW1TZWxlY3QoeyAkZXZlbnQ6IHt9LCAkaXRlbTogaXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckl0ZW1BY3Rpb24odGhpcywgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkoaXRlbS5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJdGVtKGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZ2V0SXRlbSh0aGlzLm5vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNldE5vZGVzKCkge1xuICAgICAgICBzdXBlci5yZXNldE5vZGVzKCk7XG4gICAgICAgIC8vIG9wZW4gdGhlIG1lbnUgaWYgYW55IG9mIGl0cyBtZW51IGl0ZW1zIGhhcyBsaW5rIHRvIGN1cnJlbnQgcGFnZSBhbmQgaWYgYXV0b29wZW4gdmFsdWUgaXMgJ2FjdGl2ZSBwYWdlJ1xuICAgICAgICBpZiAoKHRoaXMuYXV0b29wZW4gPT09IEFVVE9fT1BFTi5BQ1RJVkVfUEFHRSAmJiBoYXNMaW5rVG9DdXJyZW50UGFnZSh0aGlzLm5vZGVzLCB0aGlzLnJvdXRlLnVybCkpIHx8IHRoaXMuYXV0b29wZW4gPT09IEFVVE9fT1BFTi5BTFdBWVMpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5zaG93KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXRNZW51UG9zaXRpb24oKTtcblxuICAgICAgICBjb25zdCBjYW5jZWxTdWJzY3JpcHRpb24gPSB0aGlzLmFwcC5zdWJzY3JpYmUoXCJoaWdobGlnaHRBY3RpdmVMaW5rXCIsIChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCAnYWN0aXZlJywgaGFzTGlua1RvQ3VycmVudFBhZ2UodGhpcy5ub2RlcywgdGhpcy5yb3V0ZS51cmwgKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGNhbmNlbFN1YnNjcmlwdGlvbigpKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuXG4gICAgICAgIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChrZXkgPT09ICdhdXRvY2xvc2UnKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24uYXV0b0Nsb3NlID0gbnYgIT09IEFVVE9DTE9TRV9UWVBFLkRJU0FCTEVEO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE1lbnVQb3NpdGlvbigpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLm1lbnVwb3NpdGlvbikge1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5ET1dOX1JJR0hUOlxuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Ryb3B1cCcpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gUFVMTF9DTFMuTEVGVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5ET1dOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5ET1dOX0xFRlQ6XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5SSUdIVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5ET1dOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5VUF9MRUZUOlxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Ryb3B1cCcpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gUFVMTF9DTFMuUklHSFQ7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51Q2FyZXQgPSBDQVJFVF9DTFMuVVA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLlVQX1JJR0hUOlxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Ryb3B1cCcpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gUFVMTF9DTFMuTEVGVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5VUDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUE9TSVRJT04uSU5MSU5FOlxuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gJ2Ryb3BpbmxpbmUtbWVudSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25NZW51SXRlbVNlbGVjdChhcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgJGV2ZW50IH0gPSBhcmdzO1xuICAgICAgICBjb25zdCAkaXRlbSA9IGFyZ3MuJGl0ZW0udmFsdWU7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyAkZXZlbnQsICRpdGVtIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCB0aGlzKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI21lbnVUZW1wbGF0ZT5cbiAgICA8YnV0dG9uIHdtQnV0dG9uXG4gICAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaGludCB8fCAnTWVudSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYXBwLWJ1dHRvbiBkcm9wZG93bi10b2dnbGUge3ttZW51Y2xhc3N9fVwiXG4gICAgICAgICAgICBoaW50LmJpbmQ9XCJoaW50XCJcbiAgICAgICAgICAgIHNob3J0Y3V0a2V5LmJpbmQ9XCJzaG9ydGN1dGtleVwiXG4gICAgICAgICAgICB0YWJpbmRleC5iaW5kPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgY2FwdGlvbi5iaW5kPVwiY2FwdGlvblwiXG4gICAgICAgICAgICBpY29uY2xhc3MuYmluZD1cImljb25jbGFzc1wiXG4gICAgICAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmFcIiBbbmdDbGFzc109XCJbbWVudUNhcmV0XVwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5uZXJUZW1wbGF0ZT5cbiAgICA8aSBjbGFzcz1cImFwcC1pY29uIHt7aWNvbmNsYXNzfX1cIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cImNhcHRpb25cIj48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJwdWxsLXJpZ2h0IGNhcmV0IGZhIHt7bWVudUNhcmV0fX1cIj48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ2FuY2hvcic7IGVsc2UgbWVudVRlbXBsYXRlXCI+XG4gICAgPGEgd21BbmNob3JcbiAgICAgICBkcm9wZG93blRvZ2dsZVxuXG4gICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxuICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuXG4gICAgICAgaGludC5iaW5kPVwiaGludFwiXG4gICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUge3ttZW51Y2xhc3N9fVwiXG4gICAgICAgc2hvcnRjdXRrZXkuYmluZD1cInNob3J0Y3V0a2V5XCJcbiAgICAgICB0YWJpbmRleC5iaW5kPVwidGFiaW5kZXhcIlxuICAgICAgIGNhcHRpb24uYmluZD1cImNhcHRpb25cIlxuICAgICAgIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gICAgICAgYmFkZ2V2YWx1ZS5iaW5kPVwiYmFkZ2V2YWx1ZVwiXG4gICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmFcIiBbbmdDbGFzc109XCJbbWVudUNhcmV0XVwiPjwvc3Bhbj5cbiAgICA8L2E+XG48L25nLWNvbnRhaW5lcj5cblxuPHVsIHdtTWVudURyb3Bkb3duIFtpdGVtc109XCJub2Rlc1wiIFtuZ0NsYXNzXT1cIm1lbnVsYXlvdXRcIiBjbGFzcz1cImljb24tcG9zaXRpb24te3tpY29ucG9zaXRpb259fVwiICpkcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25tZW51XCIgcm9sZT1cIm1lbnViYXJcIj48L3VsPlxuIl19
|
|
306
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQXFCLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0gsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTdELE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9ILE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakksT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7OztJQ1J6QyxpQ0FXeUM7SUFDckMsMEJBQWlFO0lBQ3JFLGlCQUFTOzs7SUFSRCxrRkFBb0Q7SUFEcEQsbURBQWtDO0lBUUosZUFBdUI7SUFBdkIsc0VBQXVCOzs7SUFLN0Qsb0JBQXNDLGNBQUEsV0FBQTs7O0lBQW5DLDREQUE4QjtJQUNYLGVBQXVCO0lBQXZCLDRDQUF1QjtJQUN2QyxlQUF5QztJQUF6Qyx1RUFB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bXBvbmVudCwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBCc0Ryb3Bkb3duRGlyZWN0aXZlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9kcm9wZG93bic7XG5cbmltcG9ydCB7ICRhcHBEaWdlc3QsIGFkZENsYXNzLCByZW1vdmVDbGFzcywgdHJpZ2dlckl0ZW1BY3Rpb24sIEFwcCwgdG9nZ2xlQ2xhc3MsIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IERhdGFzZXRBd2FyZU5hdkNvbXBvbmVudCwgaGFzTGlua1RvQ3VycmVudFBhZ2UsIHByb3ZpZGVBc1dpZGdldFJlZiwgc3R5bGVyLCBBVVRPQ0xPU0VfVFlQRSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9uYXYvbmF2LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL21lbnUucHJvcHMnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmV4cG9ydCBjb25zdCBLRVlCT0FSRF9NT1ZFTUVOVFMgPSB7XG4gICAgTU9WRV9VUDogJ1VQLUFSUk9XJyxcbiAgICBNT1ZFX0xFRlQ6ICdMRUZULUFSUk9XJyxcbiAgICBNT1ZFX1JJR0hUOiAnUklHSFQtQVJST1cnLFxuICAgIE1PVkVfRE9XTjogJ0RPV04tQVJST1cnLFxuICAgIE9OX0VOVEVSOiAnRU5URVInLFxuICAgIE9OX1RBQjogJ1RBQicsXG4gICAgT05fU0hJRlRfVEFCOiAnU0hJRlQtVEFCJyxcbiAgICBPTl9FU0NBUEU6ICdFU0MnXG59O1xuXG5leHBvcnQgY29uc3QgTUVOVV9QT1NJVElPTiA9IHtcbiAgICBVUF9MRUZUOiAndXAsbGVmdCcsXG4gICAgVVBfUklHSFQ6ICd1cCxyaWdodCcsXG4gICAgRE9XTl9MRUZUOiAnZG93bixsZWZ0JyxcbiAgICBET1dOX1JJR0hUOiAnZG93bixyaWdodCcsXG4gICAgSU5MSU5FOiAnaW5saW5lJ1xufTtcblxuY29uc3QgUE9TSVRJT04gPSB7XG4gICAgRE9XTl9SSUdIVDogJ2Rvd24scmlnaHQnLFxuICAgIERPV05fTEVGVDogJ2Rvd24sbGVmdCcsXG4gICAgVVBfUklHSFQ6ICd1cCxyaWdodCcsXG4gICAgVVBfTEVGVDogJ3VwLGxlZnQnLFxuICAgIElOTElORTogJ2lubGluZSdcbn07XG5jb25zdCBDQVJFVF9DTFMgPSB7XG4gICAgVVA6ICdmYS1jYXJldC11cCcsXG4gICAgRE9XTjogJ2ZhLWNhcmV0LWRvd24nXG59O1xuY29uc3QgUFVMTF9DTFMgPSB7XG4gICAgTEVGVDogJ3B1bGwtbGVmdCcsXG4gICAgUklHSFQ6ICdwdWxsLXJpZ2h0J1xufTtcblxuY29uc3QgQVVUT19PUEVOID0ge1xuICAgIE5FVkVSOiAnbmV2ZXInLFxuICAgIEFDVElWRV9QQUdFOiAnYWN0aXZlcGFnZScsXG4gICAgQUxXQVlTOiAnYWx3YXlzJ1xufTtcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHsgd2lkZ2V0VHlwZTogJ3dtLW1lbnUnLCBob3N0Q2xhc3M6ICdkcm9wZG93biBhcHAtbWVudScgfTtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtTWVudV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKE1lbnVDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbWVudWFsaWduOiBzdHJpbmc7XG4gICAgcHVibGljIG1lbnVwb3NpdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBtZW51bGF5b3V0OiBzdHJpbmc7XG4gICAgcHVibGljIG1lbnVjbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBsaW5rdGFyZ2V0OiBzdHJpbmc7XG4gICAgcHVibGljIGljb25jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBhbmltYXRlaXRlbXM6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzYWJsZU1lbnVDb250ZXh0OiBib29sZWFuO1xuICAgIHB1YmxpYyBhdXRvY2xvc2U6IHN0cmluZztcbiAgICBwdWJsaWMgYXV0b29wZW46IHN0cmluZztcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBpdGVtQWN0aW9uRm46IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgbWVudUNhcmV0ID0gJ2ZhLWNhcmV0LWRvd24nO1xuICAgIHByaXZhdGUgX3NlbGVjdEZpcnN0SXRlbSA9IGZhbHNlO1xuXG4gICAgcHVibGljIHR5cGU6IGFueTtcblxuICAgIEBIb3N0TGlzdGVuZXIoJ29uU2hvd24nKSBvblNob3coKSB7XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RGaXJzdEl0ZW0pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPiB1bFt3bW1lbnVkcm9wZG93bl0gbGkuYXBwLW1lbnUtaXRlbScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG4gICAgQEhvc3RMaXN0ZW5lcignb25IaWRkZW4nKSBvbkhpZGUoKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPi5kcm9wZG93bi10b2dnbGUnKS5mb2N1cygpO1xuICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJ2xpJykucmVtb3ZlQ2xhc3MoJ29wZW4nKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0Rmlyc3RJdGVtID0gZmFsc2U7XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCcsICdcIlVQLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93ZG93bicsIFsnJGV2ZW50JywgJ1wiRE9XTi1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3JpZ2h0JywgWyckZXZlbnQnLCAnXCJSSUdIVC1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCcsICdcIkxFRlQtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCcsICdcIkVOVEVSXCInXSkgb25LZXlEb3duKCRldmVudCwgZXZlbnRBY3Rpb24pIHtcbiAgICAgICAgY29uc3QgS0VZX01PVkVNRU5UUyA9IF8uY2xvbmUoS0VZQk9BUkRfTU9WRU1FTlRTKTtcbiAgICAgICAgaWYgKHRoaXMubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLlVQX1JJR0hUKSB7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfVVAgPSAnRE9XTi1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiA9ICdVUC1BUlJPVyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uVVBfTEVGVCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0RPV04tQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnVVAtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLkRPV05fTEVGVCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF8uaW5jbHVkZXMoW0tFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOLCBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFRdLCBldmVudEFjdGlvbikpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5ic0Ryb3Bkb3duLmlzT3Blbikge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdEZpcnN0SXRlbSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5ic0Ryb3Bkb3duLnNob3coKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kZWxlbWVudC5maW5kKCc+IHVsW3dtbWVudWRyb3Bkb3duXSBsaS5hcHAtbWVudS1pdGVtJykuZmlyc3QoKS5maW5kKCc+IGEnKS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX0VOVEVSKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24udG9nZ2xlKHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKF8uaW5jbHVkZXMoW0tFWV9NT1ZFTUVOVFMuTU9WRV9VUCwgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlRdLCBldmVudEFjdGlvbikpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIHB1YmxpYyByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dDogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBic0Ryb3Bkb3duOiBCc0Ryb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudE5hdjogTmF2Q29tcG9uZW50LFxuICAgICAgICBAQXR0cmlidXRlKCdzZWxlY3QuZXZlbnQnKSBwdWJsaWMgc2VsZWN0RXZlbnRDQjogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgICAgIGlmIChwYXJlbnROYXYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFwYXJlbnROYXYuZGlzYWJsZU1lbnVDb250ZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlTWVudUNvbnRleHQgPSAhIXNlbGVjdEV2ZW50Q0I7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9yIHNlbGVjdGluZyB0aGUgaXRlbSBvbiBsb2FkXG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm5vZGVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5ub2RlcykpIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzTGlua1RvQ3VycmVudFBhZ2UodGhpcy5ub2RlcywgdGhpcy5yb3V0ZS51cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsICdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgbWVudSB3aWRnZXQgaXMgaW5zaWRlIG5hdiB3aWRnZXQgdGhlbiBkb250IGNoZWNrIGZvciBpdGVtIGlzYWN0aXZlIHByb3BlcnR5IGJlY2F1c2UgdGhlc2Ugd2lsbCBiZSBoYW5kbGVkIGZvcm0gbmF2IHdpZGdldC5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYXJlbnROYXYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgaXRlbUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0SXRlbSA9IChub2RlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBfLmZvckVhY2gobm9kZXMsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXNhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25NZW51SXRlbVNlbGVjdCh7ICRldmVudDoge30sICRpdGVtOiBpdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdGhlIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggYWN0aXZlIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VySXRlbUFjdGlvbih0aGlzLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEl0ZW0oaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBnZXRJdGVtKHRoaXMubm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0Tm9kZXMoKSB7XG4gICAgICAgIHN1cGVyLnJlc2V0Tm9kZXMoKTtcbiAgICAgICAgLy8gb3BlbiB0aGUgbWVudSBpZiBhbnkgb2YgaXRzIG1lbnUgaXRlbXMgaGFzIGxpbmsgdG8gY3VycmVudCBwYWdlIGFuZCBpZiBhdXRvb3BlbiB2YWx1ZSBpcyAnYWN0aXZlIHBhZ2UnXG4gICAgICAgIGlmICgodGhpcy5hdXRvb3BlbiA9PT0gQVVUT19PUEVOLkFDVElWRV9QQUdFICYmIGhhc0xpbmtUb0N1cnJlbnRQYWdlKHRoaXMubm9kZXMsIHRoaXMucm91dGUudXJsKSkgfHwgdGhpcy5hdXRvb3BlbiA9PT0gQVVUT19PUEVOLkFMV0FZUykge1xuICAgICAgICAgICAgdGhpcy5ic0Ryb3Bkb3duLnNob3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldE1lbnVQb3NpdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGNhbmNlbFN1YnNjcmlwdGlvbiA9IHRoaXMuYXBwLnN1YnNjcmliZShcImhpZ2hsaWdodEFjdGl2ZUxpbmtcIiwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsICdhY3RpdmUnLCBoYXNMaW5rVG9DdXJyZW50UGFnZSh0aGlzLm5vZGVzLCB0aGlzLnJvdXRlLnVybCApKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gY2FuY2VsU3Vic2NyaXB0aW9uKCkpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ2F1dG9jbG9zZScpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5hdXRvQ2xvc2UgPSBudiAhPT0gQVVUT0NMT1NFX1RZUEUuRElTQUJMRUQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TWVudVBvc2l0aW9uKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMubWVudXBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fUklHSFQ6XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fTEVGVDpcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdkcm9wdXAnKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVhbGlnbiA9IFBVTExfQ0xTLlJJR0hUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLlVQX0xFRlQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5SSUdIVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5VUDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUE9TSVRJT04uVVBfUklHSFQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLlVQO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5JTkxJTkU6XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSAnZHJvcGlubGluZS1tZW51JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVJdGVtU2VsZWN0KGFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyAkZXZlbnQgfSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0ICRpdGVtID0gYXJncy4kaXRlbS52YWx1ZTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzZWxlY3QnLCB7ICRldmVudCwgJGl0ZW0gfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICAgIDxidXR0b24gd21CdXR0b25cbiAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50IHx8ICdNZW51J1wiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBhcHAtYnV0dG9uIGRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICAgICAgIGhpbnQuYmluZD1cImhpbnRcIlxuICAgICAgICAgICAgc2hvcnRjdXRrZXkuYmluZD1cInNob3J0Y3V0a2V5XCJcbiAgICAgICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICBjYXB0aW9uLmJpbmQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbm5lclRlbXBsYXRlPlxuICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tpY29uY2xhc3N9fVwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiY2FwdGlvblwiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmEge3ttZW51Q2FyZXR9fVwiPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnYW5jaG9yJzsgZWxzZSBtZW51VGVtcGxhdGVcIj5cbiAgICA8YSB3bUFuY2hvclxuICAgICAgIGRyb3Bkb3duVG9nZ2xlXG5cbiAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG5cbiAgICAgICBoaW50LmJpbmQ9XCJoaW50XCJcbiAgICAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICBzaG9ydGN1dGtleS5iaW5kPVwic2hvcnRjdXRrZXlcIlxuICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgY2FwdGlvbi5iaW5kPVwiY2FwdGlvblwiXG4gICAgICAgaWNvbmNsYXNzLmJpbmQ9XCJpY29uY2xhc3NcIlxuICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCJcbiAgICAgICBiYWRnZXZhbHVlLmJpbmQ9XCJiYWRnZXZhbHVlXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYT5cbjwvbmctY29udGFpbmVyPlxuXG48dWwgd21NZW51RHJvcGRvd24gW2l0ZW1zXT1cIm5vZGVzXCIgW25nQ2xhc3NdPVwibWVudWxheW91dFwiIGNsYXNzPVwiaWNvbi1wb3NpdGlvbi17e2ljb25wb3NpdGlvbn19XCIgKmRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bm1lbnVcIiByb2xlPVwibWVudWJhclwiPjwvdWw+XG4iXX0=
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Attribute, ChangeDetectorRef, Component, Injector } from '@angular/core';
|
|
2
2
|
import { Router } from '@angular/router';
|
|
3
|
-
import { addClass, App, removeClass, triggerItemAction } from '@wm/core';
|
|
3
|
+
import { addClass, App, removeClass, triggerItemAction, UserDefinedExecutionContext } from '@wm/core';
|
|
4
4
|
import { APPLY_STYLES_TYPE, DatasetAwareNavComponent, provideAsWidgetRef, styler } from '@wm/components/base';
|
|
5
5
|
import { registerProps } from './nav.props';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
@@ -73,10 +73,11 @@ export class NavComponent extends DatasetAwareNavComponent {
|
|
|
73
73
|
get activePageName() {
|
|
74
74
|
return this.app.activePageName;
|
|
75
75
|
}
|
|
76
|
-
constructor(inj, cdRef, route, app, selectEventCB) {
|
|
76
|
+
constructor(inj, cdRef, route, userDefinedExecutionContext, app, selectEventCB) {
|
|
77
77
|
super(inj, WIDGET_CONFIG);
|
|
78
78
|
this.cdRef = cdRef;
|
|
79
79
|
this.route = route;
|
|
80
|
+
this.userDefinedExecutionContext = userDefinedExecutionContext;
|
|
80
81
|
this.app = app;
|
|
81
82
|
styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);
|
|
82
83
|
this.disableMenuContext = !!selectEventCB;
|
|
@@ -151,7 +152,7 @@ export class NavComponent extends DatasetAwareNavComponent {
|
|
|
151
152
|
}
|
|
152
153
|
}
|
|
153
154
|
NavComponent.initializeProps = registerProps();
|
|
154
|
-
NavComponent.ɵfac = function NavComponent_Factory(t) { return new (t || NavComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.App), i0.ɵɵinjectAttribute('select.event')); };
|
|
155
|
+
NavComponent.ɵfac = function NavComponent_Factory(t) { return new (t || NavComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.UserDefinedExecutionContext), i0.ɵɵdirectiveInject(i2.App), i0.ɵɵinjectAttribute('select.event')); };
|
|
155
156
|
NavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavComponent, selectors: [["", "wmNav", ""]], features: [i0.ɵɵProvidersFeature([
|
|
156
157
|
provideAsWidgetRef(NavComponent)
|
|
157
158
|
]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, ngContentSelectors: _c5, decls: 6, vars: 2, consts: [["menuRef", ""], ["anchorRef", ""], [3, "class", "ngClass", 4, "ngFor", "ngForOf"], [4, "ngIf"], ["wmMenu", "", "dropdown", "", "type", "anchor", "autoclose.bind", "autoclose", "iconclass.bind", "item.icon", "autoopen.bind", "autoopen", "caption.bind", "item.label", "dataset.bind", "item.children", "badgevalue.bind", "item.badge", "iconposition.bind", "iconposition", "select.event", "onMenuItemSelect($event, widget, $item)"], ["wmAnchor", "", "caption.bind", "item.label", "iconclass.bind", "item.icon", "badgevalue.bind", "item.badge", "iconposition.bind", "iconposition", "click.event", "onNavSelect($event, item, liRef)", 3, "disableMenuContext", "wmNavigationControl"], [3, "ngClass"], ["liRef", ""], [3, "ngTemplateOutlet", "ngTemplateOutletContext", 4, "ngIf"], [3, "ngTemplateOutlet", "ngTemplateOutletContext"]], template: function NavComponent_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -171,8 +172,8 @@ NavComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: NavComponent,
|
|
|
171
172
|
args: [{ selector: '[wmNav]', providers: [
|
|
172
173
|
provideAsWidgetRef(NavComponent)
|
|
173
174
|
], template: "<ng-template #menuRef let-item=\"item\" let-index=\"index\">\n <div wmMenu dropdown\n type=\"anchor\"\n autoclose.bind=\"autoclose\"\n iconclass.bind=\"item.icon\"\n autoopen.bind=\"autoopen\"\n caption.bind=\"item.label\"\n dataset.bind=\"item.children\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n select.event=\"onMenuItemSelect($event, widget, $item)\"></div>\n</ng-template>\n\n<ng-template #anchorRef let-item=\"item\" let-index=\"index\" let-liRef=\"liRef\">\n <a wmAnchor\n [disableMenuContext]=\"disableMenuContext || !!item.action\"\n [wmNavigationControl]=\"item.link\"\n [attr.aria-current]=\"item._selected || (!isactive && item.link === '#/' + activePageName) ? 'page' : ''\"\n caption.bind=\"item.label\"\n iconclass.bind=\"item.icon\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n click.event=\"onNavSelect($event, item, liRef)\"></a>\n</ng-template>\n\n<li class=\"app-nav-item {{item.class}}\" *ngFor=\"let item of nodes; let index = index;\" #liRef [ngClass]=\"{active: item._selected || (!isactive && item.link === '#/' + activePageName)}\">\n <ng-container [ngTemplateOutlet]=\"anchorRef\" [ngTemplateOutletContext]=\"{item: item, index:index, liRef: liRef}\" *ngIf=\"!item.children.length\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"menuRef\" [ngTemplateOutletContext]=\"{item: item, index:index}\" *ngIf=\"item.children.length\"></ng-container>\n</li>\n\n<ng-content *ngIf=\"!nodes.length\" select=\"[wmNavItem]\"></ng-content>\n" }]
|
|
174
|
-
}], function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i2.App }, { type: undefined, decorators: [{
|
|
175
|
+
}], function () { return [{ type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i2.UserDefinedExecutionContext }, { type: i2.App }, { type: undefined, decorators: [{
|
|
175
176
|
type: Attribute,
|
|
176
177
|
args: ['select.event']
|
|
177
178
|
}] }]; }, null); })();
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL25hdi9uYXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbmF2L25hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUtYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFxQixNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7SUNkeEMseUJBU2tFOzs7SUFJbEUsdUJBUXNEOzs7O0lBUG5ELGtGQUEwRCxxQ0FBQTtJQUUxRCxvSUFBd0c7Ozs7SUFTM0csMkJBQThKOzs7Ozs7OztJQUFoSixzQ0FBOEIsa0ZBQUE7Ozs7SUFDNUMsMkJBQThJOzs7Ozs7O0lBQWhJLHNDQUE0Qiw0RUFBQTs7OztJQUY5QyxnQ0FBeUw7SUFDckwsb0ZBQThKO0lBQzlKLG9GQUE4STtJQUNsSixpQkFBSzs7OztJQUhELDhEQUFtQztJQUF1RCw4SUFBMEY7SUFDbEUsZUFBMkI7SUFBM0IsZ0RBQTJCO0lBQzFDLGVBQTBCO0lBQTFCLCtDQUEwQjs7O0lBR2pJLGlEQUFvRTs7OztBRFhwRSxNQUFNLFdBQVcsR0FB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QUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7QUF6R00sNEJBQWUsR0FBRyxhQUFhLEVBQUUsQ0FBQzt3RUFEaEMsWUFBWSxxS0FvQk4sY0FBYzsrREFwQnBCLFlBQVksbUVBSlY7WUFDUCxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7U0FDbkM7O1FDakNMLDhHQVdjO1FBRWQsOEdBVWM7UUFFZCwyREFHSztRQUVMLDJFQUFvRTs7UUFMWCxlQUFVO1FBQVYsbUNBQVU7UUFLdEQsZUFBbUI7UUFBbkIsd0NBQW1COzt1RkRLbkIsWUFBWTtjQVB4QixTQUFTOzJCQUNJLFNBQVMsYUFFUjtvQkFDUCxrQkFBa0IsY0FBYztpQkFDbkM7O3NCQXNCSSxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQgeyBhZGRDbGFzcywgQXBwLCByZW1vdmVDbGFzcywgdHJpZ2dlckl0ZW1BY3Rpb24gfSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50LCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vbmF2LnByb3BzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICduYXYgYXBwLW5hdic7XG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS1uYXYnLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuY29uc3QgTmF2Q2xhc3NNYXAgPSB7XG4gICAgcGlsbHM6ICduYXYtcGlsbHMnLFxuICAgIHRhYnM6ICduYXYtdGFicycsXG4gICAgbmF2YmFyOiAnbmF2YmFyLW5hdidcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtTmF2XScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihOYXZDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRpdGVtO1xuICAgIHB1YmxpYyB0eXBlO1xuICAgIHB1YmxpYyBkaXNhYmxlTWVudUNvbnRleHQ6IGJvb2xlYW47XG4gICAgcHVibGljIGxheW91dDtcblxuICAgIHByaXZhdGUgYWN0aXZlTmF2TElOb2RlOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGl0ZW1BY3Rpb25GbjogRnVuY3Rpb247XG4gICAgcHJpdmF0ZSBwYWdlU2NvcGU6IGFueTtcbiAgICBwcml2YXRlIGdldCBhY3RpdmVQYWdlTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwLmFjdGl2ZVBhZ2VOYW1lO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBAQXR0cmlidXRlKCdzZWxlY3QuZXZlbnQnKSBzZWxlY3RFdmVudENCXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFzZWxlY3RFdmVudENCO1xuICAgICAgICB0aGlzLnBhZ2VTY29wZSA9IHRoaXMudmlld1BhcmVudDtcbiAgICAgICAgLy8gRm9yIHNlbGVjdGluZyB0aGUgaXRlbSBvbiBsb2FkXG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm5vZGVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5ub2RlcykpIHtcbiAgICAgICAgICAgICAgICBsZXQgaXRlbUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0SXRlbSA9IChub2RlcywgaXNNZW51V2lkZ2V0PykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBfLmZvckVhY2gobm9kZXMsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXNhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRpdGVtID0gaXNNZW51V2lkZ2V0ID8gXy5vbWl0KGl0ZW0sIFsnY2hpbGRyZW4nLCAndmFsdWUnXSkgOiBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyRldmVudDoge30sICRpdGVtOiBpdGVtLnZhbHVlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciB0aGUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBhY3RpdmUgaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJJdGVtQWN0aW9uKHRoaXMsIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIF9zZWxlY3RlZCBpcyB1c2VkIHRvIGFkZCBhY3RpdmUgY2xhc3MgZm9yIG5hdiBpdGVtLiBJZiB3ZSBoYXZlIGNoaWxkcmVuIGluc2lkZSBuYXYgd2lkZ2V0IHRoZW4gaXQgaXMgbm90IHJlcXVpcmVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNNZW51V2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5fc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEl0ZW0oaXRlbS5jaGlsZHJlbiwgJ21lbnUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBnZXRJdGVtKHRoaXMubm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHNldE5hdlR5cGUodHlwZSkge1xuICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIE5hdkNsYXNzTWFwW3R5cGVdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE5hdkxheW91dChsYXlvdXQpIHtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgbmF2LSR7bGF5b3V0fWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk5hdlNlbGVjdCgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnksIGxpUmVmOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBfLmZpbmQodGhpcy5ub2RlcywgJ19zZWxlY3RlZCcpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICBkZWxldGUgc2VsZWN0ZWRJdGVtLl9zZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU5hdkxJTm9kZSkge1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5hY3RpdmVOYXZMSU5vZGUsICdhY3RpdmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlTmF2TElOb2RlID0gbGlSZWY7XG5cbiAgICAgICAgYWRkQ2xhc3MobGlSZWYsICdhY3RpdmUnKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkaXRlbSA9IGl0ZW0udmFsdWU7XG5cbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzZWxlY3QnLCB7JGV2ZW50LCAkaXRlbTogaXRlbS52YWx1ZX0pO1xuICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgIHRyaWdnZXJJdGVtQWN0aW9uKHRoaXMsIGl0ZW0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldE5hdlR5cGUodGhpcy50eXBlKTtcbiAgICAgICAgdGhpcy5zZXROYXZMYXlvdXQodGhpcy5sYXlvdXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGludm9rZWQgZnJvbSB0aGUgbWVudSB3aWRnZXQgd2hlbiBhIG1lbnUgaXRlbSBpcyBzZWxlY3RlZC5cbiAgICAgKiBAcGFyYW0gJGV2ZW50XG4gICAgICogQHBhcmFtIHdpZGdldFxuICAgICAqIEBwYXJhbSAkaXRlbVxuICAgICAqL1xuICAgIG9uTWVudUl0ZW1TZWxlY3QoJGV2ZW50LCB3aWRnZXQsICRpdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRpdGVtID0gXy5vbWl0KCRpdGVtLCBbJ2NoaWxkcmVuJywgJ3ZhbHVlJ10pO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3NlbGVjdCcsIHskZXZlbnQsICRpdGVtOiB0aGlzLnNlbGVjdGVkaXRlbX0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVJlZiBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxkaXYgd21NZW51IGRyb3Bkb3duXG4gICAgICAgICB0eXBlPVwiYW5jaG9yXCJcbiAgICAgICAgIGF1dG9jbG9zZS5iaW5kPVwiYXV0b2Nsb3NlXCJcbiAgICAgICAgIGljb25jbGFzcy5iaW5kPVwiaXRlbS5pY29uXCJcbiAgICAgICAgIGF1dG9vcGVuLmJpbmQ9XCJhdXRvb3BlblwiXG4gICAgICAgICBjYXB0aW9uLmJpbmQ9XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgIGRhdGFzZXQuYmluZD1cIml0ZW0uY2hpbGRyZW5cIlxuICAgICAgICAgYmFkZ2V2YWx1ZS5iaW5kPVwiaXRlbS5iYWRnZVwiXG4gICAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gICAgICAgICBzZWxlY3QuZXZlbnQ9XCJvbk1lbnVJdGVtU2VsZWN0KCRldmVudCwgd2lkZ2V0LCAkaXRlbSlcIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYW5jaG9yUmVmIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LWxpUmVmPVwibGlSZWZcIj5cbiAgICA8YSB3bUFuY2hvclxuICAgICAgIFtkaXNhYmxlTWVudUNvbnRleHRdPVwiZGlzYWJsZU1lbnVDb250ZXh0IHx8ICEhaXRlbS5hY3Rpb25cIlxuICAgICAgIFt3bU5hdmlnYXRpb25Db250cm9sXT1cIml0ZW0ubGlua1wiXG4gICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIml0ZW0uX3NlbGVjdGVkIHx8ICghaXNhY3RpdmUgJiYgaXRlbS5saW5rID09PSAnIy8nICsgYWN0aXZlUGFnZU5hbWUpID8gJ3BhZ2UnIDogJydcIlxuICAgICAgIGNhcHRpb24uYmluZD1cIml0ZW0ubGFiZWxcIlxuICAgICAgIGljb25jbGFzcy5iaW5kPVwiaXRlbS5pY29uXCJcbiAgICAgICBiYWRnZXZhbHVlLmJpbmQ9XCJpdGVtLmJhZGdlXCJcbiAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gICAgICAgY2xpY2suZXZlbnQ9XCJvbk5hdlNlbGVjdCgkZXZlbnQsIGl0ZW0sIGxpUmVmKVwiPjwvYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxsaSBjbGFzcz1cImFwcC1uYXYtaXRlbSB7e2l0ZW0uY2xhc3N9fVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyBsZXQgaW5kZXggPSBpbmRleDtcIiAjbGlSZWYgW25nQ2xhc3NdPVwie2FjdGl2ZTogaXRlbS5fc2VsZWN0ZWQgfHwgKCFpc2FjdGl2ZSAmJiBpdGVtLmxpbmsgPT09ICcjLycgKyBhY3RpdmVQYWdlTmFtZSl9XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhbmNob3JSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGluZGV4OmluZGV4LCBsaVJlZjogbGlSZWZ9XCIgKm5nSWY9XCIhaXRlbS5jaGlsZHJlbi5sZW5ndGhcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGluZGV4OmluZGV4fVwiICAqbmdJZj1cIml0ZW0uY2hpbGRyZW4ubGVuZ3RoXCI+PC9uZy1jb250YWluZXI+XG48L2xpPlxuXG48bmctY29udGVudCAqbmdJZj1cIiFub2Rlcy5sZW5ndGhcIiBzZWxlY3Q9XCJbd21OYXZJdGVtXVwiPjwvbmctY29udGVudD5cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL25hdi9uYXYuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy93aWRnZXRzL25hdmlnYXRpb24vbWVudS9zcmMvbmF2L25hdi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsUUFBUSxFQUtYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUMsTUFBTSxVQUFVLENBQUM7QUFDcEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGtCQUFrQixFQUFxQixNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7SUNkeEMseUJBU2tFOzs7SUFJbEUsdUJBUXNEOzs7O0lBUG5ELGtGQUEwRCxxQ0FBQTtJQUUxRCxvSUFBd0c7Ozs7SUFTM0csMkJBQThKOzs7Ozs7OztJQUFoSixzQ0FBOEIsa0ZBQUE7Ozs7SUFDNUMsMkJBQThJOzs7Ozs7O0lBQWhJLHNDQUE0Qiw0RUFBQTs7OztJQUY5QyxnQ0FBeUw7SUFDckwsb0ZBQThKO0lBQzlKLG9GQUE4STtJQUNsSixpQkFBSzs7OztJQUhELDhEQUFtQztJQUF1RCw4SUFBMEY7SUFDbEUsZUFBMkI7SUFBM0IsZ0RBQTJCO0lBQzFDLGVBQTBCO0lBQTFCLCtDQUEwQjs7O0lBR2pJLGlEQUFvRTs7OztBRFhwRSxN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Ozs7T0FLRztJQUNILGdCQUFnQixDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxFQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQzs7QUExR00sNEJBQWUsR0FBRyxhQUFhLEVBQUUsQ0FBQzt3RUFEaEMsWUFBWSwyTkFxQk4sY0FBYzsrREFyQnBCLFlBQVksbUVBSlY7WUFDUCxrQkFBa0IsQ0FBQyxZQUFZLENBQUM7U0FDbkM7O1FDakNMLDhHQVdjO1FBRWQsOEdBVWM7UUFFZCwyREFHSztRQUVMLDJFQUFvRTs7UUFMWCxlQUFVO1FBQVYsbUNBQVU7UUFLdEQsZUFBbUI7UUFBbkIsd0NBQW1COzt1RkRLbkIsWUFBWTtjQVB4QixTQUFTOzJCQUNJLFNBQVMsYUFFUjtvQkFDUCxrQkFBa0IsY0FBYztpQkFDbkM7O3NCQXVCSSxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEF0dHJpYnV0ZSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNraXBTZWxmLFxuICAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge2FkZENsYXNzLCBBcHAsIHJlbW92ZUNsYXNzLCB0cmlnZ2VySXRlbUFjdGlvbiwgVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0fSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQgeyBBUFBMWV9TVFlMRVNfVFlQRSwgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50LCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vbmF2LnByb3BzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICduYXYgYXBwLW5hdic7XG5jb25zdCBXSURHRVRfQ09ORklHID0ge3dpZGdldFR5cGU6ICd3bS1uYXYnLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuY29uc3QgTmF2Q2xhc3NNYXAgPSB7XG4gICAgcGlsbHM6ICduYXYtcGlsbHMnLFxuICAgIHRhYnM6ICduYXYtdGFicycsXG4gICAgbmF2YmFyOiAnbmF2YmFyLW5hdidcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtTmF2XScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdi5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihOYXZDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOYXZDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgc2VsZWN0ZWRpdGVtO1xuICAgIHB1YmxpYyB0eXBlO1xuICAgIHB1YmxpYyBkaXNhYmxlTWVudUNvbnRleHQ6IGJvb2xlYW47XG4gICAgcHVibGljIGxheW91dDtcblxuICAgIHByaXZhdGUgYWN0aXZlTmF2TElOb2RlOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGl0ZW1BY3Rpb25GbjogRnVuY3Rpb247XG4gICAgcHJpdmF0ZSBwYWdlU2NvcGU6IGFueTtcbiAgICBwcml2YXRlIGdldCBhY3RpdmVQYWdlTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwLmFjdGl2ZVBhZ2VOYW1lO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dDogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBAQXR0cmlidXRlKCdzZWxlY3QuZXZlbnQnKSBzZWxlY3RFdmVudENCXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFzZWxlY3RFdmVudENCO1xuICAgICAgICB0aGlzLnBhZ2VTY29wZSA9IHRoaXMudmlld1BhcmVudDtcbiAgICAgICAgLy8gRm9yIHNlbGVjdGluZyB0aGUgaXRlbSBvbiBsb2FkXG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm5vZGVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5ub2RlcykpIHtcbiAgICAgICAgICAgICAgICBsZXQgaXRlbUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0SXRlbSA9IChub2RlcywgaXNNZW51V2lkZ2V0PykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBfLmZvckVhY2gobm9kZXMsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXNhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRpdGVtID0gaXNNZW51V2lkZ2V0ID8gXy5vbWl0KGl0ZW0sIFsnY2hpbGRyZW4nLCAndmFsdWUnXSkgOiBpdGVtLnZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyRldmVudDoge30sICRpdGVtOiBpdGVtLnZhbHVlfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJpZ2dlciB0aGUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBhY3RpdmUgaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJJdGVtQWN0aW9uKHRoaXMsIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIF9zZWxlY3RlZCBpcyB1c2VkIHRvIGFkZCBhY3RpdmUgY2xhc3MgZm9yIG5hdiBpdGVtLiBJZiB3ZSBoYXZlIGNoaWxkcmVuIGluc2lkZSBuYXYgd2lkZ2V0IHRoZW4gaXQgaXMgbm90IHJlcXVpcmVkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNNZW51V2lkZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5fc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEl0ZW0oaXRlbS5jaGlsZHJlbiwgJ21lbnUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBnZXRJdGVtKHRoaXMubm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgfVxuXG5cbiAgICBwcml2YXRlIHNldE5hdlR5cGUodHlwZSkge1xuICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIE5hdkNsYXNzTWFwW3R5cGVdKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE5hdkxheW91dChsYXlvdXQpIHtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgbmF2LSR7bGF5b3V0fWApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbk5hdlNlbGVjdCgkZXZlbnQ6IEV2ZW50LCBpdGVtOiBhbnksIGxpUmVmOiBIVE1MRWxlbWVudCkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBfLmZpbmQodGhpcy5ub2RlcywgJ19zZWxlY3RlZCcpO1xuICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtKSB7XG4gICAgICAgICAgICBkZWxldGUgc2VsZWN0ZWRJdGVtLl9zZWxlY3RlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFjdGl2ZU5hdkxJTm9kZSkge1xuICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5hY3RpdmVOYXZMSU5vZGUsICdhY3RpdmUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuYWN0aXZlTmF2TElOb2RlID0gbGlSZWY7XG5cbiAgICAgICAgYWRkQ2xhc3MobGlSZWYsICdhY3RpdmUnKTtcblxuICAgICAgICB0aGlzLnNlbGVjdGVkaXRlbSA9IGl0ZW0udmFsdWU7XG5cbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzZWxlY3QnLCB7JGV2ZW50LCAkaXRlbTogaXRlbS52YWx1ZX0pO1xuICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgIHRyaWdnZXJJdGVtQWN0aW9uKHRoaXMsIGl0ZW0pO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldE5hdlR5cGUodGhpcy50eXBlKTtcbiAgICAgICAgdGhpcy5zZXROYXZMYXlvdXQodGhpcy5sYXlvdXQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGludm9rZWQgZnJvbSB0aGUgbWVudSB3aWRnZXQgd2hlbiBhIG1lbnUgaXRlbSBpcyBzZWxlY3RlZC5cbiAgICAgKiBAcGFyYW0gJGV2ZW50XG4gICAgICogQHBhcmFtIHdpZGdldFxuICAgICAqIEBwYXJhbSAkaXRlbVxuICAgICAqL1xuICAgIG9uTWVudUl0ZW1TZWxlY3QoJGV2ZW50LCB3aWRnZXQsICRpdGVtKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRpdGVtID0gXy5vbWl0KCRpdGVtLCBbJ2NoaWxkcmVuJywgJ3ZhbHVlJ10pO1xuICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ3NlbGVjdCcsIHskZXZlbnQsICRpdGVtOiB0aGlzLnNlbGVjdGVkaXRlbX0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVJlZiBsZXQtaXRlbT1cIml0ZW1cIiBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxkaXYgd21NZW51IGRyb3Bkb3duXG4gICAgICAgICB0eXBlPVwiYW5jaG9yXCJcbiAgICAgICAgIGF1dG9jbG9zZS5iaW5kPVwiYXV0b2Nsb3NlXCJcbiAgICAgICAgIGljb25jbGFzcy5iaW5kPVwiaXRlbS5pY29uXCJcbiAgICAgICAgIGF1dG9vcGVuLmJpbmQ9XCJhdXRvb3BlblwiXG4gICAgICAgICBjYXB0aW9uLmJpbmQ9XCJpdGVtLmxhYmVsXCJcbiAgICAgICAgIGRhdGFzZXQuYmluZD1cIml0ZW0uY2hpbGRyZW5cIlxuICAgICAgICAgYmFkZ2V2YWx1ZS5iaW5kPVwiaXRlbS5iYWRnZVwiXG4gICAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gICAgICAgICBzZWxlY3QuZXZlbnQ9XCJvbk1lbnVJdGVtU2VsZWN0KCRldmVudCwgd2lkZ2V0LCAkaXRlbSlcIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYW5jaG9yUmVmIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LWxpUmVmPVwibGlSZWZcIj5cbiAgICA8YSB3bUFuY2hvclxuICAgICAgIFtkaXNhYmxlTWVudUNvbnRleHRdPVwiZGlzYWJsZU1lbnVDb250ZXh0IHx8ICEhaXRlbS5hY3Rpb25cIlxuICAgICAgIFt3bU5hdmlnYXRpb25Db250cm9sXT1cIml0ZW0ubGlua1wiXG4gICAgICAgW2F0dHIuYXJpYS1jdXJyZW50XT1cIml0ZW0uX3NlbGVjdGVkIHx8ICghaXNhY3RpdmUgJiYgaXRlbS5saW5rID09PSAnIy8nICsgYWN0aXZlUGFnZU5hbWUpID8gJ3BhZ2UnIDogJydcIlxuICAgICAgIGNhcHRpb24uYmluZD1cIml0ZW0ubGFiZWxcIlxuICAgICAgIGljb25jbGFzcy5iaW5kPVwiaXRlbS5pY29uXCJcbiAgICAgICBiYWRnZXZhbHVlLmJpbmQ9XCJpdGVtLmJhZGdlXCJcbiAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gICAgICAgY2xpY2suZXZlbnQ9XCJvbk5hdlNlbGVjdCgkZXZlbnQsIGl0ZW0sIGxpUmVmKVwiPjwvYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxsaSBjbGFzcz1cImFwcC1uYXYtaXRlbSB7e2l0ZW0uY2xhc3N9fVwiICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyBsZXQgaW5kZXggPSBpbmRleDtcIiAjbGlSZWYgW25nQ2xhc3NdPVwie2FjdGl2ZTogaXRlbS5fc2VsZWN0ZWQgfHwgKCFpc2FjdGl2ZSAmJiBpdGVtLmxpbmsgPT09ICcjLycgKyBhY3RpdmVQYWdlTmFtZSl9XCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJhbmNob3JSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGluZGV4OmluZGV4LCBsaVJlZjogbGlSZWZ9XCIgKm5nSWY9XCIhaXRlbS5jaGlsZHJlbi5sZW5ndGhcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm1lbnVSZWZcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06IGl0ZW0sIGluZGV4OmluZGV4fVwiICAqbmdJZj1cIml0ZW0uY2hpbGRyZW4ubGVuZ3RoXCI+PC9uZy1jb250YWluZXI+XG48L2xpPlxuXG48bmctY29udGVudCAqbmdJZj1cIiFub2Rlcy5sZW5ndGhcIiBzZWxlY3Q9XCJbd21OYXZJdGVtXVwiPjwvbmctY29udGVudD5cbiJdfQ==
|