@fundamental-ngx/platform 0.44.0-rc.6 → 0.44.0
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/esm2022/action-bar/action-bar.component.mjs +3 -3
- package/esm2022/button/button.component.mjs +4 -3
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -2
- package/esm2022/feed-input/feed-input.component.mjs +3 -2
- package/esm2022/form/checkbox/checkbox.component.mjs +6 -5
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2022/form/date-picker/date-picker.component.mjs +7 -6
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -5
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +3 -2
- package/esm2022/form/form-group/form-field/form-field.component.mjs +4 -3
- package/esm2022/form/form-group/form-group.component.mjs +3 -3
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
- package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +4 -3
- package/esm2022/form/radio-group/radio/radio.component.mjs +4 -3
- package/esm2022/form/select/commons/base-select.mjs +3 -3
- package/esm2022/form/select/select/select.component.mjs +4 -4
- package/esm2022/form/text-area/text-area.component.mjs +4 -4
- package/esm2022/form/time-picker/time-picker.component.mjs +3 -2
- package/esm2022/list/base-list-item.mjs +5 -5
- package/esm2022/page-footer/page-footer.component.mjs +3 -2
- package/esm2022/search-field/search-field.component.mjs +4 -4
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +7 -6
- package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +3 -2
- package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +3 -3
- package/esm2022/thumbnail/thumbnail.component.mjs +3 -3
- package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +5 -5
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +4 -3
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -2
- package/esm2022/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.mjs +3 -2
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +5 -5
- package/fesm2022/fundamental-ngx-platform-action-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +31 -30
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +7 -7
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +11 -10
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +9 -8
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.44.0.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/fundamental-ngx-platform-v0.44.0-rc.6.tgz +0 -0
|
@@ -2,6 +2,7 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChildren,
|
|
|
2
2
|
import { Validators } from '@angular/forms';
|
|
3
3
|
import { BehaviorSubject, debounceTime, filter, firstValueFrom, Subscription } from 'rxjs';
|
|
4
4
|
import { map, take } from 'rxjs/operators';
|
|
5
|
+
import { warnOnce } from '@fundamental-ngx/cdk/utils';
|
|
5
6
|
import { DialogService } from '@fundamental-ngx/core/dialog';
|
|
6
7
|
import { FilterableColumnDataType, FilterType } from '@fundamental-ngx/platform/table';
|
|
7
8
|
import { FormGeneratorComponent, FormGeneratorService } from '@fundamental-ngx/platform/form';
|
|
@@ -61,7 +62,7 @@ export class SmartFilterBarComponent extends SmartFilterBar {
|
|
|
61
62
|
* @deprecated use i18n capabilities instead
|
|
62
63
|
*/
|
|
63
64
|
set showFiltersLabel(value) {
|
|
64
|
-
|
|
65
|
+
warnOnce('Property showFiltersLabel is deprecated. Use i18n capabilities instead.');
|
|
65
66
|
this._showFiltersLabel = value;
|
|
66
67
|
}
|
|
67
68
|
get showFiltersLabel() {
|
|
@@ -72,7 +73,7 @@ export class SmartFilterBarComponent extends SmartFilterBar {
|
|
|
72
73
|
* @deprecated use i18n capabilities instead
|
|
73
74
|
*/
|
|
74
75
|
set hideFiltersLabel(value) {
|
|
75
|
-
|
|
76
|
+
warnOnce('Property hideFiltersLabel is deprecated. Use i18n capabilities instead.');
|
|
76
77
|
this._hideFiltersLabel = value;
|
|
77
78
|
}
|
|
78
79
|
get hideFiltersLabel() {
|
|
@@ -83,7 +84,7 @@ export class SmartFilterBarComponent extends SmartFilterBar {
|
|
|
83
84
|
* @deprecated use i18n capabilities instead
|
|
84
85
|
*/
|
|
85
86
|
set filtersLabel(value) {
|
|
86
|
-
|
|
87
|
+
warnOnce('Property filtersLabel is deprecated. Use i18n capabilities instead.');
|
|
87
88
|
this._filtersLabel = value;
|
|
88
89
|
}
|
|
89
90
|
get filtersLabel() {
|
|
@@ -103,7 +104,7 @@ export class SmartFilterBarComponent extends SmartFilterBar {
|
|
|
103
104
|
* Condition strategy labels.
|
|
104
105
|
*/
|
|
105
106
|
set defineStrategyLabels(value) {
|
|
106
|
-
|
|
107
|
+
warnOnce('Property defineStrategyLabels is deprecated. Use i18n capabilities instead.');
|
|
107
108
|
this._defineStrategyLabels = value;
|
|
108
109
|
}
|
|
109
110
|
get defineStrategyLabels() {
|
|
@@ -114,7 +115,7 @@ export class SmartFilterBarComponent extends SmartFilterBar {
|
|
|
114
115
|
* Filters visibility category labels.
|
|
115
116
|
*/
|
|
116
117
|
set filtersVisibilityCategoryLabels(value) {
|
|
117
|
-
|
|
118
|
+
warnOnce('Property filtersVisibilityCategoryLabels is deprecated. Use i18n capabilities instead.');
|
|
118
119
|
this._filtersVisibilityCategoryLabels = value;
|
|
119
120
|
}
|
|
120
121
|
get filtersVisibilityCategoryLabels() {
|
|
@@ -580,4 +581,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
580
581
|
type: ContentChildren,
|
|
581
582
|
args: [SmartFilterBarToolbarItemDirective]
|
|
582
583
|
}] } });
|
|
583
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9zbWFydC1maWx0ZXItYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zbWFydC1maWx0ZXItYmFyL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQWdCLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNFLE9BQU8sRUFBeUIsd0JBQXdCLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFOUcsT0FBTyxFQUdILHNCQUFzQixFQUN0QixvQkFBb0IsRUFFdkIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLEVBQUUsNEJBQTRCLEVBQWMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU1RixPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSwwRkFBMEYsQ0FBQztBQUNqSixPQUFPLEVBQUUsOEJBQThCLEVBQUUs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QUssRUFBRSxzQkFBc0I7d0JBQzdCLDJDQUEyQyxFQUFFLGFBQWE7cUJBQzdEOzJQQU9rQyxjQUFjO3NCQUFoRCxTQUFTO3VCQUFDLHNCQUFzQjtnQkFNN0IsT0FBTztzQkFEVixLQUFLO2dCQWNGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFlRixnQkFBZ0I7c0JBRG5CLEtBQUs7Z0JBZUYsWUFBWTtzQkFEZixLQUFLO2dCQWNGLFdBQVc7c0JBRGQsS0FBSztnQkFjRixvQkFBb0I7c0JBRHZCLEtBQUs7Z0JBZUYsK0JBQStCO3NCQURsQyxLQUFLO2dCQWNOLG1CQUFtQjtzQkFEbEIsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04sbUJBQW1CO3NCQURsQixNQUFNO2dCQU9QLG1CQUFtQjtzQkFEbEIsTUFBTTtnQkFPUCxrQkFBa0I7c0JBRGpCLE1BQU07Z0JBSVUsZ0JBQWdCO3NCQURoQyxlQUFlO3VCQUFDLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE91dHB1dCxcbiAgICBQcm92aWRlcixcbiAgICBRdWVyeUxpc3QsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3RWYWx1ZUZyb20sIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERpYWxvZ0NvbmZpZywgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkZpbHRlckdyb3VwLCBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUsIEZpbHRlclR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zZWFyY2gtZmllbGQnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICBEeW5hbWljRm9ybUl0ZW0sXG4gICAgRm9ybUdlbmVyYXRvckNvbXBvbmVudCxcbiAgICBGb3JtR2VuZXJhdG9yU2VydmljZSxcbiAgICBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5pbXBvcnQgeyBGRFBfUFJFU0VUX01BTkFHRURfQ09NUE9ORU5ULCBTZWxlY3RJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclNldHRpbmdzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclN1YmplY3REaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc21hcnQtZmlsdGVyLWJhci1zdWJqZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclRvb2xiYXJJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NtYXJ0LWZpbHRlci1iYXItdG9vbGJhci1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhck1hbmFnZWRQcmVzZXQsIFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItY2hhbmdlJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItZmllbGQtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1keW5hbWljLWZvcm0taXRlbSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckNvbmRpdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9zbWFydC1maWx0ZXItYmFyLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBTbWFydEZpbHRlclNldHRpbmdzRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLWNvbmZpZyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWZpbHRlci1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBTTUFSVF9GSUxURVJfQkFSX1JFTkRFUkVSX0NPTVBPTkVOVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItdmlzaWJpbGl0eS1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhciB9IGZyb20gJy4vc21hcnQtZmlsdGVyLWJhci5jbGFzcyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckNvbmRpdGlvbkZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uLWZpZWxkL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRTZWxlY3RJdGVtVmFsdWUgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyB9IGZyb20gJy4vaW50ZXJmYWNlcy9zdHJhdGVneS1sYWJlbHMudHlwZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmNvbnN0IGRlZmF1bHRDb2x1bW5zTGF5b3V0ID0gJ1hMNC1MMy1NMi1TMSc7XG5cbmZ1bmN0aW9uIGdldENvbHVtbnNOdW1iZXIobGF5b3V0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgICAgLi4ubGF5b3V0LnNwbGl0KCctJykubWFwKChwYXJ0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaEFycmF5ID0gcGFydC5tYXRjaCgvXFxkKy8pO1xuXG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hBcnJheSA/IHBhcnNlSW50KG1hdGNoQXJyYXlbMF0sIDEwKSA6IDE7XG4gICAgICAgIH0pXG4gICAgKTtcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGRpYWxvZyBjb25maWd1cmF0aW9uLlxuICovXG5jb25zdCBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyA9IHtcbiAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcbiAgICB2ZXJ0aWNhbFBhZGRpbmc6IHRydWUsXG4gICAgbWluV2lkdGg6ICczMHJlbScsXG4gICAgLyoqIDg4cHggaXQncyB0aGUgaGVhZGVyICsgZm9vdGVyIGhlaWdodCAqL1xuICAgIGJvZHlNaW5IZWlnaHQ6ICdjYWxjKDUwdmggLSA4OHB4KSdcbn07XG5cbmNvbnN0IHNtYXJ0RmlsdGVyQmFyUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IFNtYXJ0RmlsdGVyQmFyLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50KVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc21hcnQtZmlsdGVyLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBzbWFydEZpbHRlckJhclByb3ZpZGVyLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfUFJFU0VUX01BTkFHRURfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtc21hcnQtZmlsdGVyLWJhcicsXG4gICAgICAgICdbY2xhc3MuZmRwLXNtYXJ0LWZpbHRlci1iYXItLXRyYW5zcGFyZW50XSc6ICd0cmFuc3BhcmVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50IGV4dGVuZHMgU21hcnRGaWx0ZXJCYXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGb3JtIGdlbmVyYXRvciBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChGb3JtR2VuZXJhdG9yQ29tcG9uZW50KSBfZm9ybUdlbmVyYXRvciE6IEZvcm1HZW5lcmF0b3JDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBTdWJqZWN0IHdoaWNoIHdpbGwgcHJvdmlkZSBjb25maWd1cmF0aW9uIGRhdGE6IGRhdGEgc291cmNlLCBjb2x1bW5zIGRlZmluaXRpb25zLCBldGMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc3ViamVjdCh2YWx1ZTogU21hcnRGaWx0ZXJCYXJTdWJqZWN0RGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX3NldFN1YmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzdWJqZWN0KCk6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICdTaG93IGZpbHRlcnMnIGJ1dHRvbiBsYWJlbC5cbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNob3dGaWx0ZXJzTGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1Byb3BlcnR5IHNob3dGaWx0ZXJzTGFiZWwgaXMgZGVwcmVjYXRlZC4gVXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuX3Nob3dGaWx0ZXJzTGFiZWwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgc2hvd0ZpbHRlcnNMYWJlbCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fc2hvd0ZpbHRlcnNMYWJlbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiAnSGlkZSBmaWx0ZXJzJyBidXR0b24gbGFiZWwuXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBoaWRlRmlsdGVyc0xhYmVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKCdQcm9wZXJ0eSBoaWRlRmlsdGVyc0xhYmVsIGlzIGRlcHJlY2F0ZWQuIFVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLl9oaWRlRmlsdGVyc0xhYmVsID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGhpZGVGaWx0ZXJzTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hpZGVGaWx0ZXJzTGFiZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogJ0ZpbHRlcnMnIGJ1dHRvbiBsYWJlbC5cbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcnNMYWJlbCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignUHJvcGVydHkgZmlsdGVyc0xhYmVsIGlzIGRlcHJlY2F0ZWQuIFVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzTGFiZWwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyc0xhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJzTGFiZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBzbWFydCBmaWx0ZXIgYmFyIGJhY2tncm91bmQgc2hvdWxkIGJlIHRyYW5zcGFyZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRyYW5zcGFyZW50KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNwYXJlbnQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB0cmFuc3BhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkXG4gICAgICogQ29uZGl0aW9uIHN0cmF0ZWd5IGxhYmVscy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkZWZpbmVTdHJhdGVneUxhYmVscyh2YWx1ZTogU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1Byb3BlcnR5IGRlZmluZVN0cmF0ZWd5TGFiZWxzIGlzIGRlcHJlY2F0ZWQuIFVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLl9kZWZpbmVTdHJhdGVneUxhYmVscyA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBkZWZpbmVTdHJhdGVneUxhYmVscygpOiBTbWFydEZpbHRlckJhclN0cmF0ZWd5TGFiZWxzIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlZmluZVN0cmF0ZWd5TGFiZWxzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkXG4gICAgICogRmlsdGVycyB2aXNpYmlsaXR5IGNhdGVnb3J5IGxhYmVscy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWx0ZXJzVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzKHZhbHVlOiBTbWFydEZpbHRlckJhclZpc2liaWxpdHlDYXRlZ29yeUxhYmVscyB8IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLndhcm4oJ1Byb3BlcnR5IGZpbHRlcnNWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMgaXMgZGVwcmVjYXRlZC4gVXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuX2ZpbHRlcnNWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyc1Zpc2liaWxpdHlDYXRlZ29yeUxhYmVscygpOiBTbWFydEZpbHRlckJhclZpc2liaWxpdHlDYXRlZ29yeUxhYmVscyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJzVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENvbHVtbnMgbGF5b3V0LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsdGVyc0NvbHVtbkxheW91dDogTnVsbGFibGU8c3RyaW5nPiA9IGRlZmF1bHRDb2x1bW5zTGF5b3V0O1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byB1cGRhdGUgZmlsdGVycyB3aGVuIHRoZXkgYXJlIHNlbGVjdGVkLiBPdGhlcndpc2UsIGZpbHRlcnMgd2lsbCBiZSBhcHBsaWVkIG9ubHkgYnkgcHJlc3NpbmcgXCJHb1wiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGxpdmVVcGRhdGUgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgc2VsZWN0ZWQgZmlsdGVycyBoYXZlIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzbWFydEZpbHRlcnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8U21hcnRGaWx0ZXJDaGFuZ2VPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxTbWFydEZpbHRlckNoYW5nZU9iamVjdD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBzZWxlY3RlZCBmaWx0ZXJzIGhhcyBiZWVuIGFwcGxpZWQgKFVzZXIgY2xpY2tlZCBvbiBHbyBidXR0b24pLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNtYXJ0RmlsdGVyc0FwcGxpZWQ6IEV2ZW50RW1pdHRlcjxTbWFydEZpbHRlckNoYW5nZU9iamVjdD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0PigpO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHNlYXJjaCBpbnB1dCBmaWVsZCB2YWx1ZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHNlYXJjaElucHV0Q2hhbmdlZDogRXZlbnRFbWl0dGVyPFNlYXJjaElucHV0PiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoSW5wdXQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAQ29udGVudENoaWxkcmVuKFNtYXJ0RmlsdGVyQmFyVG9vbGJhckl0ZW1EaXJlY3RpdmUpXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdG9vbGJhckl0ZW1SZWZzOiBRdWVyeUxpc3Q8U21hcnRGaWx0ZXJCYXJUb29sYmFySXRlbURpcmVjdGl2ZT47XG5cbiAgICAvKipcbiAgICAgKiBDYWxjdWxhdGVkIGFycmF5IG9mIGZpbHRlcnMgdG8gYXBwbHkgZm9yIHRoZSBzdWJqZWN0J3MgZGF0YSBzb3VyY2UuXG4gICAgICovXG4gICAgZmlsdGVyQnk6IENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBTZWFyY2ggZmllbGQgdmFsdWUgdG8gYXBwbHkgZm9yIHRoZSBzdWJqZWN0J3MgZGF0YSBzb3VyY2UuXG4gICAgICovXG4gICAgc2VhcmNoOiBTZWFyY2hJbnB1dCB8IHVuZGVmaW5lZDtcbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIF90b29sYmFySXRlbXM6IFRlbXBsYXRlUmVmPGFueT5bXSA9IFtdO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2Zvcm1JdGVtczogRHluYW1pY0Zvcm1JdGVtW107XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2VsZWN0ZWRGaWx0ZXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3Nob3dGaWx0ZXJCYXIgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2xvYWRpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJqZWN0Py5nZXREYXRhU291cmNlKCkgPyB0aGlzLl9zdWJqZWN0LmdldERhdGFTb3VyY2UoKS5pc0RhdGFMb2FkaW5nIDogdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2hpZGVGaWx0ZXJzTGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2hvd0ZpbHRlcnNMYWJlbDogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maWx0ZXJzTGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVmaW5lU3RyYXRlZ3lMYWJlbHM6IFNtYXJ0RmlsdGVyQmFyU3RyYXRlZ3lMYWJlbHMgfCB1bmRlZmluZWQ7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZpbHRlcnNWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHM6IFNtYXJ0RmlsdGVyQmFyVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJqZWN0U3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJhbnNwYXJlbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9ybUdlbmVyYXRvclJlYWR5ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lnbm9yZVByZXNldENoYW5nZSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJqZWN0ITogU21hcnRGaWx0ZXJCYXJTdWJqZWN0RGlyZWN0aXZlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfc21hcnRGaWx0ZXJCYXJTZXJ2aWNlOiBTbWFydEZpbHRlckJhclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2ZnU2VydmljZTogRm9ybUdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZjogRGVzdHJveVJlZlxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLl9mZ1NlcnZpY2UuYWRkQ29tcG9uZW50KFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uRmllbGRDb21wb25lbnQsIFtTTUFSVF9GSUxURVJfQkFSX1JFTkRFUkVSX0NPTVBPTkVOVF0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90b29sYmFySXRlbXMgPSB0aGlzLl90b29sYmFySXRlbVJlZnMudG9BcnJheSgpLm1hcCgocmVmKSA9PiByZWYudGVtcGxhdGVSZWYpO1xuXG4gICAgICAgIHRoaXMuX3Rvb2xiYXJJdGVtUmVmcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl90b29sYmFySXRlbXMgPSB0aGlzLl90b29sYmFySXRlbVJlZnMudG9BcnJheSgpLm1hcCgocmVmKSA9PiByZWYudGVtcGxhdGVSZWYpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3Vuc3Vic2NyaWJlRnJvbVN1YmplY3QoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmFuc2Zvcm1zIGNvbmRpdGlvbiB2YWx1ZSBpbnRvIGh1bWFuLXJlYWRhYmxlIHRleHQuXG4gICAgICogQHBhcmFtIGNvbmRpdGlvbiBTbWFydCBmaWx0ZXIgYmFyIGNvbmRpdGlvbi5cbiAgICAgKiBAcGFyYW0gZmlsdGVyVHlwZSBDb25kaXRpb24gZmlsdGVyIHR5cGUuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0RGlzcGxheVZhbHVlKGNvbmRpdGlvbjogU21hcnRGaWx0ZXJCYXJDb25kaXRpb24sIGZpbHRlclR5cGU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UuZ2V0RGlzcGxheVZhbHVlKGNvbmRpdGlvbiwgZmlsdGVyVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqIE9wZW4gRmlsdGVyaW5nIFNldHRpbmdzIERpYWxvZyAqL1xuICAgIHNob3dGaWx0ZXJpbmdTZXR0aW5ncygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFN1YmplY3REZWZpbml0aW9ucygpO1xuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBTbWFydEZpbHRlclNldHRpbmdzRGlhbG9nQ29uZmlnID0ge1xuICAgICAgICAgICAgZmllbGRzOiBjb2x1bW5zLFxuICAgICAgICAgICAgZmlsdGVyQnk6IHRoaXMuZmlsdGVyQnksXG4gICAgICAgICAgICBzZWxlY3RlZEZpbHRlcnM6IHRoaXMuX3NlbGVjdGVkRmlsdGVycyxcbiAgICAgICAgICAgIHZpc2liaWxpdHlDYXRlZ29yaWVzOiB0aGlzLmZpbHRlcnNWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHNcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLl9kaWFsb2dTZXJ2aWNlLm9wZW4oXG4gICAgICAgICAgICBTbWFydEZpbHRlckJhclNldHRpbmdzRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIC4uLmRpYWxvZ0NvbmZpZyxcbiAgICAgICAgICAgICAgICBkaXNhYmxlUGFkZGluZ3M6IHRydWUsXG4gICAgICAgICAgICAgICAgd2lkdGg6ICc1MHJlbScsXG4gICAgICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHRoaXMuX2luamVjdG9yXG4gICAgICAgICk7XG5cbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKChzZWxlY3RlZEZpbHRlcnM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEZpbHRlcnMoc2VsZWN0ZWRGaWx0ZXJzKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfb25TZWFyY2hJbnB1dENoYW5nZShldmVudDogU2VhcmNoSW5wdXQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSBldmVudDtcbiAgICAgICAgdGhpcy5zZWFyY2hJbnB1dENoYW5nZWQuZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfY2FuY2VsU2VhcmNoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlYXJjaCA9IHVuZGVmaW5lZDtcblxuICAgICAgICBpZiAodGhpcy5saXZlVXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnN1Ym1pdEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFN1Ym1pdHMgZmlsdGVycyBhbmQgc2VhcmNoIGZvcm0uXG4gICAgICovXG4gICAgc3VibWl0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvci5zdWJtaXQoKTtcbiAgICB9XG5cbiAgICAvKiogTWV0aG9kIGZvciBzZXR0aW5nIHByZWRlZmluZWQgY29uZmlndXJhdGlvbi4gKi9cbiAgICBhc3luYyBzZXRQcmVzZXQoZGF0YTogU21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX2lnbm9yZVByZXNldENoYW5nZSA9IHRydWU7XG4gICAgICAgIGRhdGEuZmlsdGVyQnkgPSBkYXRhLmZpbHRlckJ5IHx8IFtdO1xuICAgICAgICB0aGlzLmZpbHRlckJ5ID0gZGF0YS5maWx0ZXJCeTtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSBkYXRhLnNlYXJjaDtcblxuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yUmVhZHkucGlwZShmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSkpLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAvLyBSZXNldCBmb3JtXG4gICAgICAgICAgICB0aGlzLl9mZ1NlcnZpY2UucmVzZXRGb3JtKHRoaXMuX2Zvcm1HZW5lcmF0b3IuZm9ybSk7XG5cbiAgICAgICAgICAgIC8vIFNldCBuZXcgZGF0YVxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWx0ZXJCeSBvZiB0aGlzLmZpbHRlckJ5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtQ29udHJvbCh0aGlzLl9mb3JtR2VuZXJhdG9yLmZvcm0sIGZpbHRlckJ5LmZpZWxkKTtcblxuICAgICAgICAgICAgICAgIGlmICghY29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBmb3JtSXRlbSA9IGNvbnRyb2wuZm9ybUl0ZW0gYXMgUHJlcGFyZWREeW5hbWljRm9ybUZpZWxkSXRlbTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbiA9IHRoaXMuX3NtYXJ0RmlsdGVyQmFyU2VydmljZS50cmFuc2Zvcm1Db2xsZWN0aW9uRmlsdGVyKGZpbHRlckJ5KTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkQ29uZGl0aW9ucyA9IGF3YWl0IHRoaXMuX3NtYXJ0RmlsdGVyQmFyU2VydmljZS5nZXRDb25kaXRpb25GaWVsZFNlbGVjdGVkVmFyaWFudHMoXG4gICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLFxuICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnRyb2w/LnNldFZhbHVlKHNlbGVjdGVkQ29uZGl0aW9ucyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX3NldFNlbGVjdGVkRmlsdGVycyh0aGlzLmZpbHRlckJ5Lm1hcCgoZmlsdGVyQnkpID0+IGZpbHRlckJ5LmZpZWxkKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc3ViamVjdC5nZXREYXRhU291cmNlKCk7XG4gICAgICAgICAgICBzb3VyY2UuZGF0YVByb3ZpZGVyLnNldEZpbHRlcnModGhpcy5maWx0ZXJCeSwgdGhpcy5zZWFyY2gpO1xuICAgICAgICAgICAgdGhpcy5zdWJqZWN0LmdldFN1YmplY3QoKS5mZXRjaCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBjdXJyZW50IHByZXNldCBjb25maWd1cmF0aW9uLiAqL1xuICAgIGdldEN1cnJlbnRQcmVzZXQoKTogU21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlYXJjaDogdGhpcy5zZWFyY2gsXG4gICAgICAgICAgICBmaWx0ZXJCeTogdGhpcy5maWx0ZXJCeVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDYWxsYmFjayBmdW5jdGlvbiB3aGVuIGZvcm0gZ2VuZXJhdG9yIGZvcm0gaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHZhbGlkYXRlZCBhbmQgc3VibWl0dGVkLlxuICAgICAqL1xuICAgIF9vbkZvcm1TdWJtaXR0ZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb25kaXRpb25zID0gdGhpcy5fZ2VuZXJhdGVDb2xsZWN0aW9uRmlsdGVyR3JvdXBzKGV2ZW50KTtcbiAgICAgICAgdGhpcy5fYXBwbHlGaWx0ZXJpbmcoY29uZGl0aW9ucyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIENhbGxiYWNrIG1ldGhvZCB3aGVuIGZvcm0gaGFzIGJlZW4gY3JlYXRlZC5cbiAgICAgKiBQb3B1bGF0ZXMgc2VsZWN0ZWQgZmlsdGVycyBhcnJheSB3aXRoIHVzZXItZGVmaW5lZCBkZWZhdWx0IGZpbHRlcnMuXG4gICAgICovXG4gICAgX29uRm9ybUNyZWF0ZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN1YmplY3QpIHtcbiAgICAgICAgICAgIHRoaXMuX3NldFNlbGVjdGVkRmlsdGVycyhbLi4udGhpcy5zdWJqZWN0LmdldERlZmF1bHRGaWVsZHMoKSwgLi4udGhpcy5fc2VsZWN0ZWRGaWx0ZXJzXSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yLmZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoNTApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb25zID0gYXdhaXQgdGhpcy5nZXRGb3JtYXR0ZWRDb25kaXRpb25zKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zbWFydEZpbHRlcnNDaGFuZ2VkLmVtaXQoeyBmaWx0ZXJCeTogY29uZGl0aW9ucywgc2VhcmNoOiB0aGlzLnNlYXJjaCwgc3ViamVjdDogdGhpcy5zdWJqZWN0IH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmxpdmVVcGRhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLl9hcHBseUZpbHRlcmluZyhjb25kaXRpb25zKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX2Zvcm1HZW5lcmF0b3JSZWFkeS5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdG9nZ2xlRmlsdGVyQmFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zaG93RmlsdGVyQmFyID0gIXRoaXMuX3Nob3dGaWx0ZXJCYXI7XG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGb3JtYXRzIHJhdyBmaWx0ZXJzIG9iamVjdCBpbnRvIGFycmF5IG9mIGdyb3VwZWQgZmlsdGVycy5cbiAgICAgKiBAcmV0dXJucyBBcnJheSBvZiBncm91cGVkIGZpbHRlcnMuXG4gICAgICovXG4gICAgYXN5bmMgZ2V0Rm9ybWF0dGVkQ29uZGl0aW9ucygpOiBQcm9taXNlPENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IGF3YWl0IHRoaXMuX2ZnU2VydmljZS5nZXRGb3JtVmFsdWUodGhpcy5fZm9ybUdlbmVyYXRvci5mb3JtKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2dlbmVyYXRlQ29sbGVjdGlvbkZpbHRlckdyb3Vwcyhmb3JtVmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVDb2xsZWN0aW9uRmlsdGVyR3JvdXBzKHZhbHVlOiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW107XG4gICAgfSk6IENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdIHtcbiAgICAgICAgY29uc3QgY29sbGVjdGlvbkZpbHRlckdyb3VwczogQ29sbGVjdGlvbkZpbHRlckdyb3VwW10gPSBbXTtcblxuICAgICAgICBjb25zdCBjb2x1bW5zID0gdGhpcy5fZ2V0U3ViamVjdERlZmluaXRpb25zKCk7XG5cbiAgICAgICAgT2JqZWN0LmVudHJpZXModmFsdWUpXG4gICAgICAgICAgICAuZmlsdGVyKChbLCBmaWVsZENvbmRpdGlvbnNdKSA9PiAhIWZpZWxkQ29uZGl0aW9ucylcbiAgICAgICAgICAgIC5mb3JFYWNoKChbZmllbGROYW1lLCBmaWVsZENvbmRpdGlvbnNdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sdW1uID0gY29sdW1ucy5maW5kKChjKSA9PiBjLm5hbWUgPT09IGZpZWxkTmFtZSkgYXMgU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb247XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyR3JvdXA6IENvbGxlY3Rpb25GaWx0ZXJHcm91cCA9IHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyczogW10sXG4gICAgICAgICAgICAgICAgICAgIHN0cmF0ZWd5OiBjb2x1bW4uY29uZGl0aW9uU3RyYXRlZ3ksXG4gICAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4ua2V5XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBmaWVsZENvbmRpdGlvbnMuZm9yRWFjaCgoY29uZGl0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlckdyb3VwLmZpbHRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJhdGVneTogY29uZGl0aW9uLm9wZXJhdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogY29uZGl0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUyOiBjb25kaXRpb24udmFsdWUyLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sdW1uLmRhdGFUeXBlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbkZpbHRlckdyb3Vwcy5wdXNoKGZpbHRlckdyb3VwKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIFJlbW92ZSBlbXB0eSBmaWx0ZXIgb2JqZWN0cy5cbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb25GaWx0ZXJHcm91cHMuZmlsdGVyKChmaWx0ZXJHcm91cCkgPT4gZmlsdGVyR3JvdXAuZmlsdGVycz8ubGVuZ3RoID4gMCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRTdWJqZWN0KHN1YmplY3Q6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXN1YmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N1YmplY3QgPSBzdWJqZWN0O1xuICAgICAgICB0aGlzLnVuc3Vic2NyaWJlRnJvbVN1YmplY3QoKTtcbiAgICAgICAgdGhpcy5fbGlzdGVuVG9TdWJqZWN0Q29sdW1ucygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSB1bnN1YnNjcmliZUZyb21TdWJqZWN0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX3N1YmplY3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbGlzdGVuVG9TdWJqZWN0Q29sdW1ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3ViamVjdFN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICAgICAgdGhpcy5fc3ViamVjdC5maWVsZHNTdHJlYW0uc3Vic2NyaWJlKGFzeW5jIChjb2x1bW5zOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbltdKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dlbmVyYXRlRm9ybShjb2x1bW5zLmZpbHRlcigoYykgPT4gYy5maWx0ZXJhYmxlKSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHZW5lcmF0ZXMgZm9ybSBpdGVtcyB0byBiZSBjb25zdW1lZCBieSBmb3JtIGdlbmVyYXRvciBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGNvbHVtbnMgY29sdW1ucyBkZWZpbml0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZ2VuZXJhdGVGb3JtKGNvbHVtbnM6IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaXRlbXM6IER5bmFtaWNGb3JtRmllbGRJdGVtW10gPSBbXTtcbiAgICAgICAgY29uc3QgY29sdW1uc051bWJlciA9IGdldENvbHVtbnNOdW1iZXIodGhpcy5maWx0ZXJzQ29sdW1uTGF5b3V0ID8/ICcnKTtcbiAgICAgICAgbGV0IGN1cnJlbnRDb2x1bW4gPSAxO1xuXG4gICAgICAgIGlmIChjb2x1bW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+IHtcbiAgICAgICAgICAgIGxldCBpdGVtOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtID0gdGhpcy5fZ2VuZXJhdGVCYXNlRmllbGRJdGVtKGNvbHVtbik7XG5cbiAgICAgICAgICAgIGlmIChjb2x1bW4ucmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEZpbHRlcnMucHVzaChjb2x1bW4ubmFtZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHN3aXRjaCAoY29sdW1uLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuU0lOR0xFOlxuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5DQVRFR09SWTpcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGUgPSAnc2VsZWN0JztcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmlubGluZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuTVVMVEk6XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gJ211bHRpLWlucHV0JztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLkNVU1RPTTpcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuX2dlbmVyYXRlQ3VzdG9tRmlsdGVyRmllbGRJdGVtKGNvbHVtbiwgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5JTlBVVDpcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBpdGVtID0gdGhpcy5fZ2VuZXJhdGVJbnB1dEZpZWxkSXRlbShjb2x1bW4sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmNvbHVtbiA9IGN1cnJlbnRDb2x1bW47XG4gICAgICAgICAgICBjdXJyZW50Q29sdW1uICs9IDE7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50Q29sdW1uID4gY29sdW1uc051bWJlcikge1xuICAgICAgICAgICAgICAgIGN1cnJlbnRDb2x1bW4gPSAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb3JtSXRlbXMgPSBpdGVtcztcblxuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVDdXN0b21GaWx0ZXJGaWVsZEl0ZW0oXG4gICAgICAgIGNvbHVtbjogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24sXG4gICAgICAgIGl0ZW06IFNtYXJ0RmlsdGVyQmFyRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIHtcbiAgICAgICAgaWYgKCFjb2x1bW4uY3VzdG9tRmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgICAgIH1cbiAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGUgPSBjb2x1bW4uY3VzdG9tRmlsdGVyVHlwZTtcbiAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhID0gT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YSxcbiAgICAgICAgICAgIHRoaXMuX3NtYXJ0RmlsdGVyQmFyU2VydmljZS5nZXRDdXN0b21GaWx0ZXJDb25maWd1cmF0aW9uKGNvbHVtbi5jdXN0b21GaWx0ZXJUeXBlKVxuICAgICAgICApO1xuXG4gICAgICAgIGl0ZW0udHlwZSA9IGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS5yZW5kZXJlckNvbXBvbmVudFxuICAgICAgICAgICAgPyBgJHtpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEudHlwZX0tcmVuZGVyZXJgXG4gICAgICAgICAgICA6IGl0ZW0udHlwZTtcbiAgICAgICAgaXRlbS50cmFuc2Zvcm1lciA9IGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS52YWx1ZVRyYW5zZm9ybWVyO1xuXG4gICAgICAgIHJldHVybiBpdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBHZW5lcmF0ZXMgZm9ybSBpdGVtIGJhc2VkIG9uIGRhdGEgdHlwZS5cbiAgICAgKiBAcGFyYW0gY29sdW1uXG4gICAgICogQHBhcmFtIGl0ZW1cbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlSW5wdXRGaWVsZEl0ZW0oXG4gICAgICAgIGNvbHVtbjogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24sXG4gICAgICAgIGl0ZW06IFNtYXJ0RmlsdGVyQmFyRHluYW1pY0Zvcm1GaWVsZEl0ZW1cbiAgICApOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIHtcbiAgICAgICAgc3dpdGNoIChjb2x1bW4uZGF0YVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLkRBVEU6XG4gICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGUgPSAnZGF0ZXBpY2tlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5OVU1CRVI6XG4gICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLmNvbnRyb2xUeXBlID0gJ251bWJlcic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5CT09MRUFOOlxuICAgICAgICAgICAgY2FzZSBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUuU1RSSU5HOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEuY29udHJvbFR5cGUgPSAndGV4dCc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2VuZXJhdGVzIGJhc2UgZm9ybSBpdGVtIG9iamVjdCB0byBiZSBjb25zdW1lZCBieSBmb3JtIGdlbmVyYXRvciBjb21wb25lbnQuXG4gICAgICogQHBhcmFtIGNvbHVtbiBjb2x1bW4gZGVmaW5pdGlvblxuICAgICAqIEByZXR1cm5zIGJhc2UgZm9ybSBpdGVtIG9iamVjdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUJhc2VGaWVsZEl0ZW0oY29sdW1uOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbik6IFNtYXJ0RmlsdGVyQmFyRHluYW1pY0Zvcm1GaWVsZEl0ZW0ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogY29sdW1uLm5hbWUsXG4gICAgICAgICAgICBtZXNzYWdlOiBjb2x1bW4ubGFiZWwsXG4gICAgICAgICAgICByZXF1aXJlZDogY29sdW1uLnJlcXVpcmVkLFxuICAgICAgICAgICAgdHlwZTogU01BUlRfRklMVEVSX0JBUl9SRU5ERVJFUl9DT01QT05FTlQsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogJyAnLFxuICAgICAgICAgICAgdmFsaWRhdG9yczogY29sdW1uLnJlcXVpcmVkID8gW1ZhbGlkYXRvcnMucmVxdWlyZWRdIDogW10sXG4gICAgICAgICAgICBjaG9pY2VzOiBjb2x1bW4uaGFzT3B0aW9ucyA/IHRoaXMuX2dldEZpbHRlckRlZmF1bHRPcHRpb25zKGNvbHVtbi5rZXksIGNvbHVtbi5maWx0ZXJUeXBlKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHRyYW5zZm9ybWVyOiAoaXRlbVZhbHVlKSA9PiBnZXRTZWxlY3RJdGVtVmFsdWUoaXRlbVZhbHVlKSxcbiAgICAgICAgICAgIGd1aU9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsRGF0YToge1xuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICBkYXRhVHlwZTogY29sdW1uLmRhdGFUeXBlLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJUeXBlOiBjb2x1bW4uZmlsdGVyVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgY29udHJvbFR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgY2hvaWNlczogY29sdW1uLmhhc09wdGlvbnMgPyB0aGlzLl9nZXRGaWx0ZXJBdmFpbGFibGVPcHRpb25zKGNvbHVtbi5rZXkpIDogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdoZW46ICgpID0+IHRoaXMuX3NlbGVjdGVkRmlsdGVycy5pbmNsdWRlcyhjb2x1bW4ubmFtZSlcbiAgICAgICAgfSBhcyBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBSZXRyaWV2ZXMgYXZhaWxhYmxlIG9wdGlvbnMgZm9yIHBhcnRpY3VsYXIgY29sdW1uIGJ5IHVzaW5nIGRhdGEgc291cmNlIG1ldGhvZC5cbiAgICAgKiBAcGFyYW0gY29sdW1uIHByb3BlcnR5IG5hbWUgb2YgdGhlIGRhdGEgc291cmNlIGl0ZW1zLlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFNlbGVjdEl0ZW1bXT59IE9ic2VydmFibGUgd2l0aCB0aGUgYXJyYXkgb2YgYXZhaWxhYmxlIG9wdGlvbnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2V0RmlsdGVyQXZhaWxhYmxlT3B0aW9ucyhjb2x1bW46IHN0cmluZyk6ICgpID0+IE9ic2VydmFibGU8U2VsZWN0SXRlbVtdPiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB0aGlzLl9nZXRGaWVsZFZhcmlhbnRzKGNvbHVtbik7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRGaWx0ZXJEZWZhdWx0T3B0aW9ucyhjb2x1bW46IHN0cmluZywgZmlsdGVyVHlwZTogRmlsdGVyVHlwZSk6ICgpID0+IFByb21pc2U8YW55W10+IHtcbiAgICAgICAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhcmlhbnRzID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5fZ2V0RmllbGRWYXJpYW50cyhjb2x1bW4pLnBpcGUodGFrZSgxKSkpO1xuXG4gICAgICAgICAgICBjb25zdCBhdmFpbGFibGVEZWZhdWx0Q29uZGl0aW9uczogU21hcnRGaWx0ZXJCYXJDb25kaXRpb25bXSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IG9wdGlvbiBvZiB2YXJpYW50cykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvbjogU21hcnRGaWx0ZXJCYXJDb25kaXRpb24gPSB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiAnZXF1YWxUbydcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uLmRpc3BsYXlWYWx1ZSA9IGF3YWl0IHRoaXMuZ2V0RGlzcGxheVZhbHVlKGNvbmRpdGlvbiwgZmlsdGVyVHlwZSk7XG5cbiAgICAgICAgICAgICAgICBhdmFpbGFibGVEZWZhdWx0Q29uZGl0aW9ucy5wdXNoKGNvbmRpdGlvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhdmFpbGFibGVEZWZhdWx0Q29uZGl0aW9ucztcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldEZpZWxkVmFyaWFudHMoY29sdW1uOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNlbGVjdEl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJqZWN0LmdldEZpZWxkVmFyaWFudHMoY29sdW1uKS5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1hcCgoZGF0YSkgPT4gZGF0YS5maWx0ZXIoKGl0ZW0sIGluZGV4KSA9PiBkYXRhLmZpbmRJbmRleCgoX2l0ZW0pID0+IF9pdGVtLnZhbHVlID09PSBpdGVtLnZhbHVlKSA9PT0gaW5kZXgpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0U3ViamVjdERlZmluaXRpb25zKCk6IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJqZWN0Py5nZXRTdWJqZWN0RmllbGRzKCkgfHwgW107XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFNldHMgcHJvdmlkZWQgZmlsdGVycyBkaXJlY3RseSB0byB0aGUgZGF0YSBzb3VyY2UuXG4gICAgICogQHBhcmFtIGZpbHRlcnMgYXJyYXkgb2YgZmlsdGVycy5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9hcHBseUZpbHRlcmluZyhmaWx0ZXJzOiBDb2xsZWN0aW9uRmlsdGVyR3JvdXBbXSk6IHZvaWQge1xuICAgICAgICAvLyBBcHBseSBvdXRzaWRlIGZpbHRlcmluZyBhbmQgZm9yY2Ugc3ViamVjdCB0byBmZXRjaCBuZXcgZGF0YS5cbiAgICAgICAgY29uc3Qgc291cmNlID0gdGhpcy5zdWJqZWN0LmdldERhdGFTb3VyY2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJCeSA9IGZpbHRlcnM7XG4gICAgICAgIHNvdXJjZS5kYXRhUHJvdmlkZXIuc2V0RmlsdGVycyhmaWx0ZXJzLCB0aGlzLnNlYXJjaCk7XG4gICAgICAgIHRoaXMuc3ViamVjdC5nZXRTdWJqZWN0KCkuZmV0Y2goKTtcbiAgICAgICAgY29uc3QgZW1pdHRlZFZhbHVlOiBTbWFydEZpbHRlckJhck1hbmFnZWRQcmVzZXQgPSB7IHNlYXJjaDogdGhpcy5zZWFyY2gsIGZpbHRlckJ5OiB0aGlzLmZpbHRlckJ5IH07XG4gICAgICAgIHRoaXMuc21hcnRGaWx0ZXJzQXBwbGllZC5lbWl0KHsgLi4uZW1pdHRlZFZhbHVlLCBzdWJqZWN0OiB0aGlzLl9zdWJqZWN0IH0pO1xuXG4gICAgICAgIGlmICghdGhpcy5faWdub3JlUHJlc2V0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLnByZXNldENoYW5nZWQuZW1pdChlbWl0dGVkVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2lnbm9yZVByZXNldENoYW5nZSA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVGcm9tU3ViamVjdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3ViamVjdFN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fc3ViamVjdFN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRTZWxlY3RlZEZpbHRlcnMoZmlsdGVyczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWx0ZXJzID0gZmlsdGVycy5maWx0ZXIoKGY6IHN0cmluZywgaTogbnVtYmVyKSA9PiBmaWx0ZXJzLmluZGV4T2YoZikgPT09IGkpO1xuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yLnJlZnJlc2hTdGVwc1Zpc2liaWxpdHkoKTtcbiAgICB9XG59XG4iLCI8ZGl2PlxuICAgIDxmZC10b29sYmFyIFtoYXNUaXRsZV09XCJ0cnVlXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIl90b29sYmFySXRlbXNcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRlbXBsYXRlIG9mIF90b29sYmFySXRlbXNcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxmZC10b29sYmFyLXNlcGFyYXRvcj48L2ZkLXRvb2xiYXItc2VwYXJhdG9yPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZmRwLXNlYXJjaC1maWVsZFxuICAgICAgICAgICAgKGlucHV0Q2hhbmdlKT1cIl9vblNlYXJjaElucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKHNlYXJjaFN1Ym1pdCk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICAgICAgKGNhbmNlbFNlYXJjaCk9XCJfY2FuY2VsU2VhcmNoKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9sb2FkaW5nXCJcbiAgICAgICAgICAgIFtkaXNhYmxlUmVmcmVzaF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zZWFyY2hQbGFjZWhvbGRlcicgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2ZkcC1zZWFyY2gtZmllbGQ+XG4gICAgICAgIDxmZC10b29sYmFyLXNwYWNlcj48L2ZkLXRvb2xiYXItc3BhY2VyPlxuICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgICAgICAgICBidXR0b25UeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAqbmdJZj1cIiFsaXZlVXBkYXRlXCJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9sb2FkaW5nXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5zdWJtaXRCdXR0b25MYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwic3VibWl0Rm9ybSgpXCJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgZ2x5cGg9XCJzeW5jaHJvbml6ZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIncGxhdGZvcm1TbWFydEZpbHRlckJhci5yZWZyZXNoQnV0dG9uQXJpYUxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzaG93RmlsdGVyaW5nU2V0dGluZ3MoKVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgZmlsdGVyc0xhYmVsXG4gICAgICAgICAgICAgICAgICAgID8gZmlsdGVyc0xhYmVsICsgJyAoJyArIF9zZWxlY3RlZEZpbHRlcnMubGVuZ3RoICsgJyknXG4gICAgICAgICAgICAgICAgICAgIDogKCdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmZpbHRlcnNCdXR0b25MYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgICB8IGZkVHJhbnNsYXRlIDogeyBmaWx0ZXJzQ291bnQ6IF9zZWxlY3RlZEZpbHRlcnMubGVuZ3RoIH0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cIl90b2dnbGVGaWx0ZXJCYXIoKVwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiXG4gICAgICAgICAgICAgICAgKF9zaG93RmlsdGVyQmFyXG4gICAgICAgICAgICAgICAgICAgID8gJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuaGlkZUZpbHRlcnNCdXR0b25MYWJlbCdcbiAgICAgICAgICAgICAgICAgICAgOiAncGxhdGZvcm1TbWFydEZpbHRlckJhci5zaG93RmlsdGVyc0J1dHRvbkxhYmVsJ1xuICAgICAgICAgICAgICAgICkgfCBmZFRyYW5zbGF0ZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGJ1dHRvblR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfbG9hZGluZ1wiXG4gICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgPC9mZC10b29sYmFyPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmZHAtc21hcnQtZmlsdGVyLWJhcl9fZmlsdGVyc1wiIFtoaWRkZW5dPVwiIV9zaG93RmlsdGVyQmFyXCI+XG4gICAgPGZkcC1mb3JtLWdlbmVyYXRvclxuICAgICAgICAoZm9ybUNyZWF0ZWQpPVwiX29uRm9ybUNyZWF0ZWQoKVwiXG4gICAgICAgIChmb3JtU3VibWl0dGVkKT1cIl9vbkZvcm1TdWJtaXR0ZWQoJGV2ZW50KVwiXG4gICAgICAgIFtub0FkZGl0aW9uYWxDb250ZW50XT1cInRydWVcIlxuICAgICAgICBbZm9ybUl0ZW1zXT1cIl9mb3JtSXRlbXNcIlxuICAgICAgICBbY29sdW1uTGF5b3V0XT1cImZpbHRlcnNDb2x1bW5MYXlvdXRcIlxuICAgID48L2ZkcC1mb3JtLWdlbmVyYXRvcj5cbjwvZGl2PlxuIl19
|
|
584
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVyLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvc21hcnQtZmlsdGVyLWJhci9zbWFydC1maWx0ZXItYmFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi9zbWFydC1maWx0ZXItYmFyL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUVMLE1BQU0sRUFFTixTQUFTLEVBRVQsU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBYyxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkcsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQVksUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFnQixhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRSxPQUFPLEVBQXlCLHdCQUF3QixFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTlHLE9BQU8sRUFHSCxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBRXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLDRCQUE0QixFQUFjLE1BQU0sa0NBQWtDLENBQUM7QUFFNUYsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1B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LHNCQUFzQjt3QkFDN0IsMkNBQTJDLEVBQUUsYUFBYTtxQkFDN0Q7MlBBT2tDLGNBQWM7c0JBQWhELFNBQVM7dUJBQUMsc0JBQXNCO2dCQU03QixPQUFPO3NCQURWLEtBQUs7Z0JBY0YsZ0JBQWdCO3NCQURuQixLQUFLO2dCQWVGLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFlRixZQUFZO3NCQURmLEtBQUs7Z0JBY0YsV0FBVztzQkFEZCxLQUFLO2dCQWNGLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFlRiwrQkFBK0I7c0JBRGxDLEtBQUs7Z0JBY04sbUJBQW1CO3NCQURsQixLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFPTixtQkFBbUI7c0JBRGxCLE1BQU07Z0JBT1AsbUJBQW1CO3NCQURsQixNQUFNO2dCQU9QLGtCQUFrQjtzQkFEakIsTUFBTTtnQkFJVSxnQkFBZ0I7c0JBRGhDLGVBQWU7dUJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxuICAgIFByb3ZpZGVyLFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlLCB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERpYWxvZ0NvbmZpZywgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgQ29sbGVjdGlvbkZpbHRlckdyb3VwLCBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUsIEZpbHRlclR5cGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL3RhYmxlJztcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zZWFyY2gtZmllbGQnO1xuaW1wb3J0IHtcbiAgICBEeW5hbWljRm9ybUZpZWxkSXRlbSxcbiAgICBEeW5hbWljRm9ybUl0ZW0sXG4gICAgRm9ybUdlbmVyYXRvckNvbXBvbmVudCxcbiAgICBGb3JtR2VuZXJhdG9yU2VydmljZSxcbiAgICBQcmVwYXJlZER5bmFtaWNGb3JtRmllbGRJdGVtXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5pbXBvcnQgeyBGRFBfUFJFU0VUX01BTkFHRURfQ09NUE9ORU5ULCBTZWxlY3RJdGVtIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuXG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclNldHRpbmdzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclN1YmplY3REaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc21hcnQtZmlsdGVyLWJhci1zdWJqZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclRvb2xiYXJJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NtYXJ0LWZpbHRlci1iYXItdG9vbGJhci1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhck1hbmFnZWRQcmVzZXQsIFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0IH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItY2hhbmdlJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItZmllbGQtZGVmaW5pdGlvbic7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1keW5hbWljLWZvcm0taXRlbSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckNvbmRpdGlvbiB9IGZyb20gJy4vaW50ZXJmYWNlcy9zbWFydC1maWx0ZXItYmFyLWNvbmRpdGlvbic7XG5pbXBvcnQgeyBTbWFydEZpbHRlclNldHRpbmdzRGlhbG9nQ29uZmlnIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItc2V0dGluZ3MtZGlhbG9nLWNvbmZpZyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhclNlcnZpY2UgfSBmcm9tICcuL3NtYXJ0LWZpbHRlci1iYXIuc2VydmljZSc7XG5pbXBvcnQgeyBTTUFSVF9GSUxURVJfQkFSX1JFTkRFUkVSX0NPTVBPTkVOVCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IFNtYXJ0RmlsdGVyQmFyVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3NtYXJ0LWZpbHRlci1iYXItdmlzaWJpbGl0eS1jYXRlZ29yeSc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhciB9IGZyb20gJy4vc21hcnQtZmlsdGVyLWJhci5jbGFzcyc7XG5pbXBvcnQgeyBTbWFydEZpbHRlckJhckNvbmRpdGlvbkZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uLWZpZWxkL3NtYXJ0LWZpbHRlci1iYXItY29uZGl0aW9uLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBnZXRTZWxlY3RJdGVtVmFsdWUgfSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyB9IGZyb20gJy4vaW50ZXJmYWNlcy9zdHJhdGVneS1sYWJlbHMudHlwZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmNvbnN0IGRlZmF1bHRDb2x1bW5zTGF5b3V0ID0gJ1hMNC1MMy1NMi1TMSc7XG5cbmZ1bmN0aW9uIGdldENvbHVtbnNOdW1iZXIobGF5b3V0OiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHJldHVybiBNYXRoLm1heChcbiAgICAgICAgLi4ubGF5b3V0LnNwbGl0KCctJykubWFwKChwYXJ0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtYXRjaEFycmF5ID0gcGFydC5tYXRjaCgvXFxkKy8pO1xuXG4gICAgICAgICAgICByZXR1cm4gbWF0Y2hBcnJheSA/IHBhcnNlSW50KG1hdGNoQXJyYXlbMF0sIDEwKSA6IDE7XG4gICAgICAgIH0pXG4gICAgKTtcbn1cblxuLyoqXG4gKiBEZWZhdWx0IGRpYWxvZyBjb25maWd1cmF0aW9uLlxuICovXG5jb25zdCBkaWFsb2dDb25maWc6IERpYWxvZ0NvbmZpZyA9IHtcbiAgICByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSxcbiAgICB2ZXJ0aWNhbFBhZGRpbmc6IHRydWUsXG4gICAgbWluV2lkdGg6ICczMHJlbScsXG4gICAgLyoqIDg4cHggaXQncyB0aGUgaGVhZGVyICsgZm9vdGVyIGhlaWdodCAqL1xuICAgIGJvZHlNaW5IZWlnaHQ6ICdjYWxjKDUwdmggLSA4OHB4KSdcbn07XG5cbmNvbnN0IHNtYXJ0RmlsdGVyQmFyUHJvdmlkZXI6IFByb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IFNtYXJ0RmlsdGVyQmFyLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50KVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtc21hcnQtZmlsdGVyLWJhcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NtYXJ0LWZpbHRlci1iYXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBzbWFydEZpbHRlckJhclByb3ZpZGVyLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRFBfUFJFU0VUX01BTkFHRURfQ09NUE9ORU5ULFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50XG4gICAgICAgIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdmZHAtc21hcnQtZmlsdGVyLWJhcicsXG4gICAgICAgICdbY2xhc3MuZmRwLXNtYXJ0LWZpbHRlci1iYXItLXRyYW5zcGFyZW50XSc6ICd0cmFuc3BhcmVudCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFNtYXJ0RmlsdGVyQmFyQ29tcG9uZW50IGV4dGVuZHMgU21hcnRGaWx0ZXJCYXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBGb3JtIGdlbmVyYXRvciBjb21wb25lbnQgaW5zdGFuY2UuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZChGb3JtR2VuZXJhdG9yQ29tcG9uZW50KSBfZm9ybUdlbmVyYXRvciE6IEZvcm1HZW5lcmF0b3JDb21wb25lbnQ7XG5cbiAgICAvKipcbiAgICAgKiBTdWJqZWN0IHdoaWNoIHdpbGwgcHJvdmlkZSBjb25maWd1cmF0aW9uIGRhdGE6IGRhdGEgc291cmNlLCBjb2x1bW5zIGRlZmluaXRpb25zLCBldGMuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc3ViamVjdCh2YWx1ZTogU21hcnRGaWx0ZXJCYXJTdWJqZWN0RGlyZWN0aXZlKSB7XG4gICAgICAgIHRoaXMuX3NldFN1YmplY3QodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBzdWJqZWN0KCk6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJqZWN0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICdTaG93IGZpbHRlcnMnIGJ1dHRvbiBsYWJlbC5cbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHNob3dGaWx0ZXJzTGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgICAgICB3YXJuT25jZSgnUHJvcGVydHkgc2hvd0ZpbHRlcnNMYWJlbCBpcyBkZXByZWNhdGVkLiBVc2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZC4nKTtcbiAgICAgICAgdGhpcy5fc2hvd0ZpbHRlcnNMYWJlbCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBzaG93RmlsdGVyc0xhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaG93RmlsdGVyc0xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICdIaWRlIGZpbHRlcnMnIGJ1dHRvbiBsYWJlbC5cbiAgICAgKiBAZGVwcmVjYXRlZCB1c2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGhpZGVGaWx0ZXJzTGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgICAgICB3YXJuT25jZSgnUHJvcGVydHkgaGlkZUZpbHRlcnNMYWJlbCBpcyBkZXByZWNhdGVkLiBVc2UgaTE4biBjYXBhYmlsaXRpZXMgaW5zdGVhZC4nKTtcbiAgICAgICAgdGhpcy5faGlkZUZpbHRlcnNMYWJlbCA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBoaWRlRmlsdGVyc0xhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oaWRlRmlsdGVyc0xhYmVsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqICdGaWx0ZXJzJyBidXR0b24gbGFiZWwuXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWx0ZXJzTGFiZWwodmFsdWU6IHN0cmluZykge1xuICAgICAgICB3YXJuT25jZSgnUHJvcGVydHkgZmlsdGVyc0xhYmVsIGlzIGRlcHJlY2F0ZWQuIFVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzTGFiZWwgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBnZXQgZmlsdGVyc0xhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXJzTGFiZWw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBzbWFydCBmaWx0ZXIgYmFyIGJhY2tncm91bmQgc2hvdWxkIGJlIHRyYW5zcGFyZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHRyYW5zcGFyZW50KHZhbHVlOiBCb29sZWFuSW5wdXQpIHtcbiAgICAgICAgdGhpcy5fdHJhbnNwYXJlbnQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCB0cmFuc3BhcmVudCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyYW5zcGFyZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXByZWNhdGVkIHVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkXG4gICAgICogQ29uZGl0aW9uIHN0cmF0ZWd5IGxhYmVscy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBkZWZpbmVTdHJhdGVneUxhYmVscyh2YWx1ZTogU21hcnRGaWx0ZXJCYXJTdHJhdGVneUxhYmVscyB8IHVuZGVmaW5lZCkge1xuICAgICAgICB3YXJuT25jZSgnUHJvcGVydHkgZGVmaW5lU3RyYXRlZ3lMYWJlbHMgaXMgZGVwcmVjYXRlZC4gVXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWQuJyk7XG4gICAgICAgIHRoaXMuX2RlZmluZVN0cmF0ZWd5TGFiZWxzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGRlZmluZVN0cmF0ZWd5TGFiZWxzKCk6IFNtYXJ0RmlsdGVyQmFyU3RyYXRlZ3lMYWJlbHMgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVmaW5lU3RyYXRlZ3lMYWJlbHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlIGkxOG4gY2FwYWJpbGl0aWVzIGluc3RlYWRcbiAgICAgKiBGaWx0ZXJzIHZpc2liaWxpdHkgY2F0ZWdvcnkgbGFiZWxzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcnNWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHModmFsdWU6IFNtYXJ0RmlsdGVyQmFyVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIHdhcm5PbmNlKCdQcm9wZXJ0eSBmaWx0ZXJzVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzIGlzIGRlcHJlY2F0ZWQuIFVzZSBpMThuIGNhcGFiaWxpdGllcyBpbnN0ZWFkLicpO1xuICAgICAgICB0aGlzLl9maWx0ZXJzVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IGZpbHRlcnNWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMoKTogU21hcnRGaWx0ZXJCYXJWaXNpYmlsaXR5Q2F0ZWdvcnlMYWJlbHMgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyc1Zpc2liaWxpdHlDYXRlZ29yeUxhYmVscztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb2x1bW5zIGxheW91dC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZpbHRlcnNDb2x1bW5MYXlvdXQ6IE51bGxhYmxlPHN0cmluZz4gPSBkZWZhdWx0Q29sdW1uc0xheW91dDtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gdXBkYXRlIGZpbHRlcnMgd2hlbiB0aGV5IGFyZSBzZWxlY3RlZC4gT3RoZXJ3aXNlLCBmaWx0ZXJzIHdpbGwgYmUgYXBwbGllZCBvbmx5IGJ5IHByZXNzaW5nIFwiR29cIiBidXR0b24uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBsaXZlVXBkYXRlID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNlbGVjdGVkIGZpbHRlcnMgaGF2ZSBiZWVuIGNoYW5nZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgc21hcnRGaWx0ZXJzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPFNtYXJ0RmlsdGVyQ2hhbmdlT2JqZWN0PiA9IG5ldyBFdmVudEVtaXR0ZXI8U21hcnRGaWx0ZXJDaGFuZ2VPYmplY3Q+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gc2VsZWN0ZWQgZmlsdGVycyBoYXMgYmVlbiBhcHBsaWVkIChVc2VyIGNsaWNrZWQgb24gR28gYnV0dG9uKS5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzbWFydEZpbHRlcnNBcHBsaWVkOiBFdmVudEVtaXR0ZXI8U21hcnRGaWx0ZXJDaGFuZ2VPYmplY3Q+ID0gbmV3IEV2ZW50RW1pdHRlcjxTbWFydEZpbHRlckNoYW5nZU9iamVjdD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGVtaXR0ZWQgd2hlbiBzZWFyY2ggaW5wdXQgZmllbGQgdmFsdWUgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzZWFyY2hJbnB1dENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxTZWFyY2hJbnB1dD4gPSBuZXcgRXZlbnRFbWl0dGVyPFNlYXJjaElucHV0PigpO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTbWFydEZpbHRlckJhclRvb2xiYXJJdGVtRGlyZWN0aXZlKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3Rvb2xiYXJJdGVtUmVmczogUXVlcnlMaXN0PFNtYXJ0RmlsdGVyQmFyVG9vbGJhckl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqXG4gICAgICogQ2FsY3VsYXRlZCBhcnJheSBvZiBmaWx0ZXJzIHRvIGFwcGx5IGZvciB0aGUgc3ViamVjdCdzIGRhdGEgc291cmNlLlxuICAgICAqL1xuICAgIGZpbHRlckJ5OiBDb2xsZWN0aW9uRmlsdGVyR3JvdXBbXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogU2VhcmNoIGZpZWxkIHZhbHVlIHRvIGFwcGx5IGZvciB0aGUgc3ViamVjdCdzIGRhdGEgc291cmNlLlxuICAgICAqL1xuICAgIHNlYXJjaDogU2VhcmNoSW5wdXQgfCB1bmRlZmluZWQ7XG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBfdG9vbGJhckl0ZW1zOiBUZW1wbGF0ZVJlZjxhbnk+W10gPSBbXTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9mb3JtSXRlbXM6IER5bmFtaWNGb3JtSXRlbVtdO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX3NlbGVjdGVkRmlsdGVyczogc3RyaW5nW10gPSBbXTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG93RmlsdGVyQmFyID0gdHJ1ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZ2V0IF9sb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViamVjdD8uZ2V0RGF0YVNvdXJjZSgpID8gdGhpcy5fc3ViamVjdC5nZXREYXRhU291cmNlKCkuaXNEYXRhTG9hZGluZyA6IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oaWRlRmlsdGVyc0xhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Nob3dGaWx0ZXJzTGFiZWw6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZmlsdGVyc0xhYmVsOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2RlZmluZVN0cmF0ZWd5TGFiZWxzOiBTbWFydEZpbHRlckJhclN0cmF0ZWd5TGFiZWxzIHwgdW5kZWZpbmVkO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9maWx0ZXJzVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzOiBTbWFydEZpbHRlckJhclZpc2liaWxpdHlDYXRlZ29yeUxhYmVscyB8IHVuZGVmaW5lZDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3ViamVjdFN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RyYW5zcGFyZW50ID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm1HZW5lcmF0b3JSZWFkeSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pZ25vcmVQcmVzZXRDaGFuZ2UgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3ViamVjdCE6IFNtYXJ0RmlsdGVyQmFyU3ViamVjdERpcmVjdGl2ZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyQmFyU2VydmljZTogU21hcnRGaWx0ZXJCYXJTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9mZ1NlcnZpY2U6IEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9pbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rlc3Ryb3lSZWY6IERlc3Ryb3lSZWZcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5fZmdTZXJ2aWNlLmFkZENvbXBvbmVudChTbWFydEZpbHRlckJhckNvbmRpdGlvbkZpZWxkQ29tcG9uZW50LCBbU01BUlRfRklMVEVSX0JBUl9SRU5ERVJFUl9DT01QT05FTlRdKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW1zID0gdGhpcy5fdG9vbGJhckl0ZW1SZWZzLnRvQXJyYXkoKS5tYXAoKHJlZikgPT4gcmVmLnRlbXBsYXRlUmVmKTtcblxuICAgICAgICB0aGlzLl90b29sYmFySXRlbVJlZnMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdG9vbGJhckl0ZW1zID0gdGhpcy5fdG9vbGJhckl0ZW1SZWZzLnRvQXJyYXkoKS5tYXAoKHJlZikgPT4gcmVmLnRlbXBsYXRlUmVmKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLl91bnN1YnNjcmliZUZyb21TdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJhbnNmb3JtcyBjb25kaXRpb24gdmFsdWUgaW50byBodW1hbi1yZWFkYWJsZSB0ZXh0LlxuICAgICAqIEBwYXJhbSBjb25kaXRpb24gU21hcnQgZmlsdGVyIGJhciBjb25kaXRpb24uXG4gICAgICogQHBhcmFtIGZpbHRlclR5cGUgQ29uZGl0aW9uIGZpbHRlciB0eXBlLlxuICAgICAqL1xuICAgIGFzeW5jIGdldERpc3BsYXlWYWx1ZShjb25kaXRpb246IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uLCBmaWx0ZXJUeXBlOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJCYXJTZXJ2aWNlLmdldERpc3BsYXlWYWx1ZShjb25kaXRpb24sIGZpbHRlclR5cGUpO1xuICAgIH1cblxuICAgIC8qKiBPcGVuIEZpbHRlcmluZyBTZXR0aW5ncyBEaWFsb2cgKi9cbiAgICBzaG93RmlsdGVyaW5nU2V0dGluZ3MoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGNvbHVtbnMgPSB0aGlzLl9nZXRTdWJqZWN0RGVmaW5pdGlvbnMoKTtcbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogU21hcnRGaWx0ZXJTZXR0aW5nc0RpYWxvZ0NvbmZpZyA9IHtcbiAgICAgICAgICAgIGZpZWxkczogY29sdW1ucyxcbiAgICAgICAgICAgIGZpbHRlckJ5OiB0aGlzLmZpbHRlckJ5LFxuICAgICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJzOiB0aGlzLl9zZWxlY3RlZEZpbHRlcnMsXG4gICAgICAgICAgICB2aXNpYmlsaXR5Q2F0ZWdvcmllczogdGhpcy5maWx0ZXJzVmlzaWJpbGl0eUNhdGVnb3J5TGFiZWxzXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKFxuICAgICAgICAgICAgU21hcnRGaWx0ZXJCYXJTZXR0aW5nc0RpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi5kaWFsb2dDb25maWcsXG4gICAgICAgICAgICAgICAgZGlzYWJsZVBhZGRpbmdzOiB0cnVlLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnNTByZW0nLFxuICAgICAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGFcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0aGlzLl9pbmplY3RvclxuICAgICAgICApO1xuXG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZC5waXBlKHRha2UoMSkpLnN1YnNjcmliZSgoc2VsZWN0ZWRGaWx0ZXJzOiBzdHJpbmdbXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fc2V0U2VsZWN0ZWRGaWx0ZXJzKHNlbGVjdGVkRmlsdGVycyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX29uU2VhcmNoSW5wdXRDaGFuZ2UoZXZlbnQ6IFNlYXJjaElucHV0KTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VhcmNoID0gZXZlbnQ7XG4gICAgICAgIHRoaXMuc2VhcmNoSW5wdXRDaGFuZ2VkLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgX2NhbmNlbFNlYXJjaCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWFyY2ggPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgaWYgKHRoaXMubGl2ZVVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zdWJtaXRGb3JtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdWJtaXRzIGZpbHRlcnMgYW5kIHNlYXJjaCBmb3JtLlxuICAgICAqL1xuICAgIHN1Ym1pdEZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Zvcm1HZW5lcmF0b3Iuc3VibWl0KCk7XG4gICAgfVxuXG4gICAgLyoqIE1ldGhvZCBmb3Igc2V0dGluZyBwcmVkZWZpbmVkIGNvbmZpZ3VyYXRpb24uICovXG4gICAgYXN5bmMgc2V0UHJlc2V0KGRhdGE6IFNtYXJ0RmlsdGVyQmFyTWFuYWdlZFByZXNldCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLl9pZ25vcmVQcmVzZXRDaGFuZ2UgPSB0cnVlO1xuICAgICAgICBkYXRhLmZpbHRlckJ5ID0gZGF0YS5maWx0ZXJCeSB8fCBbXTtcbiAgICAgICAgdGhpcy5maWx0ZXJCeSA9IGRhdGEuZmlsdGVyQnk7XG4gICAgICAgIHRoaXMuc2VhcmNoID0gZGF0YS5zZWFyY2g7XG5cbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvclJlYWR5LnBpcGUoZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUpKS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgLy8gUmVzZXQgZm9ybVxuICAgICAgICAgICAgdGhpcy5fZmdTZXJ2aWNlLnJlc2V0Rm9ybSh0aGlzLl9mb3JtR2VuZXJhdG9yLmZvcm0pO1xuXG4gICAgICAgICAgICAvLyBTZXQgbmV3IGRhdGFcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmlsdGVyQnkgb2YgdGhpcy5maWx0ZXJCeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9mZ1NlcnZpY2UuZ2V0Rm9ybUNvbnRyb2wodGhpcy5fZm9ybUdlbmVyYXRvci5mb3JtLCBmaWx0ZXJCeS5maWVsZCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSBjb250cm9sLmZvcm1JdGVtIGFzIFByZXBhcmVkRHluYW1pY0Zvcm1GaWVsZEl0ZW07XG5cbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb24gPSB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UudHJhbnNmb3JtQ29sbGVjdGlvbkZpbHRlcihmaWx0ZXJCeSk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZENvbmRpdGlvbnMgPSBhd2FpdCB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UuZ2V0Q29uZGl0aW9uRmllbGRTZWxlY3RlZFZhcmlhbnRzKFxuICAgICAgICAgICAgICAgICAgICBmb3JtSXRlbSxcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb250cm9sPy5zZXRWYWx1ZShzZWxlY3RlZENvbmRpdGlvbnMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEZpbHRlcnModGhpcy5maWx0ZXJCeS5tYXAoKGZpbHRlckJ5KSA9PiBmaWx0ZXJCeS5maWVsZCkpO1xuXG4gICAgICAgICAgICBjb25zdCBzb3VyY2UgPSB0aGlzLnN1YmplY3QuZ2V0RGF0YVNvdXJjZSgpO1xuICAgICAgICAgICAgc291cmNlLmRhdGFQcm92aWRlci5zZXRGaWx0ZXJzKHRoaXMuZmlsdGVyQnksIHRoaXMuc2VhcmNoKTtcbiAgICAgICAgICAgIHRoaXMuc3ViamVjdC5nZXRTdWJqZWN0KCkuZmV0Y2goKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIFJldHVybnMgY3VycmVudCBwcmVzZXQgY29uZmlndXJhdGlvbi4gKi9cbiAgICBnZXRDdXJyZW50UHJlc2V0KCk6IFNtYXJ0RmlsdGVyQmFyTWFuYWdlZFByZXNldCB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzZWFyY2g6IHRoaXMuc2VhcmNoLFxuICAgICAgICAgICAgZmlsdGVyQnk6IHRoaXMuZmlsdGVyQnlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQ2FsbGJhY2sgZnVuY3Rpb24gd2hlbiBmb3JtIGdlbmVyYXRvciBmb3JtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSB2YWxpZGF0ZWQgYW5kIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBfb25Gb3JtU3VibWl0dGVkKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IHRoaXMuX2dlbmVyYXRlQ29sbGVjdGlvbkZpbHRlckdyb3VwcyhldmVudCk7XG4gICAgICAgIHRoaXMuX2FwcGx5RmlsdGVyaW5nKGNvbmRpdGlvbnMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBDYWxsYmFjayBtZXRob2Qgd2hlbiBmb3JtIGhhcyBiZWVuIGNyZWF0ZWQuXG4gICAgICogUG9wdWxhdGVzIHNlbGVjdGVkIGZpbHRlcnMgYXJyYXkgd2l0aCB1c2VyLWRlZmluZWQgZGVmYXVsdCBmaWx0ZXJzLlxuICAgICAqL1xuICAgIF9vbkZvcm1DcmVhdGVkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zdWJqZWN0KSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRTZWxlY3RlZEZpbHRlcnMoWy4uLnRoaXMuc3ViamVjdC5nZXREZWZhdWx0RmllbGRzKCksIC4uLnRoaXMuX3NlbGVjdGVkRmlsdGVyc10pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvci5mb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29uZGl0aW9ucyA9IGF3YWl0IHRoaXMuZ2V0Rm9ybWF0dGVkQ29uZGl0aW9ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc21hcnRGaWx0ZXJzQ2hhbmdlZC5lbWl0KHsgZmlsdGVyQnk6IGNvbmRpdGlvbnMsIHNlYXJjaDogdGhpcy5zZWFyY2gsIHN1YmplY3Q6IHRoaXMuc3ViamVjdCB9KTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5saXZlVXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fYXBwbHlGaWx0ZXJpbmcoY29uZGl0aW9ucyk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl9mb3JtR2VuZXJhdG9yUmVhZHkubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3RvZ2dsZUZpbHRlckJhcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2hvd0ZpbHRlckJhciA9ICF0aGlzLl9zaG93RmlsdGVyQmFyO1xuICAgICAgICB0aGlzLl9jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9ybWF0cyByYXcgZmlsdGVycyBvYmplY3QgaW50byBhcnJheSBvZiBncm91cGVkIGZpbHRlcnMuXG4gICAgICogQHJldHVybnMgQXJyYXkgb2YgZ3JvdXBlZCBmaWx0ZXJzLlxuICAgICAqL1xuICAgIGFzeW5jIGdldEZvcm1hdHRlZENvbmRpdGlvbnMoKTogUHJvbWlzZTxDb2xsZWN0aW9uRmlsdGVyR3JvdXBbXT4ge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSBhd2FpdCB0aGlzLl9mZ1NlcnZpY2UuZ2V0Rm9ybVZhbHVlKHRoaXMuX2Zvcm1HZW5lcmF0b3IuZm9ybSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZW5lcmF0ZUNvbGxlY3Rpb25GaWx0ZXJHcm91cHMoZm9ybVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlQ29sbGVjdGlvbkZpbHRlckdyb3Vwcyh2YWx1ZToge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBTbWFydEZpbHRlckJhckNvbmRpdGlvbltdO1xuICAgIH0pOiBDb2xsZWN0aW9uRmlsdGVyR3JvdXBbXSB7XG4gICAgICAgIGNvbnN0IGNvbGxlY3Rpb25GaWx0ZXJHcm91cHM6IENvbGxlY3Rpb25GaWx0ZXJHcm91cFtdID0gW107XG5cbiAgICAgICAgY29uc3QgY29sdW1ucyA9IHRoaXMuX2dldFN1YmplY3REZWZpbml0aW9ucygpO1xuXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHZhbHVlKVxuICAgICAgICAgICAgLmZpbHRlcigoWywgZmllbGRDb25kaXRpb25zXSkgPT4gISFmaWVsZENvbmRpdGlvbnMpXG4gICAgICAgICAgICAuZm9yRWFjaCgoW2ZpZWxkTmFtZSwgZmllbGRDb25kaXRpb25zXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGNvbHVtbnMuZmluZCgoYykgPT4gYy5uYW1lID09PSBmaWVsZE5hbWUpIGFzIFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlckdyb3VwOiBDb2xsZWN0aW9uRmlsdGVyR3JvdXAgPSB7XG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcnM6IFtdLFxuICAgICAgICAgICAgICAgICAgICBzdHJhdGVneTogY29sdW1uLmNvbmRpdGlvblN0cmF0ZWd5LFxuICAgICAgICAgICAgICAgICAgICBmaWVsZDogY29sdW1uLmtleVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZmllbGRDb25kaXRpb25zLmZvckVhY2goKGNvbmRpdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmaWx0ZXJHcm91cC5maWx0ZXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RyYXRlZ3k6IGNvbmRpdGlvbi5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2x1bW4ua2V5LFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGNvbmRpdGlvbi52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlMjogY29uZGl0aW9uLnZhbHVlMixcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbHVtbi5kYXRhVHlwZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25GaWx0ZXJHcm91cHMucHVzaChmaWx0ZXJHcm91cCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZW1vdmUgZW1wdHkgZmlsdGVyIG9iamVjdHMuXG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uRmlsdGVyR3JvdXBzLmZpbHRlcigoZmlsdGVyR3JvdXApID0+IGZpbHRlckdyb3VwLmZpbHRlcnM/Lmxlbmd0aCA+IDApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0U3ViamVjdChzdWJqZWN0OiBTbWFydEZpbHRlckJhclN1YmplY3REaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFzdWJqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9zdWJqZWN0ID0gc3ViamVjdDtcbiAgICAgICAgdGhpcy51bnN1YnNjcmliZUZyb21TdWJqZWN0KCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvU3ViamVjdENvbHVtbnMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgdW5zdWJzY3JpYmVGcm9tU3ViamVjdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9zdWJqZWN0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2xpc3RlblRvU3ViamVjdENvbHVtbnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YmplY3RTdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgICAgIHRoaXMuX3N1YmplY3QuZmllbGRzU3RyZWFtLnN1YnNjcmliZShhc3luYyAoY29sdW1uczogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb25bXSkgPT4ge1xuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLl9nZW5lcmF0ZUZvcm0oY29sdW1ucy5maWx0ZXIoKGMpID0+IGMuZmlsdGVyYWJsZSkpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2VuZXJhdGVzIGZvcm0gaXRlbXMgdG8gYmUgY29uc3VtZWQgYnkgZm9ybSBnZW5lcmF0b3IgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSBjb2x1bW5zIGNvbHVtbnMgZGVmaW5pdGlvblxuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2dlbmVyYXRlRm9ybShjb2x1bW5zOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbltdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiBEeW5hbWljRm9ybUZpZWxkSXRlbVtdID0gW107XG4gICAgICAgIGNvbnN0IGNvbHVtbnNOdW1iZXIgPSBnZXRDb2x1bW5zTnVtYmVyKHRoaXMuZmlsdGVyc0NvbHVtbkxheW91dCA/PyAnJyk7XG4gICAgICAgIGxldCBjdXJyZW50Q29sdW1uID0gMTtcblxuICAgICAgICBpZiAoY29sdW1ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PiB7XG4gICAgICAgICAgICBsZXQgaXRlbTogU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbSA9IHRoaXMuX2dlbmVyYXRlQmFzZUZpZWxkSXRlbShjb2x1bW4pO1xuXG4gICAgICAgICAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRGaWx0ZXJzLnB1c2goY29sdW1uLm5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzd2l0Y2ggKGNvbHVtbi5maWx0ZXJUeXBlKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLlNJTkdMRTpcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuQ0FURUdPUlk6XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gJ3NlbGVjdCc7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5pbmxpbmUgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLk1VTFRJOlxuICAgICAgICAgICAgICAgICAgICBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEudHlwZSA9ICdtdWx0aS1pbnB1dCc7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5DVVNUT006XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0gPSB0aGlzLl9nZW5lcmF0ZUN1c3RvbUZpbHRlckZpZWxkSXRlbShjb2x1bW4sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuSU5QVVQ6XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuX2dlbmVyYXRlSW5wdXRGaWVsZEl0ZW0oY29sdW1uLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5jb2x1bW4gPSBjdXJyZW50Q29sdW1uO1xuICAgICAgICAgICAgY3VycmVudENvbHVtbiArPSAxO1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudENvbHVtbiA+IGNvbHVtbnNOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICBjdXJyZW50Q29sdW1uID0gMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybUl0ZW1zID0gaXRlbXM7XG5cbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dlbmVyYXRlQ3VzdG9tRmlsdGVyRmllbGRJdGVtKFxuICAgICAgICBjb2x1bW46IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uLFxuICAgICAgICBpdGVtOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKTogU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbSB7XG4gICAgICAgIGlmICghY29sdW1uLmN1c3RvbUZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9XG4gICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gY29sdW1uLmN1c3RvbUZpbHRlclR5cGU7XG4gICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YSA9IE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAgICBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEsXG4gICAgICAgICAgICB0aGlzLl9zbWFydEZpbHRlckJhclNlcnZpY2UuZ2V0Q3VzdG9tRmlsdGVyQ29uZmlndXJhdGlvbihjb2x1bW4uY3VzdG9tRmlsdGVyVHlwZSlcbiAgICAgICAgKTtcblxuICAgICAgICBpdGVtLnR5cGUgPSBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEucmVuZGVyZXJDb21wb25lbnRcbiAgICAgICAgICAgID8gYCR7aXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLnR5cGV9LXJlbmRlcmVyYFxuICAgICAgICAgICAgOiBpdGVtLnR5cGU7XG4gICAgICAgIGl0ZW0udHJhbnNmb3JtZXIgPSBpdGVtLmd1aU9wdGlvbnMuYWRkaXRpb25hbERhdGEudmFsdWVUcmFuc2Zvcm1lcjtcblxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogR2VuZXJhdGVzIGZvcm0gaXRlbSBiYXNlZCBvbiBkYXRhIHR5cGUuXG4gICAgICogQHBhcmFtIGNvbHVtblxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9nZW5lcmF0ZUlucHV0RmllbGRJdGVtKFxuICAgICAgICBjb2x1bW46IFNtYXJ0RmlsdGVyQmFyRmllbGREZWZpbml0aW9uLFxuICAgICAgICBpdGVtOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtXG4gICAgKTogU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbSB7XG4gICAgICAgIHN3aXRjaCAoY29sdW1uLmRhdGFUeXBlKSB7XG4gICAgICAgICAgICBjYXNlIEZpbHRlcmFibGVDb2x1bW5EYXRhVHlwZS5EQVRFOlxuICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS50eXBlID0gJ2RhdGVwaWNrZXInO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUuTlVNQkVSOlxuICAgICAgICAgICAgICAgIGl0ZW0uZ3VpT3B0aW9ucy5hZGRpdGlvbmFsRGF0YS5jb250cm9sVHlwZSA9ICdudW1iZXInO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJhYmxlQ29sdW1uRGF0YVR5cGUuQk9PTEVBTjpcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyYWJsZUNvbHVtbkRhdGFUeXBlLlNUUklORzpcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgaXRlbS5ndWlPcHRpb25zLmFkZGl0aW9uYWxEYXRhLmNvbnRyb2xUeXBlID0gJ3RleHQnO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEdlbmVyYXRlcyBiYXNlIGZvcm0gaXRlbSBvYmplY3QgdG8gYmUgY29uc3VtZWQgYnkgZm9ybSBnZW5lcmF0b3IgY29tcG9uZW50LlxuICAgICAqIEBwYXJhbSBjb2x1bW4gY29sdW1uIGRlZmluaXRpb25cbiAgICAgKiBAcmV0dXJucyBiYXNlIGZvcm0gaXRlbSBvYmplY3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZ2VuZXJhdGVCYXNlRmllbGRJdGVtKGNvbHVtbjogU21hcnRGaWx0ZXJCYXJGaWVsZERlZmluaXRpb24pOiBTbWFydEZpbHRlckJhckR5bmFtaWNGb3JtRmllbGRJdGVtIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGNvbHVtbi5uYW1lLFxuICAgICAgICAgICAgbWVzc2FnZTogY29sdW1uLmxhYmVsLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGNvbHVtbi5yZXF1aXJlZCxcbiAgICAgICAgICAgIHR5cGU6IFNNQVJUX0ZJTFRFUl9CQVJfUkVOREVSRVJfQ09NUE9ORU5ULFxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6ICcgJyxcbiAgICAgICAgICAgIHZhbGlkYXRvcnM6IGNvbHVtbi5yZXF1aXJlZCA/IFtWYWxpZGF0b3JzLnJlcXVpcmVkXSA6IFtdLFxuICAgICAgICAgICAgY2hvaWNlczogY29sdW1uLmhhc09wdGlvbnMgPyB0aGlzLl9nZXRGaWx0ZXJEZWZhdWx0T3B0aW9ucyhjb2x1bW4ua2V5LCBjb2x1bW4uZmlsdGVyVHlwZSkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICB0cmFuc2Zvcm1lcjogKGl0ZW1WYWx1ZSkgPT4gZ2V0U2VsZWN0SXRlbVZhbHVlKGl0ZW1WYWx1ZSksXG4gICAgICAgICAgICBndWlPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgYWRkaXRpb25hbERhdGE6IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IGNvbHVtbi5kYXRhVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyVHlwZTogY29sdW1uLmZpbHRlclR5cGUsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUeXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgICAgICAgIGNob2ljZXM6IGNvbHVtbi5oYXNPcHRpb25zID8gdGhpcy5fZ2V0RmlsdGVyQXZhaWxhYmxlT3B0aW9ucyhjb2x1bW4ua2V5KSA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3aGVuOiAoKSA9PiB0aGlzLl9zZWxlY3RlZEZpbHRlcnMuaW5jbHVkZXMoY29sdW1uLm5hbWUpXG4gICAgICAgIH0gYXMgU21hcnRGaWx0ZXJCYXJEeW5hbWljRm9ybUZpZWxkSXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogUmV0cmlldmVzIGF2YWlsYWJsZSBvcHRpb25zIGZvciBwYXJ0aWN1bGFyIGNvbHVtbiBieSB1c2luZyBkYXRhIHNvdXJjZSBtZXRob2QuXG4gICAgICogQHBhcmFtIGNvbHVtbiBwcm9wZXJ0eSBuYW1lIG9mIHRoZSBkYXRhIHNvdXJjZSBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxTZWxlY3RJdGVtW10+fSBPYnNlcnZhYmxlIHdpdGggdGhlIGFycmF5IG9mIGF2YWlsYWJsZSBvcHRpb25zLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEZpbHRlckF2YWlsYWJsZU9wdGlvbnMoY29sdW1uOiBzdHJpbmcpOiAoKSA9PiBPYnNlcnZhYmxlPFNlbGVjdEl0ZW1bXT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4gdGhpcy5fZ2V0RmllbGRWYXJpYW50cyhjb2x1bW4pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0RmlsdGVyRGVmYXVsdE9wdGlvbnMoY29sdW1uOiBzdHJpbmcsIGZpbHRlclR5cGU6IEZpbHRlclR5cGUpOiAoKSA9PiBQcm9taXNlPGFueVtdPiB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYW50cyA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKHRoaXMuX2dldEZpZWxkVmFyaWFudHMoY29sdW1uKS5waXBlKHRha2UoMSkpKTtcblxuICAgICAgICAgICAgY29uc3QgYXZhaWxhYmxlRGVmYXVsdENvbmRpdGlvbnM6IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uW10gPSBbXTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBvcHRpb24gb2YgdmFyaWFudHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb25kaXRpb246IFNtYXJ0RmlsdGVyQmFyQ29uZGl0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogJ2VxdWFsVG8nXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbi5kaXNwbGF5VmFsdWUgPSBhd2FpdCB0aGlzLmdldERpc3BsYXlWYWx1ZShjb25kaXRpb24sIGZpbHRlclR5cGUpO1xuXG4gICAgICAgICAgICAgICAgYXZhaWxhYmxlRGVmYXVsdENvbmRpdGlvbnMucHVzaChjb25kaXRpb24pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYXZhaWxhYmxlRGVmYXVsdENvbmRpdGlvbnM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9nZXRGaWVsZFZhcmlhbnRzKGNvbHVtbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxTZWxlY3RJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdC5nZXRGaWVsZFZhcmlhbnRzKGNvbHVtbikucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBtYXAoKGRhdGEpID0+IGRhdGEuZmlsdGVyKChpdGVtLCBpbmRleCkgPT4gZGF0YS5maW5kSW5kZXgoKF9pdGVtKSA9PiBfaXRlbS52YWx1ZSA9PT0gaXRlbS52YWx1ZSkgPT09IGluZGV4KSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFN1YmplY3REZWZpbml0aW9ucygpOiBTbWFydEZpbHRlckJhckZpZWxkRGVmaW5pdGlvbltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3ViamVjdD8uZ2V0U3ViamVjdEZpZWxkcygpIHx8IFtdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBTZXRzIHByb3ZpZGVkIGZpbHRlcnMgZGlyZWN0bHkgdG8gdGhlIGRhdGEgc291cmNlLlxuICAgICAqIEBwYXJhbSBmaWx0ZXJzIGFycmF5IG9mIGZpbHRlcnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfYXBwbHlGaWx0ZXJpbmcoZmlsdGVyczogQ29sbGVjdGlvbkZpbHRlckdyb3VwW10pOiB2b2lkIHtcbiAgICAgICAgLy8gQXBwbHkgb3V0c2lkZSBmaWx0ZXJpbmcgYW5kIGZvcmNlIHN1YmplY3QgdG8gZmV0Y2ggbmV3IGRhdGEuXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IHRoaXMuc3ViamVjdC5nZXREYXRhU291cmNlKCk7XG4gICAgICAgIHRoaXMuZmlsdGVyQnkgPSBmaWx0ZXJzO1xuICAgICAgICBzb3VyY2UuZGF0YVByb3ZpZGVyLnNldEZpbHRlcnMoZmlsdGVycywgdGhpcy5zZWFyY2gpO1xuICAgICAgICB0aGlzLnN1YmplY3QuZ2V0U3ViamVjdCgpLmZldGNoKCk7XG4gICAgICAgIGNvbnN0IGVtaXR0ZWRWYWx1ZTogU21hcnRGaWx0ZXJCYXJNYW5hZ2VkUHJlc2V0ID0geyBzZWFyY2g6IHRoaXMuc2VhcmNoLCBmaWx0ZXJCeTogdGhpcy5maWx0ZXJCeSB9O1xuICAgICAgICB0aGlzLnNtYXJ0RmlsdGVyc0FwcGxpZWQuZW1pdCh7IC4uLmVtaXR0ZWRWYWx1ZSwgc3ViamVjdDogdGhpcy5fc3ViamVjdCB9KTtcblxuICAgICAgICBpZiAoIXRoaXMuX2lnbm9yZVByZXNldENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5wcmVzZXRDaGFuZ2VkLmVtaXQoZW1pdHRlZFZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9pZ25vcmVQcmVzZXRDaGFuZ2UgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vuc3Vic2NyaWJlRnJvbVN1YmplY3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N1YmplY3RTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuX3N1YmplY3RTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0U2VsZWN0ZWRGaWx0ZXJzKGZpbHRlcnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkRmlsdGVycyA9IGZpbHRlcnMuZmlsdGVyKChmOiBzdHJpbmcsIGk6IG51bWJlcikgPT4gZmlsdGVycy5pbmRleE9mKGYpID09PSBpKTtcbiAgICAgICAgdGhpcy5fZm9ybUdlbmVyYXRvci5yZWZyZXNoU3RlcHNWaXNpYmlsaXR5KCk7XG4gICAgfVxufVxuIiwiPGRpdj5cbiAgICA8ZmQtdG9vbGJhciBbaGFzVGl0bGVdPVwidHJ1ZVwiIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfdG9vbGJhckl0ZW1zXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCB0ZW1wbGF0ZSBvZiBfdG9vbGJhckl0ZW1zXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8ZmQtdG9vbGJhci1zZXBhcmF0b3I+PC9mZC10b29sYmFyLXNlcGFyYXRvcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGZkcC1zZWFyY2gtZmllbGRcbiAgICAgICAgICAgIChpbnB1dENoYW5nZSk9XCJfb25TZWFyY2hJbnB1dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChzZWFyY2hTdWJtaXQpPVwic3VibWl0Rm9ybSgpXCJcbiAgICAgICAgICAgIChjYW5jZWxTZWFyY2gpPVwiX2NhbmNlbFNlYXJjaCgpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfbG9hZGluZ1wiXG4gICAgICAgICAgICBbZGlzYWJsZVJlZnJlc2hdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuc2VhcmNoUGxhY2Vob2xkZXInIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICA+PC9mZHAtc2VhcmNoLWZpZWxkPlxuICAgICAgICA8ZmQtdG9vbGJhci1zcGFjZXI+PC9mZC10b29sYmFyLXNwYWNlcj5cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJzdWJtaXRGb3JtKClcIlxuICAgICAgICAgICAgYnV0dG9uVHlwZT1cImVtcGhhc2l6ZWRcIlxuICAgICAgICAgICAgKm5nSWY9XCIhbGl2ZVVwZGF0ZVwiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJfbG9hZGluZ1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuc3VibWl0QnV0dG9uTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgICAgICA8ZmRwLWJ1dHRvblxuICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cbiAgICAgICAgICAgIGdseXBoPVwic3luY2hyb25pemVcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9sb2FkaW5nXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIucmVmcmVzaEJ1dHRvbkFyaWFMYWJlbCcgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2ZkcC1idXR0b24+XG4gICAgICAgIDxmZHAtYnV0dG9uXG4gICAgICAgICAgICAoY2xpY2spPVwic2hvd0ZpbHRlcmluZ1NldHRpbmdzKClcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgIGZpbHRlcnNMYWJlbFxuICAgICAgICAgICAgICAgICAgICA/IGZpbHRlcnNMYWJlbCArICcgKCcgKyBfc2VsZWN0ZWRGaWx0ZXJzLmxlbmd0aCArICcpJ1xuICAgICAgICAgICAgICAgICAgICA6ICgncGxhdGZvcm1TbWFydEZpbHRlckJhci5maWx0ZXJzQnV0dG9uTGFiZWwnXG4gICAgICAgICAgICAgICAgICAgICAgfCBmZFRyYW5zbGF0ZSA6IHsgZmlsdGVyc0NvdW50OiBfc2VsZWN0ZWRGaWx0ZXJzLmxlbmd0aCB9KVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIl9sb2FkaW5nXCJcbiAgICAgICAgPjwvZmRwLWJ1dHRvbj5cbiAgICAgICAgPGZkcC1idXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJfdG9nZ2xlRmlsdGVyQmFyKClcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIlxuICAgICAgICAgICAgICAgIChfc2hvd0ZpbHRlckJhclxuICAgICAgICAgICAgICAgICAgICA/ICdwbGF0Zm9ybVNtYXJ0RmlsdGVyQmFyLmhpZGVGaWx0ZXJzQnV0dG9uTGFiZWwnXG4gICAgICAgICAgICAgICAgICAgIDogJ3BsYXRmb3JtU21hcnRGaWx0ZXJCYXIuc2hvd0ZpbHRlcnNCdXR0b25MYWJlbCdcbiAgICAgICAgICAgICAgICApIHwgZmRUcmFuc2xhdGVcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBidXR0b25UeXBlPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiX2xvYWRpbmdcIlxuICAgICAgICA+PC9mZHAtYnV0dG9uPlxuICAgIDwvZmQtdG9vbGJhcj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwiZmRwLXNtYXJ0LWZpbHRlci1iYXJfX2ZpbHRlcnNcIiBbaGlkZGVuXT1cIiFfc2hvd0ZpbHRlckJhclwiPlxuICAgIDxmZHAtZm9ybS1nZW5lcmF0b3JcbiAgICAgICAgKGZvcm1DcmVhdGVkKT1cIl9vbkZvcm1DcmVhdGVkKClcIlxuICAgICAgICAoZm9ybVN1Ym1pdHRlZCk9XCJfb25Gb3JtU3VibWl0dGVkKCRldmVudClcIlxuICAgICAgICBbbm9BZGRpdGlvbmFsQ29udGVudF09XCJ0cnVlXCJcbiAgICAgICAgW2Zvcm1JdGVtc109XCJfZm9ybUl0ZW1zXCJcbiAgICAgICAgW2NvbHVtbkxheW91dF09XCJmaWx0ZXJzQ29sdW1uTGF5b3V0XCJcbiAgICA+PC9mZHAtZm9ybS1nZW5lcmF0b3I+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectorRef, Component, forwardRef, HostListener, ViewChild } from '@angular/core';
|
|
2
2
|
import { ThumbnailImageComponent } from '../thumbnail-image/thumbnail-image.component';
|
|
3
3
|
import { DialogRef } from '@fundamental-ngx/core/dialog';
|
|
4
|
+
import { warnOnce } from '@fundamental-ngx/cdk/utils';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
import * as i1 from "@fundamental-ngx/core/dialog";
|
|
6
7
|
import * as i2 from "@angular/common";
|
|
@@ -27,7 +28,7 @@ export class ThumbnailDetailsComponent {
|
|
|
27
28
|
this.mediaList = this.dialogRef.data.mediaList;
|
|
28
29
|
/** max limit */
|
|
29
30
|
this.maxImages = this.dialogRef.data.maxImages;
|
|
30
|
-
|
|
31
|
+
warnOnce('ThumbnailDetailsComponent is deprecated since version 0.40.0 and will be removed in next release.');
|
|
31
32
|
}
|
|
32
33
|
/** @hidden */
|
|
33
34
|
ngOnInit() {
|
|
@@ -149,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
149
150
|
type: HostListener,
|
|
150
151
|
args: ['keydown.arrowleft', ['$event']]
|
|
151
152
|
}] } });
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RodW1ibmFpbC90aHVtYm5haWwtZGV0YWlscy90aHVtYm5haWwtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGh1bWJuYWlsL3RodW1ibmFpbC1kZXRhaWxzL3RodW1ibmFpbC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7QUFXekQ7OztHQUdHO0FBTUgsTUFBTSxPQUFPLHlCQUF5QjtJQW1CbEMsY0FBYztJQUNkLFlBQW1CLFNBQW9CLEVBQVUsSUFBdUI7UUFBckQsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLFNBQUksR0FBSixJQUFJLENBQW1CO1FBZnhFLG9EQUFvRDtRQUNwRCxrQ0FBNkIsR0FBRyxDQUFDLENBQUM7UUFFbEMsbURBQW1EO1FBQ25ELHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixvREFBb0Q7UUFDcEQsd0JBQW1CLEdBQUcsS0FBSyxDQUFDO1FBQzVCLDJCQUEyQjtRQUMzQixjQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRTFDLGlCQUFpQjtRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBSXRDLE9BQU8sQ0FBQyxJQUFJLENBQ1Is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Q0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNuQztJQUNMLENBQUM7OEdBdklRLHlCQUF5QjtrR0FBekIseUJBQXlCLGlSQUVOLHVCQUF1QixvRENoQ3ZELDRrR0E0RUE7OzJGRDlDYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksdUJBQXVCO2dJQU9qQyxjQUFjO3NCQURiLFNBQVM7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQTBGcEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVE5QyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHVtYm5haWxJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3RodW1ibmFpbC1pbWFnZS90aHVtYm5haWwtaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgTWVkaWEgfSBmcm9tICcuLi90aHVtYm5haWwuaW50ZXJmYWNlcyc7XG5cbmludGVyZmFjZSBEaWFsb2dSZWZEYXRhIHtcbiAgICBzZWxlY3RlZE1lZGlhOiBNZWRpYTtcbiAgICBtZWRpYUxpc3Q6IE1lZGlhW107XG4gICAgcnRsOiBib29sZWFuO1xuICAgIG1heEltYWdlczogbnVtYmVyO1xuICAgIHRodW1ibmFpbElkOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWRcbiAqIFRodW1ibmFpbERldGFpbHMgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGh1bWJuYWlsLWRldGFpbHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aHVtYm5haWwtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGh1bWJuYWlsLWRldGFpbHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxEZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgICAvKiogUmVmZXJlbmNlIHRvIHRodW1ibmFpbCBpbWFnZXMgY29tcG9uZW50ICovXG4gICAgQFZpZXdDaGlsZChmb3J3YXJkUmVmKCgpID0+IFRodW1ibmFpbEltYWdlQ29tcG9uZW50KSlcbiAgICB0aHVtYm5haWxJbWFnZTogVGh1bWJuYWlsSW1hZ2VDb21wb25lbnQ7XG5cbiAgICAvKiogQGhpZGRlbiBTdGFydCBpbmRleCBvZiBjdXJyZW50bHkgYWN0aXZlIGl0ZW1zICovXG4gICAgY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gTWFrZSBsZWZ0IG5hdmlnYXRpb24gYnV0dG9uIGRpc2FibGVkICovXG4gICAgbGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiBNYWtlIHJpZ2h0IG5hdmlnYXRpb24gYnV0dG9uIGRpc2FibGVkICovXG4gICAgcmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgIC8qKiBtZWRpYWxpc3QgdG8gZGlzcGxheSAqL1xuICAgIG1lZGlhTGlzdCA9IHRoaXMuZGlhbG9nUmVmLmRhdGEubWVkaWFMaXN0O1xuXG4gICAgLyoqIG1heCBsaW1pdCAgKi9cbiAgICBtYXhJbWFnZXMgPSB0aGlzLmRpYWxvZ1JlZi5kYXRhLm1heEltYWdlcztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogRGlhbG9nUmVmLCBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICdUaHVtYm5haWxEZXRhaWxzQ29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHJlbGVhc2UuJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRNZWRpYS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSB0aGlzLm1lZGlhTGlzdC5pbmRleE9mKHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRNZWRpYSk7XG4gICAgICAgIHRoaXMuX2J1dHRvblZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMubWVkaWFMaXN0LmluZGV4T2YodGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZE1lZGlhKTtcbiAgICAgICAgaWYgKHRoaXMubWVkaWFMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuX2J1dHRvblZpc2liaWxpdHkoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFRyYW5zaXRpb25zIHRvIHRoZSBwcmV2aW91cyBpbWFnZSBpbiB0aGUgdGh1bWJuYWlsLiAqL1xuICAgIHByZXZpb3VzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggLSAxO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkTWVkaWEgPSB0aGlzLm1lZGlhTGlzdFt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XTtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsSW1hZ2VzQXJyYXkgPSB0aGlzLnRodW1ibmFpbEltYWdlLnRodW1ibmFpbEltYWdlcy50b0FycmF5KCk7XG4gICAgICAgIHRodW1ibmFpbEltYWdlc0FycmF5W3RoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tZWRpYUxpc3QuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLm1lZGlhTGlzdFt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2J1dHRvblZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKiogVHJhbnNpdGlvbnMgdG8gdGhlIG5leHQgaW1hZ2UgaW4gdGhlIHRodW1ibmFpbC4gKi9cbiAgICBuZXh0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA+PSB0aGlzLmRpYWxvZ1JlZi5kYXRhLm1lZGlhTGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggKyAxO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkTWVkaWEgPSB0aGlzLm1lZGlhTGlzdFt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XTtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsSW1hZ2VzQXJyYXkgPSB0aGlzLnRodW1ibmFpbEltYWdlLnRodW1ibmFpbEltYWdlcy50b0FycmF5KCk7XG4gICAgICAgIHRodW1ibmFpbEltYWdlc0FycmF5W3RoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5tZWRpYUxpc3QuZm9yRWFjaCgoaXRlbSkgPT4gKGl0ZW0uc2VsZWN0ZWQgPSBmYWxzZSkpO1xuICAgICAgICB0aGlzLm1lZGlhTGlzdFt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XS5zZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMuX2J1dHRvblZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKiogaGFuZGxlcyBjbGljayBvbiB0aHVtYm5haWwgaW1hZ2VzICAqL1xuICAgIHRodW1ibmFpbENsaWNrSGFuZGxlKHNlbGVjdGVkbWVkaWE6IE1lZGlhKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRNZWRpYSA9IHNlbGVjdGVkbWVkaWE7XG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSB0aGlzLm1lZGlhTGlzdC5pbmRleE9mKHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRNZWRpYSk7XG4gICAgICAgIHRoaXMuX2J1dHRvblZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKiogQ2xvc2UgZGlhbG9nICovXG4gICAgY2xvc2VEaWFsb2coKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLm1lZGlhTGlzdC5sZW5ndGggPiB0aGlzLm1heEltYWdlcykge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5tZWRpYUxpc3RbdGhpcy5tYXhJbWFnZXMgLSAxXS5vdmVybGF5UmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVHJhbnNpdGlvbnMgdG8gdGhlIG5leHQgaW1hZ2UgaW4gdGhlIHRodW1ibmFpbCAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5ydGwgPyB0aGlzLnByZXZpb3VzKCkgOiB0aGlzLm5leHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBUcmFuc2l0aW9ucyB0byB0aGUgcHJldmlvdXMgaW1hZ2UgaW4gdGhlIHRodW1ibmFpbCovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93TGVmdChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnJ0bCA/IHRoaXMubmV4dCgpIDogdGhpcy5wcmV2aW91cygpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIHJldHVybnMgZGF0YSBmb3IgZGlhbG9nKi9cbiAgICBnZXQgX2RhdGEoKTogRGlhbG9nUmVmRGF0YSB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpYWxvZ1JlZi5kYXRhO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEhhbmRsZXMgbmF2aWdhdGlvbiBidXR0b24gdmlzaWJpbGl0eSAqL1xuICAgIHByaXZhdGUgX2J1dHRvblZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID09PSAwKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYuZGF0YS5ydGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID09PSB0aGlzLm1lZGlhTGlzdC5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dSZWYuZGF0YS5ydGwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubGVmdEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tZWRpYUxpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGZkLWRpYWxvZyBbYXR0ci5kaXJdPVwiX2RhdGEucnRsID8gJ3J0bCcgOiAnbHRyJ1wiPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8aDUgW2F0dHIuaWRdPVwiX2RhdGEudGh1bWJuYWlsSWRcIiBbaGVhZGVyU2l6ZV09XCI1XCIgZmQtdGl0bGU+e3sgX2RhdGEuc2VsZWN0ZWRNZWRpYS50aXRsZSB9fTwvaDU+XG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxuICAgIDxmZC1kaWFsb2ctYm9keT5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJmZC1idXR0b24gZmRwLXRodW1ibmFpbC1idXR0b24tLWxlZnRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRodW1ibmFpbC5kZXRhaWxzR290b1ByZXZpb3VzQnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1UaHVtYm5haWwuZGV0YWlsc0dvdG9QcmV2aW91c0J1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJfZGF0YS5ydGwgPyBuZXh0KCkgOiBwcmV2aW91cygpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJsZWZ0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3N0eWxlLnotaW5kZXhdPVwiMVwiXG4gICAgICAgICAgICBkYXRhLXNsaWRlPVwicHJldmlvdXNcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aSBjbGFzcz1cInNhcC1pY29uLS1zbGltLWFycm93LWxlZnRcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLW1lZGlhLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS5tZWRpYVR5cGUgPT09ICdpbWFnZSdcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmRwLWRpYWxvZy1tZWRpYS10aHVtYm5haWwtaW1nXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIl9kYXRhLnNlbGVjdGVkTWVkaWEubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS50aHVtYm5haWxVcmxcIlxuICAgICAgICAgICAgICAgIGFsdD1cImZpcnN0IGltYWdlXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgICAgICpuZ0lmPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS5tZWRpYVR5cGUgPT09ICd2aWRlbydcIlxuICAgICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW3NyY109XCJfZGF0YS5zZWxlY3RlZE1lZGlhLm1lZGlhVXJsXCJcbiAgICAgICAgICAgICAgICBjb250cm9sc1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IF9kYXRhLnNlbGVjdGVkTWVkaWEuYWx0IH19XG4gICAgICAgICAgICAgICAgPHRyYWNrXG4gICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS5jYXB0aW9uRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ9XCJjYXB0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIHNyY2xhbmc9XCJlblwiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJfZGF0YS5zZWxlY3RlZE1lZGlhLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx0cmFja1xuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIl9kYXRhLnNlbGVjdGVkTWVkaWEuYXVkaW9EZXNjRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ9XCJkZXNjcmlwdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBzcmNsYW5nPVwiZW5cIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvdmlkZW8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cImZkLWJ1dHRvbiBmZHAtdGh1bWJuYWlsLWJ1dHRvbi0tcmlnaHRcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidwbGF0Zm9ybVRodW1ibmFpbC5kZXRhaWxzR290b05leHRCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidwbGF0Zm9ybVRodW1ibmFpbC5kZXRhaWxzR290b05leHRCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX2RhdGEucnRsID8gcHJldmlvdXMoKSA6IG5leHQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicmlnaHRCdXR0b25EaXNhYmxlZFwiXG4gICAgICAgICAgICBbc3R5bGUuei1pbmRleF09XCIxXCJcbiAgICAgICAgICAgIGRhdGEtc2xpZGU9XCJuZXh0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJzYXAtaWNvbi0tc2xpbS1hcnJvdy1yaWdodFwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxmZHAtdGh1bWJuYWlsLWltYWdlXG4gICAgICAgICAgICBbbWVkaWFMaXN0XT1cIl9kYXRhLm1lZGlhTGlzdFwiXG4gICAgICAgICAgICBbaXNIb3Jpem9udGFsXT1cInRydWVcIlxuICAgICAgICAgICAgW21heEltYWdlc109XCJfZGF0YS5tZWRpYUxpc3QubGVuZ3RoXCJcbiAgICAgICAgICAgICh0aHVtYm5haWxDbGlja2VkKT1cInRodW1ibmFpbENsaWNrSGFuZGxlKCRldmVudClcIlxuICAgICAgICA+PC9mZHAtdGh1bWJuYWlsLWltYWdlPlxuICAgIDwvZmQtZGlhbG9nLWJvZHk+XG5cbiAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgPGZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCIncGxhdGZvcm1UaHVtYm5haWwuZGV0YWlsc0RpYWxvZ0Nsb3NlQnRuTGFiZWwnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VEaWFsb2coKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZmQtZGlhbG9nLWZvb3Rlci1idXR0b24+XG4gICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuPC9mZC1kaWFsb2c+XG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9zcmMvbGliL3RodW1ibmFpbC90aHVtYm5haWwtZGV0YWlscy90aHVtYm5haWwtZGV0YWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGh1bWJuYWlsL3RodW1ibmFpbC1kZXRhaWxzL3RodW1ibmFpbC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBRVosU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7O0FBVXREOzs7R0FHRztBQU1ILE1BQU0sT0FBTyx5QkFBeUI7SUFtQmxDLGNBQWM7SUFDZCxZQUFtQixTQUFvQixFQUFVLElBQXVCO1FBQXJELGNBQVMsR0FBVCxTQUFTLENBQVc7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQWZ4RSxvREFBb0Q7UUFDcEQsa0NBQTZCLEdBQUcsQ0FBQyxDQUFDO1FBRWxDLG1EQUFtRDtRQUNuRCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFM0Isb0RBQW9EO1FBQ3BELHdCQUFtQixHQUFHLEtBQUssQ0FBQztRQUM1QiwyQkFBMkI7UUFDM0IsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUUxQyxpQkFBaUI7UUFDakIsY0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFB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QUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDL0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNuQztJQUNMLENBQUM7OEdBcklRLHlCQUF5QjtrR0FBekIseUJBQXlCLGlSQUVOLHVCQUF1QixvRENqQ3ZELDRrR0E0RUE7OzJGRDdDYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksdUJBQXVCO2dJQU9qQyxjQUFjO3NCQURiLFNBQVM7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQXdGcEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVE5QyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIE9uSW5pdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUaHVtYm5haWxJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL3RodW1ibmFpbC1pbWFnZS90aHVtYm5haWwtaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgTWVkaWEgfSBmcm9tICcuLi90aHVtYm5haWwuaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcblxuaW50ZXJmYWNlIERpYWxvZ1JlZkRhdGEge1xuICAgIHNlbGVjdGVkTWVkaWE6IE1lZGlhO1xuICAgIG1lZGlhTGlzdDogTWVkaWFbXTtcbiAgICBydGw6IGJvb2xlYW47XG4gICAgbWF4SW1hZ2VzOiBudW1iZXI7XG4gICAgdGh1bWJuYWlsSWQ6IHN0cmluZztcbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVGh1bWJuYWlsRGV0YWlscyBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10aHVtYm5haWwtZGV0YWlscycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RodW1ibmFpbC1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90aHVtYm5haWwtZGV0YWlscy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRodW1ibmFpbERldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGh1bWJuYWlsIGltYWdlcyBjb21wb25lbnQgKi9cbiAgICBAVmlld0NoaWxkKGZvcndhcmRSZWYoKCkgPT4gVGh1bWJuYWlsSW1hZ2VDb21wb25lbnQpKVxuICAgIHRodW1ibmFpbEltYWdlOiBUaHVtYm5haWxJbWFnZUNvbXBvbmVudDtcblxuICAgIC8qKiBAaGlkZGVuIFN0YXJ0IGluZGV4IG9mIGN1cnJlbnRseSBhY3RpdmUgaXRlbXMgKi9cbiAgICBjdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9IDA7XG5cbiAgICAvKiogQGhpZGRlbiBNYWtlIGxlZnQgbmF2aWdhdGlvbiBidXR0b24gZGlzYWJsZWQgKi9cbiAgICBsZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuIE1ha2UgcmlnaHQgbmF2aWdhdGlvbiBidXR0b24gZGlzYWJsZWQgKi9cbiAgICByaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgLyoqIG1lZGlhbGlzdCB0byBkaXNwbGF5ICovXG4gICAgbWVkaWFMaXN0ID0gdGhpcy5kaWFsb2dSZWYuZGF0YS5tZWRpYUxpc3Q7XG5cbiAgICAvKiogbWF4IGxpbWl0ICAqL1xuICAgIG1heEltYWdlcyA9IHRoaXMuZGlhbG9nUmVmLmRhdGEubWF4SW1hZ2VzO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nUmVmOiBEaWFsb2dSZWYsIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICAgICAgd2Fybk9uY2UoJ1RodW1ibmFpbERldGFpbHNDb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIG5leHQgcmVsZWFzZS4nKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkTWVkaWEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gdGhpcy5tZWRpYUxpc3QuaW5kZXhPZih0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkTWVkaWEpO1xuICAgICAgICB0aGlzLl9idXR0b25WaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSB0aGlzLm1lZGlhTGlzdC5pbmRleE9mKHRoaXMuZGlhbG9nUmVmLmRhdGEuc2VsZWN0ZWRNZWRpYSk7XG4gICAgICAgIGlmICh0aGlzLm1lZGlhTGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLl9idXR0b25WaXNpYmlsaXR5KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLnJpZ2h0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUcmFuc2l0aW9ucyB0byB0aGUgcHJldmlvdXMgaW1hZ2UgaW4gdGhlIHRodW1ibmFpbC4gKi9cbiAgICBwcmV2aW91cygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4IC0gMTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZE1lZGlhID0gdGhpcy5tZWRpYUxpc3RbdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleF07XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbEltYWdlc0FycmF5ID0gdGhpcy50aHVtYm5haWxJbWFnZS50aHVtYm5haWxJbWFnZXMudG9BcnJheSgpO1xuICAgICAgICB0aHVtYm5haWxJbWFnZXNBcnJheVt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMubWVkaWFMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnNlbGVjdGVkID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5tZWRpYUxpc3RbdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9idXR0b25WaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIFRyYW5zaXRpb25zIHRvIHRoZSBuZXh0IGltYWdlIGluIHRoZSB0aHVtYm5haWwuICovXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPj0gdGhpcy5kaWFsb2dSZWYuZGF0YS5tZWRpYUxpc3QubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgMTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5zZWxlY3RlZE1lZGlhID0gdGhpcy5tZWRpYUxpc3RbdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleF07XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbEltYWdlc0FycmF5ID0gdGhpcy50aHVtYm5haWxJbWFnZS50aHVtYm5haWxJbWFnZXMudG9BcnJheSgpO1xuICAgICAgICB0aHVtYm5haWxJbWFnZXNBcnJheVt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMubWVkaWFMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnNlbGVjdGVkID0gZmFsc2UpKTtcbiAgICAgICAgdGhpcy5tZWRpYUxpc3RbdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLl9idXR0b25WaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIGhhbmRsZXMgY2xpY2sgb24gdGh1bWJuYWlsIGltYWdlcyAgKi9cbiAgICB0aHVtYm5haWxDbGlja0hhbmRsZShzZWxlY3RlZG1lZGlhOiBNZWRpYSk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkTWVkaWEgPSBzZWxlY3RlZG1lZGlhO1xuICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gdGhpcy5tZWRpYUxpc3QuaW5kZXhPZih0aGlzLmRpYWxvZ1JlZi5kYXRhLnNlbGVjdGVkTWVkaWEpO1xuICAgICAgICB0aGlzLl9idXR0b25WaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqIENsb3NlIGRpYWxvZyAqL1xuICAgIGNsb3NlRGlhbG9nKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZWRpYUxpc3QubGVuZ3RoID4gdGhpcy5tYXhJbWFnZXMpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEubWVkaWFMaXN0W3RoaXMubWF4SW1hZ2VzIC0gMV0ub3ZlcmxheVJlcXVpcmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFRyYW5zaXRpb25zIHRvIHRoZSBuZXh0IGltYWdlIGluIHRoZSB0aHVtYm5haWwgICovXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3JpZ2h0JywgWyckZXZlbnQnXSlcbiAgICBvbktleWRvd25BcnJvd1JpZ2h0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmRhdGEucnRsID8gdGhpcy5wcmV2aW91cygpIDogdGhpcy5uZXh0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVHJhbnNpdGlvbnMgdG8gdGhlIHByZXZpb3VzIGltYWdlIGluIHRoZSB0aHVtYm5haWwqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dsZWZ0JywgWyckZXZlbnQnXSlcbiAgICBvbktleWRvd25BcnJvd0xlZnQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGF0YS5ydGwgPyB0aGlzLm5leHQoKSA6IHRoaXMucHJldmlvdXMoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiByZXR1cm5zIGRhdGEgZm9yIGRpYWxvZyovXG4gICAgZ2V0IF9kYXRhKCk6IERpYWxvZ1JlZkRhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5kaWFsb2dSZWYuZGF0YTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBIYW5kbGVzIG5hdmlnYXRpb24gYnV0dG9uIHZpc2liaWxpdHkgKi9cbiAgICBwcml2YXRlIF9idXR0b25WaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gMCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmLmRhdGEucnRsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0QnV0dG9uRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB0aGlzLnJpZ2h0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCA9PT0gdGhpcy5tZWRpYUxpc3QubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGlhbG9nUmVmLmRhdGEucnRsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMucmlnaHRCdXR0b25EaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxlZnRCdXR0b25EaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWVkaWFMaXN0Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgdGhpcy5sZWZ0QnV0dG9uRGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5yaWdodEJ1dHRvbkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxmZC1kaWFsb2cgW2F0dHIuZGlyXT1cIl9kYXRhLnJ0bCA/ICdydGwnIDogJ2x0cidcIj5cbiAgICA8ZmQtZGlhbG9nLWhlYWRlcj5cbiAgICAgICAgPGg1IFthdHRyLmlkXT1cIl9kYXRhLnRodW1ibmFpbElkXCIgW2hlYWRlclNpemVdPVwiNVwiIGZkLXRpdGxlPnt7IF9kYXRhLnNlbGVjdGVkTWVkaWEudGl0bGUgfX08L2g1PlxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwiZmQtYnV0dG9uIGZkcC10aHVtYm5haWwtYnV0dG9uLS1sZWZ0XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UaHVtYm5haWwuZGV0YWlsc0dvdG9QcmV2aW91c0J1dHRvblRpdGxlJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BsYXRmb3JtVGh1bWJuYWlsLmRldGFpbHNHb3RvUHJldmlvdXNCdXR0b25UaXRsZScgfCBmZFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX2RhdGEucnRsID8gbmV4dCgpIDogcHJldmlvdXMoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibGVmdEJ1dHRvbkRpc2FibGVkXCJcbiAgICAgICAgICAgIFtzdHlsZS56LWluZGV4XT1cIjFcIlxuICAgICAgICAgICAgZGF0YS1zbGlkZT1cInByZXZpb3VzXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJzYXAtaWNvbi0tc2xpbS1hcnJvdy1sZWZ0XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZkcC1tZWRpYS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAqbmdJZj1cIl9kYXRhLnNlbGVjdGVkTWVkaWEubWVkaWFUeXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZkcC1kaWFsb2ctbWVkaWEtdGh1bWJuYWlsLWltZ1wiXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJfZGF0YS5zZWxlY3RlZE1lZGlhLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIl9kYXRhLnNlbGVjdGVkTWVkaWEudGh1bWJuYWlsVXJsXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJmaXJzdCBpbWFnZVwiXG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICA8dmlkZW9cbiAgICAgICAgICAgICAgICAqbmdJZj1cIl9kYXRhLnNlbGVjdGVkTWVkaWEubWVkaWFUeXBlID09PSAndmlkZW8nXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIl9kYXRhLnNlbGVjdGVkTWVkaWEubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtzcmNdPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS5tZWRpYVVybFwiXG4gICAgICAgICAgICAgICAgY29udHJvbHNcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBfZGF0YS5zZWxlY3RlZE1lZGlhLmFsdCB9fVxuICAgICAgICAgICAgICAgIDx0cmFja1xuICAgICAgICAgICAgICAgICAgICBbc3JjXT1cIl9kYXRhLnNlbGVjdGVkTWVkaWEuY2FwdGlvbkZpbGVcIlxuICAgICAgICAgICAgICAgICAgICBraW5kPVwiY2FwdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICBzcmNsYW5nPVwiZW5cIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX2RhdGEuc2VsZWN0ZWRNZWRpYS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8dHJhY2tcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCJfZGF0YS5zZWxlY3RlZE1lZGlhLmF1ZGlvRGVzY0ZpbGVcIlxuICAgICAgICAgICAgICAgICAgICBraW5kPVwiZGVzY3JpcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgc3JjbGFuZz1cImVuXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9kYXRhLnNlbGVjdGVkTWVkaWEubGFiZWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3ZpZGVvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJmZC1idXR0b24gZmRwLXRodW1ibmFpbC1idXR0b24tLXJpZ2h0XCJcbiAgICAgICAgICAgIFt0aXRsZV09XCIncGxhdGZvcm1UaHVtYm5haWwuZGV0YWlsc0dvdG9OZXh0QnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGxhdGZvcm1UaHVtYm5haWwuZGV0YWlsc0dvdG9OZXh0QnV0dG9uVGl0bGUnIHwgZmRUcmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9kYXRhLnJ0bCA/IHByZXZpb3VzKCkgOiBuZXh0KClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJpZ2h0QnV0dG9uRGlzYWJsZWRcIlxuICAgICAgICAgICAgW3N0eWxlLnotaW5kZXhdPVwiMVwiXG4gICAgICAgICAgICBkYXRhLXNsaWRlPVwibmV4dFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwic2FwLWljb24tLXNsaW0tYXJyb3ctcmlnaHRcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8ZmRwLXRodW1ibmFpbC1pbWFnZVxuICAgICAgICAgICAgW21lZGlhTGlzdF09XCJfZGF0YS5tZWRpYUxpc3RcIlxuICAgICAgICAgICAgW2lzSG9yaXpvbnRhbF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFttYXhJbWFnZXNdPVwiX2RhdGEubWVkaWFMaXN0Lmxlbmd0aFwiXG4gICAgICAgICAgICAodGh1bWJuYWlsQ2xpY2tlZCk9XCJ0aHVtYm5haWxDbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvZmRwLXRodW1ibmFpbC1pbWFnZT5cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuXG4gICAgPGZkLWRpYWxvZy1mb290ZXI+XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyLWJ1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ3BsYXRmb3JtVGh1bWJuYWlsLmRldGFpbHNEaWFsb2dDbG9zZUJ0bkxhYmVsJyB8IGZkVHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlRGlhbG9nKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXItYnV0dG9uPlxuICAgIDwvZmQtZGlhbG9nLWZvb3Rlcj5cbjwvZmQtZGlhbG9nPlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectorRef, Component, EventEmitter, Input, Optional, Output, QueryList, ViewChildren } from '@angular/core';
|
|
2
|
-
import { KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';
|
|
2
|
+
import { KeyUtil, RtlService, warnOnce } from '@fundamental-ngx/cdk/utils';
|
|
3
3
|
import { DialogService } from '@fundamental-ngx/core/dialog';
|
|
4
4
|
import { SPACE } from '@angular/cdk/keycodes';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
@@ -26,7 +26,7 @@ export class ThumbnailImageComponent {
|
|
|
26
26
|
this.thumbnailClicked = new EventEmitter();
|
|
27
27
|
/** Event emitted when the thumbnail image is clicked and dialog opened */
|
|
28
28
|
this.openDetailsDialog = new EventEmitter();
|
|
29
|
-
|
|
29
|
+
warnOnce('ThumbnailImage component is deprecated since version 0.40.0 and will be removed in next release');
|
|
30
30
|
}
|
|
31
31
|
/** @hidden */
|
|
32
32
|
ngOnInit() {
|
|
@@ -97,4 +97,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
97
97
|
type: ViewChildren,
|
|
98
98
|
args: ['thumbnailImage']
|
|
99
99
|
}] } });
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWltYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLWltYWdlL3RodW1ibmFpbC1pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGh1bWJuYWlsL3RodW1ibmFpbC1pbWFnZS90aHVtYm5haWwtaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFN0QsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBRTlDOzs7R0FHRztBQU1ILE1BQU0sT0FBTyx1QkFBdUI7SUFpQ2hDLGNBQWM7SUFDZCxZQUNjLGtCQUFxQyxFQUN2QyxjQUE2QixFQUNqQixXQUF1QjtRQUZqQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3ZDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQ2pCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBaEMvQyx5REFBeUQ7UUFFekQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFFckIsd0RBQXdEO1FBRXhELGNBQVMsR0FBRyxDQUFDLENBQUM7UUFVZCw2Q0FBNkM7UUFFN0MscUJBQWdCLEdBQXdCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFM0QsMEVBQTBFO1FBRTFFLHNCQUFpQixHQUFHLElBQUksWUFB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QkFEZCxZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgS2V5VXRpbCwgUnRsU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IE1lZGlhIH0gZnJvbSAnLi4vdGh1bWJuYWlsLmludGVyZmFjZXMnO1xuaW1wb3J0IHsgU1BBQ0UgfSBmcm9tICdAYW5ndWxhci9jZGsva2V5Y29kZXMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBUaHVtYm5haWxJbWFnZSBjb21wb25lbnQgaXMgZGVwcmVjYXRlZCBzaW5jZSB2ZXJzaW9uIDAuNDAuMFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC10aHVtYm5haWwtaW1hZ2UnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90aHVtYm5haWwtaW1hZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RodW1ibmFpbC1pbWFnZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFRodW1ibmFpbEltYWdlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICAgIC8qKiBtZWRpYSBsaXN0IG9iZWpjdCBjb250YWlucyBncm91cCBvZiBNZWRpYSBvYmplY3QuKi9cbiAgICBASW5wdXQoKVxuICAgIG1lZGlhTGlzdDogTWVkaWFbXTtcblxuICAgIC8qKiBCb29sZWFuIHRvIHNldCB0aGUgb3JpZW50YWl0b24gb2YgdGh1bWJuYWlsIGltYWdlcy4qL1xuICAgIEBJbnB1dCgpXG4gICAgaXNIb3Jpem9udGFsID0gZmFsc2U7XG5cbiAgICAvKiogTWF4aW11bSBsaW1pdCBmb3IgdGhlIHRodW1ibmFpbCBpbWFnZXMgdG8gZGlzcGxheSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWF4SW1hZ2VzID0gNTtcblxuICAgIC8qKiBSb2xlIGRlc2NyaXB0aW9uIGZvciB0aGUgdGh1bWJuYWlsIGltYWdlICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcm9sZURlc2NyaXB0aW9uOiBzdHJpbmc7XG5cbiAgICAvKiogVGh1bWJuYWlsIGVsZW1lbnQgSUQgKi9cbiAgICBASW5wdXQoKVxuICAgIHRodW1ibmFpbElkOiBzdHJpbmc7XG5cbiAgICAvKiogT3V0cHV0IGV2ZW50IGZvciB0aHVtYm5haWwgaW1hZ2UgY2xpY2sgKi9cbiAgICBAT3V0cHV0KClcbiAgICB0aHVtYm5haWxDbGlja2VkOiBFdmVudEVtaXR0ZXI8TWVkaWE+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgd2hlbiB0aGUgdGh1bWJuYWlsIGltYWdlIGlzIGNsaWNrZWQgYW5kIGRpYWxvZyBvcGVuZWQgKi9cbiAgICBAT3V0cHV0KClcbiAgICBvcGVuRGV0YWlsc0RpYWxvZyA9IG5ldyBFdmVudEVtaXR0ZXI8TWVkaWE+KCk7XG5cbiAgICAvKiogTGlzdCBvZiB0aHVtYm5haWwgaW1hZ2VzIHJlZmVyZW5jZSAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oJ3RodW1ibmFpbEltYWdlJylcbiAgICB0aHVtYm5haWxJbWFnZXM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIGNvbnNvbGUud2FybignVGh1bWJuYWlsSW1hZ2UgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHJlbGVhc2UnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm1lZGlhTGlzdCAmJiBBcnJheS5pc0FycmF5KHRoaXMubWVkaWFMaXN0KSkge1xuICAgICAgICAgICAgY29uc3QgYWxyZWFkeVNlbGVjdGVkOiBib29sZWFuID0gdGhpcy5tZWRpYUxpc3Quc29tZSgoaW1hZ2UpID0+IGltYWdlLnNlbGVjdGVkKTtcbiAgICAgICAgICAgIGlmICghYWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZWRpYUxpc3RbMF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbnMgdGhlIERpYWxvZyB3aGVuIHRoZSBpbWdhZXMgY3Jvc2VzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbWFnZXMgdG8gZGlzcGxheSAqL1xuICAgIG9wZW5EaWFsb2cobWVkaWE6IE1lZGlhKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVkaWFMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnNlbGVjdGVkID0gZmFsc2UpKTtcbiAgICAgICAgbWVkaWEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzRGlhbG9nLmVtaXQobWVkaWEpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdGh1bWJuYWlsQ2xpY2soc2VsZWN0ZWRNZWRpYTogTWVkaWEsIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgU1BBQ0UpKSB7XG4gICAgICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lZGlhTGlzdC5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgIHNlbGVjdGVkTWVkaWEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnRodW1ibmFpbENsaWNrZWQuZW1pdChzZWxlY3RlZE1lZGlhKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAgcmV0dXJucyBib29sZWFuIHZhbHVlIGZvciBydGwgKi9cbiAgICBwcml2YXRlIF9pc1J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0T3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWVkaWFMaXN0Lmxlbmd0aCA+IHRoaXMubWF4SW1hZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhTGlzdFt0aGlzLm1heEltYWdlcyAtIDFdLm92ZXJsYXlSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogT3BlbiB0aHVtYmFuYWlsIGltYWdlICovXG4gICAgb3BlbkltYWdlKGltYWdlOiBNZWRpYSwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpbWFnZS5vdmVybGF5UmVxdWlyZWQgPyB0aGlzLm9wZW5EaWFsb2coaW1hZ2UpIDogdGhpcy50aHVtYm5haWxDbGljayhpbWFnZSwgZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZHAtdGh1bWJuYWlsLWltYWdlLWNvbnRhaW5lclwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPGRpdlxuICAgICAgICAjdGh1bWJuYWlsSW1hZ2VcbiAgICAgICAgKm5nRm9yPVwibGV0IGltYWdlIG9mIG1lZGlhTGlzdCB8IHNsaWNlOiAwOm1heEltYWdlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtjbGFzc109XCJpc0hvcml6b250YWwgPyAnZmRwLXRodW1ibmFpbC1pbWFnZS0taG9yaXpvbnRhbCcgOiAnZmRwLXRodW1ibmFpbC1pbWFnZSdcIlxuICAgICAgICBbY2xhc3MuZmRwLXRodW1ibmFpbC1pbWFnZS0tc2VsZWN0ZWRdPVwiaW1hZ2Uuc2VsZWN0ZWRcIlxuICAgICAgICBbY2xhc3MuZmRwLXRodW1ibmFpbC1pbWFnZS0tb3ZlcmxheV09XCJpbWFnZS5vdmVybGF5UmVxdWlyZWRcIlxuICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlKGltYWdlKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5JbWFnZShpbWFnZSwgJGV2ZW50KVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICBbYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbl09XCJyb2xlRGVzY3JpcHRpb24gfHwgKCdwbGF0Zm9ybVRodW1ibmFpbC5yb2xlRGVzY3JpcHRpb24nIHwgZmRUcmFuc2xhdGUpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpbWFnZS5zZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImltYWdlLmxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpbWFnZS5sYWJlbFwiXG4gICAgPlxuICAgICAgICA8ZmQtYXZhdGFyIFtpbWFnZV09XCJpbWFnZS50aHVtYm5haWxVcmxcIiBzaXplPVwibVwiPjwvZmQtYXZhdGFyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXRodW1ibmFpbC1vdmVyZmxvd1wiICpuZ0lmPVwiaW1hZ2Uub3ZlcmxheVJlcXVpcmVkXCI+K3t7IG1lZGlhTGlzdC5sZW5ndGggLSBtYXhJbWFnZXMgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWltYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLWltYWdlL3RodW1ibmFpbC1pbWFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3NyYy9saWIvdGh1bWJuYWlsL3RodW1ibmFpbC1pbWFnZS90aHVtYm5haWwtaW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVCxZQUFZLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTdELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUU5Qzs7O0dBR0c7QUFNSCxNQUFNLE9BQU8sdUJBQXVCO0lBaUNoQyxjQUFjO0lBQ2QsWUFDYyxrQkFBcUMsRUFDdkMsY0FBNkIsRUFDakIsV0FBdUI7UUFGakMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUN2QyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNqQixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWhDL0MseURBQXlEO1FBRXpELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLHdEQUF3RDtRQUV4RCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBVWQsNkNBQTZDO1FBRTdDLHFCQUFnQixHQUF3QixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTNELDBFQUEwRTtRQUUxRSxzQkFBaUIsR0FB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QkFEZCxZQUFZO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBTaW1wbGVDaGFuZ2VzLFxuICAgIFZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgS2V5VXRpbCwgUnRsU2VydmljZSwgd2Fybk9uY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJy4uL3RodW1ibmFpbC5pbnRlcmZhY2VzJztcbmltcG9ydCB7IFNQQUNFIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVGh1bWJuYWlsSW1hZ2UgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGh1bWJuYWlsLWltYWdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLWltYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90aHVtYm5haWwtaW1hZ2UuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxJbWFnZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICAvKiogbWVkaWEgbGlzdCBvYmVqY3QgY29udGFpbnMgZ3JvdXAgb2YgTWVkaWEgb2JqZWN0LiovXG4gICAgQElucHV0KClcbiAgICBtZWRpYUxpc3Q6IE1lZGlhW107XG5cbiAgICAvKiogQm9vbGVhbiB0byBzZXQgdGhlIG9yaWVudGFpdG9uIG9mIHRodW1ibmFpbCBpbWFnZXMuKi9cbiAgICBASW5wdXQoKVxuICAgIGlzSG9yaXpvbnRhbCA9IGZhbHNlO1xuXG4gICAgLyoqIE1heGltdW0gbGltaXQgZm9yIHRoZSB0aHVtYm5haWwgaW1hZ2VzIHRvIGRpc3BsYXkgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heEltYWdlcyA9IDU7XG5cbiAgICAvKiogUm9sZSBkZXNjcmlwdGlvbiBmb3IgdGhlIHRodW1ibmFpbCBpbWFnZSAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJvbGVEZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gICAgLyoqIFRodW1ibmFpbCBlbGVtZW50IElEICovXG4gICAgQElucHV0KClcbiAgICB0aHVtYm5haWxJZDogc3RyaW5nO1xuXG4gICAgLyoqIE91dHB1dCBldmVudCBmb3IgdGh1bWJuYWlsIGltYWdlIGNsaWNrICovXG4gICAgQE91dHB1dCgpXG4gICAgdGh1bWJuYWlsQ2xpY2tlZDogRXZlbnRFbWl0dGVyPE1lZGlhPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHRodW1ibmFpbCBpbWFnZSBpcyBjbGlja2VkIGFuZCBkaWFsb2cgb3BlbmVkICovXG4gICAgQE91dHB1dCgpXG4gICAgb3BlbkRldGFpbHNEaWFsb2cgPSBuZXcgRXZlbnRFbWl0dGVyPE1lZGlhPigpO1xuXG4gICAgLyoqIExpc3Qgb2YgdGh1bWJuYWlsIGltYWdlcyByZWZlcmVuY2UgKi9cbiAgICBAVmlld0NoaWxkcmVuKCd0aHVtYm5haWxJbWFnZScpXG4gICAgdGh1bWJuYWlsSW1hZ2VzOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfcnRsU2VydmljZTogUnRsU2VydmljZVxuICAgICkge1xuICAgICAgICB3YXJuT25jZSgnVGh1bWJuYWlsSW1hZ2UgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHJlbGVhc2UnKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZXRPdmVybGF5KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzLm1lZGlhTGlzdCAmJiBBcnJheS5pc0FycmF5KHRoaXMubWVkaWFMaXN0KSkge1xuICAgICAgICAgICAgY29uc3QgYWxyZWFkeVNlbGVjdGVkOiBib29sZWFuID0gdGhpcy5tZWRpYUxpc3Quc29tZSgoaW1hZ2UpID0+IGltYWdlLnNlbGVjdGVkKTtcbiAgICAgICAgICAgIGlmICghYWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZWRpYUxpc3RbMF0uc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICAvKiogT3BlbnMgdGhlIERpYWxvZyB3aGVuIHRoZSBpbWdhZXMgY3Jvc2VzIHRoZSBtYXhpbXVtIG51bWJlciBvZiBpbWFnZXMgdG8gZGlzcGxheSAqL1xuICAgIG9wZW5EaWFsb2cobWVkaWE6IE1lZGlhKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVkaWFMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLnNlbGVjdGVkID0gZmFsc2UpKTtcbiAgICAgICAgbWVkaWEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm9wZW5EZXRhaWxzRGlhbG9nLmVtaXQobWVkaWEpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdGh1bWJuYWlsQ2xpY2soc2VsZWN0ZWRNZWRpYTogTWVkaWEsIGV2ZW50PzogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgS2V5Ym9hcmRFdmVudCAmJiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgU1BBQ0UpKSB7XG4gICAgICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1lZGlhTGlzdC5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgIHNlbGVjdGVkTWVkaWEuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnRodW1ibmFpbENsaWNrZWQuZW1pdChzZWxlY3RlZE1lZGlhKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAgcmV0dXJucyBib29sZWFuIHZhbHVlIGZvciBydGwgKi9cbiAgICBwcml2YXRlIF9pc1J0bCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J0bFNlcnZpY2U/LnJ0bC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2V0T3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMubWVkaWFMaXN0Lmxlbmd0aCA+IHRoaXMubWF4SW1hZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhTGlzdFt0aGlzLm1heEltYWdlcyAtIDFdLm92ZXJsYXlSZXF1aXJlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogT3BlbiB0aHVtYmFuYWlsIGltYWdlICovXG4gICAgb3BlbkltYWdlKGltYWdlOiBNZWRpYSwgZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xuICAgICAgICBpbWFnZS5vdmVybGF5UmVxdWlyZWQgPyB0aGlzLm9wZW5EaWFsb2coaW1hZ2UpIDogdGhpcy50aHVtYm5haWxDbGljayhpbWFnZSwgZXZlbnQpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmZHAtdGh1bWJuYWlsLWltYWdlLWNvbnRhaW5lclwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPGRpdlxuICAgICAgICAjdGh1bWJuYWlsSW1hZ2VcbiAgICAgICAgKm5nRm9yPVwibGV0IGltYWdlIG9mIG1lZGlhTGlzdCB8IHNsaWNlOiAwOm1heEltYWdlczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgIFtjbGFzc109XCJpc0hvcml6b250YWwgPyAnZmRwLXRodW1ibmFpbC1pbWFnZS0taG9yaXpvbnRhbCcgOiAnZmRwLXRodW1ibmFpbC1pbWFnZSdcIlxuICAgICAgICBbY2xhc3MuZmRwLXRodW1ibmFpbC1pbWFnZS0tc2VsZWN0ZWRdPVwiaW1hZ2Uuc2VsZWN0ZWRcIlxuICAgICAgICBbY2xhc3MuZmRwLXRodW1ibmFpbC1pbWFnZS0tb3ZlcmxheV09XCJpbWFnZS5vdmVybGF5UmVxdWlyZWRcIlxuICAgICAgICAoY2xpY2spPVwib3BlbkltYWdlKGltYWdlKVwiXG4gICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5JbWFnZShpbWFnZSwgJGV2ZW50KVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgICBbYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbl09XCJyb2xlRGVzY3JpcHRpb24gfHwgKCdwbGF0Zm9ybVRodW1ibmFpbC5yb2xlRGVzY3JpcHRpb24nIHwgZmRUcmFuc2xhdGUpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpbWFnZS5zZWxlY3RlZFwiXG4gICAgICAgIFthdHRyLnRpdGxlXT1cImltYWdlLmxhYmVsXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpbWFnZS5sYWJlbFwiXG4gICAgPlxuICAgICAgICA8ZmQtYXZhdGFyIFtpbWFnZV09XCJpbWFnZS50aHVtYm5haWxVcmxcIiBzaXplPVwibVwiPjwvZmQtYXZhdGFyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmRwLXRodW1ibmFpbC1vdmVyZmxvd1wiICpuZ0lmPVwiaW1hZ2Uub3ZlcmxheVJlcXVpcmVkXCI+K3t7IG1lZGlhTGlzdC5sZW5ndGggLSBtYXhJbWFnZXMgfX08L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectorRef, Component, EventEmitter, forwardRef, HostListener, Input, Optional, Output, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { RtlService } from '@fundamental-ngx/cdk/utils';
|
|
2
|
+
import { RtlService, warnOnce } from '@fundamental-ngx/cdk/utils';
|
|
3
3
|
import { DialogService } from '@fundamental-ngx/core/dialog';
|
|
4
4
|
import { BaseComponent } from '@fundamental-ngx/platform/shared';
|
|
5
5
|
import { ThumbnailDetailsComponent } from './thumbnail-details/thumbnail-details.component';
|
|
@@ -47,7 +47,7 @@ export class ThumbnailComponent extends BaseComponent {
|
|
|
47
47
|
this.thumbnailId = 'fd-thumbnail-dialog-header-' + uniqueId++;
|
|
48
48
|
/** @hidden Start index of currently active items */
|
|
49
49
|
this.currentActiveSlidesStartIndex = 0;
|
|
50
|
-
|
|
50
|
+
warnOnce('ThumbnailComponent is deprecated since version 0.40.0 and will be removed in next release.');
|
|
51
51
|
}
|
|
52
52
|
/** @hidden Select first media object on init. */
|
|
53
53
|
ngOnInit() {
|
|
@@ -146,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.0", ngImpor
|
|
|
146
146
|
type: HostListener,
|
|
147
147
|
args: ['keydown.arrowleft', ['$event']]
|
|
148
148
|
}] } });
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDNUYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7OztBQUd0RixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFFakIsTUFBTSxPQUFPLHFCQUFxQjtJQUM5Qjs7OztPQUlHO0lBQ0g7SUFDSSxtREFBbUQ7SUFDNUMsTUFBUztJQUNoQixrQ0FBa0M7SUFDM0IsT0FBVTtRQUZWLFdBQU0sR0FBTixNQUFNLENBQUc7UUFFVCxZQUFPLEdBQVAsT0FBTyxDQUFHO0lBQ2xCLENBQUM7Q0FDUDtBQUNEOzs7R0FHRztBQU9ILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxhQUFhO0lBOEJqRCxjQUFjO0lBQ2QsWUFDYyxrQkFBcUMsRUFDdkMsY0FBNkIsRUFDUixXQUF1QixFQUM1QyxJQUF1QjtRQUUv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QkFBa0Isb2FBa0JDLHVCQUF1QiwyRUNoRXZELHd6REEyQ0E7OzJGREdhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUk7OzBCQW9DaEMsUUFBUTs0RUEvQmIsU0FBUztzQkFEUixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsTUFBTTtnQkFLUCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQXdFcEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVE5QyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9zaGFyZWQnO1xuaW1wb3J0IHsgVGh1bWJuYWlsRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vdGh1bWJuYWlsLWRldGFpbHMvdGh1bWJuYWlsLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRodW1ibmFpbEltYWdlQ29tcG9uZW50IH0gZnJvbSAnLi90aHVtYm5haWwtaW1hZ2UvdGh1bWJuYWlsLWltYWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZWRpYSB9IGZyb20gJy4vdGh1bWJuYWlsLmludGVyZmFjZXMnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5leHBvcnQgY2xhc3MgVGh1bWJuYWlsQ2xpY2tlZEV2ZW50PFQgZXh0ZW5kcyBUaHVtYm5haWxDb21wb25lbnQgPSBUaHVtYm5haWxDb21wb25lbnQsIEsgPSBNZWRpYT4ge1xuICAgIC8qKlxuICAgICAqIFRodW1ibmFpbCBjbGljayBldmVudFxuICAgICAqIEBwYXJhbSBzb3VyY2UgVGh1bWJuYWlsQ29tcG9uZW50XG4gICAgICogQHBhcmFtIHBheWxvYWQgTWVkaWFcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgLyoqIFRoZSBzb3VyY2UgVGh1bWJuYWlsIENvbXBvbmVudCBvZiB0aGUgZXZlbnQuICovXG4gICAgICAgIHB1YmxpYyBzb3VyY2U6IFQsXG4gICAgICAgIC8qKiBUaGUgbmV3IHZhbHVlIG9mIGEgY29udHJvbC4gKi9cbiAgICAgICAgcHVibGljIHBheWxvYWQ6IEtcbiAgICApIHt9XG59XG4vKipcbiAqIEBkZXByZWNhdGVkXG4gKiBUaHVtYm5haWwgY29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtdGh1bWJuYWlsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90aHVtYm5haWwuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFRodW1ibmFpbENvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKiBMaXN0IG9mIG1lZGlhIG9iamVjdHMgdG8gZGlzcGxheS4gKi9cbiAgICBASW5wdXQoKVxuICAgIG1lZGlhTGlzdDogTWVkaWFbXTtcblxuICAgIC8qKiBEaXNwbGF5IG9yaWVudGF0aW9uIG9mIFRodW1uYWlsIGNvbXBvbmVudC4gKi9cbiAgICBASW5wdXQoKVxuICAgIGlzSG9yaXpvbnRhbCA9IGZhbHNlO1xuXG4gICAgLyoqIE1heCBpbWFnZXMgdG8gZGlzcGxheSAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWF4SW1hZ2VzRGlzcGxheSA9IDU7XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB1cG9uIGNsaWNrIG9mIGEgdGh1bWJuYWlsLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHRodW1ibmFpbENsaWNrZWQ6IEV2ZW50RW1pdHRlcjxUaHVtYm5haWxDbGlja2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqIFJlZmVyZW5jZSB0byB0aHVtYm5haWwgaW1hZ2VzIGNvbXBvbmVudCAqL1xuICAgIEBWaWV3Q2hpbGQoZm9yd2FyZFJlZigoKSA9PiBUaHVtYm5haWxJbWFnZUNvbXBvbmVudCkpXG4gICAgdGh1bWJuYWlsSW1hZ2U6IFRodW1ibmFpbEltYWdlQ29tcG9uZW50O1xuXG4gICAgLyoqIEdlbmVyYXRlIHVuaXF1ZSBpZCBmb3IgdGhlIHRodW1ibmFpbCAqL1xuICAgIHRodW1ibmFpbElkOiBzdHJpbmcgPSAnZmQtdGh1bWJuYWlsLWRpYWxvZy1oZWFkZXItJyArIHVuaXF1ZUlkKys7XG5cbiAgICAvKiogQGhpZGRlbiBTdGFydCBpbmRleCBvZiBjdXJyZW50bHkgYWN0aXZlIGl0ZW1zICovXG4gICAgY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSAwO1xuXG4gICAgLyoqIEBoaWRkZW4gQ3VycmVudGx5IHNlbGVjdGVkIG1lZGlhLiAqL1xuICAgIHB1YmxpYyBzZWxlY3RlZE1lZGlhOiBNZWRpYTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByb3RlY3RlZCBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKF9jaGFuZ2VEZXRlY3RvclJlZik7XG4gICAgICAgIGNvbnNvbGUud2FybignVGh1bWJuYWlsQ29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHJlbGVhc2UuJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gU2VsZWN0IGZpcnN0IG1lZGlhIG9iamVjdCBvbiBpbml0LiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm1lZGlhTGlzdCkgJiYgdGhpcy5tZWRpYUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE1lZGlhID0gdGhpcy5tZWRpYUxpc3RbMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0T3ZlcmxheSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdGh1bWJuYWlsQ2xpY2tIYW5kbGUoc2VsZWN0ZWRNZWRpYTogTWVkaWEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1lZGlhID0gc2VsZWN0ZWRNZWRpYTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxDbGlja2VkLmVtaXQodGhpcy5fY3JlYXRlQ2xpY2tFdmVudCh0aGlzLnNlbGVjdGVkTWVkaWEpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9wZW5EaWFsb2cobWVkaWE6IE1lZGlhID0gdGhpcy5zZWxlY3RlZE1lZGlhKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVkaWFMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLm92ZXJsYXlSZXF1aXJlZCA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihUaHVtYm5haWxEZXRhaWxzQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBiYWNrZHJvcENsaWNrQ2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdGh1bWJuYWlsSWQ6IHRoaXMudGh1bWJuYWlsSWQsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRNZWRpYTogbWVkaWEsXG4gICAgICAgICAgICAgICAgbWVkaWFMaXN0OiB0aGlzLm1lZGlhTGlzdCxcbiAgICAgICAgICAgICAgICBydGw6IHRoaXMuX2lzUnRsKCksXG4gICAgICAgICAgICAgICAgbWF4SW1hZ2VzOiB0aGlzLm1heEltYWdlc0Rpc3BsYXlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gcmV0dXJucyBydGwgdmFsdWUgKi9cbiAgICBfaXNSdGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDcmVhdGUgVGh1bWJuYWlsIGNsaWNrIGV2ZW50IGluc3RhbmNlICovXG4gICAgcHJpdmF0ZSBfY3JlYXRlQ2xpY2tFdmVudCh2YWx1ZTogTWVkaWEpOiBUaHVtYm5haWxDbGlja2VkRXZlbnQge1xuICAgICAgICByZXR1cm4gbmV3IFRodW1ibmFpbENsaWNrZWRFdmVudCh0aGlzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZWRpYUxpc3QubGVuZ3RoID4gdGhpcy5tYXhJbWFnZXNEaXNwbGF5KSB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhTGlzdFt0aGlzLm1heEltYWdlc0Rpc3BsYXkgLSAxXS5vdmVybGF5UmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVHJhbnNpdGlvbnMgdG8gdGhlIG5leHQgaW1hZ2UgaW4gdGhlIHRodW1ibmFpbCAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5faXNSdGwoKSA/IHRoaXMucHJldmlvdXMoKSA6IHRoaXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFRyYW5zaXRpb25zIHRvIHRoZSBwcmV2aW91cyBpbWFnZSBpbiB0aGUgdGh1bWJuYWlsKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50J10pXG4gICAgb25LZXlkb3duQXJyb3dMZWZ0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX2lzUnRsKCkgPyB0aGlzLm5leHQoKSA6IHRoaXMucHJldmlvdXMoKTtcbiAgICB9XG5cbiAgICAvKiogVHJhbnNpdGlvbnMgdG8gdGhlIHByZXZpb3VzIGltYWdlIGluIHRoZSB0aHVtYm5haWwuICovXG4gICAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4IDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCAtIDE7XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbEltYWdlc0FycmF5ID0gdGhpcy50aHVtYm5haWxJbWFnZS50aHVtYm5haWxJbWFnZXMudG9BcnJheSgpO1xuICAgICAgICB0aHVtYm5haWxJbWFnZXNBcnJheVt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFRyYW5zaXRpb25zIHRvIHRoZSBuZXh0IGltYWdlIGluIHRoZSB0aHVtYm5haWwuICovXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPj0gdGhpcy5tYXhJbWFnZXNEaXNwbGF5IC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgMTtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsSW1hZ2VzQXJyYXkgPSB0aGlzLnRodW1ibmFpbEltYWdlLnRodW1ibmFpbEltYWdlcy50b0FycmF5KCk7XG4gICAgICAgIHRodW1ibmFpbEltYWdlc0FycmF5W3RoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmRwLXRodW1ibmFpbC1jb250YWluZXJcIiBbY2xhc3MuZmRwLXRodW1ibmFpbC1jb250YWluZXItLWhvcml6b250YWxdPVwiaXNIb3Jpem9udGFsXCI+XG4gICAgPGZkcC10aHVtYm5haWwtaW1hZ2VcbiAgICAgICAgKm5nSWY9XCIhaXNIb3Jpem9udGFsXCJcbiAgICAgICAgW3RodW1ibmFpbElkXT1cInRodW1ibmFpbElkXCJcbiAgICAgICAgW21lZGlhTGlzdF09XCJtZWRpYUxpc3RcIlxuICAgICAgICBbbWF4SW1hZ2VzXT1cIm1heEltYWdlc0Rpc3BsYXlcIlxuICAgICAgICBbaXNIb3Jpem9udGFsXT1cImlzSG9yaXpvbnRhbFwiXG4gICAgICAgICh0aHVtYm5haWxDbGlja2VkKT1cInRodW1ibmFpbENsaWNrSGFuZGxlKCRldmVudClcIlxuICAgICAgICAob3BlbkRldGFpbHNEaWFsb2cpPVwib3BlbkRpYWxvZygkZXZlbnQpXCJcbiAgICA+PC9mZHAtdGh1bWJuYWlsLWltYWdlPlxuICAgIDxkaXYgY2xhc3M9XCJmZHAtbWVkaWEtY29udGFpbmVyXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkTWVkaWEubWVkaWFUeXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInNlbGVjdGVkTWVkaWEubGFiZWxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWxlY3RlZE1lZGlhLmxhYmVsXCJcbiAgICAgICAgICAgIFthdHRyLnNyY109XCJzZWxlY3RlZE1lZGlhLm1lZGlhVXJsXCJcbiAgICAgICAgICAgIFthdHRyLmFsdF09XCJzZWxlY3RlZE1lZGlhLmFsdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlbkRpYWxvZygpXCJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5EaWFsb2coKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRNZWRpYS5tZWRpYVR5cGUgPT09ICd2aWRlbydcIlxuICAgICAgICAgICAgW3NyY109XCJzZWxlY3RlZE1lZGlhLm1lZGlhVXJsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGlhbG9nKClcIlxuICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib3BlbkRpYWxvZygpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VsZWN0ZWRNZWRpYS5sYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlbGVjdGVkTWVkaWEuYWx0IH19XG4gICAgICAgICAgICA8dHJhY2sgW3NyY109XCJzZWxlY3RlZE1lZGlhLmNhcHRpb25GaWxlXCIga2luZD1cImNhcHRpb25zXCIgc3JjbGFuZz1cImVuXCIgW2xhYmVsXT1cInNlbGVjdGVkTWVkaWEubGFiZWxcIiAvPlxuICAgICAgICAgICAgPHRyYWNrIFtzcmNdPVwic2VsZWN0ZWRNZWRpYS5hdWRpb0Rlc2NGaWxlXCIga2luZD1cImRlc2NyaXB0aW9uc1wiIHNyY2xhbmc9XCJlblwiIFtsYWJlbF09XCJzZWxlY3RlZE1lZGlhLmxhYmVsXCIgLz5cbiAgICAgICAgPC92aWRlbz5cbiAgICA8L2Rpdj5cbiAgICA8ZmRwLXRodW1ibmFpbC1pbWFnZVxuICAgICAgICAqbmdJZj1cImlzSG9yaXpvbnRhbFwiXG4gICAgICAgIFttZWRpYUxpc3RdPVwibWVkaWFMaXN0XCJcbiAgICAgICAgW21heEltYWdlc109XCJtYXhJbWFnZXNEaXNwbGF5XCJcbiAgICAgICAgW2lzSG9yaXpvbnRhbF09XCJpc0hvcml6b250YWxcIlxuICAgICAgICAodGh1bWJuYWlsQ2xpY2tlZCk9XCJ0aHVtYm5haWxDbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgKG9wZW5EZXRhaWxzRGlhbG9nKT1cIm9wZW5EaWFsb2coJGV2ZW50KVwiXG4gICAgPjwvZmRwLXRodW1ibmFpbC1pbWFnZT5cbjwvZGl2PlxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vc3JjL2xpYi90aHVtYm5haWwvdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7QUFHdEYsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBRWpCLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUI7Ozs7T0FJRztJQUNIO0lBQ0ksbURBQW1EO0lBQzVDLE1BQVM7SUFDaEIsa0NBQWtDO0lBQzNCLE9BQVU7UUFGVixXQUFNLEdBQU4sTUFBTSxDQUFHO1FBRVQsWUFBTyxHQUFQLE9BQU8sQ0FBRztJQUNsQixDQUFDO0NBQ1A7QUFDRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsYUFBYTtJQThCakQsY0FBYztJQUNkLFlBQ2Msa0JBQXFDLEVBQ3ZDLGNBQTZCLEVBQ1IsV0FBdUIsRUFDNUMs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QkFBa0Isb2FBa0JDLHVCQUF1QiwyRUNoRXZELHd6REEyQ0E7OzJGREdhLGtCQUFrQjtrQkFOOUIsU0FBUzsrQkFDSSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUk7OzBCQW9DaEMsUUFBUTs0RUEvQmIsU0FBUztzQkFEUixLQUFLO2dCQUtOLFlBQVk7c0JBRFgsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsS0FBSztnQkFLTixnQkFBZ0I7c0JBRGYsTUFBTTtnQkFLUCxjQUFjO3NCQURiLFNBQVM7dUJBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2dCQXdFcEQsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxDQUFDO2dCQVE5QyxrQkFBa0I7c0JBRGpCLFlBQVk7dUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgZm9yd2FyZFJlZixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJ0bFNlcnZpY2UsIHdhcm5PbmNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgRGlhbG9nU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFRodW1ibmFpbERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL3RodW1ibmFpbC1kZXRhaWxzL3RodW1ibmFpbC1kZXRhaWxzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHVtYm5haWxJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4vdGh1bWJuYWlsLWltYWdlL3RodW1ibmFpbC1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVkaWEgfSBmcm9tICcuL3RodW1ibmFpbC5pbnRlcmZhY2VzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IGNsYXNzIFRodW1ibmFpbENsaWNrZWRFdmVudDxUIGV4dGVuZHMgVGh1bWJuYWlsQ29tcG9uZW50ID0gVGh1bWJuYWlsQ29tcG9uZW50LCBLID0gTWVkaWE+IHtcbiAgICAvKipcbiAgICAgKiBUaHVtYm5haWwgY2xpY2sgZXZlbnRcbiAgICAgKiBAcGFyYW0gc291cmNlIFRodW1ibmFpbENvbXBvbmVudFxuICAgICAqIEBwYXJhbSBwYXlsb2FkIE1lZGlhXG4gICAgICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIC8qKiBUaGUgc291cmNlIFRodW1ibmFpbCBDb21wb25lbnQgb2YgdGhlIGV2ZW50LiAqL1xuICAgICAgICBwdWJsaWMgc291cmNlOiBULFxuICAgICAgICAvKiogVGhlIG5ldyB2YWx1ZSBvZiBhIGNvbnRyb2wuICovXG4gICAgICAgIHB1YmxpYyBwYXlsb2FkOiBLXG4gICAgKSB7fVxufVxuLyoqXG4gKiBAZGVwcmVjYXRlZFxuICogVGh1bWJuYWlsIGNvbXBvbmVudCBpcyBkZXByZWNhdGVkIHNpbmNlIHZlcnNpb24gMC40MC4wXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXRodW1ibmFpbCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RodW1ibmFpbC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGh1bWJuYWlsLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKiogTGlzdCBvZiBtZWRpYSBvYmplY3RzIHRvIGRpc3BsYXkuICovXG4gICAgQElucHV0KClcbiAgICBtZWRpYUxpc3Q6IE1lZGlhW107XG5cbiAgICAvKiogRGlzcGxheSBvcmllbnRhdGlvbiBvZiBUaHVtbmFpbCBjb21wb25lbnQuICovXG4gICAgQElucHV0KClcbiAgICBpc0hvcml6b250YWwgPSBmYWxzZTtcblxuICAgIC8qKiBNYXggaW1hZ2VzIHRvIGRpc3BsYXkgKi9cbiAgICBASW5wdXQoKVxuICAgIG1heEltYWdlc0Rpc3BsYXkgPSA1O1xuXG4gICAgLyoqIEV2ZW50IGVtaXR0ZWQgdXBvbiBjbGljayBvZiBhIHRodW1ibmFpbC4gKi9cbiAgICBAT3V0cHV0KClcbiAgICB0aHVtYm5haWxDbGlja2VkOiBFdmVudEVtaXR0ZXI8VGh1bWJuYWlsQ2xpY2tlZEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIC8qKiBSZWZlcmVuY2UgdG8gdGh1bWJuYWlsIGltYWdlcyBjb21wb25lbnQgKi9cbiAgICBAVmlld0NoaWxkKGZvcndhcmRSZWYoKCkgPT4gVGh1bWJuYWlsSW1hZ2VDb21wb25lbnQpKVxuICAgIHRodW1ibmFpbEltYWdlOiBUaHVtYm5haWxJbWFnZUNvbXBvbmVudDtcblxuICAgIC8qKiBHZW5lcmF0ZSB1bmlxdWUgaWQgZm9yIHRoZSB0aHVtYm5haWwgKi9cbiAgICB0aHVtYm5haWxJZDogc3RyaW5nID0gJ2ZkLXRodW1ibmFpbC1kaWFsb2ctaGVhZGVyLScgKyB1bmlxdWVJZCsrO1xuXG4gICAgLyoqIEBoaWRkZW4gU3RhcnQgaW5kZXggb2YgY3VycmVudGx5IGFjdGl2ZSBpdGVtcyAqL1xuICAgIGN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gMDtcblxuICAgIC8qKiBAaGlkZGVuIEN1cnJlbnRseSBzZWxlY3RlZCBtZWRpYS4gKi9cbiAgICBwdWJsaWMgc2VsZWN0ZWRNZWRpYTogTWVkaWE7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBfcnRsU2VydmljZTogUnRsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge1xuICAgICAgICBzdXBlcihfY2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgICAgICB3YXJuT25jZSgnVGh1bWJuYWlsQ29tcG9uZW50IGlzIGRlcHJlY2F0ZWQgc2luY2UgdmVyc2lvbiAwLjQwLjAgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBuZXh0IHJlbGVhc2UuJyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gU2VsZWN0IGZpcnN0IG1lZGlhIG9iamVjdCBvbiBpbml0LiAqL1xuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm1lZGlhTGlzdCkgJiYgdGhpcy5tZWRpYUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE1lZGlhID0gdGhpcy5tZWRpYUxpc3RbMF07XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0T3ZlcmxheSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdGh1bWJuYWlsQ2xpY2tIYW5kbGUoc2VsZWN0ZWRNZWRpYTogTWVkaWEpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1lZGlhID0gc2VsZWN0ZWRNZWRpYTtcbiAgICAgICAgdGhpcy50aHVtYm5haWxDbGlja2VkLmVtaXQodGhpcy5fY3JlYXRlQ2xpY2tFdmVudCh0aGlzLnNlbGVjdGVkTWVkaWEpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9wZW5EaWFsb2cobWVkaWE6IE1lZGlhID0gdGhpcy5zZWxlY3RlZE1lZGlhKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWVkaWFMaXN0LmZvckVhY2goKGl0ZW0pID0+IChpdGVtLm92ZXJsYXlSZXF1aXJlZCA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihUaHVtYm5haWxEZXRhaWxzQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBiYWNrZHJvcENsaWNrQ2xvc2VhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgIGVzY0tleUNsb3NlYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgdGh1bWJuYWlsSWQ6IHRoaXMudGh1bWJuYWlsSWQsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRNZWRpYTogbWVkaWEsXG4gICAgICAgICAgICAgICAgbWVkaWFMaXN0OiB0aGlzLm1lZGlhTGlzdCxcbiAgICAgICAgICAgICAgICBydGw6IHRoaXMuX2lzUnRsKCksXG4gICAgICAgICAgICAgICAgbWF4SW1hZ2VzOiB0aGlzLm1heEltYWdlc0Rpc3BsYXlcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gcmV0dXJucyBydGwgdmFsdWUgKi9cbiAgICBfaXNSdGwoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydGxTZXJ2aWNlPy5ydGwuZ2V0VmFsdWUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDcmVhdGUgVGh1bWJuYWlsIGNsaWNrIGV2ZW50IGluc3RhbmNlICovXG4gICAgcHJpdmF0ZSBfY3JlYXRlQ2xpY2tFdmVudCh2YWx1ZTogTWVkaWEpOiBUaHVtYm5haWxDbGlja2VkRXZlbnQge1xuICAgICAgICByZXR1cm4gbmV3IFRodW1ibmFpbENsaWNrZWRFdmVudCh0aGlzLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zZXRPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5tZWRpYUxpc3QubGVuZ3RoID4gdGhpcy5tYXhJbWFnZXNEaXNwbGF5KSB7XG4gICAgICAgICAgICB0aGlzLm1lZGlhTGlzdFt0aGlzLm1heEltYWdlc0Rpc3BsYXkgLSAxXS5vdmVybGF5UmVxdWlyZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gVHJhbnNpdGlvbnMgdG8gdGhlIG5leHQgaW1hZ2UgaW4gdGhlIHRodW1ibmFpbCAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCddKVxuICAgIG9uS2V5ZG93bkFycm93UmlnaHQoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5faXNSdGwoKSA/IHRoaXMucHJldmlvdXMoKSA6IHRoaXMubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIFRyYW5zaXRpb25zIHRvIHRoZSBwcmV2aW91cyBpbWFnZSBpbiB0aGUgdGh1bWJuYWlsKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50J10pXG4gICAgb25LZXlkb3duQXJyb3dMZWZ0KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuX2lzUnRsKCkgPyB0aGlzLm5leHQoKSA6IHRoaXMucHJldmlvdXMoKTtcbiAgICB9XG5cbiAgICAvKiogVHJhbnNpdGlvbnMgdG8gdGhlIHByZXZpb3VzIGltYWdlIGluIHRoZSB0aHVtYm5haWwuICovXG4gICAgcHJldmlvdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4IDw9IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ID0gdGhpcy5jdXJyZW50QWN0aXZlU2xpZGVzU3RhcnRJbmRleCAtIDE7XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbEltYWdlc0FycmF5ID0gdGhpcy50aHVtYm5haWxJbWFnZS50aHVtYm5haWxJbWFnZXMudG9BcnJheSgpO1xuICAgICAgICB0aHVtYm5haWxJbWFnZXNBcnJheVt0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqIFRyYW5zaXRpb25zIHRvIHRoZSBuZXh0IGltYWdlIGluIHRoZSB0aHVtYm5haWwuICovXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPj0gdGhpcy5tYXhJbWFnZXNEaXNwbGF5IC0gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXggPSB0aGlzLmN1cnJlbnRBY3RpdmVTbGlkZXNTdGFydEluZGV4ICsgMTtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsSW1hZ2VzQXJyYXkgPSB0aGlzLnRodW1ibmFpbEltYWdlLnRodW1ibmFpbEltYWdlcy50b0FycmF5KCk7XG4gICAgICAgIHRodW1ibmFpbEltYWdlc0FycmF5W3RoaXMuY3VycmVudEFjdGl2ZVNsaWRlc1N0YXJ0SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmRwLXRodW1ibmFpbC1jb250YWluZXJcIiBbY2xhc3MuZmRwLXRodW1ibmFpbC1jb250YWluZXItLWhvcml6b250YWxdPVwiaXNIb3Jpem9udGFsXCI+XG4gICAgPGZkcC10aHVtYm5haWwtaW1hZ2VcbiAgICAgICAgKm5nSWY9XCIhaXNIb3Jpem9udGFsXCJcbiAgICAgICAgW3RodW1ibmFpbElkXT1cInRodW1ibmFpbElkXCJcbiAgICAgICAgW21lZGlhTGlzdF09XCJtZWRpYUxpc3RcIlxuICAgICAgICBbbWF4SW1hZ2VzXT1cIm1heEltYWdlc0Rpc3BsYXlcIlxuICAgICAgICBbaXNIb3Jpem9udGFsXT1cImlzSG9yaXpvbnRhbFwiXG4gICAgICAgICh0aHVtYm5haWxDbGlja2VkKT1cInRodW1ibmFpbENsaWNrSGFuZGxlKCRldmVudClcIlxuICAgICAgICAob3BlbkRldGFpbHNEaWFsb2cpPVwib3BlbkRpYWxvZygkZXZlbnQpXCJcbiAgICA+PC9mZHAtdGh1bWJuYWlsLWltYWdlPlxuICAgIDxkaXYgY2xhc3M9XCJmZHAtbWVkaWEtY29udGFpbmVyXCI+XG4gICAgICAgIDxpbWdcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAqbmdJZj1cInNlbGVjdGVkTWVkaWEubWVkaWFUeXBlID09PSAnaW1hZ2UnXCJcbiAgICAgICAgICAgIFthdHRyLnRpdGxlXT1cInNlbGVjdGVkTWVkaWEubGFiZWxcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJzZWxlY3RlZE1lZGlhLmxhYmVsXCJcbiAgICAgICAgICAgIFthdHRyLnNyY109XCJzZWxlY3RlZE1lZGlhLm1lZGlhVXJsXCJcbiAgICAgICAgICAgIFthdHRyLmFsdF09XCJzZWxlY3RlZE1lZGlhLmFsdFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib3BlbkRpYWxvZygpXCJcbiAgICAgICAgICAgIChrZXlkb3duLnNwYWNlKT1cIm9wZW5EaWFsb2coKVwiXG4gICAgICAgIC8+XG4gICAgICAgIDx2aWRlb1xuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICpuZ0lmPVwic2VsZWN0ZWRNZWRpYS5tZWRpYVR5cGUgPT09ICd2aWRlbydcIlxuICAgICAgICAgICAgW3NyY109XCJzZWxlY3RlZE1lZGlhLm1lZGlhVXJsXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvcGVuRGlhbG9nKClcIlxuICAgICAgICAgICAgKGtleWRvd24uc3BhY2UpPVwib3BlbkRpYWxvZygpXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VsZWN0ZWRNZWRpYS5sYWJlbFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIHt7IHNlbGVjdGVkTWVkaWEuYWx0IH19XG4gICAgICAgICAgICA8dHJhY2sgW3NyY109XCJzZWxlY3RlZE1lZGlhLmNhcHRpb25GaWxlXCIga2luZD1cImNhcHRpb25zXCIgc3JjbGFuZz1cImVuXCIgW2xhYmVsXT1cInNlbGVjdGVkTWVkaWEubGFiZWxcIiAvPlxuICAgICAgICAgICAgPHRyYWNrIFtzcmNdPVwic2VsZWN0ZWRNZWRpYS5hdWRpb0Rlc2NGaWxlXCIga2luZD1cImRlc2NyaXB0aW9uc1wiIHNyY2xhbmc9XCJlblwiIFtsYWJlbF09XCJzZWxlY3RlZE1lZGlhLmxhYmVsXCIgLz5cbiAgICAgICAgPC92aWRlbz5cbiAgICA8L2Rpdj5cbiAgICA8ZmRwLXRodW1ibmFpbC1pbWFnZVxuICAgICAgICAqbmdJZj1cImlzSG9yaXpvbnRhbFwiXG4gICAgICAgIFttZWRpYUxpc3RdPVwibWVkaWFMaXN0XCJcbiAgICAgICAgW21heEltYWdlc109XCJtYXhJbWFnZXNEaXNwbGF5XCJcbiAgICAgICAgW2lzSG9yaXpvbnRhbF09XCJpc0hvcml6b250YWxcIlxuICAgICAgICAodGh1bWJuYWlsQ2xpY2tlZCk9XCJ0aHVtYm5haWxDbGlja0hhbmRsZSgkZXZlbnQpXCJcbiAgICAgICAgKG9wZW5EZXRhaWxzRGlhbG9nKT1cIm9wZW5EaWFsb2coJGV2ZW50KVwiXG4gICAgPjwvZmRwLXRodW1ibmFpbC1pbWFnZT5cbjwvZGl2PlxuIl19
|