@magicx-eng/ai-autocomplete-angular 0.19.0 → 0.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -2
- package/esm2020/lib/ai-autocomplete/ai-autocomplete.component.mjs +3 -3
- package/esm2020/lib/ai-autocomplete-dropdown/ai-autocomplete-dropdown.component.mjs +3 -3
- package/esm2020/lib/internal/layout/cluster.component.mjs +2 -2
- package/esm2020/lib/internal/layout/grid.component.mjs +3 -3
- package/esm2020/lib/internal/layout/stack.component.mjs +2 -2
- package/esm2020/lib/internal/suggestion-item/suggestion-item.component.mjs +2 -2
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs +11 -11
- package/fesm2015/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs +11 -11
- package/fesm2020/magicx-eng-ai-autocomplete-angular.mjs.map +1 -1
- package/lib/internal/layout/grid.component.d.ts.map +1 -1
- package/lib/internal/suggestion-item/suggestion-item.component.d.ts +1 -1
- package/lib/internal/suggestion-item/suggestion-item.component.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -295,7 +295,7 @@ export class AIAutocompleteDropdownComponent {
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
AIAutocompleteDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AIAutocompleteDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
298
|
-
AIAutocompleteDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AIAutocompleteDropdownComponent, isStandalone: true, selector: "ai-autocomplete-dropdown", inputs: { controller: "controller", showPills: "showPills", showSkipButton: "showSkipButton", showOptionIcons: "showOptionIcons", className: "className", mode: "mode" }, viewQueries: [{ propertyName: "dropdownRootRef", first: true, predicate: ["dropdownRoot"], descendants: true }, { propertyName: "scrollArrowRef", first: true, predicate: ["scrollArrow"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"vm$ | async as vm\"\n #dropdownRoot\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills || vm.showsSkip\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <!-- The scroll + right-edge fade live on this wrapper (not the bar) so\n the skip button stays outside the masked region \u2014 pinned and fully\n opaque while overflowing pills fade under it. Absent in a skip-only\n row (pills rendered elsewhere via pillPlacement inline/hidden). -->\n <span *ngIf=\"vm.showsPills\" class=\"magicx-aia-pill-scroll\" data-aia-pill-scroll=\"\">\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </span>\n <button\n *ngIf=\"vm.showsSkip\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-skip\"\n data-aia-skip=\"\"\n [disabled]=\"vm.skipDisabled\"\n [attr.aria-label]=\"vm.activePillLabel ? 'Skip ' + vm.activePillLabel : 'Skip'\"\n (click)=\"onSkip()\"\n >\n skip\n </button>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n [optionsPosition]=\"vm.optionsPosition\"\n [showIcons]=\"vm.showOptionIcons\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <aia-date-grid\n *ngIf=\"vm.showsDateGrid\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [view]=\"vm.dateView\"\n [selection]=\"vm.dateSelection\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n (previousMonth)=\"onPreviousMonth()\"\n (nextMonth)=\"onNextMonth()\"\n ></aia-date-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n <!-- \"More below\" arrow \u2014 an overlay on the panel, not a section of the\n stack. Shown/positioned by the core's scroll-arrow controller (see\n syncScrollArrow); markup mirrors vanilla's createScrollArrowButton. -->\n <button\n #scrollArrow\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-scroll-arrow\"\n data-aia-scroll-arrow=\"\"\n [attr.aria-label]=\"scrollArrowLabel\"\n aria-hidden=\"true\"\n >\n <svg\n viewBox=\"0 0 16 16\"\n width=\"14\"\n height=\"14\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M4 6.5 8 10.5l4-4\" />\n </svg>\n </button>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .08);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-150);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .25);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-900);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transform-origin:50% 0;transform:scaleY(var(--aia-dropdown-reveal-scale, .02));transition:opacity .4s cubic-bezier(.4,0,.2,1),transform 0s .4s;background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown:has([data-aia-datepicker]){max-width:var(--aia-date-panel-width, 312px)}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto;transform:scaleY(1);transition:opacity .1s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.22,1.28,.36,1)}.magicx-aia-scroll-arrow{position:absolute;left:50%;bottom:var(--aia-scroll-arrow-bottom, 8px);z-index:4;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0 0 0 -16px;padding:0;border:1px solid var(--aia-scroll-arrow-border, var(--aia-dropdown-border, rgba(231, 231, 231, .5)));border-radius:50%;background:var(--aia-scroll-arrow-bg, var(--aia-surface, #ffffff));color:var( --aia-scroll-arrow-color, var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb)) );box-shadow:var(--aia-scroll-arrow-shadow, 0 2px 8px rgba(0, 0, 0, .12));cursor:pointer;pointer-events:none;opacity:0;transition:opacity 1s cubic-bezier(.4,0,.2,1)}.magicx-aia-scroll-arrow[data-aia-visible]{pointer-events:auto;opacity:1}.magicx-aia-scroll-arrow:hover{color:var( --aia-scroll-arrow-color-hover, var(--aia-option-color-selected, var(--aia-color-text-default, #fff)) )}@media (prefers-reduced-motion: reduce){.magicx-aia-scroll-arrow,.magicx-aia-dropdown{transition-duration:0s}}.magicx-aia-dropdown-pillbar{overflow:hidden}.magicx-aia-pill-scroll{display:inline-flex;align-items:center;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-pill-scroll::-webkit-scrollbar{display:none}.magicx-aia-skip{display:inline-flex;align-items:center;margin-inline-start:auto;flex-shrink:0;padding:5px 8px;border:none;border-radius:6px;background:transparent;font-family:inherit;font-size:var(--aia-skip-font-size, 10px);line-height:18px;color:var(--aia-skip-color, var(--aia-footer-hint-color, #505050));cursor:pointer;white-space:nowrap;transition:color .15s ease-out,background-color .15s ease-out}.magicx-aia-skip:hover{color:var(--aia-skip-color-hover, var(--aia-pill-color, var(--aia-color-text-muted, #c1c4cb)));background:var(--aia-skip-hover-bg, var(--aia-option-bg, transparent))}.magicx-aia-skip:disabled{pointer-events:none;cursor:default;opacity:.5}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 0 0 8px;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link{background:var(--aia-footer-brand-pill-bg, var(--aia-surface, #ffffff));border-radius:999px;padding:2px 4px;gap:4px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: PillListComponent, selector: "aia-pill-list", inputs: ["pills", "activePillIndex", "rounded", "loading", "activeSelected"], outputs: ["selectPill"] }, { kind: "component", type: ProductStripComponent, selector: "aia-product-strip", inputs: ["products", "listboxId", "focusable"], outputs: ["select", "focusChange"] }, { kind: "component", type: SuggestionGridComponent, selector: "aia-suggestion-grid", inputs: ["options", "activeIndex", "listboxId", "loading", "groupKey", "optionsPosition", "showIcons"], outputs: ["select", "highlight"] }, { kind: "component", type: DateGridComponent, selector: "aia-date-grid", inputs: ["options", "activeIndex", "listboxId", "view", "selection"], outputs: ["select", "highlight", "previousMonth", "nextMonth"] }, { kind: "component", type: StackComponent, selector: "aia-stack", inputs: ["space", "align"] }, { kind: "component", type: ClusterComponent, selector: "aia-cluster", inputs: ["gap", "align", "justify", "noWrap", "inline"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
298
|
+
AIAutocompleteDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AIAutocompleteDropdownComponent, isStandalone: true, selector: "ai-autocomplete-dropdown", inputs: { controller: "controller", showPills: "showPills", showSkipButton: "showSkipButton", showOptionIcons: "showOptionIcons", className: "className", mode: "mode" }, viewQueries: [{ propertyName: "dropdownRootRef", first: true, predicate: ["dropdownRoot"], descendants: true }, { propertyName: "scrollArrowRef", first: true, predicate: ["scrollArrow"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n *ngIf=\"vm$ | async as vm\"\n #dropdownRoot\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills || vm.showsSkip\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <!-- The scroll + right-edge fade live on this wrapper (not the bar) so\n the skip button stays outside the masked region \u2014 pinned and fully\n opaque while overflowing pills fade under it. Absent in a skip-only\n row (pills rendered elsewhere via pillPlacement inline/hidden). -->\n <span *ngIf=\"vm.showsPills\" class=\"magicx-aia-pill-scroll\" data-aia-pill-scroll=\"\">\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </span>\n <button\n *ngIf=\"vm.showsSkip\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-skip\"\n data-aia-skip=\"\"\n [disabled]=\"vm.skipDisabled\"\n [attr.aria-label]=\"vm.activePillLabel ? 'Skip ' + vm.activePillLabel : 'Skip'\"\n (click)=\"onSkip()\"\n >\n skip\n </button>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n [optionsPosition]=\"vm.optionsPosition\"\n [showIcons]=\"vm.showOptionIcons\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <aia-date-grid\n *ngIf=\"vm.showsDateGrid\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [view]=\"vm.dateView\"\n [selection]=\"vm.dateSelection\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n (previousMonth)=\"onPreviousMonth()\"\n (nextMonth)=\"onNextMonth()\"\n ></aia-date-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n <!-- \"More below\" arrow \u2014 an overlay on the panel, not a section of the\n stack. Shown/positioned by the core's scroll-arrow controller (see\n syncScrollArrow); markup mirrors vanilla's createScrollArrowButton. -->\n <button\n #scrollArrow\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-scroll-arrow\"\n data-aia-scroll-arrow=\"\"\n [attr.aria-label]=\"scrollArrowLabel\"\n aria-hidden=\"true\"\n >\n <svg\n viewBox=\"0 0 16 16\"\n width=\"14\"\n height=\"14\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M4 6.5 8 10.5l4-4\" />\n </svg>\n </button>\n</div>\n", styles: [":where(.magicx-aia){box-sizing:border-box}:where([data-aia-input-wrapper],[data-aia-input-wrapper] *,[data-aia-dropdown],[data-aia-dropdown] *):not(:where(svg,svg *,[data-aia-submit-slot],[data-aia-submit-slot] *)):not(html):not(html):not(html):not(html):not(html),:where([data-aia-input-wrapper],[data-aia-input-wrapper] *,[data-aia-dropdown],[data-aia-dropdown] *):not(:where(svg,svg *,[data-aia-submit-slot],[data-aia-submit-slot] *)):not(html):not(html):not(html):not(html):not(html):before,:where([data-aia-input-wrapper],[data-aia-input-wrapper] *,[data-aia-dropdown],[data-aia-dropdown] *):not(:where(svg,svg *,[data-aia-submit-slot],[data-aia-submit-slot] *)):not(html):not(html):not(html):not(html):not(html):after{all:revert;box-sizing:border-box}:where([data-aia-input-wrapper],[data-aia-dropdown]):not(html):not(html):not(html):not(html):not(html){line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-align:start;text-shadow:none;font-style:normal;font-variant:normal;white-space:normal;visibility:visible;cursor:auto}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .08);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-150);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .25);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-900);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transform-origin:50% 0;transform:scaleY(var(--aia-dropdown-reveal-scale, .02));transition:opacity .4s cubic-bezier(.4,0,.2,1),transform 0s .4s;background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown:has([data-aia-datepicker]){max-width:var(--aia-date-panel-width, 312px)}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto;transform:scaleY(1);transition:opacity .1s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.22,1.28,.36,1)}.magicx-aia-scroll-arrow{position:absolute;left:50%;bottom:var(--aia-scroll-arrow-bottom, 8px);z-index:4;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0 0 0 -16px;padding:0;border:1px solid var(--aia-scroll-arrow-border, var(--aia-dropdown-border, rgba(231, 231, 231, .5)));border-radius:50%;background:var(--aia-scroll-arrow-bg, var(--aia-surface, #ffffff));color:var( --aia-scroll-arrow-color, var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb)) );box-shadow:var(--aia-scroll-arrow-shadow, 0 2px 8px rgba(0, 0, 0, .12));cursor:pointer;pointer-events:none;opacity:0;transition:opacity 1s cubic-bezier(.4,0,.2,1)}.magicx-aia-scroll-arrow[data-aia-visible]{pointer-events:auto;opacity:1}.magicx-aia-scroll-arrow:hover{color:var( --aia-scroll-arrow-color-hover, var(--aia-option-color-selected, var(--aia-color-text-default, #fff)) )}@media (prefers-reduced-motion: reduce){.magicx-aia-scroll-arrow,.magicx-aia-dropdown{transition-duration:0s}}.magicx-aia-dropdown-pillbar{overflow:hidden}.magicx-aia-pill-scroll{display:inline-flex;align-items:center;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-pill-scroll::-webkit-scrollbar{display:none}.magicx-aia-skip{display:inline-flex;align-items:center;margin-inline-start:auto;flex-shrink:0;padding:5px 8px;border:none;border-radius:6px;background:transparent;font-family:inherit;font-size:var(--aia-skip-font-size, 10px);line-height:18px;color:var(--aia-skip-color, var(--aia-footer-hint-color, #505050));cursor:pointer;white-space:nowrap;transition:color .15s ease-out,background-color .15s ease-out}.magicx-aia-skip:hover{color:var(--aia-skip-color-hover, var(--aia-pill-color, var(--aia-color-text-muted, #c1c4cb)));background:var(--aia-skip-hover-bg, var(--aia-option-bg, transparent))}.magicx-aia-skip:disabled{pointer-events:none;cursor:default;opacity:.5}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 0 0 8px;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link{background:var(--aia-footer-brand-pill-bg, var(--aia-surface, #ffffff));border-radius:999px;padding:2px 4px;gap:4px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "component", type: PillListComponent, selector: "aia-pill-list", inputs: ["pills", "activePillIndex", "rounded", "loading", "activeSelected"], outputs: ["selectPill"] }, { kind: "component", type: ProductStripComponent, selector: "aia-product-strip", inputs: ["products", "listboxId", "focusable"], outputs: ["select", "focusChange"] }, { kind: "component", type: SuggestionGridComponent, selector: "aia-suggestion-grid", inputs: ["options", "activeIndex", "listboxId", "loading", "groupKey", "optionsPosition", "showIcons"], outputs: ["select", "highlight"] }, { kind: "component", type: DateGridComponent, selector: "aia-date-grid", inputs: ["options", "activeIndex", "listboxId", "view", "selection"], outputs: ["select", "highlight", "previousMonth", "nextMonth"] }, { kind: "component", type: StackComponent, selector: "aia-stack", inputs: ["space", "align"] }, { kind: "component", type: ClusterComponent, selector: "aia-cluster", inputs: ["gap", "align", "justify", "noWrap", "inline"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
299
299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AIAutocompleteDropdownComponent, decorators: [{
|
|
300
300
|
type: Component,
|
|
301
301
|
args: [{ selector: "ai-autocomplete-dropdown", standalone: true, imports: [
|
|
@@ -306,7 +306,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
306
306
|
DateGridComponent,
|
|
307
307
|
StackComponent,
|
|
308
308
|
ClusterComponent,
|
|
309
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"vm$ | async as vm\"\n #dropdownRoot\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills || vm.showsSkip\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <!-- The scroll + right-edge fade live on this wrapper (not the bar) so\n the skip button stays outside the masked region \u2014 pinned and fully\n opaque while overflowing pills fade under it. Absent in a skip-only\n row (pills rendered elsewhere via pillPlacement inline/hidden). -->\n <span *ngIf=\"vm.showsPills\" class=\"magicx-aia-pill-scroll\" data-aia-pill-scroll=\"\">\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </span>\n <button\n *ngIf=\"vm.showsSkip\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-skip\"\n data-aia-skip=\"\"\n [disabled]=\"vm.skipDisabled\"\n [attr.aria-label]=\"vm.activePillLabel ? 'Skip ' + vm.activePillLabel : 'Skip'\"\n (click)=\"onSkip()\"\n >\n skip\n </button>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n [optionsPosition]=\"vm.optionsPosition\"\n [showIcons]=\"vm.showOptionIcons\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <aia-date-grid\n *ngIf=\"vm.showsDateGrid\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [view]=\"vm.dateView\"\n [selection]=\"vm.dateSelection\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n (previousMonth)=\"onPreviousMonth()\"\n (nextMonth)=\"onNextMonth()\"\n ></aia-date-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n <!-- \"More below\" arrow \u2014 an overlay on the panel, not a section of the\n stack. Shown/positioned by the core's scroll-arrow controller (see\n syncScrollArrow); markup mirrors vanilla's createScrollArrowButton. -->\n <button\n #scrollArrow\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-scroll-arrow\"\n data-aia-scroll-arrow=\"\"\n [attr.aria-label]=\"scrollArrowLabel\"\n aria-hidden=\"true\"\n >\n <svg\n viewBox=\"0 0 16 16\"\n width=\"14\"\n height=\"14\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M4 6.5 8 10.5l4-4\" />\n </svg>\n </button>\n</div>\n", styles: [":where(.magicx-aia,.magicx-aia *,.magicx-aia *::before,.magicx-aia *::after){box-sizing:border-box}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .08);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-150);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .25);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-900);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transform-origin:50% 0;transform:scaleY(var(--aia-dropdown-reveal-scale, .02));transition:opacity .4s cubic-bezier(.4,0,.2,1),transform 0s .4s;background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown:has([data-aia-datepicker]){max-width:var(--aia-date-panel-width, 312px)}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto;transform:scaleY(1);transition:opacity .1s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.22,1.28,.36,1)}.magicx-aia-scroll-arrow{position:absolute;left:50%;bottom:var(--aia-scroll-arrow-bottom, 8px);z-index:4;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0 0 0 -16px;padding:0;border:1px solid var(--aia-scroll-arrow-border, var(--aia-dropdown-border, rgba(231, 231, 231, .5)));border-radius:50%;background:var(--aia-scroll-arrow-bg, var(--aia-surface, #ffffff));color:var( --aia-scroll-arrow-color, var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb)) );box-shadow:var(--aia-scroll-arrow-shadow, 0 2px 8px rgba(0, 0, 0, .12));cursor:pointer;pointer-events:none;opacity:0;transition:opacity 1s cubic-bezier(.4,0,.2,1)}.magicx-aia-scroll-arrow[data-aia-visible]{pointer-events:auto;opacity:1}.magicx-aia-scroll-arrow:hover{color:var( --aia-scroll-arrow-color-hover, var(--aia-option-color-selected, var(--aia-color-text-default, #fff)) )}@media (prefers-reduced-motion: reduce){.magicx-aia-scroll-arrow,.magicx-aia-dropdown{transition-duration:0s}}.magicx-aia-dropdown-pillbar{overflow:hidden}.magicx-aia-pill-scroll{display:inline-flex;align-items:center;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-pill-scroll::-webkit-scrollbar{display:none}.magicx-aia-skip{display:inline-flex;align-items:center;margin-inline-start:auto;flex-shrink:0;padding:5px 8px;border:none;border-radius:6px;background:transparent;font-family:inherit;font-size:var(--aia-skip-font-size, 10px);line-height:18px;color:var(--aia-skip-color, var(--aia-footer-hint-color, #505050));cursor:pointer;white-space:nowrap;transition:color .15s ease-out,background-color .15s ease-out}.magicx-aia-skip:hover{color:var(--aia-skip-color-hover, var(--aia-pill-color, var(--aia-color-text-muted, #c1c4cb)));background:var(--aia-skip-hover-bg, var(--aia-option-bg, transparent))}.magicx-aia-skip:disabled{pointer-events:none;cursor:default;opacity:.5}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 0 0 8px;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link{background:var(--aia-footer-brand-pill-bg, var(--aia-surface, #ffffff));border-radius:999px;padding:2px 4px;gap:4px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\n"] }]
|
|
309
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n *ngIf=\"vm$ | async as vm\"\n #dropdownRoot\n [id]=\"controller.listboxId\"\n role=\"listbox\"\n data-aia-dropdown=\"\"\n [attr.data-aia-loading]=\"vm.isLoading ? '' : null\"\n [attr.data-mode]=\"resolvedMode\"\n [attr.data-options-position]=\"vm.optionsPosition\"\n [attr.data-aia-has-products]=\"vm.products.length > 0 ? '' : null\"\n [class]=\"rootClass\"\n [class.magicx-aia-dropdown-visible]=\"vm.isVisible\"\n (mousedown)=\"preventBlur($event)\"\n>\n <aia-stack space=\"8px\">\n <aia-cluster\n *ngIf=\"vm.showsPills || vm.showsSkip\"\n class=\"magicx-aia-dropdown-pillbar\"\n data-aia-pillbar=\"\"\n [noWrap]=\"true\"\n >\n <!-- The scroll + right-edge fade live on this wrapper (not the bar) so\n the skip button stays outside the masked region \u2014 pinned and fully\n opaque while overflowing pills fade under it. Absent in a skip-only\n row (pills rendered elsewhere via pillPlacement inline/hidden). -->\n <span *ngIf=\"vm.showsPills\" class=\"magicx-aia-pill-scroll\" data-aia-pill-scroll=\"\">\n <aia-pill-list\n [pills]=\"vm.pills\"\n [activePillIndex]=\"0\"\n [activeSelected]=\"vm.isActivePillSelected\"\n [rounded]=\"true\"\n [loading]=\"vm.isLoading\"\n (selectPill)=\"onPillClick($event)\"\n ></aia-pill-list>\n </span>\n <button\n *ngIf=\"vm.showsSkip\"\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-skip\"\n data-aia-skip=\"\"\n [disabled]=\"vm.skipDisabled\"\n [attr.aria-label]=\"vm.activePillLabel ? 'Skip ' + vm.activePillLabel : 'Skip'\"\n (click)=\"onSkip()\"\n >\n skip\n </button>\n </aia-cluster>\n\n <aia-suggestion-grid\n *ngIf=\"vm.showsOptions\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [loading]=\"vm.isLoading\"\n [groupKey]=\"vm.groupKey\"\n [optionsPosition]=\"vm.optionsPosition\"\n [showIcons]=\"vm.showOptionIcons\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n ></aia-suggestion-grid>\n\n <aia-date-grid\n *ngIf=\"vm.showsDateGrid\"\n [options]=\"vm.options\"\n [activeIndex]=\"vm.activeIndex\"\n [listboxId]=\"controller.listboxId\"\n [view]=\"vm.dateView\"\n [selection]=\"vm.dateSelection\"\n (select)=\"onSelect($event)\"\n (highlight)=\"onHighlight($event)\"\n (previousMonth)=\"onPreviousMonth()\"\n (nextMonth)=\"onNextMonth()\"\n ></aia-date-grid>\n\n <div\n *ngIf=\"vm.showsFallbackSkeleton\"\n class=\"magicx-aia-dropdown-skeleton-bars\"\n data-aia-skeleton-bars=\"\"\n >\n <span\n *ngFor=\"let w of fallbackSkeletonBarWidths; trackBy: trackByWidth\"\n class=\"magicx-aia-dropdown-skeleton-bar\"\n [style.width.px]=\"w\"\n ></span>\n </div>\n\n <!-- *ngIf, not just the section's own guard inside the component: the host\n element is an in-flow child of .aia-stack (display:flex; gap:8px), so\n an always-instantiated zero-height host would add a SECOND 8px gap\n between the grid and the footer \u2014 in every dropdown, products or not.\n The grid's --aia-grid-overlap-bottom is tuned for exactly one gap, so\n the footer would land 8px below the band it is meant to cover. -->\n <aia-product-strip\n *ngIf=\"vm.products.length > 0\"\n [products]=\"vm.products\"\n [listboxId]=\"controller.listboxId\"\n [focusable]=\"vm.isVisible\"\n (select)=\"onProductSelect($event)\"\n (focusChange)=\"onProductFocusChange($event)\"\n ></aia-product-strip>\n\n <footer class=\"magicx-aia-footer\" data-aia-footer=\"\">\n <div class=\"magicx-aia-footer-row\">\n <span class=\"magicx-aia-footer-hint-group\">\n <kbd class=\"magicx-aia-footer-key\">{{ vm.footerKey }}</kbd>\n <span class=\"magicx-aia-footer-hint\">{{ vm.footerHint }}</span>\n </span>\n <a\n class=\"magicx-aia-footer-brand-link\"\n [href]=\"brandHref\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <span class=\"magicx-aia-footer-brand\">AI</span>\n <span class=\"magicx-aia-footer-badge\">Autocomplete</span>\n </a>\n </div>\n </footer>\n </aia-stack>\n <!-- \"More below\" arrow \u2014 an overlay on the panel, not a section of the\n stack. Shown/positioned by the core's scroll-arrow controller (see\n syncScrollArrow); markup mirrors vanilla's createScrollArrowButton. -->\n <button\n #scrollArrow\n type=\"button\"\n tabindex=\"-1\"\n class=\"magicx-aia-scroll-arrow\"\n data-aia-scroll-arrow=\"\"\n [attr.aria-label]=\"scrollArrowLabel\"\n aria-hidden=\"true\"\n >\n <svg\n viewBox=\"0 0 16 16\"\n width=\"14\"\n height=\"14\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"1.75\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M4 6.5 8 10.5l4-4\" />\n </svg>\n </button>\n</div>\n", styles: [":where(.magicx-aia){box-sizing:border-box}:where([data-aia-input-wrapper],[data-aia-input-wrapper] *,[data-aia-dropdown],[data-aia-dropdown] *):not(:where(svg,svg *,[data-aia-submit-slot],[data-aia-submit-slot] *)):not(html):not(html):not(html):not(html):not(html),:where([data-aia-input-wrapper],[data-aia-input-wrapper] *,[data-aia-dropdown],[data-aia-dropdown] *):not(:where(svg,svg *,[data-aia-submit-slot],[data-aia-submit-slot] *)):not(html):not(html):not(html):not(html):not(html):before,:where([data-aia-input-wrapper],[data-aia-input-wrapper] *,[data-aia-dropdown],[data-aia-dropdown] *):not(:where(svg,svg *,[data-aia-submit-slot],[data-aia-submit-slot] *)):not(html):not(html):not(html):not(html):not(html):after{all:revert;box-sizing:border-box}:where([data-aia-input-wrapper],[data-aia-dropdown]):not(html):not(html):not(html):not(html):not(html){line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;text-indent:0;text-align:start;text-shadow:none;font-style:normal;font-variant:normal;white-space:normal;visibility:visible;cursor:auto}:where(.magicx-aia){--aia-primitive-neutral-0: #000000;--aia-primitive-neutral-150: #1a1b1d;--aia-primitive-neutral-250: #323232;--aia-primitive-neutral-300: #333539;--aia-primitive-neutral-400: #4a4a4a;--aia-primitive-neutral-500: #505050;--aia-primitive-neutral-700: #b0b0b0;--aia-primitive-neutral-750: #bdbdbd;--aia-primitive-neutral-900: #e7e7e7;--aia-primitive-neutral-1000: #ffffff;--aia-primitive-blue-50: #eef2ff;--aia-primitive-neutral-750-a50: rgba(189, 189, 189, .51);--aia-primitive-neutral-750-a25: rgba(189, 189, 189, .25);--aia-primitive-neutral-750-a35: rgba(189, 189, 189, .35);--aia-primitive-neutral-750-a30: rgba(189, 189, 189, .3);--aia-primitive-neutral-750-a15: rgba(189, 189, 189, .15);--aia-primitive-neutral-750-a105: rgba(189, 189, 189, .105);--aia-primitive-neutral-700-a40: rgba(176, 176, 176, .4);--aia-primitive-neutral-900-a50: rgba(231, 231, 231, .5);--aia-primitive-neutral-400-a50: rgba(74, 74, 74, .5)}:where(.magicx-aia),:where(.magicx-aia[data-mode=\"light\"]){--aia-surface: var(--aia-primitive-neutral-1000);--aia-border: var(--aia-primitive-neutral-700);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .9), 0 1px 2px rgba(16, 24, 40, .05), 0 8px 24px rgba(16, 24, 40, .08);--aia-dropdown-border: var(--aia-primitive-neutral-900-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-300);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a105);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-0);--aia-option-bg: var(--aia-primitive-blue-50);--aia-option-color: var(--aia-primitive-neutral-150);--aia-option-color-selected: var(--aia-primitive-neutral-0);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-0);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #000000);--aia-submit-bg: var(--aia-primitive-neutral-0);--aia-submit-color: var(--aia-primitive-neutral-1000);--aia-color-text-muted: #6b7280;--aia-skeleton-bg: var(--aia-primitive-neutral-750-a25);--aia-streak-rgb: 99, 102, 241;--aia-footer-hint-color: var(--aia-primitive-neutral-500);--aia-footer-brand-color: var(--aia-primitive-neutral-700);--aia-footer-badge-border: var(--aia-primitive-neutral-750-a50)}:where(.magicx-aia[data-mode=\"dark\"]){--aia-surface: var(--aia-primitive-neutral-0);--aia-border: var(--aia-primitive-neutral-500);--aia-shadow: inset 0 1px 0 rgba(255, 255, 255, .06), 0 1px 2px rgba(0, 0, 0, .2), 0 8px 24px rgba(0, 0, 0, .25);--aia-dropdown-border: var(--aia-primitive-neutral-400-a50);--aia-dropdown-shadow: 0 8px 12px rgba(0, 0, 0, .05);--aia-pill-bg: var(--aia-primitive-neutral-750);--aia-pill-color: var(--aia-primitive-neutral-700);--aia-pill-font-size: 16px;--aia-completed-pill-bg: var(--aia-primitive-neutral-750-a15);--aia-completed-pill-bg-active: var(--aia-primitive-neutral-750-a35);--aia-completed-pill-color: var(--aia-primitive-neutral-1000);--aia-option-bg: var(--aia-primitive-neutral-250);--aia-option-color: var(--aia-primitive-neutral-900);--aia-option-color-selected: var(--aia-primitive-neutral-1000);--aia-option-font-size: 16px;--aia-written-text-color: var(--aia-primitive-neutral-1000);--aia-written-text-font-size: 16px;--aia-caret-color: var(--aia-written-text-color, #ffffff);--aia-submit-bg: var(--aia-primitive-neutral-1000);--aia-submit-color: var(--aia-primitive-neutral-0);--aia-color-text-muted: #c1c4cb;--aia-skeleton-bg: var(--aia-primitive-neutral-150);--aia-streak-rgb: 255, 255, 255;--aia-footer-hint-color: var(--aia-primitive-neutral-700);--aia-footer-brand-color: var(--aia-primitive-neutral-500);--aia-footer-badge-border: var(--aia-primitive-neutral-500)}[data-aia-dropdown]{--aia-footer-row-height: 23px;--aia-footer-band: calc(var(--aia-footer-gap, 8px) + var(--aia-footer-row-height, 23px));--aia-grid-scroll-bottom: var(--aia-footer-band);--aia-grid-overlap-bottom: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-lead: 20px;--aia-footer-fade-inset: calc(-1 * var(--aia-footer-fade-lead)) 0 0}[data-aia-dropdown] [data-aia-pillbar] .aia-pill-list{padding-inline:10px}[data-aia-dropdown] [data-aia-pillbar] .aia-pill{justify-content:flex-start;border-inline-width:0;padding-inline:0}[data-aia-dropdown] .aia-grid[data-scroll]{padding-top:var(--aia-grid-scroll-top, 0);padding-bottom:var(--aia-grid-scroll-bottom, 0);margin-top:var(--aia-grid-overlap-top, 0);margin-bottom:var(--aia-grid-overlap-bottom, 0)}[data-aia-dropdown] [data-aia-footer]:before{content:\"\";position:absolute;inset:var(--aia-footer-fade-inset, -20px 0 0);z-index:-1;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--aia-surface, #ffffff))}[data-aia-dropdown][data-aia-surface=glass]{--aia-footer-chip-bg: transparent}[data-aia-dropdown][data-aia-surface=glass] [data-aia-footer]:before{display:none}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown],[data-aia-dropdown][data-options-position=above]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: var(--aia-footer-band);--aia-grid-overlap-top: calc(-1 * (var(--aia-footer-band) + 8px));--aia-footer-fade-inset: 0 0 calc(-1 * var(--aia-footer-fade-lead));transform-origin:50% 100%;top:auto;bottom:100%;margin-top:0;margin-bottom:6px}[data-aia-dropdown][data-aia-has-products]{--aia-grid-scroll-bottom: 0px;--aia-grid-overlap-bottom: 0px;--aia-grid-scroll-top: 0px;--aia-grid-overlap-top: 0px;--aia-footer-fade-lead: 0px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .aia-stack,[data-aia-dropdown][data-options-position=above] .aia-stack{flex-direction:column-reverse}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer],[data-aia-dropdown][data-options-position=above] [data-aia-footer]{padding:0 0 var(--aia-footer-gap, 8px) 8px}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before{background:linear-gradient(to top,transparent,var(--aia-surface, #ffffff))}:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] .magicx-aia-footer,[data-aia-dropdown][data-options-position=above] .magicx-aia-footer{flex-direction:column-reverse}@media (min-width: 769px){[data-aia-dropdown] [data-aia-footer]:before,[data-aia-dropdown][data-options-position=above] [data-aia-footer]:before,:where(.magicx-aia[data-options-position=\"above\"]) [data-aia-dropdown] [data-aia-footer]:before{inset:0;background:var(--aia-surface, #ffffff)}}\n", ".magicx-aia-dropdown{position:absolute;left:0;right:0;top:100%;max-width:544px;margin-top:6px;display:flex;flex-direction:column;box-sizing:border-box;padding:10px 8px;overflow:hidden;container-type:inline-size;z-index:10;opacity:0;pointer-events:none;transform-origin:50% 0;transform:scaleY(var(--aia-dropdown-reveal-scale, .02));transition:opacity .4s cubic-bezier(.4,0,.2,1),transform 0s .4s;background:var(--aia-surface, #ffffff);border:1px solid var(--aia-dropdown-border, rgba(231, 231, 231, .5));border-radius:18px;box-shadow:var(--aia-dropdown-shadow, 0 8px 12px rgba(0, 0, 0, .05))}.magicx-aia-dropdown:has([data-aia-datepicker]){max-width:var(--aia-date-panel-width, 312px)}.magicx-aia-dropdown[data-aia-surface=glass]{background:transparent;border-color:transparent;box-shadow:#fff -3.2px -3.2px 3.2px -3.2px inset,#fff 6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) -6.4px 6.4px 1.6px -8px inset,var(--aia-dropdown-bg, transparent) 6.4px -6.4px 1.6px -8px inset,#ffffff26 -1.6px 0 0 -1.6px inset,#ffffff26 0 -1.6px 0 -1.6px inset,#ffffff4d 0 1.6px inset,#ffffff4d 1.6px 0 inset,inset 0 0 30px 5px #0000000d,#00000014 0 0 30px 2px;backdrop-filter:blur(30px)}.magicx-aia-dropdown-visible{opacity:1;pointer-events:auto;transform:scaleY(1);transition:opacity .1s cubic-bezier(.4,0,.2,1),transform .32s cubic-bezier(.22,1.28,.36,1)}.magicx-aia-scroll-arrow{position:absolute;left:50%;bottom:var(--aia-scroll-arrow-bottom, 8px);z-index:4;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;margin:0 0 0 -16px;padding:0;border:1px solid var(--aia-scroll-arrow-border, var(--aia-dropdown-border, rgba(231, 231, 231, .5)));border-radius:50%;background:var(--aia-scroll-arrow-bg, var(--aia-surface, #ffffff));color:var( --aia-scroll-arrow-color, var(--aia-option-color, var(--aia-color-text-muted, #c1c4cb)) );box-shadow:var(--aia-scroll-arrow-shadow, 0 2px 8px rgba(0, 0, 0, .12));cursor:pointer;pointer-events:none;opacity:0;transition:opacity 1s cubic-bezier(.4,0,.2,1)}.magicx-aia-scroll-arrow[data-aia-visible]{pointer-events:auto;opacity:1}.magicx-aia-scroll-arrow:hover{color:var( --aia-scroll-arrow-color-hover, var(--aia-option-color-selected, var(--aia-color-text-default, #fff)) )}@media (prefers-reduced-motion: reduce){.magicx-aia-scroll-arrow,.magicx-aia-dropdown{transition-duration:0s}}.magicx-aia-dropdown-pillbar{overflow:hidden}.magicx-aia-pill-scroll{display:inline-flex;align-items:center;flex:1 1 auto;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%);-webkit-mask-image:linear-gradient(to right,#000 0,#000 calc(100% - 48px),transparent 100%)}.magicx-aia-pill-scroll::-webkit-scrollbar{display:none}.magicx-aia-skip{display:inline-flex;align-items:center;margin-inline-start:auto;flex-shrink:0;padding:5px 8px;border:none;border-radius:6px;background:transparent;font-family:inherit;font-size:var(--aia-skip-font-size, 10px);line-height:18px;color:var(--aia-skip-color, var(--aia-footer-hint-color, #505050));cursor:pointer;white-space:nowrap;transition:color .15s ease-out,background-color .15s ease-out}.magicx-aia-skip:hover{color:var(--aia-skip-color-hover, var(--aia-pill-color, var(--aia-color-text-muted, #c1c4cb)));background:var(--aia-skip-hover-bg, var(--aia-option-bg, transparent))}.magicx-aia-skip:disabled{pointer-events:none;cursor:default;opacity:.5}.magicx-aia-footer{display:flex;flex-direction:column;gap:8px;padding:var(--aia-footer-gap, 8px) 0 0 8px;position:relative;z-index:3;pointer-events:none}.magicx-aia-footer-row{display:flex;align-items:center;justify-content:space-between}.magicx-aia-footer-hint-group{display:inline-flex;align-items:center;gap:5px}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{pointer-events:auto}.magicx-aia-footer-brand-link{display:inline-flex;align-items:center;gap:2px;text-decoration:none;cursor:pointer;transition:opacity .15s ease-out}.magicx-aia-footer-hint-group,.magicx-aia-footer-brand-link{background:var( --aia-footer-chip-bg, color-mix(in srgb, var(--aia-surface, #ffffff) 65%, transparent) );padding-inline:4px;border-radius:6px}.magicx-aia-footer-brand-link{background:var(--aia-footer-brand-pill-bg, var(--aia-surface, #ffffff));border-radius:999px;padding:2px 4px;gap:4px}.magicx-aia-footer-brand-link:hover{opacity:.7}.magicx-aia-footer-key{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:22px;padding:2px 6px;border:.5px solid var(--aia-footer-hint-color, #505050);border-radius:5px;font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-hint{font-family:inherit;font-size:11px;line-height:18px;color:var(--aia-footer-hint-color, #505050)}.magicx-aia-footer-brand{font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}.magicx-aia-footer-badge{display:inline-flex;align-items:center;height:var(--aia-footer-row-height, 23px);padding:2.5px 5.5px;border:.5px solid var(--aia-footer-badge-border, rgba(189, 189, 189, .51));border-radius:999px;font-family:inherit;font-size:10px;line-height:18px;color:var(--aia-footer-brand-color, #b0b0b0)}@media (max-width: 768px){.magicx-aia-footer-hint-group{display:none}.magicx-aia-footer-row{justify-content:flex-end}}.magicx-aia-dropdown-skeleton-bars{display:flex;flex-direction:column;gap:20px;padding:7px 8px}.magicx-aia-dropdown-skeleton-bar{display:block;height:14px;border-radius:999px;background:var(--aia-skeleton-bg, var(--aia-pill-bg, rgba(189, 189, 189, .25)));opacity:.5;animation:aiaDropdownSkeletonPulse 1.4s ease-in-out infinite}.magicx-aia-dropdown-skeleton-bar:nth-child(2){animation-delay:.15s}.magicx-aia-dropdown-skeleton-bar:nth-child(3){animation-delay:.3s}@keyframes aiaDropdownSkeletonPulse{0%,to{opacity:.5}50%{opacity:.25}}\n"] }]
|
|
310
310
|
}], propDecorators: { controller: [{
|
|
311
311
|
type: Input
|
|
312
312
|
}], showPills: [{
|
|
@@ -326,4 +326,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
326
326
|
type: ViewChild,
|
|
327
327
|
args: ["scrollArrow", { static: false }]
|
|
328
328
|
}] } });
|
|
329
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUtOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHbkIsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixrQkFBa0IsR0FJbkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBbUIsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7O0FBeUNo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Qzs7NkhBeFVVLCtCQUErQjtpSEFBL0IsK0JBQStCLG9lQ2xINUMsbXJLQW9KQSx5OFlEbERJLFlBQVkscVRBQ1osaUJBQWlCLGlLQUNqQixxQkFBcUIsa0pBQ3JCLHVCQUF1QiwwTUFDdkIsaUJBQWlCLGdNQUNqQixjQUFjLGtGQUNkLGdCQUFnQjs0RkFVUCwrQkFBK0I7a0JBcEIzQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFXNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQVNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkF3QmdELGVBQWU7c0JBQXBFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDUyxjQUFjO3NCQUFsRSxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICB0eXBlIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICB0eXBlIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBpbmplY3QsXG4gIHR5cGUgT25DaGFuZ2VzLFxuICB0eXBlIE9uRGVzdHJveSxcbiAgdHlwZSBPbkluaXQsXG4gIHR5cGUgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIHR5cGUgQXBwZWFyYW5jZU1vZGUsXG4gIGF0dGFjaFNjcm9sbEFycm93LFxuICBidWlsZEF0dHJpYnV0aW9uVXJsLFxuICB0eXBlIERhdGVNb250aFZpZXcsXG4gIHR5cGUgRGF0ZVNlbGVjdGlvbixcbiAgZ2V0Rm9vdGVySGludCxcbiAgaXNDYWxlbmRhckZvcm1hdCxcbiAgdHlwZSBQcm9kdWN0LFxuICBTQ1JPTExfQVJST1dfTEFCRUwsXG4gIHR5cGUgU2Nyb2xsQXJyb3dDb250cm9sbGVyLFxuICB0eXBlIFN1Z2dlc3Rpb24sXG4gIHR5cGUgU3VnZ2VzdGlvbk9wdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgQUlBdXRvY29tcGxldGVDb250cm9sbGVyIH0gZnJvbSBcIi4uL2NvbnRyb2xsZXIvYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IERhdGVHcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL2RhdGUtZ3JpZC9kYXRlLWdyaWQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDbHVzdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL2xheW91dC9jbHVzdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3RhY2tDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvbGF5b3V0L3N0YWNrLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGlsbExpc3RDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2R1Y3RTdHJpcENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9wcm9kdWN0LXN0cmlwL3Byb2R1Y3Qtc3RyaXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdWdnZXN0aW9uR3JpZENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9zdWdnZXN0aW9uLWdyaWQvc3VnZ2VzdGlvbi1ncmlkLmNvbXBvbmVudFwiO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25WbSB7XG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIG9wdGlvbnM6IFN1Z2dlc3Rpb25PcHRpb25bXTtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgaXNBY3RpdmVQaWxsU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgc2hvd3NQaWxsczogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIHBpbGxiYXIgZW5kcyBpbiB0aGUgdHJhaWxpbmcgXCJza2lwXCIgYnV0dG9uLiAqL1xuICBzaG93c1NraXA6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlZCBzdGF0ZSBmb3IgdGhlIHNraXAgYnV0dG9uOiBsb2FkaW5nLCBvciB0aGUgcG9zdC1zZWxlY3Rpb24gd2luZG93XG4gICAqIHdoZXJlIGlzTG9hZGluZyBpcyBzdXBwcmVzc2VkIGJ1dCB0aGUgY29yZSdzIHNraXBBY3RpdmVQaWxsKCkgbm8tb3BzLlxuICAgKi9cbiAgc2tpcERpc2FibGVkOiBib29sZWFuO1xuICAvKiogQWN0aXZlIHBpbGwncyBsYWJlbCwgZm9yIHRoZSBza2lwIGJ1dHRvbidzIGFyaWEtbGFiZWwuICovXG4gIGFjdGl2ZVBpbGxMYWJlbDogc3RyaW5nO1xuICBzaG93c09wdGlvbnM6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBjYWxlbmRhciBib2R5IHJlbmRlcnMgaW4gcGxhY2Ugb2YgdGhlIG9wdGlvbnMgZ3JpZC4gKi9cbiAgc2hvd3NEYXRlR3JpZDogYm9vbGVhbjtcbiAgLyoqIFRoZSBtb250aCB0aGUgY2FsZW5kYXIgc2hvd3MuIE51bGwgdW5sZXNzIGBzaG93c0RhdGVHcmlkYC4gKi9cbiAgZGF0ZVZpZXc6IERhdGVNb250aFZpZXcgfCBudWxsO1xuICAvKiogV2hhdCB0aGUgY2FsZW5kYXIgcGFpbnRzIGFzIGFuc3dlcmVkIOKAlCBzZWUgdGhlIGNvcmUncyBgZGF0ZVNlbGVjdGlvbkZvcmAuICovXG4gIGRhdGVTZWxlY3Rpb246IERhdGVTZWxlY3Rpb247XG4gIHNob3dzRmFsbGJhY2tTa2VsZXRvbjogYm9vbGVhbjtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICAvKiogUHJvZHVjdCBjYXJkcyBmb3IgdGhlIHN0cmlwLiBFbXB0eSB1bmxlc3MgYHByb2R1Y3RzYCBpcyBjb25maWd1cmVkLiAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKiogSWRlbnRpdHkgb2YgdGhlIHN1Z2dlc3Rpb24gdGhlIG9wdGlvbnMgYmVsb25nIHRvIOKAlCBkcml2ZXMgdGhlIGdyaWQncyBzY3JvbGwgcmVzZXQuICovXG4gIGdyb3VwS2V5OiBzdHJpbmc7XG4gIGZvb3RlcktleTogc3RyaW5nO1xuICBmb290ZXJIaW50OiBzdHJpbmc7XG4gIG9wdGlvbnNQb3NpdGlvbjogXCJhYm92ZVwiIHwgXCJiZWxvd1wiO1xuICAvKiogV2hldGhlciBvcHRpb24gcm93cyBkcmF3IHRoZWlyIGBpY29uX3N2Z2AgYmVmb3JlIHRoZSB0ZXh0LiAqL1xuICBzaG93T3B0aW9uSWNvbnM6IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgY29udGVudC1iZWFyaW5nIGZpZWxkcyBvZiB0aGUgdmlldy1tb2RlbCAoZXZlcnl0aGluZyBidXQgYGlzVmlzaWJsZWApLiAqL1xudHlwZSBEcm9wZG93bkNvbnRlbnQgPSBPbWl0PERyb3Bkb3duVm0sIFwiaXNWaXNpYmxlXCI+O1xuXG4vKipcbiAqIFRpZXIgMiBkcm9wZG93biBjb21wb25lbnQg4oCUIHRoZSBBbmd1bGFyIGVxdWl2YWxlbnQgb2YgUmVhY3Qnc1xuICogYDxBSUF1dG9jb21wbGV0ZURyb3Bkb3duIC8+YC4gUmVuZGVycyB0aGUgcGlsbGJhciwgb3B0aW9ucyBncmlkLCBhbmRcbiAqIGxvYWRpbmcgc2tlbGV0b24gYmFzZWQgb24gdGhlIHN1cHBsaWVkIGNvbnRyb2xsZXIncyBgZHJvcGRvd24kYCBzbmFwc2hvdC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duIFtjb250cm9sbGVyXT1cImFjXCI+PC9haS1hdXRvY29tcGxldGUtZHJvcGRvd24+XG4gKiBgYGBcbiAqXG4gKiBBbGwgYWN0aW9ucyAocGlsbCBjbGljaywgb3B0aW9uIHNlbGVjdCwgb3B0aW9uIGhpZ2hsaWdodCkgYXJlIGZvcndhcmRlZCB0b1xuICogdGhlIGNvbnRyb2xsZXIuIENvbnN1bWVycyB3aG8gbmVlZCB0byBvYnNlcnZlIHRoZXNlIGV2ZW50cyBjYW4gc3Vic2NyaWJlXG4gKiB0byB0aGUgY29udHJvbGxlcidzIHBlci1maWVsZCBvYnNlcnZhYmxlcy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaS1hdXRvY29tcGxldGUtZHJvcGRvd25cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQaWxsTGlzdENvbXBvbmVudCxcbiAgICBQcm9kdWN0U3RyaXBDb21wb25lbnQsXG4gICAgU3VnZ2VzdGlvbkdyaWRDb21wb25lbnQsXG4gICAgRGF0ZUdyaWRDb21wb25lbnQsXG4gICAgU3RhY2tDb21wb25lbnQsXG4gICAgQ2x1c3RlckNvbXBvbmVudCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIC8vIFRoZSBzaGFyZWQgYXBwZWFyYW5jZSBsYXllciBjYXJyaWVzIHRoZSBkZXNpZ24gdG9rZW5zICsgYm94LXNpemluZyByZXNldCArXG4gIC8vIG9wdGlvbnNQb3NpdGlvbiByZXZlcnNhbCwgc28gYSBzdGFuZGFsb25lIGRyb3Bkb3duIChubyBUaWVyIDEgY29tcG9uZW50IG9uXG4gIC8vIHRoZSBwYWdlKSBpcyBmdWxseSBzdHlsZWQgb25jZSBgbW9kZWAgaXMgc2V0LlxuICBzdHlsZVVybHM6IFtcIi4uL3NoYXJlZC9hcHBlYXJhbmNlLmNzc1wiLCBcIi4vYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEFJQXV0b2NvbXBsZXRlRHJvcGRvd25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95XG57XG4gIC8qKiBUaGUgY29udHJvbGxlciB0aGF0IG93bnMgdGhlIGF1dG9jb21wbGV0ZSBzdGF0ZS4gUmVxdWlyZWQuICovXG4gIEBJbnB1dCgpIGNvbnRyb2xsZXIhOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXI7XG4gIC8qKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgcGlsbGJhciBhYm92ZSB0aGUgb3B0aW9ucyBncmlkLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93UGlsbHMgPSB0cnVlO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcGlsbGJhciBlbmRzIGluIGEgc21hbGwgXCJza2lwXCIgYnV0dG9uIHRoYXQgZGlzbWlzc2VzIHRoZVxuICAgKiBhY3RpdmUgcGlsbCDigJQgc2FtZSBhY3Rpb24gYXMgcHJlc3Npbmcg4oaSIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0LiBJdCBzaXRzXG4gICAqIGF0IHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSBiYXI6IHZpc3VhbGx5IHRvcC1yaWdodCB3aGVuIHRoZSBkcm9wZG93blxuICAgKiBvcGVucyBiZWxvdyB0aGUgaW5wdXQsIGJvdHRvbS1yaWdodCB3aGVuIGBvcHRpb25zUG9zaXRpb25gIGlzIFwiYWJvdmVcIi5cbiAgICogRGVmYXVsdDogdHJ1ZS4gSGlkZGVuIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHJlLWVkaXQgYW5kIHdoaWxlIHRoZSBmYWxsYmFja1xuICAgKiBza2VsZXRvbiByZW5kZXJzLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd1NraXBCdXR0b24gPSB0cnVlO1xuICAvKipcbiAgICogV2hldGhlciBvcHRpb24gcm93cyBkcmF3IHRoZWlyIGBpY29uX3N2Z2AgYmVmb3JlIHRoZSB0ZXh0LiBEZWZhdWx0OiB0cnVlLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gcmVuZGVyIG9wdGlvbiByb3dzIGFzIHRleHQgb25seS5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dPcHRpb25JY29ucyA9IHRydWU7XG4gIC8qKiBPcHRpb25hbCBDU1MgY2xhc3MgYXBwbGllZCB0byB0aGUgZHJvcGRvd24gcm9vdC4gKi9cbiAgQElucHV0KCkgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29sb3IgbW9kZSBmb3IgYSBzdGFuZGFsb25lIGRyb3Bkb3duLiBXaGVuIHNldCwgdGhlIGRyb3Bkb3duIHNlbGYtc2NvcGVzIHRoZVxuICAgKiBkZXNpZ24gdG9rZW5zIHRvIGl0cyBvd24gcm9vdCAoYWRkcyBgbWFnaWN4LWFpYWAgKyBgZGF0YS1tb2RlYCksIHNvIGl0IG5lZWRzXG4gICAqIG5vIGAubWFnaWN4LWFpYWAgd3JhcHBlci4gYFwiYXV0b1wiYCBmb2xsb3dzIGBwcmVmZXJzLWNvbG9yLXNjaGVtZWAuIExlYXZlIGl0XG4gICAqIHVuc2V0IHdoZW4gdGhlIGRyb3Bkb3duIHNpdHMgaW5zaWRlIGEgYC5tYWdpY3gtYWlhYCBhbmNlc3RvciAoZS5nLiBUaWVyIDEpLlxuICAgKi9cbiAgQElucHV0KCkgbW9kZT86IEFwcGVhcmFuY2VNb2RlO1xuXG4gIC8qKiBDb25jcmV0ZSByZXNvbHZlZCBtb2RlLCBvciBudWxsIHdoZW4gYG1vZGVgIGlzIHVuc2V0IChpbmhlcml0IGZyb20gYW5jZXN0b3IpLiAqL1xuICByZXNvbHZlZE1vZGU6IFwibGlnaHRcIiB8IFwiZGFya1wiIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbW9kZU1xbD86IE1lZGlhUXVlcnlMaXN0O1xuICBwcml2YXRlIG1vZGVMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAvKiogUm9vdCBjbGFzcyBsaXN0IOKAlCBhZGRzIGBtYWdpY3gtYWlhYCBvbmx5IHdoZW4gc2VsZi1zY29waW5nIHZpYSBgbW9kZWAuICovXG4gIGdldCByb290Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBsZXQgY2xzID0gXCJtYWdpY3gtYWlhLWRyb3Bkb3duXCI7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRNb2RlKSBjbHMgKz0gXCIgbWFnaWN4LWFpYVwiO1xuICAgIGlmICh0aGlzLmNsYXNzTmFtZSkgY2xzICs9IGAgJHt0aGlzLmNsYXNzTmFtZX1gO1xuICAgIHJldHVybiBjbHM7XG4gIH1cblxuICAvKiogRmFsbGJhY2sgc2tlbGV0b24tYmFyIHdpZHRocyB1c2VkIHdoZW4gbG9hZGluZyB3aXRoIHplcm8gY2FjaGVkIG9wdGlvbnMuICovXG4gIHJlYWRvbmx5IGZhbGxiYWNrU2tlbGV0b25CYXJXaWR0aHMgPSBbMTU5LCAxMTksIDE2NF07XG5cbiAgLyoqIEFjY2Vzc2libGUgbmFtZSBvZiB0aGUgXCJtb3JlIGJlbG93XCIgc2Nyb2xsIGFycm93LiAqL1xuICByZWFkb25seSBzY3JvbGxBcnJvd0xhYmVsID0gU0NST0xMX0FSUk9XX0xBQkVMO1xuXG4gIC8vIFRoZSBkcm9wZG93biByb290IGFuZCB0aGUgYXJyb3cgYnV0dG9uIGxpdmUgdW5kZXIgdGhlIGAqbmdJZmAgb24gdm0kLCBzb1xuICAvLyB0aGV5IGNvbWUgYW5kIGdvIHdpdGggaXQg4oCUIGhlbmNlIG5vbi1zdGF0aWMgcXVlcmllcywgcmUtcmVhZCBldmVyeSBjaGVjay5cbiAgQFZpZXdDaGlsZChcImRyb3Bkb3duUm9vdFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBkcm9wZG93blJvb3RSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZChcInNjcm9sbEFycm93XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIHNjcm9sbEFycm93UmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIC8qKiBUaGUgZ3JpZCB0aGUgc2Nyb2xsLWFycm93IGNvbnRyb2xsZXIgaXMgY3VycmVudGx5IGJvdW5kIHRvLiAqL1xuICBwcml2YXRlIHNjcm9sbEFycm93QmluZGluZzogeyBncmlkOiBIVE1MRWxlbWVudDsgY29udHJvbGxlcjogU2Nyb2xsQXJyb3dDb250cm9sbGVyIH0gfCBudWxsID1cbiAgICBudWxsO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGlvbi9icmFuZGluZyBsaW5rIFVSTCBmb3IgdGhlIGZvb3Rlciwgd2l0aCBhIGB1dG1fc291cmNlYCBkZXJpdmVkXG4gICAqIGZyb20gdGhlIGVtYmVkZGluZyBwYWdlJ3MgaG9zdG5hbWUgKHNlZSB7QGxpbmsgYnVpbGRBdHRyaWJ1dGlvblVybH0pLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmRIcmVmID0gYnVpbGRBdHRyaWJ1dGlvblVybCgpO1xuXG4gIC8qKlxuICAgKiBWaWV3LW1vZGVsIGRlcml2ZWQgZnJvbSB0aGUgY29udHJvbGxlcidzIGBkcm9wZG93biRgLiBBZGRzIHRocmVlIGJvb2xlYW5zXG4gICAqIChgc2hvd3NQaWxsc2AsIGBzaG93c09wdGlvbnNgLCBgc2hvd3NGYWxsYmFja1NrZWxldG9uYCwgYGlzVmlzaWJsZWApIHRoYXRcbiAgICoga2VlcCB0ZW1wbGF0ZS1sZXZlbCBsb2dpYyB0byBhIHByb3BlcnR5IHJlYWQgcGVyIMKnMTkuNi5cbiAgICpcbiAgICogSW5pdGlhbGl6ZWQgb25jZSBpbiBgbmdPbkluaXRgIOKAlCBtdXN0IE5PVCBiZSBhIGdldHRlci4gQSBnZXR0ZXIgcmV0dXJucyBhXG4gICAqIGZyZXNoIGBPYnNlcnZhYmxlYCBpbnN0YW5jZSBvbiBldmVyeSBwcm9wZXJ0eSByZWFkOyB3aXRoIE9uUHVzaCArIGBhc3luY2BcbiAgICogcGlwZSB0aGF0IG1lYW5zIGVhY2ggY2hhbmdlLWRldGVjdGlvbiBjeWNsZSB1bnN1YnNjcmliZXMvcmVzdWJzY3JpYmVzLFxuICAgKiBjYXVzaW5nIHRoZSBgKm5nSWY9XCJ2bSQgfCBhc3luYyBhcyB2bVwiYCByb290IHRvIGJyaWVmbHkgcmVzb2x2ZSBgbnVsbGBcbiAgICogYW5kIGZsaWNrZXIgdGhlIGVudGlyZSBkcm9wZG93biBET00uXG4gICAqL1xuICB2bSQhOiBPYnNlcnZhYmxlPERyb3Bkb3duVm0+O1xuXG4gIC8vIEJyaWRnZSBmb3IgdGhlIEBJbnB1dCBgc2hvd1BpbGxzYCBpbnRvIHRoZSByZWFjdGl2ZSBwaXBlbGluZS4gV2l0aG91dCB0aGlzLFxuICAvLyBjaGFuZ2luZyB0aGUgaW5wdXQgYWZ0ZXIgaW5pdCB3b3VsZG4ndCB0cmlnZ2VyIGEgbmV3IHZtIGVtaXNzaW9uIHVudGlsIHRoZVxuICAvLyBuZXh0IGNvbnRyb2xsZXIuZHJvcGRvd24kIHRpY2sg4oCUIGFuZCB3ZSdkIGxvc2UgdGhlIHNob3dQaWxscyB1cGRhdGUgZW50aXJlbHlcbiAgLy8gaWYgdGhlIGNvbnRyb2xsZXIgaXMgaWRsZS4gVXBkYXRlZCBmcm9tIG5nT25DaGFuZ2VzIGJlbG93LlxuICBwcml2YXRlIHJlYWRvbmx5IHNob3dQaWxscyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAvLyBTYW1lIGJyaWRnZSwgZm9yIGBzaG93U2tpcEJ1dHRvbmAuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvd1NraXBCdXR0b24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgLy8gU2FtZSBicmlkZ2UsIGZvciBgc2hvd09wdGlvbkljb25zYC5cbiAgcHJpdmF0ZSByZWFkb25seSBzaG93T3B0aW9uSWNvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvLyBMYXN0IGNvbnRlbnQgZW1pdHRlZCB3aGlsZSB0aGUgZHJvcGRvd24gd2FzIHZpc2libGUuIFJldXNlZCBkdXJpbmcgdGhlXG4gIC8vIGNsb3NlIGZhZGUgc28gdGhlIHBvcHVsYXRlZCBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lIOKAlCBzZWUgaW5pdFZtLlxuICBwcml2YXRlIGxhc3RWaXNpYmxlQ29udGVudDogRHJvcGRvd25Db250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU2VlZCB0aGUgaW5wdXQgYnJpZGdlcyBmcm9tIHRoZWlyIHJlc29sdmVkIHZhbHVlcyBhdCBpbml0IHRpbWUuXG4gICAgdGhpcy5zaG93UGlsbHMkLm5leHQodGhpcy5zaG93UGlsbHMpO1xuICAgIHRoaXMuc2hvd1NraXBCdXR0b24kLm5leHQodGhpcy5zaG93U2tpcEJ1dHRvbik7XG4gICAgdGhpcy5zaG93T3B0aW9uSWNvbnMkLm5leHQodGhpcy5zaG93T3B0aW9uSWNvbnMpO1xuICAgIHRoaXMuYXBwbHlNb2RlKCk7XG4gICAgdGhpcy5pbml0Vm0oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInNob3dQaWxsc1wiXSkge1xuICAgICAgdGhpcy5zaG93UGlsbHMkLm5leHQodGhpcy5zaG93UGlsbHMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcInNob3dTa2lwQnV0dG9uXCJdKSB7XG4gICAgICB0aGlzLnNob3dTa2lwQnV0dG9uJC5uZXh0KHRoaXMuc2hvd1NraXBCdXR0b24pO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcInNob3dPcHRpb25JY29uc1wiXSkge1xuICAgICAgdGhpcy5zaG93T3B0aW9uSWNvbnMkLm5leHQodGhpcy5zaG93T3B0aW9uSWNvbnMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcIm1vZGVcIl0gJiYgIWNoYW5nZXNbXCJtb2RlXCJdLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmFwcGx5TW9kZSgpO1xuICAgIH1cbiAgICAvLyBSZS1iaW5kIHZtJCB3aGVuIHRoZSBjb250cm9sbGVyIEBJbnB1dCBpcyBzd2FwcGVkIChlLmcuIGEgbXVsdGktc3RlcCBmb3JtXG4gICAgLy8gdG9nZ2xpbmcgYmV0d2VlbiBjb250cm9sbGVycykuIFdpdGhvdXQgdGhpcywgdm0kIHN0YXlzIHN1YnNjcmliZWQgdG8gdGhlXG4gICAgLy8gcHJldmlvdXMgY29udHJvbGxlcidzIGRyb3Bkb3duJCDigJQgcmVuZGVyaW5nIHN0YWxlIG9wdGlvbnMsIG9yLCBpZiB0aGF0XG4gICAgLy8gY29udHJvbGxlciB3YXMgZGVzdHJveSgpLWVkLCByZWNlaXZpbmcgYSBjb21wbGV0aW9uIHRoYXQgY29sbGFwc2VzIHRoZVxuICAgIC8vIGRyb3Bkb3duIHBlcm1hbmVudGx5LiBTa2lwIHRoZSBmaXJzdCBjaGFuZ2U6IG5nT25DaGFuZ2VzIGZpcmVzIGJlZm9yZVxuICAgIC8vIG5nT25Jbml0LCB3aGljaCBvd25zIHRoZSBpbml0aWFsIGNyZWF0aW9uLlxuICAgIGlmIChjaGFuZ2VzW1wiY29udHJvbGxlclwiXSAmJiAhY2hhbmdlc1tcImNvbnRyb2xsZXJcIl0uZmlyc3RDaGFuZ2UgJiYgdGhpcy5jb250cm9sbGVyKSB7XG4gICAgICB0aGlzLmluaXRWbSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBLZWVwIHRoZSBjb3JlJ3MgXCJtb3JlIGJlbG93XCIgYXJyb3cgY29udHJvbGxlciBib3VuZCB0byB3aGljaGV2ZXIgb3B0aW9uc1xuICAgKiBncmlkIGlzIGN1cnJlbnRseSByZW5kZXJlZCDigJQgdGhlIEFuZ3VsYXIgYW5hbG9ndWUgb2YgUmVhY3Qnc1xuICAgKiB1c2VTY3JvbGxBcnJvdy4gVGhlIGNvbnRyb2xsZXIgb3ducyB0aGUgYmVoYXZpb3VyIChtZWFzdXJpbmcsIHZpc2liaWxpdHksXG4gICAqIHRoZSBwYWdlLXNjcm9sbCBvbiBjbGljayDigJQgc2VlIHRoZSBjb3JlJ3Mgc2Nyb2xsQXJyb3cudHMpOyB0aGlzIG9ubHkgaGFuZHNcbiAgICogaXQgdGhlIGxpdmUgZWxlbWVudHMgYWZ0ZXIgZWFjaCB2aWV3IGNoZWNrLCByZS1hdHRhY2hpbmcgd2hlbiB0aGUgZ3JpZFxuICAgKiBlbGVtZW50IGlzIHJlcGxhY2VkIGFuZCB0ZWFyaW5nIGRvd24gd2hlbiB0aGVyZSBpcyBubyBncmlkLlxuICAgKi9cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmRyb3Bkb3duUm9vdFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLnNjcm9sbEFycm93UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGdyaWQgPSByb290Py5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcIi5haWEtZ3JpZFtkYXRhLXNjcm9sbF1cIikgPz8gbnVsbDtcbiAgICBpZiAodGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcgJiYgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcuZ3JpZCAhPT0gZ3JpZCkge1xuICAgICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcuY29udHJvbGxlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLnNjcm9sbEFycm93QmluZGluZyA9IG51bGw7XG4gICAgfVxuICAgIGlmICghcm9vdCB8fCAhYnV0dG9uIHx8ICFncmlkKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnNjcm9sbEFycm93QmluZGluZykge1xuICAgICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcgPSB7XG4gICAgICAgIGdyaWQsXG4gICAgICAgIGNvbnRyb2xsZXI6IGF0dGFjaFNjcm9sbEFycm93KHsgZHJvcGRvd246IHJvb3QsIGdyaWQsIGJ1dHRvbiB9KSxcbiAgICAgIH07XG4gICAgICByZXR1cm47IC8vIGF0dGFjaCgpIHJ1bnMgdGhlIGZpcnN0IHVwZGF0ZSBpdHNlbGZcbiAgICB9XG4gICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcuY29udHJvbGxlci51cGRhdGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGVhcmRvd25Nb2RlTGlzdGVuZXIoKTtcbiAgICB0aGlzLnNjcm9sbEFycm93QmluZGluZz8uY29udHJvbGxlci5kZXN0cm95KCk7XG4gICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIGBtb2RlYCBpbnB1dCBpbnRvIGByZXNvbHZlZE1vZGVgLiBVbnNldCDihpIgbnVsbCAodGhlIGRyb3Bkb3duXG4gICAqIHN0YXlzIGNsYXNzLWxlc3MgYW5kIGluaGVyaXRzIGZyb20gYSBgLm1hZ2ljeC1haWFgIGFuY2VzdG9yKS4gYFwiYXV0b1wiYCByZWFkc1xuICAgKiBgcHJlZmVycy1jb2xvci1zY2hlbWVgIGFuZCB0cmFja3MgaXQgbGl2ZSB2aWEgYSBtZWRpYS1xdWVyeSBsaXN0ZW5lci5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlNb2RlKCk6IHZvaWQge1xuICAgIHRoaXMudGVhcmRvd25Nb2RlTGlzdGVuZXIoKTtcbiAgICBpZiAodGhpcy5tb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gXCJsaWdodFwiIHx8IHRoaXMubW9kZSA9PT0gXCJkYXJrXCIpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gdGhpcy5tb2RlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBcImF1dG9cIlxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiB3aW5kb3cubWF0Y2hNZWRpYSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aGlzLnJlc29sdmVkTW9kZSA9IFwibGlnaHRcIjtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tb2RlTXFsID0gd2luZG93Lm1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpO1xuICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gdGhpcy5tb2RlTXFsLm1hdGNoZXMgPyBcImRhcmtcIiA6IFwibGlnaHRcIjtcbiAgICB0aGlzLm1vZGVMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gdGhpcy5tb2RlTXFsPy5tYXRjaGVzID8gXCJkYXJrXCIgOiBcImxpZ2h0XCI7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuICAgIHRoaXMubW9kZU1xbC5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIHRoaXMubW9kZUxpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgdGVhcmRvd25Nb2RlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kZU1xbCAmJiB0aGlzLm1vZGVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5tb2RlTXFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgdGhpcy5tb2RlTGlzdGVuZXIpO1xuICAgIH1cbiAgICB0aGlzLm1vZGVNcWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5tb2RlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKiogQnVpbGQgdGhlIHZpZXctbW9kZWwgc3RyZWFtIGZyb20gdGhlIGN1cnJlbnQgY29udHJvbGxlciArIHNob3dQaWxscyQuICovXG4gIHByaXZhdGUgaW5pdFZtKCk6IHZvaWQge1xuICAgIHRoaXMudm0kID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuZHJvcGRvd24kLFxuICAgICAgdGhpcy5zaG93UGlsbHMkLFxuICAgICAgdGhpcy5zaG93U2tpcEJ1dHRvbiQsXG4gICAgICB0aGlzLnNob3dPcHRpb25JY29ucyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RkLCBzaG93UGlsbHMsIHNob3dTa2lwQnV0dG9uLCBzaG93T3B0aW9uSWNvbnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVN1Z2dlc3Rpb24gPSBkZC5zdWdnZXN0aW9uc1swXTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGFjdGl2ZVN1Z2dlc3Rpb24/Lm9wdGlvbnMgPz8gW107XG4gICAgICAgIGNvbnN0IHNob3dzUGlsbHMgPSBzaG93UGlsbHMgJiYgKGRkLnBpbGxzLmxlbmd0aCA+IDAgfHwgZGQuaXNMb2FkaW5nKTtcbiAgICAgICAgLy8gVGhlIHRyYWlsaW5nIFwic2tpcFwiIGJ1dHRvbiBvbmx5IG1ha2VzIHNlbnNlIG5leHQgdG8gYSByZWFsLFxuICAgICAgICAvLyBza2lwcGFibGUgcGlsbCDigJQgbmV2ZXIgb24gdGhlIGZhbGxiYWNrIHNrZWxldG9uIGJhciwgYW5kIG5ldmVyXG4gICAgICAgIC8vIGR1cmluZyByZS1lZGl0ICh0aGUgYmFyIHRoZW4gc2hvd3MgYW4gYWxyZWFkeSBhbnN3ZXJlZCBwYXJhbSkuXG4gICAgICAgIC8vIERlbGliZXJhdGVseSBOT1QgZ2F0ZWQgb24gc2hvd3NQaWxsczogd2l0aCBwaWxscyByZW5kZXJlZCBlbHNld2hlcmVcbiAgICAgICAgLy8gKHBpbGxQbGFjZW1lbnQgXCJpbmxpbmVcIi9cImhpZGRlblwiKSB0aGUgYmFyIHJlbmRlcnMgYXMgYSBza2lwLW9ubHlcbiAgICAgICAgLy8gcm93IGhvbGRpbmcganVzdCB0aGUgYnV0dG9uLiBIaWRkZW4gd2hpbGUgdGhlIGlucHV0IGlzIGVtcHR5IOKAlCB0aGVcbiAgICAgICAgLy8gZm9vdGVyIGhpbnQgZG9lc24ndCBhZHZlcnRpc2UgXCLihpIgdG8gc2tpcFwiIHVudGlsIHRoZSB1c2VyIGhhcyB0eXBlZCxcbiAgICAgICAgLy8gc28gdGhlIHByaXN0aW5lIHN0YXJ0aW5nIHN0YXRlIHN0YXlzIGZyZWUgb2YgdGhlIGFmZm9yZGFuY2UgdG9vLlxuICAgICAgICBjb25zdCBzaG93c1NraXAgPVxuICAgICAgICAgIGRkLnBpbGxzLmxlbmd0aCA+IDAgJiYgc2hvd1NraXBCdXR0b24gJiYgIWRkLmlzRWRpdGluZyAmJiAhZGQuaXNJbnB1dEVtcHR5O1xuICAgICAgICAvLyBFeGFjdGx5IG9uZSBib2R5IHJlbmRlcnMuIGBvcHRpb25zYCBhYm92ZSBhbHJlYWR5IGhvbGRzIHRoZSB2aXNpYmxlXG4gICAgICAgIC8vIG1vbnRoJ3MgY2VsbHMgd2hlbiB0aGlzIGlzIGEgZGF0ZSDigJQgdGhlIGNvcmUgc3dhcHBlZCB0aGVtIGluIGl0c1xuICAgICAgICAvLyBkZXJpdmUgbGF5ZXIg4oCUIHNvIHRoZSB0d28gYXJlIHRoZSBzYW1lIGxpc3QgZHJhd24gdHdvIGRpZmZlcmVudFxuICAgICAgICAvLyB3YXlzLCBhbmQgbmV2ZXIgYm90aCBhdCBvbmNlICh0d28gZWxlbWVudHMgYW5zd2VyaW5nIHRvIHRoZSBzYW1lXG4gICAgICAgIC8vIG9wdGlvbiBpZCB3b3VsZCBicmVhayBrZXlib2FyZCBjb21taXQpLlxuICAgICAgICAvL1xuICAgICAgICAvLyBBIGNhbGVuZGFyIGlzIHdpdGhoZWxkIHdoaWxlIGEgcmVxdWVzdCBpcyBpbiBmbGlnaHQuIFRoZSBvcHRpb25zXG4gICAgICAgIC8vIGdyaWQgZHJhd3MgaXRzIGNhY2hlZCBvcHRpb25zIGFzIHNrZWxldG9uIHJvd3MgZm9yIHRoYXQgd2luZG93LCBidXRcbiAgICAgICAgLy8gYSBtb250aCBvZiBkYXkgY2VsbHMgaGFzIG5vIHNrZWxldG9uIGZvcm0gd29ydGggZHJhd2luZyDigJQgYW5kIGEgbGl2ZVxuICAgICAgICAvLyBjYWxlbmRhciBvdmVyIGEgbG9hZGluZyBwaWxsIGJhciBpbnZpdGVzIGFuIGFuc3dlciBhZ2FpbnN0XG4gICAgICAgIC8vIHN1Z2dlc3Rpb25zIHRoZSByZXNwb25zZSBpcyBhYm91dCB0byByZXBsYWNlLiBUaGUgZmFsbGJhY2sgYmFyc1xuICAgICAgICAvLyBzdGFuZCBpbiB1bnRpbCBpdCBsYW5kcy5cbiAgICAgICAgY29uc3QgaXNEYXRlID0gaXNDYWxlbmRhckZvcm1hdChkZC5mb3JtYXRUeXBlID8/IFwib3B0aW9uc1wiKSAmJiBkZC5kYXRlVmlldyAhPSBudWxsO1xuICAgICAgICBjb25zdCBzaG93c09wdGlvbnMgPSBvcHRpb25zLmxlbmd0aCA+IDAgJiYgIWlzRGF0ZTtcbiAgICAgICAgY29uc3Qgc2hvd3NEYXRlR3JpZCA9IG9wdGlvbnMubGVuZ3RoID4gMCAmJiBpc0RhdGUgJiYgIWRkLmlzTG9hZGluZztcbiAgICAgICAgY29uc3Qgc2hvd3NGYWxsYmFja1NrZWxldG9uID0gZGQuaXNMb2FkaW5nICYmICFzaG93c09wdGlvbnMgJiYgIXNob3dzRGF0ZUdyaWQ7XG4gICAgICAgIC8vIEVpdGhlciBoYWxmIGlzIGVub3VnaCB0byBrZWVwIHRoZSBwYW5lbCB1cDogcHJvZHVjdHMgcmVuZGVyIHdpdGggbm9cbiAgICAgICAgLy8gc3VnZ2VzdGlvbnMsIHN1Z2dlc3Rpb25zIHJlbmRlciB3aXRoIG5vIHByb2R1Y3RzLlxuICAgICAgICBjb25zdCBpc1Zpc2libGUgPVxuICAgICAgICAgIGRkLmlzT3BlbiAmJlxuICAgICAgICAgIChzaG93c09wdGlvbnMgfHwgc2hvd3NEYXRlR3JpZCB8fCBzaG93c1BpbGxzIHx8IGRkLmlzTG9hZGluZyB8fCBkZC5wcm9kdWN0cy5sZW5ndGggPiAwKTtcblxuICAgICAgICAvLyBXaGlsZSBjbG9zaW5nLCByZXVzZSB0aGUgbGFzdCB2aXNpYmxlIGNvbnRlbnQgc28gdGhlIHBvcHVsYXRlZFxuICAgICAgICAvLyBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lLiBPdGhlcndpc2UgdGhlIHBpbGxzL29wdGlvbnMgdmFuaXNoIHRoZVxuICAgICAgICAvLyBpbnN0YW50IHRoZSBzdGF0ZSBlbXB0aWVzIChlLmcuIHNraXBwaW5nIHRoZSBsYXN0IHBpbGwgd2l0aCDihpIpLFxuICAgICAgICAvLyBsZWF2aW5nIHRoZSBhbHdheXMtcHJlc2VudCBmb290ZXIgYWxvbmUgZm9yIGEgZmxhc2ggb2YgYSBmb290ZXItb25seVxuICAgICAgICAvLyBcIm5vIG9wdGlvbnNcIiBib3ggbWlkLWZhZGUuIE9ubHkgYGlzVmlzaWJsZWAgdHJhY2tzIGxpdmUgc3RhdGUgdG9cbiAgICAgICAgLy8gZHJpdmUgdGhlIG9wYWNpdHkgdHJhbnNpdGlvbi5cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgdGhpcy5sYXN0VmlzaWJsZUNvbnRlbnQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi50aGlzLmxhc3RWaXNpYmxlQ29udGVudCwgaXNWaXNpYmxlOiBmYWxzZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uSGlnaGxpZ2h0ZWQgPVxuICAgICAgICAgIGRkLmFjdGl2ZUluZGV4ID49IDAgJiYgQm9vbGVhbihvcHRpb25zW2RkLmFjdGl2ZUluZGV4XT8uaXNfdGFwcGFibGUpO1xuICAgICAgICBjb25zdCB7IGtleTogZm9vdGVyS2V5LCBoaW50OiBmb290ZXJIaW50IH0gPSBnZXRGb290ZXJIaW50KFxuICAgICAgICAgIG9wdGlvbkhpZ2hsaWdodGVkLFxuICAgICAgICAgIGRkLmlzSW5wdXRFbXB0eSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY29udGVudDogRHJvcGRvd25Db250ZW50ID0ge1xuICAgICAgICAgIHBpbGxzOiBkZC5waWxscyxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGFjdGl2ZUluZGV4OiBkZC5hY3RpdmVJbmRleCxcbiAgICAgICAgICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogZGQuaXNBY3RpdmVQaWxsU2VsZWN0ZWQsXG4gICAgICAgICAgaXNMb2FkaW5nOiBkZC5pc0xvYWRpbmcsXG4gICAgICAgICAgc2hvd3NQaWxscyxcbiAgICAgICAgICBzaG93c1NraXAsXG4gICAgICAgICAgc2tpcERpc2FibGVkOiBkZC5pc0xvYWRpbmcgfHwgQm9vbGVhbihkZC5pblNlbGVjdGlvbkFuaW1hdGlvbiksXG4gICAgICAgICAgYWN0aXZlUGlsbExhYmVsOiBkZC5waWxsc1swXT8udGV4dCA/PyBcIlwiLFxuICAgICAgICAgIHNob3dzT3B0aW9ucyxcbiAgICAgICAgICBzaG93c0RhdGVHcmlkLFxuICAgICAgICAgIGRhdGVWaWV3OiBkZC5kYXRlVmlldyA/PyBudWxsLFxuICAgICAgICAgIGRhdGVTZWxlY3Rpb246IHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXNvOiBkZC5zZWxlY3RlZERhdGVJc28gPz8gbnVsbCxcbiAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2U6IGRkLnNlbGVjdGVkRGF0ZVJhbmdlID8/IG51bGwsXG4gICAgICAgICAgICByYW5nZVN0YXJ0OiBkZC5kYXRlUmFuZ2VTdGFydCA/PyBudWxsLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hvd3NGYWxsYmFja1NrZWxldG9uLFxuICAgICAgICAgIHByb2R1Y3RzOiBkZC5wcm9kdWN0cyxcbiAgICAgICAgICBncm91cEtleTogYWN0aXZlU3VnZ2VzdGlvbiA/IGAke2FjdGl2ZVN1Z2dlc3Rpb24udHlwZX0gJHthY3RpdmVTdWdnZXN0aW9uLnRleHR9YCA6IFwiXCIsXG4gICAgICAgICAgZm9vdGVyS2V5LFxuICAgICAgICAgIGZvb3RlckhpbnQsXG4gICAgICAgICAgb3B0aW9uc1Bvc2l0aW9uOiBkZC5vcHRpb25zUG9zaXRpb24sXG4gICAgICAgICAgc2hvd09wdGlvbkljb25zLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoaXNWaXNpYmxlKSB0aGlzLmxhc3RWaXNpYmxlQ29udGVudCA9IGNvbnRlbnQ7XG4gICAgICAgIHJldHVybiB7IC4uLmNvbnRlbnQsIGlzVmlzaWJsZSB9O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHRyYWNrQnlXaWR0aCA9IChfOiBudW1iZXIsIHc6IG51bWJlcik6IG51bWJlciA9PiB3O1xuXG4gIG9uUGlsbENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0QWN0aXZlUGlsbChpbmRleCk7XG4gIH1cblxuICBvblNraXAoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNraXBBY3RpdmVQaWxsKCk7XG4gIH1cblxuICBvblNlbGVjdChvcHRpb246IFN1Z2dlc3Rpb25PcHRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gIH1cblxuICBvblByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNob3dQcmV2aW91c01vbnRoKCk7XG4gIH1cblxuICBvbk5leHRNb250aCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2hvd05leHRNb250aCgpO1xuICB9XG5cbiAgb25IaWdobGlnaHQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRBY3RpdmVEcm9wZG93bkluZGV4KGluZGV4KTtcbiAgfVxuXG4gIG9uUHJvZHVjdFNlbGVjdChwcm9kdWN0OiBQcm9kdWN0KTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNlbGVjdFByb2R1Y3QocHJvZHVjdCk7XG4gIH1cblxuICAvKipcbiAgICogQSBjYXJkIHRha2luZyBmb2N1cyBibHVycyB0aGUgZWRpdG9yLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgY2xvc2UgdGhlXG4gICAqIHBhbmVsIG91dCBmcm9tIHVuZGVyIHRoZSBjYXJkIHRoZSB1c2VyIGp1c3QgdGFiYmVkIHRvLlxuICAgKi9cbiAgb25Qcm9kdWN0Rm9jdXNDaGFuZ2UoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKGZvY3VzZWQpO1xuICB9XG5cbiAgcHJldmVudEJsdXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gUHJldmVudCB0aGUgZWRpdG9yIGZyb20gbG9zaW5nIGZvY3VzIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZHJvcGRvd24uXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cInZtJCB8IGFzeW5jIGFzIHZtXCJcbiAgI2Ryb3Bkb3duUm9vdFxuICBbaWRdPVwiY29udHJvbGxlci5saXN0Ym94SWRcIlxuICByb2xlPVwibGlzdGJveFwiXG4gIGRhdGEtYWlhLWRyb3Bkb3duPVwiXCJcbiAgW2F0dHIuZGF0YS1haWEtbG9hZGluZ109XCJ2bS5pc0xvYWRpbmcgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLW1vZGVdPVwicmVzb2x2ZWRNb2RlXCJcbiAgW2F0dHIuZGF0YS1vcHRpb25zLXBvc2l0aW9uXT1cInZtLm9wdGlvbnNQb3NpdGlvblwiXG4gIFthdHRyLmRhdGEtYWlhLWhhcy1wcm9kdWN0c109XCJ2bS5wcm9kdWN0cy5sZW5ndGggPiAwID8gJycgOiBudWxsXCJcbiAgW2NsYXNzXT1cInJvb3RDbGFzc1wiXG4gIFtjbGFzcy5tYWdpY3gtYWlhLWRyb3Bkb3duLXZpc2libGVdPVwidm0uaXNWaXNpYmxlXCJcbiAgKG1vdXNlZG93bik9XCJwcmV2ZW50Qmx1cigkZXZlbnQpXCJcbj5cbiAgPGFpYS1zdGFjayBzcGFjZT1cIjhweFwiPlxuICAgIDxhaWEtY2x1c3RlclxuICAgICAgKm5nSWY9XCJ2bS5zaG93c1BpbGxzIHx8IHZtLnNob3dzU2tpcFwiXG4gICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZHJvcGRvd24tcGlsbGJhclwiXG4gICAgICBkYXRhLWFpYS1waWxsYmFyPVwiXCJcbiAgICAgIFtub1dyYXBdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPCEtLSBUaGUgc2Nyb2xsICsgcmlnaHQtZWRnZSBmYWRlIGxpdmUgb24gdGhpcyB3cmFwcGVyIChub3QgdGhlIGJhcikgc29cbiAgICAgICAgICAgdGhlIHNraXAgYnV0dG9uIHN0YXlzIG91dHNpZGUgdGhlIG1hc2tlZCByZWdpb24g4oCUIHBpbm5lZCBhbmQgZnVsbHlcbiAgICAgICAgICAgb3BhcXVlIHdoaWxlIG92ZXJmbG93aW5nIHBpbGxzIGZhZGUgdW5kZXIgaXQuIEFic2VudCBpbiBhIHNraXAtb25seVxuICAgICAgICAgICByb3cgKHBpbGxzIHJlbmRlcmVkIGVsc2V3aGVyZSB2aWEgcGlsbFBsYWNlbWVudCBpbmxpbmUvaGlkZGVuKS4gLS0+XG4gICAgICA8c3BhbiAqbmdJZj1cInZtLnNob3dzUGlsbHNcIiBjbGFzcz1cIm1hZ2ljeC1haWEtcGlsbC1zY3JvbGxcIiBkYXRhLWFpYS1waWxsLXNjcm9sbD1cIlwiPlxuICAgICAgICA8YWlhLXBpbGwtbGlzdFxuICAgICAgICAgIFtwaWxsc109XCJ2bS5waWxsc1wiXG4gICAgICAgICAgW2FjdGl2ZVBpbGxJbmRleF09XCIwXCJcbiAgICAgICAgICBbYWN0aXZlU2VsZWN0ZWRdPVwidm0uaXNBY3RpdmVQaWxsU2VsZWN0ZWRcIlxuICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cInZtLmlzTG9hZGluZ1wiXG4gICAgICAgICAgKHNlbGVjdFBpbGwpPVwib25QaWxsQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgID48L2FpYS1waWxsLWxpc3Q+XG4gICAgICA8L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwidm0uc2hvd3NTa2lwXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtc2tpcFwiXG4gICAgICAgIGRhdGEtYWlhLXNraXA9XCJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidm0uc2tpcERpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ2bS5hY3RpdmVQaWxsTGFiZWwgPyAnU2tpcCAnICsgdm0uYWN0aXZlUGlsbExhYmVsIDogJ1NraXAnXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2tpcCgpXCJcbiAgICAgID5cbiAgICAgICAgc2tpcFxuICAgICAgPC9idXR0b24+XG4gICAgPC9haWEtY2x1c3Rlcj5cblxuICAgIDxhaWEtc3VnZ2VzdGlvbi1ncmlkXG4gICAgICAqbmdJZj1cInZtLnNob3dzT3B0aW9uc1wiXG4gICAgICBbb3B0aW9uc109XCJ2bS5vcHRpb25zXCJcbiAgICAgIFthY3RpdmVJbmRleF09XCJ2bS5hY3RpdmVJbmRleFwiXG4gICAgICBbbGlzdGJveElkXT1cImNvbnRyb2xsZXIubGlzdGJveElkXCJcbiAgICAgIFtsb2FkaW5nXT1cInZtLmlzTG9hZGluZ1wiXG4gICAgICBbZ3JvdXBLZXldPVwidm0uZ3JvdXBLZXlcIlxuICAgICAgW29wdGlvbnNQb3NpdGlvbl09XCJ2bS5vcHRpb25zUG9zaXRpb25cIlxuICAgICAgW3Nob3dJY29uc109XCJ2bS5zaG93T3B0aW9uSWNvbnNcIlxuICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChoaWdobGlnaHQpPVwib25IaWdobGlnaHQoJGV2ZW50KVwiXG4gICAgPjwvYWlhLXN1Z2dlc3Rpb24tZ3JpZD5cblxuICAgIDxhaWEtZGF0ZS1ncmlkXG4gICAgICAqbmdJZj1cInZtLnNob3dzRGF0ZUdyaWRcIlxuICAgICAgW29wdGlvbnNdPVwidm0ub3B0aW9uc1wiXG4gICAgICBbYWN0aXZlSW5kZXhdPVwidm0uYWN0aXZlSW5kZXhcIlxuICAgICAgW2xpc3Rib3hJZF09XCJjb250cm9sbGVyLmxpc3Rib3hJZFwiXG4gICAgICBbdmlld109XCJ2bS5kYXRlVmlld1wiXG4gICAgICBbc2VsZWN0aW9uXT1cInZtLmRhdGVTZWxlY3Rpb25cIlxuICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChoaWdobGlnaHQpPVwib25IaWdobGlnaHQoJGV2ZW50KVwiXG4gICAgICAocHJldmlvdXNNb250aCk9XCJvblByZXZpb3VzTW9udGgoKVwiXG4gICAgICAobmV4dE1vbnRoKT1cIm9uTmV4dE1vbnRoKClcIlxuICAgID48L2FpYS1kYXRlLWdyaWQ+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInZtLnNob3dzRmFsbGJhY2tTa2VsZXRvblwiXG4gICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZHJvcGRvd24tc2tlbGV0b24tYmFyc1wiXG4gICAgICBkYXRhLWFpYS1za2VsZXRvbi1iYXJzPVwiXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgdyBvZiBmYWxsYmFja1NrZWxldG9uQmFyV2lkdGhzOyB0cmFja0J5OiB0cmFja0J5V2lkdGhcIlxuICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZHJvcGRvd24tc2tlbGV0b24tYmFyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndcIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gKm5nSWYsIG5vdCBqdXN0IHRoZSBzZWN0aW9uJ3Mgb3duIGd1YXJkIGluc2lkZSB0aGUgY29tcG9uZW50OiB0aGUgaG9zdFxuICAgICAgICAgZWxlbWVudCBpcyBhbiBpbi1mbG93IGNoaWxkIG9mIC5haWEtc3RhY2sgKGRpc3BsYXk6ZmxleDsgZ2FwOjhweCksIHNvXG4gICAgICAgICBhbiBhbHdheXMtaW5zdGFudGlhdGVkIHplcm8taGVpZ2h0IGhvc3Qgd291bGQgYWRkIGEgU0VDT05EIDhweCBnYXBcbiAgICAgICAgIGJldHdlZW4gdGhlIGdyaWQgYW5kIHRoZSBmb290ZXIg4oCUIGluIGV2ZXJ5IGRyb3Bkb3duLCBwcm9kdWN0cyBvciBub3QuXG4gICAgICAgICBUaGUgZ3JpZCdzIC0tYWlhLWdyaWQtb3ZlcmxhcC1ib3R0b20gaXMgdHVuZWQgZm9yIGV4YWN0bHkgb25lIGdhcCwgc29cbiAgICAgICAgIHRoZSBmb290ZXIgd291bGQgbGFuZCA4cHggYmVsb3cgdGhlIGJhbmQgaXQgaXMgbWVhbnQgdG8gY292ZXIuIC0tPlxuICAgIDxhaWEtcHJvZHVjdC1zdHJpcFxuICAgICAgKm5nSWY9XCJ2bS5wcm9kdWN0cy5sZW5ndGggPiAwXCJcbiAgICAgIFtwcm9kdWN0c109XCJ2bS5wcm9kdWN0c1wiXG4gICAgICBbbGlzdGJveElkXT1cImNvbnRyb2xsZXIubGlzdGJveElkXCJcbiAgICAgIFtmb2N1c2FibGVdPVwidm0uaXNWaXNpYmxlXCJcbiAgICAgIChzZWxlY3QpPVwib25Qcm9kdWN0U2VsZWN0KCRldmVudClcIlxuICAgICAgKGZvY3VzQ2hhbmdlKT1cIm9uUHJvZHVjdEZvY3VzQ2hhbmdlKCRldmVudClcIlxuICAgID48L2FpYS1wcm9kdWN0LXN0cmlwPlxuXG4gICAgPGZvb3RlciBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyXCIgZGF0YS1haWEtZm9vdGVyPVwiXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItaGludC1ncm91cFwiPlxuICAgICAgICAgIDxrYmQgY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1rZXlcIj57eyB2bS5mb290ZXJLZXkgfX08L2tiZD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWhpbnRcIj57eyB2bS5mb290ZXJIaW50IH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1icmFuZC1saW5rXCJcbiAgICAgICAgICBbaHJlZl09XCJicmFuZEhyZWZcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWJyYW5kXCI+QUk8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1iYWRnZVwiPkF1dG9jb21wbGV0ZTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb290ZXI+XG4gIDwvYWlhLXN0YWNrPlxuICA8IS0tIFwiTW9yZSBiZWxvd1wiIGFycm93IOKAlCBhbiBvdmVybGF5IG9uIHRoZSBwYW5lbCwgbm90IGEgc2VjdGlvbiBvZiB0aGVcbiAgICAgICBzdGFjay4gU2hvd24vcG9zaXRpb25lZCBieSB0aGUgY29yZSdzIHNjcm9sbC1hcnJvdyBjb250cm9sbGVyIChzZWVcbiAgICAgICBzeW5jU2Nyb2xsQXJyb3cpOyBtYXJrdXAgbWlycm9ycyB2YW5pbGxhJ3MgY3JlYXRlU2Nyb2xsQXJyb3dCdXR0b24uIC0tPlxuICA8YnV0dG9uXG4gICAgI3Njcm9sbEFycm93XG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgY2xhc3M9XCJtYWdpY3gtYWlhLXNjcm9sbC1hcnJvd1wiXG4gICAgZGF0YS1haWEtc2Nyb2xsLWFycm93PVwiXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNjcm9sbEFycm93TGFiZWxcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gID5cbiAgICA8c3ZnXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTRcIlxuICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEuNzVcIlxuICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgID5cbiAgICAgIDxwYXRoIGQ9XCJNNCA2LjUgOCAxMC41bDQtNFwiIC8+XG4gICAgPC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
329
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9zcmMvbGliL2FpLWF1dG9jb21wbGV0ZS1kcm9wZG93bi9haS1hdXRvY29tcGxldGUtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUtOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixtQkFBbUIsRUFHbkIsYUFBYSxFQUNiLGdCQUFnQixFQUVoQixrQkFBa0IsR0FJbkIsTUFBTSxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBbUIsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQzs7O0FBeUNo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Qzs7NkhBeFVVLCtCQUErQjtpSEFBL0IsK0JBQStCLG9lQ2xINUMsbXJLQW9KQSwyNWFEbERJLFlBQVkscVRBQ1osaUJBQWlCLGlLQUNqQixxQkFBcUIsa0pBQ3JCLHVCQUF1QiwwTUFDdkIsaUJBQWlCLGdNQUNqQixjQUFjLGtGQUNkLGdCQUFnQjs0RkFVUCwrQkFBK0I7a0JBcEIzQyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2QsZ0JBQWdCO3FCQUNqQixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFXNUIsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQVNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csZUFBZTtzQkFBdkIsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQU9HLElBQUk7c0JBQVosS0FBSztnQkF3QmdELGVBQWU7c0JBQXBFLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFDUyxjQUFjO3NCQUFsRSxTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICB0eXBlIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICB0eXBlIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBpbmplY3QsXG4gIHR5cGUgT25DaGFuZ2VzLFxuICB0eXBlIE9uRGVzdHJveSxcbiAgdHlwZSBPbkluaXQsXG4gIHR5cGUgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7XG4gIHR5cGUgQXBwZWFyYW5jZU1vZGUsXG4gIGF0dGFjaFNjcm9sbEFycm93LFxuICBidWlsZEF0dHJpYnV0aW9uVXJsLFxuICB0eXBlIERhdGVNb250aFZpZXcsXG4gIHR5cGUgRGF0ZVNlbGVjdGlvbixcbiAgZ2V0Rm9vdGVySGludCxcbiAgaXNDYWxlbmRhckZvcm1hdCxcbiAgdHlwZSBQcm9kdWN0LFxuICBTQ1JPTExfQVJST1dfTEFCRUwsXG4gIHR5cGUgU2Nyb2xsQXJyb3dDb250cm9sbGVyLFxuICB0eXBlIFN1Z2dlc3Rpb24sXG4gIHR5cGUgU3VnZ2VzdGlvbk9wdGlvbixcbn0gZnJvbSBcIkBtYWdpY3gtZW5nL2FpLWF1dG9jb21wbGV0ZS12YW5pbGxhXCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIHR5cGUgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB0eXBlIHsgQUlBdXRvY29tcGxldGVDb250cm9sbGVyIH0gZnJvbSBcIi4uL2NvbnRyb2xsZXIvYWktYXV0b2NvbXBsZXRlLmNvbnRyb2xsZXJcIjtcbmltcG9ydCB7IERhdGVHcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL2RhdGUtZ3JpZC9kYXRlLWdyaWQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDbHVzdGVyQ29tcG9uZW50IH0gZnJvbSBcIi4uL2ludGVybmFsL2xheW91dC9jbHVzdGVyLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgU3RhY2tDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvbGF5b3V0L3N0YWNrLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUGlsbExpc3RDb21wb25lbnQgfSBmcm9tIFwiLi4vaW50ZXJuYWwvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7IFByb2R1Y3RTdHJpcENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9wcm9kdWN0LXN0cmlwL3Byb2R1Y3Qtc3RyaXAuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBTdWdnZXN0aW9uR3JpZENvbXBvbmVudCB9IGZyb20gXCIuLi9pbnRlcm5hbC9zdWdnZXN0aW9uLWdyaWQvc3VnZ2VzdGlvbi1ncmlkLmNvbXBvbmVudFwiO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25WbSB7XG4gIHBpbGxzOiBTdWdnZXN0aW9uW107XG4gIG9wdGlvbnM6IFN1Z2dlc3Rpb25PcHRpb25bXTtcbiAgYWN0aXZlSW5kZXg6IG51bWJlcjtcbiAgaXNBY3RpdmVQaWxsU2VsZWN0ZWQ6IGJvb2xlYW47XG4gIGlzTG9hZGluZzogYm9vbGVhbjtcbiAgc2hvd3NQaWxsczogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhlIHBpbGxiYXIgZW5kcyBpbiB0aGUgdHJhaWxpbmcgXCJza2lwXCIgYnV0dG9uLiAqL1xuICBzaG93c1NraXA6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBEaXNhYmxlZCBzdGF0ZSBmb3IgdGhlIHNraXAgYnV0dG9uOiBsb2FkaW5nLCBvciB0aGUgcG9zdC1zZWxlY3Rpb24gd2luZG93XG4gICAqIHdoZXJlIGlzTG9hZGluZyBpcyBzdXBwcmVzc2VkIGJ1dCB0aGUgY29yZSdzIHNraXBBY3RpdmVQaWxsKCkgbm8tb3BzLlxuICAgKi9cbiAgc2tpcERpc2FibGVkOiBib29sZWFuO1xuICAvKiogQWN0aXZlIHBpbGwncyBsYWJlbCwgZm9yIHRoZSBza2lwIGJ1dHRvbidzIGFyaWEtbGFiZWwuICovXG4gIGFjdGl2ZVBpbGxMYWJlbDogc3RyaW5nO1xuICBzaG93c09wdGlvbnM6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRoZSBjYWxlbmRhciBib2R5IHJlbmRlcnMgaW4gcGxhY2Ugb2YgdGhlIG9wdGlvbnMgZ3JpZC4gKi9cbiAgc2hvd3NEYXRlR3JpZDogYm9vbGVhbjtcbiAgLyoqIFRoZSBtb250aCB0aGUgY2FsZW5kYXIgc2hvd3MuIE51bGwgdW5sZXNzIGBzaG93c0RhdGVHcmlkYC4gKi9cbiAgZGF0ZVZpZXc6IERhdGVNb250aFZpZXcgfCBudWxsO1xuICAvKiogV2hhdCB0aGUgY2FsZW5kYXIgcGFpbnRzIGFzIGFuc3dlcmVkIOKAlCBzZWUgdGhlIGNvcmUncyBgZGF0ZVNlbGVjdGlvbkZvcmAuICovXG4gIGRhdGVTZWxlY3Rpb246IERhdGVTZWxlY3Rpb247XG4gIHNob3dzRmFsbGJhY2tTa2VsZXRvbjogYm9vbGVhbjtcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICAvKiogUHJvZHVjdCBjYXJkcyBmb3IgdGhlIHN0cmlwLiBFbXB0eSB1bmxlc3MgYHByb2R1Y3RzYCBpcyBjb25maWd1cmVkLiAqL1xuICBwcm9kdWN0czogUHJvZHVjdFtdO1xuICAvKiogSWRlbnRpdHkgb2YgdGhlIHN1Z2dlc3Rpb24gdGhlIG9wdGlvbnMgYmVsb25nIHRvIOKAlCBkcml2ZXMgdGhlIGdyaWQncyBzY3JvbGwgcmVzZXQuICovXG4gIGdyb3VwS2V5OiBzdHJpbmc7XG4gIGZvb3RlcktleTogc3RyaW5nO1xuICBmb290ZXJIaW50OiBzdHJpbmc7XG4gIG9wdGlvbnNQb3NpdGlvbjogXCJhYm92ZVwiIHwgXCJiZWxvd1wiO1xuICAvKiogV2hldGhlciBvcHRpb24gcm93cyBkcmF3IHRoZWlyIGBpY29uX3N2Z2AgYmVmb3JlIHRoZSB0ZXh0LiAqL1xuICBzaG93T3B0aW9uSWNvbnM6IGJvb2xlYW47XG59XG5cbi8qKiBUaGUgY29udGVudC1iZWFyaW5nIGZpZWxkcyBvZiB0aGUgdmlldy1tb2RlbCAoZXZlcnl0aGluZyBidXQgYGlzVmlzaWJsZWApLiAqL1xudHlwZSBEcm9wZG93bkNvbnRlbnQgPSBPbWl0PERyb3Bkb3duVm0sIFwiaXNWaXNpYmxlXCI+O1xuXG4vKipcbiAqIFRpZXIgMiBkcm9wZG93biBjb21wb25lbnQg4oCUIHRoZSBBbmd1bGFyIGVxdWl2YWxlbnQgb2YgUmVhY3Qnc1xuICogYDxBSUF1dG9jb21wbGV0ZURyb3Bkb3duIC8+YC4gUmVuZGVycyB0aGUgcGlsbGJhciwgb3B0aW9ucyBncmlkLCBhbmRcbiAqIGxvYWRpbmcgc2tlbGV0b24gYmFzZWQgb24gdGhlIHN1cHBsaWVkIGNvbnRyb2xsZXIncyBgZHJvcGRvd24kYCBzbmFwc2hvdC5cbiAqXG4gKiBgYGBodG1sXG4gKiA8YWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duIFtjb250cm9sbGVyXT1cImFjXCI+PC9haS1hdXRvY29tcGxldGUtZHJvcGRvd24+XG4gKiBgYGBcbiAqXG4gKiBBbGwgYWN0aW9ucyAocGlsbCBjbGljaywgb3B0aW9uIHNlbGVjdCwgb3B0aW9uIGhpZ2hsaWdodCkgYXJlIGZvcndhcmRlZCB0b1xuICogdGhlIGNvbnRyb2xsZXIuIENvbnN1bWVycyB3aG8gbmVlZCB0byBvYnNlcnZlIHRoZXNlIGV2ZW50cyBjYW4gc3Vic2NyaWJlXG4gKiB0byB0aGUgY29udHJvbGxlcidzIHBlci1maWVsZCBvYnNlcnZhYmxlcy5cbiAqXG4gKiBAcHVibGljXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaS1hdXRvY29tcGxldGUtZHJvcGRvd25cIixcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBQaWxsTGlzdENvbXBvbmVudCxcbiAgICBQcm9kdWN0U3RyaXBDb21wb25lbnQsXG4gICAgU3VnZ2VzdGlvbkdyaWRDb21wb25lbnQsXG4gICAgRGF0ZUdyaWRDb21wb25lbnQsXG4gICAgU3RhY2tDb21wb25lbnQsXG4gICAgQ2x1c3RlckNvbXBvbmVudCxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHRlbXBsYXRlVXJsOiBcIi4vYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIC8vIFRoZSBzaGFyZWQgYXBwZWFyYW5jZSBsYXllciBjYXJyaWVzIHRoZSBkZXNpZ24gdG9rZW5zICsgYm94LXNpemluZyByZXNldCArXG4gIC8vIG9wdGlvbnNQb3NpdGlvbiByZXZlcnNhbCwgc28gYSBzdGFuZGFsb25lIGRyb3Bkb3duIChubyBUaWVyIDEgY29tcG9uZW50IG9uXG4gIC8vIHRoZSBwYWdlKSBpcyBmdWxseSBzdHlsZWQgb25jZSBgbW9kZWAgaXMgc2V0LlxuICBzdHlsZVVybHM6IFtcIi4uL3NoYXJlZC9hcHBlYXJhbmNlLmNzc1wiLCBcIi4vYWktYXV0b2NvbXBsZXRlLWRyb3Bkb3duLmNvbXBvbmVudC5jc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEFJQXV0b2NvbXBsZXRlRHJvcGRvd25Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCwgT25EZXN0cm95XG57XG4gIC8qKiBUaGUgY29udHJvbGxlciB0aGF0IG93bnMgdGhlIGF1dG9jb21wbGV0ZSBzdGF0ZS4gUmVxdWlyZWQuICovXG4gIEBJbnB1dCgpIGNvbnRyb2xsZXIhOiBBSUF1dG9jb21wbGV0ZUNvbnRyb2xsZXI7XG4gIC8qKiBXaGV0aGVyIHRvIHJlbmRlciB0aGUgcGlsbGJhciBhYm92ZSB0aGUgb3B0aW9ucyBncmlkLiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93UGlsbHMgPSB0cnVlO1xuICAvKipcbiAgICogV2hldGhlciB0aGUgcGlsbGJhciBlbmRzIGluIGEgc21hbGwgXCJza2lwXCIgYnV0dG9uIHRoYXQgZGlzbWlzc2VzIHRoZVxuICAgKiBhY3RpdmUgcGlsbCDigJQgc2FtZSBhY3Rpb24gYXMgcHJlc3Npbmcg4oaSIGF0IHRoZSBlbmQgb2YgdGhlIGlucHV0LiBJdCBzaXRzXG4gICAqIGF0IHRoZSB0cmFpbGluZyBlZGdlIG9mIHRoZSBiYXI6IHZpc3VhbGx5IHRvcC1yaWdodCB3aGVuIHRoZSBkcm9wZG93blxuICAgKiBvcGVucyBiZWxvdyB0aGUgaW5wdXQsIGJvdHRvbS1yaWdodCB3aGVuIGBvcHRpb25zUG9zaXRpb25gIGlzIFwiYWJvdmVcIi5cbiAgICogRGVmYXVsdDogdHJ1ZS4gSGlkZGVuIGF1dG9tYXRpY2FsbHkgZHVyaW5nIHJlLWVkaXQgYW5kIHdoaWxlIHRoZSBmYWxsYmFja1xuICAgKiBza2VsZXRvbiByZW5kZXJzLlxuICAgKi9cbiAgQElucHV0KCkgc2hvd1NraXBCdXR0b24gPSB0cnVlO1xuICAvKipcbiAgICogV2hldGhlciBvcHRpb24gcm93cyBkcmF3IHRoZWlyIGBpY29uX3N2Z2AgYmVmb3JlIHRoZSB0ZXh0LiBEZWZhdWx0OiB0cnVlLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gcmVuZGVyIG9wdGlvbiByb3dzIGFzIHRleHQgb25seS5cbiAgICovXG4gIEBJbnB1dCgpIHNob3dPcHRpb25JY29ucyA9IHRydWU7XG4gIC8qKiBPcHRpb25hbCBDU1MgY2xhc3MgYXBwbGllZCB0byB0aGUgZHJvcGRvd24gcm9vdC4gKi9cbiAgQElucHV0KCkgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQ29sb3IgbW9kZSBmb3IgYSBzdGFuZGFsb25lIGRyb3Bkb3duLiBXaGVuIHNldCwgdGhlIGRyb3Bkb3duIHNlbGYtc2NvcGVzIHRoZVxuICAgKiBkZXNpZ24gdG9rZW5zIHRvIGl0cyBvd24gcm9vdCAoYWRkcyBgbWFnaWN4LWFpYWAgKyBgZGF0YS1tb2RlYCksIHNvIGl0IG5lZWRzXG4gICAqIG5vIGAubWFnaWN4LWFpYWAgd3JhcHBlci4gYFwiYXV0b1wiYCBmb2xsb3dzIGBwcmVmZXJzLWNvbG9yLXNjaGVtZWAuIExlYXZlIGl0XG4gICAqIHVuc2V0IHdoZW4gdGhlIGRyb3Bkb3duIHNpdHMgaW5zaWRlIGEgYC5tYWdpY3gtYWlhYCBhbmNlc3RvciAoZS5nLiBUaWVyIDEpLlxuICAgKi9cbiAgQElucHV0KCkgbW9kZT86IEFwcGVhcmFuY2VNb2RlO1xuXG4gIC8qKiBDb25jcmV0ZSByZXNvbHZlZCBtb2RlLCBvciBudWxsIHdoZW4gYG1vZGVgIGlzIHVuc2V0IChpbmhlcml0IGZyb20gYW5jZXN0b3IpLiAqL1xuICByZXNvbHZlZE1vZGU6IFwibGlnaHRcIiB8IFwiZGFya1wiIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgbW9kZU1xbD86IE1lZGlhUXVlcnlMaXN0O1xuICBwcml2YXRlIG1vZGVMaXN0ZW5lcj86ICgpID0+IHZvaWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAvKiogUm9vdCBjbGFzcyBsaXN0IOKAlCBhZGRzIGBtYWdpY3gtYWlhYCBvbmx5IHdoZW4gc2VsZi1zY29waW5nIHZpYSBgbW9kZWAuICovXG4gIGdldCByb290Q2xhc3MoKTogc3RyaW5nIHtcbiAgICBsZXQgY2xzID0gXCJtYWdpY3gtYWlhLWRyb3Bkb3duXCI7XG4gICAgaWYgKHRoaXMucmVzb2x2ZWRNb2RlKSBjbHMgKz0gXCIgbWFnaWN4LWFpYVwiO1xuICAgIGlmICh0aGlzLmNsYXNzTmFtZSkgY2xzICs9IGAgJHt0aGlzLmNsYXNzTmFtZX1gO1xuICAgIHJldHVybiBjbHM7XG4gIH1cblxuICAvKiogRmFsbGJhY2sgc2tlbGV0b24tYmFyIHdpZHRocyB1c2VkIHdoZW4gbG9hZGluZyB3aXRoIHplcm8gY2FjaGVkIG9wdGlvbnMuICovXG4gIHJlYWRvbmx5IGZhbGxiYWNrU2tlbGV0b25CYXJXaWR0aHMgPSBbMTU5LCAxMTksIDE2NF07XG5cbiAgLyoqIEFjY2Vzc2libGUgbmFtZSBvZiB0aGUgXCJtb3JlIGJlbG93XCIgc2Nyb2xsIGFycm93LiAqL1xuICByZWFkb25seSBzY3JvbGxBcnJvd0xhYmVsID0gU0NST0xMX0FSUk9XX0xBQkVMO1xuXG4gIC8vIFRoZSBkcm9wZG93biByb290IGFuZCB0aGUgYXJyb3cgYnV0dG9uIGxpdmUgdW5kZXIgdGhlIGAqbmdJZmAgb24gdm0kLCBzb1xuICAvLyB0aGV5IGNvbWUgYW5kIGdvIHdpdGggaXQg4oCUIGhlbmNlIG5vbi1zdGF0aWMgcXVlcmllcywgcmUtcmVhZCBldmVyeSBjaGVjay5cbiAgQFZpZXdDaGlsZChcImRyb3Bkb3duUm9vdFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBkcm9wZG93blJvb3RSZWY/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcbiAgQFZpZXdDaGlsZChcInNjcm9sbEFycm93XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBwcml2YXRlIHNjcm9sbEFycm93UmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG4gIC8qKiBUaGUgZ3JpZCB0aGUgc2Nyb2xsLWFycm93IGNvbnRyb2xsZXIgaXMgY3VycmVudGx5IGJvdW5kIHRvLiAqL1xuICBwcml2YXRlIHNjcm9sbEFycm93QmluZGluZzogeyBncmlkOiBIVE1MRWxlbWVudDsgY29udHJvbGxlcjogU2Nyb2xsQXJyb3dDb250cm9sbGVyIH0gfCBudWxsID1cbiAgICBudWxsO1xuXG4gIC8qKlxuICAgKiBBdHRyaWJ1dGlvbi9icmFuZGluZyBsaW5rIFVSTCBmb3IgdGhlIGZvb3Rlciwgd2l0aCBhIGB1dG1fc291cmNlYCBkZXJpdmVkXG4gICAqIGZyb20gdGhlIGVtYmVkZGluZyBwYWdlJ3MgaG9zdG5hbWUgKHNlZSB7QGxpbmsgYnVpbGRBdHRyaWJ1dGlvblVybH0pLlxuICAgKi9cbiAgcmVhZG9ubHkgYnJhbmRIcmVmID0gYnVpbGRBdHRyaWJ1dGlvblVybCgpO1xuXG4gIC8qKlxuICAgKiBWaWV3LW1vZGVsIGRlcml2ZWQgZnJvbSB0aGUgY29udHJvbGxlcidzIGBkcm9wZG93biRgLiBBZGRzIHRocmVlIGJvb2xlYW5zXG4gICAqIChgc2hvd3NQaWxsc2AsIGBzaG93c09wdGlvbnNgLCBgc2hvd3NGYWxsYmFja1NrZWxldG9uYCwgYGlzVmlzaWJsZWApIHRoYXRcbiAgICoga2VlcCB0ZW1wbGF0ZS1sZXZlbCBsb2dpYyB0byBhIHByb3BlcnR5IHJlYWQgcGVyIMKnMTkuNi5cbiAgICpcbiAgICogSW5pdGlhbGl6ZWQgb25jZSBpbiBgbmdPbkluaXRgIOKAlCBtdXN0IE5PVCBiZSBhIGdldHRlci4gQSBnZXR0ZXIgcmV0dXJucyBhXG4gICAqIGZyZXNoIGBPYnNlcnZhYmxlYCBpbnN0YW5jZSBvbiBldmVyeSBwcm9wZXJ0eSByZWFkOyB3aXRoIE9uUHVzaCArIGBhc3luY2BcbiAgICogcGlwZSB0aGF0IG1lYW5zIGVhY2ggY2hhbmdlLWRldGVjdGlvbiBjeWNsZSB1bnN1YnNjcmliZXMvcmVzdWJzY3JpYmVzLFxuICAgKiBjYXVzaW5nIHRoZSBgKm5nSWY9XCJ2bSQgfCBhc3luYyBhcyB2bVwiYCByb290IHRvIGJyaWVmbHkgcmVzb2x2ZSBgbnVsbGBcbiAgICogYW5kIGZsaWNrZXIgdGhlIGVudGlyZSBkcm9wZG93biBET00uXG4gICAqL1xuICB2bSQhOiBPYnNlcnZhYmxlPERyb3Bkb3duVm0+O1xuXG4gIC8vIEJyaWRnZSBmb3IgdGhlIEBJbnB1dCBgc2hvd1BpbGxzYCBpbnRvIHRoZSByZWFjdGl2ZSBwaXBlbGluZS4gV2l0aG91dCB0aGlzLFxuICAvLyBjaGFuZ2luZyB0aGUgaW5wdXQgYWZ0ZXIgaW5pdCB3b3VsZG4ndCB0cmlnZ2VyIGEgbmV3IHZtIGVtaXNzaW9uIHVudGlsIHRoZVxuICAvLyBuZXh0IGNvbnRyb2xsZXIuZHJvcGRvd24kIHRpY2sg4oCUIGFuZCB3ZSdkIGxvc2UgdGhlIHNob3dQaWxscyB1cGRhdGUgZW50aXJlbHlcbiAgLy8gaWYgdGhlIGNvbnRyb2xsZXIgaXMgaWRsZS4gVXBkYXRlZCBmcm9tIG5nT25DaGFuZ2VzIGJlbG93LlxuICBwcml2YXRlIHJlYWRvbmx5IHNob3dQaWxscyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAvLyBTYW1lIGJyaWRnZSwgZm9yIGBzaG93U2tpcEJ1dHRvbmAuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvd1NraXBCdXR0b24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgLy8gU2FtZSBicmlkZ2UsIGZvciBgc2hvd09wdGlvbkljb25zYC5cbiAgcHJpdmF0ZSByZWFkb25seSBzaG93T3B0aW9uSWNvbnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAvLyBMYXN0IGNvbnRlbnQgZW1pdHRlZCB3aGlsZSB0aGUgZHJvcGRvd24gd2FzIHZpc2libGUuIFJldXNlZCBkdXJpbmcgdGhlXG4gIC8vIGNsb3NlIGZhZGUgc28gdGhlIHBvcHVsYXRlZCBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lIOKAlCBzZWUgaW5pdFZtLlxuICBwcml2YXRlIGxhc3RWaXNpYmxlQ29udGVudDogRHJvcGRvd25Db250ZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU2VlZCB0aGUgaW5wdXQgYnJpZGdlcyBmcm9tIHRoZWlyIHJlc29sdmVkIHZhbHVlcyBhdCBpbml0IHRpbWUuXG4gICAgdGhpcy5zaG93UGlsbHMkLm5leHQodGhpcy5zaG93UGlsbHMpO1xuICAgIHRoaXMuc2hvd1NraXBCdXR0b24kLm5leHQodGhpcy5zaG93U2tpcEJ1dHRvbik7XG4gICAgdGhpcy5zaG93T3B0aW9uSWNvbnMkLm5leHQodGhpcy5zaG93T3B0aW9uSWNvbnMpO1xuICAgIHRoaXMuYXBwbHlNb2RlKCk7XG4gICAgdGhpcy5pbml0Vm0oKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1tcInNob3dQaWxsc1wiXSkge1xuICAgICAgdGhpcy5zaG93UGlsbHMkLm5leHQodGhpcy5zaG93UGlsbHMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcInNob3dTa2lwQnV0dG9uXCJdKSB7XG4gICAgICB0aGlzLnNob3dTa2lwQnV0dG9uJC5uZXh0KHRoaXMuc2hvd1NraXBCdXR0b24pO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcInNob3dPcHRpb25JY29uc1wiXSkge1xuICAgICAgdGhpcy5zaG93T3B0aW9uSWNvbnMkLm5leHQodGhpcy5zaG93T3B0aW9uSWNvbnMpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1tcIm1vZGVcIl0gJiYgIWNoYW5nZXNbXCJtb2RlXCJdLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLmFwcGx5TW9kZSgpO1xuICAgIH1cbiAgICAvLyBSZS1iaW5kIHZtJCB3aGVuIHRoZSBjb250cm9sbGVyIEBJbnB1dCBpcyBzd2FwcGVkIChlLmcuIGEgbXVsdGktc3RlcCBmb3JtXG4gICAgLy8gdG9nZ2xpbmcgYmV0d2VlbiBjb250cm9sbGVycykuIFdpdGhvdXQgdGhpcywgdm0kIHN0YXlzIHN1YnNjcmliZWQgdG8gdGhlXG4gICAgLy8gcHJldmlvdXMgY29udHJvbGxlcidzIGRyb3Bkb3duJCDigJQgcmVuZGVyaW5nIHN0YWxlIG9wdGlvbnMsIG9yLCBpZiB0aGF0XG4gICAgLy8gY29udHJvbGxlciB3YXMgZGVzdHJveSgpLWVkLCByZWNlaXZpbmcgYSBjb21wbGV0aW9uIHRoYXQgY29sbGFwc2VzIHRoZVxuICAgIC8vIGRyb3Bkb3duIHBlcm1hbmVudGx5LiBTa2lwIHRoZSBmaXJzdCBjaGFuZ2U6IG5nT25DaGFuZ2VzIGZpcmVzIGJlZm9yZVxuICAgIC8vIG5nT25Jbml0LCB3aGljaCBvd25zIHRoZSBpbml0aWFsIGNyZWF0aW9uLlxuICAgIGlmIChjaGFuZ2VzW1wiY29udHJvbGxlclwiXSAmJiAhY2hhbmdlc1tcImNvbnRyb2xsZXJcIl0uZmlyc3RDaGFuZ2UgJiYgdGhpcy5jb250cm9sbGVyKSB7XG4gICAgICB0aGlzLmluaXRWbSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBLZWVwIHRoZSBjb3JlJ3MgXCJtb3JlIGJlbG93XCIgYXJyb3cgY29udHJvbGxlciBib3VuZCB0byB3aGljaGV2ZXIgb3B0aW9uc1xuICAgKiBncmlkIGlzIGN1cnJlbnRseSByZW5kZXJlZCDigJQgdGhlIEFuZ3VsYXIgYW5hbG9ndWUgb2YgUmVhY3Qnc1xuICAgKiB1c2VTY3JvbGxBcnJvdy4gVGhlIGNvbnRyb2xsZXIgb3ducyB0aGUgYmVoYXZpb3VyIChtZWFzdXJpbmcsIHZpc2liaWxpdHksXG4gICAqIHRoZSBwYWdlLXNjcm9sbCBvbiBjbGljayDigJQgc2VlIHRoZSBjb3JlJ3Mgc2Nyb2xsQXJyb3cudHMpOyB0aGlzIG9ubHkgaGFuZHNcbiAgICogaXQgdGhlIGxpdmUgZWxlbWVudHMgYWZ0ZXIgZWFjaCB2aWV3IGNoZWNrLCByZS1hdHRhY2hpbmcgd2hlbiB0aGUgZ3JpZFxuICAgKiBlbGVtZW50IGlzIHJlcGxhY2VkIGFuZCB0ZWFyaW5nIGRvd24gd2hlbiB0aGVyZSBpcyBubyBncmlkLlxuICAgKi9cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIGNvbnN0IHJvb3QgPSB0aGlzLmRyb3Bkb3duUm9vdFJlZj8ubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBidXR0b24gPSB0aGlzLnNjcm9sbEFycm93UmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIGNvbnN0IGdyaWQgPSByb290Py5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihcIi5haWEtZ3JpZFtkYXRhLXNjcm9sbF1cIikgPz8gbnVsbDtcbiAgICBpZiAodGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcgJiYgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcuZ3JpZCAhPT0gZ3JpZCkge1xuICAgICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcuY29udHJvbGxlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLnNjcm9sbEFycm93QmluZGluZyA9IG51bGw7XG4gICAgfVxuICAgIGlmICghcm9vdCB8fCAhYnV0dG9uIHx8ICFncmlkKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLnNjcm9sbEFycm93QmluZGluZykge1xuICAgICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcgPSB7XG4gICAgICAgIGdyaWQsXG4gICAgICAgIGNvbnRyb2xsZXI6IGF0dGFjaFNjcm9sbEFycm93KHsgZHJvcGRvd246IHJvb3QsIGdyaWQsIGJ1dHRvbiB9KSxcbiAgICAgIH07XG4gICAgICByZXR1cm47IC8vIGF0dGFjaCgpIHJ1bnMgdGhlIGZpcnN0IHVwZGF0ZSBpdHNlbGZcbiAgICB9XG4gICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcuY29udHJvbGxlci51cGRhdGUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudGVhcmRvd25Nb2RlTGlzdGVuZXIoKTtcbiAgICB0aGlzLnNjcm9sbEFycm93QmluZGluZz8uY29udHJvbGxlci5kZXN0cm95KCk7XG4gICAgdGhpcy5zY3JvbGxBcnJvd0JpbmRpbmcgPSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmUgdGhlIGBtb2RlYCBpbnB1dCBpbnRvIGByZXNvbHZlZE1vZGVgLiBVbnNldCDihpIgbnVsbCAodGhlIGRyb3Bkb3duXG4gICAqIHN0YXlzIGNsYXNzLWxlc3MgYW5kIGluaGVyaXRzIGZyb20gYSBgLm1hZ2ljeC1haWFgIGFuY2VzdG9yKS4gYFwiYXV0b1wiYCByZWFkc1xuICAgKiBgcHJlZmVycy1jb2xvci1zY2hlbWVgIGFuZCB0cmFja3MgaXQgbGl2ZSB2aWEgYSBtZWRpYS1xdWVyeSBsaXN0ZW5lci5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlNb2RlKCk6IHZvaWQge1xuICAgIHRoaXMudGVhcmRvd25Nb2RlTGlzdGVuZXIoKTtcbiAgICBpZiAodGhpcy5tb2RlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubW9kZSA9PT0gXCJsaWdodFwiIHx8IHRoaXMubW9kZSA9PT0gXCJkYXJrXCIpIHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gdGhpcy5tb2RlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBcImF1dG9cIlxuICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSBcInVuZGVmaW5lZFwiIHx8IHR5cGVvZiB3aW5kb3cubWF0Y2hNZWRpYSAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aGlzLnJlc29sdmVkTW9kZSA9IFwibGlnaHRcIjtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5tb2RlTXFsID0gd2luZG93Lm1hdGNoTWVkaWEoXCIocHJlZmVycy1jb2xvci1zY2hlbWU6IGRhcmspXCIpO1xuICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gdGhpcy5tb2RlTXFsLm1hdGNoZXMgPyBcImRhcmtcIiA6IFwibGlnaHRcIjtcbiAgICB0aGlzLm1vZGVMaXN0ZW5lciA9ICgpID0+IHtcbiAgICAgIHRoaXMucmVzb2x2ZWRNb2RlID0gdGhpcy5tb2RlTXFsPy5tYXRjaGVzID8gXCJkYXJrXCIgOiBcImxpZ2h0XCI7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9O1xuICAgIHRoaXMubW9kZU1xbC5hZGRFdmVudExpc3RlbmVyKFwiY2hhbmdlXCIsIHRoaXMubW9kZUxpc3RlbmVyKTtcbiAgfVxuXG4gIHByaXZhdGUgdGVhcmRvd25Nb2RlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubW9kZU1xbCAmJiB0aGlzLm1vZGVMaXN0ZW5lcikge1xuICAgICAgdGhpcy5tb2RlTXFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjaGFuZ2VcIiwgdGhpcy5tb2RlTGlzdGVuZXIpO1xuICAgIH1cbiAgICB0aGlzLm1vZGVNcWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5tb2RlTGlzdGVuZXIgPSB1bmRlZmluZWQ7XG4gIH1cblxuICAvKiogQnVpbGQgdGhlIHZpZXctbW9kZWwgc3RyZWFtIGZyb20gdGhlIGN1cnJlbnQgY29udHJvbGxlciArIHNob3dQaWxscyQuICovXG4gIHByaXZhdGUgaW5pdFZtKCk6IHZvaWQge1xuICAgIHRoaXMudm0kID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLmNvbnRyb2xsZXIuZHJvcGRvd24kLFxuICAgICAgdGhpcy5zaG93UGlsbHMkLFxuICAgICAgdGhpcy5zaG93U2tpcEJ1dHRvbiQsXG4gICAgICB0aGlzLnNob3dPcHRpb25JY29ucyQsXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2RkLCBzaG93UGlsbHMsIHNob3dTa2lwQnV0dG9uLCBzaG93T3B0aW9uSWNvbnNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGFjdGl2ZVN1Z2dlc3Rpb24gPSBkZC5zdWdnZXN0aW9uc1swXTtcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IGFjdGl2ZVN1Z2dlc3Rpb24/Lm9wdGlvbnMgPz8gW107XG4gICAgICAgIGNvbnN0IHNob3dzUGlsbHMgPSBzaG93UGlsbHMgJiYgKGRkLnBpbGxzLmxlbmd0aCA+IDAgfHwgZGQuaXNMb2FkaW5nKTtcbiAgICAgICAgLy8gVGhlIHRyYWlsaW5nIFwic2tpcFwiIGJ1dHRvbiBvbmx5IG1ha2VzIHNlbnNlIG5leHQgdG8gYSByZWFsLFxuICAgICAgICAvLyBza2lwcGFibGUgcGlsbCDigJQgbmV2ZXIgb24gdGhlIGZhbGxiYWNrIHNrZWxldG9uIGJhciwgYW5kIG5ldmVyXG4gICAgICAgIC8vIGR1cmluZyByZS1lZGl0ICh0aGUgYmFyIHRoZW4gc2hvd3MgYW4gYWxyZWFkeSBhbnN3ZXJlZCBwYXJhbSkuXG4gICAgICAgIC8vIERlbGliZXJhdGVseSBOT1QgZ2F0ZWQgb24gc2hvd3NQaWxsczogd2l0aCBwaWxscyByZW5kZXJlZCBlbHNld2hlcmVcbiAgICAgICAgLy8gKHBpbGxQbGFjZW1lbnQgXCJpbmxpbmVcIi9cImhpZGRlblwiKSB0aGUgYmFyIHJlbmRlcnMgYXMgYSBza2lwLW9ubHlcbiAgICAgICAgLy8gcm93IGhvbGRpbmcganVzdCB0aGUgYnV0dG9uLiBIaWRkZW4gd2hpbGUgdGhlIGlucHV0IGlzIGVtcHR5IOKAlCB0aGVcbiAgICAgICAgLy8gZm9vdGVyIGhpbnQgZG9lc24ndCBhZHZlcnRpc2UgXCLihpIgdG8gc2tpcFwiIHVudGlsIHRoZSB1c2VyIGhhcyB0eXBlZCxcbiAgICAgICAgLy8gc28gdGhlIHByaXN0aW5lIHN0YXJ0aW5nIHN0YXRlIHN0YXlzIGZyZWUgb2YgdGhlIGFmZm9yZGFuY2UgdG9vLlxuICAgICAgICBjb25zdCBzaG93c1NraXAgPVxuICAgICAgICAgIGRkLnBpbGxzLmxlbmd0aCA+IDAgJiYgc2hvd1NraXBCdXR0b24gJiYgIWRkLmlzRWRpdGluZyAmJiAhZGQuaXNJbnB1dEVtcHR5O1xuICAgICAgICAvLyBFeGFjdGx5IG9uZSBib2R5IHJlbmRlcnMuIGBvcHRpb25zYCBhYm92ZSBhbHJlYWR5IGhvbGRzIHRoZSB2aXNpYmxlXG4gICAgICAgIC8vIG1vbnRoJ3MgY2VsbHMgd2hlbiB0aGlzIGlzIGEgZGF0ZSDigJQgdGhlIGNvcmUgc3dhcHBlZCB0aGVtIGluIGl0c1xuICAgICAgICAvLyBkZXJpdmUgbGF5ZXIg4oCUIHNvIHRoZSB0d28gYXJlIHRoZSBzYW1lIGxpc3QgZHJhd24gdHdvIGRpZmZlcmVudFxuICAgICAgICAvLyB3YXlzLCBhbmQgbmV2ZXIgYm90aCBhdCBvbmNlICh0d28gZWxlbWVudHMgYW5zd2VyaW5nIHRvIHRoZSBzYW1lXG4gICAgICAgIC8vIG9wdGlvbiBpZCB3b3VsZCBicmVhayBrZXlib2FyZCBjb21taXQpLlxuICAgICAgICAvL1xuICAgICAgICAvLyBBIGNhbGVuZGFyIGlzIHdpdGhoZWxkIHdoaWxlIGEgcmVxdWVzdCBpcyBpbiBmbGlnaHQuIFRoZSBvcHRpb25zXG4gICAgICAgIC8vIGdyaWQgZHJhd3MgaXRzIGNhY2hlZCBvcHRpb25zIGFzIHNrZWxldG9uIHJvd3MgZm9yIHRoYXQgd2luZG93LCBidXRcbiAgICAgICAgLy8gYSBtb250aCBvZiBkYXkgY2VsbHMgaGFzIG5vIHNrZWxldG9uIGZvcm0gd29ydGggZHJhd2luZyDigJQgYW5kIGEgbGl2ZVxuICAgICAgICAvLyBjYWxlbmRhciBvdmVyIGEgbG9hZGluZyBwaWxsIGJhciBpbnZpdGVzIGFuIGFuc3dlciBhZ2FpbnN0XG4gICAgICAgIC8vIHN1Z2dlc3Rpb25zIHRoZSByZXNwb25zZSBpcyBhYm91dCB0byByZXBsYWNlLiBUaGUgZmFsbGJhY2sgYmFyc1xuICAgICAgICAvLyBzdGFuZCBpbiB1bnRpbCBpdCBsYW5kcy5cbiAgICAgICAgY29uc3QgaXNEYXRlID0gaXNDYWxlbmRhckZvcm1hdChkZC5mb3JtYXRUeXBlID8/IFwib3B0aW9uc1wiKSAmJiBkZC5kYXRlVmlldyAhPSBudWxsO1xuICAgICAgICBjb25zdCBzaG93c09wdGlvbnMgPSBvcHRpb25zLmxlbmd0aCA+IDAgJiYgIWlzRGF0ZTtcbiAgICAgICAgY29uc3Qgc2hvd3NEYXRlR3JpZCA9IG9wdGlvbnMubGVuZ3RoID4gMCAmJiBpc0RhdGUgJiYgIWRkLmlzTG9hZGluZztcbiAgICAgICAgY29uc3Qgc2hvd3NGYWxsYmFja1NrZWxldG9uID0gZGQuaXNMb2FkaW5nICYmICFzaG93c09wdGlvbnMgJiYgIXNob3dzRGF0ZUdyaWQ7XG4gICAgICAgIC8vIEVpdGhlciBoYWxmIGlzIGVub3VnaCB0byBrZWVwIHRoZSBwYW5lbCB1cDogcHJvZHVjdHMgcmVuZGVyIHdpdGggbm9cbiAgICAgICAgLy8gc3VnZ2VzdGlvbnMsIHN1Z2dlc3Rpb25zIHJlbmRlciB3aXRoIG5vIHByb2R1Y3RzLlxuICAgICAgICBjb25zdCBpc1Zpc2libGUgPVxuICAgICAgICAgIGRkLmlzT3BlbiAmJlxuICAgICAgICAgIChzaG93c09wdGlvbnMgfHwgc2hvd3NEYXRlR3JpZCB8fCBzaG93c1BpbGxzIHx8IGRkLmlzTG9hZGluZyB8fCBkZC5wcm9kdWN0cy5sZW5ndGggPiAwKTtcblxuICAgICAgICAvLyBXaGlsZSBjbG9zaW5nLCByZXVzZSB0aGUgbGFzdCB2aXNpYmxlIGNvbnRlbnQgc28gdGhlIHBvcHVsYXRlZFxuICAgICAgICAvLyBkcm9wZG93biBmYWRlcyBvdXQgYXMgb25lLiBPdGhlcndpc2UgdGhlIHBpbGxzL29wdGlvbnMgdmFuaXNoIHRoZVxuICAgICAgICAvLyBpbnN0YW50IHRoZSBzdGF0ZSBlbXB0aWVzIChlLmcuIHNraXBwaW5nIHRoZSBsYXN0IHBpbGwgd2l0aCDihpIpLFxuICAgICAgICAvLyBsZWF2aW5nIHRoZSBhbHdheXMtcHJlc2VudCBmb290ZXIgYWxvbmUgZm9yIGEgZmxhc2ggb2YgYSBmb290ZXItb25seVxuICAgICAgICAvLyBcIm5vIG9wdGlvbnNcIiBib3ggbWlkLWZhZGUuIE9ubHkgYGlzVmlzaWJsZWAgdHJhY2tzIGxpdmUgc3RhdGUgdG9cbiAgICAgICAgLy8gZHJpdmUgdGhlIG9wYWNpdHkgdHJhbnNpdGlvbi5cbiAgICAgICAgaWYgKCFpc1Zpc2libGUgJiYgdGhpcy5sYXN0VmlzaWJsZUNvbnRlbnQpIHtcbiAgICAgICAgICByZXR1cm4geyAuLi50aGlzLmxhc3RWaXNpYmxlQ29udGVudCwgaXNWaXNpYmxlOiBmYWxzZSB9O1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3B0aW9uSGlnaGxpZ2h0ZWQgPVxuICAgICAgICAgIGRkLmFjdGl2ZUluZGV4ID49IDAgJiYgQm9vbGVhbihvcHRpb25zW2RkLmFjdGl2ZUluZGV4XT8uaXNfdGFwcGFibGUpO1xuICAgICAgICBjb25zdCB7IGtleTogZm9vdGVyS2V5LCBoaW50OiBmb290ZXJIaW50IH0gPSBnZXRGb290ZXJIaW50KFxuICAgICAgICAgIG9wdGlvbkhpZ2hsaWdodGVkLFxuICAgICAgICAgIGRkLmlzSW5wdXRFbXB0eSxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgY29udGVudDogRHJvcGRvd25Db250ZW50ID0ge1xuICAgICAgICAgIHBpbGxzOiBkZC5waWxscyxcbiAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgIGFjdGl2ZUluZGV4OiBkZC5hY3RpdmVJbmRleCxcbiAgICAgICAgICBpc0FjdGl2ZVBpbGxTZWxlY3RlZDogZGQuaXNBY3RpdmVQaWxsU2VsZWN0ZWQsXG4gICAgICAgICAgaXNMb2FkaW5nOiBkZC5pc0xvYWRpbmcsXG4gICAgICAgICAgc2hvd3NQaWxscyxcbiAgICAgICAgICBzaG93c1NraXAsXG4gICAgICAgICAgc2tpcERpc2FibGVkOiBkZC5pc0xvYWRpbmcgfHwgQm9vbGVhbihkZC5pblNlbGVjdGlvbkFuaW1hdGlvbiksXG4gICAgICAgICAgYWN0aXZlUGlsbExhYmVsOiBkZC5waWxsc1swXT8udGV4dCA/PyBcIlwiLFxuICAgICAgICAgIHNob3dzT3B0aW9ucyxcbiAgICAgICAgICBzaG93c0RhdGVHcmlkLFxuICAgICAgICAgIGRhdGVWaWV3OiBkZC5kYXRlVmlldyA/PyBudWxsLFxuICAgICAgICAgIGRhdGVTZWxlY3Rpb246IHtcbiAgICAgICAgICAgIHNlbGVjdGVkSXNvOiBkZC5zZWxlY3RlZERhdGVJc28gPz8gbnVsbCxcbiAgICAgICAgICAgIHNlbGVjdGVkUmFuZ2U6IGRkLnNlbGVjdGVkRGF0ZVJhbmdlID8/IG51bGwsXG4gICAgICAgICAgICByYW5nZVN0YXJ0OiBkZC5kYXRlUmFuZ2VTdGFydCA/PyBudWxsLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2hvd3NGYWxsYmFja1NrZWxldG9uLFxuICAgICAgICAgIHByb2R1Y3RzOiBkZC5wcm9kdWN0cyxcbiAgICAgICAgICBncm91cEtleTogYWN0aXZlU3VnZ2VzdGlvbiA/IGAke2FjdGl2ZVN1Z2dlc3Rpb24udHlwZX0gJHthY3RpdmVTdWdnZXN0aW9uLnRleHR9YCA6IFwiXCIsXG4gICAgICAgICAgZm9vdGVyS2V5LFxuICAgICAgICAgIGZvb3RlckhpbnQsXG4gICAgICAgICAgb3B0aW9uc1Bvc2l0aW9uOiBkZC5vcHRpb25zUG9zaXRpb24sXG4gICAgICAgICAgc2hvd09wdGlvbkljb25zLFxuICAgICAgICB9O1xuICAgICAgICBpZiAoaXNWaXNpYmxlKSB0aGlzLmxhc3RWaXNpYmxlQ29udGVudCA9IGNvbnRlbnQ7XG4gICAgICAgIHJldHVybiB7IC4uLmNvbnRlbnQsIGlzVmlzaWJsZSB9O1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHRyYWNrQnlXaWR0aCA9IChfOiBudW1iZXIsIHc6IG51bWJlcik6IG51bWJlciA9PiB3O1xuXG4gIG9uUGlsbENsaWNrKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2V0QWN0aXZlUGlsbChpbmRleCk7XG4gIH1cblxuICBvblNraXAoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNraXBBY3RpdmVQaWxsKCk7XG4gIH1cblxuICBvblNlbGVjdChvcHRpb246IFN1Z2dlc3Rpb25PcHRpb24pOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2VsZWN0T3B0aW9uKG9wdGlvbik7XG4gIH1cblxuICBvblByZXZpb3VzTW9udGgoKTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNob3dQcmV2aW91c01vbnRoKCk7XG4gIH1cblxuICBvbk5leHRNb250aCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbnRyb2xsZXIuc2hvd05leHRNb250aCgpO1xuICB9XG5cbiAgb25IaWdobGlnaHQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRBY3RpdmVEcm9wZG93bkluZGV4KGluZGV4KTtcbiAgfVxuXG4gIG9uUHJvZHVjdFNlbGVjdChwcm9kdWN0OiBQcm9kdWN0KTogdm9pZCB7XG4gICAgdGhpcy5jb250cm9sbGVyLnNlbGVjdFByb2R1Y3QocHJvZHVjdCk7XG4gIH1cblxuICAvKipcbiAgICogQSBjYXJkIHRha2luZyBmb2N1cyBibHVycyB0aGUgZWRpdG9yLCB3aGljaCB3b3VsZCBvdGhlcndpc2UgY2xvc2UgdGhlXG4gICAqIHBhbmVsIG91dCBmcm9tIHVuZGVyIHRoZSBjYXJkIHRoZSB1c2VyIGp1c3QgdGFiYmVkIHRvLlxuICAgKi9cbiAgb25Qcm9kdWN0Rm9jdXNDaGFuZ2UoZm9jdXNlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuY29udHJvbGxlci5zZXRGb2N1c2VkKGZvY3VzZWQpO1xuICB9XG5cbiAgcHJldmVudEJsdXIoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgLy8gUHJldmVudCB0aGUgZWRpdG9yIGZyb20gbG9zaW5nIGZvY3VzIHdoZW4gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgZHJvcGRvd24uXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cInZtJCB8IGFzeW5jIGFzIHZtXCJcbiAgI2Ryb3Bkb3duUm9vdFxuICBbaWRdPVwiY29udHJvbGxlci5saXN0Ym94SWRcIlxuICByb2xlPVwibGlzdGJveFwiXG4gIGRhdGEtYWlhLWRyb3Bkb3duPVwiXCJcbiAgW2F0dHIuZGF0YS1haWEtbG9hZGluZ109XCJ2bS5pc0xvYWRpbmcgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLW1vZGVdPVwicmVzb2x2ZWRNb2RlXCJcbiAgW2F0dHIuZGF0YS1vcHRpb25zLXBvc2l0aW9uXT1cInZtLm9wdGlvbnNQb3NpdGlvblwiXG4gIFthdHRyLmRhdGEtYWlhLWhhcy1wcm9kdWN0c109XCJ2bS5wcm9kdWN0cy5sZW5ndGggPiAwID8gJycgOiBudWxsXCJcbiAgW2NsYXNzXT1cInJvb3RDbGFzc1wiXG4gIFtjbGFzcy5tYWdpY3gtYWlhLWRyb3Bkb3duLXZpc2libGVdPVwidm0uaXNWaXNpYmxlXCJcbiAgKG1vdXNlZG93bik9XCJwcmV2ZW50Qmx1cigkZXZlbnQpXCJcbj5cbiAgPGFpYS1zdGFjayBzcGFjZT1cIjhweFwiPlxuICAgIDxhaWEtY2x1c3RlclxuICAgICAgKm5nSWY9XCJ2bS5zaG93c1BpbGxzIHx8IHZtLnNob3dzU2tpcFwiXG4gICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZHJvcGRvd24tcGlsbGJhclwiXG4gICAgICBkYXRhLWFpYS1waWxsYmFyPVwiXCJcbiAgICAgIFtub1dyYXBdPVwidHJ1ZVwiXG4gICAgPlxuICAgICAgPCEtLSBUaGUgc2Nyb2xsICsgcmlnaHQtZWRnZSBmYWRlIGxpdmUgb24gdGhpcyB3cmFwcGVyIChub3QgdGhlIGJhcikgc29cbiAgICAgICAgICAgdGhlIHNraXAgYnV0dG9uIHN0YXlzIG91dHNpZGUgdGhlIG1hc2tlZCByZWdpb24g4oCUIHBpbm5lZCBhbmQgZnVsbHlcbiAgICAgICAgICAgb3BhcXVlIHdoaWxlIG92ZXJmbG93aW5nIHBpbGxzIGZhZGUgdW5kZXIgaXQuIEFic2VudCBpbiBhIHNraXAtb25seVxuICAgICAgICAgICByb3cgKHBpbGxzIHJlbmRlcmVkIGVsc2V3aGVyZSB2aWEgcGlsbFBsYWNlbWVudCBpbmxpbmUvaGlkZGVuKS4gLS0+XG4gICAgICA8c3BhbiAqbmdJZj1cInZtLnNob3dzUGlsbHNcIiBjbGFzcz1cIm1hZ2ljeC1haWEtcGlsbC1zY3JvbGxcIiBkYXRhLWFpYS1waWxsLXNjcm9sbD1cIlwiPlxuICAgICAgICA8YWlhLXBpbGwtbGlzdFxuICAgICAgICAgIFtwaWxsc109XCJ2bS5waWxsc1wiXG4gICAgICAgICAgW2FjdGl2ZVBpbGxJbmRleF09XCIwXCJcbiAgICAgICAgICBbYWN0aXZlU2VsZWN0ZWRdPVwidm0uaXNBY3RpdmVQaWxsU2VsZWN0ZWRcIlxuICAgICAgICAgIFtyb3VuZGVkXT1cInRydWVcIlxuICAgICAgICAgIFtsb2FkaW5nXT1cInZtLmlzTG9hZGluZ1wiXG4gICAgICAgICAgKHNlbGVjdFBpbGwpPVwib25QaWxsQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgID48L2FpYS1waWxsLWxpc3Q+XG4gICAgICA8L3NwYW4+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwidm0uc2hvd3NTa2lwXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtc2tpcFwiXG4gICAgICAgIGRhdGEtYWlhLXNraXA9XCJcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidm0uc2tpcERpc2FibGVkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ2bS5hY3RpdmVQaWxsTGFiZWwgPyAnU2tpcCAnICsgdm0uYWN0aXZlUGlsbExhYmVsIDogJ1NraXAnXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2tpcCgpXCJcbiAgICAgID5cbiAgICAgICAgc2tpcFxuICAgICAgPC9idXR0b24+XG4gICAgPC9haWEtY2x1c3Rlcj5cblxuICAgIDxhaWEtc3VnZ2VzdGlvbi1ncmlkXG4gICAgICAqbmdJZj1cInZtLnNob3dzT3B0aW9uc1wiXG4gICAgICBbb3B0aW9uc109XCJ2bS5vcHRpb25zXCJcbiAgICAgIFthY3RpdmVJbmRleF09XCJ2bS5hY3RpdmVJbmRleFwiXG4gICAgICBbbGlzdGJveElkXT1cImNvbnRyb2xsZXIubGlzdGJveElkXCJcbiAgICAgIFtsb2FkaW5nXT1cInZtLmlzTG9hZGluZ1wiXG4gICAgICBbZ3JvdXBLZXldPVwidm0uZ3JvdXBLZXlcIlxuICAgICAgW29wdGlvbnNQb3NpdGlvbl09XCJ2bS5vcHRpb25zUG9zaXRpb25cIlxuICAgICAgW3Nob3dJY29uc109XCJ2bS5zaG93T3B0aW9uSWNvbnNcIlxuICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChoaWdobGlnaHQpPVwib25IaWdobGlnaHQoJGV2ZW50KVwiXG4gICAgPjwvYWlhLXN1Z2dlc3Rpb24tZ3JpZD5cblxuICAgIDxhaWEtZGF0ZS1ncmlkXG4gICAgICAqbmdJZj1cInZtLnNob3dzRGF0ZUdyaWRcIlxuICAgICAgW29wdGlvbnNdPVwidm0ub3B0aW9uc1wiXG4gICAgICBbYWN0aXZlSW5kZXhdPVwidm0uYWN0aXZlSW5kZXhcIlxuICAgICAgW2xpc3Rib3hJZF09XCJjb250cm9sbGVyLmxpc3Rib3hJZFwiXG4gICAgICBbdmlld109XCJ2bS5kYXRlVmlld1wiXG4gICAgICBbc2VsZWN0aW9uXT1cInZtLmRhdGVTZWxlY3Rpb25cIlxuICAgICAgKHNlbGVjdCk9XCJvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgIChoaWdobGlnaHQpPVwib25IaWdobGlnaHQoJGV2ZW50KVwiXG4gICAgICAocHJldmlvdXNNb250aCk9XCJvblByZXZpb3VzTW9udGgoKVwiXG4gICAgICAobmV4dE1vbnRoKT1cIm9uTmV4dE1vbnRoKClcIlxuICAgID48L2FpYS1kYXRlLWdyaWQ+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cInZtLnNob3dzRmFsbGJhY2tTa2VsZXRvblwiXG4gICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZHJvcGRvd24tc2tlbGV0b24tYmFyc1wiXG4gICAgICBkYXRhLWFpYS1za2VsZXRvbi1iYXJzPVwiXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICAqbmdGb3I9XCJsZXQgdyBvZiBmYWxsYmFja1NrZWxldG9uQmFyV2lkdGhzOyB0cmFja0J5OiB0cmFja0J5V2lkdGhcIlxuICAgICAgICBjbGFzcz1cIm1hZ2ljeC1haWEtZHJvcGRvd24tc2tlbGV0b24tYmFyXCJcbiAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIndcIlxuICAgICAgPjwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gKm5nSWYsIG5vdCBqdXN0IHRoZSBzZWN0aW9uJ3Mgb3duIGd1YXJkIGluc2lkZSB0aGUgY29tcG9uZW50OiB0aGUgaG9zdFxuICAgICAgICAgZWxlbWVudCBpcyBhbiBpbi1mbG93IGNoaWxkIG9mIC5haWEtc3RhY2sgKGRpc3BsYXk6ZmxleDsgZ2FwOjhweCksIHNvXG4gICAgICAgICBhbiBhbHdheXMtaW5zdGFudGlhdGVkIHplcm8taGVpZ2h0IGhvc3Qgd291bGQgYWRkIGEgU0VDT05EIDhweCBnYXBcbiAgICAgICAgIGJldHdlZW4gdGhlIGdyaWQgYW5kIHRoZSBmb290ZXIg4oCUIGluIGV2ZXJ5IGRyb3Bkb3duLCBwcm9kdWN0cyBvciBub3QuXG4gICAgICAgICBUaGUgZ3JpZCdzIC0tYWlhLWdyaWQtb3ZlcmxhcC1ib3R0b20gaXMgdHVuZWQgZm9yIGV4YWN0bHkgb25lIGdhcCwgc29cbiAgICAgICAgIHRoZSBmb290ZXIgd291bGQgbGFuZCA4cHggYmVsb3cgdGhlIGJhbmQgaXQgaXMgbWVhbnQgdG8gY292ZXIuIC0tPlxuICAgIDxhaWEtcHJvZHVjdC1zdHJpcFxuICAgICAgKm5nSWY9XCJ2bS5wcm9kdWN0cy5sZW5ndGggPiAwXCJcbiAgICAgIFtwcm9kdWN0c109XCJ2bS5wcm9kdWN0c1wiXG4gICAgICBbbGlzdGJveElkXT1cImNvbnRyb2xsZXIubGlzdGJveElkXCJcbiAgICAgIFtmb2N1c2FibGVdPVwidm0uaXNWaXNpYmxlXCJcbiAgICAgIChzZWxlY3QpPVwib25Qcm9kdWN0U2VsZWN0KCRldmVudClcIlxuICAgICAgKGZvY3VzQ2hhbmdlKT1cIm9uUHJvZHVjdEZvY3VzQ2hhbmdlKCRldmVudClcIlxuICAgID48L2FpYS1wcm9kdWN0LXN0cmlwPlxuXG4gICAgPGZvb3RlciBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyXCIgZGF0YS1haWEtZm9vdGVyPVwiXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItcm93XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibWFnaWN4LWFpYS1mb290ZXItaGludC1ncm91cFwiPlxuICAgICAgICAgIDxrYmQgY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1rZXlcIj57eyB2bS5mb290ZXJLZXkgfX08L2tiZD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWhpbnRcIj57eyB2bS5mb290ZXJIaW50IH19PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxhXG4gICAgICAgICAgY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1icmFuZC1saW5rXCJcbiAgICAgICAgICBbaHJlZl09XCJicmFuZEhyZWZcIlxuICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1hZ2ljeC1haWEtZm9vdGVyLWJyYW5kXCI+QUk8L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYWdpY3gtYWlhLWZvb3Rlci1iYWRnZVwiPkF1dG9jb21wbGV0ZTwvc3Bhbj5cbiAgICAgICAgPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9mb290ZXI+XG4gIDwvYWlhLXN0YWNrPlxuICA8IS0tIFwiTW9yZSBiZWxvd1wiIGFycm93IOKAlCBhbiBvdmVybGF5IG9uIHRoZSBwYW5lbCwgbm90IGEgc2VjdGlvbiBvZiB0aGVcbiAgICAgICBzdGFjay4gU2hvd24vcG9zaXRpb25lZCBieSB0aGUgY29yZSdzIHNjcm9sbC1hcnJvdyBjb250cm9sbGVyIChzZWVcbiAgICAgICBzeW5jU2Nyb2xsQXJyb3cpOyBtYXJrdXAgbWlycm9ycyB2YW5pbGxhJ3MgY3JlYXRlU2Nyb2xsQXJyb3dCdXR0b24uIC0tPlxuICA8YnV0dG9uXG4gICAgI3Njcm9sbEFycm93XG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgY2xhc3M9XCJtYWdpY3gtYWlhLXNjcm9sbC1hcnJvd1wiXG4gICAgZGF0YS1haWEtc2Nyb2xsLWFycm93PVwiXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInNjcm9sbEFycm93TGFiZWxcIlxuICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gID5cbiAgICA8c3ZnXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcbiAgICAgIHdpZHRoPVwiMTRcIlxuICAgICAgaGVpZ2h0PVwiMTRcIlxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS13aWR0aD1cIjEuNzVcIlxuICAgICAgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgZm9jdXNhYmxlPVwiZmFsc2VcIlxuICAgID5cbiAgICAgIDxwYXRoIGQ9XCJNNCA2LjUgOCAxMC41bDQtNFwiIC8+XG4gICAgPC9zdmc+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -20,7 +20,7 @@ export class ClusterComponent {
|
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
22
|
ClusterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClusterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
-
ClusterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ClusterComponent, isStandalone: true, selector: "aia-cluster", inputs: { gap: "gap", align: "align", justify: "justify", noWrap: "noWrap", inline: "inline" }, host: { properties: { "attr.data-align": "align", "attr.data-justify": "justify", "attr.data-nowrap": "noWrap ? '' : null", "attr.data-inline": "inline ? '' : null", "style.--aia-cluster-gap": "gap" }, classAttribute: "aia-cluster" }, ngImport: i0, template: "<ng-content></ng-content>", isInline: true, styles: ["
|
|
23
|
+
ClusterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ClusterComponent, isStandalone: true, selector: "aia-cluster", inputs: { gap: "gap", align: "align", justify: "justify", noWrap: "noWrap", inline: "inline" }, host: { properties: { "attr.data-align": "align", "attr.data-justify": "justify", "attr.data-nowrap": "noWrap ? '' : null", "attr.data-inline": "inline ? '' : null", "style.--aia-cluster-gap": "gap" }, classAttribute: "aia-cluster" }, ngImport: i0, template: "<ng-content></ng-content>", isInline: true, styles: [".aia-cluster{display:flex;flex-wrap:wrap;gap:var(--aia-cluster-gap, .5rem)}.aia-cluster[data-inline]{display:inline-flex}.aia-cluster[data-nowrap]{flex-wrap:nowrap}.aia-cluster[data-align=start]{align-items:start}.aia-cluster[data-align=center]{align-items:center}.aia-cluster[data-align=end]{align-items:end}.aia-cluster[data-align=baseline]{align-items:baseline}.aia-cluster[data-justify=start]{justify-content:start}.aia-cluster[data-justify=center]{justify-content:center}.aia-cluster[data-justify=end]{justify-content:end}.aia-cluster[data-justify=between]{justify-content:space-between}.aia-cluster[data-justify=around]{justify-content:space-around}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
24
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ClusterComponent, decorators: [{
|
|
25
25
|
type: Component,
|
|
26
26
|
args: [{ selector: "aia-cluster", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>", host: {
|
|
@@ -30,7 +30,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
30
30
|
"[attr.data-nowrap]": "noWrap ? '' : null",
|
|
31
31
|
"[attr.data-inline]": "inline ? '' : null",
|
|
32
32
|
"[style.--aia-cluster-gap]": "gap",
|
|
33
|
-
}, styles: ["
|
|
33
|
+
}, styles: [".aia-cluster{display:flex;flex-wrap:wrap;gap:var(--aia-cluster-gap, .5rem)}.aia-cluster[data-inline]{display:inline-flex}.aia-cluster[data-nowrap]{flex-wrap:nowrap}.aia-cluster[data-align=start]{align-items:start}.aia-cluster[data-align=center]{align-items:center}.aia-cluster[data-align=end]{align-items:end}.aia-cluster[data-align=baseline]{align-items:baseline}.aia-cluster[data-justify=start]{justify-content:start}.aia-cluster[data-justify=center]{justify-content:center}.aia-cluster[data-justify=end]{justify-content:end}.aia-cluster[data-justify=between]{justify-content:space-between}.aia-cluster[data-justify=around]{justify-content:space-around}\n"] }]
|
|
34
34
|
}], propDecorators: { gap: [{
|
|
35
35
|
type: Input
|
|
36
36
|
}], align: [{
|
|
@@ -42,10 +42,10 @@ export class GridComponent {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
GridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
-
GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GridComponent, isStandalone: true, selector: "aia-grid", inputs: { min: "min", max: "max", gap: "gap", scroll: "scroll", maxHeight: "maxHeight", scrollResetKey: "scrollResetKey", cols: "cols", template: "template", group: "group" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [attr.data-aia-group]=\"group ?? null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n [style.grid-template-columns]=\"templateColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["aia-grid{display:contents}
|
|
45
|
+
GridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GridComponent, isStandalone: true, selector: "aia-grid", inputs: { min: "min", max: "max", gap: "gap", scroll: "scroll", maxHeight: "maxHeight", scrollResetKey: "scrollResetKey", cols: "cols", template: "template", group: "group" }, host: { classAttribute: "aia-grid-host" }, viewQueries: [{ propertyName: "gridRef", first: true, predicate: ["grid"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [attr.data-aia-group]=\"group ?? null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n [style.grid-template-columns]=\"templateColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".aia-grid-host{display:contents}.aia-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--aia-grid-min),100%),var(--aia-grid-max, 1fr)));gap:var(--aia-grid-gap, 0)}.aia-grid[data-scroll]{grid-auto-rows:min-content;align-content:start;justify-content:start;max-height:var(--aia-grid-max-height, 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3)) transparent}.aia-grid[data-scroll]::-webkit-scrollbar{width:6px}.aia-grid[data-scroll]::-webkit-scrollbar-track{background:transparent}.aia-grid[data-scroll]::-webkit-scrollbar-thumb{background:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3));border-radius:3px}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
46
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GridComponent, decorators: [{
|
|
47
47
|
type: Component,
|
|
48
|
-
args: [{ selector: "aia-grid", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [attr.data-aia-group]=\"group ?? null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n [style.grid-template-columns]=\"templateColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: ["aia-grid{display:contents}
|
|
48
|
+
args: [{ selector: "aia-grid", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: "aia-grid-host" }, template: "<div\n #grid\n class=\"aia-grid\"\n [attr.data-scroll]=\"scroll ? '' : null\"\n [attr.data-aia-group]=\"group ?? null\"\n [style.--aia-grid-min]=\"min\"\n [style.--aia-grid-max]=\"max\"\n [style.--aia-grid-gap]=\"gap\"\n [style.--aia-grid-max-height]=\"maxHeight\"\n [style.grid-template-columns]=\"templateColumns\"\n>\n <ng-content></ng-content>\n</div>\n", styles: [".aia-grid-host{display:contents}.aia-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(var(--aia-grid-min),100%),var(--aia-grid-max, 1fr)));gap:var(--aia-grid-gap, 0)}.aia-grid[data-scroll]{grid-auto-rows:min-content;align-content:start;justify-content:start;max-height:var(--aia-grid-max-height, 120px);overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3)) transparent}.aia-grid[data-scroll]::-webkit-scrollbar{width:6px}.aia-grid[data-scroll]::-webkit-scrollbar-track{background:transparent}.aia-grid[data-scroll]::-webkit-scrollbar-thumb{background:var(--aia-scrollbar-thumb, rgba(0, 0, 0, .3));border-radius:3px}\n"] }]
|
|
49
49
|
}], propDecorators: { min: [{
|
|
50
50
|
type: Input
|
|
51
51
|
}], max: [{
|
|
@@ -68,4 +68,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
68
68
|
type: ViewChild,
|
|
69
69
|
args: ["grid", { static: false }]
|
|
70
70
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL2xheW91dC9ncmlkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvbGF5b3V0L2dyaWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUdMLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBRWpGOzs7Ozs7OztHQVFHO0FBVUgsTUFBTSxPQUFPLGFBQWE7SUFUMUI7UUFVRSxpRkFBaUY7UUFDeEUsUUFBRyxHQUFHLE9BQU8sQ0FBQztRQUt2QixtRUFBbUU7UUFDMUQsV0FBTSxHQUFHLEtBQUssQ0FBQztLQXVDekI7SUF2QkM7Ozs7T0FJRztJQUNILElBQUksZUFBZTtRQUNqQixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsMEJBQTBCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEUsQ0FBQztJQUlEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFO1lBQUUsT0FBTztRQUM5QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQztRQUN6QyxJQUFJLElBQUk7WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDOzsyR0E5Q1UsYUFBYTsrRkFBYixhQUFhLHFaQzlCMUIsaVhBYUE7NEZEaUJhLGFBQWE7a0JBVHpCLFNBQVM7K0JBQ0UsVUFBVSxjQUNSLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUcvQixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7OEJBSXZCLEdBQUc7c0JBQVgsS0FBSztnQkFFRyxHQUFHO3NCQUFYLEtBQUs7Z0JBRUcsR0FBRztzQkFBWCxLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsS0FBSztzQkFBYixLQUFLO2dCQVlnQyxPQUFPO3NCQUE1QyxTQUFTO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICB0eXBlIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgb3B0aW9uc0dyaWRUZW1wbGF0ZUNvbHVtbnMgfSBmcm9tIFwiQG1hZ2ljeC1lbmcvYWktYXV0b2NvbXBsZXRlLXZhbmlsbGFcIjtcblxuLyoqXG4gKiBJbnRyaW5zaWMgZ3JpZCBsYXlvdXQgcHJpbWl0aXZlIOKAlCBhdXRvLWZpdHMgYXMgbWFueSBjb2x1bW5zIGFzIGZpdCBiZXR3ZWVuXG4gKiBgbWluYCBhbmQgYG1heGAgd2lkZSwgd3JhcHBpbmcgdG8gbmV3IHJvd3Mgd2hlbiB0aGVyZSdzIG5vIG1vcmUgaG9yaXpvbnRhbFxuICogcm9vbS4gTWlycm9ycyB0aGUgUmVhY3QgYDxHcmlkPmAgY29tcG9uZW50IC8gdmFuaWxsYSBgLmFpYS1ncmlkYCBwcmltaXRpdmUuXG4gKlxuICogT3B0aW9uYWxseSBzY3JvbGxzIChgc2Nyb2xsYCwgY2FwcGVkIGhlaWdodCkuXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtZ3JpZFwiLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9ncmlkLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9ncmlkLmNvbXBvbmVudC5jc3NcIl0sXG4gIGhvc3Q6IHsgY2xhc3M6IFwiYWlhLWdyaWQtaG9zdFwiIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdyaWRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAvKiogTWluaW11bSBjZWxsIHdpZHRoLiBDU1MgbGVuZ3RoLCBlLmcuIFwiMTZyZW1cIi4gQ29sdW1ucyBhdXRvLWZpdCBhdCBydW50aW1lLiAqL1xuICBASW5wdXQoKSBtaW4gPSBcIjE2cmVtXCI7XG4gIC8qKiBNYXhpbXVtIGNlbGwgd2lkdGguIENTUyBsZW5ndGguIERlZmF1bHRzICh2aWEgQ1NTKSB0byBgMWZyYCAoc3RyZXRjaCkuICovXG4gIEBJbnB1dCgpIG1heD86IHN0cmluZztcbiAgLyoqIEdhcCBiZXR3ZWVuIGNlbGxzLiAqL1xuICBASW5wdXQoKSBnYXA/OiBzdHJpbmc7XG4gIC8qKiBDYXAgdGhlIGhlaWdodCBhbmQgc2Nyb2xsIHZlcnRpY2FsbHkgd2hlbiBjb250ZW50IG92ZXJmbG93cy4gKi9cbiAgQElucHV0KCkgc2Nyb2xsID0gZmFsc2U7XG4gIC8qKiBNYXggaGVpZ2h0IHdoZW4gYHNjcm9sbGAuIENTUyBsZW5ndGguIERlZmF1bHRzICh2aWEgQ1NTKSB0byAxMjBweC4gKi9cbiAgQElucHV0KCkgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuICAvKiogU2Nyb2xsIGJhY2sgdG8gdGhlIHRvcCB3aGVuZXZlciB0aGlzIGtleSBjaGFuZ2VzIChgc2Nyb2xsYCBvbmx5KS4gKi9cbiAgQElucHV0KCkgc2Nyb2xsUmVzZXRLZXk/OiBzdHJpbmc7XG4gIC8qKiBGaXhlZCBjb2x1bW4gY291bnQuIE92ZXJyaWRlcyB0aGUgaW50cmluc2ljIGF1dG8tZml0IHdoZW4gc2V0OyByb3dzIGZpbGwgbGVmdC10by1yaWdodC4gKi9cbiAgQElucHV0KCkgY29scz86IG51bWJlcjtcbiAgLyoqIEV4cGxpY2l0IGBncmlkLXRlbXBsYXRlLWNvbHVtbnNgIHZhbHVlLiBPdmVycmlkZXMgYGNvbHNgIHdoZW4gc2V0LiAqL1xuICBASW5wdXQoKSB0ZW1wbGF0ZT86IHN0cmluZztcbiAgLyoqXG4gICAqIElkZW50aXR5IG9mIHRoZSBjb250ZW50IGdyb3VwIG9uIHNjcmVlbiwgbWlycm9yZWQgb250byBgZGF0YS1haWEtZ3JvdXBgLlxuICAgKiBUaGUgY29yZSdzIHNjcm9sbC1hcnJvdyBjb250cm9sbGVyIHJlYWRzIGl0IHRvIHRlbGwgYSBuZXcgc2V0IG9mIG9wdGlvbnNcbiAgICogKHJpc2luZyBpbikgZnJvbSB0aGUgc2FtZSBzZXQgcmUtcmVuZGVyZWQuXG4gICAqL1xuICBASW5wdXQoKSBncm91cD86IHN0cmluZztcblxuICAvKipcbiAgICogRXhwbGljaXQgY29sdW1uIHRlbXBsYXRlIG92ZXJyaWRlcyB0aGUgaW50cmluc2ljIGF1dG8tZml0IChpbmxpbmUgd2lucykuXG4gICAqIFRoZSB0cmFjayBzdHJpbmcgaXMgYnVpbHQgYnkgdGhlIGNvcmUgc28gYWxsIHRocmVlIHBhY2thZ2VzIGVtaXQgdGhlIHNhbWVcbiAgICogb25lOyBhIG1lYXN1cmVkIHRlbXBsYXRlICh0aGUgdHdvLWNvbHVtbiBzcGxpdCkgd2lucyBvdmVyIHRoZSBjb3VudC5cbiAgICovXG4gIGdldCB0ZW1wbGF0ZUNvbHVtbnMoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKHRoaXMudGVtcGxhdGUpIHJldHVybiB0aGlzLnRlbXBsYXRlO1xuICAgIHJldHVybiB0aGlzLmNvbHMgPyBvcHRpb25zR3JpZFRlbXBsYXRlQ29sdW1ucyh0aGlzLmNvbHMpIDogbnVsbDtcbiAgfVxuXG4gIEBWaWV3Q2hpbGQoXCJncmlkXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBncmlkUmVmPzogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgLyoqXG4gICAqIEEgbmV3IGBzY3JvbGxSZXNldEtleWAgbWVhbnMgYSBkaWZmZXJlbnQgY29udGVudCBncm91cCBpcyBiZWluZyBzaG93biAoZS5nLlxuICAgKiB0aGUgbmV4dCBzdWdnZXN0aW9uJ3Mgb3B0aW9ucyBhZnRlciBhIHNlbGVjdGlvbikg4oCUIHN0YXJ0IGl0IGZyb20gdGhlIHRvcFxuICAgKiBpbnN0ZWFkIG9mIGluaGVyaXRpbmcgdGhlIHByZXZpb3VzIGdyb3VwJ3Mgc2Nyb2xsIG9mZnNldC5cbiAgICovXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2UgPSBjaGFuZ2VzW1wic2Nyb2xsUmVzZXRLZXlcIl07XG4gICAgaWYgKCFjaGFuZ2UgfHwgY2hhbmdlLmlzRmlyc3RDaGFuZ2UoKSkgcmV0dXJuO1xuICAgIGNvbnN0IGdyaWQgPSB0aGlzLmdyaWRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGdyaWQpIGdyaWQuc2Nyb2xsVG9wID0gMDtcbiAgfVxufVxuIiwiPGRpdlxuICAjZ3JpZFxuICBjbGFzcz1cImFpYS1ncmlkXCJcbiAgW2F0dHIuZGF0YS1zY3JvbGxdPVwic2Nyb2xsID8gJycgOiBudWxsXCJcbiAgW2F0dHIuZGF0YS1haWEtZ3JvdXBdPVwiZ3JvdXAgPz8gbnVsbFwiXG4gIFtzdHlsZS4tLWFpYS1ncmlkLW1pbl09XCJtaW5cIlxuICBbc3R5bGUuLS1haWEtZ3JpZC1tYXhdPVwibWF4XCJcbiAgW3N0eWxlLi0tYWlhLWdyaWQtZ2FwXT1cImdhcFwiXG4gIFtzdHlsZS4tLWFpYS1ncmlkLW1heC1oZWlnaHRdPVwibWF4SGVpZ2h0XCJcbiAgW3N0eWxlLmdyaWQtdGVtcGxhdGUtY29sdW1uc109XCJ0ZW1wbGF0ZUNvbHVtbnNcIlxuPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -13,14 +13,14 @@ export class StackComponent {
|
|
|
13
13
|
}
|
|
14
14
|
}
|
|
15
15
|
StackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
-
StackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StackComponent, isStandalone: true, selector: "aia-stack", inputs: { space: "space", align: "align" }, host: { properties: { "attr.data-align": "align", "style.--aia-stack-space": "space" }, classAttribute: "aia-stack" }, ngImport: i0, template: "<ng-content></ng-content>", isInline: true, styles: ["
|
|
16
|
+
StackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: StackComponent, isStandalone: true, selector: "aia-stack", inputs: { space: "space", align: "align" }, host: { properties: { "attr.data-align": "align", "style.--aia-stack-space": "space" }, classAttribute: "aia-stack" }, ngImport: i0, template: "<ng-content></ng-content>", isInline: true, styles: [".aia-stack{display:flex;flex-direction:column;gap:var(--aia-stack-space, .5rem)}.aia-stack[data-align=start]{align-items:start}.aia-stack[data-align=center]{align-items:center}.aia-stack[data-align=end]{align-items:end}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
17
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: StackComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
19
|
args: [{ selector: "aia-stack", standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>", host: {
|
|
20
20
|
class: "aia-stack",
|
|
21
21
|
"[attr.data-align]": "align",
|
|
22
22
|
"[style.--aia-stack-space]": "space",
|
|
23
|
-
}, styles: ["
|
|
23
|
+
}, styles: [".aia-stack{display:flex;flex-direction:column;gap:var(--aia-stack-space, .5rem)}.aia-stack[data-align=start]{align-items:start}.aia-stack[data-align=center]{align-items:center}.aia-stack[data-align=end]{align-items:end}\n"] }]
|
|
24
24
|
}], propDecorators: { space: [{
|
|
25
25
|
type: Input
|
|
26
26
|
}], align: [{
|
|
@@ -49,7 +49,7 @@ export class SuggestionItemComponent {
|
|
|
49
49
|
if (this.enterDelay === null)
|
|
50
50
|
this.enterDelay = value;
|
|
51
51
|
}
|
|
52
|
-
/** The option's text
|
|
52
|
+
/** The option's text. `icon` is the icon's name and is never shown as text. */
|
|
53
53
|
get label() {
|
|
54
54
|
return optionLabel(this.option);
|
|
55
55
|
}
|
|
@@ -124,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
124
124
|
}], highlight: [{
|
|
125
125
|
type: Output
|
|
126
126
|
}] } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTdDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFVSCxNQUFNLE9BQU8sdUJBQXVCO0lBVHBDO1FBV1csa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsOEVBQThFO1FBQ3JFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekIsOEZBQThGO1FBQ3JGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTNUI7Ozs7V0FJRztRQUNILGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQzlDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFp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LFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFLNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFVYSxNQUFNO3NCQUF4QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBvcHRpb25MYWJlbCxcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIEludGVybmFsIHNpbmdsZS1vcHRpb24gY2VsbCB1c2VkIGluc2lkZSB0aGUgc3VnZ2VzdGlvbiBncmlkLiBNaXJyb3JzXG4gKiBgcGFja2FnZXMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvU3VnZ2VzdGlvbkl0ZW0udHN4YC4gSGFuZGxlczpcbiAqXG4gKiAtIFRhcHBhYmxlIHZzIG5vbi10YXBwYWJsZSBjdXJzb3IgKyBob3ZlciBzdHlsaW5nXG4gKiAtIFByZXNzZWQtc3RhdGUgY29tcHJlc3MgYW5pbWF0aW9uICgxNzBtcywgc2luZ2xlLWZsaWdodClcbiAqIC0gS2V5Ym9hcmQgYWN0aXZhdGlvbiAoRW50ZXIvU3BhY2UpXG4gKiAtIEFSSUEgYHJvbGU9XCJvcHRpb25cImAgKyBgYXJpYS1zZWxlY3RlZGAgZm9yIHRoZSBsaXN0Ym94IHBhdHRlcm5cbiAqIC0gTG9hZGluZyBza2VsZXRvbiB3aGVuIGBsb2FkaW5nPXRydWVgXG4gKiAtIFNlcnZlci1wcm92aWRlZCBpY29uIChgaWNvbl9zdmdgKSwgYWxsb3dsaXN0ZWQgdGhyb3VnaCB0aGUgY29yZSdzXG4gKiAgIGBzYW5pdGl6ZU9wdGlvbkljb25TdmdgIGJlZm9yZSBpdCBpcyBib3VuZCBhcyBIVE1MXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBGYWRlIHRoaXMgb3B0aW9uJ3MgdGV4dCB0b3dhcmQgaXRzIGJvdHRvbSBlZGdlIChsYXN0IHZpc2libGUgcm93IG9mIGEgc2Nyb2xsYWJsZSBncmlkKS4gKi9cbiAgQElucHV0KCkgc2Nyb2xsSGludCA9IGZhbHNlO1xuICAvKipcbiAgICogU3RhcnQgZGVsYXkgb2YgdGhpcyByb3cncyBlbnRyYW5jZSBhbmltYXRpb24gKG1zKSDigJQgZWFjaCByb3cgcmlzZXMgaW4gYVxuICAgKiBiZWF0IGFmdGVyIHRoZSBvbmUgbmVhcmVyIHRoZSBpbnB1dC4gQ2FwdHVyZWQgb25jZSwgb24gZmlyc3QgcmVuZGVyLCBzbyBhXG4gICAqIGxhdGVyIGNoYW5nZS1kZXRlY3Rpb24gcGFzcyBjYW4ndCByZXN0YXJ0IGEgcm93IG1pZC1yaXNlLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IGVudGVyRGVsYXlNcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW50ZXJEZWxheSA9PT0gbnVsbCkgdGhpcy5lbnRlckRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjYXB0dXJlZCBkZWxheTsgYG51bGxgIHVudGlsIHRoZSBmaXJzdCBgZW50ZXJEZWxheU1zYCBiaW5kaW5nIGxhbmRzLlxuICAgKiBUaGUgdGVtcGxhdGUgYmluZHMgaXQgdG8gYC0tYWlhLW9wdGlvbi1lbnRlci1kZWxheWAgKHRoZSBjb3JlJ3NcbiAgICogT1BUSU9OX0VOVEVSX0RFTEFZX1ZBUiksIHdoaWNoIHRoZSBzdHlsZXNoZWV0J3MgZW50cmFuY2UgcnVsZSByZWFkcy5cbiAgICovXG4gIGVudGVyRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3Rpb25PcHRpb24+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBoaWdobGlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBwcmVzc2VkVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25Tb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uU2FmZTogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG9wdGlvbidzIHRleHQsIHdpdGggYSBsZWdhY3kgYGljb25gIChubyBgaWNvbl9zdmdgKSBwcmVmaXhlZC4gKi9cbiAgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIG9wdGlvbkxhYmVsKHRoaXMub3B0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgb3B0aW9uJ3MgaWNvbiBhcyBiaW5kYWJsZSBIVE1MLCBvciBgbnVsbGAgd2hlbiBpdCBoYXMgbm9uZSAob3IgaXRzXG4gICAqIG1hcmt1cCBmYWlsZWQgdGhlIGFsbG93bGlzdCkuIEFuZ3VsYXIncyBvd24gSFRNTCBzYW5pdGl6ZXIgc3RyaXBzIGA8c3ZnPmBcbiAgICogd2hvbGVzYWxlLCBzbyB0aGUgY29yZSdzIGFsbG93bGlzdGVkIG91dHB1dCBpcyBtYXJrZWQgdHJ1c3RlZCBpbnN0ZWFkIOKAlFxuICAgKiBpdCBpcyBuZXZlciB0aGUgc2VydmVyJ3MgcmF3IHN0cmluZy4gUmVjb21wdXRlZCBvbmx5IHdoZW4gdGhlIG1hcmt1cFxuICAgKiBjaGFuZ2VzOyB0aGUgZ2V0dGVyIHJ1bnMgb24gZXZlcnkgT25QdXNoIGNoZWNrLlxuICAgKi9cbiAgZ2V0IGljb25IdG1sKCk6IFNhZmVIdG1sIHwgbnVsbCB7XG4gICAgY29uc3Qgc3ZnID0gdGhpcy5zaG93SWNvbiA/IHRoaXMub3B0aW9uLmljb25fc3ZnIDogdW5kZWZpbmVkO1xuICAgIGlmIChzdmcgIT09IHRoaXMuaWNvblNvdXJjZSkge1xuICAgICAgdGhpcy5pY29uU291cmNlID0gc3ZnO1xuICAgICAgY29uc3QgaHRtbCA9IHN2ZyA/IHNhbml0aXplT3B0aW9uSWNvblN2ZyhzdmcpIDogbnVsbDtcbiAgICAgIHRoaXMuaWNvblNhZmUgPSBodG1sID8gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwoaHRtbCkgOiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5pY29uU2FmZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByZXNzZWRUaW1lciAhPT0gdW5kZWZpbmVkKSBjbGVhclRpbWVvdXQodGhpcy5wcmVzc2VkVGltZXIpO1xuICB9XG5cbiAgb25TZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUgfHwgdGhpcy5wcmVzc2VkKSByZXR1cm47XG4gICAgdGhpcy5wcmVzc2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMub3B0aW9uKTtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgICB0aGlzLnByZXNzZWRUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5wcmVzc2VkID0gZmFsc2U7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9LCAxNzApO1xuICB9XG5cbiAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgdGhpcy5oaWdobGlnaHQuZW1pdCgpO1xuICB9XG5cbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKHRoaXMubG9hZGluZyB8fCAhdGhpcy5vcHRpb24uaXNfdGFwcGFibGUpIHJldHVybjtcbiAgICBpZiAoZXZlbnQua2V5ID09PSBcIkVudGVyXCIgfHwgZXZlbnQua2V5ID09PSBcIiBcIikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMub25TZWxlY3QoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgW2lkXT1cImlkXCJcbiAgcm9sZT1cIm9wdGlvblwiXG4gIGRhdGEtYWlhLW9wdGlvbj1cIlwiXG4gIFthdHRyLmRhdGEtYWlhLWxvYWRpbmddPVwibG9hZGluZyA/ICcnIDogbnVsbFwiXG4gIFthdHRyLmRhdGEtYWlhLWljb25dPVwiaWNvbkh0bWwgJiYgb3B0aW9uLmljb24gPyBvcHRpb24uaWNvbiA6IG51bGxcIlxuICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cImlzSGlnaGxpZ2h0ZWRcIlxuICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWl0ZW1cIlxuICBbc3R5bGUuLS1haWEtb3B0aW9uLWVudGVyLWRlbGF5XT1cIihlbnRlckRlbGF5ID8/IDApICsgJ21zJ1wiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLWhpZ2hsaWdodGVkXT1cImlzSGlnaGxpZ2h0ZWQgJiYgIWxvYWRpbmdcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS10YXBwYWJsZV09XCJvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1ub24tdGFwcGFibGVdPVwiIW9wdGlvbi5pc190YXBwYWJsZVwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXByZXNzZWRdPVwicHJlc3NlZFwiXG4gIFtjbGFzcy5haWEtc3VnZ2VzdGlvbi1pdGVtLXNjcm9sbC1oaW50XT1cInNjcm9sbEhpbnRcIlxuICBbYXR0ci50YWJpbmRleF09XCJsb2FkaW5nIHx8ICFvcHRpb24uaXNfdGFwcGFibGUgPyAtMSA6IDBcIlxuICAoY2xpY2spPVwib25TZWxlY3QoKVwiXG4gIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKClcIlxuPlxuICA8c3BhbiBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWNvbnRlbnRcIj5cbiAgICA8c3BhblxuICAgICAgKm5nSWY9XCJpY29uSHRtbFwiXG4gICAgICBjbGFzcz1cImFpYS1zdWdnZXN0aW9uLWljb25cIlxuICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgIFtpbm5lckhUTUxdPVwiaWNvbkh0bWxcIlxuICAgID48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi10ZXh0XCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJvcHRpb24udGFnXCIgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi10YWdcIj57eyBvcHRpb24udGFnIH19PC9zcGFuPlxuICA8L3NwYW4+XG48L2Rpdj5cbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VnZ2VzdGlvbi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvaW50ZXJuYWwvc3VnZ2VzdGlvbi1pdGVtL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2ludGVybmFsL3N1Z2dlc3Rpb24taXRlbS9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixNQUFNLEVBQ04saUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWlCLE1BQU0sMkJBQTJCLENBQUM7QUFDeEUsT0FBTyxFQUNMLFdBQVcsRUFFWCxxQkFBcUIsR0FDdEIsTUFBTSxxQ0FBcUMsQ0FBQzs7O0FBRTdDOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFVSCxNQUFNLE9BQU8sdUJBQXVCO0lBVHBDO1FBV1csa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsT0FBRSxHQUFHLEVBQUUsQ0FBQztRQUNSLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsOEVBQThFO1FBQ3JFLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFDekIsOEZBQThGO1FBQ3JGLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFTNUI7Ozs7V0FJRztRQUNILGVBQVUsR0FBa0IsSUFBSSxDQUFDO1FBRWQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO1FBQzlDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRXhELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFFQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFp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LFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBQ04sdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSTs4QkFLNUIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBTU8sWUFBWTtzQkFBeEIsS0FBSztnQkFVYSxNQUFNO3NCQUF4QixNQUFNO2dCQUNZLFNBQVM7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgaW5qZWN0LFxuICB0eXBlIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IERvbVNhbml0aXplciwgdHlwZSBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5pbXBvcnQge1xuICBvcHRpb25MYWJlbCxcbiAgdHlwZSBTdWdnZXN0aW9uT3B0aW9uLFxuICBzYW5pdGl6ZU9wdGlvbkljb25TdmcsXG59IGZyb20gXCJAbWFnaWN4LWVuZy9haS1hdXRvY29tcGxldGUtdmFuaWxsYVwiO1xuXG4vKipcbiAqIEludGVybmFsIHNpbmdsZS1vcHRpb24gY2VsbCB1c2VkIGluc2lkZSB0aGUgc3VnZ2VzdGlvbiBncmlkLiBNaXJyb3JzXG4gKiBgcGFja2FnZXMvcmVhY3Qvc3JjL2NvbXBvbmVudHMvU3VnZ2VzdGlvbkl0ZW0udHN4YC4gSGFuZGxlczpcbiAqXG4gKiAtIFRhcHBhYmxlIHZzIG5vbi10YXBwYWJsZSBjdXJzb3IgKyBob3ZlciBzdHlsaW5nXG4gKiAtIFByZXNzZWQtc3RhdGUgY29tcHJlc3MgYW5pbWF0aW9uICgxNzBtcywgc2luZ2xlLWZsaWdodClcbiAqIC0gS2V5Ym9hcmQgYWN0aXZhdGlvbiAoRW50ZXIvU3BhY2UpXG4gKiAtIEFSSUEgYHJvbGU9XCJvcHRpb25cImAgKyBgYXJpYS1zZWxlY3RlZGAgZm9yIHRoZSBsaXN0Ym94IHBhdHRlcm5cbiAqIC0gTG9hZGluZyBza2VsZXRvbiB3aGVuIGBsb2FkaW5nPXRydWVgXG4gKiAtIFNlcnZlci1wcm92aWRlZCBpY29uIChgaWNvbl9zdmdgKSwgYWxsb3dsaXN0ZWQgdGhyb3VnaCB0aGUgY29yZSdzXG4gKiAgIGBzYW5pdGl6ZU9wdGlvbkljb25TdmdgIGJlZm9yZSBpdCBpcyBib3VuZCBhcyBIVE1MXG4gKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6IFwiLi9zdWdnZXN0aW9uLWl0ZW0uY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmxzOiBbXCIuL3N1Z2dlc3Rpb24taXRlbS5jb21wb25lbnQuY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBTdWdnZXN0aW9uSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIG9wdGlvbiE6IFN1Z2dlc3Rpb25PcHRpb247XG4gIEBJbnB1dCgpIGlzSGlnaGxpZ2h0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaWQgPSBcIlwiO1xuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XG4gIC8qKiBXaGV0aGVyIHRvIGRyYXcgdGhlIG9wdGlvbidzIGBpY29uX3N2Z2AgYmVmb3JlIGl0cyB0ZXh0LiBEZWZhdWx0OiB0cnVlLiAqL1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIC8qKiBGYWRlIHRoaXMgb3B0aW9uJ3MgdGV4dCB0b3dhcmQgaXRzIGJvdHRvbSBlZGdlIChsYXN0IHZpc2libGUgcm93IG9mIGEgc2Nyb2xsYWJsZSBncmlkKS4gKi9cbiAgQElucHV0KCkgc2Nyb2xsSGludCA9IGZhbHNlO1xuICAvKipcbiAgICogU3RhcnQgZGVsYXkgb2YgdGhpcyByb3cncyBlbnRyYW5jZSBhbmltYXRpb24gKG1zKSDigJQgZWFjaCByb3cgcmlzZXMgaW4gYVxuICAgKiBiZWF0IGFmdGVyIHRoZSBvbmUgbmVhcmVyIHRoZSBpbnB1dC4gQ2FwdHVyZWQgb25jZSwgb24gZmlyc3QgcmVuZGVyLCBzbyBhXG4gICAqIGxhdGVyIGNoYW5nZS1kZXRlY3Rpb24gcGFzcyBjYW4ndCByZXN0YXJ0IGEgcm93IG1pZC1yaXNlLlxuICAgKi9cbiAgQElucHV0KCkgc2V0IGVudGVyRGVsYXlNcyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZW50ZXJEZWxheSA9PT0gbnVsbCkgdGhpcy5lbnRlckRlbGF5ID0gdmFsdWU7XG4gIH1cbiAgLyoqXG4gICAqIFRoZSBjYXB0dXJlZCBkZWxheTsgYG51bGxgIHVudGlsIHRoZSBmaXJzdCBgZW50ZXJEZWxheU1zYCBiaW5kaW5nIGxhbmRzLlxuICAgKiBUaGUgdGVtcGxhdGUgYmluZHMgaXQgdG8gYC0tYWlhLW9wdGlvbi1lbnRlci1kZWxheWAgKHRoZSBjb3JlJ3NcbiAgICogT1BUSU9OX0VOVEVSX0RFTEFZX1ZBUiksIHdoaWNoIHRoZSBzdHlsZXNoZWV0J3MgZW50cmFuY2UgcnVsZSByZWFkcy5cbiAgICovXG4gIGVudGVyRGVsYXk6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPFN1Z2dlc3Rpb25PcHRpb24+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBoaWdobGlnaHQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcbiAgcHJpdmF0ZSBwcmVzc2VkVGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGljb25Tb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBpY29uU2FmZTogU2FmZUh0bWwgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIG9wdGlvbidzIHRleHQuIGBpY29uYCBpcyB0aGUgaWNvbidzIG5hbWUgYW5kIGlzIG5ldmVyIHNob3duIGFzIHRleHQuICovXG4gIGdldCBsYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBvcHRpb25MYWJlbCh0aGlzLm9wdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogVGhlIG9wdGlvbidzIGljb24gYXMgYmluZGFibGUgSFRNTCwgb3IgYG51bGxgIHdoZW4gaXQgaGFzIG5vbmUgKG9yIGl0c1xuICAgKiBtYXJrdXAgZmFpbGVkIHRoZSBhbGxvd2xpc3QpLiBBbmd1bGFyJ3Mgb3duIEhUTUwgc2FuaXRpemVyIHN0cmlwcyBgPHN2Zz5gXG4gICAqIHdob2xlc2FsZSwgc28gdGhlIGNvcmUncyBhbGxvd2xpc3RlZCBvdXRwdXQgaXMgbWFya2VkIHRydXN0ZWQgaW5zdGVhZCDigJRcbiAgICogaXQgaXMgbmV2ZXIgdGhlIHNlcnZlcidzIHJhdyBzdHJpbmcuIFJlY29tcHV0ZWQgb25seSB3aGVuIHRoZSBtYXJrdXBcbiAgICogY2hhbmdlczsgdGhlIGdldHRlciBydW5zIG9uIGV2ZXJ5IE9uUHVzaCBjaGVjay5cbiAgICovXG4gIGdldCBpY29uSHRtbCgpOiBTYWZlSHRtbCB8IG51bGwge1xuICAgIGNvbnN0IHN2ZyA9IHRoaXMuc2hvd0ljb24gPyB0aGlzLm9wdGlvbi5pY29uX3N2ZyA6IHVuZGVmaW5lZDtcbiAgICBpZiAoc3ZnICE9PSB0aGlzLmljb25Tb3VyY2UpIHtcbiAgICAgIHRoaXMuaWNvblNvdXJjZSA9IHN2ZztcbiAgICAgIGNvbnN0IGh0bWwgPSBzdmcgPyBzYW5pdGl6ZU9wdGlvbkljb25Tdmcoc3ZnKSA6IG51bGw7XG4gICAgICB0aGlzLmljb25TYWZlID0gaHRtbCA/IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpIDogbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaWNvblNhZmU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVzc2VkVGltZXIgIT09IHVuZGVmaW5lZCkgY2xlYXJUaW1lb3V0KHRoaXMucHJlc3NlZFRpbWVyKTtcbiAgfVxuXG4gIG9uU2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlIHx8IHRoaXMucHJlc3NlZCkgcmV0dXJuO1xuICAgIHRoaXMucHJlc3NlZCA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgdGhpcy5zZWxlY3QuZW1pdCh0aGlzLm9wdGlvbik7XG4gICAgaWYgKHRoaXMucHJlc3NlZFRpbWVyICE9PSB1bmRlZmluZWQpIGNsZWFyVGltZW91dCh0aGlzLnByZXNzZWRUaW1lcik7XG4gICAgdGhpcy5wcmVzc2VkVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMucHJlc3NlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfSwgMTcwKTtcbiAgfVxuXG4gIG9uTW91c2VFbnRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb2FkaW5nIHx8ICF0aGlzLm9wdGlvbi5pc190YXBwYWJsZSkgcmV0dXJuO1xuICAgIHRoaXMuaGlnaGxpZ2h0LmVtaXQoKTtcbiAgfVxuXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmxvYWRpbmcgfHwgIXRoaXMub3B0aW9uLmlzX3RhcHBhYmxlKSByZXR1cm47XG4gICAgaWYgKGV2ZW50LmtleSA9PT0gXCJFbnRlclwiIHx8IGV2ZW50LmtleSA9PT0gXCIgXCIpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLm9uU2VsZWN0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIFtpZF09XCJpZFwiXG4gIHJvbGU9XCJvcHRpb25cIlxuICBkYXRhLWFpYS1vcHRpb249XCJcIlxuICBbYXR0ci5kYXRhLWFpYS1sb2FkaW5nXT1cImxvYWRpbmcgPyAnJyA6IG51bGxcIlxuICBbYXR0ci5kYXRhLWFpYS1pY29uXT1cImljb25IdG1sICYmIG9wdGlvbi5pY29uID8gb3B0aW9uLmljb24gOiBudWxsXCJcbiAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0hpZ2hsaWdodGVkXCJcbiAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pdGVtXCJcbiAgW3N0eWxlLi0tYWlhLW9wdGlvbi1lbnRlci1kZWxheV09XCIoZW50ZXJEZWxheSA/PyAwKSArICdtcydcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1oaWdobGlnaHRlZF09XCJpc0hpZ2hsaWdodGVkICYmICFsb2FkaW5nXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tdGFwcGFibGVdPVwib3B0aW9uLmlzX3RhcHBhYmxlXCJcbiAgW2NsYXNzLmFpYS1zdWdnZXN0aW9uLWl0ZW0tbm9uLXRhcHBhYmxlXT1cIiFvcHRpb24uaXNfdGFwcGFibGVcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1wcmVzc2VkXT1cInByZXNzZWRcIlxuICBbY2xhc3MuYWlhLXN1Z2dlc3Rpb24taXRlbS1zY3JvbGwtaGludF09XCJzY3JvbGxIaW50XCJcbiAgW2F0dHIudGFiaW5kZXhdPVwibG9hZGluZyB8fCAhb3B0aW9uLmlzX3RhcHBhYmxlID8gLTEgOiAwXCJcbiAgKGNsaWNrKT1cIm9uU2VsZWN0KClcIlxuICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiXG4gIChtb3VzZWVudGVyKT1cIm9uTW91c2VFbnRlcigpXCJcbj5cbiAgPHNwYW4gY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1jb250ZW50XCI+XG4gICAgPHNwYW5cbiAgICAgICpuZ0lmPVwiaWNvbkh0bWxcIlxuICAgICAgY2xhc3M9XCJhaWEtc3VnZ2VzdGlvbi1pY29uXCJcbiAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICBbaW5uZXJIVE1MXT1cImljb25IdG1sXCJcbiAgICA+PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGV4dFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwib3B0aW9uLnRhZ1wiIGNsYXNzPVwiYWlhLXN1Z2dlc3Rpb24tdGFnXCI+e3sgb3B0aW9uLnRhZyB9fTwvc3Bhbj5cbiAgPC9zcGFuPlxuPC9kaXY+XG4iXX0=
|