@pepperi-addons/ngx-lib 0.2.58-beta.1 → 0.2.59
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/attachment/attachment.component.d.ts +0 -1
- package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +0 -3
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-color.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-date.umd.js +0 -3
- package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-form.umd.js +15 -18
- package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-image.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-select.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js +0 -8
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +173 -1432
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +2 -4
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib.umd.js +101 -85
- package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
- package/color/color.component.d.ts +0 -1
- package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
- package/core/common/services/color.service.d.ts +3 -3
- package/core/customization/customization.service.d.ts +0 -1
- package/esm2015/attachment/attachment.component.js +2 -7
- package/esm2015/checkbox/checkbox.component.js +1 -4
- package/esm2015/color/color.component.js +2 -7
- package/esm2015/color/public-api.js +1 -2
- package/esm2015/core/common/services/color.service.js +101 -83
- package/esm2015/core/customization/customization.service.js +2 -4
- package/esm2015/date/date.component.js +1 -4
- package/esm2015/form/internal-button.component.js +17 -20
- package/esm2015/image/image.component.js +2 -7
- package/esm2015/images-filmstrip/images-filmstrip.component.js +2 -7
- package/esm2015/quantity-selector/quantity-selector.component.js +2 -7
- package/esm2015/rich-html-textarea/rich-html-textarea.component.js +2 -7
- package/esm2015/select/select.component.js +2 -7
- package/esm2015/separator/separator.component.js +1 -9
- package/esm2015/signature/signature.component.js +2 -7
- package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +2 -12
- package/esm2015/smart-filters/common/model/base-filter-component.js +10 -40
- package/esm2015/smart-filters/common/model/creator.js +2 -8
- package/esm2015/smart-filters/common/model/field.js +1 -12
- package/esm2015/smart-filters/common/model/operator.js +8 -8
- package/esm2015/smart-filters/common/model/type.js +1 -1
- package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -45
- package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +14 -53
- package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -25
- package/esm2015/smart-filters/pepperi-addons-ngx-lib-smart-filters.js +1 -8
- package/esm2015/smart-filters/public-api.js +1 -2
- package/esm2015/smart-filters/smart-filters.module.js +2 -14
- package/esm2015/textarea/textarea.component.js +2 -7
- package/esm2015/textbox/textbox.component.js +3 -5
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +0 -3
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.js +0 -3
- package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.js +15 -18
- package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-separator.js +0 -8
- package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +128 -1293
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js +2 -4
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.js +101 -85
- package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
- package/form/internal-button.component.d.ts +1 -0
- package/image/image.component.d.ts +0 -1
- package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +0 -1
- package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
- package/package.json +1 -1
- package/pepperi-addons-ngx-lib.metadata.json +1 -1
- package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
- package/quantity-selector/quantity-selector.component.d.ts +0 -1
- package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
- package/rich-html-textarea/rich-html-textarea.component.d.ts +0 -1
- package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
- package/select/select.component.d.ts +0 -1
- package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
- package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
- package/signature/signature.component.d.ts +0 -1
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -5
- package/smart-filters/common/model/base-filter-component.d.ts +1 -10
- package/smart-filters/common/model/field.d.ts +0 -4
- package/smart-filters/common/model/operator.d.ts +0 -1
- package/smart-filters/common/model/type.d.ts +2 -2
- package/smart-filters/date-filter/date-filter.component.d.ts +1 -8
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +0 -6
- package/smart-filters/number-filter/number-filter.component.d.ts +0 -5
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.d.ts +0 -7
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
- package/smart-filters/public-api.d.ts +0 -1
- package/src/assets/i18n/en.ngx-lib.json +1 -2
- package/src/core/style/abstracts/mixins.scss +3 -3
- package/src/core/style/components/general.scss +2 -4
- package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
- package/textarea/textarea.component.d.ts +0 -1
- package/theming.scss +0 -4
- package/esm2015/smart-filters/filter-builder/common/model/filter.js +0 -2
- package/esm2015/smart-filters/filter-builder/common/model/legacy.js +0 -2
- package/esm2015/smart-filters/filter-builder/common/model/operator-unit.js +0 -42
- package/esm2015/smart-filters/filter-builder/common/model/operator.js +0 -207
- package/esm2015/smart-filters/filter-builder/common/model/type-map.js +0 -27
- package/esm2015/smart-filters/filter-builder/common/model/type.js +0 -6
- package/esm2015/smart-filters/filter-builder/common/pipes/filter-item-counter.pipe.js +0 -18
- package/esm2015/smart-filters/filter-builder/common/services/output-filter.service.js +0 -132
- package/esm2015/smart-filters/filter-builder/common/services/type-convertor.service.js +0 -44
- package/esm2015/smart-filters/filter-builder/filter-builder-item/filter-builder-item.component.js +0 -106
- package/esm2015/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.js +0 -50
- package/esm2015/smart-filters/filter-builder/filter-builder.component.js +0 -65
- package/esm2015/smart-filters/filter-builder/filter-builder.service.js +0 -261
- package/esm2015/smart-filters/index.js +0 -5
- package/esm2015/smart-filters/text-filter/text-filter.component.js +0 -79
- package/smart-filters/filter-builder/common/model/filter.d.ts +0 -6
- package/smart-filters/filter-builder/common/model/legacy.d.ts +0 -23
- package/smart-filters/filter-builder/common/model/operator-unit.d.ts +0 -13
- package/smart-filters/filter-builder/common/model/operator.d.ts +0 -21
- package/smart-filters/filter-builder/common/model/type-map.d.ts +0 -12
- package/smart-filters/filter-builder/common/model/type.d.ts +0 -4
- package/smart-filters/filter-builder/common/pipes/filter-item-counter.pipe.d.ts +0 -5
- package/smart-filters/filter-builder/common/services/output-filter.service.d.ts +0 -52
- package/smart-filters/filter-builder/common/services/type-convertor.service.d.ts +0 -10
- package/smart-filters/filter-builder/filter-builder-item/filter-builder-item.component.d.ts +0 -32
- package/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.d.ts +0 -22
- package/smart-filters/filter-builder/filter-builder-section/filter-builder-section.component.theme.scss +0 -6
- package/smart-filters/filter-builder/filter-builder.component.d.ts +0 -22
- package/smart-filters/filter-builder/filter-builder.service.d.ts +0 -90
- package/smart-filters/index.d.ts +0 -1
- package/smart-filters/text-filter/text-filter.component.d.ts +0 -17
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, Renderer2, ElementRef, } from '@angular/core';
|
|
2
|
-
import { PepCustomizationService, DEFAULT_HORIZONTAL_ALIGNMENT, } from '@pepperi-addons/ngx-lib';
|
|
2
|
+
import { PepCustomizationService, DEFAULT_HORIZONTAL_ALIGNMENT, PepInternalButtonField, } from '@pepperi-addons/ngx-lib';
|
|
3
3
|
import { pepIconSystemBin } from '@pepperi-addons/ngx-lib/icon';
|
|
4
4
|
export class PepInternalButtonComponent {
|
|
5
5
|
constructor(customizationService, renderer, element) {
|
|
@@ -23,7 +23,7 @@ export class PepInternalButtonComponent {
|
|
|
23
23
|
this.layoutType = 'form';
|
|
24
24
|
this.elementClick = new EventEmitter();
|
|
25
25
|
this.valueChange = new EventEmitter();
|
|
26
|
-
|
|
26
|
+
this.standAlone = false;
|
|
27
27
|
this.createNewReference = false;
|
|
28
28
|
this.referenceButtons = [
|
|
29
29
|
{
|
|
@@ -51,23 +51,20 @@ export class PepInternalButtonComponent {
|
|
|
51
51
|
return this._visible;
|
|
52
52
|
}
|
|
53
53
|
ngOnInit() {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
// PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME
|
|
69
|
-
// );
|
|
70
|
-
// }
|
|
54
|
+
if (this.form === null) {
|
|
55
|
+
this.standAlone = true;
|
|
56
|
+
// this.form = this.customizationService.getDefaultFromGroup(this.key, this.value, this.mandatory, this.readonly, this.disabled);
|
|
57
|
+
const pepField = new PepInternalButtonField({
|
|
58
|
+
key: this.key,
|
|
59
|
+
value: this.value,
|
|
60
|
+
mandatory: this.mandatory,
|
|
61
|
+
readonly: this.readonly,
|
|
62
|
+
disabled: this.disabled,
|
|
63
|
+
});
|
|
64
|
+
this.form = this.customizationService.getDefaultFromGroup(pepField);
|
|
65
|
+
this.formattedValue = this.formattedValue || this.value;
|
|
66
|
+
this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME);
|
|
67
|
+
}
|
|
71
68
|
}
|
|
72
69
|
ngOnChanges(changes) {
|
|
73
70
|
if (this.type === 'reference') {
|
|
@@ -163,4 +160,4 @@ PepInternalButtonComponent.propDecorators = {
|
|
|
163
160
|
elementClick: [{ type: Output }],
|
|
164
161
|
valueChange: [{ type: Output }]
|
|
165
162
|
};
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvZm9ybS9pbnRlcm5hbC1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBR1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILHVCQUF1QixFQUV2Qiw0QkFBNEIsR0FJL0IsTUFBTSx5QkFBeUIsQ0FBQztBQUtqQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQVFoRSxNQUFNLE9BQU8sMEJBQTBCO0lBNkRuQyxZQUNZLG9CQUE2QyxFQUM3QyxRQUFtQixFQUNuQixPQUFtQjtRQUZuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzdDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQTlEdEIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUNwQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVgsU0FBSSxHQUErQixRQUFRLENBQUM7UUFDNUMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUEyQiw0QkFBNEIsQ0FBQztRQUNsRSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRWIsYUFBUSxHQUFHLElBQUksQ0FBQztRQW9CeEIsZ0JBQVcsR0FBRyxRQUFRLENBQUM7UUFFZCxTQUFJLEdBQWMsSUFBSSxDQUFDO1FBQ3ZCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDakIsZUFB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QkcsdUJBQXVCO1lBUHZCLFNBQVM7WUFDVCxVQUFVOzs7a0JBMkJULEtBQUs7b0JBQ0wsS0FBSzs2QkFDTCxLQUFLO29CQUNMLEtBQUs7MENBQ0wsS0FBSzttQkFDTCxLQUFLO3dCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBQ0wsS0FBSztzQkFHTCxLQUFLO21CQXFCTCxLQUFLO3dCQUNMLEtBQUs7eUJBQ0wsS0FBSzsyQkFFTCxNQUFNOzBCQUVOLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgUmVuZGVyZXIyLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25EZXN0cm95LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG4gICAgSVBlcEZpZWxkQ2xpY2tFdmVudCxcbiAgICBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkVHlwZSxcbiAgICBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkLFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQge1xuICAgIFBlcEJ1dHRvbixcbiAgICBJUGVwQnV0dG9uQ2xpY2tFdmVudCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvYnV0dG9uJztcbmltcG9ydCB7IHBlcEljb25TeXN0ZW1CaW4gfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9pY29uJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtaW50ZXJuYWwtYnV0dG9uJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW50ZXJuYWwtYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9pbnRlcm5hbC1idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgUGVwSW50ZXJuYWxCdXR0b25Db21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGtleSA9ICcnO1xuICAgIEBJbnB1dCgpIHZhbHVlID0gJyc7XG4gICAgQElucHV0KCkgZm9ybWF0dGVkVmFsdWUgPSAnJztcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZTogYW55O1xuICAgIEBJbnB1dCgpIHR5cGU6IFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlID0gJ2J1dHRvbic7XG4gICAgQElucHV0KCkgbWFuZGF0b3J5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuICAgIEBJbnB1dCgpIHJvd1NwYW4gPSAxO1xuXG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBjb250cm9sVHlwZSA9ICdidXR0b24nO1xuXG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbnVsbDtcbiAgICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGxheW91dFR5cGU6IFBlcExheW91dFR5cGUgPSAnZm9ybSc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBlbGVtZW50Q2xpY2s6IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4oKTtcbiAgICBAT3V0cHV0KClcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICAgIC8vIHN0YW5kQWxvbmUgPSBmYWxzZTtcbiAgICBjcmVhdGVOZXdSZWZlcmVuY2UgPSBmYWxzZTtcbiAgICByZWZlcmVuY2VCdXR0b25zOiBBcnJheTxQZXBCdXR0b24+ID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdhY3Rpb24nLFxuICAgICAgICAgICAgY2FsbGJhY2s6IChhY3Rpb246IElQZXBCdXR0b25DbGlja0V2ZW50KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMub25CdXR0b25DbGlja2VkKGFjdGlvbi5ldmVudCksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2RlbGV0ZScsXG4gICAgICAgICAgICBjYWxsYmFjazogKGFjdGlvbjogSVBlcEJ1dHRvbkNsaWNrRXZlbnQpID0+IHRoaXMucmVtb3ZlKCksXG4gICAgICAgICAgICBjbGFzc05hbWVzOiAnY2F1dGlvbicsXG4gICAgICAgICAgICBpY29uTmFtZTogcGVwSWNvblN5c3RlbUJpbi5uYW1lLFxuICAgICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21pemF0aW9uU2VydmljZTogUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBpZiAodGhpcy5mb3JtID09PSBudWxsKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnN0YW5kQWxvbmUgPSB0cnVlO1xuICAgICAgICAvLyAgICAgLy8gdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHRoaXMua2V5LCB0aGlzLnZhbHVlLCB0aGlzLm1hbmRhdG9yeSwgdGhpcy5yZWFkb25seSwgdGhpcy5kaXNhYmxlZCk7XG4gICAgICAgIC8vICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBJbnRlcm5hbEJ1dHRvbkZpZWxkKHtcbiAgICAgICAgLy8gICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAvLyAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAvLyAgICAgICAgIG1hbmRhdG9yeTogdGhpcy5tYW5kYXRvcnksXG4gICAgICAgIC8vICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgIC8vICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgIC8vICAgICB9KTtcbiAgICAgICAgLy8gICAgIHRoaXMuZm9ybSA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEZyb21Hcm91cChwZXBGaWVsZCk7XG5cbiAgICAgICAgLy8gICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlIHx8IHRoaXMudmFsdWU7XG4gICAgICAgIC8vICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAvLyAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAvLyAgICAgICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLlNUQU5EX0FMT05FX0ZJRUxEX0NMQVNTX05BTUVcbiAgICAgICAgLy8gICAgICk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3JlZmVyZW5jZScpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlTmV3UmVmZXJlbmNlID0gdGhpcy52YWx1ZS5sZW5ndGggPT09IDA7XG4gICAgICAgICAgICB0aGlzLnJlZmVyZW5jZUJ1dHRvbnNbMF0udmFsdWUgPSB0aGlzLmZvcm1hdHRlZFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgLy8gZ3JvdXBCdXR0b25DbGlja2VkKGFjdGlvbjogSVBlcEJ1dHRvbkNsaWNrRXZlbnQpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKGFjdGlvbi5zb3VyY2Uua2V5ID09PSAnYWN0aW9uJykge1xuICAgIC8vICAgICAgICAgdGhpcy5vbkJ1dHRvbkNsaWNrZWQoYWN0aW9uLmV2ZW50KTtcbiAgICAvLyAgICAgfSBlbHNlIGlmIChhY3Rpb24uc291cmNlLmtleSA9PT0gJ2RlbGV0ZScpIHtcbiAgICAvLyAgICAgICAgIHRoaXMucmVtb3ZlKCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICBvbkJ1dHRvbkNsaWNrZWQoZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3JlZmVyZW5jZScpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlQXJyID0gdGhpcy52YWx1ZS5zcGxpdCgnLycpO1xuXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZUFyclt2YWx1ZUFyci5sZW5ndGggLSAxXSwgLy8gLnJlcGxhY2UoL1teYS16QS1aMC05IF0vZywgJycpLFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICAgICAgICAgIG90aGVyRGF0YTogdGhpcy5yZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdidXR0b24nICYmIHRydWUpIHtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsIC8vIHNob3VsZCBjb250YWluIHRoZSBwcm9ncmFtIG5hbWVcbiAgICAgICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgICAgICBldmVudFdoaWNoOiBldmVudC53aGljaCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgICAgICBldmVudFdoaWNoOiBldmVudC53aGljaCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaHJlZkZ1bmN0aW9uKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChldmVudC53aGljaCA9PT0gMSAvKnx8IGV2ZW50LndoaWNoID09PSAyKi8pIHtcbiAgICAgICAgICAgIHRoaXMub25CdXR0b25DbGlja2VkKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9wZW5SZWZlcmVuY2VPYmplY3RJbnRlcm5hbChldmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgZXZlbnRXaGljaDogZXZlbnQud2hpY2gsXG4gICAgICAgICAgICBvdGhlckRhdGE6IHRoaXMucmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlLFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZW1vdmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIH1cbn1cbiJdfQ==
|
|
163
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvZm9ybS9pbnRlcm5hbC1idXR0b24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBR1QsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEdBRWIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVILHVCQUF1QixFQUV2Qiw0QkFBNEIsRUFHNUIsc0JBQXNCLEdBQ3pCLE1BQU0seUJBQXlCLENBQUM7QUFLakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFRaEUsTUFBTSxPQUFPLDBCQUEwQjtJQTZEbkMsWUFDWSxvQkFBNkMsRUFDN0MsUUFBbUIsRUFDbkIsT0FBbUI7UUFGbkIseUJBQW9CLEdBQXBCLG9CQUFvQixDQUF5QjtRQUM3QyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUE5RHRCLFFBQUcsR0FBRyxFQUFFLENBQUM7UUFDVCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFDcEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUVYLFNBQUksR0FBK0IsUUFBUSxDQUFDO1FBQzVDLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGVBQVUsR0FBMkIsNEJBQTRCLENBQUM7UUFDbEUsWUFBTyxHQUFHLENBQUMsQ0FBQztRQUViLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFvQnhCLGdCQUFXLEdBQUcsUUFBUSxDQUFDO1FBRWQsU0FBSSxHQUFjLElBQUksQ0FBQztRQUN2QixjQUFTLEdBQUcsSUFBSSxD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QUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixVQUFVLEVBQUUsS0FBSyxDQUFDLEtBQUs7WUFDdkIsU0FBUyxFQUFFLElBQUksQ0FBQywyQkFBMkI7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEMsQ0FBQzs7O1lBL0pKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixvOU9BQStDO2dCQUUvQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQWxCRyx1QkFBdUI7WUFQdkIsU0FBUztZQUNULFVBQVU7OztrQkEyQlQsS0FBSztvQkFDTCxLQUFLOzZCQUNMLEtBQUs7b0JBQ0wsS0FBSzswQ0FDTCxLQUFLO21CQUNMLEtBQUs7d0JBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUdMLEtBQUs7bUJBcUJMLEtBQUs7d0JBQ0wsS0FBSzt5QkFDTCxLQUFLOzJCQUVMLE1BQU07MEJBRU4sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBSZW5kZXJlcjIsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBQZXBMYXlvdXRUeXBlLFxuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIFBlcEhvcml6b250YWxBbGlnbm1lbnQsXG4gICAgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVCxcbiAgICBJUGVwRmllbGRDbGlja0V2ZW50LFxuICAgIFBlcEludGVybmFsQnV0dG9uRmllbGRUeXBlLFxuICAgIFBlcEludGVybmFsQnV0dG9uRmllbGQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7XG4gICAgUGVwQnV0dG9uLFxuICAgIElQZXBCdXR0b25DbGlja0V2ZW50LFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgcGVwSWNvblN5c3RlbUJpbiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1pbnRlcm5hbC1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnRlcm5hbC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ludGVybmFsLWJ1dHRvbi5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBJbnRlcm5hbEJ1dHRvbkNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkga2V5ID0gJyc7XG4gICAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgICBASW5wdXQoKSBmb3JtYXR0ZWRWYWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgQElucHV0KCkgcmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlOiBhbnk7XG4gICAgQElucHV0KCkgdHlwZTogUGVwSW50ZXJuYWxCdXR0b25GaWVsZFR5cGUgPSAnYnV0dG9uJztcbiAgICBASW5wdXQoKSBtYW5kYXRvcnkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG4gICAgQElucHV0KCkgcm93U3BhbiA9IDE7XG5cbiAgICBwcml2YXRlIF92aXNpYmxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2aXNpYmxlKHZpc2libGU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fdmlzaWJsZSA9IHZpc2libGU7XG4gICAgICAgIGlmICh2aXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICAgIH1cblxuICAgIGNvbnRyb2xUeXBlID0gJ2J1dHRvbic7XG5cbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcblxuICAgIEBPdXRwdXQoKVxuICAgIGVsZW1lbnRDbGljazogRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRDbGlja0V2ZW50PigpO1xuICAgIEBPdXRwdXQoKVxuICAgIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuICAgIGNyZWF0ZU5ld1JlZmVyZW5jZSA9IGZhbHNlO1xuICAgIHJlZmVyZW5jZUJ1dHRvbnM6IEFycmF5PFBlcEJ1dHRvbj4gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2FjdGlvbicsXG4gICAgICAgICAgICBjYWxsYmFjazogKGFjdGlvbjogSVBlcEJ1dHRvbkNsaWNrRXZlbnQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5vbkJ1dHRvbkNsaWNrZWQoYWN0aW9uLmV2ZW50KSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnZGVsZXRlJyxcbiAgICAgICAgICAgIGNhbGxiYWNrOiAoYWN0aW9uOiBJUGVwQnV0dG9uQ2xpY2tFdmVudCkgPT4gdGhpcy5yZW1vdmUoKSxcbiAgICAgICAgICAgIGNsYXNzTmFtZXM6ICdjYXV0aW9uJyxcbiAgICAgICAgICAgIGljb25OYW1lOiBwZXBJY29uU3lzdGVtQmluLm5hbWUsXG4gICAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWZcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICAvLyB0aGlzLmZvcm0gPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmdldERlZmF1bHRGcm9tR3JvdXAodGhpcy5rZXksIHRoaXMudmFsdWUsIHRoaXMubWFuZGF0b3J5LCB0aGlzLnJlYWRvbmx5LCB0aGlzLmRpc2FibGVkKTtcbiAgICAgICAgICAgIGNvbnN0IHBlcEZpZWxkID0gbmV3IFBlcEludGVybmFsQnV0dG9uRmllbGQoe1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcbiAgICAgICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHBlcEZpZWxkKTtcblxuICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWUgfHwgdGhpcy52YWx1ZTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAncmVmZXJlbmNlJykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVOZXdSZWZlcmVuY2UgPSB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgICAgICAgICAgIHRoaXMucmVmZXJlbmNlQnV0dG9uc1swXS52YWx1ZSA9IHRoaXMuZm9ybWF0dGVkVmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICAvLyBncm91cEJ1dHRvbkNsaWNrZWQoYWN0aW9uOiBJUGVwQnV0dG9uQ2xpY2tFdmVudCk6IHZvaWQge1xuICAgIC8vICAgICBpZiAoYWN0aW9uLnNvdXJjZS5rZXkgPT09ICdhY3Rpb24nKSB7XG4gICAgLy8gICAgICAgICB0aGlzLm9uQnV0dG9uQ2xpY2tlZChhY3Rpb24uZXZlbnQpO1xuICAgIC8vICAgICB9IGVsc2UgaWYgKGFjdGlvbi5zb3VyY2Uua2V5ID09PSAnZGVsZXRlJykge1xuICAgIC8vICAgICAgICAgdGhpcy5yZW1vdmUoKTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgIG9uQnV0dG9uQ2xpY2tlZChldmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy50eXBlID09PSAncmVmZXJlbmNlJykge1xuICAgICAgICAgICAgY29uc3QgdmFsdWVBcnIgPSB0aGlzLnZhbHVlLnNwbGl0KCcvJyk7XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlQXJyW3ZhbHVlQXJyLmxlbmd0aCAtIDFdLCAvLyAucmVwbGFjZSgvW15hLXpBLVowLTkgXS9nLCAnJyksXG4gICAgICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGUsXG4gICAgICAgICAgICAgICAgZXZlbnRXaGljaDogZXZlbnQud2hpY2gsXG4gICAgICAgICAgICAgICAgb3RoZXJEYXRhOiB0aGlzLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2J1dHRvbicgJiYgdHJ1ZSkge1xuICAgICAgICAgICAgdGhpcy5lbGVtZW50Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSwgLy8gc2hvdWxkIGNvbnRhaW4gdGhlIHByb2dyYW0gbmFtZVxuICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBocmVmRnVuY3Rpb24oZXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50LndoaWNoID09PSAxIC8qfHwgZXZlbnQud2hpY2ggPT09IDIqLykge1xuICAgICAgICAgICAgdGhpcy5vbkJ1dHRvbkNsaWNrZWQoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3BlblJlZmVyZW5jZU9iamVjdEludGVybmFsKGV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGUsXG4gICAgICAgICAgICBldmVudFdoaWNoOiBldmVudC53aGljaCxcbiAgICAgICAgICAgIG90aGVyRGF0YTogdGhpcy5yZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJlbW92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9ICcnO1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgfVxufVxuIl19
|
|
@@ -30,7 +30,6 @@ export class PepImageComponent {
|
|
|
30
30
|
this.form = null;
|
|
31
31
|
this.uid = '';
|
|
32
32
|
this.showTitle = true;
|
|
33
|
-
this.renderTitle = true;
|
|
34
33
|
this._layoutType = 'form';
|
|
35
34
|
this.isActive = false;
|
|
36
35
|
this.sizeLimitMB = 5;
|
|
@@ -73,9 +72,6 @@ export class PepImageComponent {
|
|
|
73
72
|
this.setFieldHeight();
|
|
74
73
|
this.setDefaultForm();
|
|
75
74
|
this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME);
|
|
76
|
-
if (!this.renderTitle) {
|
|
77
|
-
this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME);
|
|
78
|
-
}
|
|
79
75
|
}
|
|
80
76
|
}
|
|
81
77
|
setFieldHeight() {
|
|
@@ -181,7 +177,7 @@ PepImageComponent.MENU_CLICKED = '[MenuClicked]';
|
|
|
181
177
|
PepImageComponent.decorators = [
|
|
182
178
|
{ type: Component, args: [{
|
|
183
179
|
selector: 'pep-image',
|
|
184
|
-
template: "<ng-container [formGroup]=\"form\">\n <ng-container>\n <ng-template #readonlyTemplate>\n <div class=\"img-wrapper\" [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <img [id]=\"key\" [style.max-height]=\"fieldHeight\" class=\"pep-report-file\" [alt]=\"label\" [src]=\"src\"\n (click)=\"itemImageClick($event)\" (error)=\"errorHandler($event)\" (load)=\"onImageLoad($event)\" />\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <pep-field-title
|
|
180
|
+
template: "<ng-container [formGroup]=\"form\">\n <ng-container>\n <ng-template #readonlyTemplate>\n <div class=\"img-wrapper\" [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <img [id]=\"key\" [style.max-height]=\"fieldHeight\" class=\"pep-report-file\" [alt]=\"label\" [src]=\"src\"\n (click)=\"itemImageClick($event)\" (error)=\"errorHandler($event)\" (load)=\"onImageLoad($event)\" />\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <pep-field-title [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\" [xAlignment]=\"xAlignment\"\n [showTitle]=\"showTitle\">\n </pep-field-title>\n <ng-container *ngIf=\"disabled || readonly; then disabledTemplate; else editableTemplate\"></ng-container>\n <ng-template #disabledTemplate>\n <div class=\"pep-file body-sm\" [style.height]=\"fieldHeight\" [ngClass]=\"{'one-row': rowSpan == 1}\">\n <ng-container *ngTemplateOutlet=\"readonlyTemplate\"></ng-container>\n </div>\n </ng-template>\n <ng-template #editableTemplate>\n <div class=\"pep-file-container image-container\" [ngClass]=\"{ 'one-row': rowSpan == 1}\">\n <pep-files-uploader [id]=\"key\" [key]=\"key\" [fieldHeight]=\"fieldHeight\" [layoutType]=\"layoutType\"\n [standAlone]=\"standAlone\" [src]=\"srcLarge || src\" [label]=\"label\" [mandatory]=\"mandatory\"\n [disabled]=\"disabled\" [xAlignment]=\"xAlignment\" [rowSpan]=\"rowSpan\" [controlType]=\"controlType\"\n [form]=\"form\" [acceptedExtensions]=\"acceptImagesType\" (fileChange)=\"onFileChanged($event)\"\n (elementClick)=\"onFileClicked($event)\" [sizeLimitMB]=\"sizeLimitMB\">\n </pep-files-uploader>\n </div>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngTemplateOutlet=\"readonlyTemplate\"></ng-container>\n <!-- <div class=\"img-wrapper\"\n [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <img [id]=\"key\" [style.max-height]=\"fieldHeight\" class=\"pep-report-file\" [alt]=\"label\" [src]=\"src\"\n (click)=\"itemImageClick($event)\" (error)=\"errorHandler($event)\" />\n </div> -->\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngTemplateOutlet=\"readonlyTemplate\"></ng-container>\n <!-- <div class=\"img-wrapper\" [ngClass]=\"{\n 'left-alignment': xAlignment == 'left',\n 'right-alignment': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\">\n <img [id]=\"key\" [style.max-height]=\"fieldHeight\" class=\"pep-report-file pep-report-img\"\n [ngClass]=\"['text-align-' + xAlignment]\" [alt]=\"label\" [src]=\"src\" (click)=\"itemImageClick($event)\"\n (error)=\"errorHandler($event)\" (load)=\"onImageLoad($event)\" />\n </div> -->\n </ng-container>\n </ng-container>\n\n <!-- Menu -->\n <ng-container *ngIf=\"menuField\">\n <button [id]=\"key\" (click)=\"onMenuClick($event)\" class=\"floating-field pep-button icon-button weak invert\"\n [ngClass]=\"{\n bottom: menuField?.Layout?.YAlignment == '2',\n top: menuField?.Layout?.YAlignment == '1',\n left: menuField?.Layout?.XAlignment == '1',\n right: menuField?.Layout?.XAlignment == '2'\n }\">\n <mat-icon>\n <pep-icon name=\"system_menu\"></pep-icon>\n </mat-icon>\n </button>\n </ng-container>\n\n <!-- Campaign -->\n <ng-container *ngIf=\"hasCampaignField && hasCampaignField?.FormattedValue\">\n <span [id]=\"key\" class=\"campaign floating-field\" title=\"{{ hasCampaignField?.FormattedValue }}\" [ngClass]=\"{\n bottom: hasCampaignField?.Layout?.YAlignment == '2',\n top: hasCampaignField?.Layout?.YAlignment == '1',\n left: hasCampaignField?.Layout?.XAlignment == '1',\n right: hasCampaignField?.Layout?.XAlignment == '2'\n }\">\n <mat-icon class=\"has-active-campaign\">\n <pep-icon name=\"system_bolt\"></pep-icon>\n </mat-icon>\n </span>\n </ng-container>\n\n <!-- Indicators -->\n <ng-container *ngIf=\"indicatorsField && indicatorsField?.FormattedValue != ''\">\n <span [id]=\"key\" class=\"indicators-container floating-field\" [ngClass]=\"{\n bottom: indicatorsField?.Layout?.YAlignment == '2',\n top: indicatorsField?.Layout?.YAlignment == '1',\n left: indicatorsField?.Layout?.XAlignment == '1',\n right: indicatorsField?.Layout?.XAlignment == '2'\n }\">\n <mat-icon>\n <ng-container *ngFor=\"let value of indicatorsField?.FormattedValue?.split(';')\">\n <pep-icon class=\"pull-left flip\" name=\"indicator_dot_placeholder\" [fill]=\"value\"></pep-icon>\n </ng-container>\n <ng-container *ngIf=\"indicatorsField?.FormattedValue?.split(';').length < 4\">\n <pep-icon class=\"pull-left flip\" name=\"indicator_dot_placeholder\"></pep-icon>\n </ng-container>\n </mat-icon>\n </span>\n </ng-container>\n</ng-container>",
|
|
185
181
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
186
182
|
styles: [":host{width:100%;height:inherit;display:grid}:host>*{align-self:center}.img-wrapper{display:flex;align-items:center;height:100%;max-width:100%}.img-wrapper.left-alignment{justify-content:flex-start}.img-wrapper.center-alignment{justify-content:center}.img-wrapper.right-alignment{justify-content:flex-end}.img-wrapper img{max-width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.pep-file-container,.pepperi-file-container{height:100%}.pep-file-container .img-wrapper,.pepperi-file-container .img-wrapper{height:calc(100% - 1.5rem)}.pep-file-container img,.pepperi-file-container img{cursor:pointer}.indicators-container{padding:0!important}.indicators-container mat-icon{height:100%;width:100%;padding:.4rem}.indicators-container mat-icon pep-icon{height:.75rem!important;width:.75rem!important;margin:.05rem}.floating-field{width:2.5rem;height:2.5rem;border-radius:.25rem;border-radius:var(--pep-border-radius-md,.25rem);padding:.5rem;cursor:pointer;position:absolute!important}.top{top:0}.bottom{bottom:0}.left{left:0}.right{right:0}"]
|
|
187
183
|
},] }
|
|
@@ -212,7 +208,6 @@ PepImageComponent.propDecorators = {
|
|
|
212
208
|
form: [{ type: Input }],
|
|
213
209
|
uid: [{ type: Input }],
|
|
214
210
|
showTitle: [{ type: Input }],
|
|
215
|
-
renderTitle: [{ type: Input }],
|
|
216
211
|
layoutType: [{ type: Input }],
|
|
217
212
|
isActive: [{ type: Input }],
|
|
218
213
|
sizeLimitMB: [{ type: Input }],
|
|
@@ -220,4 +215,4 @@ PepImageComponent.propDecorators = {
|
|
|
220
215
|
fileChange: [{ type: Output }],
|
|
221
216
|
elementClick: [{ type: Output }]
|
|
222
217
|
};
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9pbWFnZS9pbWFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWix1QkFBdUIsRUFDdkIsVUFBVSxFQUVWLFNBQVMsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsY0FBYyxFQUVkLHVCQUF1QixFQUV2Qiw0QkFBNEIsRUFHNUIsYUFBYSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFTbEQsTUFBTSxPQUFPLGlCQUFpQjtJQStFMUIsWUFDWSxZQUE2QixFQUM3QixvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0IsUUFBbUIsRUFDbkIsT0FBbUIsRUFDbkIsU0FBMkI7UUFMM0IsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxGOUIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNwQiwyQkFBMkI7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztR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Q1gsOEZBQThGO1FBQzlGLElBQUk7UUFFSixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztZQUNuQixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsVUFBVSxFQUFFLEtBQUssQ0FBQyxLQUFLO1lBQ3ZCLFNBQVMsRUFBRTtnQkFDUCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsR0FBRztnQkFDbkMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDcEI7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDOztBQXpPYSw4QkFBWSxHQUFHLGVBQWUsQ0FBQzs7WUFQaEQsU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2dCQUNyQixxL0xBQXFDO2dCQUVyQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDbEQ7OztZQVJRLGVBQWU7WUFUcEIsdUJBQXVCO1lBRnZCLGNBQWM7WUFOZCxTQUFTO1lBRlQsVUFBVTtZQU1MLGdCQUFnQjs7O2tCQXlCcEIsS0FBSzt1QkFDTCxLQUFLO2tCQUNMLEtBQUs7c0JBQ0wsS0FBSztvQkFDTCxLQUFLO3dCQUVMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBR0wsS0FBSzs4QkFTTCxLQUFLO3dCQUNMLEtBQUs7K0JBQ0wsS0FBSztzQkFHTCxLQUFLO21CQXFCTCxLQUFLO2tCQUNMLEtBQUs7d0JBQ0wsS0FBSzswQkFDTCxLQUFLO3lCQUdMLEtBQUs7dUJBU0wsS0FBSzswQkFDTCxLQUFLOytCQUNMLEtBQUs7eUJBRUwsTUFBTTsyQkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25EZXN0cm95LFxuICAgIFJlbmRlcmVyMixcbiAgICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIFBlcEZpbGVTZXJ2aWNlLFxuICAgIFBlcExheW91dFR5cGUsXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG4gICAgSVBlcE9wdGlvbixcbiAgICBQZXBJbWFnZUZpZWxkLFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbmltcG9ydCB7IHBlcEljb25Ob0ltYWdlMiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi9pbWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IElQZXBGaWxlQ2hhbmdlRXZlbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9maWxlcy11cGxvYWRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWltYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ltYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEltYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHN0YXRpYyBNRU5VX0NMSUNLRUQgPSAnW01lbnVDbGlja2VkXSc7XG5cbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSBzcmNMYXJnZSA9ICcnO1xuICAgIEBJbnB1dCgpIHNyYyA9ICcnO1xuICAgIEBJbnB1dCgpIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgLy8gQElucHV0KCkgdHlwZSA9ICdpbWFnZSc7XG4gICAgQElucHV0KCkgbWFuZGF0b3J5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuXG4gICAgcHJpdmF0ZSBfcm93U3BhbiA9IDE7XG4gICAgQElucHV0KClcbiAgICBzZXQgcm93U3Bhbih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yb3dTcGFuID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IHJvd1NwYW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd1NwYW47XG4gICAgfVxuXG4gICAgQElucHV0KCkgaW5kaWNhdG9yc0ZpZWxkOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIG1lbnVGaWVsZDogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBoYXNDYW1wYWlnbkZpZWxkOiBhbnkgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZSc7XG5cbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgIEBJbnB1dCgpIHVpZCA9ICcnO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgcmVuZGVyVGl0bGUgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRUeXBlKHZhbHVlOiBQZXBMYXlvdXRUeXBlKSB7XG4gICAgICAgIHRoaXMuX2xheW91dFR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgbGF5b3V0VHlwZSgpOiBQZXBMYXlvdXRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dFR5cGU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaXplTGltaXRNQiA9IDU7XG4gICAgQElucHV0KCkgYWNjZXB0SW1hZ2VzVHlwZSA9ICdibXAsanBnLGpwZWcscG5nLGdpZic7IC8vIFwiaW1hZ2UvYm1wLCBpbWFnZS9qcGcsIGltYWdlL2pwZWcsIGltYWdlL3BuZywgaW1hZ2UvdGlmLCBpbWFnZS90aWZmXCI7XG5cbiAgICBAT3V0cHV0KClcbiAgICBmaWxlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gICAgQE91dHB1dCgpXG4gICAgZWxlbWVudENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICBmaWVsZEhlaWdodCA9ICcnO1xuICAgIHN0YW5kQWxvbmUgPSBmYWxzZTtcbiAgICBkYXRhVVJJID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGltYWdlU2VydmljZTogUGVwSW1hZ2VTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmaWxlU2VydmljZTogUGVwRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zdGFuZEFsb25lID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RmllbGRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRIZWlnaHQgPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmNhbGN1bGF0ZUZpZWxkSGVpZ2h0KFxuICAgICAgICAgICAgdGhpcy5sYXlvdXRUeXBlLFxuICAgICAgICAgICAgdGhpcy5yb3dTcGFuLFxuICAgICAgICAgICAgdGhpcy5zdGFuZEFsb25lXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGVwRmllbGQgPSBuZXcgUGVwSW1hZ2VGaWVsZCh7XG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuc3JjLFxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmdldERlZmF1bHRGcm9tR3JvdXAocGVwRmllbGQpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdGFuZEFsb25lKSB7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5zcmM/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgLy8gRW1wdHkgZGF0YVVSSSBpZiB0aGVyZSBpcyBjaGFuZ2UgaW4gdGhlIHNyYy5cbiAgICAgICAgICAgIHRoaXMuZGF0YVVSSSA9IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy9cbiAgICB9XG5cbiAgICBlcnJvckhhbmRsZXIoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBldmVudC50YXJnZXQuc3JjID0gdGhpcy5maWxlU2VydmljZS5nZXRTdmdBc0ltYWdlU3JjKFxuICAgICAgICAgICAgcGVwSWNvbk5vSW1hZ2UyLmRhdGFcbiAgICAgICAgKTtcbiAgICAgICAgZXZlbnQudGFyZ2V0LnRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnSU1BR0UuTk9fSU1BR0UnKTtcbiAgICB9XG5cbiAgICBvbkltYWdlTG9hZChldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnRhcmdldC5zdHlsZS52aXNpYmlsaXR5ID0gJ3Zpc2libGUnO1xuICAgICAgICBldmVudC50YXJnZXQudGl0bGUgPVxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnRpdGxlLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgID8gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnSU1BR0UuQ0xJQ0tfVE9fRU5MQVJHRScpXG4gICAgICAgICAgICAgICAgOiBldmVudC50YXJnZXQudGl0bGU7XG4gICAgfVxuXG4gICAgb25NZW51Q2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogUGVwSW1hZ2VDb21wb25lbnQuTUVOVV9DTElDS0VELFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IHRoaXMuY29udHJvbFR5cGUsXG4gICAgICAgICAgICBldmVudFdoaWNoOiBldmVudC53aGljaCxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25GaWxlQ2hhbmdlZChmaWxlRGF0YTogSVBlcEZpbGVDaGFuZ2VFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGFVUkkgPSBmaWxlRGF0YTtcbiAgICAgICAgdGhpcy5zcmMgPSB0aGlzLnNyY0xhcmdlID1cbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSAmJiB0aGlzLmRhdGFVUkkgPyB0aGlzLmRhdGFVUkkuZmlsZVN0ciA6ICcnO1xuXG4gICAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UudXBkYXRlRm9ybUZpZWxkVmFsdWUoXG4gICAgICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgIHRoaXMuZGF0YVVSSSA/IHRoaXMuZGF0YVVSSS5maWxlRXh0IDogJydcbiAgICAgICAgKTtcbiAgICAgICAgLy8gdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgLy8gICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgIC8vICAgICB2YWx1ZSxcbiAgICAgICAgLy8gfSk7XG5cbiAgICAgICAgdGhpcy5maWxlQ2hhbmdlLmVtaXQoZmlsZURhdGEpO1xuICAgICAgICAvLyB0aGlzLmZpbGVDaGFuZ2UuZW1pdCh2YWx1ZS5sZW5ndGggPiAwID8gSlNPTi5wYXJzZSh2YWx1ZSkgOiB2YWx1ZSk7XG4gICAgfVxuXG4gICAgb2JqZWN0SWRJc05vdEVtcHR5KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy51aWQ/Lmxlbmd0aCA+IDAgJiYgdGhpcy51aWQgIT09ICcwJztcbiAgICB9XG5cbiAgICBvbkZpbGVDbGlja2VkKGV2ZW50OiBJUGVwRmllbGRDbGlja0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGxldCBoYXNQYXJlbnRJbWFnZSA9IHRydWU7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIHRoaXMub2JqZWN0SWRJc05vdEVtcHR5KCkgJiZcbiAgICAgICAgICAgIHRoaXMuc3JjICYmXG4gICAgICAgICAgICB0aGlzLnNyYy5pbmRleE9mKCduby1pbWFnZScpID4gLTFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBoYXNQYXJlbnRJbWFnZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5lbGVtZW50Q2xpY2suZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgaXRlbUltYWdlQ2xpY2soZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBsZXQgaGFzUGFyZW50SW1hZ2UgPSB0cnVlO1xuICAgICAgICBjb25zdCBlbGVtVGFyZ2V0ID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7XG4gICAgICAgIGNvbnN0IG5leHRFbGVtZW50ID0gZWxlbVRhcmdldC5uZXh0RWxlbWVudFNpYmxpbmcgfHwgbnVsbDtcbiAgICAgICAgY29uc3QgaW1hZ2VTUkMgPSBlbGVtVGFyZ2V0LnNyYyB8fCBudWxsO1xuICAgICAgICBjb25zdCBuZXh0RWxlbWVudFNSQyA9XG4gICAgICAgICAgICBuZXh0RWxlbWVudCAmJiBuZXh0RWxlbWVudC5zcmMgPyBuZXh0RWxlbWVudC5zcmMgOiBudWxsO1xuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIChpbWFnZVNSQyAmJiBpbWFnZVNSQy5pbmRleE9mKCduby1pbWFnZScpID4gLTEpIHx8XG4gICAgICAgICAgICAobmV4dEVsZW1lbnRTUkMgJiYgbmV4dEVsZW1lbnRTUkMuc3JjLmluZGV4T2YoJ25vLWltYWdlJykgPiAtMSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICBoYXNQYXJlbnRJbWFnZSA9IGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gdGhpcy5vcGVuSW1hZ2VNb2RhbChoYXNQYXJlbnRJbWFnZSk7XG4gICAgICAgIC8vIGlmICh0aGlzLmRhdGFVUkkpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuaW1hZ2VTZXJ2aWNlLm9wZW5Gcm9tVVJJKHRoaXMuZGF0YVVSSSk7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmltYWdlU2VydmljZS5vcGVuSW1hZ2VEaWFsb2codGhpcy5zcmNMYXJnZSB8fCB0aGlzLnNyYywgdGhpcy5vcHRpb25zLCB0aGlzLmxhYmVsKTtcbiAgICAgICAgLy8gfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgZXZlbnRXaGljaDogZXZlbnQud2hpY2gsXG4gICAgICAgICAgICBvdGhlckRhdGE6IHtcbiAgICAgICAgICAgICAgICBpbWFnZVNyYzogdGhpcy5zcmNMYXJnZSB8fCB0aGlzLnNyYyxcbiAgICAgICAgICAgICAgICBvcHRpb25zOiB0aGlzLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRoaXMubGFiZWxcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gb3BlbkltYWdlTW9kYWwoaGFzUGFyZW50SW1hZ2U6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHRoaXMuZGF0YVVSSSkge1xuICAgIC8vICAgICAgICAgY29uc3QgZmlsZVN0ckFyciA9IHRoaXMuZGF0YVVSSS5maWxlU3RyLnNwbGl0KCc7Jyk7XG4gICAgLy8gICAgICAgICBpZiAoZmlsZVN0ckFyci5sZW5ndGggPT09IDIpIHtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3BlbignJywgJ19ibGFuaycpO1xuICAgIC8vICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnRUeXBlID0gZmlsZVN0ckFyclswXS5zcGxpdCgnOicpWzFdO1xuICAgIC8vICAgICAgICAgICAgIGNvbnN0IGJhc2U2NCA9IGZpbGVTdHJBcnJbMV0uc3BsaXQoJywnKVsxXTtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBibG9iID0gdGhpcy5maWxlU2VydmljZS5jb252ZXJ0RnJvbWI2NHRvQmxvYihcbiAgICAvLyAgICAgICAgICAgICAgICAgYmFzZTY0LFxuICAgIC8vICAgICAgICAgICAgICAgICBjb250ZW50VHlwZVxuICAgIC8vICAgICAgICAgICAgICk7XG4gICAgLy8gICAgICAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAvLyAgICAgICAgICAgICB3aW4ubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIGNvbnN0IGFyciA9IFt0aGlzLnNyY0xhcmdlIHx8IHRoaXMuc3JjXS5jb25jYXQoXG4gICAgLy8gICAgICAgICAgICAgKHRoaXMub3B0aW9ucyB8fCBbXSkubWFwKChvcHQpID0+IG9wdC52YWx1ZSlcbiAgICAvLyAgICAgICAgICk7XG4gICAgLy8gICAgICAgICBjb25zdCBpbWFnZXNWYWx1ZSA9IGFyci5qb2luKCc7Jyk7XG5cbiAgICAvLyAgICAgICAgIC8vIFNob3cgaW1hZ2UgaW4gbW9kYWwuXG4gICAgLy8gICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0RGlhbG9nQ29uZmlnKHt9LCAnaW5saW5lJyk7XG4gICAgLy8gICAgICAgICBjb25maWcubWF4V2lkdGggPSAnNzV2dyc7XG4gICAgLy8gICAgICAgICBjb25maWcuaGVpZ2h0ID0gJzk1dmgnO1xuXG4gICAgLy8gICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcbiAgICAvLyAgICAgICAgICAgICBQZXBJbWFnZXNGaWxtc3RyaXBDb21wb25lbnQsXG4gICAgLy8gICAgICAgICAgICAge1xuICAgIC8vICAgICAgICAgICAgICAgICBjdXJySW5kZXg6IDAsXG4gICAgLy8gICAgICAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgLy8gICAgICAgICAgICAgICAgIHZhbHVlOiBpbWFnZXNWYWx1ZSxcbiAgICAvLyAgICAgICAgICAgICAgICAgbGFiZWw6IHRoaXMubGFiZWwsXG4gICAgLy8gICAgICAgICAgICAgICAgIHVpZDogdGhpcy51aWQsXG4gICAgLy8gICAgICAgICAgICAgICAgIHNob3dUaHVtYm5haWxzOiBhcnIubGVuZ3RoID4gMSxcbiAgICAvLyAgICAgICAgICAgICB9LFxuICAgIC8vICAgICAgICAgICAgIGNvbmZpZ1xuICAgIC8vICAgICAgICAgKTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbn1cbiJdfQ==
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9pbWFnZS9pbWFnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFHVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFFWix1QkFBdUIsRUFDdkIsVUFBVSxFQUVWLFNBQVMsR0FFWixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsY0FBYyxFQUVkLHVCQUF1QixFQUV2Qiw0QkFBNEIsRUFHNUIsYUFBYSxHQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFTbEQsTUFBTSxPQUFPLGlCQUFpQjtJQThFMUIsWUFDWSxZQUE2QixFQUM3QixvQkFBNkMsRUFDN0MsV0FBMkIsRUFDM0IsUUFBbUIsRUFDbkIsT0FBbUIsRUFDbkIsU0FBMkI7UUFMM0IsaUJBQVksR0FBWixZQUFZLENBQWlCO1FBQzdCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWpGOUIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDZCxRQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ1QsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDM0IsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNwQiwyQkFBMkI7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztR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QUNQLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxHQUFHO2dCQUNuQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87Z0JBQ3JCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSzthQUNwQjtTQUNKLENBQUMsQ0FBQztJQUNQLENBQUM7O0FBak9hLDhCQUFZLEdBQUcsZUFBZSxDQUFDOztZQVBoRCxTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLCs5TEFBcUM7Z0JBRXJDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBUlEsZUFBZTtZQVRwQix1QkFBdUI7WUFGdkIsY0FBYztZQU5kLFNBQVM7WUFGVCxVQUFVO1lBTUwsZ0JBQWdCOzs7a0JBeUJwQixLQUFLO3VCQUNMLEtBQUs7a0JBQ0wsS0FBSztzQkFDTCxLQUFLO29CQUNMLEtBQUs7d0JBRUwsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFHTCxLQUFLOzhCQVNMLEtBQUs7d0JBQ0wsS0FBSzsrQkFDTCxLQUFLO3NCQUdMLEtBQUs7bUJBcUJMLEtBQUs7a0JBQ0wsS0FBSzt3QkFDTCxLQUFLO3lCQUdMLEtBQUs7dUJBU0wsS0FBSzswQkFDTCxLQUFLOytCQUNMLEtBQUs7eUJBRUwsTUFBTTsyQkFHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25EZXN0cm95LFxuICAgIFJlbmRlcmVyMixcbiAgICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICAgIFBlcEZpbGVTZXJ2aWNlLFxuICAgIFBlcExheW91dFR5cGUsXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwSG9yaXpvbnRhbEFsaWdubWVudCxcbiAgICBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5ULFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG4gICAgSVBlcE9wdGlvbixcbiAgICBQZXBJbWFnZUZpZWxkLFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5cbmltcG9ydCB7IHBlcEljb25Ob0ltYWdlMiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwSW1hZ2VTZXJ2aWNlIH0gZnJvbSAnLi9pbWFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IElQZXBGaWxlQ2hhbmdlRXZlbnQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9maWxlcy11cGxvYWRlcic7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWltYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ltYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEltYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHN0YXRpYyBNRU5VX0NMSUNLRUQgPSAnW01lbnVDbGlja2VkXSc7XG5cbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSBzcmNMYXJnZSA9ICcnO1xuICAgIEBJbnB1dCgpIHNyYyA9ICcnO1xuICAgIEBJbnB1dCgpIG9wdGlvbnM6IElQZXBPcHRpb25bXSA9IFtdO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgLy8gQElucHV0KCkgdHlwZSA9ICdpbWFnZSc7XG4gICAgQElucHV0KCkgbWFuZGF0b3J5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuXG4gICAgcHJpdmF0ZSBfcm93U3BhbiA9IDE7XG4gICAgQElucHV0KClcbiAgICBzZXQgcm93U3Bhbih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yb3dTcGFuID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IHJvd1NwYW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd1NwYW47XG4gICAgfVxuXG4gICAgQElucHV0KCkgaW5kaWNhdG9yc0ZpZWxkOiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpIG1lbnVGaWVsZDogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKSBoYXNDYW1wYWlnbkZpZWxkOiBhbnkgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZSc7XG5cbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xuICAgIEBJbnB1dCgpIHVpZCA9ICcnO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XG5cbiAgICBwcml2YXRlIF9sYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxheW91dFR5cGUodmFsdWU6IFBlcExheW91dFR5cGUpIHtcbiAgICAgICAgdGhpcy5fbGF5b3V0VHlwZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldEZpZWxkSGVpZ2h0KCk7XG4gICAgfVxuICAgIGdldCBsYXlvdXRUeXBlKCk6IFBlcExheW91dFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGF5b3V0VHlwZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBpc0FjdGl2ZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNpemVMaW1pdE1CID0gNTtcbiAgICBASW5wdXQoKSBhY2NlcHRJbWFnZXNUeXBlID0gJ2JtcCxqcGcsanBlZyxwbmcsZ2lmJzsgLy8gXCJpbWFnZS9ibXAsIGltYWdlL2pwZywgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCBpbWFnZS90aWYsIGltYWdlL3RpZmZcIjtcblxuICAgIEBPdXRwdXQoKVxuICAgIGZpbGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBlbGVtZW50Q2xpY2s6IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4oKTtcblxuICAgIGZpZWxkSGVpZ2h0ID0gJyc7XG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuICAgIGRhdGFVUkkgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW1hZ2VTZXJ2aWNlOiBQZXBJbWFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICAgKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5mb3JtID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmUgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLlNUQU5EX0FMT05FX0ZJRUxEX0NMQVNTX05BTUVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZpZWxkSGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpZWxkSGVpZ2h0ID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5jYWxjdWxhdGVGaWVsZEhlaWdodChcbiAgICAgICAgICAgIHRoaXMubGF5b3V0VHlwZSxcbiAgICAgICAgICAgIHRoaXMucm93U3BhbixcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdEZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBlcEZpZWxkID0gbmV3IFBlcEltYWdlRmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnNyYyxcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdGhpcy5tYW5kYXRvcnksXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHBlcEZpZWxkKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMuc3JjPy5jdXJyZW50VmFsdWU/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIEVtcHR5IGRhdGFVUkkgaWYgdGhlcmUgaXMgY2hhbmdlIGluIHRoZSBzcmMuXG4gICAgICAgICAgICB0aGlzLmRhdGFVUkkgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIC8vXG4gICAgfVxuXG4gICAgZXJyb3JIYW5kbGVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LnNyYyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0U3ZnQXNJbWFnZVNyYyhcbiAgICAgICAgICAgIHBlcEljb25Ob0ltYWdlMi5kYXRhXG4gICAgICAgICk7XG4gICAgICAgIGV2ZW50LnRhcmdldC50aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0lNQUdFLk5PX0lNQUdFJyk7XG4gICAgfVxuXG4gICAgb25JbWFnZUxvYWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBldmVudC50YXJnZXQuc3R5bGUudmlzaWJpbGl0eSA9ICd2aXNpYmxlJztcbiAgICAgICAgZXZlbnQudGFyZ2V0LnRpdGxlID1cbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC50aXRsZS5sZW5ndGggPT09IDBcbiAgICAgICAgICAgICAgICA/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0lNQUdFLkNMSUNLX1RPX0VOTEFSR0UnKVxuICAgICAgICAgICAgICAgIDogZXZlbnQudGFyZ2V0LnRpdGxlO1xuICAgIH1cblxuICAgIG9uTWVudUNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbGVtZW50Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IFBlcEltYWdlQ29tcG9uZW50Lk1FTlVfQ0xJQ0tFRCxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiB0aGlzLmNvbnRyb2xUeXBlLFxuICAgICAgICAgICAgZXZlbnRXaGljaDogZXZlbnQud2hpY2gsXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uRmlsZUNoYW5nZWQoZmlsZURhdGE6IElQZXBGaWxlQ2hhbmdlRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhVVJJID0gZmlsZURhdGE7XG4gICAgICAgIHRoaXMuc3JjID0gdGhpcy5zcmNMYXJnZSA9XG4gICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmUgJiYgdGhpcy5kYXRhVVJJID8gdGhpcy5kYXRhVVJJLmZpbGVTdHIgOiAnJztcblxuICAgICAgICB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLnVwZGF0ZUZvcm1GaWVsZFZhbHVlKFxuICAgICAgICAgICAgdGhpcy5mb3JtLFxuICAgICAgICAgICAgdGhpcy5rZXksXG4gICAgICAgICAgICB0aGlzLmRhdGFVUkkgPyB0aGlzLmRhdGFVUkkuZmlsZUV4dCA6ICcnXG4gICAgICAgICk7XG4gICAgICAgIC8vIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh7XG4gICAgICAgIC8vICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAvLyAgICAgdmFsdWUsXG4gICAgICAgIC8vIH0pO1xuXG4gICAgICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KGZpbGVEYXRhKTtcbiAgICAgICAgLy8gdGhpcy5maWxlQ2hhbmdlLmVtaXQodmFsdWUubGVuZ3RoID4gMCA/IEpTT04ucGFyc2UodmFsdWUpIDogdmFsdWUpO1xuICAgIH1cblxuICAgIG9iamVjdElkSXNOb3RFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudWlkPy5sZW5ndGggPiAwICYmIHRoaXMudWlkICE9PSAnMCc7XG4gICAgfVxuXG4gICAgb25GaWxlQ2xpY2tlZChldmVudDogSVBlcEZpZWxkQ2xpY2tFdmVudCk6IHZvaWQge1xuICAgICAgICBsZXQgaGFzUGFyZW50SW1hZ2UgPSB0cnVlO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAvLyB0aGlzLm9iamVjdElkSXNOb3RFbXB0eSgpICYmXG4gICAgICAgICAgICB0aGlzLnNyYyAmJlxuICAgICAgICAgICAgdGhpcy5zcmMuaW5kZXhPZignbm8taW1hZ2UnKSA+IC0xXG4gICAgICAgICkge1xuICAgICAgICAgICAgaGFzUGFyZW50SW1hZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZWxlbWVudENsaWNrLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIGl0ZW1JbWFnZUNsaWNrKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgbGV0IGhhc1BhcmVudEltYWdlID0gdHJ1ZTtcbiAgICAgICAgY29uc3QgZWxlbVRhcmdldCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuICAgICAgICBjb25zdCBuZXh0RWxlbWVudCA9IGVsZW1UYXJnZXQubmV4dEVsZW1lbnRTaWJsaW5nIHx8IG51bGw7XG4gICAgICAgIGNvbnN0IGltYWdlU1JDID0gZWxlbVRhcmdldC5zcmMgfHwgbnVsbDtcbiAgICAgICAgY29uc3QgbmV4dEVsZW1lbnRTUkMgPVxuICAgICAgICAgICAgbmV4dEVsZW1lbnQgJiYgbmV4dEVsZW1lbnQuc3JjID8gbmV4dEVsZW1lbnQuc3JjIDogbnVsbDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAoaW1hZ2VTUkMgJiYgaW1hZ2VTUkMuaW5kZXhPZignbm8taW1hZ2UnKSA+IC0xKSB8fFxuICAgICAgICAgICAgKG5leHRFbGVtZW50U1JDICYmIG5leHRFbGVtZW50U1JDLnNyYy5pbmRleE9mKCduby1pbWFnZScpID4gLTEpXG4gICAgICAgICkge1xuICAgICAgICAgICAgaGFzUGFyZW50SW1hZ2UgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIHRoaXMub3BlbkltYWdlTW9kYWwoaGFzUGFyZW50SW1hZ2UpO1xuICAgICAgICAvLyBpZiAodGhpcy5kYXRhVVJJKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmltYWdlU2VydmljZS5vcGVuRnJvbVVSSSh0aGlzLmRhdGFVUkkpO1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5pbWFnZVNlcnZpY2Uub3BlbkltYWdlRGlhbG9nKHRoaXMuc3JjTGFyZ2UgfHwgdGhpcy5zcmMsIHRoaXMub3B0aW9ucywgdGhpcy5sYWJlbCk7XG4gICAgICAgIC8vIH1cblxuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICBjb250cm9sVHlwZTogdGhpcy5jb250cm9sVHlwZSxcbiAgICAgICAgICAgIGV2ZW50V2hpY2g6IGV2ZW50LndoaWNoLFxuICAgICAgICAgICAgb3RoZXJEYXRhOiB7XG4gICAgICAgICAgICAgICAgaW1hZ2VTcmM6IHRoaXMuc3JjTGFyZ2UgfHwgdGhpcy5zcmMsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmxhYmVsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIG9wZW5JbWFnZU1vZGFsKGhhc1BhcmVudEltYWdlOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gICAgIGlmICh0aGlzLmRhdGFVUkkpIHtcbiAgICAvLyAgICAgICAgIGNvbnN0IGZpbGVTdHJBcnIgPSB0aGlzLmRhdGFVUkkuZmlsZVN0ci5zcGxpdCgnOycpO1xuICAgIC8vICAgICAgICAgaWYgKGZpbGVTdHJBcnIubGVuZ3RoID09PSAyKSB7XG4gICAgLy8gICAgICAgICAgICAgY29uc3Qgd2luID0gd2luZG93Lm9wZW4oJycsICdfYmxhbmsnKTtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBjb250ZW50VHlwZSA9IGZpbGVTdHJBcnJbMF0uc3BsaXQoJzonKVsxXTtcbiAgICAvLyAgICAgICAgICAgICBjb25zdCBiYXNlNjQgPSBmaWxlU3RyQXJyWzFdLnNwbGl0KCcsJylbMV07XG4gICAgLy8gICAgICAgICAgICAgY29uc3QgYmxvYiA9IHRoaXMuZmlsZVNlcnZpY2UuY29udmVydEZyb21iNjR0b0Jsb2IoXG4gICAgLy8gICAgICAgICAgICAgICAgIGJhc2U2NCxcbiAgICAvLyAgICAgICAgICAgICAgICAgY29udGVudFR5cGVcbiAgICAvLyAgICAgICAgICAgICApO1xuICAgIC8vICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgLy8gICAgICAgICAgICAgd2luLmxvY2F0aW9uLmhyZWYgPSB1cmw7XG4gICAgLy8gICAgICAgICB9XG4gICAgLy8gICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICBjb25zdCBhcnIgPSBbdGhpcy5zcmNMYXJnZSB8fCB0aGlzLnNyY10uY29uY2F0KFxuICAgIC8vICAgICAgICAgICAgICh0aGlzLm9wdGlvbnMgfHwgW10pLm1hcCgob3B0KSA9PiBvcHQudmFsdWUpXG4gICAgLy8gICAgICAgICApO1xuICAgIC8vICAgICAgICAgY29uc3QgaW1hZ2VzVmFsdWUgPSBhcnIuam9pbignOycpO1xuXG4gICAgLy8gICAgICAgICAvLyBTaG93IGltYWdlIGluIG1vZGFsLlxuICAgIC8vICAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldERpYWxvZ0NvbmZpZyh7fSwgJ2lubGluZScpO1xuICAgIC8vICAgICAgICAgY29uZmlnLm1heFdpZHRoID0gJzc1dncnO1xuICAgIC8vICAgICAgICAgY29uZmlnLmhlaWdodCA9ICc5NXZoJztcblxuICAgIC8vICAgICAgICAgdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgLy8gICAgICAgICAgICAgUGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50LFxuICAgIC8vICAgICAgICAgICAgIHtcbiAgICAvLyAgICAgICAgICAgICAgICAgY3VyckluZGV4OiAwLFxuICAgIC8vICAgICAgICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgIC8vICAgICAgICAgICAgICAgICB2YWx1ZTogaW1hZ2VzVmFsdWUsXG4gICAgLy8gICAgICAgICAgICAgICAgIGxhYmVsOiB0aGlzLmxhYmVsLFxuICAgIC8vICAgICAgICAgICAgICAgICB1aWQ6IHRoaXMudWlkLFxuICAgIC8vICAgICAgICAgICAgICAgICBzaG93VGh1bWJuYWlsczogYXJyLmxlbmd0aCA+IDEsXG4gICAgLy8gICAgICAgICAgICAgfSxcbiAgICAvLyAgICAgICAgICAgICBjb25maWdcbiAgICAvLyAgICAgICAgICk7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG59XG4iXX0=
|
|
@@ -76,7 +76,6 @@ export class PepImagesFilmstripComponent {
|
|
|
76
76
|
this.form = null;
|
|
77
77
|
this.uid = '0';
|
|
78
78
|
this.showTitle = false;
|
|
79
|
-
this.renderTitle = true;
|
|
80
79
|
this._layoutType = 'form';
|
|
81
80
|
this.currIndex = 0;
|
|
82
81
|
this.showThumbnails = false;
|
|
@@ -156,9 +155,6 @@ export class PepImagesFilmstripComponent {
|
|
|
156
155
|
this.setFieldHeight();
|
|
157
156
|
this.setDefaultForm();
|
|
158
157
|
this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME);
|
|
159
|
-
if (!this.renderTitle) {
|
|
160
|
-
this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME);
|
|
161
|
-
}
|
|
162
158
|
}
|
|
163
159
|
}
|
|
164
160
|
if (this.items === null) {
|
|
@@ -296,7 +292,7 @@ export class PepImagesFilmstripComponent {
|
|
|
296
292
|
PepImagesFilmstripComponent.decorators = [
|
|
297
293
|
{ type: Component, args: [{
|
|
298
294
|
selector: 'pep-images-filmstrip',
|
|
299
|
-
template: "<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title
|
|
295
|
+
template: "<ng-container *ngIf=\"inDialog; then galleryDialogTemplate; else regularTemplate\"></ng-container>\n<ng-template #regularTemplate>\n <ng-container [formGroup]=\"form\">\n <div class=\"images-filmstrip-container\">\n <pep-field-title [label]=\"label\" [xAlignment]=\"xAlignment\" [showTitle]=\"showTitle\">\n </pep-field-title>\n <div #galleryCont class=\"img-wrapper\" [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\"\n [style.height]=\"fieldHeight\">\n <gallery id=\"{{key}}-{{uid}}-gallery\" (itemClick)=\"enlargeImage($event);\" [imageSize]=\"'contain'\"\n (indexChange)=\"indexChange($event)\" (error)=\"onError($event)\">\n </gallery>\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #galleryDialogTemplate>\n <div class=\"gallery-dialog\">\n <pep-dialog [title]=\"label\" [showFooter]=\"false\">\n <div pep-dialog-content #galleryDialogCont class=\"gallery-dialog-content\"\n [ngClass]=\"isVertical ? 'vertical-gallery' : 'horizontal-gallery'\">\n <gallery id=\"{{key}}-{{uid}}-dlgGallery\" [imageSize]=\"'contain'\" (indexChange)=\"indexChange($event)\"\n (error)=\"onError($event)\">\n </gallery>\n </div>\n </pep-dialog>\n </div>\n</ng-template>\n\n<!-- Add custom template to image items -->\n<ng-template #itemTemplate let-index=\"index\" let-type=\"type\" let-data=\"data\" let-currIndex=\"currIndex\">\n <ng-container *ngIf=\"index === currIndex\">\n <ngx-imageviewer [src]=\"data.src\">\n </ngx-imageviewer>\n </ng-container>\n</ng-template>",
|
|
300
296
|
// animations: [slideInAnimation],
|
|
301
297
|
providers: [
|
|
302
298
|
{
|
|
@@ -330,7 +326,6 @@ PepImagesFilmstripComponent.propDecorators = {
|
|
|
330
326
|
form: [{ type: Input }],
|
|
331
327
|
uid: [{ type: Input }],
|
|
332
328
|
showTitle: [{ type: Input }],
|
|
333
|
-
renderTitle: [{ type: Input }],
|
|
334
329
|
layoutType: [{ type: Input }],
|
|
335
330
|
currIndex: [{ type: Input }],
|
|
336
331
|
showThumbnails: [{ type: Input }],
|
|
@@ -338,4 +333,4 @@ PepImagesFilmstripComponent.propDecorators = {
|
|
|
338
333
|
galleryDialogTemplate: [{ type: ViewChild, args: ['galleryDialogTemplate', { read: TemplateRef },] }],
|
|
339
334
|
galleryDialogCont: [{ type: ViewChild, args: ['galleryDialogCont',] }]
|
|
340
335
|
};
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBSVQsVUFBVSxFQUNWLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sUUFBUSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNILE9BQU8sRUFFUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixTQUFTLEdBRVosTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNILHVCQUF1QixFQUV2QixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVkLDRCQUE0QixFQUM1QixjQUFjLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sVUFBVSxDQUFDO0FBV2xCLDhEQUE4RDtBQUM5RCxzRUFBc0U7QUFDdEUsNkJBQTZCO0FBQzdCLGlFQUFpRTtBQUNqRSx1QkFBdUI7QUFDdkIsVUFBVTtBQUNWLDZCQUE2QjtBQUM3Qiw4RUFBOEU7QUFDOUUsU0FBUztBQUNULE1BQU07QUFFTixPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLGtCQUFrQixHQUNyQixN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TCxLQUFLOzBCQUNMLEtBQUs7eUJBR0wsS0FBSzt3QkFTTCxLQUFLOzZCQUNMLEtBQUs7MEJBRUwsU0FBUyxTQUFDLGFBQWE7b0NBQ3ZCLFNBQVMsU0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUU7Z0NBRXhELFNBQVMsU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgT25Jbml0LFxuICAgIE9uRGVzdHJveSxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5wdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgUmVuZGVyZXIyLFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIEluamVjdCxcbiAgICBPcHRpb25hbCxcbiAgICBWaWV3Q29udGFpbmVyUmVmLFxuICAgIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIHRyaWdnZXIsXG4gICAgc3RhdGUsXG4gICAgc3R5bGUsXG4gICAgdHJhbnNpdGlvbixcbiAgICBhbmltYXRlLFxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gICAgR2FsbGVyeSxcbiAgICBHYWxsZXJ5Q29uZmlnLFxuICAgIExvYWRpbmdTdHJhdGVneSxcbiAgICBTbGlkaW5nRGlyZWN0aW9uLFxuICAgIFRodW1ibmFpbHNQb3NpdGlvbixcbiAgICBHYWxsZXJ5SXRlbSxcbiAgICBJbWFnZUl0ZW0sXG4gICAgR2FsbGVyeVJlZixcbn0gZnJvbSAnbmctZ2FsbGVyeSc7XG5pbXBvcnQge1xuICAgIFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgIFBlcExheW91dFR5cGUsXG4gICAgUGVwTGF5b3V0U2VydmljZSxcbiAgICBQZXBGaWxlU2VydmljZSxcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG4gICAgUGVwSW1hZ2VzRmllbGQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9kaWFsb2cnO1xuaW1wb3J0IHsgcGVwSWNvbkFycm93UmlnaHRBbHQgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9pY29uJztcbmltcG9ydCB7IHBlcEljb25Ob0ltYWdlMiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuXG5pbXBvcnQgJ2hhbW1lcmpzJztcblxuaW50ZXJmYWNlIElQZXBJbWFnZXNGaWxtc3RyaXBEaWFsb2dEYXRhIHtcbiAgICBjdXJySW5kZXg6IG51bWJlcjtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgdWlkOiBzdHJpbmc7XG4gICAgc2hvd1RodW1ibmFpbHM6IGJvb2xlYW47XG59XG5cbi8vIGV4cG9ydCBjb25zdCBzbGlkZUluQW5pbWF0aW9uID0gdHJpZ2dlcignc2xpZGVBbmltYXRpb24nLCBbXG4vLyAgICAgc3RhdGUoJ2luJywgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKDApJywgb3BhY2l0eTogMSB9KSksXG4vLyAgICAgdHJhbnNpdGlvbignOmVudGVyJywgW1xuLy8gICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJywgb3BhY2l0eTogMCB9KSxcbi8vICAgICAgICAgYW5pbWF0ZSg0MDApXG4vLyAgICAgXSksXG4vLyAgICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xuLy8gICAgICAgICBhbmltYXRlKDQwMCwgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVZKC0xMDAlKScsIG9wYWNpdHk6IDAgfSkpXG4vLyAgICAgXSlcbi8vIF0pO1xuXG5pbXBvcnQge1xuICAgIElNQUdFVklFV0VSX0NPTkZJRyxcbiAgICBJbWFnZVZpZXdlckNvbmZpZyxcbiAgICBjcmVhdGVCdXR0b25Db25maWcsXG59IGZyb20gJ0BoYWxseXNvbmgvbmd4LWltYWdldmlld2VyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVZpZXdlckNvbmZpZyhcbiAgICB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2Vcbik6IEltYWdlVmlld2VyQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAvLyB3aWR0aDogODUwLFxuICAgICAgICAvLyBoZWlnaHQ6IDE1MCxcbiAgICAgICAgYmdTdHlsZTogJyNGRkYnLCAvLyBjb21wb25lbnQgYmFja2dyb3VuZCBzdHlsZVxuICAgICAgICAvLyBzY2FsZVN0ZXA6IDAuMSwgLy8gem9vbSBzY2FsZSBzdGVwICh1c2luZyB0aGUgem9vbSBpbi9vdXQgYnV0dG9ucylcbiAgICAgICAgLy8gcm90YXRlU3RlcHBlcjogZmFsc2UsIC8vIHRvdWNoIHJvdGF0ZSBzaG91bGQgcm90YXRlIG9ubHkgOTAgdG8gOTAgZGVncmVlc1xuICAgICAgICBsb2FkaW5nTWVzc2FnZTogdHJhbnNsYXRlLmluc3RhbnQoJ01FU1NBR0VTLklORk9fTE9BRElOR19GSUxFJyksIC8vICdMb2FkaW5nLi4uJyxcbiAgICAgICAgLy8gYnV0dG9uU3R5bGU6IHtcbiAgICAgICAgLy8gICAgIGljb25Gb250RmFtaWx5OiAnTWF0ZXJpYWwgSWNvbnMnLCAvLyBmb250IHVzZWQgdG8gcmVuZGVyIHRoZSBidXR0b24gaWNvbnNcbiAgICAgICAgLy8gICAgIGFscGhhOiAwLjUsIC8vIGJ1dHRvbnMnIHRyYW5zcGFyZW5jZSB2YWx1ZVxuICAgICAgICAvLyAgICAgaG92ZXJBbHBoYTogMC43LCAvLyBidXR0b25zJyB0cmFuc3BhcmVuY2UgdmFsdWUgd2hlbiBtb3VzZSBpcyBvdmVyXG4gICAgICAgIC8vICAgICBiZ1N0eWxlOiAnIzAwMDAwMCcsIC8vICBidXR0b25zJyBiYWNrZ3JvdW5kIHN0eWxlXG4gICAgICAgIC8vICAgICBpY29uU3R5bGU6ICcjZmZmZmZmJywgLy8gYnV0dG9ucycgaWNvbiBjb2xvcnNcbiAgICAgICAgLy8gICAgIGJvcmRlclN0eWxlOiAnIzAwMDAwMCcsIC8vIGJ1dHRvbnMnIGJvcmRlciBzdHlsZVxuICAgICAgICAvLyAgICAgYm9yZGVyV2lkdGg6IDAsIC8vIGJ1dHRvbnMnIGJvcmRlciB3aWR0aCAoMCA9PSBkaXNhYmxlZClcbiAgICAgICAgLy8gfSxcbiAgICAgICAgLy8gdG9vbHRpcHM6IHtcbiAgICAgICAgLy8gICAgIGVuYWJsZWQ6IHRydWUsIC8vIGVuYWJsZSBvciBkaXNhYmxlIHRvb2x0aXBzIGZvciBidXR0b25zXG4gICAgICAgIC8vICAgICBiZ1N0eWxlOiAnIzAwMDAwMCcsIC8vIHRvb2x0aXAgYmFja2dyb3VuZCBzdHlsZVxuICAgICAgICAvLyAgICAgYmdBbHBoYTogMC41LCAvLyB0b29sdGlwIGJhY2tncm91bmQgdHJhbnNwYXJlbmNlXG4gICAgICAgIC8vICAgICB0ZXh0U3R5bGU6ICcjZmZmZmZmJywgLy8gdG9vbHRpcCdzIHRleHQgc3R5bGVcbiAgICAgICAgLy8gICAgIHRleHRBbHBoYTogMC45LCAvLyB0b29sdGlwJ3MgdGV4dCB0cmFuc3BhcmVuY2VcbiAgICAgICAgLy8gICAgIHBhZGRpbmc6IDE1LCAvLyB0b29sdGlwIHBhZGRpbmdcbiAgICAgICAgLy8gICAgIHJhZGl1czogMjAsIC8vIHRvb2x0aXAgYm9yZGVyIHJhZGl1c1xuICAgICAgICAvLyB9LFxuICAgICAgICAvLyBzaG9ydGVyIGJ1dHRvbiBjb25maWd1cmF0aW9uIHN0eWxlXG4gICAgICAgIG5leHRQYWdlQnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoXG4gICAgICAgICAgICAnbmF2aWdhdGVfbmV4dCcsXG4gICAgICAgICAgICAnTmV4dCBwYWdlJyxcbiAgICAgICAgICAgIDAsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApLFxuICAgICAgICBiZWZvcmVQYWdlQnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoXG4gICAgICAgICAgICAnbmF2aWdhdGVfYmVmb3JlJyxcbiAgICAgICAgICAgICdQcmV2aW91cyBwYWdlJyxcbiAgICAgICAgICAgIDEsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApLFxuICAgICAgICB6b29tT3V0QnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoJ3pvb21fb3V0JywgJ1pvb20gb3V0JywgMCwgZmFsc2UpLFxuICAgICAgICB6b29tSW5CdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZygnem9vbV9pbicsICdab29tIGluJywgMSwgZmFsc2UpLFxuICAgICAgICByb3RhdGVMZWZ0QnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoXG4gICAgICAgICAgICAncm90YXRlX2xlZnQnLFxuICAgICAgICAgICAgJ1JvdGF0ZSBsZWZ0JyxcbiAgICAgICAgICAgIDIsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApLFxuICAgICAgICByb3RhdGVSaWdodEJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKFxuICAgICAgICAgICAgJ3JvdGF0ZV9yaWdodCcsXG4gICAgICAgICAgICAnUm90YXRlIHJpZ2h0JyxcbiAgICAgICAgICAgIDMsXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICApLFxuICAgICAgICByZXNldEJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKCdhdXRvcmVuZXcnLCAnUmVzZXQnLCA0LCBmYWxzZSksXG4gICAgfTtcbn1cblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtaW1hZ2VzLWZpbG1zdHJpcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlcy1maWxtc3RyaXAuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ltYWdlcy1maWxtc3RyaXAuY29tcG9uZW50LnNjc3MnXSxcbiAgICAvLyBhbmltYXRpb25zOiBbc2xpZGVJbkFuaW1hdGlvbl0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IElNQUdFVklFV0VSX0NPTkZJRyxcbiAgICAgICAgICAgIC8vIHVzZVZhbHVlOiBJTUFHRVZJRVdFUl9DT05GSUdfREVGQVVMVCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGNyZWF0ZVZpZXdlckNvbmZpZyxcbiAgICAgICAgICAgIGRlcHM6IFtUcmFuc2xhdGVTZXJ2aWNlXSxcbiAgICAgICAgfSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBJbWFnZXNGaWxtc3RyaXBDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8vIEBWaWV3Q2hpbGQoJ25neFZpZXdlckltYWdlJykgbmd4Vmlld2VySW1hZ2U6IGFueTsgLy8gVE9ETzogQ2hlY2sgaWYgd2UgbmVlZCB0byB1c2UgdGhpcz8/XG4gICAgQElucHV0KCkga2V5ID0gJyc7XG4gICAgQElucHV0KCkgdmFsdWUgPSAnJztcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQ6IFBlcEhvcml6b250YWxBbGlnbm1lbnQgPSBERUZBVUxUX0hPUklaT05UQUxfQUxJR05NRU5UO1xuXG4gICAgcHJpdmF0ZSBfcm93U3BhbiA9IDE7XG4gICAgQElucHV0KClcbiAgICBzZXQgcm93U3Bhbih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yb3dTcGFuID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IHJvd1NwYW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd1NwYW47XG4gICAgfVxuXG4gICAgY29udHJvbFR5cGUgPSAnaW1hZ2VzJztcblxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgQElucHV0KCkgdWlkID0gJzAnO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgX2xheW91dFR5cGU6IFBlcExheW91dFR5cGUgPSAnZm9ybSc7XG4gICAgQElucHV0KClcbiAgICBzZXQgbGF5b3V0VHlwZSh2YWx1ZTogUGVwTGF5b3V0VHlwZSkge1xuICAgICAgICB0aGlzLl9sYXlvdXRUeXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IGxheW91dFR5cGUoKTogUGVwTGF5b3V0VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXlvdXRUeXBlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGN1cnJJbmRleCA9IDA7XG4gICAgQElucHV0KCkgc2hvd1RodW1ibmFpbHMgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2dhbGxlcnlDb250JykgZ2FsbGVyeUNvbnQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZ2FsbGVyeURpYWxvZ1RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGdhbGxlcnlEaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5RGlhbG9nQ29udCcpIGdhbGxlcnlEaWFsb2dDb250OiBFbGVtZW50UmVmO1xuXG4gICAgY29uZmlnOiBHYWxsZXJ5Q29uZmlnO1xuICAgIGl0ZW1zOiBHYWxsZXJ5SXRlbVtdID0gbnVsbDtcbiAgICBpbkRpYWxvZyA9IGZhbHNlO1xuXG4gICAgbWFuZGF0b3J5ID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIGZpZWxkSGVpZ2h0ID0gJyc7XG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuXG4gICAgZ2FsbGVyeVdpZHRoID0gMDtcbiAgICBnYWxsZXJ5SGVpZ2h0O1xuICAgIGlzVmVydGljYWwgPSBmYWxzZTtcbiAgICBnYWxsZXJ5UmVmOiBHYWxsZXJ5UmVmO1xuICAgIGRpYWxvZ0dhbGxlcnlSZWY6IEdhbGxlcnlSZWY7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21pemF0aW9uU2VydmljZTogUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogUGVwRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBsYXlvdXRTZXJ2aWNlOiBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnYWxsZXJ5OiBHYWxsZXJ5LFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgICAgIHByaXZhdGUgZGF0YTogSVBlcEltYWdlc0ZpbG1zdHJpcERpYWxvZ0RhdGFcbiAgICApIHtcbiAgICAgICAgLy8gSWYgZGF0YSBleGlzdCBjb3B5IGFsbCBkYXRhIHByb3BlcnRpZXMgaW50byB0aGlzLlxuICAgICAgICBpZiAoZGlhbG9nUmVmICYmIGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuaW5EaWFsb2cgPSB0cnVlO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgICAgICAvLyBuYXY6IGZhbHNlLCAvLyBTaG93IG5hdmlnYXRpb24gYnV0dG9uc1xuICAgICAgICAgICAgbmF2SWNvbjogcGVwSWNvbkFycm93UmlnaHRBbHQuZGF0YSxcbiAgICAgICAgICAgIC8vIGxvb3A6IHRydWUsXG4gICAgICAgICAgICAvLyB6b29tT3V0OiAwLFxuICAgICAgICAgICAgLy8gZG90czogZmFsc2UsXG4gICAgICAgICAgICAvLyBkb3RzUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICAgICAgLy8gY291bnRlclBvc2l0aW9uOiAndG9wJyxcbiAgICAgICAgICAgIC8vIHRodW1iOiB0cnVlLFxuICAgICAgICAgICAgY291bnRlcjogZmFsc2UsIC8vIFNob3cgY291bnRlclxuICAgICAgICAgICAgZ2VzdHVyZXM6IHRydWUsIC8vIFVzZSB0b3VjaCBldmVudHMgKHJlcXVpcmVzIGhhbW1lci5qcylcbiAgICAgICAgICAgIC8vIGF1dG9QbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIC8vIHRodW1iV2lkdGg6IDEyMCxcbiAgICAgICAgICAgIC8vIHRodW1iSGVpZ2h0OiA5MCxcbiAgICAgICAgICAgIGltYWdlU2l6ZTogJ2NvbnRhaW4nLFxuICAgICAgICAgICAgLy8gcGFuU2Vuc2l0aXZpdHk6IDI1LFxuICAgICAgICAgICAgLy8gZGlzYWJsZVRodW1iOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIHBsYXllckludGVydmFsOiAzMDAwLFxuICAgICAgICAgICAgLy8gdGh1bWJNb2RlOiBUaHVtYm5haWxzTW9kZS5GcmVlLFxuICAgICAgICAgICAgLy8gdGh1bWJQb3NpdGlvbjogVGh1bWJuYWlsc1Bvc2l0aW9uLkJvdHRvbSxcbiAgICAgICAgICAgIGxvYWRpbmdTdHJhdGVneTogTG9hZGluZ1N0cmF0ZWd5LkRlZmF1bHQsXG4gICAgICAgICAgICAvLyBzbGlkaW5nRGlyZWN0aW9uOiBTbGlkaW5nRGlyZWN0aW9uLkhvcml6b250YWwsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGaWVsZEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZEhlaWdodCA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuY2FsY3VsYXRlRmllbGRIZWlnaHQoXG4gICAgICAgICAgICB0aGlzLmxheW91dFR5cGUsXG4gICAgICAgICAgICB0aGlzLnJvd1NwYW4sXG4gICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBJbWFnZXNGaWVsZCh7XG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBtYW5kYXRvcnk6IHRoaXMubWFuZGF0b3J5LFxuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEZyb21Hcm91cChwZXBGaWVsZCk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbkRpYWxvZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9OT19TUEFDSU5HX0NMQVNTX05BTUVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pdGVtcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgaW1nQXJyID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUuc3BsaXQoJzsnKSA6IFtdO1xuICAgICAgICAgICAgLy8gYWRkIE5vIGltYWdlIGltYWdlIHdoZW4gdGhlcmUgaXMgbm8gaW1hZ2VzXG4gICAgICAgICAgICBpZiAoaW1nQXJyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICAgICAgICAgIHBlcEljb25Ob0ltYWdlMi5kYXRhXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpbWdBcnIucHVzaChub0ltYWdlU3JjKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IGltZ0Fyci5tYXAoXG4gICAgICAgICAgICAgICAgKGltZykgPT4gbmV3IEltYWdlSXRlbSh7IHNyYzogaW1nLCB0aHVtYjogaW1nIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcuZG90cyA9IHRoaXMuY29uZmlnLm5hdiA9IHRoaXMuaXRlbXMubGVuZ3RoID4gMTtcbiAgICAgICAgdGhpcy5jb25maWcudGh1bWIgPVxuICAgICAgICAgICAgKHRoaXMua2V5ID09PSAnSXRlbUZpbG1zdHJpcEltYWdlcycgfHwgdGhpcy5zaG93VGh1bWJuYWlscykgJiZcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgICAgICA6IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJJbmRleCA9XG4gICAgICAgICAgICB0aGlzLmtleSA9PT0gJ0l0ZW1GaWxtc3RyaXBJbWFnZXMnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJySW5kZXggPT09IDAgJiZcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IodGhpcy5pdGVtcy5sZW5ndGggLyAyKSAtIDFcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VyckluZGV4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJEaWFsb2dPcGVuZWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeVJlZiA9IHRoaXMuZ2FsbGVyeS5yZWYoXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5rZXl9LSR7dGhpcy51aWR9LWdhbGxlcnlgXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5pbml0R2FsbGVyeVN0eWxlKHRoaXMuZ2FsbGVyeUNvbnQsIHRoaXMuZ2FsbGVyeVJlZik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdhbGxlcnlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeVJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nR2FsbGVyeVJlZikge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiAodGhpcy5teVBpbmNoKSB7IHRoaXMubXlQaW5jaC5kZXN0cm95KCk7IH1cbiAgICB9XG5cbiAgICBpbml0R2FsbGVyeVN0eWxlKGdhbGxlcnlDb250YWluZXIsIGdhbGxlcnlSZWYpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBTZXQgdGh1bWJuYWlscyBwb3NpdGlvbiBhbmQgc2xpZGluZyBkaXJlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuc2V0VGh1bWJuYWlsRGltZW5zaW9uKGdhbGxlcnlDb250YWluZXIpO1xuICAgICAgICAgICAgZ2FsbGVyeVJlZi5zZXRDb25maWcodGhpcy5jb25maWcpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJJbmRleDtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGdhbGxlcnlSZWYubG9hZCh0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgICAgICBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAvLyBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2FsbGVyeVJlZi5sb2FkKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25FcnJvcihlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICBwZXBJY29uTm9JbWFnZTIuZGF0YVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBub2ltZyA9IG5ldyBJbWFnZUl0ZW0oeyBzcmM6IG5vSW1hZ2VTcmMsIHRodW1iOiBub0ltYWdlU3JjIH0pO1xuICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShlLml0ZW1JbmRleCwgMSwgbm9pbWcpO1xuICAgIH1cblxuICAgIGVubGFyZ2VJbWFnZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXREaWFsb2dDb25maWcoe30sICdpbmxpbmUnKTtcbiAgICAgICAgY29uZmlnLm1heFdpZHRoID0gJzc1dncnO1xuICAgICAgICBjb25maWcuaGVpZ2h0ID0gJzk1dmgnO1xuXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5RGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY3VyckluZGV4OiB0aGlzLmN1cnJJbmRleCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb25maWdcbiAgICAgICAgKTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZnRlckRpYWxvZ09wZW5lZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBVcGRhdGUgY3VycmVudEluZGV4IGluIGdhbGxlcnlSZWZcbiAgICAgICAgLy8gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuZ2FsbGVyeVJlZi5zZXQodGhpcy5jdXJySW5kZXgpO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBhZnRlckRpYWxvZ09wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmID0gdGhpcy5nYWxsZXJ5LnJlZihcbiAgICAgICAgICAgIGAke3RoaXMua2V5fS0ke3RoaXMudWlkfS1kbGdHYWxsZXJ5YFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmluaXRHYWxsZXJ5U3R5bGUodGhpcy5nYWxsZXJ5RGlhbG9nQ29udCwgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmKTtcbiAgICB9XG5cbiAgICBzZXRUaHVtYm5haWxEaW1lbnNpb24oZ2FsbGVyeUNvbnRhaW5lcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdhbGxlcnlXaWR0aCA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgLy8gdGhpcy5nYWxsZXJ5SGVpZ2h0ID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIDMyOyAvLyBUT0RPIC0gVEFMSyBXSVRIIFRPTUVSXG4gICAgICAgIHRoaXMuZ2FsbGVyeUhlaWdodCA9IHRoaXMuaW5EaWFsb2dcbiAgICAgICAgICAgID8gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIDMyXG4gICAgICAgICAgICA6IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIC8vIHRoaXMuZ2FsbGVyeUhlaWdodCA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMjtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5pc1ZlcnRpY2FsID0gdGhpcy5nYWxsZXJ5V2lkdGggPCB0aGlzLmdhbGxlcnlIZWlnaHQ7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICBsZXQgd2lkdGggPVxuICAgICAgICAgICAgICAgICh0aGlzLmdhbGxlcnlXaWR0aCAtICh0aGlzLml0ZW1zLmxlbmd0aCAtIDEpICogMTYpIC9cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIHdpZHRoID0gTWF0aC5taW4oTWF0aC5tYXgod2lkdGgsIDI0KSwgOTYpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYkhlaWdodCA9IHdpZHRoO1xuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJXaWR0aCA9IHdpZHRoICsgMTY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgaGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAodGhpcy5nYWxsZXJ5SGVpZ2h0IC0gKHRoaXMuaXRlbXMubGVuZ3RoIC0gMSkgKiAxNikgL1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgaGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgoaGVpZ2h0LCAyNCksIDk2KTtcblxuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJIZWlnaHQgPSBoZWlnaHQgKyAxNjtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iV2lkdGggPSBoZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZy50aHVtYlBvc2l0aW9uID0gdGhpcy5pc1ZlcnRpY2FsXG4gICAgICAgICAgICA/IFRodW1ibmFpbHNQb3NpdGlvbi5Cb3R0b21cbiAgICAgICAgICAgIDogdGhpcy5sYXlvdXRTZXJ2aWNlLmlzUnRsKClcbiAgICAgICAgICAgICAgICA/IFRodW1ibmFpbHNQb3NpdGlvbi5SaWdodFxuICAgICAgICAgICAgICAgIDogVGh1bWJuYWlsc1Bvc2l0aW9uLkxlZnQ7XG4gICAgICAgIHRoaXMuY29uZmlnLnNsaWRpbmdEaXJlY3Rpb24gPVxuICAgICAgICAgICAgdGhpcy5rZXkgIT09ICdJdGVtRmlsbXN0cmlwSW1hZ2VzJ1xuICAgICAgICAgICAgICAgID8gU2xpZGluZ0RpcmVjdGlvbi5Ib3Jpem9udGFsXG4gICAgICAgICAgICAgICAgOiB0aGlzLmlzVmVydGljYWxcbiAgICAgICAgICAgICAgICAgICAgPyBTbGlkaW5nRGlyZWN0aW9uLkhvcml6b250YWxcbiAgICAgICAgICAgICAgICAgICAgOiBTbGlkaW5nRGlyZWN0aW9uLlZlcnRpY2FsO1xuXG4gICAgICAgIHRoaXMuY29uZmlnLmltYWdlU2l6ZSA9ICdjb250YWluJztcbiAgICB9XG5cbiAgICBpbmRleENoYW5nZShpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJySW5kZXggPSBpdGVtLmN1cnJJbmRleDtcbiAgICAgICAgLy8gaWYgKHRoaXMubmd4Vmlld2VySW1hZ2UgJiYgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSkge1xuICAgICAgICAvLyAgICAgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA9IDE7XG4gICAgICAgIC8vICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICAvLyBzY3JvbGxGdW5jdGlvbihlOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyAgICAgZS5kZWx0YVkgPiAwID8gdGhpcy56b29tT3V0KCkgOiB0aGlzLnpvb21JbigpO1xuICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gfVxuXG4gICAgLy8gem9vbUluKCk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA8IDIpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgKj0gKDEgKyB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPSAyO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyB6b29tT3V0KCk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA+IHRoaXMubmd4Vmlld2VySW1hZ2UuY29uZmlnLnpvb21GYWN0b3IpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgLz0gKDEgKyB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gcHJpdmF0ZSB1cGRhdGVTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7dGhpcy5uZ3hWaWV3ZXJJbWFnZS50cmFuc2xhdGVYfXB4LFxuICAgIC8vICAgICAgICAgJHt0aGlzLm5neFZpZXdlckltYWdlLnRyYW5zbGF0ZVl9cHgpIHJvdGF0ZSgke3RoaXMubmd4Vmlld2VySW1hZ2Uucm90YXRpb259ZGVnKSBzY2FsZSgke3RoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGV9KWA7XG5cbiAgICAvLyAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gfVxufVxuIl19
|
|
336
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxTQUFTLEVBSVQsVUFBVSxFQUNWLEtBQUssRUFDTCxXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ04sUUFBUSxHQUdYLE1BQU0sZUFBZSxDQUFDO0FBU3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUNILE9BQU8sRUFFUCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUVsQixTQUFTLEdBRVosTUFBTSxZQUFZLENBQUM7QUFDcEIsT0FBTyxFQUNILHVCQUF1QixFQUV2QixnQkFBZ0IsRUFDaEIsY0FBYyxFQUVkLDRCQUE0QixFQUM1QixjQUFjLEdBQ2pCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRS9ELE9BQU8sVUFBVSxDQUFDO0FBV2xCLDhEQUE4RDtBQUM5RCxzRUFBc0U7QUFDdEUsNkJBQTZCO0FBQzdCLGlFQUFpRTtBQUNqRSx1QkFBdUI7QUFDdkIsVUFBVTtBQUNWLDZCQUE2QjtBQUM3Qiw4RUFBOEU7QUFDOUUsU0FBUztBQUNULE1BQU07QUFFTixPQUFPLEVBQ0gsa0JBQWtCLEVBRWxCLGtCQUFrQixHQUNyQixN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XG4gICAgQ29tcG9uZW50LFxuICAgIFZpZXdDaGlsZCxcbiAgICBPbkluaXQsXG4gICAgT25EZXN0cm95LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbnB1dCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9wdGlvbmFsLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG4gICAgT25DaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgdHJpZ2dlcixcbiAgICBzdGF0ZSxcbiAgICBzdHlsZSxcbiAgICB0cmFuc2l0aW9uLFxuICAgIGFuaW1hdGUsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBHYWxsZXJ5LFxuICAgIEdhbGxlcnlDb25maWcsXG4gICAgTG9hZGluZ1N0cmF0ZWd5LFxuICAgIFNsaWRpbmdEaXJlY3Rpb24sXG4gICAgVGh1bWJuYWlsc1Bvc2l0aW9uLFxuICAgIEdhbGxlcnlJdGVtLFxuICAgIEltYWdlSXRlbSxcbiAgICBHYWxsZXJ5UmVmLFxufSBmcm9tICduZy1nYWxsZXJ5JztcbmltcG9ydCB7XG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgIFBlcEZpbGVTZXJ2aWNlLFxuICAgIFBlcEhvcml6b250YWxBbGlnbm1lbnQsXG4gICAgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVCxcbiAgICBQZXBJbWFnZXNGaWVsZCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwRGlhbG9nU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBwZXBJY29uQXJyb3dSaWdodEFsdCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgcGVwSWNvbk5vSW1hZ2UyIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvaWNvbic7XG5cbmltcG9ydCAnaGFtbWVyanMnO1xuXG5pbnRlcmZhY2UgSVBlcEltYWdlc0ZpbG1zdHJpcERpYWxvZ0RhdGEge1xuICAgIGN1cnJJbmRleDogbnVtYmVyO1xuICAgIGtleTogc3RyaW5nO1xuICAgIHZhbHVlOiBzdHJpbmc7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICB1aWQ6IHN0cmluZztcbiAgICBzaG93VGh1bWJuYWlsczogYm9vbGVhbjtcbn1cblxuLy8gZXhwb3J0IGNvbnN0IHNsaWRlSW5BbmltYXRpb24gPSB0cmlnZ2VyKCdzbGlkZUFuaW1hdGlvbicsIFtcbi8vICAgICBzdGF0ZSgnaW4nLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoMCknLCBvcGFjaXR5OiAxIH0pKSxcbi8vICAgICB0cmFuc2l0aW9uKCc6ZW50ZXInLCBbXG4vLyAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWSgtMTAwJSknLCBvcGFjaXR5OiAwIH0pLFxuLy8gICAgICAgICBhbmltYXRlKDQwMClcbi8vICAgICBdKSxcbi8vICAgICB0cmFuc2l0aW9uKCc6bGVhdmUnLCBbXG4vLyAgICAgICAgIGFuaW1hdGUoNDAwLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVkoLTEwMCUpJywgb3BhY2l0eTogMCB9KSlcbi8vICAgICBdKVxuLy8gXSk7XG5cbmltcG9ydCB7XG4gICAgSU1BR0VWSUVXRVJfQ09ORklHLFxuICAgIEltYWdlVmlld2VyQ29uZmlnLFxuICAgIGNyZWF0ZUJ1dHRvbkNvbmZpZyxcbn0gZnJvbSAnQGhhbGx5c29uaC9uZ3gtaW1hZ2V2aWV3ZXInO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlVmlld2VyQ29uZmlnKFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZVxuKTogSW1hZ2VWaWV3ZXJDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICAgIC8vIHdpZHRoOiA4NTAsXG4gICAgICAgIC8vIGhlaWdodDogMTUwLFxuICAgICAgICBiZ1N0eWxlOiAnI0ZGRicsIC8vIGNvbXBvbmVudCBiYWNrZ3JvdW5kIHN0eWxlXG4gICAgICAgIC8vIHNjYWxlU3RlcDogMC4xLCAvLyB6b29tIHNjYWxlIHN0ZXAgKHVzaW5nIHRoZSB6b29tIGluL291dCBidXR0b25zKVxuICAgICAgICAvLyByb3RhdGVTdGVwcGVyOiBmYWxzZSwgLy8gdG91Y2ggcm90YXRlIHNob3VsZCByb3RhdGUgb25seSA5MCB0byA5MCBkZWdyZWVzXG4gICAgICAgIGxvYWRpbmdNZXNzYWdlOiB0cmFuc2xhdGUuaW5zdGFudCgnTUVTU0FHRVMuSU5GT19MT0FESU5HX0ZJTEUnKSwgLy8gJ0xvYWRpbmcuLi4nLFxuICAgICAgICAvLyBidXR0b25TdHlsZToge1xuICAgICAgICAvLyAgICAgaWNvbkZvbnRGYW1pbHk6ICdNYXRlcmlhbCBJY29ucycsIC8vIGZvbnQgdXNlZCB0byByZW5kZXIgdGhlIGJ1dHRvbiBpY29uc1xuICAgICAgICAvLyAgICAgYWxwaGE6IDAuNSwgLy8gYnV0dG9ucycgdHJhbnNwYXJlbmNlIHZhbHVlXG4gICAgICAgIC8vICAgICBob3ZlckFscGhhOiAwLjcsIC8vIGJ1dHRvbnMnIHRyYW5zcGFyZW5jZSB2YWx1ZSB3aGVuIG1vdXNlIGlzIG92ZXJcbiAgICAgICAgLy8gICAgIGJnU3R5bGU6ICcjMDAwMDAwJywgLy8gIGJ1dHRvbnMnIGJhY2tncm91bmQgc3R5bGVcbiAgICAgICAgLy8gICAgIGljb25TdHlsZTogJyNmZmZmZmYnLCAvLyBidXR0b25zJyBpY29uIGNvbG9yc1xuICAgICAgICAvLyAgICAgYm9yZGVyU3R5bGU6ICcjMDAwMDAwJywgLy8gYnV0dG9ucycgYm9yZGVyIHN0eWxlXG4gICAgICAgIC8vICAgICBib3JkZXJXaWR0aDogMCwgLy8gYnV0dG9ucycgYm9yZGVyIHdpZHRoICgwID09IGRpc2FibGVkKVxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyB0b29sdGlwczoge1xuICAgICAgICAvLyAgICAgZW5hYmxlZDogdHJ1ZSwgLy8gZW5hYmxlIG9yIGRpc2FibGUgdG9vbHRpcHMgZm9yIGJ1dHRvbnNcbiAgICAgICAgLy8gICAgIGJnU3R5bGU6ICcjMDAwMDAwJywgLy8gdG9vbHRpcCBiYWNrZ3JvdW5kIHN0eWxlXG4gICAgICAgIC8vICAgICBiZ0FscGhhOiAwLjUsIC8vIHRvb2x0aXAgYmFja2dyb3VuZCB0cmFuc3BhcmVuY2VcbiAgICAgICAgLy8gICAgIHRleHRTdHlsZTogJyNmZmZmZmYnLCAvLyB0b29sdGlwJ3MgdGV4dCBzdHlsZVxuICAgICAgICAvLyAgICAgdGV4dEFscGhhOiAwLjksIC8vIHRvb2x0aXAncyB0ZXh0IHRyYW5zcGFyZW5jZVxuICAgICAgICAvLyAgICAgcGFkZGluZzogMTUsIC8vIHRvb2x0aXAgcGFkZGluZ1xuICAgICAgICAvLyAgICAgcmFkaXVzOiAyMCwgLy8gdG9vbHRpcCBib3JkZXIgcmFkaXVzXG4gICAgICAgIC8vIH0sXG4gICAgICAgIC8vIHNob3J0ZXIgYnV0dG9uIGNvbmZpZ3VyYXRpb24gc3R5bGVcbiAgICAgICAgbmV4dFBhZ2VCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZyhcbiAgICAgICAgICAgICduYXZpZ2F0ZV9uZXh0JyxcbiAgICAgICAgICAgICdOZXh0IHBhZ2UnLFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIGJlZm9yZVBhZ2VCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZyhcbiAgICAgICAgICAgICduYXZpZ2F0ZV9iZWZvcmUnLFxuICAgICAgICAgICAgJ1ByZXZpb3VzIHBhZ2UnLFxuICAgICAgICAgICAgMSxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIHpvb21PdXRCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZygnem9vbV9vdXQnLCAnWm9vbSBvdXQnLCAwLCBmYWxzZSksXG4gICAgICAgIHpvb21JbkJ1dHRvbjogY3JlYXRlQnV0dG9uQ29uZmlnKCd6b29tX2luJywgJ1pvb20gaW4nLCAxLCBmYWxzZSksXG4gICAgICAgIHJvdGF0ZUxlZnRCdXR0b246IGNyZWF0ZUJ1dHRvbkNvbmZpZyhcbiAgICAgICAgICAgICdyb3RhdGVfbGVmdCcsXG4gICAgICAgICAgICAnUm90YXRlIGxlZnQnLFxuICAgICAgICAgICAgMixcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIHJvdGF0ZVJpZ2h0QnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoXG4gICAgICAgICAgICAncm90YXRlX3JpZ2h0JyxcbiAgICAgICAgICAgICdSb3RhdGUgcmlnaHQnLFxuICAgICAgICAgICAgMyxcbiAgICAgICAgICAgIGZhbHNlXG4gICAgICAgICksXG4gICAgICAgIHJlc2V0QnV0dG9uOiBjcmVhdGVCdXR0b25Db25maWcoJ2F1dG9yZW5ldycsICdSZXNldCcsIDQsIGZhbHNlKSxcbiAgICB9O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1pbWFnZXMtZmlsbXN0cmlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuc2NzcyddLFxuICAgIC8vIGFuaW1hdGlvbnM6IFtzbGlkZUluQW5pbWF0aW9uXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogSU1BR0VWSUVXRVJfQ09ORklHLFxuICAgICAgICAgICAgLy8gdXNlVmFsdWU6IElNQUdFVklFV0VSX0NPTkZJR19ERUZBVUxULFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogY3JlYXRlVmlld2VyQ29uZmlnLFxuICAgICAgICAgICAgZGVwczogW1RyYW5zbGF0ZVNlcnZpY2VdLFxuICAgICAgICB9LFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcEltYWdlc0ZpbG1zdHJpcENvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgLy8gQFZpZXdDaGlsZCgnbmd4Vmlld2VySW1hZ2UnKSBuZ3hWaWV3ZXJJbWFnZTogYW55OyAvLyBUT0RPOiBDaGVjayBpZiB3ZSBuZWVkIHRvIHVzZSB0aGlzPz9cbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG5cbiAgICBwcml2YXRlIF9yb3dTcGFuID0gMTtcbiAgICBASW5wdXQoKVxuICAgIHNldCByb3dTcGFuKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3Jvd1NwYW4gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgcm93U3BhbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93U3BhbjtcbiAgICB9XG5cbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZXMnO1xuXG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbnVsbDtcbiAgICBASW5wdXQoKSB1aWQgPSAnMCc7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9sYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGxheW91dFR5cGUodmFsdWU6IFBlcExheW91dFR5cGUpIHtcbiAgICAgICAgdGhpcy5fbGF5b3V0VHlwZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldEZpZWxkSGVpZ2h0KCk7XG4gICAgfVxuICAgIGdldCBsYXlvdXRUeXBlKCk6IFBlcExheW91dFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGF5b3V0VHlwZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBjdXJySW5kZXggPSAwO1xuICAgIEBJbnB1dCgpIHNob3dUaHVtYm5haWxzID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5Q29udCcpIGdhbGxlcnlDb250OiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoJ2dhbGxlcnlEaWFsb2dUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgICBnYWxsZXJ5RGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG4gICAgQFZpZXdDaGlsZCgnZ2FsbGVyeURpYWxvZ0NvbnQnKSBnYWxsZXJ5RGlhbG9nQ29udDogRWxlbWVudFJlZjtcblxuICAgIGNvbmZpZzogR2FsbGVyeUNvbmZpZztcbiAgICBpdGVtczogR2FsbGVyeUl0ZW1bXSA9IG51bGw7XG4gICAgaW5EaWFsb2cgPSBmYWxzZTtcblxuICAgIG1hbmRhdG9yeSA9IGZhbHNlO1xuICAgIHJlYWRvbmx5ID0gZmFsc2U7XG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBmaWVsZEhlaWdodCA9ICcnO1xuICAgIHN0YW5kQWxvbmUgPSBmYWxzZTtcblxuICAgIGdhbGxlcnlXaWR0aCA9IDA7XG4gICAgZ2FsbGVyeUhlaWdodDtcbiAgICBpc1ZlcnRpY2FsID0gZmFsc2U7XG4gICAgZ2FsbGVyeVJlZjogR2FsbGVyeVJlZjtcbiAgICBkaWFsb2dHYWxsZXJ5UmVmOiBHYWxsZXJ5UmVmO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IFBlcERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmaWxlU2VydmljZTogUGVwRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2FsbGVyeTogR2FsbGVyeSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPFBlcEltYWdlc0ZpbG1zdHJpcENvbXBvbmVudD4sXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKVxuICAgICAgICBwcml2YXRlIGRhdGE6IElQZXBJbWFnZXNGaWxtc3RyaXBEaWFsb2dEYXRhXG4gICAgKSB7XG4gICAgICAgIC8vIElmIGRhdGEgZXhpc3QgY29weSBhbGwgZGF0YSBwcm9wZXJ0aWVzIGludG8gdGhpcy5cbiAgICAgICAgaWYgKGRpYWxvZ1JlZiAmJiBkYXRhKSB7XG4gICAgICAgICAgICB0aGlzLmluRGlhbG9nID0gdHJ1ZTtcblxuICAgICAgICAgICAgT2JqZWN0LmtleXMoZGF0YSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSBpbiB0aGlzKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IGRhdGFba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnID0ge1xuICAgICAgICAgICAgLy8gbmF2OiBmYWxzZSwgLy8gU2hvdyBuYXZpZ2F0aW9uIGJ1dHRvbnNcbiAgICAgICAgICAgIG5hdkljb246IHBlcEljb25BcnJvd1JpZ2h0QWx0LmRhdGEsXG4gICAgICAgICAgICAvLyBsb29wOiB0cnVlLFxuICAgICAgICAgICAgLy8gem9vbU91dDogMCxcbiAgICAgICAgICAgIC8vIGRvdHM6IGZhbHNlLFxuICAgICAgICAgICAgLy8gZG90c1Bvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICAgIC8vIGNvdW50ZXJQb3NpdGlvbjogJ3RvcCcsXG4gICAgICAgICAgICAvLyB0aHVtYjogdHJ1ZSxcbiAgICAgICAgICAgIGNvdW50ZXI6IGZhbHNlLCAvLyBTaG93IGNvdW50ZXJcbiAgICAgICAgICAgIGdlc3R1cmVzOiB0cnVlLCAvLyBVc2UgdG91Y2ggZXZlbnRzIChyZXF1aXJlcyBoYW1tZXIuanMpXG4gICAgICAgICAgICAvLyBhdXRvUGxheTogZmFsc2UsXG4gICAgICAgICAgICAvLyB0aHVtYldpZHRoOiAxMjAsXG4gICAgICAgICAgICAvLyB0aHVtYkhlaWdodDogOTAsXG4gICAgICAgICAgICBpbWFnZVNpemU6ICdjb250YWluJyxcbiAgICAgICAgICAgIC8vIHBhblNlbnNpdGl2aXR5OiAyNSxcbiAgICAgICAgICAgIC8vIGRpc2FibGVUaHVtYjogZmFsc2UsXG4gICAgICAgICAgICAvLyBwbGF5ZXJJbnRlcnZhbDogMzAwMCxcbiAgICAgICAgICAgIC8vIHRodW1iTW9kZTogVGh1bWJuYWlsc01vZGUuRnJlZSxcbiAgICAgICAgICAgIC8vIHRodW1iUG9zaXRpb246IFRodW1ibmFpbHNQb3NpdGlvbi5Cb3R0b20sXG4gICAgICAgICAgICBsb2FkaW5nU3RyYXRlZ3k6IExvYWRpbmdTdHJhdGVneS5EZWZhdWx0LFxuICAgICAgICAgICAgLy8gc2xpZGluZ0RpcmVjdGlvbjogU2xpZGluZ0RpcmVjdGlvbi5Ib3Jpem9udGFsLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RmllbGRIZWlnaHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRIZWlnaHQgPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmNhbGN1bGF0ZUZpZWxkSGVpZ2h0KFxuICAgICAgICAgICAgdGhpcy5sYXlvdXRUeXBlLFxuICAgICAgICAgICAgdGhpcy5yb3dTcGFuLFxuICAgICAgICAgICAgdGhpcy5zdGFuZEFsb25lXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXREZWZhdWx0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcGVwRmllbGQgPSBuZXcgUGVwSW1hZ2VzRmllbGQoe1xuICAgICAgICAgICAga2V5OiB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB0aGlzLnZhbHVlLFxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcbiAgICAgICAgICAgIHJlYWRvbmx5OiB0aGlzLnJlYWRvbmx5LFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRoaXMuZGlzYWJsZWQsXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmdldERlZmF1bHRGcm9tR3JvdXAocGVwRmllbGQpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pdGVtcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgaW1nQXJyID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUuc3BsaXQoJzsnKSA6IFtdO1xuICAgICAgICAgICAgLy8gYWRkIE5vIGltYWdlIGltYWdlIHdoZW4gdGhlcmUgaXMgbm8gaW1hZ2VzXG4gICAgICAgICAgICBpZiAoaW1nQXJyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICAgICAgICAgIHBlcEljb25Ob0ltYWdlMi5kYXRhXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpbWdBcnIucHVzaChub0ltYWdlU3JjKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IGltZ0Fyci5tYXAoXG4gICAgICAgICAgICAgICAgKGltZykgPT4gbmV3IEltYWdlSXRlbSh7IHNyYzogaW1nLCB0aHVtYjogaW1nIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcuZG90cyA9IHRoaXMuY29uZmlnLm5hdiA9IHRoaXMuaXRlbXMubGVuZ3RoID4gMTtcbiAgICAgICAgdGhpcy5jb25maWcudGh1bWIgPVxuICAgICAgICAgICAgKHRoaXMua2V5ID09PSAnSXRlbUZpbG1zdHJpcEltYWdlcycgfHwgdGhpcy5zaG93VGh1bWJuYWlscykgJiZcbiAgICAgICAgICAgIHRoaXMuaXRlbXMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICAgID8gdHJ1ZVxuICAgICAgICAgICAgICAgIDogZmFsc2U7XG4gICAgICAgIHRoaXMuY3VyckluZGV4ID1cbiAgICAgICAgICAgIHRoaXMua2V5ID09PSAnSXRlbUZpbG1zdHJpcEltYWdlcycgJiZcbiAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID09PSAwICYmXG4gICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IodGhpcy5pdGVtcy5sZW5ndGggLyAyKSAtIDFcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VyckluZGV4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJEaWFsb2dPcGVuZWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeVJlZiA9IHRoaXMuZ2FsbGVyeS5yZWYoXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5rZXl9LSR7dGhpcy51aWR9LWdhbGxlcnlgXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5pbml0R2FsbGVyeVN0eWxlKHRoaXMuZ2FsbGVyeUNvbnQsIHRoaXMuZ2FsbGVyeVJlZik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc3RhbmRBbG9uZSkge1xuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmdhbGxlcnlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeVJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nR2FsbGVyeVJlZikge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiAodGhpcy5teVBpbmNoKSB7IHRoaXMubXlQaW5jaC5kZXN0cm95KCk7IH1cbiAgICB9XG5cbiAgICBpbml0R2FsbGVyeVN0eWxlKGdhbGxlcnlDb250YWluZXIsIGdhbGxlcnlSZWYpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAvLyBTZXQgdGh1bWJuYWlscyBwb3NpdGlvbiBhbmQgc2xpZGluZyBkaXJlY3Rpb25cbiAgICAgICAgICAgIHRoaXMuc2V0VGh1bWJuYWlsRGltZW5zaW9uKGdhbGxlcnlDb250YWluZXIpO1xuICAgICAgICAgICAgZ2FsbGVyeVJlZi5zZXRDb25maWcodGhpcy5jb25maWcpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJJbmRleDtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGdhbGxlcnlSZWYubG9hZCh0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgICAgICBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAvLyBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2FsbGVyeVJlZi5sb2FkKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25FcnJvcihlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICBwZXBJY29uTm9JbWFnZTIuZGF0YVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBub2ltZyA9IG5ldyBJbWFnZUl0ZW0oeyBzcmM6IG5vSW1hZ2VTcmMsIHRodW1iOiBub0ltYWdlU3JjIH0pO1xuICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShlLml0ZW1JbmRleCwgMSwgbm9pbWcpO1xuICAgIH1cblxuICAgIGVubGFyZ2VJbWFnZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXREaWFsb2dDb25maWcoe30sICdpbmxpbmUnKTtcbiAgICAgICAgY29uZmlnLm1heFdpZHRoID0gJzc1dncnO1xuICAgICAgICBjb25maWcuaGVpZ2h0ID0gJzk1dmgnO1xuXG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5RGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgY3VyckluZGV4OiB0aGlzLmN1cnJJbmRleCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb25maWdcbiAgICAgICAgKTtcblxuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZnRlckRpYWxvZ09wZW5lZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBVcGRhdGUgY3VycmVudEluZGV4IGluIGdhbGxlcnlSZWZcbiAgICAgICAgLy8gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuZ2FsbGVyeVJlZi5zZXQodGhpcy5jdXJySW5kZXgpO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBhZnRlckRpYWxvZ09wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmID0gdGhpcy5nYWxsZXJ5LnJlZihcbiAgICAgICAgICAgIGAke3RoaXMua2V5fS0ke3RoaXMudWlkfS1kbGdHYWxsZXJ5YFxuICAgICAgICApO1xuICAgICAgICB0aGlzLmluaXRHYWxsZXJ5U3R5bGUodGhpcy5nYWxsZXJ5RGlhbG9nQ29udCwgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmKTtcbiAgICB9XG5cbiAgICBzZXRUaHVtYm5haWxEaW1lbnNpb24oZ2FsbGVyeUNvbnRhaW5lcik6IHZvaWQge1xuICAgICAgICB0aGlzLmdhbGxlcnlXaWR0aCA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgLy8gdGhpcy5nYWxsZXJ5SGVpZ2h0ID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIDMyOyAvLyBUT0RPIC0gVEFMSyBXSVRIIFRPTUVSXG4gICAgICAgIHRoaXMuZ2FsbGVyeUhlaWdodCA9IHRoaXMuaW5EaWFsb2dcbiAgICAgICAgICAgID8gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIDMyXG4gICAgICAgICAgICA6IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIC8vIHRoaXMuZ2FsbGVyeUhlaWdodCA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMjtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICAgICAgdGhpcy5pc1ZlcnRpY2FsID0gdGhpcy5nYWxsZXJ5V2lkdGggPCB0aGlzLmdhbGxlcnlIZWlnaHQ7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBpZiAodGhpcy5pc1ZlcnRpY2FsKSB7XG4gICAgICAgICAgICBsZXQgd2lkdGggPVxuICAgICAgICAgICAgICAgICh0aGlzLmdhbGxlcnlXaWR0aCAtICh0aGlzLml0ZW1zLmxlbmd0aCAtIDEpICogMTYpIC9cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIHdpZHRoID0gTWF0aC5taW4oTWF0aC5tYXgod2lkdGgsIDI0KSwgOTYpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYkhlaWdodCA9IHdpZHRoO1xuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJXaWR0aCA9IHdpZHRoICsgMTY7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsZXQgaGVpZ2h0ID1cbiAgICAgICAgICAgICAgICAodGhpcy5nYWxsZXJ5SGVpZ2h0IC0gKHRoaXMuaXRlbXMubGVuZ3RoIC0gMSkgKiAxNikgL1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgaGVpZ2h0ID0gTWF0aC5taW4oTWF0aC5tYXgoaGVpZ2h0LCAyNCksIDk2KTtcblxuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJIZWlnaHQgPSBoZWlnaHQgKyAxNjtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iV2lkdGggPSBoZWlnaHQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZy50aHVtYlBvc2l0aW9uID0gdGhpcy5pc1ZlcnRpY2FsXG4gICAgICAgICAgICA/IFRodW1ibmFpbHNQb3NpdGlvbi5Cb3R0b21cbiAgICAgICAgICAgIDogdGhpcy5sYXlvdXRTZXJ2aWNlLmlzUnRsKClcbiAgICAgICAgICAgID8gVGh1bWJuYWlsc1Bvc2l0aW9uLlJpZ2h0XG4gICAgICAgICAgICA6IFRodW1ibmFpbHNQb3NpdGlvbi5MZWZ0O1xuICAgICAgICB0aGlzLmNvbmZpZy5zbGlkaW5nRGlyZWN0aW9uID1cbiAgICAgICAgICAgIHRoaXMua2V5ICE9PSAnSXRlbUZpbG1zdHJpcEltYWdlcydcbiAgICAgICAgICAgICAgICA/IFNsaWRpbmdEaXJlY3Rpb24uSG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgIDogdGhpcy5pc1ZlcnRpY2FsXG4gICAgICAgICAgICAgICAgPyBTbGlkaW5nRGlyZWN0aW9uLkhvcml6b250YWxcbiAgICAgICAgICAgICAgICA6IFNsaWRpbmdEaXJlY3Rpb24uVmVydGljYWw7XG5cbiAgICAgICAgdGhpcy5jb25maWcuaW1hZ2VTaXplID0gJ2NvbnRhaW4nO1xuICAgIH1cblxuICAgIGluZGV4Q2hhbmdlKGl0ZW06IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJJbmRleCA9IGl0ZW0uY3VyckluZGV4O1xuICAgICAgICAvLyBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZSAmJiB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlID0gMTtcbiAgICAgICAgLy8gICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIC8vIHNjcm9sbEZ1bmN0aW9uKGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vICAgICBlLmRlbHRhWSA+IDAgPyB0aGlzLnpvb21PdXQoKSA6IHRoaXMuem9vbUluKCk7XG4gICAgLy8gICAgIHJldHVybiBmYWxzZTtcbiAgICAvLyB9XG5cbiAgICAvLyB6b29tSW4oKTogdm9pZCB7XG4gICAgLy8gICAgIGlmICh0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlIDwgMikge1xuICAgIC8vICAgICAgICAgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSAqPSAoMSArIHRoaXMubmd4Vmlld2VySW1hZ2UuY29uZmlnLnpvb21GYWN0b3IpO1xuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA9IDI7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICAgIC8vIH1cblxuICAgIC8vIHpvb21PdXQoKTogdm9pZCB7XG4gICAgLy8gICAgIGlmICh0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlID4gdGhpcy5uZ3hWaWV3ZXJJbWFnZS5jb25maWcuem9vbUZhY3Rvcikge1xuICAgIC8vICAgICAgICAgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSAvPSAoMSArIHRoaXMubmd4Vmlld2VySW1hZ2UuY29uZmlnLnpvb21GYWN0b3IpO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyBwcml2YXRlIHVwZGF0ZVN0eWxlKCk6IHZvaWQge1xuICAgIC8vICAgICB0aGlzLm5neFZpZXdlckltYWdlLnN0eWxlLnRyYW5zZm9ybSA9IGB0cmFuc2xhdGUoJHt0aGlzLm5neFZpZXdlckltYWdlLnRyYW5zbGF0ZVh9cHgsXG4gICAgLy8gICAgICAgICAke3RoaXMubmd4Vmlld2VySW1hZ2UudHJhbnNsYXRlWX1weCkgcm90YXRlKCR7dGhpcy5uZ3hWaWV3ZXJJbWFnZS5yb3RhdGlvbn1kZWcpIHNjYWxlKCR7dGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZX0pYDtcblxuICAgIC8vICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB9XG59XG4iXX0=
|