@vendure/admin-ui 2.2.5 → 2.2.7

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 (58) hide show
  1. package/LICENSE +9 -0
  2. package/catalog/components/product-detail/product-detail.component.d.ts +1 -4
  3. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
  4. package/catalog/providers/product-detail/product-detail.service.d.ts +1 -3
  5. package/core/common/version.d.ts +1 -1
  6. package/core/extension/components/angular-route.component.d.ts +20 -0
  7. package/core/extension/register-data-table-component.d.ts +1 -1
  8. package/core/extension/register-route-component.d.ts +1 -1
  9. package/core/shared/components/facet-value-selector/facet-value-selector.component.d.ts +1 -9
  10. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  11. package/core/shared/components/timeline-entry/timeline-entry.component.d.ts +2 -1
  12. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
  13. package/core/shared/providers/routing/can-deactivate-detail-guard.d.ts +2 -4
  14. package/esm2022/catalog/catalog.module.mjs +1 -1
  15. package/esm2022/catalog/components/create-product-variant-dialog/create-product-variant-dialog.component.mjs +2 -2
  16. package/esm2022/catalog/components/facet-detail/facet-detail.component.mjs +4 -1
  17. package/esm2022/catalog/components/generate-product-variants/generate-product-variants.component.mjs +3 -1
  18. package/esm2022/catalog/components/product-detail/product-detail.component.mjs +1 -14
  19. package/esm2022/catalog/components/product-options-editor/product-options-editor.component.mjs +6 -2
  20. package/esm2022/catalog/providers/product-detail/product-detail.service.mjs +43 -27
  21. package/esm2022/core/common/version.mjs +2 -2
  22. package/esm2022/core/extension/components/angular-route.component.mjs +51 -6
  23. package/esm2022/core/extension/register-data-table-component.mjs +2 -2
  24. package/esm2022/core/shared/components/asset-file-input/asset-file-input.component.mjs +1 -1
  25. package/esm2022/core/shared/components/asset-gallery/asset-gallery.component.mjs +2 -2
  26. package/esm2022/core/shared/components/asset-picker-dialog/asset-picker-dialog.component.mjs +2 -2
  27. package/esm2022/core/shared/components/dropdown/dropdown-menu.component.mjs +33 -33
  28. package/esm2022/core/shared/components/facet-value-selector/facet-value-selector.component.mjs +2 -10
  29. package/esm2022/core/shared/components/rich-text-editor/rich-text-editor.component.mjs +2 -2
  30. package/esm2022/core/shared/components/timeline-entry/timeline-entry.component.mjs +5 -3
  31. package/esm2022/core/shared/components/zone-selector/zone-selector.component.mjs +13 -13
  32. package/esm2022/core/shared/providers/routing/can-deactivate-detail-guard.mjs +6 -8
  33. package/esm2022/customer/components/customer-history/customer-history-entry-host.component.mjs +1 -1
  34. package/esm2022/customer/components/customer-history/customer-history.component.mjs +3 -3
  35. package/esm2022/customer/customer.routes.mjs +2 -2
  36. package/esm2022/marketing/marketing.module.mjs +1 -1
  37. package/esm2022/order/components/order-history/order-history-entry-host.component.mjs +1 -1
  38. package/esm2022/order/components/order-history/order-history.component.mjs +3 -3
  39. package/esm2022/react/react-components/RichTextEditor.mjs +8 -4
  40. package/esm2022/settings/components/channel-detail/channel-detail.component.mjs +8 -8
  41. package/fesm2022/vendure-admin-ui-catalog.mjs +53 -41
  42. package/fesm2022/vendure-admin-ui-catalog.mjs.map +1 -1
  43. package/fesm2022/vendure-admin-ui-core.mjs +112 -73
  44. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  45. package/fesm2022/vendure-admin-ui-customer.mjs +4 -4
  46. package/fesm2022/vendure-admin-ui-customer.mjs.map +1 -1
  47. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  48. package/fesm2022/vendure-admin-ui-order.mjs +3 -3
  49. package/fesm2022/vendure-admin-ui-order.mjs.map +1 -1
  50. package/fesm2022/vendure-admin-ui-react.mjs +7 -3
  51. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
  52. package/fesm2022/vendure-admin-ui-settings.mjs +7 -7
  53. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  54. package/marketing/components/promotion-list/promotion-list.component.d.ts +1 -1
  55. package/package.json +2 -2
  56. package/react/react-components/RichTextEditor.d.ts +2 -0
  57. package/static/styles/component/prosemirror.scss +511 -0
  58. package/static/styles/styles.scss +2 -0
package/LICENSE ADDED
@@ -0,0 +1,9 @@
1
+ The MIT License
2
+
3
+ Copyright (c) 2018 Michael Bromley
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -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.5";
1
+ export declare const ADMIN_UI_VERSION = "2.2.7";
@@ -1,6 +1,26 @@
1
+ import { ComponentRef, EventEmitter, OnInit, ViewContainerRef } from '@angular/core';
1
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * @description
5
+ * This component is used internally to allow us to dynamically load a component
6
+ * like with `*ngComponentOutlet`, but with the ability to get a reference to the
7
+ * created ComponentRef. This can then be used to delegate lifecycle events like
8
+ * `canDeactivate` to the loaded component.
9
+ */
10
+ export declare class DynamicComponentLoaderComponent implements OnInit {
11
+ private viewContainer;
12
+ componentType: any;
13
+ loaded: EventEmitter<ComponentRef<any>>;
14
+ constructor(viewContainer: ViewContainerRef);
15
+ ngOnInit(): void;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<DynamicComponentLoaderComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<DynamicComponentLoaderComponent, "vdr-dynamic-component-loader", never, { "componentType": { "alias": "componentType"; "required": false; }; }, { "loaded": "loaded"; }, never, never, true, never>;
18
+ }
2
19
  export declare class AngularRouteComponent {
3
20
  protected component: import("@angular/core").Type<any>;
21
+ protected componentRef: ComponentRef<any>;
22
+ componentLoaded(componentRef: ComponentRef<any>): void;
23
+ canDeactivate(): any;
4
24
  static ɵfac: i0.ɵɵFactoryDeclaration<AngularRouteComponent, never>;
5
25
  static ɵcmp: i0.ɵɵComponentDeclaration<AngularRouteComponent, "vdr-angular-route-component", never, {}, {}, never, never, true, never>;
6
26
  }
@@ -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
@@ -88,7 +88,7 @@ export declare function registerRouteComponent<Component extends any | BaseDetai
88
88
  component: typeof AngularRouteComponent;
89
89
  title?: string | Type<import("@angular/router").Resolve<string>> | ResolveFn<string> | undefined;
90
90
  path: string;
91
- pathMatch?: "full" | "prefix" | undefined;
91
+ pathMatch?: "prefix" | "full" | undefined;
92
92
  matcher?: import("@angular/router").UrlMatcher | undefined;
93
93
  loadComponent?: (() => Type<unknown> | Observable<Type<unknown> | import("@angular/router").DefaultExport<Type<unknown>>> | Promise<Type<unknown> | import("@angular/router").DefaultExport<Type<unknown>>>) | undefined;
94
94
  redirectTo?: string | undefined;
@@ -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 ProductSelectorFormInputComponent | typeof CustomerGroupFormInputComponent | typeof TextFormInputComponent | typeof PasswordFormInputComponent | typeof DateFormInputComponent | typeof CurrencyFormInputComponent | typeof SelectFormInputComponent | typeof RelationFormInputComponent | typeof TextareaFormInputComponent | typeof JsonEditorFormInputComponent | typeof HtmlEditorFormInputComponent | typeof ProductMultiSelectorFormInputComponent | typeof CombinationModeFormInputComponent)[];
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
  */
@@ -1,13 +1,11 @@
1
- import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';
2
1
  import { Observable } from 'rxjs';
3
2
  import { DeactivateAware } from '../../../common/deactivate-aware';
4
3
  import { ModalService } from '../../../providers/modal/modal.service';
5
4
  import * as i0 from "@angular/core";
6
5
  export declare class CanDeactivateDetailGuard {
7
6
  private modalService;
8
- private router;
9
- constructor(modalService: ModalService, router: Router);
10
- canDeactivate(component: DeactivateAware, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): boolean | Observable<boolean>;
7
+ constructor(modalService: ModalService);
8
+ canDeactivate(component: DeactivateAware): boolean | Observable<boolean>;
11
9
  static ɵfac: i0.ɵɵFactoryDeclaration<CanDeactivateDetailGuard, never>;
12
10
  static ɵprov: i0.ɵɵInjectableDeclaration<CanDeactivateDetailGuard>;
13
11
  }
@@ -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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WSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7OzJGQVl4QyxhQUFhO2tCQWJ6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNoQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNyQyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLE1BQU07NEJBQ2YsVUFBVSxFQUFFLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQzs0QkFDbkUsS0FBSyxFQUFFLElBQUk7NEJBQ1gsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO3lCQUN0QjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJPVVRFUyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBtYXJrZXIgYXMgXyB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcic7XG5pbXBvcnQge1xuICAgIEFzc2V0RGV0YWlsUXVlcnlEb2N1bWVudCxcbiAgICBCdWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLFxuICAgIENvbGxlY3Rpb25EZXRhaWxRdWVyeURvY3VtZW50LFxuICAgIGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcixcbiAgICBHZXRGYWNldERldGFpbERvY3VtZW50LFxuICAgIEdldFByb2R1Y3REZXRhaWxEb2N1bWVudCxcbiAgICBHZXRQcm9kdWN0VmFyaWFudERldGFpbERvY3VtZW50LFxuICAgIFBhZ2VTZXJ2aWNlLFxuICAgIFNoYXJlZE1vZHVsZSxcbn0gZnJvbSAnQHZlbmR1cmUvYWRtaW4tdWkvY29yZSc7XG5pbXBvcnQgeyBTb3J0T3JkZXIgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL2dlbmVyYXRlZC10eXBlcyc7XG5cbmltcG9ydCB7IGNyZWF0ZVJvdXRlcyB9IGZyb20gJy4vY2F0YWxvZy5yb3V0ZXMnO1xuaW1wb3J0IHsgQXBwbHlGYWNldERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHBseS1mYWNldC1kaWFsb2cvYXBwbHktZmFjZXQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1kZXRhaWwvYXNzZXQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzZXQtbGlzdC9hc3NldC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NpZ24tcHJvZHVjdHMtdG8tY2hhbm5lbC1kaWFsb2cvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uQ29udGVudHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1jb250ZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsZWN0aW9uRGF0YVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tZGF0YS10YWJsZS9jb2xsZWN0aW9uLWRhdGEtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kZXRhaWwvY29sbGVjdGlvbi1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IENvbGxlY3Rpb25CcmVhZGNydW1iUGlwZSB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWxpc3QvY29sbGVjdGlvbi1icmVhZGNydW1iLnBpcGUnO1xuaW1wb3J0IHtcbiAgICBhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXG4gICAgZGVsZXRlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxuICAgIGR1cGxpY2F0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbixcbiAgICBtb3ZlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxuICAgIHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uLFxufSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUtbm9kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sbGVjdGlvblRyZWVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZUZhY2V0VmFsdWVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLWZhY2V0LXZhbHVlLWRpYWxvZy9jcmVhdGUtZmFjZXQtdmFsdWUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3JlYXRlLXByb2R1Y3Qtb3B0aW9uLWdyb3VwLWRpYWxvZy9jcmVhdGUtcHJvZHVjdC1vcHRpb24tZ3JvdXAtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFjZXREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtZGV0YWlsL2ZhY2V0LWRldGFpbC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBhc3NpZ25GYWNldHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxuICAgIGRlbGV0ZUZhY2V0c0J1bGtBY3Rpb24sXG4gICAgZHVwbGljYXRlRmFjZXRzQnVsa0FjdGlvbixcbiAgICByZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IEZhY2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1saXN0L2ZhY2V0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nL21vdmUtY29sbGVjdGlvbnMtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL29wdGlvbi12YWx1ZS1pbnB1dC9vcHRpb24tdmFsdWUtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7XG4gICAgYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbixcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXG4gICAgZGVsZXRlUHJvZHVjdHNCdWxrQWN0aW9uLFxuICAgIGR1cGxpY2F0ZVByb2R1Y3RzQnVsa0FjdGlvbixcbiAgICByZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbixcbn0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtbGlzdC9wcm9kdWN0LWxpc3QtYnVsay1hY3Rpb25zJztcbmltcG9ydCB7IFByb2R1Y3RMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtbGlzdC9wcm9kdWN0LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnREZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50LWRldGFpbC9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uLFxuICAgIGFzc2lnblByb2R1Y3RWYXJpYW50c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXG4gICAgZGVsZXRlUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbixcbiAgICByZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXG59IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC1idWxrLWFjdGlvbnMnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1saXN0L3Byb2R1Y3QtdmFyaWFudC1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudHMtZWRpdG9yL3Byb2R1Y3QtdmFyaWFudHMtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudHNUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlL3Byb2R1Y3QtdmFyaWFudHMtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmFyaWFudC1wcmljZS1kZXRhaWwvdmFyaWFudC1wcmljZS1kZXRhaWwuY29tcG9uZW50JztcbmltcG9ydCB7IFZhcmlhbnRQcmljZVN0cmF0ZWd5RGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3ZhcmlhbnQtcHJpY2Utc3RyYXRlZ3ktZGV0YWlsL3ZhcmlhbnQtcHJpY2Utc3RyYXRlZ3ktZGV0YWlsLmNvbXBvbmVudCc7XG5cbmNvbnN0IENBVEFMT0dfQ09NUE9ORU5UUyA9IFtcbiAgICBQcm9kdWN0TGlzdENvbXBvbmVudCxcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxuICAgIEZhY2V0TGlzdENvbXBvbmVudCxcbiAgICBGYWNldERldGFpbENvbXBvbmVudCxcbiAgICBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCxcbiAgICBBcHBseUZhY2V0RGlhbG9nQ29tcG9uZW50LFxuICAgIEFzc2V0TGlzdENvbXBvbmVudCxcbiAgICBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQsXG4gICAgVmFyaWFudFByaWNlU3RyYXRlZ3lEZXRhaWxDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCxcbiAgICBDb2xsZWN0aW9uVHJlZUNvbXBvbmVudCxcbiAgICBDb2xsZWN0aW9uVHJlZU5vZGVDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50LFxuICAgIFByb2R1Y3RWYXJpYW50c1RhYmxlQ29tcG9uZW50LFxuICAgIE9wdGlvblZhbHVlSW5wdXRDb21wb25lbnQsXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudHNFZGl0b3JDb21wb25lbnQsXG4gICAgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQsXG4gICAgQXNzZXREZXRhaWxDb21wb25lbnQsXG4gICAgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCxcbiAgICBQcm9kdWN0T3B0aW9uc0VkaXRvckNvbXBvbmVudCxcbiAgICBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQsXG4gICAgQ29sbGVjdGlvbkRhdGFUYWJsZUNvbXBvbmVudCxcbiAgICBDb2xsZWN0aW9uQnJlYWRjcnVtYlBpcGUsXG4gICAgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50LFxuICAgIFByb2R1Y3RWYXJpYW50TGlzdENvbXBvbmVudCxcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxuICAgIFByb2R1Y3RWYXJpYW50RGV0YWlsQ29tcG9uZW50LFxuICAgIENyZWF0ZVByb2R1Y3RWYXJpYW50RGlhbG9nQ29tcG9uZW50LFxuICAgIENyZWF0ZVByb2R1Y3RPcHRpb25Hcm91cERpYWxvZ0NvbXBvbmVudCxcbiAgICBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCxcbiAgICBDcmVhdGVGYWNldFZhbHVlRGlhbG9nQ29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoW10pXSxcbiAgICBleHBvcnRzOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5DQVRBTE9HX0NPTVBPTkVOVFNdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBST1VURVMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAocGFnZVNlcnZpY2U6IFBhZ2VTZXJ2aWNlKSA9PiBjcmVhdGVSb3V0ZXMocGFnZVNlcnZpY2UpLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICBkZXBzOiBbUGFnZVNlcnZpY2VdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIENhdGFsb2dNb2R1bGUge1xuICAgIHByaXZhdGUgc3RhdGljIGhhc1JlZ2lzdGVyZWRUYWJzQW5kQnVsa0FjdGlvbnMgPSBmYWxzZTtcblxuICAgIGNvbnN0cnVjdG9yKGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2U6IEJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UsIHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSkge1xuICAgICAgICBpZiAoQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnblByb2R1Y3RzVG9DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGR1cGxpY2F0ZVByb2R1Y3RzQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZGVsZXRlUHJvZHVjdHNCdWxrQWN0aW9uKTtcblxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25GYWNldFZhbHVlc1RvUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGFzc2lnblByb2R1Y3RWYXJpYW50c1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVQcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uKTtcblxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25GYWNldHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZHVwbGljYXRlRmFjZXRzQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUZhY2V0c0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUZhY2V0c0J1bGtBY3Rpb24pO1xuXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKG1vdmVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkdXBsaWNhdGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihyZW1vdmVDb2xsZWN0aW9uc0Zyb21DaGFubmVsQnVsa0FjdGlvbik7XG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKGRlbGV0ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XG5cbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3RzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3RMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdCcpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdERldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UHJvZHVjdERldGFpbERvY3VtZW50LFxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3Byb2R1Y3QnLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdjYXRhbG9nLmNyZWF0ZS1uZXctcHJvZHVjdCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogW2VudGl0eT8uaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1saXN0JyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0LXZhcmlhbnRzJyksXG4gICAgICAgICAgICByb3V0ZTogJ3ZhcmlhbnRzJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50LFxuICAgICAgICB9KTtcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LXZhcmlhbnQtZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5wcm9kdWN0LXZhcmlhbnRzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCxcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UHJvZHVjdFZhcmlhbnREZXRhaWxEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdwcm9kdWN0VmFyaWFudCcsXG4gICAgICAgICAgICAgICAgZ2V0QnJlYWRjcnVtYnM6IGVudGl0eSA9PiBbXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtlbnRpdHk/LnByb2R1Y3QubmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWycvY2F0YWxvZycsICdwcm9kdWN0cycsIGVudGl0eT8ucHJvZHVjdC5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBgJHtlbnRpdHk/Lm5hbWV9ICgke2VudGl0eT8uc2t1fSlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWyd2YXJpYW50cycsIGVudGl0eT8uaWRdLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnZmFjZXQtbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuZmFjZXRzJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IEZhY2V0TGlzdENvbXBvbmVudCxcbiAgICAgICAgfSk7XG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XG4gICAgICAgICAgICBwcmlvcml0eTogMCxcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnZmFjZXQtZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5mYWNldCcpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRmFjZXREZXRhaWxDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgcXVlcnk6IEdldEZhY2V0RGV0YWlsRG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVMaXN0T3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFrZTogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICBza2lwOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgc29ydDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWRBdDogU29ydE9yZGVyLkRFU0MsXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnZmFjZXQnLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZW50aXR5ID8gZW50aXR5Lm5hbWUgOiBfKCdjYXRhbG9nLmNyZWF0ZS1uZXctZmFjZXQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2NvbGxlY3Rpb24tbGlzdCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuY29sbGVjdGlvbnMnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogQ29sbGVjdGlvbkxpc3RDb21wb25lbnQsXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2NvbGxlY3Rpb24tZGV0YWlsJyxcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5jb2xsZWN0aW9uJyksXG4gICAgICAgICAgICByb3V0ZTogJycsXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDb2xsZWN0aW9uRGV0YWlsQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBDb2xsZWN0aW9uRGV0YWlsUXVlcnlEb2N1bWVudCxcbiAgICAgICAgICAgICAgICBlbnRpdHlLZXk6ICdjb2xsZWN0aW9uJyxcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LWNvbGxlY3Rpb24nKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2Fzc2V0LWxpc3QnLFxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmFzc2V0cycpLFxuICAgICAgICAgICAgcm91dGU6ICcnLFxuICAgICAgICAgICAgY29tcG9uZW50OiBBc3NldExpc3RDb21wb25lbnQsXG4gICAgICAgIH0pO1xuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2Fzc2V0LWRldGFpbCcsXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuYXNzZXQnKSxcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEFzc2V0RGV0YWlsQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIHF1ZXJ5OiBBc3NldERldGFpbFF1ZXJ5RG9jdW1lbnQsXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnYXNzZXQnLFxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5uYW1lfWAsXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICB9KTtcbiAgICAgICAgQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zID0gdHJ1ZTtcbiAgICB9XG59XG4iXX0=
331
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0YWxvZy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NhdGFsb2cvc3JjL2NhdGFsb2cubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ3RFLE9BQU8sRUFDSCx3QkFBd0IsRUFFeEIsNkJBQTZCLEVBQzdCLDJCQUEyQixFQUMzQixzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixXQUFXLEVBQ1gsWUFBWSxHQUNmLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRWhFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSw0RkFBNEYsQ0FBQztBQUNwSixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxrRkFBa0YsQ0FBQztBQUNySSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnRUFBZ0UsQ0FBQztBQUM3RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxvRUFBb0UsQ0FBQztBQUNsSCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw0REFBNEQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5REFB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WSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7OzJGQVl4QyxhQUFhO2tCQWJ6QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO29CQUNsRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNoQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLGtCQUFrQixDQUFDO29CQUNyQyxTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLE1BQU07NEJBQ2YsVUFBVSxFQUFFLENBQUMsV0FBd0IsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQzs0QkFDbkUsS0FBSyxFQUFFLElBQUk7NEJBQ1gsSUFBSSxFQUFFLENBQUMsV0FBVyxDQUFDO3lCQUN0QjtxQkFDSjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlck1vZHVsZSwgUk9VVEVTIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQge1xyXG4gICAgQXNzZXREZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgQnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZSxcclxuICAgIENvbGxlY3Rpb25EZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyLFxyXG4gICAgR2V0RmFjZXREZXRhaWxEb2N1bWVudCxcclxuICAgIEdldFByb2R1Y3REZXRhaWxEb2N1bWVudCxcclxuICAgIEdldFByb2R1Y3RWYXJpYW50RGV0YWlsRG9jdW1lbnQsXHJcbiAgICBQYWdlU2VydmljZSxcclxuICAgIFNoYXJlZE1vZHVsZSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgU29ydE9yZGVyIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9nZW5lcmF0ZWQtdHlwZXMnO1xyXG5cclxuaW1wb3J0IHsgY3JlYXRlUm91dGVzIH0gZnJvbSAnLi9jYXRhbG9nLnJvdXRlcyc7XHJcbmltcG9ydCB7IEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXBwbHktZmFjZXQtZGlhbG9nL2FwcGx5LWZhY2V0LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBc3NldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1kZXRhaWwvYXNzZXQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFzc2V0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hc3NldC1saXN0L2Fzc2V0LWxpc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXNzaWduUHJvZHVjdHNUb0NoYW5uZWxEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYXNzaWduLXByb2R1Y3RzLXRvLWNoYW5uZWwtZGlhbG9nL2Fzc2lnbi1wcm9kdWN0cy10by1jaGFubmVsLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnVsay1hZGQtZmFjZXQtdmFsdWVzLWRpYWxvZy9idWxrLWFkZC1mYWNldC12YWx1ZXMtZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25Db250ZW50c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWNvbnRlbnRzL2NvbGxlY3Rpb24tY29udGVudHMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkRhdGFUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb2xsZWN0aW9uLWRhdGEtdGFibGUvY29sbGVjdGlvbi1kYXRhLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25EZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1kZXRhaWwvY29sbGVjdGlvbi1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWJyZWFkY3J1bWIucGlwZSc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25Db2xsZWN0aW9uc1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24sXHJcbiAgICBkdXBsaWNhdGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24sXHJcbiAgICBtb3ZlQ29sbGVjdGlvbnNCdWxrQWN0aW9uLFxyXG4gICAgcmVtb3ZlQ29sbGVjdGlvbnNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tbGlzdC9jb2xsZWN0aW9uLWxpc3QtYnVsay1hY3Rpb25zJztcclxuaW1wb3J0IHsgQ29sbGVjdGlvbkxpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi1saXN0L2NvbGxlY3Rpb24tbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uVHJlZU5vZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY29sbGVjdGlvbi10cmVlL2NvbGxlY3Rpb24tdHJlZS1ub2RlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb25UcmVlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbGxlY3Rpb24tdHJlZS9jb2xsZWN0aW9uLXRyZWUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29uZmlybVZhcmlhbnREZWxldGlvbkRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtLXZhcmlhbnQtZGVsZXRpb24tZGlhbG9nL2NvbmZpcm0tdmFyaWFudC1kZWxldGlvbi1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlRmFjZXRWYWx1ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtZmFjZXQtdmFsdWUtZGlhbG9nL2NyZWF0ZS1mYWNldC12YWx1ZS1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3JlYXRlUHJvZHVjdE9wdGlvbkdyb3VwRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LW9wdGlvbi1ncm91cC1kaWFsb2cvY3JlYXRlLXByb2R1Y3Qtb3B0aW9uLWdyb3VwLWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWNldERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWNldC1kZXRhaWwvZmFjZXQtZGV0YWlsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7XHJcbiAgICBhc3NpZ25GYWNldHNUb0NoYW5uZWxCdWxrQWN0aW9uLFxyXG4gICAgZGVsZXRlRmFjZXRzQnVsa0FjdGlvbixcclxuICAgIGR1cGxpY2F0ZUZhY2V0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVGYWNldHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL2ZhY2V0LWxpc3QvZmFjZXQtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBGYWNldExpc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFjZXQtbGlzdC9mYWNldC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEdlbmVyYXRlUHJvZHVjdFZhcmlhbnRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2dlbmVyYXRlLXByb2R1Y3QtdmFyaWFudHMvZ2VuZXJhdGUtcHJvZHVjdC12YXJpYW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNb3ZlQ29sbGVjdGlvbnNEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cvbW92ZS1jb2xsZWN0aW9ucy1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3B0aW9uVmFsdWVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vcHRpb24tdmFsdWUtaW5wdXQvb3B0aW9uLXZhbHVlLWlucHV0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3REZXRhaWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1kZXRhaWwvcHJvZHVjdC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBhc3NpZ25Qcm9kdWN0c1RvQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbiAgICBkZWxldGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICBkdXBsaWNhdGVQcm9kdWN0c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0c0Zyb21DaGFubmVsQnVsa0FjdGlvbixcclxufSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC1saXN0L3Byb2R1Y3QtbGlzdC1idWxrLWFjdGlvbnMnO1xyXG5pbXBvcnQgeyBQcm9kdWN0TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LWxpc3QvcHJvZHVjdC1saXN0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFByb2R1Y3RPcHRpb25zRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3Qtb3B0aW9ucy1lZGl0b3IvcHJvZHVjdC1vcHRpb25zLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudERldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtZGV0YWlsL3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICAgIGFzc2lnbkZhY2V0VmFsdWVzVG9Qcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uLFxyXG4gICAgYXNzaWduUHJvZHVjdFZhcmlhbnRzVG9DaGFubmVsQnVsa0FjdGlvbixcclxuICAgIGRlbGV0ZVByb2R1Y3RWYXJpYW50c0J1bGtBY3Rpb24sXHJcbiAgICByZW1vdmVQcm9kdWN0VmFyaWFudHNGcm9tQ2hhbm5lbEJ1bGtBY3Rpb24sXHJcbn0gZnJvbSAnLi9jb21wb25lbnRzL3Byb2R1Y3QtdmFyaWFudC1saXN0L3Byb2R1Y3QtdmFyaWFudC1saXN0LWJ1bGstYWN0aW9ucyc7XHJcbmltcG9ydCB7IFByb2R1Y3RWYXJpYW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtbGlzdC9wcm9kdWN0LXZhcmlhbnQtbGlzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC9wcm9kdWN0LXZhcmlhbnQtcXVpY2stanVtcC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQcm9kdWN0VmFyaWFudHNFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IvcHJvZHVjdC12YXJpYW50cy1lZGl0b3IuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvcHJvZHVjdC12YXJpYW50cy10YWJsZS9wcm9kdWN0LXZhcmlhbnRzLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVwZGF0ZVByb2R1Y3RPcHRpb25EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXBkYXRlLXByb2R1Y3Qtb3B0aW9uLWRpYWxvZy91cGRhdGUtcHJvZHVjdC1vcHRpb24tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFZhcmlhbnRQcmljZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LXByaWNlLWRldGFpbC92YXJpYW50LXByaWNlLWRldGFpbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWYXJpYW50UHJpY2VTdHJhdGVneURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy92YXJpYW50LXByaWNlLXN0cmF0ZWd5LWRldGFpbC92YXJpYW50LXByaWNlLXN0cmF0ZWd5LWRldGFpbC5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgQ0FUQUxPR19DT01QT05FTlRTID0gW1xyXG4gICAgUHJvZHVjdExpc3RDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgRmFjZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgRmFjZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBHZW5lcmF0ZVByb2R1Y3RWYXJpYW50c0NvbXBvbmVudCxcclxuICAgIEFwcGx5RmFjZXREaWFsb2dDb21wb25lbnQsXHJcbiAgICBBc3NldExpc3RDb21wb25lbnQsXHJcbiAgICBWYXJpYW50UHJpY2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBWYXJpYW50UHJpY2VTdHJhdGVneURldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25MaXN0Q29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkRldGFpbENvbXBvbmVudCxcclxuICAgIENvbGxlY3Rpb25UcmVlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvblRyZWVOb2RlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkNvbnRlbnRzQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRzVGFibGVDb21wb25lbnQsXHJcbiAgICBPcHRpb25WYWx1ZUlucHV0Q29tcG9uZW50LFxyXG4gICAgVXBkYXRlUHJvZHVjdE9wdGlvbkRpYWxvZ0NvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50c0VkaXRvckNvbXBvbmVudCxcclxuICAgIEFzc2lnblByb2R1Y3RzVG9DaGFubmVsRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXNzZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICBDb25maXJtVmFyaWFudERlbGV0aW9uRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdE9wdGlvbnNFZGl0b3JDb21wb25lbnQsXHJcbiAgICBCdWxrQWRkRmFjZXRWYWx1ZXNEaWFsb2dDb21wb25lbnQsXHJcbiAgICBDb2xsZWN0aW9uRGF0YVRhYmxlQ29tcG9uZW50LFxyXG4gICAgQ29sbGVjdGlvbkJyZWFkY3J1bWJQaXBlLFxyXG4gICAgTW92ZUNvbGxlY3Rpb25zRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50LFxyXG4gICAgUHJvZHVjdERldGFpbENvbXBvbmVudCxcclxuICAgIFByb2R1Y3RWYXJpYW50RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgQ3JlYXRlUHJvZHVjdFZhcmlhbnREaWFsb2dDb21wb25lbnQsXHJcbiAgICBDcmVhdGVQcm9kdWN0T3B0aW9uR3JvdXBEaWFsb2dDb21wb25lbnQsXHJcbiAgICBQcm9kdWN0VmFyaWFudFF1aWNrSnVtcENvbXBvbmVudCxcclxuICAgIENyZWF0ZUZhY2V0VmFsdWVEaWFsb2dDb21wb25lbnQsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1NoYXJlZE1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtdKV0sXHJcbiAgICBleHBvcnRzOiBbLi4uQ0FUQUxPR19DT01QT05FTlRTXSxcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNBVEFMT0dfQ09NUE9ORU5UU10sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFJPVVRFUyxcclxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKHBhZ2VTZXJ2aWNlOiBQYWdlU2VydmljZSkgPT4gY3JlYXRlUm91dGVzKHBhZ2VTZXJ2aWNlKSxcclxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICAgIGRlcHM6IFtQYWdlU2VydmljZV0sXHJcbiAgICAgICAgfSxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYXRhbG9nTW9kdWxlIHtcclxuICAgIHByaXZhdGUgc3RhdGljIGhhc1JlZ2lzdGVyZWRUYWJzQW5kQnVsa0FjdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlOiBCdWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLCBwYWdlU2VydmljZTogUGFnZVNlcnZpY2UpIHtcclxuICAgICAgICBpZiAoQ2F0YWxvZ01vZHVsZS5oYXNSZWdpc3RlcmVkVGFic0FuZEJ1bGtBY3Rpb25zKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRWYWx1ZXNUb1Byb2R1Y3RzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduUHJvZHVjdHNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkdXBsaWNhdGVQcm9kdWN0c0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZVByb2R1Y3RzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVQcm9kdWN0c0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihhc3NpZ25GYWNldFZhbHVlc1RvUHJvZHVjdFZhcmlhbnRzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduUHJvZHVjdFZhcmlhbnRzVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlUHJvZHVjdFZhcmlhbnRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVQcm9kdWN0VmFyaWFudHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduRmFjZXRzVG9DaGFubmVsQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oZHVwbGljYXRlRmFjZXRzQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24ocmVtb3ZlRmFjZXRzRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVGYWNldHNCdWxrQWN0aW9uKTtcclxuXHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24obW92ZUNvbGxlY3Rpb25zQnVsa0FjdGlvbik7XHJcbiAgICAgICAgYnVsa0FjdGlvblJlZ2lzdHJ5U2VydmljZS5yZWdpc3RlckJ1bGtBY3Rpb24oYXNzaWduQ29sbGVjdGlvbnNUb0NoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkdXBsaWNhdGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xyXG4gICAgICAgIGJ1bGtBY3Rpb25SZWdpc3RyeVNlcnZpY2UucmVnaXN0ZXJCdWxrQWN0aW9uKHJlbW92ZUNvbGxlY3Rpb25zRnJvbUNoYW5uZWxCdWxrQWN0aW9uKTtcclxuICAgICAgICBidWxrQWN0aW9uUmVnaXN0cnlTZXJ2aWNlLnJlZ2lzdGVyQnVsa0FjdGlvbihkZWxldGVDb2xsZWN0aW9uc0J1bGtBY3Rpb24pO1xyXG5cclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdwcm9kdWN0LWxpc3QnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdHMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3RMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtZGV0YWlsJyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3QnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IFByb2R1Y3REZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UHJvZHVjdERldGFpbERvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAncHJvZHVjdCcsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ2NhdGFsb2cuY3JlYXRlLW5ldy1wcm9kdWN0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAncHJvZHVjdC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLnByb2R1Y3QtdmFyaWFudHMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICd2YXJpYW50cycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdFZhcmlhbnRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ3Byb2R1Y3QtdmFyaWFudC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cucHJvZHVjdC12YXJpYW50cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogUHJvZHVjdFZhcmlhbnREZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0UHJvZHVjdFZhcmlhbnREZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ3Byb2R1Y3RWYXJpYW50JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke2VudGl0eT8ucHJvZHVjdC5uYW1lfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFsnL2NhdGFsb2cnLCAncHJvZHVjdHMnLCBlbnRpdHk/LnByb2R1Y3QuaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYCR7ZW50aXR5Py5uYW1lfSAoJHtlbnRpdHk/LnNrdX0pYCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGluazogWyd2YXJpYW50cycsIGVudGl0eT8uaWRdLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBdLFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdmYWNldC1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmZhY2V0cycpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogRmFjZXRMaXN0Q29tcG9uZW50LFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHBhZ2VTZXJ2aWNlLnJlZ2lzdGVyUGFnZVRhYih7XHJcbiAgICAgICAgICAgIHByaW9yaXR5OiAwLFxyXG4gICAgICAgICAgICBsb2NhdGlvbjogJ2ZhY2V0LWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5mYWNldCcpLFxyXG4gICAgICAgICAgICByb3V0ZTogJycsXHJcbiAgICAgICAgICAgIGNvbXBvbmVudDogZGV0YWlsQ29tcG9uZW50V2l0aFJlc29sdmVyKHtcclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudDogRmFjZXREZXRhaWxDb21wb25lbnQsXHJcbiAgICAgICAgICAgICAgICBxdWVyeTogR2V0RmFjZXREZXRhaWxEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIHZhcmlhYmxlczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGZhY2V0VmFsdWVMaXN0T3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWtlOiAxMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2tpcDogMCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgc29ydDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZEF0OiBTb3J0T3JkZXIuREVTQyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ2ZhY2V0JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGVudGl0eSA/IGVudGl0eS5uYW1lIDogXygnY2F0YWxvZy5jcmVhdGUtbmV3LWZhY2V0JyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnY29sbGVjdGlvbi1saXN0JyxcclxuICAgICAgICAgICAgdGFiOiBfKCdjYXRhbG9nLmNvbGxlY3Rpb25zJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBDb2xsZWN0aW9uTGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdjb2xsZWN0aW9uLWRldGFpbCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5jb2xsZWN0aW9uJyksXHJcbiAgICAgICAgICAgIHJvdXRlOiAnJyxcclxuICAgICAgICAgICAgY29tcG9uZW50OiBkZXRhaWxDb21wb25lbnRXaXRoUmVzb2x2ZXIoe1xyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50OiBDb2xsZWN0aW9uRGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcXVlcnk6IENvbGxlY3Rpb25EZXRhaWxRdWVyeURvY3VtZW50LFxyXG4gICAgICAgICAgICAgICAgZW50aXR5S2V5OiAnY29sbGVjdGlvbicsXHJcbiAgICAgICAgICAgICAgICBnZXRCcmVhZGNydW1iczogZW50aXR5ID0+IFtcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBlbnRpdHkgPyBlbnRpdHkubmFtZSA6IF8oJ2NhdGFsb2cuY3JlYXRlLW5ldy1jb2xsZWN0aW9uJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbms6IFtlbnRpdHk/LmlkXSxcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcGFnZVNlcnZpY2UucmVnaXN0ZXJQYWdlVGFiKHtcclxuICAgICAgICAgICAgcHJpb3JpdHk6IDAsXHJcbiAgICAgICAgICAgIGxvY2F0aW9uOiAnYXNzZXQtbGlzdCcsXHJcbiAgICAgICAgICAgIHRhYjogXygnY2F0YWxvZy5hc3NldHMnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IEFzc2V0TGlzdENvbXBvbmVudCxcclxuICAgICAgICB9KTtcclxuICAgICAgICBwYWdlU2VydmljZS5yZWdpc3RlclBhZ2VUYWIoe1xyXG4gICAgICAgICAgICBwcmlvcml0eTogMCxcclxuICAgICAgICAgICAgbG9jYXRpb246ICdhc3NldC1kZXRhaWwnLFxyXG4gICAgICAgICAgICB0YWI6IF8oJ2NhdGFsb2cuYXNzZXQnKSxcclxuICAgICAgICAgICAgcm91dGU6ICcnLFxyXG4gICAgICAgICAgICBjb21wb25lbnQ6IGRldGFpbENvbXBvbmVudFdpdGhSZXNvbHZlcih7XHJcbiAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEFzc2V0RGV0YWlsQ29tcG9uZW50LFxyXG4gICAgICAgICAgICAgICAgcXVlcnk6IEFzc2V0RGV0YWlsUXVlcnlEb2N1bWVudCxcclxuICAgICAgICAgICAgICAgIGVudGl0eUtleTogJ2Fzc2V0JyxcclxuICAgICAgICAgICAgICAgIGdldEJyZWFkY3J1bWJzOiBlbnRpdHkgPT4gW1xyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGAke2VudGl0eT8ubmFtZX1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rOiBbZW50aXR5Py5pZF0sXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIENhdGFsb2dNb2R1bGUuaGFzUmVnaXN0ZXJlZFRhYnNBbmRCdWxrQWN0aW9ucyA9IHRydWU7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -44,7 +44,7 @@ export class CreateProductVariantDialogComponent {
44
44
  }
45
45
  confirm() {
46
46
  const { name, sku, options, price } = this.form.value;
47
- if (!name || !sku || !options || !price) {
47
+ if (!name || !sku || !options || price == null) {
48
48
  return;
49
49
  }
50
50
  const optionIds = Object.values(options).filter(notNullOrUndefined);
@@ -77,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
77
77
  type: Component,
78
78
  args: [{ selector: 'vdr-create-product-variant-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>\r\n {{ 'catalog.create-product-variant' | translate }}\r\n</ng-template>\r\n<form [formGroup]=\"form\">\r\n <div formGroupName=\"options\" class=\"form-grid\">\r\n <vdr-form-field [label]=\"optionGroup.name\" *ngFor=\"let optionGroup of product.optionGroups\">\r\n <ng-select [items]=\"optionGroup.options\" [formControlName]=\"optionGroup.code\" bindLabel=\"name\"\r\n bindValue=\"id\" appendTo=\"body\">\r\n </ng-select>\r\n </vdr-form-field>\r\n <clr-alert *ngIf=\"product.optionGroups.length === 0\" clrAlertType=\"warning\" [clrAlertClosable]=\"false\"\r\n class=\"form-grid-span\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.cannot-create-variants-without-options' | translate }}\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div *ngIf=\"existingVariant\" class=\"mt-2\">\r\n <clr-alert clrAlertType=\"warning\" [clrAlertClosable]=\"false\" class=\"\">\r\n <clr-alert-item>\r\n <span class=\"alert-text\">\r\n {{ 'catalog.product-variant-exists' | translate }}: {{ existingVariant.name }} ({{\r\n existingVariant.sku\r\n }})\r\n </span>\r\n </clr-alert-item>\r\n </clr-alert>\r\n </div>\r\n <div class=\"form-grid mt-2\">\r\n <vdr-form-field [label]=\"'common.name' | translate\">\r\n <input type=\"text\" formControlName=\"name\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'catalog.sku' | translate\">\r\n <input type=\"text\" formControlName=\"sku\" />\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'catalog.price' | translate\">\r\n <vdr-currency-input name=\"price\" [currencyCode]=\"currencyCode\" formControlName=\"price\" />\r\n </vdr-form-field>\r\n </div>\r\n</form>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"confirm()\" class=\"btn btn-primary\"\r\n [disabled]=\"form.invalid || existingVariant || product.optionGroups.length === 0\">\r\n {{ 'common.confirm' | translate }}\r\n </button>\r\n</ng-template>" }]
79
79
  }], ctorParameters: () => [{ type: i1.FormBuilder }] });
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2R1Y3QtdmFyaWFudC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBZSxXQUFXLEVBQXlCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sbUNBQW1DO0lBWTVDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVDVDLFNBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMxQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvQixHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5QixLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQVMsRUFBRSxDQUFDO1NBQy9DLENBQUMsQ0FBQztJQUk0QyxDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQztRQUMzRCxLQUFLLE1BQU0sV0FBVyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFnQixDQUFDLFVBQVUsQ0FDL0MsV0FBVyxDQUFDLElBQUksRUFDaEIsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDM0MsQ0FBQztRQUNOLENBQUM7UUFDRCxNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQWUsQ0FBQztRQUM3RCxhQUFhLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6QyxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQztZQUMzRCxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssSUFBSSxXQUFXLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3pELE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO3FCQUM3QixHQUFHLENBQ0EsQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTtxQkFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7b0JBQ2xDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLEVBQUUsSUFBSSxDQUN2RDtxQkFDQSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2YsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLENBQUM7WUFDekQsQ0FBQztZQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO1lBQy9ELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FDbEQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQ3ZCLENBQUMsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUN0QixDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDekUsUUFBUSxDQUNmLENBQ0osQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPO1FBQ0gsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN0QyxPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUNiLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDMUIsR0FBRztZQUNILEtBQUssRUFBRSxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQ3BCLFNBQVM7WUFDVCxZQUFZLEVBQUU7Z0JBQ1Y7b0JBQ0ksWUFBWSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTtvQkFDdkMsSUFBSTtpQkFDUDthQUNKO1NBQ0osQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEVBQVU7UUFDakMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7SUFDMUUsQ0FBQztJQUVPLGtCQUFrQixDQUFDLElBQVk7UUFDbkMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUUsQ0FBQzs4R0FqRlEsbUNBQW1DO2tHQUFuQyxtQ0FBbUMseUVDakJoRCwwNEVBZ0RjOzsyRkQvQkQsbUNBQW1DO2tCQU4vQyxTQUFTOytCQUNJLG1DQUFtQyxtQkFHNUIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgRm9ybVJlY29yZCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICAgIENyZWF0ZVByb2R1Y3RWYXJpYW50SW5wdXQsXHJcbiAgICBDdXJyZW5jeUNvZGUsXHJcbiAgICBEaWFsb2csXHJcbiAgICBHZXRQcm9kdWN0VmFyaWFudE9wdGlvbnNRdWVyeSxcclxufSBmcm9tICdAdmVuZHVyZS9hZG1pbi11aS9jb3JlJztcclxuaW1wb3J0IHsgbm90TnVsbE9yVW5kZWZpbmVkIH0gZnJvbSAnQHZlbmR1cmUvY29tbW9uL2xpYi9zaGFyZWQtdXRpbHMnO1xyXG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmRyLWNyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVQcm9kdWN0VmFyaWFudERpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIERpYWxvZzxDcmVhdGVQcm9kdWN0VmFyaWFudElucHV0PiwgT25Jbml0IHtcclxuICAgIHJlc29sdmVXaXRoOiAocmVzdWx0PzogQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCkgPT4gdm9pZDtcclxuICAgIHByb2R1Y3Q6IE5vbk51bGxhYmxlPEdldFByb2R1Y3RWYXJpYW50T3B0aW9uc1F1ZXJ5Wydwcm9kdWN0J10+O1xyXG4gICAgZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgICAgIG5hbWU6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgc2t1OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAgIHByaWNlOiBbJyddLFxyXG4gICAgICAgIG9wdGlvbnM6IHRoaXMuZm9ybUJ1aWxkZXIucmVjb3JkPHN0cmluZz4oe30pLFxyXG4gICAgfSk7XHJcbiAgICBleGlzdGluZ1ZhcmlhbnQ6IE5vbk51bGxhYmxlPEdldFByb2R1Y3RWYXJpYW50T3B0aW9uc1F1ZXJ5Wydwcm9kdWN0J10+Wyd2YXJpYW50cyddW251bWJlcl0gfCB1bmRlZmluZWQ7XHJcbiAgICBjdXJyZW5jeUNvZGU6IEN1cnJlbmN5Q29kZTtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcikge31cclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbmN5Q29kZSA9IHRoaXMucHJvZHVjdC52YXJpYW50c1swXT8uY3VycmVuY3lDb2RlO1xyXG4gICAgICAgIGZvciAoY29uc3Qgb3B0aW9uR3JvdXAgb2YgdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwcykge1xyXG4gICAgICAgICAgICAodGhpcy5mb3JtLmdldCgnb3B0aW9ucycpIGFzIEZvcm1SZWNvcmQpLmFkZENvbnRyb2woXHJcbiAgICAgICAgICAgICAgICBvcHRpb25Hcm91cC5jb2RlLFxyXG4gICAgICAgICAgICAgICAgbmV3IEZvcm1Db250cm9sKCcnLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc1JlY29yZCA9IHRoaXMuZm9ybS5nZXQoJ29wdGlvbnMnKSBhcyBGb3JtUmVjb3JkO1xyXG4gICAgICAgIG9wdGlvbnNSZWNvcmQudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IG5hbWVDb250cm9sID0gdGhpcy5mb3JtLmdldCgnbmFtZScpO1xyXG4gICAgICAgICAgICBjb25zdCBhbGxOdWxsID0gT2JqZWN0LnZhbHVlcyh2YWx1ZSkuZXZlcnkodiA9PiB2ID09IG51bGwpO1xyXG4gICAgICAgICAgICBpZiAoIWFsbE51bGwgJiYgdmFsdWUgJiYgbmFtZUNvbnRyb2wgJiYgIW5hbWVDb250cm9sLmRpcnR5KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gT2JqZWN0LmVudHJpZXModmFsdWUpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAgICAgKFtncm91cENvZGUsIG9wdGlvbklkXSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJvZHVjdC5vcHRpb25Hcm91cHNcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmluZChvZyA9PiBvZy5jb2RlID09PSBncm91cENvZGUpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPy5vcHRpb25zLmZpbmQobyA9PiBvLmlkID09PSBvcHRpb25JZCk/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgIC5qb2luKCcgJyk7XHJcbiAgICAgICAgICAgICAgICBuYW1lQ29udHJvbC5zZXRWYWx1ZShgJHt0aGlzLnByb2R1Y3QubmFtZX0gJHtuYW1lfWApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbFNlbGVjdGVkID0gT2JqZWN0LnZhbHVlcyh2YWx1ZSkuZXZlcnkodiA9PiB2ICE9IG51bGwpO1xyXG4gICAgICAgICAgICBpZiAoYWxsU2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXhpc3RpbmdWYXJpYW50ID0gdGhpcy5wcm9kdWN0LnZhcmlhbnRzLmZpbmQodiA9PlxyXG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKS5ldmVyeShcclxuICAgICAgICAgICAgICAgICAgICAgICAgKFtncm91cENvZGUsIG9wdGlvbklkXSkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYub3B0aW9ucy5maW5kKG8gPT4gby5ncm91cElkID09PSB0aGlzLmdldEdyb3VwSWRGcm9tQ29kZShncm91cENvZGUpKT8uaWQgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25JZCxcclxuICAgICAgICAgICAgICAgICAgICApLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpcm0oKSB7XHJcbiAgICAgICAgY29uc3QgeyBuYW1lLCBza3UsIG9wdGlvbnMsIHByaWNlIH0gPSB0aGlzLmZvcm0udmFsdWU7XHJcbiAgICAgICAgaWYgKCFuYW1lIHx8ICFza3UgfHwgIW9wdGlvbnMgfHwgIXByaWNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG9wdGlvbklkcyA9IE9iamVjdC52YWx1ZXMob3B0aW9ucykuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCk7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh7XHJcbiAgICAgICAgICAgIHByb2R1Y3RJZDogdGhpcy5wcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICBza3UsXHJcbiAgICAgICAgICAgIHByaWNlOiBOdW1iZXIocHJpY2UpLFxyXG4gICAgICAgICAgICBvcHRpb25JZHMsXHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZTogdGhpcy5wcm9kdWN0Lmxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0R3JvdXBDb2RlRnJvbUlkKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3Qub3B0aW9uR3JvdXBzLmZpbmQob2cgPT4gb2cuaWQgPT09IGlkKT8uY29kZSA/PyAnJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEdyb3VwSWRGcm9tQ29kZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3Qub3B0aW9uR3JvdXBzLmZpbmQob2cgPT4gb2cuY29kZSA9PT0gY29kZSk/LmlkID8/ICcnO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5cclxuICAgIHt7ICdjYXRhbG9nLmNyZWF0ZS1wcm9kdWN0LXZhcmlhbnQnIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwib3B0aW9uc1wiIGNsYXNzPVwiZm9ybS1ncmlkXCI+XHJcbiAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCJvcHRpb25Hcm91cC5uYW1lXCIgKm5nRm9yPVwibGV0IG9wdGlvbkdyb3VwIG9mIHByb2R1Y3Qub3B0aW9uR3JvdXBzXCI+XHJcbiAgICAgICAgICAgIDxuZy1zZWxlY3QgW2l0ZW1zXT1cIm9wdGlvbkdyb3VwLm9wdGlvbnNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbkdyb3VwLmNvZGVcIiBiaW5kTGFiZWw9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCIgYXBwZW5kVG89XCJib2R5XCI+XHJcbiAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGNsci1hbGVydCAqbmdJZj1cInByb2R1Y3Qub3B0aW9uR3JvdXBzLmxlbmd0aCA9PT0gMFwiIGNsckFsZXJ0VHlwZT1cIndhcm5pbmdcIiBbY2xyQWxlcnRDbG9zYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1ncmlkLXNwYW5cIj5cclxuICAgICAgICAgICAgPGNsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuY2Fubm90LWNyZWF0ZS12YXJpYW50cy13aXRob3V0LW9wdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJleGlzdGluZ1ZhcmlhbnRcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICA8Y2xyLWFsZXJ0IGNsckFsZXJ0VHlwZT1cIndhcm5pbmdcIiBbY2xyQWxlcnRDbG9zYWJsZV09XCJmYWxzZVwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLnByb2R1Y3QtdmFyaWFudC1leGlzdHMnIHwgdHJhbnNsYXRlIH19OiB7eyBleGlzdGluZ1ZhcmlhbnQubmFtZSB9fSAoe3tcclxuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1ZhcmlhbnQuc2t1XHJcbiAgICAgICAgICAgICAgICAgICAgfX0pXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyaWQgbXQtMlwiPlxyXG4gICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NvbW1vbi5uYW1lJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cclxuICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NhdGFsb2cuc2t1JyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJza3VcIiAvPlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY2F0YWxvZy5wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPHZkci1jdXJyZW5jeS1pbnB1dCBuYW1lPVwicHJpY2VcIiBbY3VycmVuY3lDb2RlXT1cImN1cnJlbmN5Q29kZVwiIGZvcm1Db250cm9sTmFtZT1cInByaWNlXCIgLz5cclxuICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkIHx8IGV4aXN0aW5nVmFyaWFudCB8fCBwcm9kdWN0Lm9wdGlvbkdyb3Vwcy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICB7eyAnY29tbW9uLmNvbmZpcm0nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2R1Y3QtdmFyaWFudC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jYXRhbG9nL3NyYy9jb21wb25lbnRzL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY2F0YWxvZy9zcmMvY29tcG9uZW50cy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy9jcmVhdGUtcHJvZHVjdC12YXJpYW50LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBZSxXQUFXLEVBQXlCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzdGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQVN0RSxNQUFNLE9BQU8sbUNBQW1DO0lBWTVDLFlBQW9CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBVDVDLFNBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUMxQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUMvQixHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM5QixLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDWCxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQVMsRUFBRSxDQUFDO1NBQy9DLENBQUMsQ0FBQztJQUk0QyxDQUFDO0lBRWhELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENB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QyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsV0FBVyxDQUFDO1lBQ2IsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMxQixHQUFHO1lBQ0gsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7WUFDcEIsU0FBUztZQUNULFlBQVksRUFBRTtnQkFDVjtvQkFDSSxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO29CQUN2QyxJQUFJO2lCQUNQO2FBQ0o7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsRUFBVTtRQUNqQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBWTtRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM1RSxDQUFDOzhHQWpGUSxtQ0FBbUM7a0dBQW5DLG1DQUFtQyx5RUNqQmhELDA0RUFnRGM7OzJGRC9CRCxtQ0FBbUM7a0JBTi9DLFNBQVM7K0JBQ0ksbUNBQW1DLG1CQUc1Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBGb3JtUmVjb3JkLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gICAgQ3JlYXRlUHJvZHVjdFZhcmlhbnRJbnB1dCxcclxuICAgIEN1cnJlbmN5Q29kZSxcclxuICAgIERpYWxvZyxcclxuICAgIEdldFByb2R1Y3RWYXJpYW50T3B0aW9uc1F1ZXJ5LFxyXG59IGZyb20gJ0B2ZW5kdXJlL2FkbWluLXVpL2NvcmUnO1xyXG5pbXBvcnQgeyBub3ROdWxsT3JVbmRlZmluZWQgfSBmcm9tICdAdmVuZHVyZS9jb21tb24vbGliL3NoYXJlZC11dGlscyc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItY3JlYXRlLXByb2R1Y3QtdmFyaWFudC1kaWFsb2cnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NyZWF0ZS1wcm9kdWN0LXZhcmlhbnQtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIENyZWF0ZVByb2R1Y3RWYXJpYW50RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgRGlhbG9nPENyZWF0ZVByb2R1Y3RWYXJpYW50SW5wdXQ+LCBPbkluaXQge1xyXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBDcmVhdGVQcm9kdWN0VmFyaWFudElucHV0KSA9PiB2b2lkO1xyXG4gICAgcHJvZHVjdDogTm9uTnVsbGFibGU8R2V0UHJvZHVjdFZhcmlhbnRPcHRpb25zUXVlcnlbJ3Byb2R1Y3QnXT47XHJcbiAgICBmb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgICBza3U6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICAgcHJpY2U6IFsnJ10sXHJcbiAgICAgICAgb3B0aW9uczogdGhpcy5mb3JtQnVpbGRlci5yZWNvcmQ8c3RyaW5nPih7fSksXHJcbiAgICB9KTtcclxuICAgIGV4aXN0aW5nVmFyaWFudDogTm9uTnVsbGFibGU8R2V0UHJvZHVjdFZhcmlhbnRPcHRpb25zUXVlcnlbJ3Byb2R1Y3QnXT5bJ3ZhcmlhbnRzJ11bbnVtYmVyXSB8IHVuZGVmaW5lZDtcclxuICAgIGN1cnJlbmN5Q29kZTogQ3VycmVuY3lDb2RlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMuY3VycmVuY3lDb2RlID0gdGhpcy5wcm9kdWN0LnZhcmlhbnRzWzBdPy5jdXJyZW5jeUNvZGU7XHJcbiAgICAgICAgZm9yIChjb25zdCBvcHRpb25Hcm91cCBvZiB0aGlzLnByb2R1Y3Qub3B0aW9uR3JvdXBzKSB7XHJcbiAgICAgICAgICAgICh0aGlzLmZvcm0uZ2V0KCdvcHRpb25zJykgYXMgRm9ybVJlY29yZCkuYWRkQ29udHJvbChcclxuICAgICAgICAgICAgICAgIG9wdGlvbkdyb3VwLmNvZGUsXHJcbiAgICAgICAgICAgICAgICBuZXcgRm9ybUNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvcHRpb25zUmVjb3JkID0gdGhpcy5mb3JtLmdldCgnb3B0aW9ucycpIGFzIEZvcm1SZWNvcmQ7XHJcbiAgICAgICAgb3B0aW9uc1JlY29yZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbmFtZUNvbnRyb2wgPSB0aGlzLmZvcm0uZ2V0KCduYW1lJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGFsbE51bGwgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5ldmVyeSh2ID0+IHYgPT0gbnVsbCk7XHJcbiAgICAgICAgICAgIGlmICghYWxsTnVsbCAmJiB2YWx1ZSAmJiBuYW1lQ29udHJvbCAmJiAhbmFtZUNvbnRyb2wuZGlydHkpIHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG5hbWUgPSBPYmplY3QuZW50cmllcyh2YWx1ZSlcclxuICAgICAgICAgICAgICAgICAgICAubWFwKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoW2dyb3VwQ29kZSwgb3B0aW9uSWRdKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9kdWN0Lm9wdGlvbkdyb3Vwc1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maW5kKG9nID0+IG9nLmNvZGUgPT09IGdyb3VwQ29kZSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/Lm9wdGlvbnMuZmluZChvID0+IG8uaWQgPT09IG9wdGlvbklkKT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKTtcclxuICAgICAgICAgICAgICAgIG5hbWVDb250cm9sLnNldFZhbHVlKGAke3RoaXMucHJvZHVjdC5uYW1lfSAke25hbWV9YCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgY29uc3QgYWxsU2VsZWN0ZWQgPSBPYmplY3QudmFsdWVzKHZhbHVlKS5ldmVyeSh2ID0+IHYgIT0gbnVsbCk7XHJcbiAgICAgICAgICAgIGlmIChhbGxTZWxlY3RlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5leGlzdGluZ1ZhcmlhbnQgPSB0aGlzLnByb2R1Y3QudmFyaWFudHMuZmluZCh2ID0+XHJcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpLmV2ZXJ5KFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoW2dyb3VwQ29kZSwgb3B0aW9uSWRdKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi5vcHRpb25zLmZpbmQobyA9PiBvLmdyb3VwSWQgPT09IHRoaXMuZ2V0R3JvdXBJZEZyb21Db2RlKGdyb3VwQ29kZSkpPy5pZCA9PT1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbklkLFxyXG4gICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uZmlybSgpIHtcclxuICAgICAgICBjb25zdCB7IG5hbWUsIHNrdSwgb3B0aW9ucywgcHJpY2UgfSA9IHRoaXMuZm9ybS52YWx1ZTtcclxuICAgICAgICBpZiAoIW5hbWUgfHwgIXNrdSB8fCAhb3B0aW9ucyB8fCBwcmljZSA9PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IG9wdGlvbklkcyA9IE9iamVjdC52YWx1ZXMob3B0aW9ucykuZmlsdGVyKG5vdE51bGxPclVuZGVmaW5lZCk7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCh7XHJcbiAgICAgICAgICAgIHByb2R1Y3RJZDogdGhpcy5wcm9kdWN0LmlkLFxyXG4gICAgICAgICAgICBza3UsXHJcbiAgICAgICAgICAgIHByaWNlOiBOdW1iZXIocHJpY2UpLFxyXG4gICAgICAgICAgICBvcHRpb25JZHMsXHJcbiAgICAgICAgICAgIHRyYW5zbGF0aW9uczogW1xyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIGxhbmd1YWdlQ29kZTogdGhpcy5wcm9kdWN0Lmxhbmd1YWdlQ29kZSxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0R3JvdXBDb2RlRnJvbUlkKGlkOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3Qub3B0aW9uR3JvdXBzLmZpbmQob2cgPT4gb2cuaWQgPT09IGlkKT8uY29kZSA/PyAnJztcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEdyb3VwSWRGcm9tQ29kZShjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnByb2R1Y3Qub3B0aW9uR3JvdXBzLmZpbmQob2cgPT4gb2cuY29kZSA9PT0gY29kZSk/LmlkID8/ICcnO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT5cclxuICAgIHt7ICdjYXRhbG9nLmNyZWF0ZS1wcm9kdWN0LXZhcmlhbnQnIHwgdHJhbnNsYXRlIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPGRpdiBmb3JtR3JvdXBOYW1lPVwib3B0aW9uc1wiIGNsYXNzPVwiZm9ybS1ncmlkXCI+XHJcbiAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCJvcHRpb25Hcm91cC5uYW1lXCIgKm5nRm9yPVwibGV0IG9wdGlvbkdyb3VwIG9mIHByb2R1Y3Qub3B0aW9uR3JvdXBzXCI+XHJcbiAgICAgICAgICAgIDxuZy1zZWxlY3QgW2l0ZW1zXT1cIm9wdGlvbkdyb3VwLm9wdGlvbnNcIiBbZm9ybUNvbnRyb2xOYW1lXT1cIm9wdGlvbkdyb3VwLmNvZGVcIiBiaW5kTGFiZWw9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cImlkXCIgYXBwZW5kVG89XCJib2R5XCI+XHJcbiAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGNsci1hbGVydCAqbmdJZj1cInByb2R1Y3Qub3B0aW9uR3JvdXBzLmxlbmd0aCA9PT0gMFwiIGNsckFsZXJ0VHlwZT1cIndhcm5pbmdcIiBbY2xyQWxlcnRDbG9zYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1ncmlkLXNwYW5cIj5cclxuICAgICAgICAgICAgPGNsci1hbGVydC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhbGVydC10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgJ2NhdGFsb2cuY2Fubm90LWNyZWF0ZS12YXJpYW50cy13aXRob3V0LW9wdGlvbnMnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgKm5nSWY9XCJleGlzdGluZ1ZhcmlhbnRcIiBjbGFzcz1cIm10LTJcIj5cclxuICAgICAgICA8Y2xyLWFsZXJ0IGNsckFsZXJ0VHlwZT1cIndhcm5pbmdcIiBbY2xyQWxlcnRDbG9zYWJsZV09XCJmYWxzZVwiIGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgIDxjbHItYWxlcnQtaXRlbT5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYWxlcnQtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7ICdjYXRhbG9nLnByb2R1Y3QtdmFyaWFudC1leGlzdHMnIHwgdHJhbnNsYXRlIH19OiB7eyBleGlzdGluZ1ZhcmlhbnQubmFtZSB9fSAoe3tcclxuICAgICAgICAgICAgICAgICAgICBleGlzdGluZ1ZhcmlhbnQuc2t1XHJcbiAgICAgICAgICAgICAgICAgICAgfX0pXHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvY2xyLWFsZXJ0LWl0ZW0+XHJcbiAgICAgICAgPC9jbHItYWxlcnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJmb3JtLWdyaWQgbXQtMlwiPlxyXG4gICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NvbW1vbi5uYW1lJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgLz5cclxuICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDx2ZHItZm9ybS1maWVsZCBbbGFiZWxdPVwiJ2NhdGFsb2cuc2t1JyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBmb3JtQ29udHJvbE5hbWU9XCJza3VcIiAvPlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY2F0YWxvZy5wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPHZkci1jdXJyZW5jeS1pbnB1dCBuYW1lPVwicHJpY2VcIiBbY3VycmVuY3lDb2RlXT1cImN1cnJlbmN5Q29kZVwiIGZvcm1Db250cm9sTmFtZT1cInByaWNlXCIgLz5cclxuICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbjwvZm9ybT5cclxuPG5nLXRlbXBsYXRlIHZkckRpYWxvZ0J1dHRvbnM+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0blwiIChjbGljayk9XCJjYW5jZWwoKVwiPnt7ICdjb21tb24uY2FuY2VsJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgKGNsaWNrKT1cImNvbmZpcm0oKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5pbnZhbGlkIHx8IGV4aXN0aW5nVmFyaWFudCB8fCBwcm9kdWN0Lm9wdGlvbkdyb3Vwcy5sZW5ndGggPT09IDBcIj5cclxuICAgICAgICB7eyAnY29tbW9uLmNvbmZpcm0nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT4iXX0=