@pepperi-addons/ngx-lib 0.4.2-beta.8 → 0.4.2-beta.80
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 +11 -2
- package/button/button.component.d.ts +8 -8
- package/core/common/services/color.service.d.ts +1 -0
- package/core/common/services/file.service.d.ts +7 -2
- package/dialog/dialog.service.d.ts +1 -0
- package/draggable-items/draggable-items.component.d.ts +3 -3
- package/draggable-items/draggable-items.module.d.ts +1 -1
- package/esm2020/address/address.component.mjs +1 -1
- package/esm2020/attachment/attachment.component.mjs +38 -18
- package/esm2020/button/button.component.mjs +7 -7
- package/esm2020/chips/chips.component.mjs +2 -2
- package/esm2020/color/color-picker.component.mjs +1 -1
- package/esm2020/core/common/services/color.service.mjs +27 -1
- package/esm2020/core/common/services/file.service.mjs +57 -20
- package/esm2020/core/common/services/session.service.mjs +2 -1
- package/esm2020/core/customization/customization.model.mjs +7 -6
- package/esm2020/core/customization/customization.service.mjs +13 -4
- package/esm2020/core/http/services/http.service.mjs +1 -1
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.service.mjs +22 -1
- package/esm2020/draggable-items/draggable-items.component.mjs +7 -7
- package/esm2020/draggable-items/draggable-items.module.mjs +6 -6
- package/esm2020/files-uploader/files-uploader.component.mjs +50 -45
- package/esm2020/form/field-generator.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +4 -3
- package/esm2020/form/internal-field-generator.component.mjs +1 -1
- package/esm2020/form/internal-form.component.mjs +1 -1
- package/esm2020/form/internal-list.component.mjs +2 -2
- package/esm2020/image/image.component.mjs +32 -16
- package/esm2020/image/image.service.mjs +2 -4
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +2 -2
- package/esm2020/link/link.component.mjs +33 -58
- package/esm2020/list/list.component.mjs +85 -17
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
- package/esm2020/quantity-selector/quantity-selector.component.mjs +20 -25
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +39 -18
- package/esm2020/select-panel/select-panel.component.mjs +2 -2
- package/esm2020/signature/public-api.mjs +2 -1
- package/esm2020/signature/signature-dialog.component.mjs +78 -0
- package/esm2020/signature/signature.component.mjs +117 -89
- package/esm2020/signature/signature.module.mjs +6 -5
- package/esm2020/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +5 -0
- package/esm2020/skeleton-loader/public-api.mjs +6 -0
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +44 -0
- package/esm2020/skeleton-loader/skeleton-loader.module.mjs +24 -0
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +3 -3
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
- package/esm2020/textbox/textbox.component.mjs +9 -3
- package/esm2020/top-bar/top-bar.component.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +37 -17
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs +6 -6
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +23 -2
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +8 -7
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +32 -18
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +32 -57
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +84 -17
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +37 -16
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +205 -102
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +8 -2
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +101 -27
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +37 -17
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs +6 -6
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +23 -2
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +8 -7
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +32 -18
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +32 -57
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +84 -16
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +37 -16
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +201 -102
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +76 -0
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +8 -2
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +101 -27
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/files-uploader/files-uploader.component.d.ts +7 -4
- package/image/image.component.d.ts +11 -3
- package/link/link.component.d.ts +23 -27
- package/list/list.component.d.ts +7 -1
- package/menu/menu.component.d.ts +1 -1
- package/package.json +10 -2
- package/quantity-selector/quantity-selector.component.d.ts +0 -2
- package/select/select.component.d.ts +9 -2
- package/signature/public-api.d.ts +1 -0
- package/signature/signature-dialog.component.d.ts +29 -0
- package/signature/signature.component.d.ts +7 -16
- package/signature/signature.module.d.ts +16 -15
- package/skeleton-loader/index.d.ts +5 -0
- package/skeleton-loader/public-api.d.ts +2 -0
- package/skeleton-loader/skeleton-loader.component.d.ts +20 -0
- package/skeleton-loader/skeleton-loader.component.theme.scss +15 -0
- package/skeleton-loader/skeleton-loader.module.d.ts +9 -0
- package/src/core/style/abstracts/AbstractsIntro.stories.mdx +7 -0
- package/src/core/style/abstracts/functions.scss +11 -11
- package/src/core/style/abstracts/mixins.scss +9 -6
- package/src/core/style/abstracts/variables.scss +38 -18
- package/src/core/style/base/BorderRadius.stories.mdx +59 -0
- package/src/core/style/base/Breakpoints.stories.mdx +36 -0
- package/src/core/style/base/Colors.stories.mdx +128 -0
- package/src/core/style/base/Shadows.stories.mdx +69 -0
- package/src/core/style/base/Spacing.stories.mdx +75 -0
- package/src/core/style/base/States.stories.mdx +62 -0
- package/src/core/style/base/Typography.stories.mdx +89 -0
- package/src/core/style/base/ZIndex.stories.mdx +47 -0
- package/src/core/style/base/base.scss +8 -10
- package/src/core/style/base/borderRadius.component.ts +27 -0
- package/src/core/style/base/breakpoints.component.ts +14 -0
- package/src/core/style/base/colors.component.ts +174 -0
- package/src/core/style/base/shadows.component.ts +90 -0
- package/src/core/style/base/spacing.component.ts +71 -0
- package/src/core/style/base/states.component.ts +84 -0
- package/src/core/style/base/typography.component.ts +94 -0
- package/src/core/style/base/typography.scss +54 -48
- package/src/core/style/base/zIndex.component.ts +25 -0
- package/src/core/style/components/file.scss +4 -4
- package/src/core/style/components/general.scss +5 -1
|
@@ -32,9 +32,7 @@ export class PepImageService {
|
|
|
32
32
|
const fileStrArr = event.fileStr.split(';');
|
|
33
33
|
if (fileStrArr.length === 2) {
|
|
34
34
|
const win = window.open('', '_blank');
|
|
35
|
-
const
|
|
36
|
-
const base64 = fileStrArr[1].split(',')[1];
|
|
37
|
-
const blob = this.fileService.convertFromb64toBlob(base64, contentType);
|
|
35
|
+
const blob = this.fileService.convertFromb64toBlob(event.fileStr);
|
|
38
36
|
const url = URL.createObjectURL(blob);
|
|
39
37
|
win.location.href = url;
|
|
40
38
|
}
|
|
@@ -49,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
49
47
|
providedIn: 'root',
|
|
50
48
|
}]
|
|
51
49
|
}], ctorParameters: function () { return [{ type: i1.PepDialogService }, { type: i2.PepCustomizationService }, { type: i2.PepFileService }]; } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvaW1hZ2UvaW1hZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBT3hELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7O0FBTXZGLE1BQU0sT0FBTyxlQUFlO0lBQ3hCLFlBQ1ksYUFBK0IsRUFDL0Isb0JBQTZDLEVBQzdDLFdBQTJCO1FBRjNCLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzdDLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtJQUNuQyxDQUFDO0lBRUwsZUFBZSxDQUFDLFFBQWdCLEVBQUUsT0FBcUIsRUFBRSxLQUFLLEdBQUcsRUFBRTtRQUMvRCxNQUFNLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FDekIsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQzFDLENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRWxDLHVCQUF1QjtRQUN2QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEUsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQ3pCLDJCQUEyQixFQUMzQjtZQUNJLFNBQVMsRUFBRSxDQUFDO1lBQ1osR0FBRyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQ3pCLEtBQUssRUFBRSxXQUFXO1lBQ2xCLEtBQUssRUFBRSxLQUFLO1lBQ1osVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixHQUFHLEVBQUUsRUFBRTtZQUNQLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUM7U0FDakMsRUFDRCxNQUFNLENBQ1QsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBMEI7UUFDbEMsSUFBSSxLQUFLLEVBQUU7WUFDUCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM1QyxJQUFJLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztnQkFDdEMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxvQkFBb0IsQ0FDOUMsS0FBSyxDQUFDLE9BQU8sQ0FDaEIsQ0FBQztnQkFDRixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUN0QyxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7YUFDM0I7U0FDSjtJQUNMLENBQUM7OzRHQTlDUSxlQUFlO2dIQUFmLGVBQWUsY0FGWixNQUFNOzJGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIFBlcEZpbGVTZXJ2aWNlLFxyXG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXHJcbiAgICBJUGVwT3B0aW9uLFxyXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcclxuaW1wb3J0IHsgUGVwRGlhbG9nU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XHJcbmltcG9ydCB7IFBlcEltYWdlc0ZpbG1zdHJpcENvbXBvbmVudCB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAnO1xyXG5pbXBvcnQgeyBJUGVwRmlsZUNoYW5nZUV2ZW50IH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZmlsZXMtdXBsb2FkZXInO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVwSW1hZ2VTZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogUGVwRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGZpbGVTZXJ2aWNlOiBQZXBGaWxlU2VydmljZSxcclxuICAgICkgeyB9XHJcblxyXG4gICAgb3BlbkltYWdlRGlhbG9nKGltYWdlU3JjOiBzdHJpbmcsIG9wdGlvbnM6IElQZXBPcHRpb25bXSwgdGl0bGUgPSAnJyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGFyciA9IFtpbWFnZVNyY10uY29uY2F0KFxyXG4gICAgICAgICAgICAob3B0aW9ucyB8fCBbXSkubWFwKChvcHQpID0+IG9wdC52YWx1ZSlcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGltYWdlc1ZhbHVlID0gYXJyLmpvaW4oJzsnKTtcclxuXHJcbiAgICAgICAgLy8gU2hvdyBpbWFnZSBpbiBtb2RhbC5cclxuICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmRpYWxvZ1NlcnZpY2UuZ2V0RGlhbG9nQ29uZmlnKHt9LCAnaW5saW5lJyk7XHJcbiAgICAgICAgY29uZmlnLm1heFdpZHRoID0gJzc1dncnO1xyXG4gICAgICAgIGNvbmZpZy5oZWlnaHQgPSAnOTV2aCc7XHJcblxyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5vcGVuRGlhbG9nKFxyXG4gICAgICAgICAgICBQZXBJbWFnZXNGaWxtc3RyaXBDb21wb25lbnQsXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIGN1cnJJbmRleDogMCxcclxuICAgICAgICAgICAgICAgIGtleTogbmV3IERhdGUoKS5nZXREYXRlKCksXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogaW1hZ2VzVmFsdWUsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogdGl0bGUsXHJcbiAgICAgICAgICAgICAgICBzaG93Rm9vdGVyOiBmYWxzZSxcclxuICAgICAgICAgICAgICAgIHNob3dDbG9zZTogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHVpZDogJycsXHJcbiAgICAgICAgICAgICAgICBzaG93VGh1bWJuYWlsczogYXJyLmxlbmd0aCA+IDEsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGNvbmZpZ1xyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb3BlbkZyb21VUkkoZXZlbnQ6IElQZXBGaWxlQ2hhbmdlRXZlbnQpIHtcclxuICAgICAgICBpZiAoZXZlbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgZmlsZVN0ckFyciA9IGV2ZW50LmZpbGVTdHIuc3BsaXQoJzsnKTtcclxuICAgICAgICAgICAgaWYgKGZpbGVTdHJBcnIubGVuZ3RoID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3BlbignJywgJ19ibGFuaycpO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgYmxvYiA9IHRoaXMuZmlsZVNlcnZpY2UuY29udmVydEZyb21iNjR0b0Jsb2IoXHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQuZmlsZVN0clxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHVybCA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgICAgICAgICAgICB3aW4ubG9jYXRpb24uaHJlZiA9IHVybDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -34,7 +34,7 @@ export class PepImagesFilmstripComponent {
|
|
|
34
34
|
this.value = '';
|
|
35
35
|
this.label = '';
|
|
36
36
|
this.xAlignment = DEFAULT_HORIZONTAL_ALIGNMENT;
|
|
37
|
-
this._rowSpan =
|
|
37
|
+
this._rowSpan = 10;
|
|
38
38
|
this.controlType = 'images';
|
|
39
39
|
this.form = null;
|
|
40
40
|
this.uid = '0';
|
|
@@ -334,4 +334,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
334
334
|
type: ViewChild,
|
|
335
335
|
args: ['galleryDialogCont']
|
|
336
336
|
}] } });
|
|
337
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFLVCxLQUFLLEVBQ0wsV0FBVyxFQUdYLE1BQU0sRUFDTixRQUFRLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBR0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbEIsU0FBUyxHQUVaLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFDSCx1QkFBdUIsRUFLdkIsNEJBQTRCLEVBQzVCLGNBQWMsRUFFZCxPQUFPLEVBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE9BQU8sVUFBVSxDQUFDO0FBWWxCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPM0MsTUFBTSxPQUFPLDJCQUEyQjtJQStEcEMsWUFDWSxvQkFBNkMsRUFDN0MsYUFBK0IsRUFDL0IsYUFBK0IsRUFDL0IsV0FBMkIsRUFDM0IsWUFBNkIsRUFDN0IsZ0JBQXFDLEVBQ3JDLE9BQWdCLEVBQ2hCLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ25CLEVBQXFCLEVBQ1MsUUFBYSxFQUUzQyxTQUFvRCxFQUdwRCxJQUFtQztRQWZuQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzdDLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQUMvQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDL0IsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGlCQUFZLEdBQVosWUFBWSxDQUFpQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBQ3JDLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ1MsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUUzQyxjQUFTLEdBQVQsU0FBUyxDQUEyQztRQUdwRCxTQUFJLEdBQUosSUFBSSxDQUErQjtRQTdFdEMsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZUFBVSxHQUEyQiw0QkFBNEIsQ0FBQztRQUVuRSxhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBVXJCLGdCQUFXLEdBQUcsUUFBUSxDQUFDO1FBRWQsU0FBSSxHQUFjLElBQUksQ0FBQztRQUN2QixRQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ1YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLElBQUksQ0FBQztRQUVwQixnQkFBVyxHQUFrQixNQUFNLENBQUM7UUFVbkMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBUWhDLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQzVCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFFbkIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFFakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQXlCZixvREFBb0Q7UUFDcEQsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBRXJCLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzlCLElBQUksR0FBRyxJQUFJLElBQUksRUFBRTtvQkFDYixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUN6QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHO1lBQ1YsR0FBRyxFQUFFLEtBQUs7WUFDVixzQ0FBc0M7WUFDdEMsY0FBYztZQUNkLGNBQWM7WUFDZCxlQUFlO1lBQ2YsMEJBQTBCO1lBQzFCLDBCQUEwQjtZQUMxQixlQUFlO1lBQ2YsT0FBTyxFQUFFLEtBQUs7WUFDZCxRQUFRLEVBQUUsSUFBSTtZQUNkLG1CQUFtQjtZQUNuQixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLHNCQUFzQjtZQUN0Qix1QkFBdUI7WUFDdkIsd0JBQXdCO1lBQ3hCLGtDQUFrQztZQUNsQyw0Q0FBNEM7WUFDNUMsZUFBZSxFQUFFLGVBQWUsQ0FBQyxPQUFPO1lBQ3hDLGlEQUFpRDtTQUNwRCxDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQTdHRCxJQUNJLE9BQU8sQ0FBQyxLQUFLO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQVVELElBQ0ksVUFBVSxDQUFDLEtBQW9CO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBSSxVQUFVO1FBQ1YsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUF1Rk8sY0FBYztRQUNsQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FDN0QsSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsT0FBTyxFQUNaLElBQUksQ0FBQyxVQUFVLENBQ2xCLENBQUM7SUFDTixDQUFDO0lBRU8sY0FBYztRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQztZQUNoQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7WUFDYixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsbUJBQW1CLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELDZEQUE2RDtJQUM3RCxvRkFBb0Y7SUFDcEYsMkRBQTJEO0lBQzNELHFFQUFxRTtJQUNyRSx5QkFBeUI7SUFDekIsa0JBQWtCO0lBQ2xCLFNBQVM7SUFFVCxxRUFBcUU7SUFFckUsbUdBQW1HO0lBQ25HLGlEQUFpRDtJQUNqRCw4Q0FBOEM7SUFDOUMsdURBQXVEO0lBQ3ZELFFBQVE7SUFDUixJQUFJO0lBRUosUUFBUTtRQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO2dCQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFFdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQix1QkFBdUIsQ0FBQyw0QkFBNEIsQ0FDdkQsQ0FBQztnQkFFRixJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtvQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQix1QkFBdUIsQ0FBQyx1Q0FBdUMsQ0FDbEUsQ0FBQztpQkFDTDthQUNKO1NBQ0o7UUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxFQUFFO1lBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdkQsNkNBQTZDO1lBQzdDLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQ2hELGVBQWUsQ0FBQyxJQUFJLENBQ3ZCLENBQUM7Z0JBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMzQjtZQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FDbkIsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksU0FBUyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FDbkQsQ0FBQztTQUNMO1FBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztZQUNiLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO2dCQUN2RCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDO2dCQUNyQixDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxTQUFTO1lBQ1YsSUFBSSxDQUFDLEdBQUcsS0FBSyxxQkFBcUI7Z0JBQzlCLElBQUksQ0FBQyxTQUFTLEtBQUssQ0FBQztnQkFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDN0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUM1QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FDOUIsR0FBRyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQ3pCLENBQUM7WUFDRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDNUQ7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDekI7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQzdCO1FBQ0QsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxDQUFDO1NBQ25DO1FBQ0QsZ0RBQWdEO0lBQ3BELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVO1FBQ3pDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixnREFBZ0Q7WUFDaEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLENBQUM7WUFDN0MsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsOENBQThDO1lBQzlDLCtDQUErQztRQUNuRCxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFTixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3BDLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRTtZQUNsQixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM1QixVQUFVLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNOLGdDQUFnQztTQUNuQzthQUFNO1lBQ0gsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDL0I7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLENBQUM7UUFDTCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGdCQUFnQixDQUNoRCxlQUFlLENBQUMsSUFBSSxDQUN2QixDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsSUFBSSxTQUFTLENBQUMsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxZQUFZLENBQUMsS0FBVTtRQUNuQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDaEUsTUFBTSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUM7UUFDekIsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFFdkIsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUN0RCxJQUFJLENBQUMscUJBQXFCLEVBQzFCO1lBQ0ksU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzVCLEVBQ0QsTUFBTSxDQUNULENBQUM7UUFFRixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNwRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUVILG9DQUFvQztRQUNwQywrQ0FBK0M7UUFDL0MsMkNBQTJDO1FBQzNDLE1BQU07SUFDVixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUNwQyxHQUFHLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FDNUIsQ0FBQztRQUNGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDaEM7YUFBTTtZQUNILElBQUksQ0FBQyxxQkFBcUIsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDNUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCLENBQUMsZ0JBQWdCO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUMvRCxtR0FBbUc7UUFDbkcsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUTtZQUM5QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxFQUFFO1lBQ2xELENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDO1FBQ2xELHlFQUF5RTtRQUN6RSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ3pELElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ2pCLElBQUksS0FBSyxHQUNMLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEIsS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFMUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDdkM7YUFBTTtZQUNILElBQUksTUFBTSxHQUNOLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7WUFDdEIsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsTUFBTSxHQUFHLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7U0FDbkM7UUFFRCxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVTtZQUN2QyxDQUFDLENBQUMsa0JBQWtCLENBQUMsTUFBTTtZQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQ3hCLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLO2dCQUMxQixDQUFDLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCO1lBQ3hCLElBQUksQ0FBQyxHQUFHLEtBQUsscUJBQXFCO2dCQUM5QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtnQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVO29CQUNiLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVO29CQUM3QixDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO1FBRXhDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ2hDLDBEQUEwRDtRQUMxRCxxQ0FBcUM7UUFDckMsMEJBQTBCO1FBQzFCLElBQUk7SUFDUixDQUFDOzt3SEE3VlEsMkJBQTJCLG9VQTBFWixRQUFRLHlFQUlwQixlQUFlOzRHQTlFbEIsMkJBQTJCLDRnQkFzQ1EsV0FBVywySkNuRzNELHU3RUF1Q2M7MkZEc0JELDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDSSxzQkFBc0I7OzBCQThFM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlOzRDQTVFbEIsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFJRixPQUFPO3NCQURWLEtBQUs7Z0JBV0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUYsVUFBVTtzQkFEYixLQUFLO2dCQVNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUV4QixxQkFBcUI7c0JBRHBCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUV6QixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0NoaWxkLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPbkNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgICBHYWxsZXJ5LFxuICAgIEdhbGxlcnlDb25maWcsXG4gICAgTG9hZGluZ1N0cmF0ZWd5LFxuICAgIFNsaWRpbmdEaXJlY3Rpb24sXG4gICAgVGh1bWJuYWlsc1Bvc2l0aW9uLFxuICAgIEdhbGxlcnlJdGVtLFxuICAgIEltYWdlSXRlbSxcbiAgICBHYWxsZXJ5UmVmLFxufSBmcm9tICduZy1nYWxsZXJ5JztcbmltcG9ydCB7XG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgIFBlcEZpbGVTZXJ2aWNlLFxuICAgIFBlcEhvcml6b250YWxBbGlnbm1lbnQsXG4gICAgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVCxcbiAgICBQZXBJbWFnZXNGaWVsZCxcbiAgICBQZXBVdGlsaXRpZXNTZXJ2aWNlLFxuICAgIFBlcEd1aWRcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwRGlhbG9nU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBQZXBJY29uUmVnaXN0cnksIHBlcEljb25Ob0ltYWdlMiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuXG5pbXBvcnQgJ2hhbW1lcmpzJztcblxuaW50ZXJmYWNlIElQZXBJbWFnZXNGaWxtc3RyaXBEaWFsb2dEYXRhIHtcbiAgICBjdXJySW5kZXg6IG51bWJlcjtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcbiAgICB1aWQ6IHN0cmluZztcbiAgICBzaG93VGh1bWJuYWlsczogYm9vbGVhbjtcbn1cblxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1pbWFnZXMtZmlsbXN0cmlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuc2NzcycsICcuL2ltYWdlcy1maWxtc3RyaXAuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG5cbiAgICBwcml2YXRlIF9yb3dTcGFuID0gMTtcbiAgICBASW5wdXQoKVxuICAgIHNldCByb3dTcGFuKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3Jvd1NwYW4gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgcm93U3BhbigpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm93U3BhbjtcbiAgICB9XG5cbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZXMnO1xuXG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbnVsbDtcbiAgICBASW5wdXQoKSB1aWQgPSAnMCc7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgcmVuZGVyVGl0bGUgPSB0cnVlO1xuXG4gICAgcHJpdmF0ZSBfbGF5b3V0VHlwZTogUGVwTGF5b3V0VHlwZSA9ICdmb3JtJztcbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXlvdXRUeXBlKHZhbHVlOiBQZXBMYXlvdXRUeXBlKSB7XG4gICAgICAgIHRoaXMuX2xheW91dFR5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgIH1cbiAgICBnZXQgbGF5b3V0VHlwZSgpOiBQZXBMYXlvdXRUeXBlIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xheW91dFR5cGU7XG4gICAgfVxuXG4gICAgQElucHV0KCkgY3VyckluZGV4ID0gMDtcbiAgICBASW5wdXQoKSBzaG93VGh1bWJuYWlscyA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZCgnZ2FsbGVyeUNvbnQnKSBnYWxsZXJ5Q29udDogRWxlbWVudFJlZjtcbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5RGlhbG9nVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgZ2FsbGVyeURpYWxvZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICAgIEBWaWV3Q2hpbGQoJ2dhbGxlcnlEaWFsb2dDb250JykgZ2FsbGVyeURpYWxvZ0NvbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICBjb25maWc6IEdhbGxlcnlDb25maWc7XG4gICAgaXRlbXM6IEdhbGxlcnlJdGVtW10gPSBudWxsO1xuICAgIGluRGlhbG9nID0gZmFsc2U7XG4gICAgc2hvd0Zvb3RlciA9IGZhbHNlO1xuICAgIHNob3dDbG9zZSA9IHRydWU7XG4gICAgXG4gICAgbWFuZGF0b3J5ID0gZmFsc2U7XG4gICAgcmVhZG9ubHkgPSBmYWxzZTtcbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIGZpZWxkSGVpZ2h0ID0gJyc7XG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuXG4gICAgZ2FsbGVyeVdpZHRoID0gMDtcbiAgICBnYWxsZXJ5SGVpZ2h0O1xuICAgIGlzVmVydGljYWwgPSBmYWxzZTtcbiAgICBnYWxsZXJ5UmVmOiBHYWxsZXJ5UmVmO1xuICAgIGRpYWxvZ0dhbGxlcnlSZWY6IEdhbGxlcnlSZWY7XG4gICAgZ3VpZDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBlbmxhcmdlSW1hZ2VEaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY3VzdG9taXphdGlvblNlcnZpY2U6IFBlcEN1c3RvbWl6YXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1NlcnZpY2U6IFBlcERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgbGF5b3V0U2VydmljZTogUGVwTGF5b3V0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBmaWxlU2VydmljZTogUGVwRmlsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgaWNvblJlZ2lzdHJ5OiBQZXBJY29uUmVnaXN0cnksXG4gICAgICAgIHByaXZhdGUgdXRpbGl0aWVzU2VydmljZTogUGVwVXRpbGl0aWVzU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBnYWxsZXJ5OiBHYWxsZXJ5LFxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IGFueSxcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxQZXBJbWFnZXNGaWxtc3RyaXBDb21wb25lbnQ+LFxuICAgICAgICBAT3B0aW9uYWwoKVxuICAgICAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSlcbiAgICAgICAgcHJpdmF0ZSBkYXRhOiBJUGVwSW1hZ2VzRmlsbXN0cmlwRGlhbG9nRGF0YVxuICAgICkge1xuICAgICAgICAvLyBJZiBkYXRhIGV4aXN0IGNvcHkgYWxsIGRhdGEgcHJvcGVydGllcyBpbnRvIHRoaXMuXG4gICAgICAgIGlmIChkaWFsb2dSZWYgJiYgZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5pbkRpYWxvZyA9IHRydWU7XG5cbiAgICAgICAgICAgIE9iamVjdC5rZXlzKGRhdGEpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChrZXkgaW4gdGhpcykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBkYXRhW2tleV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbmZpZyA9IHtcbiAgICAgICAgICAgIG5hdjogZmFsc2UsIC8vIFNob3cgbmF2aWdhdGlvbiBidXR0b25zXG4gICAgICAgICAgICAvLyBuYXZJY29uOiBwZXBJY29uQXJyb3dSaWdodEFsdC5kYXRhLFxuICAgICAgICAgICAgLy8gbG9vcDogdHJ1ZSxcbiAgICAgICAgICAgIC8vIHpvb21PdXQ6IDAsXG4gICAgICAgICAgICAvLyBkb3RzOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIGRvdHNQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgICAgICAvLyBjb3VudGVyUG9zaXRpb246ICd0b3AnLFxuICAgICAgICAgICAgLy8gdGh1bWI6IHRydWUsXG4gICAgICAgICAgICBjb3VudGVyOiBmYWxzZSwgLy8gU2hvdyBjb3VudGVyXG4gICAgICAgICAgICBnZXN0dXJlczogdHJ1ZSwgLy8gVXNlIHRvdWNoIGV2ZW50cyAocmVxdWlyZXMgaGFtbWVyLmpzKVxuICAgICAgICAgICAgLy8gYXV0b1BsYXk6IGZhbHNlLFxuICAgICAgICAgICAgLy8gdGh1bWJXaWR0aDogMTIwLFxuICAgICAgICAgICAgLy8gdGh1bWJIZWlnaHQ6IDkwLFxuICAgICAgICAgICAgaW1hZ2VTaXplOiAnY29udGFpbicsXG4gICAgICAgICAgICAvLyBwYW5TZW5zaXRpdml0eTogMjUsXG4gICAgICAgICAgICAvLyBkaXNhYmxlVGh1bWI6IGZhbHNlLFxuICAgICAgICAgICAgLy8gcGxheWVySW50ZXJ2YWw6IDMwMDAsXG4gICAgICAgICAgICAvLyB0aHVtYk1vZGU6IFRodW1ibmFpbHNNb2RlLkZyZWUsXG4gICAgICAgICAgICAvLyB0aHVtYlBvc2l0aW9uOiBUaHVtYm5haWxzUG9zaXRpb24uQm90dG9tLFxuICAgICAgICAgICAgbG9hZGluZ1N0cmF0ZWd5OiBMb2FkaW5nU3RyYXRlZ3kuUHJlbG9hZCxcbiAgICAgICAgICAgIC8vIHNsaWRpbmdEaXJlY3Rpb246IFNsaWRpbmdEaXJlY3Rpb24uSG9yaXpvbnRhbCxcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmd1aWQgPSBQZXBHdWlkLm5ld0d1aWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEZpZWxkSGVpZ2h0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpZWxkSGVpZ2h0ID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5jYWxjdWxhdGVGaWVsZEhlaWdodChcbiAgICAgICAgICAgIHRoaXMubGF5b3V0VHlwZSxcbiAgICAgICAgICAgIHRoaXMucm93U3BhbixcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdEZvcm0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHBlcEZpZWxkID0gbmV3IFBlcEltYWdlc0ZpZWxkKHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdGhpcy5tYW5kYXRvcnksXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHBlcEZpZWxkKTtcbiAgICB9XG5cbiAgICAvLyBwcml2YXRlIHJlbmRlck5hdkljb24oZ2FsbGVyeUNvbnRhaW5lciwgaXNMZWZ0OiBib29sZWFuKSB7XG4gICAgLy8gICAgIGxldCBpY29uTmFtZSA9IGlzTGVmdCA/IHBlcEljb25BcnJvd0xlZnRBbHQubmFtZSA6IHBlcEljb25BcnJvd1JpZ2h0QWx0Lm5hbWU7XG4gICAgLy8gICAgIGNvbnN0IHN2Z0RhdGEgPSB0aGlzLmljb25SZWdpc3RyeS5nZXRJY29uKGljb25OYW1lKTtcbiAgICAvLyAgICAgY29uc3Qgc3ZnSWNvbiA9IHRoaXMudXRpbGl0aWVzU2VydmljZS5nZXRTdmdFbGVtZW50RnJvbVN0cmluZyhcbiAgICAvLyAgICAgICAgIHRoaXMuZG9jdW1lbnQsXG4gICAgLy8gICAgICAgICBzdmdEYXRhXG4gICAgLy8gICAgICk7XG5cbiAgICAvLyAgICAgY29uc3QgZWxlbWVudE5hbWVUb0ZpbmQgPSBpc0xlZnQgPyAnZy1uYXYtcHJldicgOiAnZy1uYXYtbmV4dCdcblxuICAgIC8vICAgICBjb25zdCBlbGVtZW50QXJyID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke2VsZW1lbnROYW1lVG9GaW5kfWApO1xuICAgIC8vICAgICBpZiAoZWxlbWVudEFyciAmJiBlbGVtZW50QXJyLmxlbmd0aCA+IDApIHtcbiAgICAvLyAgICAgICAgIGVsZW1lbnRBcnJbMF0uYXBwZW5kQ2hpbGQoc3ZnSWNvbik7XG4gICAgLy8gICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHN2Z0ljb24sICdzdmctaWNvbicpO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5pbkRpYWxvZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRGaWVsZEhlaWdodCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5yZW5kZXJUaXRsZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9OT19TUEFDSU5HX0NMQVNTX05BTUVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pdGVtcyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgaW1nQXJyID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUuc3BsaXQoJzsnKSA6IFtdO1xuICAgICAgICAgICAgLy8gYWRkIE5vIGltYWdlIGltYWdlIHdoZW4gdGhlcmUgaXMgbm8gaW1hZ2VzXG4gICAgICAgICAgICBpZiAoaW1nQXJyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICAgICAgICAgIHBlcEljb25Ob0ltYWdlMi5kYXRhXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpbWdBcnIucHVzaChub0ltYWdlU3JjKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5pdGVtcyA9IGltZ0Fyci5tYXAoXG4gICAgICAgICAgICAgICAgKGltZykgPT4gbmV3IEltYWdlSXRlbSh7IHNyYzogaW1nLCB0aHVtYjogaW1nIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcuZG90cyA9IHRoaXMuY29uZmlnLm5hdiA9IHRoaXMuaXRlbXMubGVuZ3RoID4gMTtcbiAgICAgICAgdGhpcy5jb25maWcudGh1bWIgPVxuICAgICAgICAgICAgKHRoaXMua2V5ID09PSAnSXRlbUZpbG1zdHJpcEltYWdlcycgfHwgdGhpcy5zaG93VGh1bWJuYWlscykgJiZcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICA/IHRydWVcbiAgICAgICAgICAgICAgICA6IGZhbHNlO1xuICAgICAgICB0aGlzLmN1cnJJbmRleCA9XG4gICAgICAgICAgICB0aGlzLmtleSA9PT0gJ0l0ZW1GaWxtc3RyaXBJbWFnZXMnICYmXG4gICAgICAgICAgICAgICAgdGhpcy5jdXJySW5kZXggPT09IDAgJiZcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgICA/IE1hdGguZmxvb3IodGhpcy5pdGVtcy5sZW5ndGggLyAyKSAtIDFcbiAgICAgICAgICAgICAgICA6IHRoaXMuY3VyckluZGV4O1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJEaWFsb2dPcGVuZWQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeVJlZiA9IHRoaXMuZ2FsbGVyeS5yZWYoXG4gICAgICAgICAgICAgICAgYCR7dGhpcy5ndWlkfS1nYWxsZXJ5YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdEdhbGxlcnlTdHlsZSh0aGlzLmdhbGxlcnlDb250LCB0aGlzLmdhbGxlcnlSZWYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0YW5kQWxvbmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5nYWxsZXJ5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpYWxvZ0dhbGxlcnlSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nR2FsbGVyeVJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKHRoaXMubXlQaW5jaCkgeyB0aGlzLm15UGluY2guZGVzdHJveSgpOyB9XG4gICAgfVxuXG4gICAgaW5pdEdhbGxlcnlTdHlsZShnYWxsZXJ5Q29udGFpbmVyLCBnYWxsZXJ5UmVmKTogdm9pZCB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gU2V0IHRodW1ibmFpbHMgcG9zaXRpb24gYW5kIHNsaWRpbmcgZGlyZWN0aW9uXG4gICAgICAgICAgICB0aGlzLnNldFRodW1ibmFpbERpbWVuc2lvbihnYWxsZXJ5Q29udGFpbmVyKTtcbiAgICAgICAgICAgIGdhbGxlcnlSZWYuc2V0Q29uZmlnKHRoaXMuY29uZmlnKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyTmF2SWNvbihnYWxsZXJ5Q29udGFpbmVyLCB0cnVlKTtcbiAgICAgICAgICAgIC8vIHRoaXMucmVuZGVyTmF2SWNvbihnYWxsZXJ5Q29udGFpbmVyLCBmYWxzZSk7XG4gICAgICAgIH0sIDApO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuY3VyckluZGV4O1xuICAgICAgICBpZiAoY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZ2FsbGVyeVJlZi5sb2FkKHRoaXMuaXRlbXMpO1xuICAgICAgICAgICAgICAgIGdhbGxlcnlSZWYuc2V0KGN1cnJlbnRJbmRleCk7XG4gICAgICAgICAgICB9LCAwKTtcbiAgICAgICAgICAgIC8vIGdhbGxlcnlSZWYuc2V0KGN1cnJlbnRJbmRleCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBnYWxsZXJ5UmVmLmxvYWQodGhpcy5pdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkVycm9yKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgbm9JbWFnZVNyYyA9IHRoaXMuZmlsZVNlcnZpY2UuZ2V0U3ZnQXNJbWFnZVNyYyhcbiAgICAgICAgICAgIHBlcEljb25Ob0ltYWdlMi5kYXRhXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5vaW1nID0gbmV3IEltYWdlSXRlbSh7IHNyYzogbm9JbWFnZVNyYywgdGh1bWI6IG5vSW1hZ2VTcmMgfSk7XG4gICAgICAgIHRoaXMuaXRlbXMuc3BsaWNlKGUuaXRlbUluZGV4LCAxLCBub2ltZyk7XG4gICAgfVxuXG4gICAgZW5sYXJnZUltYWdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldERpYWxvZ0NvbmZpZyh7fSwgJ2lubGluZScpO1xuICAgICAgICBjb25maWcubWF4V2lkdGggPSAnNzV2dyc7XG4gICAgICAgIGNvbmZpZy5oZWlnaHQgPSAnOTV2aCc7XG5cbiAgICAgICAgdGhpcy5lbmxhcmdlSW1hZ2VEaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcbiAgICAgICAgICAgIHRoaXMuZ2FsbGVyeURpYWxvZ1RlbXBsYXRlLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGN1cnJJbmRleDogdGhpcy5jdXJySW5kZXgsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29uZmlnXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5lbmxhcmdlSW1hZ2VEaWFsb2dSZWYuYWZ0ZXJPcGVuZWQoKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5hZnRlckRpYWxvZ09wZW5lZCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBVcGRhdGUgY3VycmVudEluZGV4IGluIGdhbGxlcnlSZWZcbiAgICAgICAgLy8gZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgICAgLy8gICAgIHRoaXMuZ2FsbGVyeVJlZi5zZXQodGhpcy5jdXJySW5kZXgpO1xuICAgICAgICAvLyB9KTtcbiAgICB9XG5cbiAgICBhZnRlckRpYWxvZ09wZW5lZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kaWFsb2dHYWxsZXJ5UmVmID0gdGhpcy5nYWxsZXJ5LnJlZihcbiAgICAgICAgICAgIGAke3RoaXMuZ3VpZH0tZGxnR2FsbGVyeWBcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pbml0R2FsbGVyeVN0eWxlKHRoaXMuZ2FsbGVyeURpYWxvZ0NvbnQsIHRoaXMuZGlhbG9nR2FsbGVyeVJlZik7XG4gICAgfVxuXG4gICAgY2xvc2VEaWFsb2coZXZlbnQpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmPy5jbG9zZShldmVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVubGFyZ2VJbWFnZURpYWxvZ1JlZj8uY2xvc2UoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc2V0VGh1bWJuYWlsRGltZW5zaW9uKGdhbGxlcnlDb250YWluZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5nYWxsZXJ5V2lkdGggPSBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgIC8vIHRoaXMuZ2FsbGVyeUhlaWdodCA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMjsgLy8gVE9ETyAtIFRBTEsgV0lUSCBUT01FUlxuICAgICAgICB0aGlzLmdhbGxlcnlIZWlnaHQgPSB0aGlzLmluRGlhbG9nXG4gICAgICAgICAgICA/IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHQgLSAzMlxuICAgICAgICAgICAgOiBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgICAgICAvLyB0aGlzLmdhbGxlcnlIZWlnaHQgPSBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzI7XG4gICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgICAgIHRoaXMuaXNWZXJ0aWNhbCA9IHRoaXMuZ2FsbGVyeVdpZHRoIDwgdGhpcy5nYWxsZXJ5SGVpZ2h0O1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgaWYgKHRoaXMuaXNWZXJ0aWNhbCkge1xuICAgICAgICAgICAgbGV0IHdpZHRoID1cbiAgICAgICAgICAgICAgICAodGhpcy5nYWxsZXJ5V2lkdGggLSAodGhpcy5pdGVtcy5sZW5ndGggLSAxKSAqIDE2KSAvXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICB3aWR0aCA9IE1hdGgubWluKE1hdGgubWF4KHdpZHRoLCAyNCksIDk2KTtcblxuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJIZWlnaHQgPSB3aWR0aDtcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iV2lkdGggPSB3aWR0aCArIDE2O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGhlaWdodCA9XG4gICAgICAgICAgICAgICAgKHRoaXMuZ2FsbGVyeUhlaWdodCAtICh0aGlzLml0ZW1zLmxlbmd0aCAtIDEpICogMTYpIC9cbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zLmxlbmd0aDtcbiAgICAgICAgICAgIGhlaWdodCA9IE1hdGgubWluKE1hdGgubWF4KGhlaWdodCwgMjQpLCA5Nik7XG5cbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iSGVpZ2h0ID0gaGVpZ2h0ICsgMTY7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYldpZHRoID0gaGVpZ2h0O1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcudGh1bWJQb3NpdGlvbiA9IHRoaXMuaXNWZXJ0aWNhbFxuICAgICAgICAgICAgPyBUaHVtYm5haWxzUG9zaXRpb24uQm90dG9tXG4gICAgICAgICAgICA6IHRoaXMubGF5b3V0U2VydmljZS5pc1J0bCgpXG4gICAgICAgICAgICAgICAgPyBUaHVtYm5haWxzUG9zaXRpb24uUmlnaHRcbiAgICAgICAgICAgICAgICA6IFRodW1ibmFpbHNQb3NpdGlvbi5MZWZ0O1xuICAgICAgICB0aGlzLmNvbmZpZy5zbGlkaW5nRGlyZWN0aW9uID1cbiAgICAgICAgICAgIHRoaXMua2V5ICE9PSAnSXRlbUZpbG1zdHJpcEltYWdlcydcbiAgICAgICAgICAgICAgICA/IFNsaWRpbmdEaXJlY3Rpb24uSG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgIDogdGhpcy5pc1ZlcnRpY2FsXG4gICAgICAgICAgICAgICAgICAgID8gU2xpZGluZ0RpcmVjdGlvbi5Ib3Jpem9udGFsXG4gICAgICAgICAgICAgICAgICAgIDogU2xpZGluZ0RpcmVjdGlvbi5WZXJ0aWNhbDtcblxuICAgICAgICB0aGlzLmNvbmZpZy5pbWFnZVNpemUgPSAnY29udGFpbic7XG4gICAgfVxuXG4gICAgaW5kZXhDaGFuZ2UoaXRlbTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VyckluZGV4ID0gaXRlbS5jdXJySW5kZXg7XG4gICAgICAgIC8vIGlmICh0aGlzLm5neFZpZXdlckltYWdlICYmIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPSAxO1xuICAgICAgICAvLyAgICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG5cbiAgICAvLyBzY3JvbGxGdW5jdGlvbihlOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyAgICAgZS5kZWx0YVkgPiAwID8gdGhpcy56b29tT3V0KCkgOiB0aGlzLnpvb21JbigpO1xuICAgIC8vICAgICByZXR1cm4gZmFsc2U7XG4gICAgLy8gfVxuXG4gICAgLy8gem9vbUluKCk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA8IDIpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgKj0gKDEgKyB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPSAyO1xuICAgIC8vICAgICB9XG4gICAgLy8gICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyB6b29tT3V0KCk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZS5zY2FsZSA+IHRoaXMubmd4Vmlld2VySW1hZ2UuY29uZmlnLnpvb21GYWN0b3IpIHtcbiAgICAvLyAgICAgICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgLz0gKDEgKyB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKTtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gcHJpdmF0ZSB1cGRhdGVTdHlsZSgpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5zdHlsZS50cmFuc2Zvcm0gPSBgdHJhbnNsYXRlKCR7dGhpcy5uZ3hWaWV3ZXJJbWFnZS50cmFuc2xhdGVYfXB4LFxuICAgIC8vICAgICAgICAgJHt0aGlzLm5neFZpZXdlckltYWdlLnRyYW5zbGF0ZVl9cHgpIHJvdGF0ZSgke3RoaXMubmd4Vmlld2VySW1hZ2Uucm90YXRpb259ZGVnKSBzY2FsZSgke3RoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGV9KWA7XG5cbiAgICAvLyAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgLy8gfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImluRGlhbG9nOyB0aGVuIGdhbGxlcnlEaWFsb2dUZW1wbGF0ZTsgZWxzZSByZWd1bGFyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbjxuZy10ZW1wbGF0ZSAjcmVndWxhclRlbXBsYXRlPlxuICAgIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZXMtZmlsbXN0cmlwLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHBlcC1maWVsZC10aXRsZSAqbmdJZj1cInJlbmRlclRpdGxlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3hBbGlnbm1lbnRdPVwieEFsaWdubWVudFwiIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCI+XG4gICAgICAgICAgICA8L3BlcC1maWVsZC10aXRsZT5cbiAgICAgICAgICAgIDxkaXYgI2dhbGxlcnlDb250IGNsYXNzPVwiaW1nLXdyYXBwZXJcIiBbbmdDbGFzc109XCJpc1ZlcnRpY2FsID8gJ3ZlcnRpY2FsLWdhbGxlcnknIDogJ2hvcml6b250YWwtZ2FsbGVyeSdcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiZmllbGRIZWlnaHRcIj5cbiAgICAgICAgICAgICAgICA8cGVwLWJ1dHRvbiAqbmdJZj1cIml0ZW1zPy5sZW5ndGggPiAxXCIgaWNvbk5hbWU9XCJhcnJvd19sZWZ0X2FsdFwiIHN0eWxlVHlwZT1cIndlYWstaW52ZXJ0XCIgc2l6ZVR5cGU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmb3JtR2FsbGVyeS5wcmV2KClcIiBjbGFzcz1cImdhbGxlcnktYXJyb3cgc3RhcnQtYXJyb3dcIj5cbiAgICAgICAgICAgICAgICA8L3BlcC1idXR0b24+XG4gICAgICAgICAgICAgICAgPGdhbGxlcnkgI2Zvcm1HYWxsZXJ5IGlkPVwie3tndWlkfX0tZ2FsbGVyeVwiIChpdGVtQ2xpY2spPVwiZW5sYXJnZUltYWdlKCRldmVudCk7XCIgW2ltYWdlU2l6ZV09XCInY29udGFpbidcIlxuICAgICAgICAgICAgICAgICAgICAoaW5kZXhDaGFuZ2UpPVwiaW5kZXhDaGFuZ2UoJGV2ZW50KVwiIChlcnJvcik9XCJvbkVycm9yKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICA8L2dhbGxlcnk+XG4gICAgICAgICAgICAgICAgPHBlcC1idXR0b24gKm5nSWY9XCJpdGVtcz8ubGVuZ3RoID4gMVwiIGljb25OYW1lPVwiYXJyb3dfcmlnaHRfYWx0XCIgc3R5bGVUeXBlPVwid2Vhay1pbnZlcnRcIiBzaXplVHlwZT1cInNtXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZvcm1HYWxsZXJ5Lm5leHQoKVwiIGNsYXNzPVwiZ2FsbGVyeS1hcnJvdyBlbmQtYXJyb3dcIj5cbiAgICAgICAgICAgICAgICA8L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2dhbGxlcnlEaWFsb2dUZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiZ2FsbGVyeS1kaWFsb2dcIj5cbiAgICAgICAgPHBlcC1kaWFsb2cgW3RpdGxlXT1cImxhYmVsXCIgW3Nob3dGb290ZXJdPVwic2hvd0Zvb3RlclwiIFtzaG93Q2xvc2VdPVwic2hvd0Nsb3NlXCIgIChjbG9zZSk9XCJjbG9zZURpYWxvZygkZXZlbnQpXCI+XG4gICAgICAgICAgICA8ZGl2IHBlcC1kaWFsb2ctY29udGVudCAjZ2FsbGVyeURpYWxvZ0NvbnQgY2xhc3M9XCJnYWxsZXJ5LWRpYWxvZy1jb250ZW50XCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJpc1ZlcnRpY2FsID8gJ3ZlcnRpY2FsLWdhbGxlcnknIDogJ2hvcml6b250YWwtZ2FsbGVyeSdcIj5cbiAgICAgICAgICAgICAgICA8cGVwLWJ1dHRvbiAqbmdJZj1cIml0ZW1zPy5sZW5ndGggPiAxXCIgaWNvbk5hbWU9XCJhcnJvd19sZWZ0X2FsdFwiIHN0eWxlVHlwZT1cIndlYWstaW52ZXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRpYWxvZ0dhbGxlcnkucHJldigpXCIgY2xhc3M9XCJnYWxsZXJ5LWFycm93IHN0YXJ0LWFycm93XCI+XG4gICAgICAgICAgICAgICAgPC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxnYWxsZXJ5ICNkaWFsb2dHYWxsZXJ5IGlkPVwie3tndWlkfX0tZGxnR2FsbGVyeVwiIFtpbWFnZVNpemVdPVwiJ2NvbnRhaW4nXCJcbiAgICAgICAgICAgICAgICAgICAgKGluZGV4Q2hhbmdlKT1cImluZGV4Q2hhbmdlKCRldmVudClcIiAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9nYWxsZXJ5PlxuICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uICpuZ0lmPVwiaXRlbXM/Lmxlbmd0aCA+IDFcIiBpY29uTmFtZT1cImFycm93X3JpZ2h0X2FsdFwiIHN0eWxlVHlwZT1cIndlYWstaW52ZXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRpYWxvZ0dhbGxlcnkubmV4dCgpXCIgY2xhc3M9XCJnYWxsZXJ5LWFycm93IGVuZC1hcnJvd1wiPlxuICAgICAgICAgICAgICAgIDwvcGVwLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3BlcC1kaWFsb2c+XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPiJdfQ==
|
|
337
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL2ltYWdlcy1maWxtc3RyaXAvaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFNBQVMsRUFLVCxLQUFLLEVBQ0wsV0FBVyxFQUdYLE1BQU0sRUFDTixRQUFRLEdBR1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGVBQWUsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBR0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixrQkFBa0IsRUFFbEIsU0FBUyxHQUVaLE1BQU0sWUFBWSxDQUFDO0FBQ3BCLE9BQU8sRUFDSCx1QkFBdUIsRUFLdkIsNEJBQTRCLEVBQzVCLGNBQWMsRUFFZCxPQUFPLEVBQ1YsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRWhGLE9BQU8sVUFBVSxDQUFDO0FBWWxCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPM0MsTUFBTSxPQUFPLDJCQUEyQjtJQStEcEMsWUFDWSxvQkFBNkMsRUFDN0MsYUFBK0IsRUFDL0IsYUFBK0IsRUFDL0IsV0FBMkIsRUFDM0IsWUFBNkIsRUFDN0IsZ0JBQXFDLEVBQ3JDLE9BQWdCLEVBQ2hCLFFBQW1CLEVBQ25CLE9BQW1CLEVBQ25CLEVBQXFCLEVBQ1MsUUFBYSxFQUUzQyxTQUFvRCxFQUdwRCxJQUFtQztRQWZuQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXlCO1FBQzdDLGtCQUFhLEdB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MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxlQUFlOzRDQTVFbEIsR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFJRixPQUFPO3NCQURWLEtBQUs7Z0JBV0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBSUYsVUFBVTtzQkFEYixLQUFLO2dCQVNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFFb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUV4QixxQkFBcUI7c0JBRHBCLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO2dCQUV6QixpQkFBaUI7c0JBQWhELFNBQVM7dUJBQUMsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0NoaWxkLFxuICAgIE9uSW5pdCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFJlbmRlcmVyMixcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBJbmplY3QsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPbkNoYW5nZXMsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHtcbiAgICBHYWxsZXJ5LFxuICAgIEdhbGxlcnlDb25maWcsXG4gICAgTG9hZGluZ1N0cmF0ZWd5LFxuICAgIFNsaWRpbmdEaXJlY3Rpb24sXG4gICAgVGh1bWJuYWlsc1Bvc2l0aW9uLFxuICAgIEdhbGxlcnlJdGVtLFxuICAgIEltYWdlSXRlbSxcbiAgICBHYWxsZXJ5UmVmLFxufSBmcm9tICduZy1nYWxsZXJ5JztcbmltcG9ydCB7XG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBMYXlvdXRTZXJ2aWNlLFxuICAgIFBlcEZpbGVTZXJ2aWNlLFxuICAgIFBlcEhvcml6b250YWxBbGlnbm1lbnQsXG4gICAgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVCxcbiAgICBQZXBJbWFnZXNGaWVsZCxcbiAgICBQZXBVdGlsaXRpZXNTZXJ2aWNlLFxuICAgIFBlcEd1aWRcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwRGlhbG9nU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RpYWxvZyc7XG5pbXBvcnQgeyBQZXBJY29uUmVnaXN0cnksIHBlcEljb25Ob0ltYWdlMiB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuXG5pbXBvcnQgJ2hhbW1lcmpzJztcblxuaW50ZXJmYWNlIElQZXBJbWFnZXNGaWxtc3RyaXBEaWFsb2dEYXRhIHtcbiAgICBjdXJySW5kZXg6IG51bWJlcjtcbiAgICBrZXk6IHN0cmluZztcbiAgICB2YWx1ZTogc3RyaW5nO1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgc2hvd0Zvb3RlcjogYm9vbGVhbjtcbiAgICB1aWQ6IHN0cmluZztcbiAgICBzaG93VGh1bWJuYWlsczogYm9vbGVhbjtcbn1cblxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1pbWFnZXMtZmlsbXN0cmlwJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW1hZ2VzLWZpbG1zdHJpcC5jb21wb25lbnQuc2NzcycsICcuL2ltYWdlcy1maWxtc3RyaXAuY29tcG9uZW50LnRoZW1lLnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBASW5wdXQoKSBrZXkgPSAnJztcbiAgICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG5cbiAgICBwcml2YXRlIF9yb3dTcGFuID0gMTA7XG4gICAgQElucHV0KClcbiAgICBzZXQgcm93U3Bhbih2YWx1ZSkge1xuICAgICAgICB0aGlzLl9yb3dTcGFuID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IHJvd1NwYW4oKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvd1NwYW47XG4gICAgfVxuXG4gICAgY29udHJvbFR5cGUgPSAnaW1hZ2VzJztcblxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgQElucHV0KCkgdWlkID0gJzAnO1xuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcblxuICAgIHByaXZhdGUgX2xheW91dFR5cGU6IFBlcExheW91dFR5cGUgPSAnZm9ybSc7XG4gICAgQElucHV0KClcbiAgICBzZXQgbGF5b3V0VHlwZSh2YWx1ZTogUGVwTGF5b3V0VHlwZSkge1xuICAgICAgICB0aGlzLl9sYXlvdXRUeXBlID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICB9XG4gICAgZ2V0IGxheW91dFR5cGUoKTogUGVwTGF5b3V0VHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sYXlvdXRUeXBlO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGN1cnJJbmRleCA9IDA7XG4gICAgQElucHV0KCkgc2hvd1RodW1ibmFpbHMgPSBmYWxzZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2dhbGxlcnlDb250JykgZ2FsbGVyeUNvbnQ6IEVsZW1lbnRSZWY7XG4gICAgQFZpZXdDaGlsZCgnZ2FsbGVyeURpYWxvZ1RlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGdhbGxlcnlEaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5RGlhbG9nQ29udCcpIGdhbGxlcnlEaWFsb2dDb250OiBFbGVtZW50UmVmO1xuXG4gICAgY29uZmlnOiBHYWxsZXJ5Q29uZmlnO1xuICAgIGl0ZW1zOiBHYWxsZXJ5SXRlbVtdID0gbnVsbDtcbiAgICBpbkRpYWxvZyA9IGZhbHNlO1xuICAgIHNob3dGb290ZXIgPSBmYWxzZTtcbiAgICBzaG93Q2xvc2UgPSB0cnVlO1xuICAgIFxuICAgIG1hbmRhdG9yeSA9IGZhbHNlO1xuICAgIHJlYWRvbmx5ID0gZmFsc2U7XG4gICAgZGlzYWJsZWQgPSBmYWxzZTtcbiAgICBmaWVsZEhlaWdodCA9ICcnO1xuICAgIHN0YW5kQWxvbmUgPSBmYWxzZTtcblxuICAgIGdhbGxlcnlXaWR0aCA9IDA7XG4gICAgZ2FsbGVyeUhlaWdodDtcbiAgICBpc1ZlcnRpY2FsID0gZmFsc2U7XG4gICAgZ2FsbGVyeVJlZjogR2FsbGVyeVJlZjtcbiAgICBkaWFsb2dHYWxsZXJ5UmVmOiBHYWxsZXJ5UmVmO1xuICAgIGd1aWQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgZW5sYXJnZUltYWdlRGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBQZXBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGxheW91dFNlcnZpY2U6IFBlcExheW91dFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmlsZVNlcnZpY2U6IFBlcEZpbGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5LFxuICAgICAgICBwcml2YXRlIHV0aWxpdGllc1NlcnZpY2U6IFBlcFV0aWxpdGllc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZ2FsbGVyeTogR2FsbGVyeSxcbiAgICAgICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnksXG4gICAgICAgIEBPcHRpb25hbCgpXG4gICAgICAgIHByaXZhdGUgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8UGVwSW1hZ2VzRmlsbXN0cmlwQ29tcG9uZW50PixcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgICAgIHByaXZhdGUgZGF0YTogSVBlcEltYWdlc0ZpbG1zdHJpcERpYWxvZ0RhdGFcbiAgICApIHtcbiAgICAgICAgLy8gSWYgZGF0YSBleGlzdCBjb3B5IGFsbCBkYXRhIHByb3BlcnRpZXMgaW50byB0aGlzLlxuICAgICAgICBpZiAoZGlhbG9nUmVmICYmIGRhdGEpIHtcbiAgICAgICAgICAgIHRoaXMuaW5EaWFsb2cgPSB0cnVlO1xuXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhkYXRhKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gZGF0YVtrZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jb25maWcgPSB7XG4gICAgICAgICAgICBuYXY6IGZhbHNlLCAvLyBTaG93IG5hdmlnYXRpb24gYnV0dG9uc1xuICAgICAgICAgICAgLy8gbmF2SWNvbjogcGVwSWNvbkFycm93UmlnaHRBbHQuZGF0YSxcbiAgICAgICAgICAgIC8vIGxvb3A6IHRydWUsXG4gICAgICAgICAgICAvLyB6b29tT3V0OiAwLFxuICAgICAgICAgICAgLy8gZG90czogZmFsc2UsXG4gICAgICAgICAgICAvLyBkb3RzUG9zaXRpb246ICdib3R0b20nLFxuICAgICAgICAgICAgLy8gY291bnRlclBvc2l0aW9uOiAndG9wJyxcbiAgICAgICAgICAgIC8vIHRodW1iOiB0cnVlLFxuICAgICAgICAgICAgY291bnRlcjogZmFsc2UsIC8vIFNob3cgY291bnRlclxuICAgICAgICAgICAgZ2VzdHVyZXM6IHRydWUsIC8vIFVzZSB0b3VjaCBldmVudHMgKHJlcXVpcmVzIGhhbW1lci5qcylcbiAgICAgICAgICAgIC8vIGF1dG9QbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIC8vIHRodW1iV2lkdGg6IDEyMCxcbiAgICAgICAgICAgIC8vIHRodW1iSGVpZ2h0OiA5MCxcbiAgICAgICAgICAgIGltYWdlU2l6ZTogJ2NvbnRhaW4nLFxuICAgICAgICAgICAgLy8gcGFuU2Vuc2l0aXZpdHk6IDI1LFxuICAgICAgICAgICAgLy8gZGlzYWJsZVRodW1iOiBmYWxzZSxcbiAgICAgICAgICAgIC8vIHBsYXllckludGVydmFsOiAzMDAwLFxuICAgICAgICAgICAgLy8gdGh1bWJNb2RlOiBUaHVtYm5haWxzTW9kZS5GcmVlLFxuICAgICAgICAgICAgLy8gdGh1bWJQb3NpdGlvbjogVGh1bWJuYWlsc1Bvc2l0aW9uLkJvdHRvbSxcbiAgICAgICAgICAgIGxvYWRpbmdTdHJhdGVneTogTG9hZGluZ1N0cmF0ZWd5LlByZWxvYWQsXG4gICAgICAgICAgICAvLyBzbGlkaW5nRGlyZWN0aW9uOiBTbGlkaW5nRGlyZWN0aW9uLkhvcml6b250YWwsXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5ndWlkID0gUGVwR3VpZC5uZXdHdWlkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRGaWVsZEhlaWdodCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWVsZEhlaWdodCA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuY2FsY3VsYXRlRmllbGRIZWlnaHQoXG4gICAgICAgICAgICB0aGlzLmxheW91dFR5cGUsXG4gICAgICAgICAgICB0aGlzLnJvd1NwYW4sXG4gICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmVcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBJbWFnZXNGaWVsZCh7XG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxuICAgICAgICAgICAgdmFsdWU6IHRoaXMudmFsdWUsXG4gICAgICAgICAgICBtYW5kYXRvcnk6IHRoaXMubWFuZGF0b3J5LFxuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXG4gICAgICAgICAgICBkaXNhYmxlZDogdGhpcy5kaXNhYmxlZCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEZyb21Hcm91cChwZXBGaWVsZCk7XG4gICAgfVxuXG4gICAgLy8gcHJpdmF0ZSByZW5kZXJOYXZJY29uKGdhbGxlcnlDb250YWluZXIsIGlzTGVmdDogYm9vbGVhbikge1xuICAgIC8vICAgICBsZXQgaWNvbk5hbWUgPSBpc0xlZnQgPyBwZXBJY29uQXJyb3dMZWZ0QWx0Lm5hbWUgOiBwZXBJY29uQXJyb3dSaWdodEFsdC5uYW1lO1xuICAgIC8vICAgICBjb25zdCBzdmdEYXRhID0gdGhpcy5pY29uUmVnaXN0cnkuZ2V0SWNvbihpY29uTmFtZSk7XG4gICAgLy8gICAgIGNvbnN0IHN2Z0ljb24gPSB0aGlzLnV0aWxpdGllc1NlcnZpY2UuZ2V0U3ZnRWxlbWVudEZyb21TdHJpbmcoXG4gICAgLy8gICAgICAgICB0aGlzLmRvY3VtZW50LFxuICAgIC8vICAgICAgICAgc3ZnRGF0YVxuICAgIC8vICAgICApO1xuXG4gICAgLy8gICAgIGNvbnN0IGVsZW1lbnROYW1lVG9GaW5kID0gaXNMZWZ0ID8gJ2ctbmF2LXByZXYnIDogJ2ctbmF2LW5leHQnXG5cbiAgICAvLyAgICAgY29uc3QgZWxlbWVudEFyciA9IGdhbGxlcnlDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKGAuJHtlbGVtZW50TmFtZVRvRmluZH1gKTtcbiAgICAvLyAgICAgaWYgKGVsZW1lbnRBcnIgJiYgZWxlbWVudEFyci5sZW5ndGggPiAwKSB7XG4gICAgLy8gICAgICAgICBlbGVtZW50QXJyWzBdLmFwcGVuZENoaWxkKHN2Z0ljb24pO1xuICAgIC8vICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhzdmdJY29uLCAnc3ZnLWljb24nKTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaW5EaWFsb2cpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZvcm0gPT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmUgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RmllbGRIZWlnaHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfQ0xBU1NfTkFNRVxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXRlbXMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGltZ0FyciA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlLnNwbGl0KCc7JykgOiBbXTtcbiAgICAgICAgICAgIC8vIGFkZCBObyBpbWFnZSBpbWFnZSB3aGVuIHRoZXJlIGlzIG5vIGltYWdlc1xuICAgICAgICAgICAgaWYgKGltZ0Fyci5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBjb25zdCBub0ltYWdlU3JjID0gdGhpcy5maWxlU2VydmljZS5nZXRTdmdBc0ltYWdlU3JjKFxuICAgICAgICAgICAgICAgICAgICBwZXBJY29uTm9JbWFnZTIuZGF0YVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaW1nQXJyLnB1c2gobm9JbWFnZVNyYyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaXRlbXMgPSBpbWdBcnIubWFwKFxuICAgICAgICAgICAgICAgIChpbWcpID0+IG5ldyBJbWFnZUl0ZW0oeyBzcmM6IGltZywgdGh1bWI6IGltZyB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnLmRvdHMgPSB0aGlzLmNvbmZpZy5uYXYgPSB0aGlzLml0ZW1zLmxlbmd0aCA+IDE7XG4gICAgICAgIHRoaXMuY29uZmlnLnRodW1iID1cbiAgICAgICAgICAgICh0aGlzLmtleSA9PT0gJ0l0ZW1GaWxtc3RyaXBJbWFnZXMnIHx8IHRoaXMuc2hvd1RodW1ibmFpbHMpICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgPyB0cnVlXG4gICAgICAgICAgICAgICAgOiBmYWxzZTtcbiAgICAgICAgdGhpcy5jdXJySW5kZXggPVxuICAgICAgICAgICAgdGhpcy5rZXkgPT09ICdJdGVtRmlsbXN0cmlwSW1hZ2VzJyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID09PSAwICYmXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGggPiAxXG4gICAgICAgICAgICAgICAgPyBNYXRoLmZsb29yKHRoaXMuaXRlbXMubGVuZ3RoIC8gMikgLSAxXG4gICAgICAgICAgICAgICAgOiB0aGlzLmN1cnJJbmRleDtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmluRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmFmdGVyRGlhbG9nT3BlbmVkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlSZWYgPSB0aGlzLmdhbGxlcnkucmVmKFxuICAgICAgICAgICAgICAgIGAke3RoaXMuZ3VpZH0tZ2FsbGVyeWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmluaXRHYWxsZXJ5U3R5bGUodGhpcy5nYWxsZXJ5Q29udCwgdGhpcy5nYWxsZXJ5UmVmKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdGFuZEFsb25lKSB7XG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZ2FsbGVyeVJlZikge1xuICAgICAgICAgICAgdGhpcy5nYWxsZXJ5UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaWFsb2dHYWxsZXJ5UmVmKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0dhbGxlcnlSZWYuZGVzdHJveSgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGlmICh0aGlzLm15UGluY2gpIHsgdGhpcy5teVBpbmNoLmRlc3Ryb3koKTsgfVxuICAgIH1cblxuICAgIGluaXRHYWxsZXJ5U3R5bGUoZ2FsbGVyeUNvbnRhaW5lciwgZ2FsbGVyeVJlZik6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIC8vIFNldCB0aHVtYm5haWxzIHBvc2l0aW9uIGFuZCBzbGlkaW5nIGRpcmVjdGlvblxuICAgICAgICAgICAgdGhpcy5zZXRUaHVtYm5haWxEaW1lbnNpb24oZ2FsbGVyeUNvbnRhaW5lcik7XG4gICAgICAgICAgICBnYWxsZXJ5UmVmLnNldENvbmZpZyh0aGlzLmNvbmZpZyk7XG4gICAgICAgICAgICAvLyB0aGlzLnJlbmRlck5hdkljb24oZ2FsbGVyeUNvbnRhaW5lciwgdHJ1ZSk7XG4gICAgICAgICAgICAvLyB0aGlzLnJlbmRlck5hdkljb24oZ2FsbGVyeUNvbnRhaW5lciwgZmFsc2UpO1xuICAgICAgICB9LCAwKTtcblxuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLmN1cnJJbmRleDtcbiAgICAgICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGdhbGxlcnlSZWYubG9hZCh0aGlzLml0ZW1zKTtcbiAgICAgICAgICAgICAgICBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgICAgICAvLyBnYWxsZXJ5UmVmLnNldChjdXJyZW50SW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2FsbGVyeVJlZi5sb2FkKHRoaXMuaXRlbXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25FcnJvcihlKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG5vSW1hZ2VTcmMgPSB0aGlzLmZpbGVTZXJ2aWNlLmdldFN2Z0FzSW1hZ2VTcmMoXG4gICAgICAgICAgICBwZXBJY29uTm9JbWFnZTIuZGF0YVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBub2ltZyA9IG5ldyBJbWFnZUl0ZW0oeyBzcmM6IG5vSW1hZ2VTcmMsIHRodW1iOiBub0ltYWdlU3JjIH0pO1xuICAgICAgICB0aGlzLml0ZW1zLnNwbGljZShlLml0ZW1JbmRleCwgMSwgbm9pbWcpO1xuICAgIH1cblxuICAgIGVubGFyZ2VJbWFnZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuZGlhbG9nU2VydmljZS5nZXREaWFsb2dDb25maWcoe30sICdpbmxpbmUnKTtcbiAgICAgICAgY29uZmlnLm1heFdpZHRoID0gJzc1dncnO1xuICAgICAgICBjb25maWcuaGVpZ2h0ID0gJzk1dmgnO1xuXG4gICAgICAgIHRoaXMuZW5sYXJnZUltYWdlRGlhbG9nUmVmID0gdGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5EaWFsb2coXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnlEaWFsb2dUZW1wbGF0ZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjdXJySW5kZXg6IHRoaXMuY3VyckluZGV4LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGNvbmZpZ1xuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuZW5sYXJnZUltYWdlRGlhbG9nUmVmLmFmdGVyT3BlbmVkKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuYWZ0ZXJEaWFsb2dPcGVuZWQoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gVXBkYXRlIGN1cnJlbnRJbmRleCBpbiBnYWxsZXJ5UmVmXG4gICAgICAgIC8vIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIC8vICAgICB0aGlzLmdhbGxlcnlSZWYuc2V0KHRoaXMuY3VyckluZGV4KTtcbiAgICAgICAgLy8gfSk7XG4gICAgfVxuXG4gICAgYWZ0ZXJEaWFsb2dPcGVuZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nR2FsbGVyeVJlZiA9IHRoaXMuZ2FsbGVyeS5yZWYoXG4gICAgICAgICAgICBgJHt0aGlzLmd1aWR9LWRsZ0dhbGxlcnlgXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuaW5pdEdhbGxlcnlTdHlsZSh0aGlzLmdhbGxlcnlEaWFsb2dDb250LCB0aGlzLmRpYWxvZ0dhbGxlcnlSZWYpO1xuICAgIH1cblxuICAgIGNsb3NlRGlhbG9nKGV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmluRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoZXZlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbmxhcmdlSW1hZ2VEaWFsb2dSZWY/LmNsb3NlKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldFRodW1ibmFpbERpbWVuc2lvbihnYWxsZXJ5Q29udGFpbmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ2FsbGVyeVdpZHRoID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICAvLyB0aGlzLmdhbGxlcnlIZWlnaHQgPSBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzI7IC8vIFRPRE8gLSBUQUxLIFdJVEggVE9NRVJcbiAgICAgICAgdGhpcy5nYWxsZXJ5SGVpZ2h0ID0gdGhpcy5pbkRpYWxvZ1xuICAgICAgICAgICAgPyBnYWxsZXJ5Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0IC0gMzJcbiAgICAgICAgICAgIDogZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICAgICAgLy8gdGhpcy5nYWxsZXJ5SGVpZ2h0ID0gZ2FsbGVyeUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudEhlaWdodCAtIDMyO1xuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLmlzVmVydGljYWwgPSB0aGlzLmdhbGxlcnlXaWR0aCA8IHRoaXMuZ2FsbGVyeUhlaWdodDtcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGlmICh0aGlzLmlzVmVydGljYWwpIHtcbiAgICAgICAgICAgIGxldCB3aWR0aCA9XG4gICAgICAgICAgICAgICAgKHRoaXMuZ2FsbGVyeVdpZHRoIC0gKHRoaXMuaXRlbXMubGVuZ3RoIC0gMSkgKiAxNikgL1xuICAgICAgICAgICAgICAgIHRoaXMuaXRlbXMubGVuZ3RoO1xuICAgICAgICAgICAgd2lkdGggPSBNYXRoLm1pbihNYXRoLm1heCh3aWR0aCwgMjQpLCA5Nik7XG5cbiAgICAgICAgICAgIHRoaXMuY29uZmlnLnRodW1iSGVpZ2h0ID0gd2lkdGg7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYldpZHRoID0gd2lkdGggKyAxNjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGxldCBoZWlnaHQgPVxuICAgICAgICAgICAgICAgICh0aGlzLmdhbGxlcnlIZWlnaHQgLSAodGhpcy5pdGVtcy5sZW5ndGggLSAxKSAqIDE2KSAvXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtcy5sZW5ndGg7XG4gICAgICAgICAgICBoZWlnaHQgPSBNYXRoLm1pbihNYXRoLm1heChoZWlnaHQsIDI0KSwgOTYpO1xuXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy50aHVtYkhlaWdodCA9IGhlaWdodCArIDE2O1xuICAgICAgICAgICAgdGhpcy5jb25maWcudGh1bWJXaWR0aCA9IGhlaWdodDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29uZmlnLnRodW1iUG9zaXRpb24gPSB0aGlzLmlzVmVydGljYWxcbiAgICAgICAgICAgID8gVGh1bWJuYWlsc1Bvc2l0aW9uLkJvdHRvbVxuICAgICAgICAgICAgOiB0aGlzLmxheW91dFNlcnZpY2UuaXNSdGwoKVxuICAgICAgICAgICAgICAgID8gVGh1bWJuYWlsc1Bvc2l0aW9uLlJpZ2h0XG4gICAgICAgICAgICAgICAgOiBUaHVtYm5haWxzUG9zaXRpb24uTGVmdDtcbiAgICAgICAgdGhpcy5jb25maWcuc2xpZGluZ0RpcmVjdGlvbiA9XG4gICAgICAgICAgICB0aGlzLmtleSAhPT0gJ0l0ZW1GaWxtc3RyaXBJbWFnZXMnXG4gICAgICAgICAgICAgICAgPyBTbGlkaW5nRGlyZWN0aW9uLkhvcml6b250YWxcbiAgICAgICAgICAgICAgICA6IHRoaXMuaXNWZXJ0aWNhbFxuICAgICAgICAgICAgICAgICAgICA/IFNsaWRpbmdEaXJlY3Rpb24uSG9yaXpvbnRhbFxuICAgICAgICAgICAgICAgICAgICA6IFNsaWRpbmdEaXJlY3Rpb24uVmVydGljYWw7XG5cbiAgICAgICAgdGhpcy5jb25maWcuaW1hZ2VTaXplID0gJ2NvbnRhaW4nO1xuICAgIH1cblxuICAgIGluZGV4Q2hhbmdlKGl0ZW06IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJJbmRleCA9IGl0ZW0uY3VyckluZGV4O1xuICAgICAgICAvLyBpZiAodGhpcy5uZ3hWaWV3ZXJJbWFnZSAmJiB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlID0gMTtcbiAgICAgICAgLy8gICAgIHRoaXMudXBkYXRlU3R5bGUoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuXG4gICAgLy8gc2Nyb2xsRnVuY3Rpb24oZTogYW55KTogYm9vbGVhbiB7XG4gICAgLy8gICAgIGUuZGVsdGFZID4gMCA/IHRoaXMuem9vbU91dCgpIDogdGhpcy56b29tSW4oKTtcbiAgICAvLyAgICAgcmV0dXJuIGZhbHNlO1xuICAgIC8vIH1cblxuICAgIC8vIHpvb21JbigpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPCAyKSB7XG4gICAgLy8gICAgICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlICo9ICgxICsgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5jb25maWcuem9vbUZhY3Rvcik7XG4gICAgLy8gICAgIH0gZWxzZSB7XG4gICAgLy8gICAgICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlID0gMjtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gem9vbU91dCgpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHRoaXMubmd4Vmlld2VySW1hZ2Uuc2NhbGUgPiB0aGlzLm5neFZpZXdlckltYWdlLmNvbmZpZy56b29tRmFjdG9yKSB7XG4gICAgLy8gICAgICAgICB0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlIC89ICgxICsgdGhpcy5uZ3hWaWV3ZXJJbWFnZS5jb25maWcuem9vbUZhY3Rvcik7XG4gICAgLy8gICAgIH1cbiAgICAvLyAgICAgdGhpcy51cGRhdGVTdHlsZSgpO1xuICAgIC8vIH1cblxuICAgIC8vIHByaXZhdGUgdXBkYXRlU3R5bGUoKTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMubmd4Vmlld2VySW1hZ2Uuc3R5bGUudHJhbnNmb3JtID0gYHRyYW5zbGF0ZSgke3RoaXMubmd4Vmlld2VySW1hZ2UudHJhbnNsYXRlWH1weCxcbiAgICAvLyAgICAgICAgICR7dGhpcy5uZ3hWaWV3ZXJJbWFnZS50cmFuc2xhdGVZfXB4KSByb3RhdGUoJHt0aGlzLm5neFZpZXdlckltYWdlLnJvdGF0aW9ufWRlZykgc2NhbGUoJHt0aGlzLm5neFZpZXdlckltYWdlLnNjYWxlfSlgO1xuXG4gICAgLy8gICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJpbkRpYWxvZzsgdGhlbiBnYWxsZXJ5RGlhbG9nVGVtcGxhdGU7IGVsc2UgcmVndWxhclRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG48bmctdGVtcGxhdGUgI3JlZ3VsYXJUZW1wbGF0ZT5cbiAgICA8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW1hZ2VzLWZpbG1zdHJpcC1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxwZXAtZmllbGQtdGl0bGUgKm5nSWY9XCJyZW5kZXJUaXRsZVwiIFtsYWJlbF09XCJsYWJlbFwiIFt4QWxpZ25tZW50XT1cInhBbGlnbm1lbnRcIiBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiPlxuICAgICAgICAgICAgPC9wZXAtZmllbGQtdGl0bGU+XG4gICAgICAgICAgICA8ZGl2ICNnYWxsZXJ5Q29udCBjbGFzcz1cImltZy13cmFwcGVyXCIgW25nQ2xhc3NdPVwiaXNWZXJ0aWNhbCA/ICd2ZXJ0aWNhbC1nYWxsZXJ5JyA6ICdob3Jpem9udGFsLWdhbGxlcnknXCJcbiAgICAgICAgICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImZpZWxkSGVpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPHBlcC1idXR0b24gKm5nSWY9XCJpdGVtcz8ubGVuZ3RoID4gMVwiIGljb25OYW1lPVwiYXJyb3dfbGVmdF9hbHRcIiBzdHlsZVR5cGU9XCJ3ZWFrLWludmVydFwiIHNpemVUeXBlPVwic21cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZm9ybUdhbGxlcnkucHJldigpXCIgY2xhc3M9XCJnYWxsZXJ5LWFycm93IHN0YXJ0LWFycm93XCI+XG4gICAgICAgICAgICAgICAgPC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxnYWxsZXJ5ICNmb3JtR2FsbGVyeSBpZD1cInt7Z3VpZH19LWdhbGxlcnlcIiAoaXRlbUNsaWNrKT1cImVubGFyZ2VJbWFnZSgkZXZlbnQpO1wiIFtpbWFnZVNpemVdPVwiJ2NvbnRhaW4nXCJcbiAgICAgICAgICAgICAgICAgICAgKGluZGV4Q2hhbmdlKT1cImluZGV4Q2hhbmdlKCRldmVudClcIiAoZXJyb3IpPVwib25FcnJvcigkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPC9nYWxsZXJ5PlxuICAgICAgICAgICAgICAgIDxwZXAtYnV0dG9uICpuZ0lmPVwiaXRlbXM/Lmxlbmd0aCA+IDFcIiBpY29uTmFtZT1cImFycm93X3JpZ2h0X2FsdFwiIHN0eWxlVHlwZT1cIndlYWstaW52ZXJ0XCIgc2l6ZVR5cGU9XCJzbVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmb3JtR2FsbGVyeS5uZXh0KClcIiBjbGFzcz1cImdhbGxlcnktYXJyb3cgZW5kLWFycm93XCI+XG4gICAgICAgICAgICAgICAgPC9wZXAtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNnYWxsZXJ5RGlhbG9nVGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImdhbGxlcnktZGlhbG9nXCI+XG4gICAgICAgIDxwZXAtZGlhbG9nIFt0aXRsZV09XCJsYWJlbFwiIFtzaG93Rm9vdGVyXT1cInNob3dGb290ZXJcIiBbc2hvd0Nsb3NlXT1cInNob3dDbG9zZVwiICAoY2xvc2UpPVwiY2xvc2VEaWFsb2coJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGRpdiBwZXAtZGlhbG9nLWNvbnRlbnQgI2dhbGxlcnlEaWFsb2dDb250IGNsYXNzPVwiZ2FsbGVyeS1kaWFsb2ctY29udGVudFwiXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiaXNWZXJ0aWNhbCA/ICd2ZXJ0aWNhbC1nYWxsZXJ5JyA6ICdob3Jpem9udGFsLWdhbGxlcnknXCI+XG4gICAgICAgICAgICAgICAgPHBlcC1idXR0b24gKm5nSWY9XCJpdGVtcz8ubGVuZ3RoID4gMVwiIGljb25OYW1lPVwiYXJyb3dfbGVmdF9hbHRcIiBzdHlsZVR5cGU9XCJ3ZWFrLWludmVydFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkaWFsb2dHYWxsZXJ5LnByZXYoKVwiIGNsYXNzPVwiZ2FsbGVyeS1hcnJvdyBzdGFydC1hcnJvd1wiPlxuICAgICAgICAgICAgICAgIDwvcGVwLWJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8Z2FsbGVyeSAjZGlhbG9nR2FsbGVyeSBpZD1cInt7Z3VpZH19LWRsZ0dhbGxlcnlcIiBbaW1hZ2VTaXplXT1cIidjb250YWluJ1wiXG4gICAgICAgICAgICAgICAgICAgIChpbmRleENoYW5nZSk9XCJpbmRleENoYW5nZSgkZXZlbnQpXCIgKGVycm9yKT1cIm9uRXJyb3IoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDwvZ2FsbGVyeT5cbiAgICAgICAgICAgICAgICA8cGVwLWJ1dHRvbiAqbmdJZj1cIml0ZW1zPy5sZW5ndGggPiAxXCIgaWNvbk5hbWU9XCJhcnJvd19yaWdodF9hbHRcIiBzdHlsZVR5cGU9XCJ3ZWFrLWludmVydFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkaWFsb2dHYWxsZXJ5Lm5leHQoKVwiIGNsYXNzPVwiZ2FsbGVyeS1hcnJvdyBlbmQtYXJyb3dcIj5cbiAgICAgICAgICAgICAgICA8L3BlcC1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9wZXAtZGlhbG9nPlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT4iXX0=
|