@vendure/admin-ui 2.2.4 → 2.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/catalog/components/product-detail/product-detail.component.d.ts +1 -4
  2. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
  3. package/catalog/providers/product-detail/product-detail.service.d.ts +1 -3
  4. package/core/common/version.d.ts +1 -1
  5. package/core/extension/register-data-table-component.d.ts +1 -1
  6. package/core/shared/components/dropdown/dropdown-menu.component.d.ts +5 -2
  7. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +1 -9
  8. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  9. package/core/shared/components/timeline-entry/timeline-entry.component.d.ts +2 -1
  10. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
  11. package/esm2022/catalog/catalog.module.mjs +7 -7
  12. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +11 -8
  13. package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +2 -1
  14. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +1 -14
  15. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +6 -2
  16. package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +43 -27
  17. package/esm2022/core/common/version.mjs +2 -2
  18. package/esm2022/core/extension/register-data-table-component.mjs +2 -2
  19. package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +1 -1
  20. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +2 -2
  21. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +2 -2
  22. package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +29 -6
  23. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +2 -10
  24. package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +5 -3
  25. package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +2 -2
  26. package/esm2022/core/shared/shared.module.mjs +1 -1
  27. package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +1 -1
  28. package/esm2022/customer/components/customer-history/customer-history.component.mjs +3 -3
  29. package/esm2022/customer/customer.routes.mjs +2 -2
  30. package/esm2022/marketing/marketing.module.mjs +2 -2
  31. package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +1 -1
  32. package/esm2022/order/components/order-history/order-history.component.mjs +3 -3
  33. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +22 -3
  34. package/fesm2022/vendure-admin-ui-catalog.mjs +64 -53
  35. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  36. package/fesm2022/vendure-admin-ui-core.mjs +40 -23
  37. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  38. package/fesm2022/vendure-admin-ui-customer.mjs +4 -4
  39. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  40. package/fesm2022/vendure-admin-ui-marketing.mjs +1 -1
  41. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  42. package/fesm2022/vendure-admin-ui-order.mjs +3 -3
  43. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  44. package/fesm2022/vendure-admin-ui-settings.mjs +20 -1
  45. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  46. package/package.json +14 -14
@@ -1,6 +1,6 @@
1
1
  import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
2
  import { FormBuilder } from '@angular/forms';
3
- import { Asset, DataService, GetProductDetailDocument, GetProductWithVariantsQuery, LanguageCode, ModalService, NotificationService, Permission, ProductDetailFragment, ProductVariantFragment, TypedBaseDetailComponent, UpdateProductOptionInput } from '@vendure/admin-ui/core';
3
+ import { Asset, DataService, GetProductDetailDocument, GetProductWithVariantsQuery, LanguageCode, ModalService, NotificationService, Permission, ProductDetailFragment, ProductVariantFragment, TypedBaseDetailComponent } from '@vendure/admin-ui/core';
4
4
  import { Observable } from 'rxjs';
5
5
  import { ProductDetailService } from '../../providers/product-detail/product-detail.service';
6
6
  import { CreateProductVariantsConfig } from '../generate-product-variants/generate-product-variants.component';
@@ -51,9 +51,6 @@ export declare class ProductDetailComponent extends TypedBaseDetailComponent<typ
51
51
  */
52
52
  updateSlug(nameValue: string): void;
53
53
  selectProductFacetValue(): void;
54
- updateProductOption(input: UpdateProductOptionInput & {
55
- autoUpdate: boolean;
56
- }): void;
57
54
  removeProductFacetValue(facetValueId: string): void;
58
55
  private displayFacetValueModal;
59
56
  create(): void;
@@ -7,7 +7,7 @@ export declare class ProductVariantListComponent extends TypedBaseListComponent<
7
7
  dataTableId: DataTableLocationId | undefined;
8
8
  readonly customFields: import("@vendure/admin-ui/core").CustomFieldConfig[];
9
9
  readonly filters: import("@vendure/admin-ui/core").DataTableFilterCollection<ProductVariantFilterParameter>;
10
- readonly sorts: import("@vendure/admin-ui/core").DataTableSortCollection<import("@vendure/admin-ui/core").ProductVariantSortParameter, ["name" | "id" | "createdAt" | "updatedAt" | "price" | "priceWithTax" | "sku"]>;
10
+ readonly sorts: import("@vendure/admin-ui/core").DataTableSortCollection<import("@vendure/admin-ui/core").ProductVariantSortParameter, ["name" | "price" | "sku" | "id" | "createdAt" | "updatedAt" | "priceWithTax"]>;
11
11
  constructor();
12
12
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductVariantListComponent, never>;
13
13
  static ɵcmp: i0.ɵɵComponentDeclaration<ProductVariantListComponent, "vdr-product-variant-list", never, { "productId": { "alias": "productId"; "required": false; }; "hideLanguageSelect": { "alias": "hideLanguageSelect"; "required": false; }; "dataTableId": { "alias": "dataTableId"; "required": false; }; }, {}, never, never, false, never>;
@@ -279,9 +279,7 @@ export declare class ProductDetailService {
279
279
  productInput?: UpdateProductInput;
280
280
  variantsInput?: UpdateProductVariantInput[];
281
281
  }): Observable<(UpdateProductMutation | UpdateProductVariantsMutation)[]>;
282
- updateProductOption(input: UpdateProductOptionInput & {
283
- autoUpdate: boolean;
284
- }, product: NonNullable<GetProductDetailQuery['product']>, languageCode: LanguageCode): Observable<any>;
282
+ updateProductOptions(inputs: UpdateProductOptionInput[], autoUpdateProductNames: boolean, product: NonNullable<GetProductDetailQuery['product']>, languageCode: LanguageCode): Observable<any>;
285
283
  deleteProductVariant(id: string, productId: string): Observable<GetProductWithVariantsQuery>;
286
284
  static ɵfac: i0.ɵɵFactoryDeclaration<ProductDetailService, never>;
287
285
  static ɵprov: i0.ɵɵInjectableDeclaration<ProductDetailService>;
@@ -1 +1 @@
1
- export declare const ADMIN_UI_VERSION = "2.2.4";
1
+ export declare const ADMIN_UI_VERSION = "2.2.6";
@@ -2,7 +2,7 @@ import { DataTableComponentConfig, DataTableCustomComponentService } from '../sh
2
2
  /**
3
3
  * @description
4
4
  * Allows you to override the default component used to render the data of a particular column in a DataTable.
5
- * The component should implement the {@link CustomDataTableColumnComponent} interface. The tableId and columnId can
5
+ * The component should implement the {@link CustomColumnComponent} interface. The tableId and columnId can
6
6
  * be determined by pressing `ctrl + u` when running the Admin UI in dev mode.
7
7
  *
8
8
  * @example
@@ -1,5 +1,5 @@
1
1
  import { Overlay } from '@angular/cdk/overlay';
2
- import { AfterViewInit, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
2
+ import { AfterViewInit, ChangeDetectorRef, OnDestroy, OnInit, ViewContainerRef } from '@angular/core';
3
3
  import { LocalizationDirectionType, LocalizationService } from '../../../providers/localization/localization.service';
4
4
  import { DropdownComponent } from './dropdown.component';
5
5
  import * as i0 from "@angular/core";
@@ -18,6 +18,7 @@ export declare class DropdownMenuComponent implements AfterViewInit, OnInit, OnD
18
18
  private viewContainerRef;
19
19
  private dropdown;
20
20
  private localizationService;
21
+ private changeDetector;
21
22
  direction$: LocalizationDirectionType;
22
23
  private position;
23
24
  customClasses: string;
@@ -25,9 +26,11 @@ export declare class DropdownMenuComponent implements AfterViewInit, OnInit, OnD
25
26
  private menuPortal;
26
27
  private overlayRef;
27
28
  private backdropClickSub;
29
+ protected maxHeight: number | undefined;
30
+ private resizeObserver;
28
31
  onEscapeKeydown(event: KeyboardEvent): void;
29
32
  onArrowKey(event: KeyboardEvent): void;
30
- constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, dropdown: DropdownComponent, localizationService: LocalizationService);
33
+ constructor(overlay: Overlay, viewContainerRef: ViewContainerRef, dropdown: DropdownComponent, localizationService: LocalizationService, changeDetector: ChangeDetectorRef);
31
34
  ngOnInit(): void;
32
35
  ngAfterViewInit(): void;
33
36
  ngOnDestroy(): void;
@@ -11,19 +11,11 @@ import * as i0 from "@angular/core";
11
11
  * @example
12
12
  * ```HTML
13
13
  * <vdr-facet-value-selector
14
- * [facets]="facets"
15
14
  * (selectedValuesChange)="selectedValues = $event"
16
15
  * ></vdr-facet-value-selector>
17
16
  * ```
18
- * The `facets` input should be provided from the parent component
19
- * like this:
17
+ * The `selectedValuesChange` event will emit an array of `FacetValue` objects.
20
18
  *
21
- * @example
22
- * ```ts
23
- * this.facets = this.dataService
24
- * .facet.getAllFacets()
25
- * .mapSingle(data => data.facets.items);
26
- * ```
27
19
  * @docsCategory components
28
20
  */
29
21
  export declare class FacetValueSelectorComponent implements OnInit, OnDestroy, ControlValueAccessor {
@@ -11,7 +11,7 @@ import * as i0 from "@angular/core";
11
11
  */
12
12
  export declare class OrderStateLabelComponent {
13
13
  state: string;
14
- get chipColorType(): "error" | "success" | "warning" | "";
14
+ get chipColorType(): "error" | "success" | "" | "warning";
15
15
  static ɵfac: i0.ɵɵFactoryDeclaration<OrderStateLabelComponent, never>;
16
16
  static ɵcmp: i0.ɵɵComponentDeclaration<OrderStateLabelComponent, "vdr-order-state-label", never, { "state": { "alias": "state"; "required": false; }; }, {}, never, ["*"], false, never>;
17
17
  }
@@ -7,6 +7,7 @@ export declare class TimelineEntryComponent {
7
7
  name: string;
8
8
  featured: boolean;
9
9
  iconShape?: string | [string, string];
10
+ isFirst?: boolean;
10
11
  isLast?: boolean;
11
12
  collapsed: boolean;
12
13
  expandClick: EventEmitter<any>;
@@ -14,5 +15,5 @@ export declare class TimelineEntryComponent {
14
15
  getIconShape(): string | undefined;
15
16
  getIconClass(): string | undefined;
16
17
  static ɵfac: i0.ɵɵFactoryDeclaration<TimelineEntryComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<TimelineEntryComponent, "vdr-timeline-entry", never, { "displayType": { "alias": "displayType"; "required": false; }; "createdAt": { "alias": "createdAt"; "required": false; }; "name": { "alias": "name"; "required": false; }; "featured": { "alias": "featured"; "required": false; }; "iconShape": { "alias": "iconShape"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; }, { "expandClick": "expandClick"; }, never, ["*"], false, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<TimelineEntryComponent, "vdr-timeline-entry", never, { "displayType": { "alias": "displayType"; "required": false; }; "createdAt": { "alias": "createdAt"; "required": false; }; "name": { "alias": "name"; "required": false; }; "featured": { "alias": "featured"; "required": false; }; "iconShape": { "alias": "iconShape"; "required": false; }; "isFirst": { "alias": "isFirst"; "required": false; }; "isLast": { "alias": "isLast"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; }, { "expandClick": "expandClick"; }, never, ["*"], false, never>;
18
19
  }
@@ -12,7 +12,7 @@ import { RelationFormInputComponent } from './relation-form-input/relation-form-
12
12
  import { SelectFormInputComponent } from './select-form-input/select-form-input.component';
13
13
  import { TextFormInputComponent } from './text-form-input/text-form-input.component';
14
14
  import { TextareaFormInputComponent } from './textarea-form-input/textarea-form-input.component';
15
- export declare const defaultFormInputs: (typeof HtmlEditorFormInputComponent | typeof SelectFormInputComponent | typeof RelationFormInputComponent | typeof ProductSelectorFormInputComponent | typeof CustomerGroupFormInputComponent | typeof CurrencyFormInputComponent | typeof JsonEditorFormInputComponent | typeof CombinationModeFormInputComponent | typeof DateFormInputComponent | typeof PasswordFormInputComponent | typeof ProductMultiSelectorFormInputComponent | typeof TextFormInputComponent | typeof TextareaFormInputComponent)[];
15
+ export declare const defaultFormInputs: (typeof HtmlEditorFormInputComponent | typeof JsonEditorFormInputComponent | typeof CombinationModeFormInputComponent | typeof CurrencyFormInputComponent | typeof CustomerGroupFormInputComponent | typeof DateFormInputComponent | typeof PasswordFormInputComponent | typeof ProductMultiSelectorFormInputComponent | typeof ProductSelectorFormInputComponent | typeof RelationFormInputComponent | typeof SelectFormInputComponent | typeof TextFormInputComponent | typeof TextareaFormInputComponent)[];
16
16
  /**
17
17
  * Registers the default form input components.
18
18
  */
@@ -86,21 +86,21 @@ export class CatalogModule {
86
86
  }
87
87
  bulkActionRegistryService.registerBulkAction(assignFacetValuesToProductsBulkAction);
88
88
  bulkActionRegistryService.registerBulkAction(assignProductsToChannelBulkAction);
89
- bulkActionRegistryService.registerBulkAction(assignProductVariantsToChannelBulkAction);
90
- bulkActionRegistryService.registerBulkAction(removeProductsFromChannelBulkAction);
91
- bulkActionRegistryService.registerBulkAction(removeProductVariantsFromChannelBulkAction);
92
89
  bulkActionRegistryService.registerBulkAction(duplicateProductsBulkAction);
90
+ bulkActionRegistryService.registerBulkAction(removeProductsFromChannelBulkAction);
93
91
  bulkActionRegistryService.registerBulkAction(deleteProductsBulkAction);
94
- bulkActionRegistryService.registerBulkAction(deleteProductVariantsBulkAction);
95
92
  bulkActionRegistryService.registerBulkAction(assignFacetValuesToProductVariantsBulkAction);
93
+ bulkActionRegistryService.registerBulkAction(assignProductVariantsToChannelBulkAction);
94
+ bulkActionRegistryService.registerBulkAction(removeProductVariantsFromChannelBulkAction);
95
+ bulkActionRegistryService.registerBulkAction(deleteProductVariantsBulkAction);
96
96
  bulkActionRegistryService.registerBulkAction(assignFacetsToChannelBulkAction);
97
- bulkActionRegistryService.registerBulkAction(removeFacetsFromChannelBulkAction);
98
97
  bulkActionRegistryService.registerBulkAction(duplicateFacetsBulkAction);
98
+ bulkActionRegistryService.registerBulkAction(removeFacetsFromChannelBulkAction);
99
99
  bulkActionRegistryService.registerBulkAction(deleteFacetsBulkAction);
100
100
  bulkActionRegistryService.registerBulkAction(moveCollectionsBulkAction);
101
101
  bulkActionRegistryService.registerBulkAction(assignCollectionsToChannelBulkAction);
102
- bulkActionRegistryService.registerBulkAction(removeCollectionsFromChannelBulkAction);
103
102
  bulkActionRegistryService.registerBulkAction(duplicateCollectionsBulkAction);
103
+ bulkActionRegistryService.registerBulkAction(removeCollectionsFromChannelBulkAction);
104
104
  bulkActionRegistryService.registerBulkAction(deleteCollectionsBulkAction);
105
105
  pageService.registerPageTab({
106
106
  priority: 0,
@@ -328,4 +328,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
328
328
  ],
329
329
  }]
330
330
  }], ctorParameters: () => [{ type: i1.BulkActionRegistryService }, { type: i1.PageService }] });
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixXQUFXLEVBQ1gsWUFBWSxHQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUNwSixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUNySSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFB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WSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7OzJGQVl4QyxhQUFhO2tCQWJ6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNoQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNyQyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLE1BQU07NEJBQ2YsVUFBVSxFQUFFLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQzs0QkFDbkUsS0FBSyxFQUFFLElBQUk7NEJBQ1gsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO3lCQUN0QjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgQnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZSxcclxuICAgIENvbGxlY3Rpb25EZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyLFxyXG4gICAgR2V0RmFjZXREZXRhaWxEb2N1bWVudCxcclxuICAgIEdldFByb2R1Y3REZXRhaWxEb2N1bWVudCxcclxuICAgIEdldFByb2R1Y3RWYXJpYW50RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBQYWdlU2VydmljZSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlUm91dGVzIH0gZnJvbSAnLi9jYXRhbG9nLnJvdXRlcyc7XHJcbmltcG9ydCB7IEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwbHktZmFjZXQtZGlhbG9nL2FwcGx5LWZhY2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1kZXRhaWwvYXNzZXQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1saXN0L2Fzc2V0LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25Db250ZW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzL2NvbGxlY3Rpb24tY29udGVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkRhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kZXRhaWwvY29sbGVjdGlvbi1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWJyZWFkY3J1bWIucGlwZSc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24sXHJcbiAgICBkdXBsaWNhdGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24sXHJcbiAgICBtb3ZlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxyXG4gICAgcmVtb3ZlQ29sbGVjdGlvbnNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS1ub2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlRmFjZXRWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtZmFjZXQtdmFsdWUtZGlhbG9nL2NyZWF0ZS1mYWNldC12YWx1ZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdE9wdGlvbkdyb3VwRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LW9wdGlvbi1ncm91cC1kaWFsb2cvY3JlYXRlLXByb2R1Y3Qtb3B0aW9uLWdyb3VwLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWNldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1kZXRhaWwvZmFjZXQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25GYWNldHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxyXG4gICAgZGVsZXRlRmFjZXRzQnVsa0FjdGlvbixcclxuICAgIGR1cGxpY2F0ZUZhY2V0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBGYWNldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb3ZlQ29sbGVjdGlvbnNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vcHRpb24tdmFsdWUtaW5wdXQvb3B0aW9uLXZhbHVlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBkdXBsaWNhdGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsL3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uLFxyXG4gICAgYXNzaWduUHJvZHVjdFZhcmlhbnRzVG9DaGFubmVsQnVsa0FjdGlvbixcclxuICAgIGRlbGV0ZVByb2R1Y3RWYXJpYW50c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1saXN0L3Byb2R1Y3QtdmFyaWFudC1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudHNFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy10YWJsZS9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZhcmlhbnRQcmljZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LXByaWNlLWRldGFpbC92YXJpYW50LXByaWNlLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWYXJpYW50UHJpY2VTdHJhdGVneURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LXByaWNlLXN0cmF0ZWd5LWRldGFpbC92YXJpYW50LXByaWNlLXN0cmF0ZWd5LWRldGFpbC5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgQ0FUQUxPR19DT01QT05FTlRTID0gW1xyXG4gICAgUHJvZHVjdExpc3RDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgRmFjZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgRmFjZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCxcclxuICAgIEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQsXHJcbiAgICBBc3NldExpc3RDb21wb25lbnQsXHJcbiAgICBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBWYXJpYW50UHJpY2VTdHJhdGVneURldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25UcmVlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQsXHJcbiAgICBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCxcclxuICAgIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb25maXJtVmFyaWFudERlbGV0aW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQsXHJcbiAgICBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlLFxyXG4gICAgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50LFxyXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgQ3JlYXRlUHJvZHVjdFZhcmlhbnREaWFsb2dDb21wb25lbnQsXHJcbiAgICBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCxcclxuICAgIENyZWF0ZUZhY2V0VmFsdWVEaWFsb2dDb21wb25lbnQsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtdKV0sXHJcbiAgICBleHBvcnRzOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNBVEFMT0dfQ09NUE9ORU5UU10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFJPVVRFUyxcclxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSkgPT4gY3JlYXRlUm91dGVzKHBhZ2VTZXJ2aWNlKSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIGRlcHM6IFtQYWdlU2VydmljZV0sXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTW9kdWxlIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGhhc1JlZ2lzdGVyZWRUYWJzQW5kQnVsa0FjdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlOiBCdWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLCBwYWdlU2VydmljZTogUGFnZVNlcnZpY2UpIHtcclxuICAgICAgICBpZiAoQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduUHJvZHVjdHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Qcm9kdWN0VmFyaWFudHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlUHJvZHVjdFZhcmlhbnRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkdXBsaWNhdGVQcm9kdWN0c0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZVByb2R1Y3RzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RWYXJpYW50c0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25GYWNldHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGR1cGxpY2F0ZUZhY2V0c0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUZhY2V0c0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihtb3ZlQ29sbGVjdGlvbnNCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkdXBsaWNhdGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XHJcblxyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtbGlzdCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQcm9kdWN0RGV0YWlsRG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdwcm9kdWN0JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LXByb2R1Y3QnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJ3ZhcmlhbnRzJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC12YXJpYW50LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0LXZhcmlhbnRzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRQcm9kdWN0VmFyaWFudERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAncHJvZHVjdFZhcmlhbnQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5wcm9kdWN0Lm5hbWV9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWycvY2F0YWxvZycsICdwcm9kdWN0cycsIGVudGl0eT8ucHJvZHVjdC5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtlbnRpdHk/Lm5hbWV9ICgke2VudGl0eT8uc2t1fSlgLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbJ3ZhcmlhbnRzJywgZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2ZhY2V0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuZmFjZXRzJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldExpc3RDb21wb25lbnQsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnZmFjZXQtZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmZhY2V0JyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBGYWNldERldGFpbENvbXBvbmVudCxcclxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBHZXRGYWNldERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgZmFjZXRWYWx1ZUxpc3RPcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRha2U6IDEwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBza2lwOiAwLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzb3J0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkQXQ6IFNvcnRPcmRlci5ERVNDLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnZmFjZXQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdjYXRhbG9nLmNyZWF0ZS1uZXctZmFjZXQnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdjb2xsZWN0aW9uLWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuY29sbGVjdGlvbnMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2NvbGxlY3Rpb24tZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmNvbGxlY3Rpb24nKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogQ29sbGVjdGlvbkRldGFpbFF1ZXJ5RG9jdW1lbnQsXHJcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdjb2xsZWN0aW9uJyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LWNvbGxlY3Rpb24nKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdhc3NldC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmFzc2V0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2Fzc2V0LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5hc3NldCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnYXNzZXQnLFxyXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5uYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zID0gdHJ1ZTtcclxuICAgIH1cclxufVxyXG4iXX0=
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixXQUFXLEVBQ1gsWUFBWSxHQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUNwSixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUNySSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFB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WSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7OzJGQVl4QyxhQUFhO2tCQWJ6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNoQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNyQyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLE1BQU07NEJBQ2YsVUFBVSxFQUFFLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQzs0QkFDbkUsS0FBSyxFQUFFLElBQUk7NEJBQ1gsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO3lCQUN0QjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgQnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZSxcclxuICAgIENvbGxlY3Rpb25EZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyLFxyXG4gICAgR2V0RmFjZXREZXRhaWxEb2N1bWVudCxcclxuICAgIEdldFByb2R1Y3REZXRhaWxEb2N1bWVudCxcclxuICAgIEdldFByb2R1Y3RWYXJpYW50RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBQYWdlU2VydmljZSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlUm91dGVzIH0gZnJvbSAnLi9jYXRhbG9nLnJvdXRlcyc7XHJcbmltcG9ydCB7IEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwbHktZmFjZXQtZGlhbG9nL2FwcGx5LWZhY2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1kZXRhaWwvYXNzZXQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1saXN0L2Fzc2V0LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25Db250ZW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzL2NvbGxlY3Rpb24tY29udGVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkRhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kZXRhaWwvY29sbGVjdGlvbi1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWJyZWFkY3J1bWIucGlwZSc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24sXHJcbiAgICBkdXBsaWNhdGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24sXHJcbiAgICBtb3ZlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxyXG4gICAgcmVtb3ZlQ29sbGVjdGlvbnNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS1ub2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlRmFjZXRWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtZmFjZXQtdmFsdWUtZGlhbG9nL2NyZWF0ZS1mYWNldC12YWx1ZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdE9wdGlvbkdyb3VwRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LW9wdGlvbi1ncm91cC1kaWFsb2cvY3JlYXRlLXByb2R1Y3Qtb3B0aW9uLWdyb3VwLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWNldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1kZXRhaWwvZmFjZXQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25GYWNldHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxyXG4gICAgZGVsZXRlRmFjZXRzQnVsa0FjdGlvbixcclxuICAgIGR1cGxpY2F0ZUZhY2V0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBGYWNldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb3ZlQ29sbGVjdGlvbnNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vcHRpb24tdmFsdWUtaW5wdXQvb3B0aW9uLXZhbHVlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBkdXBsaWNhdGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsL3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uLFxyXG4gICAgYXNzaWduUHJvZHVjdFZhcmlhbnRzVG9DaGFubmVsQnVsa0FjdGlvbixcclxuICAgIGRlbGV0ZVByb2R1Y3RWYXJpYW50c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1saXN0L3Byb2R1Y3QtdmFyaWFudC1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudHNFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy10YWJsZS9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZhcmlhbnRQcmljZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LXByaWNlLWRldGFpbC92YXJpYW50LXByaWNlLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWYXJpYW50UHJpY2VTdHJhdGVneURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LXByaWNlLXN0cmF0ZWd5LWRldGFpbC92YXJpYW50LXByaWNlLXN0cmF0ZWd5LWRldGFpbC5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgQ0FUQUxPR19DT01QT05FTlRTID0gW1xyXG4gICAgUHJvZHVjdExpc3RDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgRmFjZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgRmFjZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCxcclxuICAgIEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQsXHJcbiAgICBBc3NldExpc3RDb21wb25lbnQsXHJcbiAgICBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBWYXJpYW50UHJpY2VTdHJhdGVneURldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25UcmVlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQsXHJcbiAgICBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCxcclxuICAgIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb25maXJtVmFyaWFudERlbGV0aW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQsXHJcbiAgICBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlLFxyXG4gICAgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50LFxyXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgQ3JlYXRlUHJvZHVjdFZhcmlhbnREaWFsb2dDb21wb25lbnQsXHJcbiAgICBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCxcclxuICAgIENyZWF0ZUZhY2V0VmFsdWVEaWFsb2dDb21wb25lbnQsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtdKV0sXHJcbiAgICBleHBvcnRzOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNBVEFMT0dfQ09NUE9ORU5UU10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFJPVVRFUyxcclxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSkgPT4gY3JlYXRlUm91dGVzKHBhZ2VTZXJ2aWNlKSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIGRlcHM6IFtQYWdlU2VydmljZV0sXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTW9kdWxlIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGhhc1JlZ2lzdGVyZWRUYWJzQW5kQnVsa0FjdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlOiBCdWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLCBwYWdlU2VydmljZTogUGFnZVNlcnZpY2UpIHtcclxuICAgICAgICBpZiAoQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduUHJvZHVjdHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkdXBsaWNhdGVQcm9kdWN0c0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVQcm9kdWN0c0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25GYWNldFZhbHVlc1RvUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduUHJvZHVjdFZhcmlhbnRzVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlUHJvZHVjdFZhcmlhbnRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVQcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRzVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZHVwbGljYXRlRmFjZXRzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlRmFjZXRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVGYWNldHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24obW92ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduQ29sbGVjdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkdXBsaWNhdGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdHMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3RMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3QnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3REZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UHJvZHVjdERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAncHJvZHVjdCcsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ2NhdGFsb2cuY3JlYXRlLW5ldy1wcm9kdWN0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3QtdmFyaWFudHMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICd2YXJpYW50cycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdFZhcmlhbnREZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UHJvZHVjdFZhcmlhbnREZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3Byb2R1Y3RWYXJpYW50JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke2VudGl0eT8ucHJvZHVjdC5uYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFsnL2NhdGFsb2cnLCAncHJvZHVjdHMnLCBlbnRpdHk/LnByb2R1Y3QuaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5uYW1lfSAoJHtlbnRpdHk/LnNrdX0pYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWyd2YXJpYW50cycsIGVudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdmYWNldC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmZhY2V0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogRmFjZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2ZhY2V0LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5mYWNldCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRmFjZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0RmFjZXREZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVMaXN0T3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc29ydDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBTb3J0T3JkZXIuREVTQyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ2ZhY2V0JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LWZhY2V0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY29sbGVjdGlvbi1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmNvbGxlY3Rpb25zJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBDb2xsZWN0aW9uTGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdjb2xsZWN0aW9uLWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5jb2xsZWN0aW9uJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDb2xsZWN0aW9uRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcXVlcnk6IENvbGxlY3Rpb25EZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnY29sbGVjdGlvbicsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ2NhdGFsb2cuY3JlYXRlLW5ldy1jb2xsZWN0aW9uJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnYXNzZXQtbGlzdCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5hc3NldHMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IEFzc2V0TGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdhc3NldC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuYXNzZXQnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEFzc2V0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcXVlcnk6IEFzc2V0RGV0YWlsUXVlcnlEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ2Fzc2V0JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke2VudGl0eT8ubmFtZX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIENhdGFsb2dNb2R1bGUuaGFzUmVnaXN0ZXJlZFRhYnNBbmRCdWxrQWN0aW9ucyA9IHRydWU7XHJcbiAgICB9XHJcbn1cclxuIl19