@agorapulse/ui-components 18.0.31 → 18.0.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/agorapulse-ui-components-18.0.33.tgz +0 -0
  2. package/button/button.component.d.ts +3 -0
  3. package/esm2022/button/button.component.mjs +3 -3
  4. package/esm2022/nav-selector/nav-selector-category/nav-selector-category.component.mjs +5 -4
  5. package/esm2022/nav-selector/nav-selector-group/nav-selector-group.component.mjs +5 -4
  6. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.component.mjs +13 -6
  7. package/esm2022/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.mjs +1 -2
  8. package/esm2022/nav-selector/nav-selector-leaf-action/nav-selector-leaf-action.component.mjs +13 -0
  9. package/esm2022/nav-selector/nav-selector-popover/nav-selector-popover-item.component.mjs +24 -6
  10. package/esm2022/nav-selector/nav-selector.component.mjs +5 -14
  11. package/esm2022/nav-selector/nav-selector.mjs +1 -1
  12. package/esm2022/nav-selector/nav-selector.state.mjs +4 -6
  13. package/esm2022/nav-selector/utils/leaf.utils.mjs +11 -1
  14. package/esm2022/nav-selector/utils/nav-selector.builder.mjs +3 -2
  15. package/esm2022/nav-selector/utils/nav-selector.multi-select.mjs +15 -8
  16. package/esm2022/nav-selector/utils/nav-selector.single-select.mjs +5 -2
  17. package/fesm2022/agorapulse-ui-components-button.mjs +2 -2
  18. package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
  19. package/fesm2022/agorapulse-ui-components-nav-selector.mjs +83 -41
  20. package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
  21. package/nav-selector/nav-selector-category/nav-selector-category.component.d.ts +3 -2
  22. package/nav-selector/nav-selector-group/nav-selector-group.component.d.ts +3 -2
  23. package/nav-selector/nav-selector-leaf/nav-selector-leaf.component.d.ts +4 -2
  24. package/nav-selector/nav-selector-leaf/nav-selector-leaf.presenter.d.ts +0 -1
  25. package/nav-selector/nav-selector-leaf-action/nav-selector-leaf-action.component.d.ts +7 -0
  26. package/nav-selector/nav-selector-popover/nav-selector-popover-item.component.d.ts +3 -1
  27. package/nav-selector/nav-selector.component.d.ts +3 -3
  28. package/nav-selector/nav-selector.d.ts +38 -4
  29. package/nav-selector/nav-selector.state.d.ts +1 -3
  30. package/nav-selector/utils/leaf.utils.d.ts +2 -1
  31. package/package.json +1 -1
  32. package/agorapulse-ui-components-18.0.31.tgz +0 -0
@@ -3,7 +3,7 @@ import { InputSearchComponent } from '@agorapulse/ui-components/input-search';
3
3
  import { apArrowExpand, apArrowReduce, apSearch, SymbolComponent, withSymbols } from '@agorapulse/ui-symbol';
4
4
  import { animate, keyframes, state, style, transition, trigger } from '@angular/animations';
5
5
  import { NgTemplateOutlet } from '@angular/common';
6
- import { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, contentChildren, effect, input, model, output, signal, untracked, } from '@angular/core';
6
+ import { afterNextRender, ChangeDetectionStrategy, Component, computed, contentChild, effect, input, model, output, signal, untracked, } from '@angular/core';
7
7
  import { FormsModule } from '@angular/forms';
8
8
  import { NavSelectorCategoryComponent } from './nav-selector-category/nav-selector-category.component';
9
9
  import { NavSelectorGroupComponent } from './nav-selector-group/nav-selector-group.component';
@@ -29,10 +29,10 @@ export class NavSelectorComponent {
29
29
  forceExpanded = input(false);
30
30
  expandedStateLocalStorageKey = input();
31
31
  selectedEntryUids = model.required();
32
+ actionClicked = output();
32
33
  headerProjection = contentChild('header');
33
34
  footerProjection = contentChild('footer');
34
35
  displayFooter = computed(() => this.footerProjection() !== undefined);
35
- leafActionProjection = contentChildren('leafAction');
36
36
  expansionState = computed(() => (this.navSelectorState.expanded() ? 'expanded' : 'minified'));
37
37
  onExpansionStateChange = output();
38
38
  componentUid = `nav-selector-${nextUniqueId++}`;
@@ -70,15 +70,6 @@ export class NavSelectorComponent {
70
70
  const detailsDisplayedLimit = this.detailsDisplayedLimit();
71
71
  untracked(() => this.navSelectorState.updateDetailsDisplayedLimit(detailsDisplayedLimit));
72
72
  });
73
- const leafActionProjectionEffect = effect(() => {
74
- const leafActionProjection = this.leafActionProjection();
75
- untracked(() => {
76
- if (leafActionProjection) {
77
- this.navSelectorState.updateLeafAction(this.leafActionProjection());
78
- leafActionProjectionEffect.destroy();
79
- }
80
- });
81
- }, { manualCleanup: true });
82
73
  effect(() => {
83
74
  const selectedEntryUids = this.selectedEntryUids();
84
75
  const isInit = !!this.navSelectorState.entries().length;
@@ -170,7 +161,7 @@ export class NavSelectorComponent {
170
161
  }
171
162
  }
172
163
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorComponent, deps: [{ token: i1.NavSelectorState }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
173
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: NavSelectorComponent, isStandalone: true, selector: "ap-nav-selector", inputs: { navSelectorEntries: { classPropertyName: "navSelectorEntries", publicName: "navSelectorEntries", isSignal: true, isRequired: true, transformFunction: null }, translatedTexts: { classPropertyName: "translatedTexts", publicName: "translatedTexts", isSignal: true, isRequired: true, transformFunction: null }, multipleModeEnabled: { classPropertyName: "multipleModeEnabled", publicName: "multipleModeEnabled", isSignal: true, isRequired: false, transformFunction: null }, detailsDisplayedLimit: { classPropertyName: "detailsDisplayedLimit", publicName: "detailsDisplayedLimit", isSignal: true, isRequired: false, transformFunction: null }, embedded: { classPropertyName: "embedded", publicName: "embedded", isSignal: true, isRequired: false, transformFunction: null }, forceExpanded: { classPropertyName: "forceExpanded", publicName: "forceExpanded", isSignal: true, isRequired: false, transformFunction: null }, expandedStateLocalStorageKey: { classPropertyName: "expandedStateLocalStorageKey", publicName: "expandedStateLocalStorageKey", isSignal: true, isRequired: false, transformFunction: null }, selectedEntryUids: { classPropertyName: "selectedEntryUids", publicName: "selectedEntryUids", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectedEntryUids: "selectedEntryUidsChange", onExpansionStateChange: "onExpansionStateChange" }, host: { attributes: { "role": "tree" }, listeners: { "keydown.arrowDown": "onArrowDown($event)", "keydown.arrowUp": "onArrowUp($event)", "window:resize": "onWindowResize()" }, properties: { "class.minified": "!navSelectorState.expanded()", "class.embedded": "embedded()" } }, providers: [NavSelectorState, withSymbols(apArrowExpand, apArrowReduce, apSearch)], queries: [{ propertyName: "headerProjection", first: true, predicate: ["header"], descendants: true, isSignal: true }, { propertyName: "footerProjection", first: true, predicate: ["footer"], descendants: true, isSignal: true }, { propertyName: "leafActionProjection", predicate: ["leafAction"], isSignal: true }], ngImport: i0, template: "<nav [@expand]=\"expansionState()\" [class.embedded]=\"embedded()\">\n @let headerProjectionNotNull = headerProjection();\n @let footerProjectionNotNull = footerProjection();\n\n @if (navSelectorState.expandedAfterDelay()) {\n <div class=\"nav-selector__header\">\n @if (!embedded()) {\n <span class=\"h3\">{{ translatedTexts().title }}</span>\n\n <button\n type=\"button\"\n class=\"expand-button expanded\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-reduce\" />\n </button>\n }\n\n\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-input-search\n [id]=\"componentUid + '_search'\"\n class=\"nav-selector-search\"\n [placeholder]=\"translatedTexts().searchPlaceholder\"\n [ngModel]=\"navSelectorState.search()\"\n (ngModelChange)=\"navSelectorState.search.set($event ?? '')\" />\n </div>\n\n <div\n class=\"nav-selector__content\"\n [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\"\n role=\"tree\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" />\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" />\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"$any(entry)\" />\n }\n </div>\n }\n }\n @if (navSelectorState.noResults()) {\n <div class=\"no-result\">{{ translatedTexts().noResults }}</div>\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n } @else {\n <div class=\"nav-selector__header\">\n <button\n type=\"button\"\n class=\"expand-button\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-expand\" />\n </button>\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-icon-button (onClick)=\"onMinifiedSearchClicked()\" type=\"stroked\" role=\"search\">\n <ap-symbol symbolId=\"search\" />\n </ap-icon-button>\n </div>\n\n <div class=\"nav-selector__content\" role=\"tree\" [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" />\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" />\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"entry\" />\n }\n </div>\n }\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n }\n</nav>\n", styles: [":host{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;flex-grow:1;width:100%;max-width:224px;min-width:min(224px,100%)}@media only screen and (min-width: 1400px){:host:not(.embedded){max-width:250px;min-width:min(250px,100%)}}:host :hover .expand-button.expanded{animation-name:translateExpandButton}:host nav{display:flex;height:100%;width:100%;flex-grow:1;flex-direction:column;align-items:flex-start;flex-shrink:0;overflow:hidden;background:var(--ref-color-white)}:host nav:not(.embedded){border-right:1px solid var(--ref-color-grey-10)}:host .nav-selector__header{position:relative;display:flex;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;white-space:nowrap;border-bottom:1px solid var(--ref-color-grey-10);background:var(--ref-color-white)}:host .nav-selector__header .h3{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--sys-text-style-h3-size);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-lg)}:host .nav-selector__header .expand-button-container{position:absolute;right:0;top:var(--ref-spacing-xs)}:host .nav-selector__header .expand-button{animation-duration:70ms;animation-timing-function:cubic-bezier(0,0,.2,1);animation-fill-mode:forwards;animation-name:translateHideButton;display:flex;width:24px;height:24px;justify-content:center;align-items:center;background:var(--ref-color-grey-bg);border-top:1px solid var(--ref-color-grey-20);border-right:none;border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);border-top-left-radius:var(--ref-border-radius-sm);border-bottom-left-radius:var(--ref-border-radius-sm);cursor:pointer}@keyframes translateHideButton{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes translateExpandButton{0%{transform:translate(100%)}to{transform:translate(0)}}:host .nav-selector__header .expand-button.expanded{position:absolute;right:0;top:12px;transform:translate(100%)}:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-reduce],:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-expand]{color:var(--ref-color-grey-80)}:host .nav-selector__header .expand-button:focus{border-radius:var(--ref-border-radius-sm) 0px 0px var(--ref-border-radius-sm);border-top:1px solid var(--ref-color-grey-20);border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-10);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector__header .expand-button:focus.expanded{animation-name:translateExpandButton}:host .nav-selector__header .expand-button:hover{background-color:var(--ref-color-grey-10)}:host .nav-selector__header .expand-button:active{background-color:var(--ref-color-grey-20)}:host .nav-selector__header .nav-selector-search{width:100%}:host .nav-selector__content{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;overflow-y:scroll}:host .nav-selector__content .entry{align-self:stretch;display:flex;flex-direction:column}:host .nav-selector__content .entry.folder{padding:var(--ref-spacing-xxs);border-bottom:1px solid var(--sys-border-color-default)}:host .nav-selector__content .entry.folder+.entry:not(.folder){padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder){padding-left:var(--ref-spacing-xxs);padding-right:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):first-child{padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):last-child{padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):has(+.entry.folder){padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder)+.entry.folder{border-top:1px solid var(--sys-border-color-default)}:host .nav-selector__content .no-result{display:flex;padding:var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;color:var(--ref-color-grey-80);font-family:Averta;font-size:var(--ref-font-size-sm);font-style:italic;font-weight:400;line-height:var(--ref-font-line-height-sm)}:host .nav-selector__footer{display:flex;padding:var(--ref-spacing-xs);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;border-top:1px solid var(--sys-border-color-default);background:var(--ref-color-white)}:host.minified nav{width:64px}:host.minified nav .nav-selector__header{align-items:center}:host.minified nav .nav-selector__header .expand-button{animation-name:none;border-radius:var(--ref-border-radius-sm);border:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-bg)}:host.minified nav .nav-selector__content .entry{padding:var(--ref-spacing-xxxs)}:host.minified nav .nav-selector__footer{padding:var(--ref-spacing-xs) var(--ref-spacing-xxxs) var(--ref-spacing-xs) var(--ref-spacing-xxxs)}\n"], dependencies: [{ kind: "component", type: NavSelectorLeafComponent, selector: "ap-nav-selector-leaf", inputs: ["leaf"] }, { kind: "component", type: NavSelectorGroupComponent, selector: "ap-nav-selector-group", inputs: ["group"] }, { kind: "component", type: NavSelectorCategoryComponent, selector: "ap-nav-selector-category", inputs: ["category"] }, { kind: "component", type: InputSearchComponent, selector: "ap-input-search", inputs: ["id", "placeholder", "clearable"], outputs: ["focus", "blur", "keyup"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "component", type: IconButtonComponent, selector: "ap-icon-button", inputs: ["ariaLabel", "name", "color", "disabled", "menuTrigger", "symbolId", "locked", "loading", "type"], outputs: ["onClick", "onFocus", "onBlur", "menuOpened", "menuClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
164
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: NavSelectorComponent, isStandalone: true, selector: "ap-nav-selector", inputs: { navSelectorEntries: { classPropertyName: "navSelectorEntries", publicName: "navSelectorEntries", isSignal: true, isRequired: true, transformFunction: null }, translatedTexts: { classPropertyName: "translatedTexts", publicName: "translatedTexts", isSignal: true, isRequired: true, transformFunction: null }, multipleModeEnabled: { classPropertyName: "multipleModeEnabled", publicName: "multipleModeEnabled", isSignal: true, isRequired: false, transformFunction: null }, detailsDisplayedLimit: { classPropertyName: "detailsDisplayedLimit", publicName: "detailsDisplayedLimit", isSignal: true, isRequired: false, transformFunction: null }, embedded: { classPropertyName: "embedded", publicName: "embedded", isSignal: true, isRequired: false, transformFunction: null }, forceExpanded: { classPropertyName: "forceExpanded", publicName: "forceExpanded", isSignal: true, isRequired: false, transformFunction: null }, expandedStateLocalStorageKey: { classPropertyName: "expandedStateLocalStorageKey", publicName: "expandedStateLocalStorageKey", isSignal: true, isRequired: false, transformFunction: null }, selectedEntryUids: { classPropertyName: "selectedEntryUids", publicName: "selectedEntryUids", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { selectedEntryUids: "selectedEntryUidsChange", actionClicked: "actionClicked", onExpansionStateChange: "onExpansionStateChange" }, host: { attributes: { "role": "tree" }, listeners: { "keydown.arrowDown": "onArrowDown($event)", "keydown.arrowUp": "onArrowUp($event)", "window:resize": "onWindowResize()" }, properties: { "class.minified": "!navSelectorState.expanded()", "class.embedded": "embedded()" } }, providers: [NavSelectorState, withSymbols(apArrowExpand, apArrowReduce, apSearch)], queries: [{ propertyName: "headerProjection", first: true, predicate: ["header"], descendants: true, isSignal: true }, { propertyName: "footerProjection", first: true, predicate: ["footer"], descendants: true, isSignal: true }], ngImport: i0, template: "<nav [@expand]=\"expansionState()\" [class.embedded]=\"embedded()\">\n @let headerProjectionNotNull = headerProjection();\n @let footerProjectionNotNull = footerProjection();\n\n @if (navSelectorState.expandedAfterDelay()) {\n <div class=\"nav-selector__header\">\n @if (!embedded()) {\n <span class=\"h3\">{{ translatedTexts().title }}</span>\n\n <button\n type=\"button\"\n class=\"expand-button expanded\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-reduce\" />\n </button>\n }\n\n\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-input-search\n [id]=\"componentUid + '_search'\"\n class=\"nav-selector-search\"\n [placeholder]=\"translatedTexts().searchPlaceholder\"\n [ngModel]=\"navSelectorState.search()\"\n (ngModelChange)=\"navSelectorState.search.set($event ?? '')\" />\n </div>\n\n <div\n class=\"nav-selector__content\"\n [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\"\n role=\"tree\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"$any(entry)\" (actionClicked)=\"actionClicked.emit($event)\"/>\n }\n </div>\n }\n }\n @if (navSelectorState.noResults()) {\n <div class=\"no-result\">{{ translatedTexts().noResults }}</div>\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n } @else {\n <div class=\"nav-selector__header\">\n <button\n type=\"button\"\n class=\"expand-button\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-expand\" />\n </button>\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-icon-button (onClick)=\"onMinifiedSearchClicked()\" type=\"stroked\" role=\"search\">\n <ap-symbol symbolId=\"search\" />\n </ap-icon-button>\n </div>\n\n <div class=\"nav-selector__content\" role=\"tree\" [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n }\n </div>\n }\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n }\n</nav>\n", styles: [":host{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;flex-grow:1;width:100%;max-width:224px;min-width:min(224px,100%)}@media only screen and (min-width: 1400px){:host:not(.embedded){max-width:250px;min-width:min(250px,100%)}}:host :hover .expand-button.expanded{animation-name:translateExpandButton}:host nav{display:flex;height:100%;width:100%;flex-grow:1;flex-direction:column;align-items:flex-start;flex-shrink:0;overflow:hidden;background:var(--ref-color-white)}:host nav:not(.embedded){border-right:1px solid var(--ref-color-grey-10)}:host .nav-selector__header{position:relative;display:flex;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;white-space:nowrap;border-bottom:1px solid var(--ref-color-grey-10);background:var(--ref-color-white)}:host .nav-selector__header .h3{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--sys-text-style-h3-size);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-lg)}:host .nav-selector__header .expand-button-container{position:absolute;right:0;top:var(--ref-spacing-xs)}:host .nav-selector__header .expand-button{animation-duration:70ms;animation-timing-function:cubic-bezier(0,0,.2,1);animation-fill-mode:forwards;animation-name:translateHideButton;display:flex;width:24px;height:24px;justify-content:center;align-items:center;background:var(--ref-color-grey-bg);border-top:1px solid var(--ref-color-grey-20);border-right:none;border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);border-top-left-radius:var(--ref-border-radius-sm);border-bottom-left-radius:var(--ref-border-radius-sm);cursor:pointer}@keyframes translateHideButton{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes translateExpandButton{0%{transform:translate(100%)}to{transform:translate(0)}}:host .nav-selector__header .expand-button.expanded{position:absolute;right:0;top:12px;transform:translate(100%)}:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-reduce],:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-expand]{color:var(--ref-color-grey-80)}:host .nav-selector__header .expand-button:focus{border-radius:var(--ref-border-radius-sm) 0px 0px var(--ref-border-radius-sm);border-top:1px solid var(--ref-color-grey-20);border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-10);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector__header .expand-button:focus.expanded{animation-name:translateExpandButton}:host .nav-selector__header .expand-button:hover{background-color:var(--ref-color-grey-10)}:host .nav-selector__header .expand-button:active{background-color:var(--ref-color-grey-20)}:host .nav-selector__header .nav-selector-search{width:100%}:host .nav-selector__content{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;overflow-y:scroll}:host .nav-selector__content .entry{align-self:stretch;display:flex;flex-direction:column}:host .nav-selector__content .entry.folder{padding:var(--ref-spacing-xxs);border-bottom:1px solid var(--sys-border-color-default)}:host .nav-selector__content .entry.folder+.entry:not(.folder){padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder){padding-left:var(--ref-spacing-xxs);padding-right:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):first-child{padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):last-child{padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):has(+.entry.folder){padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder)+.entry.folder{border-top:1px solid var(--sys-border-color-default)}:host .nav-selector__content .no-result{display:flex;padding:var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;color:var(--ref-color-grey-80);font-family:Averta;font-size:var(--ref-font-size-sm);font-style:italic;font-weight:400;line-height:var(--ref-font-line-height-sm)}:host .nav-selector__footer{display:flex;padding:var(--ref-spacing-xs);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;border-top:1px solid var(--sys-border-color-default);background:var(--ref-color-white)}:host.minified nav{width:64px}:host.minified nav .nav-selector__header{align-items:center}:host.minified nav .nav-selector__header .expand-button{animation-name:none;border-radius:var(--ref-border-radius-sm);border:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-bg)}:host.minified nav .nav-selector__content .entry{padding:var(--ref-spacing-xxxs)}:host.minified nav .nav-selector__footer{padding:var(--ref-spacing-xs) var(--ref-spacing-xxxs) var(--ref-spacing-xs) var(--ref-spacing-xxxs)}\n"], dependencies: [{ kind: "component", type: NavSelectorLeafComponent, selector: "ap-nav-selector-leaf", inputs: ["leaf"], outputs: ["actionClicked"] }, { kind: "component", type: NavSelectorGroupComponent, selector: "ap-nav-selector-group", inputs: ["group"], outputs: ["actionClicked"] }, { kind: "component", type: NavSelectorCategoryComponent, selector: "ap-nav-selector-category", inputs: ["category"], outputs: ["actionClicked"] }, { kind: "component", type: InputSearchComponent, selector: "ap-input-search", inputs: ["id", "placeholder", "clearable"], outputs: ["focus", "blur", "keyup"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SymbolComponent, selector: "ap-symbol", inputs: ["symbolId", "color", "size"], outputs: ["sizeChange"] }, { kind: "component", type: IconButtonComponent, selector: "ap-icon-button", inputs: ["ariaLabel", "name", "color", "disabled", "menuTrigger", "symbolId", "locked", "loading", "type"], outputs: ["onClick", "onFocus", "onBlur", "menuOpened", "menuClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], animations: [
174
165
  trigger('expand', [
175
166
  state('expanded', style({ width: '100%' })),
176
167
  state('minified', style({ width: '64px' })),
@@ -208,6 +199,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
208
199
  // Force animation to do not be with 100% instantly
209
200
  keyframes([style({ width: '64px' }), style({ width: '50%' }), style({ width: '100%' })]))),
210
201
  ]),
211
- ], template: "<nav [@expand]=\"expansionState()\" [class.embedded]=\"embedded()\">\n @let headerProjectionNotNull = headerProjection();\n @let footerProjectionNotNull = footerProjection();\n\n @if (navSelectorState.expandedAfterDelay()) {\n <div class=\"nav-selector__header\">\n @if (!embedded()) {\n <span class=\"h3\">{{ translatedTexts().title }}</span>\n\n <button\n type=\"button\"\n class=\"expand-button expanded\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-reduce\" />\n </button>\n }\n\n\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-input-search\n [id]=\"componentUid + '_search'\"\n class=\"nav-selector-search\"\n [placeholder]=\"translatedTexts().searchPlaceholder\"\n [ngModel]=\"navSelectorState.search()\"\n (ngModelChange)=\"navSelectorState.search.set($event ?? '')\" />\n </div>\n\n <div\n class=\"nav-selector__content\"\n [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\"\n role=\"tree\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" />\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" />\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"$any(entry)\" />\n }\n </div>\n }\n }\n @if (navSelectorState.noResults()) {\n <div class=\"no-result\">{{ translatedTexts().noResults }}</div>\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n } @else {\n <div class=\"nav-selector__header\">\n <button\n type=\"button\"\n class=\"expand-button\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-expand\" />\n </button>\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-icon-button (onClick)=\"onMinifiedSearchClicked()\" type=\"stroked\" role=\"search\">\n <ap-symbol symbolId=\"search\" />\n </ap-icon-button>\n </div>\n\n <div class=\"nav-selector__content\" role=\"tree\" [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" />\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" />\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"entry\" />\n }\n </div>\n }\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n }\n</nav>\n", styles: [":host{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;flex-grow:1;width:100%;max-width:224px;min-width:min(224px,100%)}@media only screen and (min-width: 1400px){:host:not(.embedded){max-width:250px;min-width:min(250px,100%)}}:host :hover .expand-button.expanded{animation-name:translateExpandButton}:host nav{display:flex;height:100%;width:100%;flex-grow:1;flex-direction:column;align-items:flex-start;flex-shrink:0;overflow:hidden;background:var(--ref-color-white)}:host nav:not(.embedded){border-right:1px solid var(--ref-color-grey-10)}:host .nav-selector__header{position:relative;display:flex;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;white-space:nowrap;border-bottom:1px solid var(--ref-color-grey-10);background:var(--ref-color-white)}:host .nav-selector__header .h3{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--sys-text-style-h3-size);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-lg)}:host .nav-selector__header .expand-button-container{position:absolute;right:0;top:var(--ref-spacing-xs)}:host .nav-selector__header .expand-button{animation-duration:70ms;animation-timing-function:cubic-bezier(0,0,.2,1);animation-fill-mode:forwards;animation-name:translateHideButton;display:flex;width:24px;height:24px;justify-content:center;align-items:center;background:var(--ref-color-grey-bg);border-top:1px solid var(--ref-color-grey-20);border-right:none;border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);border-top-left-radius:var(--ref-border-radius-sm);border-bottom-left-radius:var(--ref-border-radius-sm);cursor:pointer}@keyframes translateHideButton{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes translateExpandButton{0%{transform:translate(100%)}to{transform:translate(0)}}:host .nav-selector__header .expand-button.expanded{position:absolute;right:0;top:12px;transform:translate(100%)}:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-reduce],:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-expand]{color:var(--ref-color-grey-80)}:host .nav-selector__header .expand-button:focus{border-radius:var(--ref-border-radius-sm) 0px 0px var(--ref-border-radius-sm);border-top:1px solid var(--ref-color-grey-20);border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-10);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector__header .expand-button:focus.expanded{animation-name:translateExpandButton}:host .nav-selector__header .expand-button:hover{background-color:var(--ref-color-grey-10)}:host .nav-selector__header .expand-button:active{background-color:var(--ref-color-grey-20)}:host .nav-selector__header .nav-selector-search{width:100%}:host .nav-selector__content{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;overflow-y:scroll}:host .nav-selector__content .entry{align-self:stretch;display:flex;flex-direction:column}:host .nav-selector__content .entry.folder{padding:var(--ref-spacing-xxs);border-bottom:1px solid var(--sys-border-color-default)}:host .nav-selector__content .entry.folder+.entry:not(.folder){padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder){padding-left:var(--ref-spacing-xxs);padding-right:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):first-child{padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):last-child{padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):has(+.entry.folder){padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder)+.entry.folder{border-top:1px solid var(--sys-border-color-default)}:host .nav-selector__content .no-result{display:flex;padding:var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;color:var(--ref-color-grey-80);font-family:Averta;font-size:var(--ref-font-size-sm);font-style:italic;font-weight:400;line-height:var(--ref-font-line-height-sm)}:host .nav-selector__footer{display:flex;padding:var(--ref-spacing-xs);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;border-top:1px solid var(--sys-border-color-default);background:var(--ref-color-white)}:host.minified nav{width:64px}:host.minified nav .nav-selector__header{align-items:center}:host.minified nav .nav-selector__header .expand-button{animation-name:none;border-radius:var(--ref-border-radius-sm);border:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-bg)}:host.minified nav .nav-selector__content .entry{padding:var(--ref-spacing-xxxs)}:host.minified nav .nav-selector__footer{padding:var(--ref-spacing-xs) var(--ref-spacing-xxxs) var(--ref-spacing-xs) var(--ref-spacing-xxxs)}\n"] }]
202
+ ], template: "<nav [@expand]=\"expansionState()\" [class.embedded]=\"embedded()\">\n @let headerProjectionNotNull = headerProjection();\n @let footerProjectionNotNull = footerProjection();\n\n @if (navSelectorState.expandedAfterDelay()) {\n <div class=\"nav-selector__header\">\n @if (!embedded()) {\n <span class=\"h3\">{{ translatedTexts().title }}</span>\n\n <button\n type=\"button\"\n class=\"expand-button expanded\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-reduce\" />\n </button>\n }\n\n\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-input-search\n [id]=\"componentUid + '_search'\"\n class=\"nav-selector-search\"\n [placeholder]=\"translatedTexts().searchPlaceholder\"\n [ngModel]=\"navSelectorState.search()\"\n (ngModelChange)=\"navSelectorState.search.set($event ?? '')\" />\n </div>\n\n <div\n class=\"nav-selector__content\"\n [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\"\n role=\"tree\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"$any(entry)\" (actionClicked)=\"actionClicked.emit($event)\"/>\n }\n </div>\n }\n }\n @if (navSelectorState.noResults()) {\n <div class=\"no-result\">{{ translatedTexts().noResults }}</div>\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n } @else {\n <div class=\"nav-selector__header\">\n <button\n type=\"button\"\n class=\"expand-button\"\n (click)=\"clickExpandButton()\">\n <ap-symbol\n size=\"sm\"\n symbolId=\"arrow-expand\" />\n </button>\n @if (headerProjectionNotNull) {\n <ng-container\n [ngTemplateOutlet]=\"headerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n }\n\n <ap-icon-button (onClick)=\"onMinifiedSearchClicked()\" type=\"stroked\" role=\"search\">\n <ap-symbol symbolId=\"search\" />\n </ap-icon-button>\n </div>\n\n <div class=\"nav-selector__content\" role=\"tree\" [attr.aria-multiselectable]=\"navSelectorState.isMultipleModeEnabled()\">\n @for (entry of navSelectorState.entries(); track entry.uid) {\n @if (!entry.hidden) {\n <div class=\"entry\" [class.folder]=\"entry.type === 'GROUP' || entry.type === 'CATEGORY'\">\n @if (entry.type === 'LEAF') {\n <ap-nav-selector-leaf [leaf]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'GROUP') {\n <ap-nav-selector-group [group]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n } @else if (entry.type === 'CATEGORY') {\n <ap-nav-selector-category [category]=\"entry\" (actionClicked)=\"actionClicked.emit($event)\"/>\n }\n </div>\n }\n }\n </div>\n\n @if (displayFooter() && footerProjectionNotNull) {\n <div class=\"nav-selector__footer\">\n <ng-container\n [ngTemplateOutlet]=\"footerProjectionNotNull\"\n [ngTemplateOutletContext]=\"{\n expanded: navSelectorState.expanded()\n }\" />\n </div>\n }\n }\n</nav>\n", styles: [":host{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0;flex-grow:1;width:100%;max-width:224px;min-width:min(224px,100%)}@media only screen and (min-width: 1400px){:host:not(.embedded){max-width:250px;min-width:min(250px,100%)}}:host :hover .expand-button.expanded{animation-name:translateExpandButton}:host nav{display:flex;height:100%;width:100%;flex-grow:1;flex-direction:column;align-items:flex-start;flex-shrink:0;overflow:hidden;background:var(--ref-color-white)}:host nav:not(.embedded){border-right:1px solid var(--ref-color-grey-10)}:host .nav-selector__header{position:relative;display:flex;padding:var(--ref-spacing-xs) var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;gap:8px;align-self:stretch;white-space:nowrap;border-bottom:1px solid var(--ref-color-grey-10);background:var(--ref-color-white)}:host .nav-selector__header .h3{color:var(--ref-color-grey-100);font-family:Averta;font-size:var(--sys-text-style-h3-size);font-style:normal;font-weight:var(--ref-font-weight-bold);line-height:var(--ref-font-line-height-lg)}:host .nav-selector__header .expand-button-container{position:absolute;right:0;top:var(--ref-spacing-xs)}:host .nav-selector__header .expand-button{animation-duration:70ms;animation-timing-function:cubic-bezier(0,0,.2,1);animation-fill-mode:forwards;animation-name:translateHideButton;display:flex;width:24px;height:24px;justify-content:center;align-items:center;background:var(--ref-color-grey-bg);border-top:1px solid var(--ref-color-grey-20);border-right:none;border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);border-top-left-radius:var(--ref-border-radius-sm);border-bottom-left-radius:var(--ref-border-radius-sm);cursor:pointer}@keyframes translateHideButton{0%{transform:translate(0)}to{transform:translate(100%)}}@keyframes translateExpandButton{0%{transform:translate(100%)}to{transform:translate(0)}}:host .nav-selector__header .expand-button.expanded{position:absolute;right:0;top:12px;transform:translate(100%)}:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-reduce],:host .nav-selector__header .expand-button ap-symbol[symbol-id=arrow-expand]{color:var(--ref-color-grey-80)}:host .nav-selector__header .expand-button:focus{border-radius:var(--ref-border-radius-sm) 0px 0px var(--ref-border-radius-sm);border-top:1px solid var(--ref-color-grey-20);border-bottom:1px solid var(--ref-color-grey-20);border-left:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-10);box-shadow:0 0 0 1px #fff,0 0 0 3px #178dfe}:host .nav-selector__header .expand-button:focus.expanded{animation-name:translateExpandButton}:host .nav-selector__header .expand-button:hover{background-color:var(--ref-color-grey-10)}:host .nav-selector__header .expand-button:active{background-color:var(--ref-color-grey-20)}:host .nav-selector__header .nav-selector-search{width:100%}:host .nav-selector__content{display:flex;flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;overflow-y:scroll}:host .nav-selector__content .entry{align-self:stretch;display:flex;flex-direction:column}:host .nav-selector__content .entry.folder{padding:var(--ref-spacing-xxs);border-bottom:1px solid var(--sys-border-color-default)}:host .nav-selector__content .entry.folder+.entry:not(.folder){padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder){padding-left:var(--ref-spacing-xxs);padding-right:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):first-child{padding-top:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):last-child{padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder):has(+.entry.folder){padding-bottom:var(--ref-spacing-xxs)}:host .nav-selector__content .entry:not(.folder)+.entry.folder{border-top:1px solid var(--sys-border-color-default)}:host .nav-selector__content .no-result{display:flex;padding:var(--ref-spacing-sm);flex-direction:column;align-items:flex-start;flex:1 0 0;align-self:stretch;color:var(--ref-color-grey-80);font-family:Averta;font-size:var(--ref-font-size-sm);font-style:italic;font-weight:400;line-height:var(--ref-font-line-height-sm)}:host .nav-selector__footer{display:flex;padding:var(--ref-spacing-xs);flex-direction:column;align-items:flex-start;gap:var(--ref-spacing-xxs);align-self:stretch;border-top:1px solid var(--sys-border-color-default);background:var(--ref-color-white)}:host.minified nav{width:64px}:host.minified nav .nav-selector__header{align-items:center}:host.minified nav .nav-selector__header .expand-button{animation-name:none;border-radius:var(--ref-border-radius-sm);border:1px solid var(--ref-color-grey-20);background:var(--ref-color-grey-bg)}:host.minified nav .nav-selector__content .entry{padding:var(--ref-spacing-xxxs)}:host.minified nav .nav-selector__footer{padding:var(--ref-spacing-xs) var(--ref-spacing-xxxs) var(--ref-spacing-xs) var(--ref-spacing-xxxs)}\n"] }]
212
203
  }], ctorParameters: () => [{ type: i1.NavSelectorState }, { type: i0.ElementRef }] });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL25hdi1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy9uYXYtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsTUFBTSxFQUVOLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEdBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzNG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QUNSLE9BQU8sQ0FBQyxRQUFRLEVBQUU7NEJBQ2QsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzs0QkFDM0MsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzs0QkFDM0MsVUFBVSxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDOzRCQUMvRSxVQUFVLENBQ04sc0JBQXNCLEVBQ3RCLE9BQU8sQ0FDSCxrQ0FBa0M7NEJBQ2xDLG1EQUFtRDs0QkFDbkQsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUMzRixDQUNKO3lCQUNKLENBQUM7cUJBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9pY29uLWJ1dHRvbic7XG5pbXBvcnQgeyBJbnB1dFNlYXJjaENvbXBvbmVudCB9IGZyb20gJ0BhZ29yYXB1bHNlL3VpLWNvbXBvbmVudHMvaW5wdXQtc2VhcmNoJztcbmltcG9ydCB7IGFwQXJyb3dFeHBhbmQsIGFwQXJyb3dSZWR1Y2UsIGFwU2VhcmNoLCBTeW1ib2xDb21wb25lbnQsIHdpdGhTeW1ib2xzIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktc3ltYm9sJztcbmltcG9ydCB7IGFuaW1hdGUsIGtleWZyYW1lcywgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgY29udGVudENoaWxkcmVuLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGlucHV0LFxuICAgIG1vZGVsLFxuICAgIE9uSW5pdCxcbiAgICBvdXRwdXQsXG4gICAgc2lnbmFsLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIHVudHJhY2tlZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yRW50cnksIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzIH0gZnJvbSAnLi9uYXYtc2VsZWN0b3InO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JDYXRlZ29yeUNvbXBvbmVudCB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLWNhdGVnb3J5L25hdi1zZWxlY3Rvci1jYXRlZ29yeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JHcm91cENvbXBvbmVudCB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLWdyb3VwL25hdi1zZWxlY3Rvci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JMZWFmQ29tcG9uZW50IH0gZnJvbSAnLi9uYXYtc2VsZWN0b3ItbGVhZi9uYXYtc2VsZWN0b3ItbGVhZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JTdGF0ZSB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLnN0YXRlJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLmFjY2Vzc2liaWxpdHknO1xuXG5jb25zdCBBVVRPX01JTklGWV9XSURUSF9CUkVBS1BPSU5UID0gMTI4MDtcbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLW5hdi1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdi1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5hdlNlbGVjdG9yTGVhZkNvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JHcm91cENvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JDYXRlZ29yeUNvbXBvbmVudCxcbiAgICAgICAgSW5wdXRTZWFyY2hDb21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtOYXZTZWxlY3RvclN0YXRlLCB3aXRoU3ltYm9scyhhcEFycm93RXhwYW5kLCBhcEFycm93UmVkdWNlLCBhcFNlYXJjaCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5taW5pZmllZF0nOiAnIW5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKScsXG4gICAgICAgICdbY2xhc3MuZW1iZWRkZWRdJzogJ2VtYmVkZGVkKCknLFxuICAgICAgICByb2xlOiAndHJlZScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0Rvd24pJzogJ29uQXJyb3dEb3duKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dVcCknOiAnb25BcnJvd1VwKCRldmVudCknLFxuICAgICAgICAnKHdpbmRvdzpyZXNpemUpJzogJ29uV2luZG93UmVzaXplKCknLFxuICAgIH0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdleHBhbmQnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnZXhwYW5kZWQnLCBzdHlsZSh7IHdpZHRoOiAnMTAwJScgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ21pbmlmaWVkJywgc3R5bGUoeyB3aWR0aDogJzY0cHgnIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkID0+IG1pbmlmaWVkJywgYW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMywgMSknKSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICdtaW5pZmllZCA9PiBleHBhbmRlZCcsXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICAgICAgICAgJzI1MG1zIGN1YmljLWJlemllciguNCwgMCwgLjMsIDEpJyxcbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yY2UgYW5pbWF0aW9uIHRvIGRvIG5vdCBiZSB3aXRoIDEwMCUgaW5zdGFudGx5XG4gICAgICAgICAgICAgICAgICAgIGtleWZyYW1lcyhbc3R5bGUoeyB3aWR0aDogJzY0cHgnIH0pLCBzdHlsZSh7IHdpZHRoOiAnNTAlJyB9KSwgc3R5bGUoeyB3aWR0aDogJzEwMCUnIH0pXSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgbmF2U2VsZWN0b3JFbnRyaWVzID0gaW5wdXQucmVxdWlyZWQ8TmF2U2VsZWN0b3JFbnRyeVtdPigpO1xuICAgIHRyYW5zbGF0ZWRUZXh0cyA9IGlucHV0LnJlcXVpcmVkPE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzPigpO1xuICAgIG11bHRpcGxlTW9kZUVuYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQgPSBpbnB1dDxudW1iZXI+KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtcbiAgICBlbWJlZGRlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBuYXYgc2VsZWN0b3Igd2lsbCBiZSBleHBhbmRlZCBieSBkZWZhdWx0LiBFdmVuIGlmIHRoZSB3aWR0aCBvZiB0aGUgc2NyZWVuIGlzIHNtYWxsZXIgdGhhbiAxMjgwcHguXG4gICAgICovXG4gICAgZm9yY2VFeHBhbmRlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBleHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gICAgc2VsZWN0ZWRFbnRyeVVpZHMgPSBtb2RlbC5yZXF1aXJlZDxzdHJpbmdbXT4oKTtcblxuICAgIGhlYWRlclByb2plY3Rpb24gPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCdoZWFkZXInKTtcbiAgICBmb290ZXJQcm9qZWN0aW9uID0gY29udGVudENoaWxkPFRlbXBsYXRlUmVmPHVua25vd24+PignZm9vdGVyJyk7XG5cbiAgICBkaXNwbGF5Rm9vdGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5mb290ZXJQcm9qZWN0aW9uKCkgIT09IHVuZGVmaW5lZCk7XG5cbiAgICBsZWFmQWN0aW9uUHJvamVjdGlvbiA9IGNvbnRlbnRDaGlsZHJlbjxUZW1wbGF0ZVJlZjx1bmtub3duPj4oJ2xlYWZBY3Rpb24nKTtcblxuICAgIGV4cGFuc2lvblN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpID8gJ2V4cGFuZGVkJyA6ICdtaW5pZmllZCcpKTtcblxuICAgIG9uRXhwYW5zaW9uU3RhdGVDaGFuZ2UgPSBvdXRwdXQ8eyBleHBhbmRlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgY29tcG9uZW50VWlkID0gYG5hdi1zZWxlY3Rvci0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICByZWFkeSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIG5hdlNlbGVjdG9yU3RhdGU6IE5hdlNlbGVjdG9yU3RhdGUsXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgbmF2U2VsZWN0b3JTdGF0ZS5yZWdpc3Rlck9uU2VsZWN0ZWRVaWRzQ2hhbmdlKHNlbGVjdGVkVWlkcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0luaXQgPSAhIXRoaXMubmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzKCkubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKGlzSW5pdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbnRyeVVpZHMuc2V0KHNlbGVjdGVkVWlkcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5LnNldCh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gdGhpcy5uYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCk7XG4gICAgICAgICAgICB0aGlzLm9uRXhwYW5zaW9uU3RhdGVDaGFuZ2UuZW1pdCh7IGV4cGFuZGVkIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbXVsdGlwbGVNb2RlRW5hYmxlZCA9IHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpO1xuICAgICAgICAgICAgY29uc3QgbmV3RW50cmllcyA9IHRoaXMubmF2U2VsZWN0b3JFbnRyaWVzKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS51cGRhdGVNdWx0aU1vZGVFbmFibGVkKG11bHRpcGxlTW9kZUVuYWJsZWQpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5uYXZTZWxlY3RvclN0YXRlLmVudHJpZXMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmluaXRFbnRyaWVzKG5ld0VudHJpZXMsIHRoaXMuc2VsZWN0ZWRFbnRyeVVpZHMoKSwgdGhpcy5kZXRhaWxzRGlzcGxheWVkTGltaXQoKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZUVudHJpZXMobmV3RW50cmllcywgdGhpcy5zZWxlY3RlZEVudHJ5VWlkcygpLCB0aGlzLmRldGFpbHNEaXNwbGF5ZWRMaW1pdCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRldGFpbHNEaXNwbGF5ZWRMaW1pdCA9IHRoaXMuZGV0YWlsc0Rpc3BsYXllZExpbWl0KCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZURldGFpbHNEaXNwbGF5ZWRMaW1pdChkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgbGVhZkFjdGlvblByb2plY3Rpb25FZmZlY3QgPSBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVhZkFjdGlvblByb2plY3Rpb24gPSB0aGlzLmxlYWZBY3Rpb25Qcm9qZWN0aW9uKCk7XG4gICAgICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxlYWZBY3Rpb25Qcm9qZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudXBkYXRlTGVhZkFjdGlvbih0aGlzLmxlYWZBY3Rpb25Qcm9qZWN0aW9uKCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVhZkFjdGlvblByb2plY3Rpb25FZmZlY3QuZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBtYW51YWxDbGVhbnVwOiB0cnVlIH1cbiAgICAgICAgKTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbnRyeVVpZHMgPSB0aGlzLnNlbGVjdGVkRW50cnlVaWRzKCk7XG4gICAgICAgICAgICBjb25zdCBpc0luaXQgPSAhIXRoaXMubmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzKCkubGVuZ3RoO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IGlzSW5pdCAmJiB0aGlzLm5hdlNlbGVjdG9yU3RhdGUub25TZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0ZWRFbnRyeVVpZHMpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUZXh0cyA9IHRoaXMudHJhbnNsYXRlZFRleHRzKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZVRleHRzKHRyYW5zbGF0ZWRUZXh0cykpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplRXhwYW5kZWRTdGF0ZSgpO1xuICAgIH1cblxuICAgIG9uTWluaWZpZWRTZWFyY2hDbGlja2VkKCkge1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudG9nZ2xlRXhwYW5kZWQoKTtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKS5mb2N1cygpKTtcbiAgICB9XG5cbiAgICBvbkFycm93RG93bihldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubmF2LXNlbGVjdG9yX19jb250ZW50JykuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLm9uQXJyb3dEb3duKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3JvbGU9XCJ0cmVlaXRlbVwiXVt0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZvY3VzIGZhaWxzIGl0IG1lYW4gd2UgZG8gbm90IGhhdmUgYW4gZW50cnkgd2l0aCB0YWJpbmRleCAwLCBzbyB3ZSB3aWxsIG5vdCBiZSBhYmxlIHRvIGZvY3VzIGFueSBlbnRyeSBhbnltb3JlLlxuICAgICAgICAgICAgICAgICAgICAvLyBGb3JjZSByZXNldCBpbiB0aGlzIGNhc2UgYnkgcmVidWlsZGluZyB0aGUgZW50cmllcyBhbmQgcmVzZXR0aW5nIHRoZSBmb2N1cy5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW05hdiBzZWxlY3Rvcl0gRmFpbGVkIHRvIGZvY3VzIHRoZSBuZXh0IGVudHJ5LCByZXNldHRpbmcuLi4nLCBlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZUVudHJpZXModGhpcy5uYXZTZWxlY3RvckVudHJpZXMoKSwgdGhpcy5zZWxlY3RlZEVudHJ5VWlkcygpLCB0aGlzLmRldGFpbHNEaXNwbGF5ZWRMaW1pdCgpKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LnJlc2V0Rm9jdXMoZW50cmllcykpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25BcnJvd1VwKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5uYXYtc2VsZWN0b3JfX2NvbnRlbnQnKS5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUub25BcnJvd1VwKCk7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW3JvbGU9XCJ0cmVlaXRlbVwiXVt0YWJpbmRleD1cIjBcIl0nKS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZvY3VzIGZhaWxzIGl0IG1lYW4gd2UgZG8gbm90IGhhdmUgYW4gZW50cnkgd2l0aCB0YWJpbmRleCAwLCBzbyB3ZSB3aWxsIG5vdCBiZSBhYmxlIHRvIGZvY3VzIGFueSBlbnRyeSBhbnltb3JlLlxuICAgICAgICAgICAgICAgICAgICAvLyBGb3JjZSByZXNldCBpbiB0aGlzIGNhc2UgYnkgcmVidWlsZGluZyB0aGUgZW50cmllcyBhbmQgcmVzZXR0aW5nIHRoZSBmb2N1cy5cbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignW05hdiBzZWxlY3Rvcl0gRmFpbGVkIHRvIGZvY3VzIHRoZSBwcmV2aW91cyBlbnRyeSwgcmVzZXR0aW5nLi4uJywgZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS51cGRhdGVFbnRyaWVzKHRoaXMubmF2U2VsZWN0b3JFbnRyaWVzKCksIHRoaXMuc2VsZWN0ZWRFbnRyeVVpZHMoKSwgdGhpcy5kZXRhaWxzRGlzcGxheWVkTGltaXQoKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eS5yZXNldEZvY3VzKGVudHJpZXMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uV2luZG93UmVzaXplKCkge1xuICAgICAgICBpZiAoIXRoaXMuZW1iZWRkZWQoKSAmJiAhdGhpcy5mb3JjZUV4cGFuZGVkKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA8IEFVVE9fTUlOSUZZX1dJRFRIX0JSRUFLUE9JTlQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZm9yY2VNaW5pZnkoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMubmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpICYmIHdpbmRvdy5pbm5lcldpZHRoID49IEFVVE9fTUlOSUZZX1dJRFRIX0JSRUFLUE9JTlQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBleHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5ID0gdGhpcy5leHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5KCk7XG4gICAgICAgICAgICAgICAgaWYgKCFleHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5IHx8ICFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShleHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZm9yY2VFeHBhbmQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVFeHBhbmRlZFN0YXRlKCkge1xuICAgICAgICBpZiAoIXRoaXMuZW1iZWRkZWQoKSAmJiAhdGhpcy5mb3JjZUV4cGFuZGVkKCkpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSBleHBhbmRlZCBzdGF0ZSBpcyBzdG9yZWQgaW4gbG9jYWwgc3RvcmFnZSwgd2UgbmVlZCB0byBpbml0aWFsaXplIHRoZSBleHBhbmRlZCBzdGF0ZSBhY2NvcmRpbmdseVxuICAgICAgICAgICAgY29uc3QgZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSA9IHRoaXMuZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSgpO1xuICAgICAgICAgICAgaWYgKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkgJiYgbG9jYWxTdG9yYWdlLmdldEl0ZW0oZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSkpIHtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSkgPT09ICd0cnVlJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZm9yY2VFeHBhbmQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZm9yY2VNaW5pZnkoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub25XaW5kb3dSZXNpemUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNsaWNrRXhwYW5kQnV0dG9uKCkge1xuICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudG9nZ2xlRXhwYW5kZWQoKTtcbiAgICAgICAgY29uc3QgZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSA9IHRoaXMuZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSgpO1xuICAgICAgICBpZiAoZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSkge1xuICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSwgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCkudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmF2IFtAZXhwYW5kXT1cImV4cGFuc2lvblN0YXRlKClcIiBbY2xhc3MuZW1iZWRkZWRdPVwiZW1iZWRkZWQoKVwiPlxuICAgIEBsZXQgaGVhZGVyUHJvamVjdGlvbk5vdE51bGwgPSBoZWFkZXJQcm9qZWN0aW9uKCk7XG4gICAgQGxldCBmb290ZXJQcm9qZWN0aW9uTm90TnVsbCA9IGZvb3RlclByb2plY3Rpb24oKTtcblxuICAgIEBpZiAobmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZEFmdGVyRGVsYXkoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LXNlbGVjdG9yX19oZWFkZXJcIj5cbiAgICAgICAgICAgIEBpZiAoIWVtYmVkZGVkKCkpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImgzXCI+e3sgdHJhbnNsYXRlZFRleHRzKCkudGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1idXR0b24gZXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tFeHBhbmRCdXR0b24oKVwiPlxuICAgICAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sSWQ9XCJhcnJvdy1yZWR1Y2VcIiAvPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIEBpZiAoaGVhZGVyUHJvamVjdGlvbk5vdE51bGwpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclByb2plY3Rpb25Ob3ROdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkOiBuYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKClcbiAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxhcC1pbnB1dC1zZWFyY2hcbiAgICAgICAgICAgICAgICBbaWRdPVwiY29tcG9uZW50VWlkICsgJ19zZWFyY2gnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm5hdi1zZWxlY3Rvci1zZWFyY2hcIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGVkVGV4dHMoKS5zZWFyY2hQbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwibmF2U2VsZWN0b3JTdGF0ZS5zZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibmF2U2VsZWN0b3JTdGF0ZS5zZWFyY2guc2V0KCRldmVudCA/PyAnJylcIiAvPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cIm5hdi1zZWxlY3Rvcl9fY29udGVudFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV09XCJuYXZTZWxlY3RvclN0YXRlLmlzTXVsdGlwbGVNb2RlRW5hYmxlZCgpXCJcbiAgICAgICAgICAgIHJvbGU9XCJ0cmVlXCI+XG4gICAgICAgICAgICBAZm9yIChlbnRyeSBvZiBuYXZTZWxlY3RvclN0YXRlLmVudHJpZXMoKTsgdHJhY2sgZW50cnkudWlkKSB7XG4gICAgICAgICAgICAgICAgQGlmICghZW50cnkuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbnRyeVwiIFtjbGFzcy5mb2xkZXJdPVwiZW50cnkudHlwZSA9PT0gJ0dST1VQJyB8fCBlbnRyeS50eXBlID09PSAnQ0FURUdPUlknXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGVudHJ5LnR5cGUgPT09ICdMRUFGJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1uYXYtc2VsZWN0b3ItbGVhZiBbbGVhZl09XCJlbnRyeVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChlbnRyeS50eXBlID09PSAnR1JPVVAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwLW5hdi1zZWxlY3Rvci1ncm91cCBbZ3JvdXBdPVwiZW50cnlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gJ0NBVEVHT1JZJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1uYXYtc2VsZWN0b3ItY2F0ZWdvcnkgW2NhdGVnb3J5XT1cIiRhbnkoZW50cnkpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChuYXZTZWxlY3RvclN0YXRlLm5vUmVzdWx0cygpKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5vLXJlc3VsdFwiPnt7IHRyYW5zbGF0ZWRUZXh0cygpLm5vUmVzdWx0cyB9fTwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICBAaWYgKGRpc3BsYXlGb290ZXIoKSAmJiBmb290ZXJQcm9qZWN0aW9uTm90TnVsbCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1zZWxlY3Rvcl9fZm9vdGVyXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJmb290ZXJQcm9qZWN0aW9uTm90TnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZDogbmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpXG4gICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1zZWxlY3Rvcl9faGVhZGVyXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tFeHBhbmRCdXR0b24oKVwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2xcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgc3ltYm9sSWQ9XCJhcnJvdy1leHBhbmRcIiAvPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICBAaWYgKGhlYWRlclByb2plY3Rpb25Ob3ROdWxsKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJQcm9qZWN0aW9uTm90TnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZDogbmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpXG4gICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8YXAtaWNvbi1idXR0b24gKG9uQ2xpY2spPVwib25NaW5pZmllZFNlYXJjaENsaWNrZWQoKVwiIHR5cGU9XCJzdHJva2VkXCIgcm9sZT1cInNlYXJjaFwiPlxuICAgICAgICAgICAgICAgIDxhcC1zeW1ib2wgc3ltYm9sSWQ9XCJzZWFyY2hcIiAvPlxuICAgICAgICAgICAgPC9hcC1pY29uLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1zZWxlY3Rvcl9fY29udGVudFwiIHJvbGU9XCJ0cmVlXCIgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPVwibmF2U2VsZWN0b3JTdGF0ZS5pc011bHRpcGxlTW9kZUVuYWJsZWQoKVwiPlxuICAgICAgICAgICAgQGZvciAoZW50cnkgb2YgbmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzKCk7IHRyYWNrIGVudHJ5LnVpZCkge1xuICAgICAgICAgICAgICAgIEBpZiAoIWVudHJ5LmhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIiBbY2xhc3MuZm9sZGVyXT1cImVudHJ5LnR5cGUgPT09ICdHUk9VUCcgfHwgZW50cnkudHlwZSA9PT0gJ0NBVEVHT1JZJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChlbnRyeS50eXBlID09PSAnTEVBRicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWxlYWYgW2xlYWZdPVwiZW50cnlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gJ0dST1VQJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1uYXYtc2VsZWN0b3ItZ3JvdXAgW2dyb3VwXT1cImVudHJ5XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWNhdGVnb3J5IFtjYXRlZ29yeV09XCJlbnRyeVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChkaXNwbGF5Rm9vdGVyKCkgJiYgZm9vdGVyUHJvamVjdGlvbk5vdE51bGwpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtc2VsZWN0b3JfX2Zvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyUHJvamVjdGlvbk5vdE51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ6IG5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKVxuICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgfVxuPC9uYXY+XG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL25hdi1zZWxlY3Rvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9saWJzL3VpLWNvbXBvbmVudHMvbmF2LXNlbGVjdG9yL3NyYy9uYXYtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsZUFBZSxFQUNmLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixNQUFNLEVBRU4sS0FBSyxFQUNMLEtBQUssRUFFTCxNQUFNLEVBQ04sTUFBTSxFQUVOLFNBQVMsR0FDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDOUYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFF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QUMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQzNGLENBQ0o7eUJBQ0osQ0FBQztxQkFDTCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1jb21wb25lbnRzL2ljb24tYnV0dG9uJztcbmltcG9ydCB7IElucHV0U2VhcmNoQ29tcG9uZW50IH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9pbnB1dC1zZWFyY2gnO1xuaW1wb3J0IHsgYXBBcnJvd0V4cGFuZCwgYXBBcnJvd1JlZHVjZSwgYXBTZWFyY2gsIFN5bWJvbENvbXBvbmVudCwgd2l0aFN5bWJvbHMgfSBmcm9tICdAYWdvcmFwdWxzZS91aS1zeW1ib2wnO1xuaW1wb3J0IHsgYW5pbWF0ZSwga2V5ZnJhbWVzLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBhZnRlck5leHRSZW5kZXIsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGNvbnRlbnRDaGlsZCxcbiAgICBlZmZlY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbnB1dCxcbiAgICBtb2RlbCxcbiAgICBPbkluaXQsXG4gICAgb3V0cHV0LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckVudHJ5LCBOYXZTZWxlY3RvckxlYWZBY3Rpb25DbGlja2VkRXZlbnQsIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzIH0gZnJvbSAnLi9uYXYtc2VsZWN0b3InO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JDYXRlZ29yeUNvbXBvbmVudCB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLWNhdGVnb3J5L25hdi1zZWxlY3Rvci1jYXRlZ29yeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JHcm91cENvbXBvbmVudCB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLWdyb3VwL25hdi1zZWxlY3Rvci1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JMZWFmQ29tcG9uZW50IH0gZnJvbSAnLi9uYXYtc2VsZWN0b3ItbGVhZi9uYXYtc2VsZWN0b3ItbGVhZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JTdGF0ZSB9IGZyb20gJy4vbmF2LXNlbGVjdG9yLnN0YXRlJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eSB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLmFjY2Vzc2liaWxpdHknO1xuXG5jb25zdCBBVVRPX01JTklGWV9XSURUSF9CUkVBS1BPSU5UID0gMTI4MDtcbmxldCBuZXh0VW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwLW5hdi1zZWxlY3RvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL25hdi1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbmF2LXNlbGVjdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIE5hdlNlbGVjdG9yTGVhZkNvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JHcm91cENvbXBvbmVudCxcbiAgICAgICAgTmF2U2VsZWN0b3JDYXRlZ29yeUNvbXBvbmVudCxcbiAgICAgICAgSW5wdXRTZWFyY2hDb21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTeW1ib2xDb21wb25lbnQsXG4gICAgICAgIEljb25CdXR0b25Db21wb25lbnQsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtOYXZTZWxlY3RvclN0YXRlLCB3aXRoU3ltYm9scyhhcEFycm93RXhwYW5kLCBhcEFycm93UmVkdWNlLCBhcFNlYXJjaCldLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5taW5pZmllZF0nOiAnIW5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKScsXG4gICAgICAgICdbY2xhc3MuZW1iZWRkZWRdJzogJ2VtYmVkZGVkKCknLFxuICAgICAgICByb2xlOiAndHJlZScsXG4gICAgICAgICcoa2V5ZG93bi5hcnJvd0Rvd24pJzogJ29uQXJyb3dEb3duKCRldmVudCknLFxuICAgICAgICAnKGtleWRvd24uYXJyb3dVcCknOiAnb25BcnJvd1VwKCRldmVudCknLFxuICAgICAgICAnKHdpbmRvdzpyZXNpemUpJzogJ29uV2luZG93UmVzaXplKCknLFxuICAgIH0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdleHBhbmQnLCBbXG4gICAgICAgICAgICBzdGF0ZSgnZXhwYW5kZWQnLCBzdHlsZSh7IHdpZHRoOiAnMTAwJScgfSkpLFxuICAgICAgICAgICAgc3RhdGUoJ21pbmlmaWVkJywgc3R5bGUoeyB3aWR0aDogJzY0cHgnIH0pKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oJ2V4cGFuZGVkID0+IG1pbmlmaWVkJywgYW5pbWF0ZSgnMjUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMywgMSknKSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFxuICAgICAgICAgICAgICAgICdtaW5pZmllZCA9PiBleHBhbmRlZCcsXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICAgICAgICAgJzI1MG1zIGN1YmljLWJlemllciguNCwgMCwgLjMsIDEpJyxcbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yY2UgYW5pbWF0aW9uIHRvIGRvIG5vdCBiZSB3aXRoIDEwMCUgaW5zdGFudGx5XG4gICAgICAgICAgICAgICAgICAgIGtleWZyYW1lcyhbc3R5bGUoeyB3aWR0aDogJzY0cHgnIH0pLCBzdHlsZSh7IHdpZHRoOiAnNTAlJyB9KSwgc3R5bGUoeyB3aWR0aDogJzEwMCUnIH0pXSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgbmF2U2VsZWN0b3JFbnRyaWVzID0gaW5wdXQucmVxdWlyZWQ8TmF2U2VsZWN0b3JFbnRyeVtdPigpO1xuICAgIHRyYW5zbGF0ZWRUZXh0cyA9IGlucHV0LnJlcXVpcmVkPE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzPigpO1xuICAgIG11bHRpcGxlTW9kZUVuYWJsZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgICBkZXRhaWxzRGlzcGxheWVkTGltaXQgPSBpbnB1dDxudW1iZXI+KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtcbiAgICBlbWJlZGRlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoZSBuYXYgc2VsZWN0b3Igd2lsbCBiZSBleHBhbmRlZCBieSBkZWZhdWx0LiBFdmVuIGlmIHRoZSB3aWR0aCBvZiB0aGUgc2NyZWVuIGlzIHNtYWxsZXIgdGhhbiAxMjgwcHguXG4gICAgICovXG4gICAgZm9yY2VFeHBhbmRlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBleHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5ID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gICAgc2VsZWN0ZWRFbnRyeVVpZHMgPSBtb2RlbC5yZXF1aXJlZDxzdHJpbmdbXT4oKTtcblxuICAgIGFjdGlvbkNsaWNrZWQgPSBvdXRwdXQ8TmF2U2VsZWN0b3JMZWFmQWN0aW9uQ2xpY2tlZEV2ZW50PigpO1xuXG4gICAgaGVhZGVyUHJvamVjdGlvbiA9IGNvbnRlbnRDaGlsZDxUZW1wbGF0ZVJlZjx1bmtub3duPj4oJ2hlYWRlcicpO1xuICAgIGZvb3RlclByb2plY3Rpb24gPSBjb250ZW50Q2hpbGQ8VGVtcGxhdGVSZWY8dW5rbm93bj4+KCdmb290ZXInKTtcblxuICAgIGRpc3BsYXlGb290ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmZvb3RlclByb2plY3Rpb24oKSAhPT0gdW5kZWZpbmVkKTtcblxuICAgIGV4cGFuc2lvblN0YXRlID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpID8gJ2V4cGFuZGVkJyA6ICdtaW5pZmllZCcpKTtcblxuICAgIG9uRXhwYW5zaW9uU3RhdGVDaGFuZ2UgPSBvdXRwdXQ8eyBleHBhbmRlZDogYm9vbGVhbiB9PigpO1xuXG4gICAgY29tcG9uZW50VWlkID0gYG5hdi1zZWxlY3Rvci0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICByZWFkeSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIG5hdlNlbGVjdG9yU3RhdGU6IE5hdlNlbGVjdG9yU3RhdGUsXG4gICAgICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWZcbiAgICApIHtcbiAgICAgICAgbmF2U2VsZWN0b3JTdGF0ZS5yZWdpc3Rlck9uU2VsZWN0ZWRVaWRzQ2hhbmdlKHNlbGVjdGVkVWlkcyA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0luaXQgPSAhIXRoaXMubmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzKCkubGVuZ3RoO1xuICAgICAgICAgICAgaWYgKGlzSW5pdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRFbnRyeVVpZHMuc2V0KHNlbGVjdGVkVWlkcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlYWR5LnNldCh0cnVlKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gdGhpcy5uYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCk7XG4gICAgICAgICAgICB0aGlzLm9uRXhwYW5zaW9uU3RhdGVDaGFuZ2UuZW1pdCh7IGV4cGFuZGVkIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbXVsdGlwbGVNb2RlRW5hYmxlZCA9IHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpO1xuICAgICAgICAgICAgY29uc3QgbmV3RW50cmllcyA9IHRoaXMubmF2U2VsZWN0b3JFbnRyaWVzKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS51cGRhdGVNdWx0aU1vZGVFbmFibGVkKG11bHRpcGxlTW9kZUVuYWJsZWQpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5uYXZTZWxlY3RvclN0YXRlLmVudHJpZXMoKS5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmluaXRFbnRyaWVzKG5ld0VudHJpZXMsIHRoaXMuc2VsZWN0ZWRFbnRyeVVpZHMoKSwgdGhpcy5kZXRhaWxzRGlzcGxheWVkTGltaXQoKSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZUVudHJpZXMobmV3RW50cmllcywgdGhpcy5zZWxlY3RlZEVudHJ5VWlkcygpLCB0aGlzLmRldGFpbHNEaXNwbGF5ZWRMaW1pdCgpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRldGFpbHNEaXNwbGF5ZWRMaW1pdCA9IHRoaXMuZGV0YWlsc0Rpc3BsYXllZExpbWl0KCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5uYXZTZWxlY3RvclN0YXRlLnVwZGF0ZURldGFpbHNEaXNwbGF5ZWRMaW1pdChkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRW50cnlVaWRzID0gdGhpcy5zZWxlY3RlZEVudHJ5VWlkcygpO1xuICAgICAgICAgICAgY29uc3QgaXNJbml0ID0gISF0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZW50cmllcygpLmxlbmd0aDtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiBpc0luaXQgJiYgdGhpcy5uYXZTZWxlY3RvclN0YXRlLm9uU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGVkRW50cnlVaWRzKSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGVkVGV4dHMgPSB0aGlzLnRyYW5zbGF0ZWRUZXh0cygpO1xuICAgICAgICAgICAgdW50cmFja2VkKCgpID0+IHRoaXMubmF2U2VsZWN0b3JTdGF0ZS51cGRhdGVUZXh0cyh0cmFuc2xhdGVkVGV4dHMpKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZUV4cGFuZGVkU3RhdGUoKTtcbiAgICB9XG5cbiAgICBvbk1pbmlmaWVkU2VhcmNoQ2xpY2tlZCgpIHtcbiAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0JykuZm9jdXMoKSk7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd24oZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLm5hdi1zZWxlY3Rvcl9fY29udGVudCcpLmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5vbkFycm93RG93bigpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVwidHJlZWl0ZW1cIl1bdGFiaW5kZXg9XCIwXCJdJykuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmb2N1cyBmYWlscyBpdCBtZWFuIHdlIGRvIG5vdCBoYXZlIGFuIGVudHJ5IHdpdGggdGFiaW5kZXggMCwgc28gd2Ugd2lsbCBub3QgYmUgYWJsZSB0byBmb2N1cyBhbnkgZW50cnkgYW55bW9yZS5cbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yY2UgcmVzZXQgaW4gdGhpcyBjYXNlIGJ5IHJlYnVpbGRpbmcgdGhlIGVudHJpZXMgYW5kIHJlc2V0dGluZyB0aGUgZm9jdXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tOYXYgc2VsZWN0b3JdIEZhaWxlZCB0byBmb2N1cyB0aGUgbmV4dCBlbnRyeSwgcmVzZXR0aW5nLi4uJywgZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS51cGRhdGVFbnRyaWVzKHRoaXMubmF2U2VsZWN0b3JFbnRyaWVzKCksIHRoaXMuc2VsZWN0ZWRFbnRyeVVpZHMoKSwgdGhpcy5kZXRhaWxzRGlzcGxheWVkTGltaXQoKSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yQWNjZXNzaWJpbGl0eS5yZXNldEZvY3VzKGVudHJpZXMpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQXJyb3dVcChldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcubmF2LXNlbGVjdG9yX19jb250ZW50JykuY29udGFpbnMoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLm9uQXJyb3dVcCgpO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVwidHJlZWl0ZW1cIl1bdGFiaW5kZXg9XCIwXCJdJykuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBmb2N1cyBmYWlscyBpdCBtZWFuIHdlIGRvIG5vdCBoYXZlIGFuIGVudHJ5IHdpdGggdGFiaW5kZXggMCwgc28gd2Ugd2lsbCBub3QgYmUgYWJsZSB0byBmb2N1cyBhbnkgZW50cnkgYW55bW9yZS5cbiAgICAgICAgICAgICAgICAgICAgLy8gRm9yY2UgcmVzZXQgaW4gdGhpcyBjYXNlIGJ5IHJlYnVpbGRpbmcgdGhlIGVudHJpZXMgYW5kIHJlc2V0dGluZyB0aGUgZm9jdXMuXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1tOYXYgc2VsZWN0b3JdIEZhaWxlZCB0byBmb2N1cyB0aGUgcHJldmlvdXMgZW50cnksIHJlc2V0dGluZy4uLicsIGUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUudXBkYXRlRW50cmllcyh0aGlzLm5hdlNlbGVjdG9yRW50cmllcygpLCB0aGlzLnNlbGVjdGVkRW50cnlVaWRzKCksIHRoaXMuZGV0YWlsc0Rpc3BsYXllZExpbWl0KCkpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkucmVzZXRGb2N1cyhlbnRyaWVzKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbldpbmRvd1Jlc2l6ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVtYmVkZGVkKCkgJiYgIXRoaXMuZm9yY2VFeHBhbmRlZCgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5uYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKCkgJiYgd2luZG93LmlubmVyV2lkdGggPCBBVVRPX01JTklGWV9XSURUSF9CUkVBS1BPSU5UKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmZvcmNlTWluaWZ5KCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCF0aGlzLm5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKSAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+PSBBVVRPX01JTklGWV9XSURUSF9CUkVBS1BPSU5UKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSA9IHRoaXMuZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSgpO1xuICAgICAgICAgICAgICAgIGlmICghZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSB8fCAhbG9jYWxTdG9yYWdlLmdldEl0ZW0oZXhwYW5kZWRTdGF0ZUxvY2FsU3RvcmFnZUtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmZvcmNlRXhwYW5kKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplRXhwYW5kZWRTdGF0ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmVtYmVkZGVkKCkgJiYgIXRoaXMuZm9yY2VFeHBhbmRlZCgpKSB7XG4gICAgICAgICAgICAvLyBJZiB0aGUgZXhwYW5kZWQgc3RhdGUgaXMgc3RvcmVkIGluIGxvY2FsIHN0b3JhZ2UsIHdlIG5lZWQgdG8gaW5pdGlhbGl6ZSB0aGUgZXhwYW5kZWQgc3RhdGUgYWNjb3JkaW5nbHlcbiAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkgPSB0aGlzLmV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkoKTtcbiAgICAgICAgICAgIGlmIChleHBhbmRlZFN0YXRlTG9jYWxTdG9yYWdlS2V5ICYmIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkpID09PSAndHJ1ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmZvcmNlRXhwYW5kKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLmZvcmNlTWluaWZ5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLm9uV2luZG93UmVzaXplKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjbGlja0V4cGFuZEJ1dHRvbigpIHtcbiAgICAgICAgdGhpcy5uYXZTZWxlY3RvclN0YXRlLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIGNvbnN0IGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkgPSB0aGlzLmV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkoKTtcbiAgICAgICAgaWYgKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXkpIHtcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGV4cGFuZGVkU3RhdGVMb2NhbFN0b3JhZ2VLZXksIHRoaXMubmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5hdiBbQGV4cGFuZF09XCJleHBhbnNpb25TdGF0ZSgpXCIgW2NsYXNzLmVtYmVkZGVkXT1cImVtYmVkZGVkKClcIj5cbiAgICBAbGV0IGhlYWRlclByb2plY3Rpb25Ob3ROdWxsID0gaGVhZGVyUHJvamVjdGlvbigpO1xuICAgIEBsZXQgZm9vdGVyUHJvamVjdGlvbk5vdE51bGwgPSBmb290ZXJQcm9qZWN0aW9uKCk7XG5cbiAgICBAaWYgKG5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWRBZnRlckRlbGF5KCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1zZWxlY3Rvcl9faGVhZGVyXCI+XG4gICAgICAgICAgICBAaWYgKCFlbWJlZGRlZCgpKSB7XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoM1wiPnt7IHRyYW5zbGF0ZWRUZXh0cygpLnRpdGxlIH19PC9zcGFuPlxuXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtYnV0dG9uIGV4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrRXhwYW5kQnV0dG9uKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFwLXN5bWJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbElkPVwiYXJyb3ctcmVkdWNlXCIgLz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICBAaWYgKGhlYWRlclByb2plY3Rpb25Ob3ROdWxsKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJQcm9qZWN0aW9uTm90TnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZDogbmF2U2VsZWN0b3JTdGF0ZS5leHBhbmRlZCgpXG4gICAgICAgICAgICAgICAgICAgIH1cIiAvPlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8YXAtaW5wdXQtc2VhcmNoXG4gICAgICAgICAgICAgICAgW2lkXT1cImNvbXBvbmVudFVpZCArICdfc2VhcmNoJ1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJuYXYtc2VsZWN0b3Itc2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlZFRleHRzKCkuc2VhcmNoUGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIm5hdlNlbGVjdG9yU3RhdGUuc2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm5hdlNlbGVjdG9yU3RhdGUuc2VhcmNoLnNldCgkZXZlbnQgPz8gJycpXCIgLz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJuYXYtc2VsZWN0b3JfX2NvbnRlbnRcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdPVwibmF2U2VsZWN0b3JTdGF0ZS5pc011bHRpcGxlTW9kZUVuYWJsZWQoKVwiXG4gICAgICAgICAgICByb2xlPVwidHJlZVwiPlxuICAgICAgICAgICAgQGZvciAoZW50cnkgb2YgbmF2U2VsZWN0b3JTdGF0ZS5lbnRyaWVzKCk7IHRyYWNrIGVudHJ5LnVpZCkge1xuICAgICAgICAgICAgICAgIEBpZiAoIWVudHJ5LmhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZW50cnlcIiBbY2xhc3MuZm9sZGVyXT1cImVudHJ5LnR5cGUgPT09ICdHUk9VUCcgfHwgZW50cnkudHlwZSA9PT0gJ0NBVEVHT1JZJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChlbnRyeS50eXBlID09PSAnTEVBRicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWxlYWYgW2xlYWZdPVwiZW50cnlcIiAoYWN0aW9uQ2xpY2tlZCk9XCJhY3Rpb25DbGlja2VkLmVtaXQoJGV2ZW50KVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGVudHJ5LnR5cGUgPT09ICdHUk9VUCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWdyb3VwIFtncm91cF09XCJlbnRyeVwiIChhY3Rpb25DbGlja2VkKT1cImFjdGlvbkNsaWNrZWQuZW1pdCgkZXZlbnQpXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZW50cnkudHlwZSA9PT0gJ0NBVEVHT1JZJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhcC1uYXYtc2VsZWN0b3ItY2F0ZWdvcnkgW2NhdGVnb3J5XT1cIiRhbnkoZW50cnkpXCIgKGFjdGlvbkNsaWNrZWQpPVwiYWN0aW9uQ2xpY2tlZC5lbWl0KCRldmVudClcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAobmF2U2VsZWN0b3JTdGF0ZS5ub1Jlc3VsdHMoKSkge1xuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuby1yZXN1bHRcIj57eyB0cmFuc2xhdGVkVGV4dHMoKS5ub1Jlc3VsdHMgfX08L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgQGlmIChkaXNwbGF5Rm9vdGVyKCkgJiYgZm9vdGVyUHJvamVjdGlvbk5vdE51bGwpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtc2VsZWN0b3JfX2Zvb3RlclwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZm9vdGVyUHJvamVjdGlvbk5vdE51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ6IG5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKVxuICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtc2VsZWN0b3JfX2hlYWRlclwiPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZXhwYW5kLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrRXhwYW5kQnV0dG9uKClcIj5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIHN5bWJvbElkPVwiYXJyb3ctZXhwYW5kXCIgLz5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgQGlmIChoZWFkZXJQcm9qZWN0aW9uTm90TnVsbCkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVhZGVyUHJvamVjdGlvbk5vdE51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kZWQ6IG5hdlNlbGVjdG9yU3RhdGUuZXhwYW5kZWQoKVxuICAgICAgICAgICAgICAgICAgICB9XCIgLz5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGFwLWljb24tYnV0dG9uIChvbkNsaWNrKT1cIm9uTWluaWZpZWRTZWFyY2hDbGlja2VkKClcIiB0eXBlPVwic3Ryb2tlZFwiIHJvbGU9XCJzZWFyY2hcIj5cbiAgICAgICAgICAgICAgICA8YXAtc3ltYm9sIHN5bWJvbElkPVwic2VhcmNoXCIgLz5cbiAgICAgICAgICAgIDwvYXAtaWNvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtc2VsZWN0b3JfX2NvbnRlbnRcIiByb2xlPVwidHJlZVwiIFthdHRyLmFyaWEtbXVsdGlzZWxlY3RhYmxlXT1cIm5hdlNlbGVjdG9yU3RhdGUuaXNNdWx0aXBsZU1vZGVFbmFibGVkKClcIj5cbiAgICAgICAgICAgIEBmb3IgKGVudHJ5IG9mIG5hdlNlbGVjdG9yU3RhdGUuZW50cmllcygpOyB0cmFjayBlbnRyeS51aWQpIHtcbiAgICAgICAgICAgICAgICBAaWYgKCFlbnRyeS5oaWRkZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImVudHJ5XCIgW2NsYXNzLmZvbGRlcl09XCJlbnRyeS50eXBlID09PSAnR1JPVVAnIHx8IGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZW50cnkudHlwZSA9PT0gJ0xFQUYnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwLW5hdi1zZWxlY3Rvci1sZWFmIFtsZWFmXT1cImVudHJ5XCIgKGFjdGlvbkNsaWNrZWQpPVwiYWN0aW9uQ2xpY2tlZC5lbWl0KCRldmVudClcIi8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChlbnRyeS50eXBlID09PSAnR1JPVVAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFwLW5hdi1zZWxlY3Rvci1ncm91cCBbZ3JvdXBdPVwiZW50cnlcIiAoYWN0aW9uQ2xpY2tlZCk9XCJhY3Rpb25DbGlja2VkLmVtaXQoJGV2ZW50KVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGVudHJ5LnR5cGUgPT09ICdDQVRFR09SWScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YXAtbmF2LXNlbGVjdG9yLWNhdGVnb3J5IFtjYXRlZ29yeV09XCJlbnRyeVwiIChhY3Rpb25DbGlja2VkKT1cImFjdGlvbkNsaWNrZWQuZW1pdCgkZXZlbnQpXCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIEBpZiAoZGlzcGxheUZvb3RlcigpICYmIGZvb3RlclByb2plY3Rpb25Ob3ROdWxsKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LXNlbGVjdG9yX19mb290ZXJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZvb3RlclByb2plY3Rpb25Ob3ROdWxsXCJcbiAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkOiBuYXZTZWxlY3RvclN0YXRlLmV4cGFuZGVkKClcbiAgICAgICAgICAgICAgICAgICAgfVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbjwvbmF2PlxuIl19
@@ -6,4 +6,4 @@ export const isInternalNavSelectorEntryANode = (entry) => `children` in entry;
6
6
  export const isInternalNavSelectorEntryACategory = (entry) => entry.type === 'CATEGORY';
7
7
  export const isInternalNavSelectorEntryAGroup = (entry) => entry.type === 'GROUP';
8
8
  export const isInternalNavSelectorEntryALeafDetails = (entry) => entry.type === 'LEAF_DETAILS';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdHQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQXVCLEVBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUVwSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQXVCLEVBQTZCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUV2SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQXVCLEVBQWdDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQWdKaEksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxLQUErQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7QUFFNUksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FDM0MsS0FBK0IsRUFDZ0MsRUFBRSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsQ0FBQyxLQUErQixFQUF3QyxFQUFFLENBQ3pILEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBK0IsRUFBcUMsRUFBRSxDQUNuSCxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUUzQixNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEtBQStCLEVBQTJDLEVBQUUsQ0FDL0gsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdmF0YXJOZXR3b3JrIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuXG4vKipcbiAqIEFzIHRyYW5zbGF0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhlIERTLCB0aGlzIGFsbCB0cmFuc2xhdGlvbnMgbmVlZGVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHMge1xuICAgIC8qKiBUaXRsZSBvZiB0aGUgbmF2IHNlbGVjdG9yICovXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvKiogT25seSB0ZXh0IGluIG11bHRpIHNlbGVjdCBtb2RlICovXG4gICAgb25seTogc3RyaW5nO1xuICAgIC8qKiBUb29sdGlwIGRpc3BsYXllZCBvbiBmb2xkZWQgZ3JvdXAgd2hlbiBvbmUgb2YgaXRzIGNoaWxkcmVuIGhhdmUgdG9rZW4gaXMgaW52YWxpZCAqL1xuICAgIGdyb3VwVG9rZW5JbnZhbGlkOiBzdHJpbmc7XG4gICAgLyoqIFRvb2xpcCBkaXNwbGF5aW5nIHRoYXQgdG9rZW4gaXMgaW52YWxpZCAqL1xuICAgIHRva2VuSW52YWxpZDogc3RyaW5nO1xuICAgIC8qKiBUb29saXAgZGlzcGxheWluZyB0aGF0IGZlYXR1cmUgaXMgbG9ja2VkICovXG4gICAgZmVhdHVyZUxvY2tlZDogc3RyaW5nO1xuICAgIC8qKiBwbGFjZWhvbGRlciBmb3IgdGhlIHNlYXJjaCBpbnB1dCAqL1xuICAgIHNlYXJjaFBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgLyoqIFRleHQgZGlzcGxheWVkIHdoZW4gdGhlIHNlYXJjaCByZXR1cm4gbm8gcmVzdWx0cyAqL1xuICAgIG5vUmVzdWx0czogc3RyaW5nO1xuICAgIC8qKiBUZXh0IG9mIHRoZSBidXR0b24gdG8gc2hvdyBtb3JlIGRldGFpbHMsIGl04oCZcyB1c2VkIHdoZW4gd2UgbGltaXQgdGhlIG51bWJlciBvZiBkZXRhaWxzIGRpc3BsYXllZCAgKi9cbiAgICB2aWV3TW9yZTogc3RyaW5nO1xuICAgIC8qKiBUZXh0IG9mIHRoZSBidXR0b24gdG8gc2hvdyBsZXNzIGRldGFpbHMsIGl04oCZcyB1c2VkIHdoZW4gd2UgbGltaXQgdGhlIG51bWJlciBvZiBkZXRhaWxzIGRpc3BsYXllZCAgKi9cbiAgICB2aWV3TGVzczogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbW1vbiBpbnRlcmZhY2UgZm9yIHRoZSBOYXZTZWxlY3RvclxuICovXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckJhc2VOb2RlID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm9kZSAqL1xuICAgIHVpZDogc3RyaW5nO1xuICAgIC8qKiBEaXNwbGF5ZWQgbmFtZSBvZiB0aGUgbm9kZSAqL1xuICAgIGFsaWFzOiBzdHJpbmc7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yTGVhZiA9IHtcbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGVudHJ5LCB0byBpZ25vcmUgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBXaGVuIHRydWUsIHRoZSBsZWFmIHdpbGwgYmUgaGlkZGVuICovXG4gICAgbWlzc2luZ1Blcm1pc3Npb246IGJvb2xlYW47XG4gICAgLyoqIEZvciBzb2NpYWwgcHJvZmlsZXMgb3IgYWQgYWNjb3VudHMgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBUcmFuc2xhdGVkIHRleHQgd2hlbiB0aGUgZW50cnkgaXMgZGlzYWJsZWQgKi9cbiAgICBkaXNhYmxlUmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaGFzIGl0cyB0b2tlbiBpbnZhbGlkICovXG4gICAgdG9rZW5JbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaXMgbG9ja2VkICovXG4gICAgZmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogU3ViIGVsZW1lbnRzIG9mIHRoZSBsZWFmLCB0aGV5IGFyZSBvcHRpb25hbCAqL1xuICAgIGRldGFpbHM6IE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICB0eXBlOiAnTEVBRic7XG59ICYgTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBncm91cCBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHVzZXIgKGV4OiBtZW51R3JvdXApXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogTmF2U2VsZWN0b3JMZWFmW107XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgc2hvdWxkIGJlIGZvbGRlZCBvciBleHBhbmRlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGEgY2F0ZWdvcnkgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSBwcm9kdWN0IHRvIHNlcGFyYXRlIGRpZmZlcmVudCBraW5kIG9mIGVudHJpZXMgKGV4OiBzb2NpYWwgcHJvZmlsZXMsIHJlcG9ydHMsIGFkIGFjY291bnRz4oCmKVxuICovXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckNhdGVnb3J5ID0ge1xuICAgIC8qKiBBIENhdGVnb3J5IGNhbiBoYXZlIGxlYXZlcyBvciBncm91cHMgYXMgY2hpbGRyZW4sIHlvdSBjYW4gaGF2ZSBsZWF2ZXMgYWxvbmdzaWRlIHdpdGggZ3JvdXBzICovXG4gICAgY2hpbGRyZW46IChOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwKVtdO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBmb2xkZWQgb3IgZXhwYW5kZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSBuYXYgc2VsZWN0b3IgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgdHlwZTogJ0NBVEVHT1JZJztcbn0gJiBOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckVudHJ5ID0gTmF2U2VsZWN0b3JMZWFmIHwgTmF2U2VsZWN0b3JHcm91cCB8IE5hdlNlbGVjdG9yQ2F0ZWdvcnk7XG5cbi8qKlxuICogUmVwcmVzZW50IGRldGFpbHMgb2YgYSBsZWFmLCB0aGV5IGFyZSB1c2VkIHRvIGFsbG93IHRvIGRpc3BsYXkgbW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGVhZlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdlNlbGVjdG9yTGVhZkRldGFpbHMge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm9kZSAqL1xuICAgIHVpZDogc3RyaW5nO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGVudHJ5ICovXG4gICAgY291bnRlcjogbnVtYmVyIHwgbnVsbDtcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRyYW5zbGF0aW9uIG9mIHRoZSBlcnJvciBvbiB0aGUgbGVhZiAqL1xuICAgIGVycm9yUmVhc29uOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgaXNOYXZTZWxlY3RvckVudHJ5QUxlYWYgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3RvckxlYWYgPT4gZW50cnkudHlwZSA9PT0gJ0xFQUYnO1xuXG5leHBvcnQgY29uc3QgaXNOYXZTZWxlY3RvckVudHJ5QUdyb3VwID0gKGVudHJ5OiBOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgTmF2U2VsZWN0b3JHcm91cCA9PiBlbnRyeS50eXBlID09PSAnR1JPVVAnO1xuXG5leHBvcnQgY29uc3QgaXNOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5ID0gKGVudHJ5OiBOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgTmF2U2VsZWN0b3JDYXRlZ29yeSA9PiBlbnRyeS50eXBlID09PSAnQ0FURUdPUlknO1xuXG4vKipcbiAqIFJlcHJlc2VudCB0aGUgYWNjZXNzaWJpbGl0eSBvbiBhIG5vZGVcbiAqL1xuZXhwb3J0IHR5cGUgTm9kZUFjY2Vzc2liaWxpdHkgPSB7XG4gICAgLyoqIE51bWJlciBvZiBzaWJsaW5nIGVsZW1lbnRzLCBpdHNlbGYgaW5jbHVkZWQuIEV4OiB0aGVyZSBhcmUgNyBzb2NpYWwgcHJvZmlsZXMgZGlzcGxheSBpbiB0aGUgZ3JvdXAgKi9cbiAgICBhcmlhU2V0c2l6ZTogbnVtYmVyO1xuICAgIC8qKiBJbmRleCBzdGFydGluZyBmcm9tIDEgb2YgdGhlIGVsZW1lbnQgYWxvbmdzaWRlIGl0cyBzaWJsaW5nICovXG4gICAgYXJpYVBvc2luc2V0OiBudW1iZXI7XG4gICAgLyoqIDAgdG8gYmUgZm9jdXNhYmxlIGJ5IFRhYiBrZXkgYW5kIC0xIHRvIGJlIGZvY3VzYWJsZSBieSBrZXlib2FyZCB3aXRoIEpTICovXG4gICAgdGFiSW5kZXg6IG51bWJlcjtcbiAgICAvKiogSW4gYSB0cmVlLCB0aGUgZGVlcCBsZXZlbCwgc3RhcnRpbmcgZnJvbSAxICovXG4gICAgYXJpYUxldmVsOiBudW1iZXI7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBhIG5vZGVcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckJhc2VOb2RlID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgZW50cnkgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIGVudHJ5ICovXG4gICAgYWxpYXM6IHN0cmluZztcbiAgICBhY2Nlc3NpYmlsaXR5OiBOb2RlQWNjZXNzaWJpbGl0eTtcbiAgICAvKiogV2hlbiBoaWRkZW4sIHRoZSBlbnRyeSBpcyBub3QgZGlzcGxheWVkLCB1c2VkIHdoZW4gc2VhcmNoaW5nIGFuIGVsZW1lbnQgKi9cbiAgICBoaWRkZW46IGJvb2xlYW47XG4gICAgLyoqIFdoZW4gdHJ1ZSwgeW91IGNhbiBuYXZpZ2F0ZSB3aXRoIGFycm93IGtleXMgb24gdGhpcyBlbnRyeSAqL1xuICAgIGZvY3VzYWJsZTogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogUmVwcmVzZW50IGEgZ3JvdXAgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSB1c2VyIChleDogbWVudUdyb3VwKVxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZbXTtcbiAgICAvKiogUGljdHVyZSB1cmwgb2YgdGhlIGdyb3VwLCB1c2VkIHdoZW4gdGhlIG5hdiBzZWxlY3RvciBpcyBtaW5pZmllZCAqL1xuICAgIGNoaWxkcmVuUGljdHVyZVVybFNhbXBsZTogeyB1cmw6IHN0cmluZyB8IG51bGw7IGluaXRpYWw6IHN0cmluZyB9W107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgZ3JvdXAgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIHRoZSBjb3VudGVyIHZhbHVlIHRvIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgc2hvdWxkIGJlIGRpc3BsYXkgd2hlbiB0aGUgZ3JvdXAgaXMgZm9sZGVkICovXG4gICAgZGlzcGxheUNvdW50ZXI6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5IHdoZW4gdGhlIGdyb3VwIGlzIGZvbGRlZCAqL1xuICAgIGRpc3BsYXlUb2tlbkludmFsaWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpbiBtdWx0aSBzZWxlY3QgbW9kZSBpZiB0aGUgZ3JvdXAgaGFzIHNvbWUgY2hpbGRyZW4gc2VsZWN0ZWQgKi9cbiAgICB1bmRldGVybWluZWRTZWxlY3Rpb246IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBncm91cCBpcyBzZWxlY3RhYmxlICovXG4gICAgc2VsZWN0YWJsZTogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIEludGVybmFsTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBjYXRlZ29yeSBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHByb2R1Y3QgdG8gc2VwYXJhdGUgZGlmZmVyZW50IGtpbmQgb2YgZW50cmllcyAoZXg6IHNvY2lhbCBwcm9maWxlcywgcmVwb3J0cywgYWQgYWNjb3VudHPigKYpXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JDYXRlZ29yeSA9IHtcbiAgICAvKiogQSBDYXRlZ29yeSBjYW4gaGF2ZSBsZWF2ZXMgb3IgZ3JvdXBzIGFzIGNoaWxkcmVuLCB5b3UgY2FuIGhhdmUgbGVhdmVzIGFsb25nc2lkZSB3aXRoIGdyb3VwcyAqL1xuICAgIGNoaWxkcmVuOiAoSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpW107XG4gICAgLyoqIEluZGljYXRlcyB3aGVuZXZlciB0aGUgY2F0ZWdvcnkgaXMgZm9sZGVkIG9yIG5vdCAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICB0eXBlOiAnQ0FURUdPUlknO1xufSAmIEludGVybmFsTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgZmluYWwgZW50cnkgb2YgdGhlIG5hdiBzZWxlY3RvclxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZiA9IHtcbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIGFjdGlvbnMgZHJvcGRvd24gY291bGQgYmUgZGlzcGxheS4gU2hvdWxkIG5vdCBiZSBkaXNwbGF5IGlmIHRoZSBsZWFmIGhhcyBhbiBlcnJvciBzdGF0dXMuXG4gICAgICogTm90ZTogb25seSB3b3JraW5nIGlmIGFjdGlvbnMgYXJlIHByb2plY3RlZCBpbiB0aGUgbmF2IHNlbGVjdG9yIGNvbXBvbmVudFxuICAgICAqL1xuICAgIGFjdGlvbnNEaXNwbGF5YWJsZTogYm9vbGVhbjtcbiAgICAvKiogUGljdHVyZSB1cmwgdG8gZGlzcGxheSBvbiB0aGUgYXZhdGFyLCBvcHRpb25hbCAqL1xuICAgIHBpY3R1cmVVcmw6IHN0cmluZyB8IG51bGw7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY291bnRlciBjb3VsZCBiZSBkaXNwbGF5LiBUaGUgbGVhZiBzaG91bGQgbm90IGJlIGRpc2FibGVkLCBmZWF0dXJlIGxvY2tlZCBvciBoYXMgdG9rZW4gaW52YWxpZCAqL1xuICAgIGNvdW50ZXJEaXNwbGF5YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSB0b2tlbiBpbnZhbGlkIGljb24gc2hvdWxkIGJlIGRpc3BsYXkuIFNvIHdoZW4gZGlzcGxheWFibGUgd2hlbiBubyBkZXRhaWxzIG9yIGZvbGRlZCAqL1xuICAgIGRpc3BsYXlDb3VudGVyOiBib29sZWFuO1xuICAgIC8qKiBDb3VudGVyIHZhbHVlIHRvIGRpc3BsYXkgKi9cbiAgICBjb3VudGVyOiBudW1iZXI7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5ICovXG4gICAgZGlzcGxheVRva2VuSW52YWxpZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBmZWF0dXJlIGlzIGxvY2tlZCAqL1xuICAgIGRpc3BsYXlGZWF0dXJlTG9ja2VkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaXMgZGlzYWJsZWQgKi9cbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIGRpc2FibGVkIHJlYXNvbiB0byBkaXNwbGF5IGluIHRvb2x0aXAgKi9cbiAgICBkaXNhYmxlUmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIHNlbGVjdGFibGUgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBGb3Igc29jaWFsIHByb2ZpbGVzIG9yIGFkIGFjY291bnRzLCB0aGUgY29ycmVzcG9uZGluZyBuZXR3b3JrICovXG4gICAgbmV0d29yazogQXZhdGFyTmV0d29yayB8IG51bGw7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBmb2xkYWJsZS4gU28gd2hlbiBpdCBoYXMgZGV0YWlscyBhbmQgbm8gZXJyb3Igc3RhdHVzICovXG4gICAgZm9sZGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBpcyBmb2xkZWQgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBoYXMgb25lIG9mIGl0cyBkZXRhaWxzIHNlbGVjdGVkICovXG4gICAgZGV0YWlsU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBoYXMgZGV0YWlscyBhbmQgdGhleSBhcmUgZGlzcGxheWFibGUuIFNvIG5vIGVycm9yIHN0YXR1cyAqL1xuICAgIGRldGFpbHNEaXNwbGF5YWJsZTogYm9vbGVhbjtcbiAgICAvKiogRGV0YWlscyBvZiB0aGUgbGVhZiAqL1xuICAgIGRldGFpbHM6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlsc1tdO1xuICAgIHR5cGU6ICdMRUFGJztcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSB2aWV3IG1vcmUgc2VjdGlvbiBzaG91bGQgYmUgZGlzcGxheSBmb3IgZGV0YWlscyAqL1xuICAgIHZpZXdNb3JlRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdmlldyBtb3JlIG9yIHZpZXcgbGVzcyBidXR0b24gaXMgZGlzcGxheWVkICovXG4gICAgdmlld01vcmVEaXNwbGF5ZWQ6IGJvb2xlYW47XG4gICAgLyoqIE51bWJlciBvZiBkZXRhaWxzIHRvIGRpc3BsYXkgd2hlbiB0aGUgdmlldyBtb3JlIGlzIG5vdCBjbGlja2VkICovXG4gICAgdmlld01vcmVEZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcjtcbn0gJiBJbnRlcm5hbE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGRldGFpbHMgb2YgYSBsZWFmLCB0aGV5IGFyZSB1c2VkIHRvIGFsbG93IHRvIGRpc3BsYXkgbW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGVhZlxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMgPSB7XG4gICAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBub2RlICovXG4gICAgdWlkOiBzdHJpbmc7XG4gICAgLyoqIENvdW50ZXIgdG8gZGlzcGxheSBvbiB0aGUgZGV0YWlsICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgc2hvdWxkIGJlIGRpc3BsYXkuIFNvIG5vIGVycm9yIG9uIHRoZSBkZXRhaWwgKi9cbiAgICBkaXNwbGF5Q291bnRlcjogYm9vbGVhbjtcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBhbGlhczogc3RyaW5nO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGRldGFpbCBpcyBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGRpc3BsYXkgYW4gZXJyb3IgaWNvbiAqL1xuICAgIGRpc3BsYXlFcnJvcjogYm9vbGVhbjtcbiAgICAvKiogVHJhbnNsYXRlZCB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIHRvb2x0aXAgKi9cbiAgICBlcnJvclJlYXNvbjogc3RyaW5nIHwgbnVsbDtcbiAgICB0eXBlOiAnTEVBRl9ERVRBSUxTJztcbn0gJiBJbnRlcm5hbE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSA9XG4gICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZlxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwXG4gICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnlcbiAgICB8IEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlscztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYgPSAoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JMZWFmID0+IGVudHJ5LnR5cGUgPT09ICdMRUFGJztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUgPSAoXG4gICAgZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVxuKTogZW50cnkgaXMgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5IHwgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwID0+IGBjaGlsZHJlbmAgaW4gZW50cnk7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFDYXRlZ29yeSA9IChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5ID0+XG4gICAgZW50cnkudHlwZSA9PT0gJ0NBVEVHT1JZJztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUdyb3VwID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgPT5cbiAgICBlbnRyeS50eXBlID09PSAnR1JPVVAnO1xuXG5leHBvcnQgY29uc3QgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkRldGFpbHMgPSAoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlscyA9PlxuICAgIGVudHJ5LnR5cGUgPT09ICdMRUFGX0RFVEFJTFMnO1xuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlIQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQXVCLEVBQTRCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztBQUVwSCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQXVCLEVBQTZCLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUV2SCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRyxDQUFDLEtBQXVCLEVBQWdDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztBQTRKaEksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxLQUErQixFQUFvQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7QUFFNUksTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FDM0MsS0FBK0IsRUFDZ0MsRUFBRSxDQUFDLFVBQVUsSUFBSSxLQUFLLENBQUM7QUFFMUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQUcsQ0FBQyxLQUErQixFQUF3QyxFQUFFLENBQ3pILEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDO0FBRTlCLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQUMsS0FBK0IsRUFBcUMsRUFBRSxDQUNuSCxLQUFLLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztBQUUzQixNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxDQUFDLEtBQStCLEVBQTJDLEVBQUUsQ0FDL0gsS0FBSyxDQUFDLElBQUksS0FBSyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdmF0YXJOZXR3b3JrIH0gZnJvbSAnQGFnb3JhcHVsc2UvdWktY29tcG9uZW50cy9hdmF0YXInO1xuXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckxlYWZBY3Rpb25DbGlja2VkRXZlbnQgPSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIGFjdGlvbiB0aGF0IGhhcyBiZWVuIGNsaWNrZWQgKi9cbiAgICBhY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgLyoqIExlYWYgb24gd2hpY2ggdGhlIGFjdGlvbiBoYXMgYmVlbiBjbGlja2VkICovXG4gICAgbGVhZlVpZDogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBBcyB0cmFuc2xhdGlvbiBpcyBub3QgYXZhaWxhYmxlIGluIHRoZSBEUywgdGhpcyBhbGwgdHJhbnNsYXRpb25zIG5lZWRlZFxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzIHtcbiAgICAvKiogVGl0bGUgb2YgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG4gICAgLyoqIE9ubHkgdGV4dCBpbiBtdWx0aSBzZWxlY3QgbW9kZSAqL1xuICAgIG9ubHk6IHN0cmluZztcbiAgICAvKiogVG9vbHRpcCBkaXNwbGF5ZWQgb24gZm9sZGVkIGdyb3VwIHdoZW4gb25lIG9mIGl0cyBjaGlsZHJlbiBoYXZlIHRva2VuIGlzIGludmFsaWQgKi9cbiAgICBncm91cFRva2VuSW52YWxpZDogc3RyaW5nO1xuICAgIC8qKiBUb29saXAgZGlzcGxheWluZyB0aGF0IHRva2VuIGlzIGludmFsaWQgKi9cbiAgICB0b2tlbkludmFsaWQ6IHN0cmluZztcbiAgICAvKiogVG9vbGlwIGRpc3BsYXlpbmcgdGhhdCBmZWF0dXJlIGlzIGxvY2tlZCAqL1xuICAgIGZlYXR1cmVMb2NrZWQ6IHN0cmluZztcbiAgICAvKiogcGxhY2Vob2xkZXIgZm9yIHRoZSBzZWFyY2ggaW5wdXQgKi9cbiAgICBzZWFyY2hQbGFjZWhvbGRlcjogc3RyaW5nO1xuICAgIC8qKiBUZXh0IGRpc3BsYXllZCB3aGVuIHRoZSBzZWFyY2ggcmV0dXJuIG5vIHJlc3VsdHMgKi9cbiAgICBub1Jlc3VsdHM6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbW9yZSBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld01vcmU6IHN0cmluZztcbiAgICAvKiogVGV4dCBvZiB0aGUgYnV0dG9uIHRvIHNob3cgbGVzcyBkZXRhaWxzLCBpdOKAmXMgdXNlZCB3aGVuIHdlIGxpbWl0IHRoZSBudW1iZXIgb2YgZGV0YWlscyBkaXNwbGF5ZWQgICovXG4gICAgdmlld0xlc3M6IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21tb24gaW50ZXJmYWNlIGZvciB0aGUgTmF2U2VsZWN0b3JcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JCYXNlTm9kZSA9IHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG5vZGUgKi9cbiAgICB1aWQ6IHN0cmluZztcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBhbGlhczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYW4gYWN0aW9uIHRoYXQgY2FuIGJlIHBlcmZvcm1lZCBvbiBhIGxlYWZcbiAqL1xuZXhwb3J0IHR5cGUgTmF2U2VsZWN0b3JMZWFmQWN0aW9uID0ge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uLCB1c2VkIGZvciBjbGljayB0cmFja2luZyAqL1xuICAgIGlkOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBBY3Rpb24gbGFiZWwgdG8gZGlzcGxheSAqL1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgLyoqIFRlY2huaWNhbCBuYW1lIG9mIHRoZSBhY3Rpb24sIHVzZWQgdG8gaWRlbnRpZnkgdGhlIGFjdGlvbiAqL1xuICAgIG5hbWU6IHN0cmluZztcbiAgICAvKiogT3B0aW9uYWwgaWNvbiB0byBkaXNwbGF5IG9uIHRoZSBhY3Rpb24gKi9cbiAgICBpY29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBPcHRpb25hbCBTdGF0dXMgKi9cbiAgICBzdGF0dXM6ICdkaXNhYmxlZCcgfCAnbG9ja2VkJyB8IG51bGw7XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBmaW5hbCBlbnRyeSBvZiB0aGUgbmF2IHNlbGVjdG9yXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yTGVhZiA9IHtcbiAgICBwaWN0dXJlVXJsOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGVudHJ5LCB0byBpZ25vcmUgaWYgdGhlIGxlYWYgaGFzIGRldGFpbHMgKi9cbiAgICBjb3VudGVyOiBudW1iZXIgfCBudWxsO1xuICAgIC8qKiBXaGVuIHRydWUsIHRoZSBsZWFmIHdpbGwgYmUgaGlkZGVuICovXG4gICAgbWlzc2luZ1Blcm1pc3Npb246IGJvb2xlYW47XG4gICAgLyoqIEZvciBzb2NpYWwgcHJvZmlsZXMgb3IgYWQgYWNjb3VudHMgdGhlIGNvcnJlc3BvbmRpbmcgbmV0d29yayAqL1xuICAgIG5ldHdvcms6IEF2YXRhck5ldHdvcmsgfCBudWxsO1xuICAgIC8qKiBUcmFuc2xhdGVkIHRleHQgd2hlbiB0aGUgZW50cnkgaXMgZGlzYWJsZWQgKi9cbiAgICBkaXNhYmxlUmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaGFzIGl0cyB0b2tlbiBpbnZhbGlkICovXG4gICAgdG9rZW5JbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgZW50cnkgaXMgbG9ja2VkICovXG4gICAgZmVhdHVyZUxvY2tlZDogYm9vbGVhbjtcbiAgICAvKiogU3ViIGVsZW1lbnRzIG9mIHRoZSBsZWFmLCB0aGV5IGFyZSBvcHRpb25hbCAqL1xuICAgIGRldGFpbHM6IE5hdlNlbGVjdG9yTGVhZkRldGFpbHNbXTtcbiAgICAvKiogT3B0aW9uYWwgYWN0aW9ucyB0aGF0IGNhbiBiZSBwZXJmb3JtZWQgb24gdGhlIGxlYWYgKi9cbiAgICBhY3Rpb25zOiBOYXZTZWxlY3RvckxlYWZBY3Rpb25bXTtcbiAgICB0eXBlOiAnTEVBRic7XG59ICYgTmF2U2VsZWN0b3JCYXNlTm9kZTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBncm91cCBvZiBlbnRyaWVzIHdoaWNoIGhhcyBiZWVuIGNyZWF0ZWQgYnkgdGhlIHVzZXIgKGV4OiBtZW51R3JvdXApXG4gKi9cbmV4cG9ydCB0eXBlIE5hdlNlbGVjdG9yR3JvdXAgPSB7XG4gICAgLyoqIEEgZ3JvdXAgY2FuIG9ubHkgaGF2ZSBsZWF2ZXMgYXMgY2hpbGRyZW4gKi9cbiAgICBjaGlsZHJlbjogTmF2U2VsZWN0b3JMZWFmW107XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgc2hvdWxkIGJlIGZvbGRlZCBvciBleHBhbmRlZCB3aGVuIGdlbmVyYXRpbmcgdGhlIG5hdiBzZWxlY3RvciAqL1xuICAgIGZvbGRlZDogYm9vbGVhbjtcbiAgICB0eXBlOiAnR1JPVVAnO1xufSAmIE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGEgY2F0ZWdvcnkgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSBwcm9kdWN0IHRvIHNlcGFyYXRlIGRpZmZlcmVudCBraW5kIG9mIGVudHJpZXMgKGV4OiBzb2NpYWwgcHJvZmlsZXMsIHJlcG9ydHMsIGFkIGFjY291bnRz4oCmKVxuICovXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckNhdGVnb3J5ID0ge1xuICAgIC8qKiBBIENhdGVnb3J5IGNhbiBoYXZlIGxlYXZlcyBvciBncm91cHMgYXMgY2hpbGRyZW4sIHlvdSBjYW4gaGF2ZSBsZWF2ZXMgYWxvbmdzaWRlIHdpdGggZ3JvdXBzICovXG4gICAgY2hpbGRyZW46IChOYXZTZWxlY3RvckxlYWYgfCBOYXZTZWxlY3Rvckdyb3VwKVtdO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGdyb3VwIHNob3VsZCBiZSBmb2xkZWQgb3IgZXhwYW5kZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSBuYXYgc2VsZWN0b3IgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgdHlwZTogJ0NBVEVHT1JZJztcbn0gJiBOYXZTZWxlY3RvckJhc2VOb2RlO1xuXG5leHBvcnQgdHlwZSBOYXZTZWxlY3RvckVudHJ5ID0gTmF2U2VsZWN0b3JMZWFmIHwgTmF2U2VsZWN0b3JHcm91cCB8IE5hdlNlbGVjdG9yQ2F0ZWdvcnk7XG5cbi8qKlxuICogUmVwcmVzZW50IGRldGFpbHMgb2YgYSBsZWFmLCB0aGV5IGFyZSB1c2VkIHRvIGFsbG93IHRvIGRpc3BsYXkgbW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGVhZlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5hdlNlbGVjdG9yTGVhZkRldGFpbHMge1xuICAgIC8qKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgbm9kZSAqL1xuICAgIHVpZDogc3RyaW5nO1xuICAgIC8qKiBDb3VudGVyIHRvIGRpc3BsYXkgb24gdGhlIGVudHJ5ICovXG4gICAgY291bnRlcjogbnVtYmVyIHwgbnVsbDtcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIFRyYW5zbGF0aW9uIG9mIHRoZSBlcnJvciBvbiB0aGUgbGVhZiAqL1xuICAgIGVycm9yUmVhc29uOiBzdHJpbmcgfCBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgaXNOYXZTZWxlY3RvckVudHJ5QUxlYWYgPSAoZW50cnk6IE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBOYXZTZWxlY3RvckxlYWYgPT4gZW50cnkudHlwZSA9PT0gJ0xFQUYnO1xuXG5leHBvcnQgY29uc3QgaXNOYXZTZWxlY3RvckVudHJ5QUdyb3VwID0gKGVudHJ5OiBOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgTmF2U2VsZWN0b3JHcm91cCA9PiBlbnRyeS50eXBlID09PSAnR1JPVVAnO1xuXG5leHBvcnQgY29uc3QgaXNOYXZTZWxlY3RvckVudHJ5QUNhdGVnb3J5ID0gKGVudHJ5OiBOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgTmF2U2VsZWN0b3JDYXRlZ29yeSA9PiBlbnRyeS50eXBlID09PSAnQ0FURUdPUlknO1xuXG4vKipcbiAqIFJlcHJlc2VudCB0aGUgYWNjZXNzaWJpbGl0eSBvbiBhIG5vZGVcbiAqL1xuZXhwb3J0IHR5cGUgTm9kZUFjY2Vzc2liaWxpdHkgPSB7XG4gICAgLyoqIE51bWJlciBvZiBzaWJsaW5nIGVsZW1lbnRzLCBpdHNlbGYgaW5jbHVkZWQuIEV4OiB0aGVyZSBhcmUgNyBzb2NpYWwgcHJvZmlsZXMgZGlzcGxheSBpbiB0aGUgZ3JvdXAgKi9cbiAgICBhcmlhU2V0c2l6ZTogbnVtYmVyO1xuICAgIC8qKiBJbmRleCBzdGFydGluZyBmcm9tIDEgb2YgdGhlIGVsZW1lbnQgYWxvbmdzaWRlIGl0cyBzaWJsaW5nICovXG4gICAgYXJpYVBvc2luc2V0OiBudW1iZXI7XG4gICAgLyoqIDAgdG8gYmUgZm9jdXNhYmxlIGJ5IFRhYiBrZXkgYW5kIC0xIHRvIGJlIGZvY3VzYWJsZSBieSBrZXlib2FyZCB3aXRoIEpTICovXG4gICAgdGFiSW5kZXg6IG51bWJlcjtcbiAgICAvKiogSW4gYSB0cmVlLCB0aGUgZGVlcCBsZXZlbCwgc3RhcnRpbmcgZnJvbSAxICovXG4gICAgYXJpYUxldmVsOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkFjdGlvbiA9IHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGFjdGlvbiwgdXNlZCBmb3IgY2xpY2sgdHJhY2tpbmcgKi9cbiAgICBpZDogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogQWN0aW9uIGxhYmVsIHRvIGRpc3BsYXkgKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIC8qKiBUZWNobmljYWwgbmFtZSBvZiB0aGUgYWN0aW9uLCB1c2VkIHRvIGlkZW50aWZ5IHRoZSBhY3Rpb24gKi9cbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLyoqIE9wdGlvbmFsIGljb24gdG8gZGlzcGxheSBvbiB0aGUgYWN0aW9uICovXG4gICAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgICAvKiogT3B0aW9uYWwgU3RhdHVzICovXG4gICAgc3RhdHVzOiAnZGlzYWJsZWQnIHwgJ2xvY2tlZCcgfCBudWxsO1xufTtcblxuLyoqXG4gKiBSZXByZXNlbnQgYSBub2RlXG4gKi9cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JCYXNlTm9kZSA9IHtcbiAgICAvKiogVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGVudHJ5ICovXG4gICAgdWlkOiBzdHJpbmc7XG4gICAgLyoqIERpc3BsYXllZCBuYW1lIG9mIHRoZSBlbnRyeSAqL1xuICAgIGFsaWFzOiBzdHJpbmc7XG4gICAgYWNjZXNzaWJpbGl0eTogTm9kZUFjY2Vzc2liaWxpdHk7XG4gICAgLyoqIFdoZW4gaGlkZGVuLCB0aGUgZW50cnkgaXMgbm90IGRpc3BsYXllZCwgdXNlZCB3aGVuIHNlYXJjaGluZyBhbiBlbGVtZW50ICovXG4gICAgaGlkZGVuOiBib29sZWFuO1xuICAgIC8qKiBXaGVuIHRydWUsIHlvdSBjYW4gbmF2aWdhdGUgd2l0aCBhcnJvdyBrZXlzIG9uIHRoaXMgZW50cnkgKi9cbiAgICBmb2N1c2FibGU6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIFJlcHJlc2VudCBhIGdyb3VwIG9mIGVudHJpZXMgd2hpY2ggaGFzIGJlZW4gY3JlYXRlZCBieSB0aGUgdXNlciAoZXg6IG1lbnVHcm91cClcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwID0ge1xuICAgIC8qKiBBIGdyb3VwIGNhbiBvbmx5IGhhdmUgbGVhdmVzIGFzIGNoaWxkcmVuICovXG4gICAgY2hpbGRyZW46IEludGVybmFsTmF2U2VsZWN0b3JMZWFmW107XG4gICAgLyoqIFBpY3R1cmUgdXJsIG9mIHRoZSBncm91cCwgdXNlZCB3aGVuIHRoZSBuYXYgc2VsZWN0b3IgaXMgbWluaWZpZWQgKi9cbiAgICBjaGlsZHJlblBpY3R1cmVVcmxTYW1wbGU6IHsgdXJsOiBzdHJpbmcgfCBudWxsOyBpbml0aWFsOiBzdHJpbmcgfVtdO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hlbmV2ZXIgdGhlIGdyb3VwIGlzIGZvbGRlZCBvciBub3QgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyB0aGUgY291bnRlciB2YWx1ZSB0byBkaXNwbGF5IHdoZW4gdGhlIGdyb3VwIGlzIGZvbGRlZCAqL1xuICAgIGNvdW50ZXI6IG51bWJlcjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBjb3VudGVyIHNob3VsZCBiZSBkaXNwbGF5IHdoZW4gdGhlIGdyb3VwIGlzIGZvbGRlZCAqL1xuICAgIGRpc3BsYXlDb3VudGVyOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIHRva2VuIGludmFsaWQgaWNvbiBzaG91bGQgYmUgZGlzcGxheSB3aGVuIHRoZSBncm91cCBpcyBmb2xkZWQgKi9cbiAgICBkaXNwbGF5VG9rZW5JbnZhbGlkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaW4gbXVsdGkgc2VsZWN0IG1vZGUgaWYgdGhlIGdyb3VwIGhhcyBzb21lIGNoaWxkcmVuIHNlbGVjdGVkICovXG4gICAgdW5kZXRlcm1pbmVkU2VsZWN0aW9uOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGdyb3VwIGlzIHNlbGVjdGVkICovXG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgZ3JvdXAgaXMgc2VsZWN0YWJsZSAqL1xuICAgIHNlbGVjdGFibGU6IGJvb2xlYW47XG4gICAgdHlwZTogJ0dST1VQJztcbn0gJiBJbnRlcm5hbE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGEgY2F0ZWdvcnkgb2YgZW50cmllcyB3aGljaCBoYXMgYmVlbiBjcmVhdGVkIGJ5IHRoZSBwcm9kdWN0IHRvIHNlcGFyYXRlIGRpZmZlcmVudCBraW5kIG9mIGVudHJpZXMgKGV4OiBzb2NpYWwgcHJvZmlsZXMsIHJlcG9ydHMsIGFkIGFjY291bnRz4oCmKVxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnkgPSB7XG4gICAgLyoqIEEgQ2F0ZWdvcnkgY2FuIGhhdmUgbGVhdmVzIG9yIGdyb3VwcyBhcyBjaGlsZHJlbiwgeW91IGNhbiBoYXZlIGxlYXZlcyBhbG9uZ3NpZGUgd2l0aCBncm91cHMgKi9cbiAgICBjaGlsZHJlbjogKEludGVybmFsTmF2U2VsZWN0b3JHcm91cCB8IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKVtdO1xuICAgIC8qKiBJbmRpY2F0ZXMgd2hlbmV2ZXIgdGhlIGNhdGVnb3J5IGlzIGZvbGRlZCBvciBub3QgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgdHlwZTogJ0NBVEVHT1JZJztcbn0gJiBJbnRlcm5hbE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGZpbmFsIGVudHJ5IG9mIHRoZSBuYXYgc2VsZWN0b3JcbiAqL1xuZXhwb3J0IHR5cGUgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYgPSB7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgYWN0aW9ucyBkcm9wZG93biBjb3VsZCBiZSBkaXNwbGF5LiBTaG91bGQgbm90IGJlIGRpc3BsYXkgaWYgdGhlIGxlYWYgaGFzIGFuIGVycm9yIHN0YXR1cy4gKi9cbiAgICBhY3Rpb25zRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIEFjdGlvbnMgdGhhdCBjYW4gYmUgcGVyZm9ybWVkIG9uIHRoZSBsZWFmICovXG4gICAgYWN0aW9uczogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZBY3Rpb25bXTtcbiAgICAvKiogUGljdHVyZSB1cmwgdG8gZGlzcGxheSBvbiB0aGUgYXZhdGFyLCBvcHRpb25hbCAqL1xuICAgIHBpY3R1cmVVcmw6IHN0cmluZyB8IG51bGw7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgY291bnRlciBjb3VsZCBiZSBkaXNwbGF5LiBUaGUgbGVhZiBzaG91bGQgbm90IGJlIGRpc2FibGVkLCBmZWF0dXJlIGxvY2tlZCBvciBoYXMgdG9rZW4gaW52YWxpZCAqL1xuICAgIGNvdW50ZXJEaXNwbGF5YWJsZTogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSB0b2tlbiBpbnZhbGlkIGljb24gc2hvdWxkIGJlIGRpc3BsYXkuIFNvIHdoZW4gZGlzcGxheWFibGUgd2hlbiBubyBkZXRhaWxzIG9yIGZvbGRlZCAqL1xuICAgIGRpc3BsYXlDb3VudGVyOiBib29sZWFuO1xuICAgIC8qKiBDb3VudGVyIHZhbHVlIHRvIGRpc3BsYXkgKi9cbiAgICBjb3VudGVyOiBudW1iZXI7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdG9rZW4gaW52YWxpZCBpY29uIHNob3VsZCBiZSBkaXNwbGF5ICovXG4gICAgZGlzcGxheVRva2VuSW52YWxpZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBmZWF0dXJlIGlzIGxvY2tlZCAqL1xuICAgIGRpc3BsYXlGZWF0dXJlTG9ja2VkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaXMgZGlzYWJsZWQgKi9cbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICAvKiogVGhlIGRpc2FibGVkIHJlYXNvbiB0byBkaXNwbGF5IGluIHRvb2x0aXAgKi9cbiAgICBkaXNhYmxlUmVhc29uOiBzdHJpbmcgfCBudWxsO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGxlYWYgaXMgc2VsZWN0ZWQgKi9cbiAgICBzZWxlY3RlZDogYm9vbGVhbjtcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSBsZWFmIGlzIHNlbGVjdGFibGUgKi9cbiAgICBzZWxlY3RhYmxlOiBib29sZWFuO1xuICAgIC8qKiBGb3Igc29jaWFsIHByb2ZpbGVzIG9yIGFkIGFjY291bnRzLCB0aGUgY29ycmVzcG9uZGluZyBuZXR3b3JrICovXG4gICAgbmV0d29yazogQXZhdGFyTmV0d29yayB8IG51bGw7XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBmb2xkYWJsZS4gU28gd2hlbiBpdCBoYXMgZGV0YWlscyBhbmQgbm8gZXJyb3Igc3RhdHVzICovXG4gICAgZm9sZGFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBpcyBmb2xkZWQgKi9cbiAgICBmb2xkZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBoYXMgb25lIG9mIGl0cyBkZXRhaWxzIHNlbGVjdGVkICovXG4gICAgZGV0YWlsU2VsZWN0ZWQ6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgbGVhZiBoYXMgZGV0YWlscyBhbmQgdGhleSBhcmUgZGlzcGxheWFibGUuIFNvIG5vIGVycm9yIHN0YXR1cyAqL1xuICAgIGRldGFpbHNEaXNwbGF5YWJsZTogYm9vbGVhbjtcbiAgICAvKiogRGV0YWlscyBvZiB0aGUgbGVhZiAqL1xuICAgIGRldGFpbHM6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlsc1tdO1xuICAgIHR5cGU6ICdMRUFGJztcbiAgICAvKiogSW5kaWNhdGVzIGlmIHRoZSB2aWV3IG1vcmUgc2VjdGlvbiBzaG91bGQgYmUgZGlzcGxheSBmb3IgZGV0YWlscyAqL1xuICAgIHZpZXdNb3JlRGlzcGxheWFibGU6IGJvb2xlYW47XG4gICAgLyoqIEluZGljYXRlcyBpZiB0aGUgdmlldyBtb3JlIG9yIHZpZXcgbGVzcyBidXR0b24gaXMgZGlzcGxheWVkICovXG4gICAgdmlld01vcmVEaXNwbGF5ZWQ6IGJvb2xlYW47XG4gICAgLyoqIE51bWJlciBvZiBkZXRhaWxzIHRvIGRpc3BsYXkgd2hlbiB0aGUgdmlldyBtb3JlIGlzIG5vdCBjbGlja2VkICovXG4gICAgdmlld01vcmVEZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcjtcbn0gJiBJbnRlcm5hbE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbi8qKlxuICogUmVwcmVzZW50IGRldGFpbHMgb2YgYSBsZWFmLCB0aGV5IGFyZSB1c2VkIHRvIGFsbG93IHRvIGRpc3BsYXkgbW9yZSBzcGVjaWZpYyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGVhZlxuICovXG5leHBvcnQgdHlwZSBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZkRldGFpbHMgPSB7XG4gICAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBub2RlICovXG4gICAgdWlkOiBzdHJpbmc7XG4gICAgLyoqIENvdW50ZXIgdG8gZGlzcGxheSBvbiB0aGUgZGV0YWlsICovXG4gICAgY291bnRlcjogbnVtYmVyO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGNvdW50ZXIgc2hvdWxkIGJlIGRpc3BsYXkuIFNvIG5vIGVycm9yIG9uIHRoZSBkZXRhaWwgKi9cbiAgICBkaXNwbGF5Q291bnRlcjogYm9vbGVhbjtcbiAgICAvKiogRGlzcGxheWVkIG5hbWUgb2YgdGhlIG5vZGUgKi9cbiAgICBhbGlhczogc3RyaW5nO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgdGhlIGRldGFpbCBpcyBzZWxlY3RlZCAqL1xuICAgIHNlbGVjdGVkOiBib29sZWFuO1xuICAgIC8qKiBJbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGRpc3BsYXkgYW4gZXJyb3IgaWNvbiAqL1xuICAgIGRpc3BsYXlFcnJvcjogYm9vbGVhbjtcbiAgICAvKiogVHJhbnNsYXRlZCB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIHRvb2x0aXAgKi9cbiAgICBlcnJvclJlYXNvbjogc3RyaW5nIHwgbnVsbDtcbiAgICB0eXBlOiAnTEVBRl9ERVRBSUxTJztcbn0gJiBJbnRlcm5hbE5hdlNlbGVjdG9yQmFzZU5vZGU7XG5cbmV4cG9ydCB0eXBlIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSA9XG4gICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZlxuICAgIHwgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwXG4gICAgfCBJbnRlcm5hbE5hdlNlbGVjdG9yQ2F0ZWdvcnlcbiAgICB8IEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlscztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYgPSAoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JMZWFmID0+IGVudHJ5LnR5cGUgPT09ICdMRUFGJztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUgPSAoXG4gICAgZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVxuKTogZW50cnkgaXMgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5IHwgSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwID0+IGBjaGlsZHJlbmAgaW4gZW50cnk7XG5cbmV4cG9ydCBjb25zdCBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFDYXRlZ29yeSA9IChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KTogZW50cnkgaXMgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5ID0+XG4gICAgZW50cnkudHlwZSA9PT0gJ0NBVEVHT1JZJztcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUdyb3VwID0gKGVudHJ5OiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpOiBlbnRyeSBpcyBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAgPT5cbiAgICBlbnRyeS50eXBlID09PSAnR1JPVVAnO1xuXG5leHBvcnQgY29uc3QgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZkRldGFpbHMgPSAoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSk6IGVudHJ5IGlzIEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlscyA9PlxuICAgIGVudHJ5LnR5cGUgPT09ICdMRUFGX0RFVEFJTFMnO1xuIl19
@@ -34,16 +34,17 @@ export class NavSelectorState {
34
34
  search = signal('');
35
35
  noResults = computed(() => this.entries().every(({ hidden }) => hidden));
36
36
  texts = this._texts.asReadonly();
37
- leafActionProjection = signal(undefined);
38
37
  expanded = signal(true);
39
38
  expandedAfterDelay = signal(true);
39
+ previousSelectedUids = [];
40
40
  selectedUidsChangeCallback = null;
41
41
  constructor() {
42
42
  effect(() => {
43
43
  const newSelectedUids = this.collectSelectedUids(this.entries());
44
44
  untracked(() => {
45
- if (this.selectedUidsChangeCallback) {
45
+ if (this.selectedUidsChangeCallback && JSON.stringify(this.previousSelectedUids) !== JSON.stringify(newSelectedUids)) {
46
46
  this.selectedUidsChangeCallback(newSelectedUids);
47
+ this.previousSelectedUids = newSelectedUids;
47
48
  }
48
49
  });
49
50
  });
@@ -189,9 +190,6 @@ export class NavSelectorState {
189
190
  minified: !this.expanded(),
190
191
  };
191
192
  }
192
- updateLeafAction(leafActionProjection) {
193
- this.leafActionProjection.set(leafActionProjection);
194
- }
195
193
  fold(entry) {
196
194
  this.entries.update(entries => NavSelectorFolding.fold(entries, entry.uid, this.getFoldingOptions()));
197
195
  }
@@ -213,4 +211,4 @@ export class NavSelectorState {
213
211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: NavSelectorState, decorators: [{
214
212
  type: Injectable
215
213
  }], ctorParameters: () => [] });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFJSCwrQkFBK0IsRUFDL0IsK0JBQStCLEdBR2xDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVyRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixPQUFPLEdBQUcsTUFBTSxDQUE2QixFQUFFLENBQUMsQ0FBQztJQUN6QyxtQkFBbUIsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxHQUFHLE1BQU0sQ0FBNkI7UUFDaEQsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFB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RSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELDJCQUEyQixDQUFDLHFCQUE2QjtRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLG1DQUFtQyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDNUgsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQzt1R0FqT1EsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgZWZmZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIFRlbXBsYXRlUmVmLCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JMZWFmLFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JMZWFmRGV0YWlscyxcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUsXG4gICAgTmF2U2VsZWN0b3JFbnRyeSxcbiAgICBOYXZTZWxlY3RvclRyYW5zbGF0ZWRUZXh0cyxcbn0gZnJvbSAnLi9uYXYtc2VsZWN0b3InO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IuYWNjZXNzaWJpbGl0eSc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckJ1aWxkZXIgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5idWlsZGVyJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yRmlsdGVyIH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IuZmlsdGVyJztcbmltcG9ydCB7IE5hdlNlbGVjdG9yRm9sZGluZywgTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9ucyB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLmZvbGRpbmcnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JNZXJnZXIgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5tZXJnZXInO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JNaW5pZnlpbmcgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5taW5pZnlpbmcnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JNdWx0aVNlbGVjdCB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLm11bHRpLXNlbGVjdCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdCB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLnNpbmdsZS1zZWxlY3QnO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JWaWV3TW9yZSB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLnZpZXctbW9yZSc7XG5cbi8qKlxuICogTmF2U2VsZWN0b3JTdGF0ZSBpcyBhIHNlcnZpY2UgdGhhdCBtYW5hZ2VzIHRoZSBzdGF0ZSBvZiB0aGUgbmF2IHNlbGVjdG9yLlxuICpcbiAqIEl0IHNob3VsZCBiZSBwcm92aWRlZCBieSB0aGUgY29tcG9uZW50IHRvIGVuc3VyZSB0aGF0IGlmIG1hbnkgbmF2IHNlbGVjdG9ycyBhcmUgdXNlZCBpbiB0aGUgc2FtZSBwYWdlLCB0aGV5IGRvbid0IHNoYXJlIHRoZSBzYW1lIHN0YXRlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmF2U2VsZWN0b3JTdGF0ZSB7XG4gICAgZW50cmllcyA9IHNpZ25hbDxJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXT4oW10pO1xuICAgIHByaXZhdGUgbXVsdGlwbGVNb2RlRW5hYmxlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gICAgcHJpdmF0ZSBfdGV4dHMgPSBzaWduYWw8TmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHM+KHtcbiAgICAgICAgdGl0bGU6ICcnLFxuICAgICAgICBvbmx5OiAnJyxcbiAgICAgICAgdG9rZW5JbnZhbGlkOiAnJyxcbiAgICAgICAgZ3JvdXBUb2tlbkludmFsaWQ6ICcnLFxuICAgICAgICBmZWF0dXJlTG9ja2VkOiAnJyxcbiAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6ICcnLFxuICAgICAgICBub1Jlc3VsdHM6ICcnLFxuICAgICAgICB2aWV3TW9yZTogJycsXG4gICAgICAgIHZpZXdMZXNzOiAnJyxcbiAgICB9KTtcbiAgICBwcml2YXRlIGxhc3RTZWxlY3RlZFVpZHMgPSBzaWduYWw8c3RyaW5nW10+KFtdKTtcblxuICAgIGlzTXVsdGlwbGVNb2RlRW5hYmxlZCA9IHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZDtcbiAgICBzZWFyY2ggPSBzaWduYWw8c3RyaW5nPignJyk7XG5cbiAgICBub1Jlc3VsdHMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmVudHJpZXMoKS5ldmVyeSgoeyBoaWRkZW4gfSkgPT4gaGlkZGVuKSk7XG4gICAgdGV4dHMgPSB0aGlzLl90ZXh0cy5hc1JlYWRvbmx5KCk7XG5cbiAgICBsZWFmQWN0aW9uUHJvamVjdGlvbiA9IHNpZ25hbDxSZWFkb25seUFycmF5PFRlbXBsYXRlUmVmPHVua25vd24+PiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIGV4cGFuZGVkID0gc2lnbmFsKHRydWUpO1xuICAgIGV4cGFuZGVkQWZ0ZXJEZWxheSA9IHNpZ25hbCh0cnVlKTtcblxuICAgIHNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrOiAoKHNlbGVjdGVkVWlkczogc3RyaW5nW10pID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkVWlkcyA9IHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyh0aGlzLmVudHJpZXMoKSk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVaWRzQ2hhbmdlQ2FsbGJhY2sobmV3U2VsZWN0ZWRVaWRzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZpbHRlci5maWx0ZXIoZW50cmllcywgc2VhcmNoLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZU11bHRpTW9kZUVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQuc2V0KGVuYWJsZWQpO1xuICAgIH1cblxuICAgIGluaXRFbnRyaWVzKGVudHJpZXM6IE5hdlNlbGVjdG9yRW50cnlbXSwgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzOiBzdHJpbmdbXSwgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc2V0KE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkcywgZGV0YWlsc0Rpc3BsYXllZExpbWl0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc2V0KE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZChlbnRyaWVzLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM/LlswXSA/PyBudWxsLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUVudHJpZXMoZW50cmllczogTmF2U2VsZWN0b3JFbnRyeVtdLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM6IHN0cmluZ1tdLCBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcikge1xuICAgICAgICBsZXQgbmV3RW50cmllczogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkge1xuICAgICAgICAgICAgbmV3RW50cmllcyA9IE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkcywgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0VudHJpZXMgPSBOYXZTZWxlY3RvckJ1aWxkZXIuYnVpbGQoZW50cmllcywgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzPy5bMF0gPz8gbnVsbCwgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKG9sZEVudHJpZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VFbnRyaWVzID0gTmF2U2VsZWN0b3JNZXJnZXIubWVyZ2VJbnRlcm5hbE5hdlNlbGVjdG9yRW50cmllcyhuZXdFbnRyaWVzLCBvbGRFbnRyaWVzKTtcbiAgICAgICAgICAgIHJldHVybiBOYXZTZWxlY3RvckZpbHRlci5maWx0ZXIobWVyZ2VFbnRyaWVzLCB0aGlzLnNlYXJjaCgpLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uR3JvdXBUb2dnbGVGb2xkaW5nKGdyb3VwOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yRm9sZGluZy50b2dnbGVGb2xkaW5nKGVudHJpZXMsIGdyb3VwLnVpZCwgdGhpcy5nZXRGb2xkaW5nT3B0aW9ucygpKSk7XG4gICAgfVxuXG4gICAgb25Ob2RlU2VsZWN0KG5vZGU6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RJbk11bHRpcGxlTW9kZShlbnRyaWVzLCBub2RlLnVpZCkpO1xuICAgIH1cblxuICAgIG9uTGVhZkNsaWNrZWQobGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpIHtcbiAgICAgICAgaWYgKCFsZWFmLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3Rvck11bHRpU2VsZWN0LnNlbGVjdEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JTaW5nbGVTZWxlY3Quc2VsZWN0KGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkxlYWZUb2dnbGVGb2xkaW5nKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLnRvZ2dsZUZvbGRpbmcoZW50cmllcywgbGVhZi51aWQsIHRoaXMuZ2V0Rm9sZGluZ09wdGlvbnMoKSkpO1xuICAgIH1cblxuICAgIG9uTGVhZkRldGFpbENsaWNrZWQobGVhZkRldGFpbDogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgbGVhZkRldGFpbC51aWQpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0cyh0ZXh0czogTmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHMpIHtcbiAgICAgICAgdGhpcy5fdGV4dHMuc2V0KHRleHRzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RPbmx5TGVhZihsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RPbmx5QUxlYWZJbk11bHRpcGxlTW9kZShlbnRyaWVzLCBsZWFmLnVpZCkpO1xuICAgIH1cblxuICAgIHRvZ2dsZUV4cGFuZGVkKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkLnVwZGF0ZShleHBhbmRlZCA9PiAhZXhwYW5kZWQpO1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBOYXZTZWxlY3Rvck1pbmlmeWluZy5leHBhbmQoZW50cmllcywgdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE5hdlNlbGVjdG9yTWluaWZ5aW5nLm1pbmlmeShlbnRyaWVzLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQoKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmV4cGFuZGVkQWZ0ZXJEZWxheS5zZXQodGhpcy5leHBhbmRlZCgpKSwgMTUwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWRBZnRlckRlbGF5LnNldCh0aGlzLmV4cGFuZGVkKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbWluaWZ5KCkge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JjZU1pbmlmeSgpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZC5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQWZ0ZXJEZWxheS5zZXQodGhpcy5leHBhbmRlZCgpKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+XG4gICAgICAgICAgICBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkucmVzZXRGb2N1cyhOYXZTZWxlY3Rvck1pbmlmeWluZy5taW5pZnkoZW50cmllcywgdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvcmNlRXhwYW5kKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5leHBhbmRlZEFmdGVyRGVsYXkuc2V0KHRoaXMuZXhwYW5kZWQoKSk7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PlxuICAgICAgICAgICAgTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LnJlc2V0Rm9jdXMoTmF2U2VsZWN0b3JNaW5pZnlpbmcuZXhwYW5kKGVudHJpZXMsIHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGlvbkNoYW5nZSh1aWRzOiBzdHJpbmdbXSkge1xuICAgICAgICAvLyBBdm9pZCBpbmZpbml0ZSBsb29wIGlmIHlvdSBwdXQgdW5leGlzdGluZyB1aWRzIGFzIHNlbGVjdCB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIGVudHJpZXMgYnV0IHdpdGggZGlmZmVyZW50IHJlZmVyZW5jZVxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodWlkcykgPT09IEpTT04uc3RyaW5naWZ5KHRoaXMubGFzdFNlbGVjdGVkVWlkcygpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVWlkcy5zZXQodWlkcyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVWlkcyA9IHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyh0aGlzLmVudHJpZXMoKSk7XG4gICAgICAgIGNvbnN0IHVpZFRvU2VsZWN0ID0gdWlkcy5maWx0ZXIodWlkID0+IHNlbGVjdGVkVWlkcy5ldmVyeShzZWxlY3RlZFVpZCA9PiBzZWxlY3RlZFVpZCAhPT0gdWlkKSk7XG4gICAgICAgIGNvbnN0IHVpZFRvVW5zZWxlY3QgPSBzZWxlY3RlZFVpZHMuZmlsdGVyKHVpZCA9PiB1aWRzLmV2ZXJ5KHNlbGVjdGVkVWlkID0+IHNlbGVjdGVkVWlkICE9PSB1aWQpKTtcblxuICAgICAgICBpZiAoIXVpZFRvU2VsZWN0Lmxlbmd0aCAmJiAhdWlkVG9VbnNlbGVjdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbnRyaWVzID0gdGhpcy5lbnRyaWVzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHVpZCBvZiBbLi4udWlkVG9TZWxlY3QsIC4uLnVpZFRvVW5zZWxlY3RdKSB7XG4gICAgICAgICAgICAgICAgZW50cmllcyA9IE5hdlNlbGVjdG9yTXVsdGlTZWxlY3Quc2VsZWN0SW5NdWx0aXBsZU1vZGUoZW50cmllcywgdWlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudHJpZXMgPSBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgdWlkc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbnRyaWVzLnNldChlbnRyaWVzKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uU2VsZWN0ZWRVaWRzQ2hhbmdlKGNhbGxiYWNrOiAoc2VsZWN0ZWRVaWRzOiBzdHJpbmdbXSkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd24oKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkuZm9jdXNOZXh0KGVudHJpZXMpKTtcbiAgICB9XG5cbiAgICBvbkFycm93VXAoKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkuZm9jdXNQcmV2aW91cyhlbnRyaWVzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2xsZWN0U2VsZWN0ZWRVaWRzKGVudHJpZXM6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gZW50cmllcy5mbGF0TWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS5kZXRhaWxzRGlzcGxheWFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRldGFpbHMuZmxhdE1hcChkZXRhaWwgPT4gKGRldGFpbC5zZWxlY3RlZCA/IFtkZXRhaWwudWlkXSA6IFtdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS5zZWxlY3RlZCA/IFtlbnRyeS51aWRdIDogW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyhlbnRyeS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9sZGluZ09wdGlvbnMoKTogTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGU6IHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpLFxuICAgICAgICAgICAgbWluaWZpZWQ6ICF0aGlzLmV4cGFuZGVkKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgdXBkYXRlTGVhZkFjdGlvbihsZWFmQWN0aW9uUHJvamVjdGlvbjogUmVhZG9ubHlBcnJheTxUZW1wbGF0ZVJlZjx1bmtub3duPj4pIHtcbiAgICAgICAgdGhpcy5sZWFmQWN0aW9uUHJvamVjdGlvbi5zZXQobGVhZkFjdGlvblByb2plY3Rpb24pO1xuICAgIH1cblxuICAgIGZvbGQoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLmZvbGQoZW50cmllcywgZW50cnkudWlkLCB0aGlzLmdldEZvbGRpbmdPcHRpb25zKCkpKTtcbiAgICB9XG5cbiAgICB1bmZvbGQoZW50cnk6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLnVuZm9sZChlbnRyaWVzLCBlbnRyeS51aWQsIHRoaXMuZ2V0Rm9sZGluZ09wdGlvbnMoKSkpO1xuICAgIH1cblxuICAgIHVwZGF0ZURldGFpbHNEaXNwbGF5ZWRMaW1pdChkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcikge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JWaWV3TW9yZS5jaGFuZ2VWaWV3TW9yZURldGFpbHNEaXNwbGF5ZWRMaW1pdChlbnRyaWVzLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICB9XG5cbiAgICB2aWV3TW9yZShsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JWaWV3TW9yZS52aWV3TW9yZShlbnRyaWVzLCBsZWFmLnVpZCkpO1xuICAgIH1cblxuICAgIHZpZXdMZXNzKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclZpZXdNb3JlLnZpZXdMZXNzKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgfVxufVxuIl19
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LXNlbGVjdG9yLnN0YXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGlicy91aS1jb21wb25lbnRzL25hdi1zZWxlY3Rvci9zcmMvbmF2LXNlbGVjdG9yLnN0YXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFJSCwrQkFBK0IsRUFDL0IsK0JBQStCLEdBR2xDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUE2QixNQUFNLDhCQUE4QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVyRTs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQUN6QixPQUFPLEdBQUcsTUFBTSxDQUE2QixFQUFFLENBQUMsQ0FBQztJQUN6QyxtQkFBbUIsR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDN0MsTUFBTSxHQUFHLE1BQU0sQ0FBNkI7UUFDaEQsS0FBSyxFQUFFLEVBQUU7UUFDVCxJQUFJLEVBQUUsRUFB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QyxPQUFPLENBQUMsRUFBRSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELDJCQUEyQixDQUFDLHFCQUE2QjtRQUNyRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLG1DQUFtQyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7SUFDNUgsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE2QjtRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDcEYsQ0FBQzt1R0E3TlEsZ0JBQWdCOzJHQUFoQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb21wdXRlZCwgZWZmZWN0LCBJbmplY3RhYmxlLCBzaWduYWwsIHVudHJhY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnksXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzLFxuICAgIGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWYsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTm9kZSxcbiAgICBOYXZTZWxlY3RvckVudHJ5LFxuICAgIE5hdlNlbGVjdG9yVHJhbnNsYXRlZFRleHRzLFxufSBmcm9tICcuL25hdi1zZWxlY3Rvcic7XG5pbXBvcnQgeyBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5hY2Nlc3NpYmlsaXR5JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yQnVpbGRlciB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLmJ1aWxkZXInO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JGaWx0ZXIgfSBmcm9tICcuL3V0aWxzL25hdi1zZWxlY3Rvci5maWx0ZXInO1xuaW1wb3J0IHsgTmF2U2VsZWN0b3JGb2xkaW5nLCBOYXZTZWxlY3RvckZvbGRpbmdPcHRpb25zIH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IuZm9sZGluZyc7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck1lcmdlciB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLm1lcmdlcic7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck1pbmlmeWluZyB9IGZyb20gJy4vdXRpbHMvbmF2LXNlbGVjdG9yLm1pbmlmeWluZyc7XG5pbXBvcnQgeyBOYXZTZWxlY3Rvck11bHRpU2VsZWN0IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3IubXVsdGktc2VsZWN0JztcbmltcG9ydCB7IE5hdlNlbGVjdG9yU2luZ2xlU2VsZWN0IH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3Iuc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQgeyBOYXZTZWxlY3RvclZpZXdNb3JlIH0gZnJvbSAnLi91dGlscy9uYXYtc2VsZWN0b3Iudmlldy1tb3JlJztcblxuLyoqXG4gKiBOYXZTZWxlY3RvclN0YXRlIGlzIGEgc2VydmljZSB0aGF0IG1hbmFnZXMgdGhlIHN0YXRlIG9mIHRoZSBuYXYgc2VsZWN0b3IuXG4gKlxuICogSXQgc2hvdWxkIGJlIHByb3ZpZGVkIGJ5IHRoZSBjb21wb25lbnQgdG8gZW5zdXJlIHRoYXQgaWYgbWFueSBuYXYgc2VsZWN0b3JzIGFyZSB1c2VkIGluIHRoZSBzYW1lIHBhZ2UsIHRoZXkgZG9uJ3Qgc2hhcmUgdGhlIHNhbWUgc3RhdGUuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOYXZTZWxlY3RvclN0YXRlIHtcbiAgICBlbnRyaWVzID0gc2lnbmFsPEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdPihbXSk7XG4gICAgcHJpdmF0ZSBtdWx0aXBsZU1vZGVFbmFibGVkID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwcml2YXRlIF90ZXh0cyA9IHNpZ25hbDxOYXZTZWxlY3RvclRyYW5zbGF0ZWRUZXh0cz4oe1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIG9ubHk6ICcnLFxuICAgICAgICB0b2tlbkludmFsaWQ6ICcnLFxuICAgICAgICBncm91cFRva2VuSW52YWxpZDogJycsXG4gICAgICAgIGZlYXR1cmVMb2NrZWQ6ICcnLFxuICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcjogJycsXG4gICAgICAgIG5vUmVzdWx0czogJycsXG4gICAgICAgIHZpZXdNb3JlOiAnJyxcbiAgICAgICAgdmlld0xlc3M6ICcnLFxuICAgIH0pO1xuICAgIHByaXZhdGUgbGFzdFNlbGVjdGVkVWlkcyA9IHNpZ25hbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgaXNNdWx0aXBsZU1vZGVFbmFibGVkID0gdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkO1xuICAgIHNlYXJjaCA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcblxuICAgIG5vUmVzdWx0cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZW50cmllcygpLmV2ZXJ5KCh7IGhpZGRlbiB9KSA9PiBoaWRkZW4pKTtcbiAgICB0ZXh0cyA9IHRoaXMuX3RleHRzLmFzUmVhZG9ubHkoKTtcblxuICAgIGV4cGFuZGVkID0gc2lnbmFsKHRydWUpO1xuICAgIGV4cGFuZGVkQWZ0ZXJEZWxheSA9IHNpZ25hbCh0cnVlKTtcblxuICAgIHByZXZpb3VzU2VsZWN0ZWRVaWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrOiAoKHNlbGVjdGVkVWlkczogc3RyaW5nW10pID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1NlbGVjdGVkVWlkcyA9IHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyh0aGlzLmVudHJpZXMoKSk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrICYmIEpTT04uc3RyaW5naWZ5KHRoaXMucHJldmlvdXNTZWxlY3RlZFVpZHMpICE9PSBKU09OLnN0cmluZ2lmeShuZXdTZWxlY3RlZFVpZHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRVaWRzQ2hhbmdlQ2FsbGJhY2sobmV3U2VsZWN0ZWRVaWRzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c1NlbGVjdGVkVWlkcyA9IG5ld1NlbGVjdGVkVWlkcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlYXJjaCA9IHRoaXMuc2VhcmNoKCk7XG4gICAgICAgICAgICB1bnRyYWNrZWQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZpbHRlci5maWx0ZXIoZW50cmllcywgc2VhcmNoLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZU11bHRpTW9kZUVuYWJsZWQoZW5hYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQuc2V0KGVuYWJsZWQpO1xuICAgIH1cblxuICAgIGluaXRFbnRyaWVzKGVudHJpZXM6IE5hdlNlbGVjdG9yRW50cnlbXSwgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzOiBzdHJpbmdbXSwgZGV0YWlsc0Rpc3BsYXllZExpbWl0OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc2V0KE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkcywgZGV0YWlsc0Rpc3BsYXllZExpbWl0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMuc2V0KE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZChlbnRyaWVzLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM/LlswXSA/PyBudWxsLCBkZXRhaWxzRGlzcGxheWVkTGltaXQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVwZGF0ZUVudHJpZXMoZW50cmllczogTmF2U2VsZWN0b3JFbnRyeVtdLCBpbml0aWFsU2VsZWN0ZWRFbnRyeVVpZHM6IHN0cmluZ1tdLCBkZXRhaWxzRGlzcGxheWVkTGltaXQ6IG51bWJlcikge1xuICAgICAgICBsZXQgbmV3RW50cmllczogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5W107XG4gICAgICAgIGlmICh0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSkge1xuICAgICAgICAgICAgbmV3RW50cmllcyA9IE5hdlNlbGVjdG9yQnVpbGRlci5idWlsZEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGluaXRpYWxTZWxlY3RlZEVudHJ5VWlkcywgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG5ld0VudHJpZXMgPSBOYXZTZWxlY3RvckJ1aWxkZXIuYnVpbGQoZW50cmllcywgaW5pdGlhbFNlbGVjdGVkRW50cnlVaWRzPy5bMF0gPz8gbnVsbCwgZGV0YWlsc0Rpc3BsYXllZExpbWl0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKG9sZEVudHJpZXMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWVyZ2VFbnRyaWVzID0gTmF2U2VsZWN0b3JNZXJnZXIubWVyZ2VJbnRlcm5hbE5hdlNlbGVjdG9yRW50cmllcyhuZXdFbnRyaWVzLCBvbGRFbnRyaWVzKTtcbiAgICAgICAgICAgIHJldHVybiBOYXZTZWxlY3RvckZpbHRlci5maWx0ZXIobWVyZ2VFbnRyaWVzLCB0aGlzLnNlYXJjaCgpLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uR3JvdXBUb2dnbGVGb2xkaW5nKGdyb3VwOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnkpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yRm9sZGluZy50b2dnbGVGb2xkaW5nKGVudHJpZXMsIGdyb3VwLnVpZCwgdGhpcy5nZXRGb2xkaW5nT3B0aW9ucygpKSk7XG4gICAgfVxuXG4gICAgb25Ob2RlU2VsZWN0KG5vZGU6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RJbk11bHRpcGxlTW9kZShlbnRyaWVzLCBub2RlLnVpZCkpO1xuICAgIH1cblxuICAgIG9uTGVhZkNsaWNrZWQobGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpIHtcbiAgICAgICAgaWYgKCFsZWFmLnNlbGVjdGFibGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3Rvck11bHRpU2VsZWN0LnNlbGVjdEluTXVsdGlwbGVNb2RlKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JTaW5nbGVTZWxlY3Quc2VsZWN0KGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkxlYWZUb2dnbGVGb2xkaW5nKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSkge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JGb2xkaW5nLnRvZ2dsZUZvbGRpbmcoZW50cmllcywgbGVhZi51aWQsIHRoaXMuZ2V0Rm9sZGluZ09wdGlvbnMoKSkpO1xuICAgIH1cblxuICAgIG9uTGVhZkRldGFpbENsaWNrZWQobGVhZkRldGFpbDogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWZEZXRhaWxzKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgbGVhZkRldGFpbC51aWQpKTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0cyh0ZXh0czogTmF2U2VsZWN0b3JUcmFuc2xhdGVkVGV4dHMpIHtcbiAgICAgICAgdGhpcy5fdGV4dHMuc2V0KHRleHRzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RPbmx5TGVhZihsZWFmOiBJbnRlcm5hbE5hdlNlbGVjdG9yTGVhZikge1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4gTmF2U2VsZWN0b3JNdWx0aVNlbGVjdC5zZWxlY3RPbmx5QUxlYWZJbk11bHRpcGxlTW9kZShlbnRyaWVzLCBsZWFmLnVpZCkpO1xuICAgIH1cblxuICAgIHRvZ2dsZUV4cGFuZGVkKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkLnVwZGF0ZShleHBhbmRlZCA9PiAhZXhwYW5kZWQpO1xuICAgICAgICB0aGlzLmVudHJpZXMudXBkYXRlKGVudHJpZXMgPT4ge1xuICAgICAgICAgICAgaWYgKHRoaXMuZXhwYW5kZWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBOYXZTZWxlY3Rvck1pbmlmeWluZy5leHBhbmQoZW50cmllcywgdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIE5hdlNlbGVjdG9yTWluaWZ5aW5nLm1pbmlmeShlbnRyaWVzLCB0aGlzLm11bHRpcGxlTW9kZUVuYWJsZWQoKSk7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXRoaXMuZXhwYW5kZWQoKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmV4cGFuZGVkQWZ0ZXJEZWxheS5zZXQodGhpcy5leHBhbmRlZCgpKSwgMTUwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXhwYW5kZWRBZnRlckRlbGF5LnNldCh0aGlzLmV4cGFuZGVkKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbWluaWZ5KCkge1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCgpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZUV4cGFuZGVkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmb3JjZU1pbmlmeSgpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZC5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQWZ0ZXJEZWxheS5zZXQodGhpcy5leHBhbmRlZCgpKTtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+XG4gICAgICAgICAgICBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkucmVzZXRGb2N1cyhOYXZTZWxlY3Rvck1pbmlmeWluZy5taW5pZnkoZW50cmllcywgdGhpcy5tdWx0aXBsZU1vZGVFbmFibGVkKCkpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZvcmNlRXhwYW5kKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5leHBhbmRlZEFmdGVyRGVsYXkuc2V0KHRoaXMuZXhwYW5kZWQoKSk7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PlxuICAgICAgICAgICAgTmF2U2VsZWN0b3JBY2Nlc3NpYmlsaXR5LnJlc2V0Rm9jdXMoTmF2U2VsZWN0b3JNaW5pZnlpbmcuZXhwYW5kKGVudHJpZXMsIHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGlvbkNoYW5nZSh1aWRzOiBzdHJpbmdbXSkge1xuICAgICAgICAvLyBBdm9pZCBpbmZpbml0ZSBsb29wIGlmIHlvdSBwdXQgdW5leGlzdGluZyB1aWRzIGFzIHNlbGVjdCB3aWxsIGdlbmVyYXRlIHRoZSBzYW1lIGVudHJpZXMgYnV0IHdpdGggZGlmZmVyZW50IHJlZmVyZW5jZVxuICAgICAgICBpZiAoSlNPTi5zdHJpbmdpZnkodWlkcykgPT09IEpTT04uc3RyaW5naWZ5KHRoaXMubGFzdFNlbGVjdGVkVWlkcygpKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGFzdFNlbGVjdGVkVWlkcy5zZXQodWlkcyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkVWlkcyA9IHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyh0aGlzLmVudHJpZXMoKSk7XG4gICAgICAgIGNvbnN0IHVpZFRvU2VsZWN0ID0gdWlkcy5maWx0ZXIodWlkID0+IHNlbGVjdGVkVWlkcy5ldmVyeShzZWxlY3RlZFVpZCA9PiBzZWxlY3RlZFVpZCAhPT0gdWlkKSk7XG4gICAgICAgIGNvbnN0IHVpZFRvVW5zZWxlY3QgPSBzZWxlY3RlZFVpZHMuZmlsdGVyKHVpZCA9PiB1aWRzLmV2ZXJ5KHNlbGVjdGVkVWlkID0+IHNlbGVjdGVkVWlkICE9PSB1aWQpKTtcblxuICAgICAgICBpZiAoIXVpZFRvU2VsZWN0Lmxlbmd0aCAmJiAhdWlkVG9VbnNlbGVjdC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBlbnRyaWVzID0gdGhpcy5lbnRyaWVzKCk7XG5cbiAgICAgICAgaWYgKHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHVpZCBvZiBbLi4udWlkVG9TZWxlY3QsIC4uLnVpZFRvVW5zZWxlY3RdKSB7XG4gICAgICAgICAgICAgICAgZW50cmllcyA9IE5hdlNlbGVjdG9yTXVsdGlTZWxlY3Quc2VsZWN0SW5NdWx0aXBsZU1vZGUoZW50cmllcywgdWlkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGVudHJpZXMgPSBOYXZTZWxlY3RvclNpbmdsZVNlbGVjdC5zZWxlY3QoZW50cmllcywgdWlkc1swXSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbnRyaWVzLnNldChlbnRyaWVzKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uU2VsZWN0ZWRVaWRzQ2hhbmdlKGNhbGxiYWNrOiAoc2VsZWN0ZWRVaWRzOiBzdHJpbmdbXSkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkVWlkc0NoYW5nZUNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgb25BcnJvd0Rvd24oKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkuZm9jdXNOZXh0KGVudHJpZXMpKTtcbiAgICB9XG5cbiAgICBvbkFycm93VXAoKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckFjY2Vzc2liaWxpdHkuZm9jdXNQcmV2aW91cyhlbnRyaWVzKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb2xsZWN0U2VsZWN0ZWRVaWRzKGVudHJpZXM6IEludGVybmFsTmF2U2VsZWN0b3JFbnRyeVtdKTogc3RyaW5nW10ge1xuICAgICAgICByZXR1cm4gZW50cmllcy5mbGF0TWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgIGlmIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGVudHJ5KSkge1xuICAgICAgICAgICAgICAgIGlmIChlbnRyeS5kZXRhaWxzRGlzcGxheWFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVudHJ5LmRldGFpbHMuZmxhdE1hcChkZXRhaWwgPT4gKGRldGFpbC5zZWxlY3RlZCA/IFtkZXRhaWwudWlkXSA6IFtdKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBlbnRyeS5zZWxlY3RlZCA/IFtlbnRyeS51aWRdIDogW107XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QU5vZGUoZW50cnkpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29sbGVjdFNlbGVjdGVkVWlkcyhlbnRyeS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9sZGluZ09wdGlvbnMoKTogTmF2U2VsZWN0b3JGb2xkaW5nT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBtdWx0aXBsZU1vZGU6IHRoaXMubXVsdGlwbGVNb2RlRW5hYmxlZCgpLFxuICAgICAgICAgICAgbWluaWZpZWQ6ICF0aGlzLmV4cGFuZGVkKCksXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZm9sZChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZvbGRpbmcuZm9sZChlbnRyaWVzLCBlbnRyeS51aWQsIHRoaXMuZ2V0Rm9sZGluZ09wdGlvbnMoKSkpO1xuICAgIH1cblxuICAgIHVuZm9sZChlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5KSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvckZvbGRpbmcudW5mb2xkKGVudHJpZXMsIGVudHJ5LnVpZCwgdGhpcy5nZXRGb2xkaW5nT3B0aW9ucygpKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlRGV0YWlsc0Rpc3BsYXllZExpbWl0KGRldGFpbHNEaXNwbGF5ZWRMaW1pdDogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclZpZXdNb3JlLmNoYW5nZVZpZXdNb3JlRGV0YWlsc0Rpc3BsYXllZExpbWl0KGVudHJpZXMsIGRldGFpbHNEaXNwbGF5ZWRMaW1pdCkpO1xuICAgIH1cblxuICAgIHZpZXdNb3JlKGxlYWY6IEludGVybmFsTmF2U2VsZWN0b3JMZWFmKSB7XG4gICAgICAgIHRoaXMuZW50cmllcy51cGRhdGUoZW50cmllcyA9PiBOYXZTZWxlY3RvclZpZXdNb3JlLnZpZXdNb3JlKGVudHJpZXMsIGxlYWYudWlkKSk7XG4gICAgfVxuXG4gICAgdmlld0xlc3MobGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYpIHtcbiAgICAgICAgdGhpcy5lbnRyaWVzLnVwZGF0ZShlbnRyaWVzID0+IE5hdlNlbGVjdG9yVmlld01vcmUudmlld0xlc3MoZW50cmllcywgbGVhZi51aWQpKTtcbiAgICB9XG59XG4iXX0=
@@ -1,3 +1,4 @@
1
+ import { isInternalNavSelectorEntryAGroup, isInternalNavSelectorEntryALeaf, isInternalNavSelectorEntryANode, } from '../nav-selector';
1
2
  /**
2
3
  * Create a Record of key/value pairs from an array of objects
3
4
  * @param array
@@ -16,4 +17,13 @@ export const isInternalNavSelectorEntryALeafFocusable = (leaf, { parentFolded, m
16
17
  }
17
18
  return !leaf.disabled;
18
19
  };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL3V0aWxzL2xlYWYudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBWUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFJLEtBQVUsRUFBRSxHQUF3QixFQUFxQixFQUFFLENBQ3RGLEtBQUssQ0FBQyxNQUFNLENBQ1IsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUU7SUFDNUIsYUFBYSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDckQsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQyxFQUNELEVBQXVCLENBQzFCLENBQUM7QUFFTixNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBRyxDQUNwRCxJQUE2QixFQUM3QixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQW9ELEVBQ3pFLEVBQUU7SUFDVCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELElBQUksWUFBWSxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyRixDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDMUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYgfSBmcm9tICcuLi9uYXYtc2VsZWN0b3InO1xuXG4vKipcbiAqIFV0aWxpdHkgdHlwZSB0byBleHRyYWN0IGtleXMgb2YgYW4gb2JqZWN0IHRoYXQgYXJlIG9mIHR5cGUgc3RyaW5nLCBudW1iZXIgb3Igc3ltYm9sIHdoaWNoIGFyZSB0aGUgb25seSB0eXBlIGFsbG93ZWQgaW4gYSBSZWNvcmRcbiAqL1xudHlwZSBBbGxvd2VkS2V5PFQ+ID0gUGljazxcbiAgICBULFxuICAgIHtcbiAgICAgICAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wgPyBLIDogbmV2ZXI7XG4gICAgfVtrZXlvZiBUXVxuPjtcblxuLyoqXG4gKiBDcmVhdGUgYSBSZWNvcmQgb2Yga2V5L3ZhbHVlIHBhaXJzIGZyb20gYW4gYXJyYXkgb2Ygb2JqZWN0c1xuICogQHBhcmFtIGFycmF5XG4gKiBAcGFyYW0ga2V5IGF0dHJpYnV0ZSBvZiB0aGUgb2JqZWN0IHRvIHVzZSBhcyBrZXlcbiAqL1xuZXhwb3J0IGNvbnN0IGFzc29jaWF0ZUJ5ID0gPFQ+KGFycmF5OiBUW10sIGtleToga2V5b2YgQWxsb3dlZEtleTxUPik6IFJlY29yZDxzdHJpbmcsIFQ+ID0+XG4gICAgYXJyYXkucmVkdWNlKFxuICAgICAgICAocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICBwcmV2aW91c1ZhbHVlW2Ake2N1cnJlbnRWYWx1ZVtrZXldfWBdID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIFQ+XG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZGb2N1c2FibGUgPSAoXG4gICAgbGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZSB9OiB7IHBhcmVudEZvbGRlZDogYm9vbGVhbjsgbXVsdGlwbGVNb2RlOiBib29sZWFuIH1cbik6IGJvb2xlYW4gPT4ge1xuICAgIGlmIChwYXJlbnRGb2xkZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobXVsdGlwbGVNb2RlKSB7XG4gICAgICAgIHJldHVybiAhbGVhZi5kaXNhYmxlZCAmJiAhbGVhZi5kaXNwbGF5VG9rZW5JbnZhbGlkICYmICFsZWFmLmRpc3BsYXlGZWF0dXJlTG9ja2VkO1xuICAgIH1cbiAgICByZXR1cm4gIWxlYWYuZGlzYWJsZWQ7XG59O1xuIl19
20
+ export const computeFolded = (entry, children) => {
21
+ // If the entry is not folded, we keep it unfolded
22
+ if (!entry.folded) {
23
+ return false;
24
+ }
25
+ return !children.some(child => (isInternalNavSelectorEntryALeaf(child) && (child.selected || !child.folded)) ||
26
+ (isInternalNavSelectorEntryANode(child) && !child.folded) ||
27
+ (isInternalNavSelectorEntryAGroup(child) && child.undeterminedSelection));
28
+ };
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVhZi51dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvdWktY29tcG9uZW50cy9uYXYtc2VsZWN0b3Ivc3JjL3V0aWxzL2xlYWYudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUtILGdDQUFnQyxFQUNoQywrQkFBK0IsRUFDL0IsK0JBQStCLEdBQ2xDLE1BQU0saUJBQWlCLENBQUM7QUFZekI7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFJLEtBQVUsRUFBRSxHQUF3QixFQUFxQixFQUFFLENBQ3RGLEtBQUssQ0FBQyxNQUFNLENBQ1IsQ0FBQyxhQUFhLEVBQUUsWUFBWSxFQUFFLEVBQUU7SUFDNUIsYUFBYSxDQUFDLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxZQUFZLENBQUM7SUFDckQsT0FBTyxhQUFhLENBQUM7QUFDekIsQ0FBQyxFQUNELEVBQXVCLENBQzFCLENBQUM7QUFFTixNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBRyxDQUNwRCxJQUE2QixFQUM3QixFQUFFLFlBQVksRUFBRSxZQUFZLEVBQW9ELEVBQ3pFLEVBQUU7SUFDVCxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2YsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUNELElBQUksWUFBWSxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyRixDQUFDO0lBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDMUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQ3pCLEtBQTZELEVBQzdELFFBQW9DLEVBQzdCLEVBQUU7SUFDVCxrREFBa0Q7SUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQ2pCLEtBQUssQ0FBQyxFQUFFLENBQ0osQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0UsQ0FBQywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDekQsQ0FBQyxnQ0FBZ0MsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FDL0UsQ0FBQztBQUNOLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIEludGVybmFsTmF2U2VsZWN0b3JFbnRyeSxcbiAgICBJbnRlcm5hbE5hdlNlbGVjdG9yR3JvdXAsXG4gICAgSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBR3JvdXAsXG4gICAgaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTGVhZixcbiAgICBpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFOb2RlLFxufSBmcm9tICcuLi9uYXYtc2VsZWN0b3InO1xuXG4vKipcbiAqIFV0aWxpdHkgdHlwZSB0byBleHRyYWN0IGtleXMgb2YgYW4gb2JqZWN0IHRoYXQgYXJlIG9mIHR5cGUgc3RyaW5nLCBudW1iZXIgb3Igc3ltYm9sIHdoaWNoIGFyZSB0aGUgb25seSB0eXBlIGFsbG93ZWQgaW4gYSBSZWNvcmRcbiAqL1xudHlwZSBBbGxvd2VkS2V5PFQ+ID0gUGljazxcbiAgICBULFxuICAgIHtcbiAgICAgICAgW0sgaW4ga2V5b2YgVF06IFRbS10gZXh0ZW5kcyBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2wgPyBLIDogbmV2ZXI7XG4gICAgfVtrZXlvZiBUXVxuPjtcblxuLyoqXG4gKiBDcmVhdGUgYSBSZWNvcmQgb2Yga2V5L3ZhbHVlIHBhaXJzIGZyb20gYW4gYXJyYXkgb2Ygb2JqZWN0c1xuICogQHBhcmFtIGFycmF5XG4gKiBAcGFyYW0ga2V5IGF0dHJpYnV0ZSBvZiB0aGUgb2JqZWN0IHRvIHVzZSBhcyBrZXlcbiAqL1xuZXhwb3J0IGNvbnN0IGFzc29jaWF0ZUJ5ID0gPFQ+KGFycmF5OiBUW10sIGtleToga2V5b2YgQWxsb3dlZEtleTxUPik6IFJlY29yZDxzdHJpbmcsIFQ+ID0+XG4gICAgYXJyYXkucmVkdWNlKFxuICAgICAgICAocHJldmlvdXNWYWx1ZSwgY3VycmVudFZhbHVlKSA9PiB7XG4gICAgICAgICAgICBwcmV2aW91c1ZhbHVlW2Ake2N1cnJlbnRWYWx1ZVtrZXldfWBdID0gY3VycmVudFZhbHVlO1xuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzVmFsdWU7XG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIFQ+XG4gICAgKTtcblxuZXhwb3J0IGNvbnN0IGlzSW50ZXJuYWxOYXZTZWxlY3RvckVudHJ5QUxlYWZGb2N1c2FibGUgPSAoXG4gICAgbGVhZjogSW50ZXJuYWxOYXZTZWxlY3RvckxlYWYsXG4gICAgeyBwYXJlbnRGb2xkZWQsIG11bHRpcGxlTW9kZSB9OiB7IHBhcmVudEZvbGRlZDogYm9vbGVhbjsgbXVsdGlwbGVNb2RlOiBib29sZWFuIH1cbik6IGJvb2xlYW4gPT4ge1xuICAgIGlmIChwYXJlbnRGb2xkZWQpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBpZiAobXVsdGlwbGVNb2RlKSB7XG4gICAgICAgIHJldHVybiAhbGVhZi5kaXNhYmxlZCAmJiAhbGVhZi5kaXNwbGF5VG9rZW5JbnZhbGlkICYmICFsZWFmLmRpc3BsYXlGZWF0dXJlTG9ja2VkO1xuICAgIH1cbiAgICByZXR1cm4gIWxlYWYuZGlzYWJsZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgY29tcHV0ZUZvbGRlZCA9IChcbiAgICBlbnRyeTogSW50ZXJuYWxOYXZTZWxlY3Rvckdyb3VwIHwgSW50ZXJuYWxOYXZTZWxlY3RvckNhdGVnb3J5LFxuICAgIGNoaWxkcmVuOiBJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlbXVxuKTogYm9vbGVhbiA9PiB7XG4gICAgLy8gSWYgdGhlIGVudHJ5IGlzIG5vdCBmb2xkZWQsIHdlIGtlZXAgaXQgdW5mb2xkZWRcbiAgICBpZiAoIWVudHJ5LmZvbGRlZCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhY2hpbGRyZW4uc29tZShcbiAgICAgICAgY2hpbGQgPT5cbiAgICAgICAgICAgIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFMZWFmKGNoaWxkKSAmJiAoY2hpbGQuc2VsZWN0ZWQgfHwgIWNoaWxkLmZvbGRlZCkpIHx8XG4gICAgICAgICAgICAoaXNJbnRlcm5hbE5hdlNlbGVjdG9yRW50cnlBTm9kZShjaGlsZCkgJiYgIWNoaWxkLmZvbGRlZCkgfHxcbiAgICAgICAgICAgIChpc0ludGVybmFsTmF2U2VsZWN0b3JFbnRyeUFHcm91cChjaGlsZCkgJiYgY2hpbGQudW5kZXRlcm1pbmVkU2VsZWN0aW9uKVxuICAgICk7XG59O1xuIl19