@igo2/geo 16.0.0 → 16.0.2
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/lib/catalog/index.mjs +1 -1
- package/esm2022/lib/catalog/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.interface.mjs +1 -1
- package/esm2022/lib/datasource/utils/index.mjs +1 -1
- package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2022/lib/directions/directions-results/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
- package/esm2022/lib/directions/index.mjs +1 -1
- package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
- package/esm2022/lib/directions/shared/index.mjs +1 -1
- package/esm2022/lib/download/download-button/index.mjs +1 -1
- package/esm2022/lib/download/index.mjs +1 -1
- package/esm2022/lib/download/shared/download.interface.mjs +1 -1
- package/esm2022/lib/download/shared/index.mjs +1 -1
- package/esm2022/lib/draw/index.mjs +1 -1
- package/esm2022/lib/draw/shared/index.mjs +1 -1
- package/esm2022/lib/feature/index.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
- package/esm2022/lib/filter/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filter-button/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filter-form/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filter-selection/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filter-time/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-form/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-item/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-list/index.mjs +1 -1
- package/esm2022/lib/filter/shared/index.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/index.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/index.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/index.mjs +1 -1
- package/esm2022/lib/filter/time-filter-button/index.mjs +1 -1
- package/esm2022/lib/filter/time-filter-form/index.mjs +1 -1
- package/esm2022/lib/filter/time-filter-item/index.mjs +1 -1
- package/esm2022/lib/filter/time-filter-list/index.mjs +1 -1
- package/esm2022/lib/geometry/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/index.mjs +1 -1
- package/esm2022/lib/import-export/export-button/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/index.mjs +1 -1
- package/esm2022/lib/layer/index.mjs +1 -1
- package/esm2022/lib/layer/layer-item/index.mjs +1 -1
- package/esm2022/lib/layer/layer-legend/index.mjs +1 -1
- package/esm2022/lib/layer/layer-legend-item/index.mjs +1 -1
- package/esm2022/lib/layer/layer-legend-list/index.mjs +1 -1
- package/esm2022/lib/layer/layer-list/index.mjs +1 -1
- package/esm2022/lib/layer/layer-list-tool/index.mjs +1 -1
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.enum.mjs +1 -1
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/index.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.enums.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
- package/esm2022/lib/layer/track-feature-button/index.mjs +1 -1
- package/esm2022/lib/layer/utils/index.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/index.mjs +1 -1
- package/esm2022/lib/map/geolocate-button/index.mjs +1 -1
- package/esm2022/lib/map/index.mjs +1 -1
- package/esm2022/lib/map/info-section/index.mjs +1 -1
- package/esm2022/lib/map/map-browser/index.mjs +1 -1
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +2 -2
- package/esm2022/lib/map/map-center/index.mjs +1 -1
- package/esm2022/lib/map/menu-button/index.mjs +1 -1
- package/esm2022/lib/map/offline-button/index.mjs +1 -1
- package/esm2022/lib/map/rotation-button/index.mjs +1 -1
- package/esm2022/lib/map/shared/map.enums.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +1 -1
- package/esm2022/lib/map/swipe-control/index.mjs +1 -1
- package/esm2022/lib/map/wake-lock-button/index.mjs +1 -1
- package/esm2022/lib/map/zoom-button/index.mjs +1 -1
- package/esm2022/lib/measure/index.mjs +1 -1
- package/esm2022/lib/measure/shared/index.mjs +1 -1
- package/esm2022/lib/metadata/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +2 -2
- package/esm2022/lib/metadata/shared/index.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +1 -1
- package/esm2022/lib/offline/geoDB/index.mjs +1 -1
- package/esm2022/lib/offline/index.mjs +1 -1
- package/esm2022/lib/offline/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/index.mjs +1 -1
- package/esm2022/lib/overlay/shared/index.mjs +1 -1
- package/esm2022/lib/print/index.mjs +1 -1
- package/esm2022/lib/print/print-form/index.mjs +1 -1
- package/esm2022/lib/print/print-form/print-form.component.mjs +54 -53
- package/esm2022/lib/print/shared/index.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +4 -2
- package/esm2022/lib/print/shared/print.type.mjs +2 -2
- package/esm2022/lib/query/index.mjs +1 -1
- package/esm2022/lib/query/shared/index.mjs +1 -1
- package/esm2022/lib/query/shared/query.enums.mjs +1 -1
- package/esm2022/lib/search/index.mjs +1 -1
- package/esm2022/lib/search/shared/index.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/index.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2022/lib/style/index.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/index.mjs +1 -1
- package/esm2022/lib/style/shared/feature/index.mjs +1 -1
- package/esm2022/lib/style/shared/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/index.mjs +1 -1
- package/esm2022/lib/style/shared/vector/index.mjs +1 -1
- package/esm2022/lib/style/style-list/index.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
- package/esm2022/lib/style/style-service/index.mjs +1 -1
- package/esm2022/lib/toast/index.mjs +1 -1
- package/esm2022/lib/wkt/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/index.mjs +1 -1
- package/esm2022/lib/workspace/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/index.mjs +1 -1
- package/esm2022/lib/workspace/widgets/index.mjs +1 -1
- package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
- package/fesm2022/igo2-geo.mjs +59 -56
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/print/print-form/print-form.component.d.ts +0 -1
- package/lib/print/shared/print.type.d.ts +0 -1
- package/locale/en.geo.json +1 -0
- package/locale/fr.geo.json +1 -0
- package/package.json +4 -4
|
@@ -112,7 +112,7 @@ function PrintFormComponent_mat_option_70_Template(rf, ctx) { if (rf & 1) {
|
|
|
112
112
|
i0.ɵɵadvance(1);
|
|
113
113
|
i0.ɵɵtextInterpolate1(" ", imageFormat_r15.value, " ");
|
|
114
114
|
} }
|
|
115
|
-
function
|
|
115
|
+
function PrintFormComponent_mat_option_80_Template(rf, ctx) { if (rf & 1) {
|
|
116
116
|
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
117
117
|
i0.ɵɵtext(1);
|
|
118
118
|
i0.ɵɵelementEnd();
|
|
@@ -120,9 +120,9 @@ function PrintFormComponent_mat_option_79_Template(rf, ctx) { if (rf & 1) {
|
|
|
120
120
|
const resolution_r16 = ctx.$implicit;
|
|
121
121
|
i0.ɵɵproperty("value", resolution_r16.key);
|
|
122
122
|
i0.ɵɵadvance(1);
|
|
123
|
-
i0.ɵɵtextInterpolate1(" ", resolution_r16.value
|
|
123
|
+
i0.ɵɵtextInterpolate1(" ", resolution_r16.value, " ");
|
|
124
124
|
} }
|
|
125
|
-
function
|
|
125
|
+
function PrintFormComponent_mat_option_89_Template(rf, ctx) { if (rf & 1) {
|
|
126
126
|
i0.ɵɵelementStart(0, "mat-option", 20);
|
|
127
127
|
i0.ɵɵtext(1);
|
|
128
128
|
i0.ɵɵpipe(2, "translate");
|
|
@@ -362,7 +362,7 @@ export class PrintFormComponent {
|
|
|
362
362
|
this.commentField.updateValueAndValidity();
|
|
363
363
|
}
|
|
364
364
|
static ɵfac = function PrintFormComponent_Factory(t) { return new (t || PrintFormComponent)(i0.ɵɵdirectiveInject(i1.UntypedFormBuilder)); };
|
|
365
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFormComponent, selectors: [["igo-print-form"]], inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, decls:
|
|
365
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PrintFormComponent, selectors: [["igo-print-form"]], inputs: { disabled$: "disabled$", imageFormat: "imageFormat", outputFormat: "outputFormat", paperFormat: "paperFormat", orientation: "orientation", resolution: "resolution", legendPosition: "legendPosition", title: "title", subtitle: "subtitle", comment: "comment", showProjection: "showProjection", showScale: "showScale", showLegend: "showLegend", doZipFile: "doZipFile" }, outputs: { submit: "submit" }, decls: 96, vars: 105, consts: [[1, "igo-form", 3, "formGroup"], [1, "igo-input-container"], ["matInput", "", "formControlName", "title", 3, "placeholder"], [4, "ngIf"], ["matInput", "", "formControlName", "subtitle", 3, "placeholder"], ["matInput", "", "formControlName", "comment", 3, "placeholder"], [1, "igo-input-container", "slide-toggle-container"], [1, "print-slide-toggle-container"], ["formControlName", "showProjection", 1, "print-option", 3, "labelPosition"], ["formControlName", "showScale", 1, "print-option", 3, "labelPosition"], ["formControlName", "doZipFile", 1, "print-option", 3, "labelPosition"], ["formControlName", "legendPosition", 3, "placeholder"], [3, "value", 4, "ngFor", "ngForOf"], ["formControlName", "outputFormat", 3, "placeholder", "selectionChange"], ["formControlName", "paperFormat", 3, "placeholder", "selectionChange"], ["formControlName", "imageFormat", 3, "placeholder"], ["formControlName", "resolution", 3, "placeholder"], ["formControlName", "orientation", 3, "placeholder", "selectionChange"], [1, "igo-form-button-group", "print-button-top-padding"], ["mat-raised-button", "", "type", "button", 3, "disabled", "click"], [3, "value"]], template: function PrintFormComponent_Template(rf, ctx) { if (rf & 1) {
|
|
366
366
|
i0.ɵɵelementStart(0, "form", 0)(1, "div", 1)(2, "mat-form-field")(3, "mat-label");
|
|
367
367
|
i0.ɵɵtext(4);
|
|
368
368
|
i0.ɵɵpipe(5, "translate");
|
|
@@ -440,112 +440,113 @@ export class PrintFormComponent {
|
|
|
440
440
|
i0.ɵɵelementStart(72, "div", 1)(73, "mat-form-field")(74, "mat-label");
|
|
441
441
|
i0.ɵɵtext(75);
|
|
442
442
|
i0.ɵɵpipe(76, "translate");
|
|
443
|
+
i0.ɵɵpipe(77, "translate");
|
|
443
444
|
i0.ɵɵelementEnd();
|
|
444
|
-
i0.ɵɵelementStart(
|
|
445
|
-
i0.ɵɵpipe(
|
|
446
|
-
i0.ɵɵtemplate(
|
|
447
|
-
i0.ɵɵpipe(
|
|
445
|
+
i0.ɵɵelementStart(78, "mat-select", 16);
|
|
446
|
+
i0.ɵɵpipe(79, "translate");
|
|
447
|
+
i0.ɵɵtemplate(80, PrintFormComponent_mat_option_80_Template, 2, 2, "mat-option", 12);
|
|
448
|
+
i0.ɵɵpipe(81, "keyvalue");
|
|
448
449
|
i0.ɵɵelementEnd()()();
|
|
449
|
-
i0.ɵɵelementStart(
|
|
450
|
-
i0.ɵɵtext(
|
|
451
|
-
i0.ɵɵpipe(
|
|
450
|
+
i0.ɵɵelementStart(82, "div", 1)(83, "mat-form-field")(84, "mat-label");
|
|
451
|
+
i0.ɵɵtext(85);
|
|
452
|
+
i0.ɵɵpipe(86, "translate");
|
|
452
453
|
i0.ɵɵelementEnd();
|
|
453
|
-
i0.ɵɵelementStart(
|
|
454
|
-
i0.ɵɵlistener("selectionChange", function
|
|
455
|
-
i0.ɵɵpipe(
|
|
456
|
-
i0.ɵɵtemplate(
|
|
457
|
-
i0.ɵɵpipe(
|
|
454
|
+
i0.ɵɵelementStart(87, "mat-select", 17);
|
|
455
|
+
i0.ɵɵlistener("selectionChange", function PrintFormComponent_Template_mat_select_selectionChange_87_listener() { return ctx.changeCommentLength(); });
|
|
456
|
+
i0.ɵɵpipe(88, "translate");
|
|
457
|
+
i0.ɵɵtemplate(89, PrintFormComponent_mat_option_89_Template, 3, 4, "mat-option", 12);
|
|
458
|
+
i0.ɵɵpipe(90, "keyvalue");
|
|
458
459
|
i0.ɵɵelementEnd()()();
|
|
459
|
-
i0.ɵɵelementStart(
|
|
460
|
-
i0.ɵɵlistener("click", function
|
|
461
|
-
i0.ɵɵpipe(
|
|
462
|
-
i0.ɵɵtext(
|
|
463
|
-
i0.ɵɵpipe(
|
|
460
|
+
i0.ɵɵelementStart(91, "div", 18)(92, "button", 19);
|
|
461
|
+
i0.ɵɵlistener("click", function PrintFormComponent_Template_button_click_92_listener() { return ctx.handleFormSubmit(ctx.form.value, ctx.form.valid); });
|
|
462
|
+
i0.ɵɵpipe(93, "async");
|
|
463
|
+
i0.ɵɵtext(94);
|
|
464
|
+
i0.ɵɵpipe(95, "translate");
|
|
464
465
|
i0.ɵɵelementEnd()()();
|
|
465
466
|
} if (rf & 2) {
|
|
466
467
|
i0.ɵɵproperty("formGroup", ctx.form);
|
|
467
468
|
i0.ɵɵadvance(4);
|
|
468
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5,
|
|
469
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(5, 45, "igo.geo.printForm.title"));
|
|
469
470
|
i0.ɵɵadvance(2);
|
|
470
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(7,
|
|
471
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(7, 47, "igo.geo.printForm.title"));
|
|
471
472
|
i0.ɵɵadvance(2);
|
|
472
473
|
i0.ɵɵproperty("ngIf", ctx.titleField.errors == null ? null : ctx.titleField.errors.maxlength);
|
|
473
474
|
i0.ɵɵadvance(4);
|
|
474
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13,
|
|
475
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(13, 49, "igo.geo.printForm.subtitle"));
|
|
475
476
|
i0.ɵɵadvance(2);
|
|
476
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(15,
|
|
477
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(15, 51, "igo.geo.printForm.subtitle"));
|
|
477
478
|
i0.ɵɵadvance(2);
|
|
478
479
|
i0.ɵɵproperty("ngIf", ctx.subtitleField.errors == null ? null : ctx.subtitleField.errors.maxlength);
|
|
479
480
|
i0.ɵɵadvance(4);
|
|
480
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(21,
|
|
481
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(21, 53, "igo.geo.printForm.comment"));
|
|
481
482
|
i0.ɵɵadvance(2);
|
|
482
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(23,
|
|
483
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(23, 55, "igo.geo.printForm.comment"));
|
|
483
484
|
i0.ɵɵadvance(2);
|
|
484
485
|
i0.ɵɵproperty("ngIf", ctx.commentField.errors == null ? null : ctx.commentField.errors.maxlength);
|
|
485
486
|
i0.ɵɵadvance(3);
|
|
486
487
|
i0.ɵɵproperty("labelPosition", "before");
|
|
487
488
|
i0.ɵɵadvance(1);
|
|
488
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(29,
|
|
489
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(29, 57, "igo.geo.printForm.showProjection"), " ");
|
|
489
490
|
i0.ɵɵadvance(2);
|
|
490
491
|
i0.ɵɵproperty("labelPosition", "before");
|
|
491
492
|
i0.ɵɵadvance(1);
|
|
492
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(32,
|
|
493
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(32, 59, "igo.geo.printForm.showScale"), " ");
|
|
493
494
|
i0.ɵɵadvance(2);
|
|
494
495
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "none" : "");
|
|
495
496
|
i0.ɵɵproperty("labelPosition", "before");
|
|
496
497
|
i0.ɵɵadvance(1);
|
|
497
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(35,
|
|
498
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(35, 61, "igo.geo.printForm.doZipFile"), " ");
|
|
498
499
|
i0.ɵɵadvance(5);
|
|
499
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(40,
|
|
500
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(40, 63, "igo.geo.printForm.legendPosition"));
|
|
500
501
|
i0.ɵɵadvance(2);
|
|
501
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(42,
|
|
502
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(42, 65, "igo.geo.printForm.legendPosition"));
|
|
502
503
|
i0.ɵɵadvance(2);
|
|
503
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(44,
|
|
504
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(44, 67, ctx.legendPositions));
|
|
504
505
|
i0.ɵɵadvance(5);
|
|
505
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(49,
|
|
506
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(49, 69, "igo.geo.printForm.outputFormat"));
|
|
506
507
|
i0.ɵɵadvance(2);
|
|
507
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(51,
|
|
508
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(51, 71, "igo.geo.printForm.outputFormat"));
|
|
508
509
|
i0.ɵɵadvance(2);
|
|
509
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(53,
|
|
510
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(53, 73, ctx.outputFormats));
|
|
510
511
|
i0.ɵɵadvance(2);
|
|
511
512
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "block" : "none");
|
|
512
513
|
i0.ɵɵadvance(3);
|
|
513
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(58,
|
|
514
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(58, 75, "igo.geo.printForm.paperFormat"));
|
|
514
515
|
i0.ɵɵadvance(2);
|
|
515
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(60,
|
|
516
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(60, 77, "igo.geo.printForm.paperFormat"));
|
|
516
517
|
i0.ɵɵadvance(2);
|
|
517
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(62,
|
|
518
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(62, 79, ctx.paperFormats));
|
|
518
519
|
i0.ɵɵadvance(2);
|
|
519
520
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "none" : "block");
|
|
520
521
|
i0.ɵɵadvance(3);
|
|
521
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(67,
|
|
522
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(67, 81, "igo.geo.printForm.imageFormat"));
|
|
522
523
|
i0.ɵɵadvance(2);
|
|
523
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(69,
|
|
524
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(69, 83, "igo.geo.printForm.imageFormat"));
|
|
524
525
|
i0.ɵɵadvance(2);
|
|
525
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(71,
|
|
526
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(71, 85, ctx.imageFormats));
|
|
526
527
|
i0.ɵɵadvance(5);
|
|
527
|
-
i0.ɵɵ
|
|
528
|
-
i0.ɵɵadvance(
|
|
529
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
528
|
+
i0.ɵɵtextInterpolate2("", i0.ɵɵpipeBind1(76, 87, "igo.geo.printForm.resolution"), " (", i0.ɵɵpipeBind1(77, 89, "igo.geo.printForm.resolutionUnit"), ")");
|
|
529
|
+
i0.ɵɵadvance(3);
|
|
530
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(79, 91, "igo.geo.printForm.resolution"));
|
|
530
531
|
i0.ɵɵadvance(2);
|
|
531
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
532
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(81, 93, ctx.resolutions));
|
|
532
533
|
i0.ɵɵadvance(2);
|
|
533
534
|
i0.ɵɵstyleProp("display", ctx.isPrintService ? "block" : "none");
|
|
534
535
|
i0.ɵɵadvance(3);
|
|
535
|
-
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(
|
|
536
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(86, 95, "igo.geo.printForm.orientation"));
|
|
536
537
|
i0.ɵɵadvance(2);
|
|
537
|
-
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(
|
|
538
|
+
i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(88, 97, "igo.geo.printForm.orientation"));
|
|
538
539
|
i0.ɵɵadvance(2);
|
|
539
|
-
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(
|
|
540
|
+
i0.ɵɵproperty("ngForOf", i0.ɵɵpipeBind1(90, 99, ctx.orientations));
|
|
540
541
|
i0.ɵɵadvance(3);
|
|
541
|
-
i0.ɵɵproperty("disabled", !ctx.form.valid || i0.ɵɵpipeBind1(
|
|
542
|
+
i0.ɵɵproperty("disabled", !ctx.form.valid || i0.ɵɵpipeBind1(93, 101, ctx.disabled$));
|
|
542
543
|
i0.ɵɵadvance(2);
|
|
543
|
-
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(
|
|
544
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(95, 103, "igo.geo.printForm.saveBtn"), " ");
|
|
544
545
|
} }, dependencies: [i2.NgForOf, i2.NgIf, i1.ɵNgNoValidate, i1.DefaultValueAccessor, i1.NgControlStatus, i1.NgControlStatusGroup, i1.FormGroupDirective, i1.FormControlName, i3.MatButton, i4.MatFormField, i4.MatLabel, i4.MatError, i5.MatSelect, i6.MatOption, i7.MatInput, i8.MatSlideToggle, i2.AsyncPipe, i9.TranslatePipe, i10.KeyValuePipe], styles: ["[_nghost-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .slide-toggle-container[_ngcontent-%COMP%]{margin-bottom:16px}[_nghost-%COMP%] .print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%]{width:100%;padding:0 8px}[_nghost-%COMP%] .print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mdc-form-field{width:100%}[_nghost-%COMP%] .print-slide-toggle-container[_ngcontent-%COMP%] mat-slide-toggle[_ngcontent-%COMP%] .mdc-label{margin-left:0;width:calc(100% - 60px)}[_nghost-%COMP%] .print-option[_ngcontent-%COMP%]{display:block;margin-bottom:12px}[_nghost-%COMP%] .igo-form[_ngcontent-%COMP%]{padding:10px 5px 5px}[_nghost-%COMP%] .igo-form-button-group[_ngcontent-%COMP%]{text-align:center}"] });
|
|
545
546
|
}
|
|
546
547
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PrintFormComponent, [{
|
|
547
548
|
type: Component,
|
|
548
|
-
args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.title' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{ 'igo.geo.printForm.title' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.title' | translate,\r\n value: 130\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.subtitle' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{ 'igo.geo.printForm.subtitle' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.subtitle' | translate,\r\n value: 120\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.comment' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{ 'igo.geo.printForm.comment' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.comment' | translate,\r\n value: maxLength\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container slide-toggle-container\">\r\n <div class=\"print-slide-toggle-container\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showProjection' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showScale' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\"\r\n >\r\n {{ 'igo.geo.printForm.doZipFile' | translate }}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.geo.printForm.legendPosition' | translate\r\n }}</mat-label>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{ 'igo.geo.printForm.legendPosition' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let legendPosition of legendPositions | keyvalue\"\r\n [value]=\"legendPosition.key\"\r\n >\r\n <ng-container\r\n *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n 'igo.geo.printForm.legendPositions.' + legendPosition.value\r\n | translate\r\n }}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n (outputFormat === 'Pdf'\r\n ? 'igo.geo.printForm.legendPositions.newpage'\r\n : 'igo.geo.printForm.legendPositions.newimage'\r\n ) | translate\r\n }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.outputFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.outputFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let outputFormat of outputFormats | keyvalue\"\r\n [value]=\"outputFormat.key\"\r\n >\r\n {{ outputFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.paperFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.paperFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let paperFormat of paperFormats | keyvalue\"\r\n [value]=\"paperFormat.key\"\r\n >\r\n {{\r\n 'igo.geo.printForm.paperFormats.' + paperFormat.value | translate\r\n }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'none' : 'block'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.imageFormat' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.imageFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let imageFormat of imageFormats | keyvalue\"\r\n [value]=\"imageFormat.key\"\r\n >\r\n {{ imageFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.resolution' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{ 'igo.geo.printForm.resolution' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let resolution of resolutions | keyvalue\"\r\n [value]=\"resolution.key\"\r\n >\r\n {{ resolution.value
|
|
549
|
+
args: [{ selector: 'igo-print-form', template: "<form class=\"igo-form\" [formGroup]=\"form\">\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.title' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"title\"\r\n placeholder=\"{{ 'igo.geo.printForm.title' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"titleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.title' | translate,\r\n value: 130\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.subtitle' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"subtitle\"\r\n placeholder=\"{{ 'igo.geo.printForm.subtitle' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"subtitleField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.subtitle' | translate,\r\n value: 120\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.comment' | translate }}</mat-label>\r\n <input\r\n matInput\r\n formControlName=\"comment\"\r\n placeholder=\"{{ 'igo.geo.printForm.comment' | translate }}\"\r\n />\r\n <mat-error *ngIf=\"commentField.errors?.maxlength\">{{\r\n 'igo.geo.formValidation.maxLength'\r\n | translate\r\n : {\r\n column: 'igo.geo.printForm.comment' | translate,\r\n value: maxLength\r\n }\r\n }}</mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container slide-toggle-container\">\r\n <div class=\"print-slide-toggle-container\">\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showProjection\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showProjection' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"showScale\"\r\n [labelPosition]=\"'before'\"\r\n >\r\n {{ 'igo.geo.printForm.showScale' | translate }}\r\n </mat-slide-toggle>\r\n <mat-slide-toggle\r\n class=\"print-option\"\r\n formControlName=\"doZipFile\"\r\n [labelPosition]=\"'before'\"\r\n [style.display]=\"isPrintService ? 'none' : ''\"\r\n >\r\n {{ 'igo.geo.printForm.doZipFile' | translate }}\r\n </mat-slide-toggle>\r\n </div>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{\r\n 'igo.geo.printForm.legendPosition' | translate\r\n }}</mat-label>\r\n <mat-select\r\n formControlName=\"legendPosition\"\r\n placeholder=\"{{ 'igo.geo.printForm.legendPosition' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let legendPosition of legendPositions | keyvalue\"\r\n [value]=\"legendPosition.key\"\r\n >\r\n <ng-container\r\n *ngIf=\"!['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n 'igo.geo.printForm.legendPositions.' + legendPosition.value\r\n | translate\r\n }}\r\n </ng-container>\r\n\r\n <ng-container\r\n *ngIf=\"['newpage', 'newimage'].includes(legendPosition.value)\"\r\n >\r\n {{\r\n (outputFormat === 'Pdf'\r\n ? 'igo.geo.printForm.legendPositions.newpage'\r\n : 'igo.geo.printForm.legendPositions.newimage'\r\n ) | translate\r\n }}\r\n </ng-container>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.outputFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"toggleImageSaveProp()\"\r\n formControlName=\"outputFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.outputFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let outputFormat of outputFormats | keyvalue\"\r\n [value]=\"outputFormat.key\"\r\n >\r\n {{ outputFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.paperFormat' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"paperFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.paperFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let paperFormat of paperFormats | keyvalue\"\r\n [value]=\"paperFormat.key\"\r\n >\r\n {{\r\n 'igo.geo.printForm.paperFormats.' + paperFormat.value | translate\r\n }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'none' : 'block'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.imageFormat' | translate }}</mat-label>\r\n <mat-select\r\n formControlName=\"imageFormat\"\r\n placeholder=\"{{ 'igo.geo.printForm.imageFormat' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let imageFormat of imageFormats | keyvalue\"\r\n [value]=\"imageFormat.key\"\r\n >\r\n {{ imageFormat.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-input-container\">\r\n <mat-form-field>\r\n <mat-label\r\n >{{ 'igo.geo.printForm.resolution' | translate }} ({{\r\n 'igo.geo.printForm.resolutionUnit' | translate\r\n }})</mat-label\r\n >\r\n <mat-select\r\n formControlName=\"resolution\"\r\n placeholder=\"{{ 'igo.geo.printForm.resolution' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let resolution of resolutions | keyvalue\"\r\n [value]=\"resolution.key\"\r\n >\r\n {{ resolution.value }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div\r\n class=\"igo-input-container\"\r\n [style.display]=\"isPrintService ? 'block' : 'none'\"\r\n >\r\n <mat-form-field>\r\n <mat-label>{{ 'igo.geo.printForm.orientation' | translate }}</mat-label>\r\n <mat-select\r\n (selectionChange)=\"changeCommentLength()\"\r\n formControlName=\"orientation\"\r\n placeholder=\"{{ 'igo.geo.printForm.orientation' | translate }}\"\r\n >\r\n <mat-option\r\n *ngFor=\"let orientation of orientations | keyvalue\"\r\n [value]=\"orientation.key\"\r\n >\r\n {{ 'igo.geo.printForm.' + orientation.value | translate }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"igo-form-button-group print-button-top-padding\">\r\n <button\r\n mat-raised-button\r\n type=\"button\"\r\n [disabled]=\"!form.valid || (disabled$ | async)\"\r\n (click)=\"handleFormSubmit(form.value, form.valid)\"\r\n >\r\n {{ 'igo.geo.printForm.saveBtn' | translate }}\r\n </button>\r\n </div>\r\n</form>\r\n", styles: [":host mat-form-field{width:100%}:host .slide-toggle-container{margin-bottom:16px}:host .print-slide-toggle-container mat-slide-toggle{width:100%;padding:0 8px}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}:host .print-slide-toggle-container mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}:host .print-option{display:block;margin-bottom:12px}:host .igo-form{padding:10px 5px 5px}:host .igo-form-button-group{text-align:center}\n"] }]
|
|
549
550
|
}], function () { return [{ type: i1.UntypedFormBuilder }]; }, { disabled$: [{
|
|
550
551
|
type: Input
|
|
551
552
|
}], imageFormat: [{
|
|
@@ -577,4 +578,4 @@ export class PrintFormComponent {
|
|
|
577
578
|
}], submit: [{
|
|
578
579
|
type: Output
|
|
579
580
|
}] }); })();
|
|
580
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG9CQUFvQixFQUNyQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1R4QixpQ0FBZ0Q7SUFBQSxZQU85Qzs7O0lBQUEsaUJBQVk7O0lBUGtDLGVBTzlDO0lBUDhDLDJKQU85Qzs7OztJQVdGLGlDQUFtRDtJQUFBLFlBT2pEOzs7SUFBQSxpQkFBWTs7SUFQcUMsZUFPakQ7SUFQaUQsOEpBT2pEOzs7O0lBV0YsaUNBQWtEO0lBQUEsWUFPaEQ7OztJQUFBLGlCQUFZOzs7SUFQb0MsZUFPaEQ7SUFQZ0QsK0tBT2hEOzs7SUE0Q0UsNkJBRUM7SUFDQyxZQUlGOztJQUFBLDBCQUFlOzs7SUFKYixlQUlGO0lBSkUscUhBSUY7OztJQUVBLDZCQUVDO0lBQ0MsWUFNRjs7SUFBQSwwQkFBZTs7O0lBTmIsZUFNRjtJQU5FLGtMQU1GOzs7O0lBdEJGLHNDQUdDO0lBQ0MsbUdBT2U7SUFFZixtR0FTZTtJ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STFELGVBQStEO1lBQS9ELGdHQUErRDtZQUdyQyxlQUEwQjtZQUExQixrRUFBMEI7WUFheEQsZUFBbUQ7WUFBbkQsZ0VBQW1EO1lBR3RDLGVBQWlEO1lBQWpELDZFQUFpRDtZQUcxRCxlQUErRDtZQUEvRCxnR0FBK0Q7WUFHckMsZUFBMEI7WUFBMUIsa0VBQTBCO1lBVzNDLGVBQWdEO1lBQWhELDRFQUFnRDtZQUd6RCxlQUE4RDtZQUE5RCwrRkFBOEQ7WUFHckMsZUFBeUI7WUFBekIsaUVBQXlCO1lBV3RELGVBQW1EO1lBQW5ELGdFQUFtRDtZQUd0QyxlQUFpRDtZQUFqRCw2RUFBaUQ7WUFJMUQsZUFBK0Q7WUFBL0QsZ0dBQStEO1lBR3JDLGVBQTBCO1lBQTFCLGtFQUEwQjtZQWF0RCxlQUErQztZQUEvQyxtRkFBK0M7WUFHL0MsZUFDRjtZQURFLHFGQUNGOzs7dUZEMU1TLGtCQUFrQjtjQUw5QixTQUFTOzJCQUNFLGdCQUFnQjtxRUFjakIsU0FBUztrQkFBakIsS0FBSztZQUdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFlBQVk7a0JBRGYsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFdBQVc7a0JBRGQsS0FBSztZQVdGLFVBQVU7a0JBRGIsS0FBSztZQVdGLGNBQWM7a0JBRGpCLEtBQUs7WUFXRixLQUFLO2tCQURSLEtBQUs7WUFRRixRQUFRO2tCQURYLEtBQUs7WUFRRixPQUFPO2tCQURWLEtBQUs7WUFRRixjQUFjO2tCQURqQixLQUFLO1lBUUYsU0FBUztrQkFEWixLQUFLO1lBUUYsVUFBVTtrQkFEYixLQUFLO1lBU0YsU0FBUztrQkFEWixLQUFLO1lBNERJLE1BQU07a0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBVbnR5cGVkRm9ybUJ1aWxkZXIsXHJcbiAgVW50eXBlZEZvcm1Db250cm9sLFxyXG4gIFVudHlwZWRGb3JtR3JvdXAsXHJcbiAgVmFsaWRhdG9yc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgUHJpbnRPcHRpb25zIH0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgUHJpbnRMZWdlbmRQb3NpdGlvbixcclxuICBQcmludE9yaWVudGF0aW9uLFxyXG4gIFByaW50T3V0cHV0Rm9ybWF0LFxyXG4gIFByaW50UGFwZXJGb3JtYXQsXHJcbiAgUHJpbnRSZXNvbHV0aW9uLFxyXG4gIFByaW50U2F2ZUltYWdlRm9ybWF0XHJcbn0gZnJvbSAnLi4vc2hhcmVkL3ByaW50LnR5cGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tcHJpbnQtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ByaW50LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3ByaW50LWZvcm0uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUHJpbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBwdWJsaWMgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgb3V0cHV0Rm9ybWF0cyA9IFByaW50T3V0cHV0Rm9ybWF0O1xyXG4gIHB1YmxpYyBwYXBlckZvcm1hdHMgPSBQcmludFBhcGVyRm9ybWF0O1xyXG4gIHB1YmxpYyBvcmllbnRhdGlvbnMgPSBQcmludE9yaWVudGF0aW9uO1xyXG4gIHB1YmxpYyByZXNvbHV0aW9ucyA9IFByaW50UmVzb2x1dGlvbjtcclxuICBwdWJsaWMgaW1hZ2VGb3JtYXRzID0gUHJpbnRTYXZlSW1hZ2VGb3JtYXQ7XHJcbiAgcHVibGljIGxlZ2VuZFBvc2l0aW9ucyA9IFByaW50TGVnZW5kUG9zaXRpb247XHJcbiAgcHVibGljIGlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuXHJcbiAgQElucHV0KCkgZGlzYWJsZWQkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj47XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGltYWdlRm9ybWF0KCk6IFByaW50U2F2ZUltYWdlRm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLmltYWdlRm9ybWF0RmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBpbWFnZUZvcm1hdCh2YWx1ZTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQpIHtcclxuICAgIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFNhdmVJbWFnZUZvcm1hdC5KcGVnLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG91dHB1dEZvcm1hdCgpOiBQcmludE91dHB1dEZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IG91dHB1dEZvcm1hdCh2YWx1ZTogUHJpbnRPdXRwdXRGb3JtYXQpIHtcclxuICAgIHRoaXMub3V0cHV0Rm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRPdXRwdXRGb3JtYXQuUGRmLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHBhcGVyRm9ybWF0KCk6IFByaW50UGFwZXJGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMucGFwZXJGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHBhcGVyRm9ybWF0KHZhbHVlOiBQcmludFBhcGVyRm9ybWF0KSB7XHJcbiAgICB0aGlzLnBhcGVyRm9ybWF0RmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRQYXBlckZvcm1hdC5MZXR0ZXIsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3JpZW50YXRpb24oKTogUHJpbnRPcmllbnRhdGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcmllbnRhdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgb3JpZW50YXRpb24odmFsdWU6IFByaW50T3JpZW50YXRpb24pIHtcclxuICAgIHRoaXMub3JpZW50YXRpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCByZXNvbHV0aW9uKCk6IFByaW50UmVzb2x1dGlvbiB7XHJcbiAgICByZXR1cm4gdGhpcy5yZXNvbHV0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCByZXNvbHV0aW9uKHZhbHVlOiBQcmludFJlc29sdXRpb24pIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50UmVzb2x1dGlvblsnOTYnXSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbigpOiBQcmludExlZ2VuZFBvc2l0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBsZWdlbmRQb3NpdGlvbih2YWx1ZTogUHJpbnRMZWdlbmRQb3NpdGlvbikge1xyXG4gICAgdGhpcy5sZWdlbmRQb3NpdGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50TGVnZW5kUG9zaXRpb24ubm9uZSwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMudGl0bGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMudGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc3VidGl0bGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnN1YnRpdGxlRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzdWJ0aXRsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN1YnRpdGxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbW1lbnQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNvbW1lbnRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGNvbW1lbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dQcm9qZWN0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHNob3dQcm9qZWN0aW9uKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dQcm9qZWN0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dTY2FsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnNob3dTY2FsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd1NjYWxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dTY2FsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBzaG93TGVnZW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd0xlZ2VuZEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd0xlZ2VuZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zaG93TGVnZW5kRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBkb1ppcEZpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5kb1ppcEZpbGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGRvWmlwRmlsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gIGdldCBvdXRwdXRGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3V0cHV0Rm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBwYXBlckZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5wYXBlckZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgaW1hZ2VGb3JtYXRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuaW1hZ2VGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9yaWVudGF0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLm9yaWVudGF0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCByZXNvbHV0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnJlc29sdXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbW1lbnRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuY29tbWVudCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1Byb2plY3Rpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd1Byb2plY3Rpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dTY2FsZUZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93U2NhbGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dMZWdlbmRGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc2hvd0xlZ2VuZCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgZG9aaXBGaWxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmRvWmlwRmlsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgdGl0bGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkudGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN1YnRpdGxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnN1YnRpdGxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBsZWdlbmRQb3NpdGlvbkZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5sZWdlbmRQb3NpdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8UHJpbnRPcHRpb25zPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgbWF4TGVuZ3RoOiBudW1iZXIgPSAxODA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcikge1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIHRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTMwKV1dLFxyXG4gICAgICBzdWJ0aXRsZTogWycnLCBbVmFsaWRhdG9ycy5taW5MZW5ndGgoMCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDEyMCldXSxcclxuICAgICAgY29tbWVudDogW1xyXG4gICAgICAgICcnLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXhMZW5ndGgpXVxyXG4gICAgICBdLFxyXG4gICAgICBvdXRwdXRGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcGFwZXJGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgaW1hZ2VGb3JtYXQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcmVzb2x1dGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBvcmllbnRhdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBsZWdlbmRQb3NpdGlvbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBzaG93UHJvamVjdGlvbjogZmFsc2UsXHJcbiAgICAgIHNob3dTY2FsZTogZmFsc2UsXHJcbiAgICAgIHNob3dMZWdlbmQ6IGZhbHNlLFxyXG4gICAgICBkb1ppcEZpbGU6IFt7IGhpZGRlbjogdGhpcy5pc1ByaW50U2VydmljZSB9XVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuZG9aaXBGaWxlRmllbGQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9ybVN1Ym1pdChkYXRhOiBQcmludE9wdGlvbnMsIGlzVmFsaWQ6IGJvb2xlYW4pIHtcclxuICAgIGRhdGEuaXNQcmludFNlcnZpY2UgPSB0aGlzLmlzUHJpbnRTZXJ2aWNlO1xyXG4gICAgaWYgKGlzVmFsaWQpIHtcclxuICAgICAgdGhpcy5zdWJtaXQuZW1pdChkYXRhKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZUltYWdlU2F2ZVByb3AoKSB7XHJcbiAgICBpZiAodGhpcy5vdXRwdXRGb3JtYXRGaWVsZC52YWx1ZSA9PT0gJ0ltYWdlJykge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29tbWVudEZpZWxkLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgICB0aGlzLmNvbW1lbnRGaWVsZC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUHJpbnRTZXJ2aWNlID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNoYW5nZUNvbW1lbnRMZW5ndGgoKSB7XHJcbiAgICBzd2l0Y2ggKHRoaXMucGFwZXJGb3JtYXQpIHtcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEwOlxyXG4gICAgICAgIC8vIEEwLCBsYW5kc2NhcGUsIGxlbmd0aCA5MDAgfCBBMCwgcG9ydHJhaXQsIGNvbW1lbnQgbGVuZ3RoOiAgNjAwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyA5MDAgOiA2MDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BMTpcclxuICAgICAgICAvLyBBMSwgbGFuZHNjYXBlLCBsZW5ndGggNjAwIHwgQTEsIHBvcnRyYWl0LCBsZW5ndGggNDAwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gNjAwIDogNDAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTI6XHJcbiAgICAgICAgLy8gQTIsIGxhbmRzY2FwZSwgbGVuZ3RoIDQwMCB8IEEyLCBwb3J0cmFpdCwgbGVuZ3RoIDMwMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDQwMCA6IDMwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkEzOlxyXG4gICAgICAgIC8vIEEzLCBsYW5kc2NhcGUsIGxlbmd0aCAzMDAgfCBBMywgcG9ydHJhaXQsIGxlbmd0aCAyMDA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAzMDAgOiAyMDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BNDpcclxuICAgICAgICAvLyBBNCwgbGFuZHNjYXBlIGxlbmd0aCAyMDAgfCBBNCwgcG9ydHJhaXQgbGVuZ3RoIDEyMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDIwMCA6IDEwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkE1OlxyXG4gICAgICAgIC8vIEE1LCBsYW5kc2NhcGUgbGVuZ3RoIDEyMCB8IEE1LCBwb3J0cmFpdCBsZW5ndGggODA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAxMjAgOiA4MDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkxldHRlcjpcclxuICAgICAgICAvLyBsZXR0cmUsIGxhbmRzY2FwZSwgMTgwIHwgbGV0dHJlLCBwb3J0cmFpdCwgMTQwXHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyAxODAgOiAxNDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgLy8gbGVnYWwsIGxhbmRzY2FwZSwgMjAwIHwgbGVnYWwsIHBvcnRyYWl0LCAxNDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDIwMCA6IDE0MDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNvbW1lbnRGaWVsZC5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCldKTtcclxuICAgIHRoaXMuY29tbWVudEZpZWxkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gY2xhc3M9XCJpZ28tZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS50aXRsZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwidGl0bGVGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS50aXRsZScgfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogMTMwXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzdWJ0aXRsZVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0uc3VidGl0bGUnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cInN1YnRpdGxlRmllbGQuZXJyb3JzPy5tYXhsZW5ndGhcIj57e1xyXG4gICAgICAgICdpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heExlbmd0aCdcclxuICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uOiAnaWdvLmdlby5wcmludEZvcm0uc3VidGl0bGUnIHwgdHJhbnNsYXRlLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IDEyMFxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgfX08L21hdC1lcnJvcj5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0uY29tbWVudCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgbWF0SW5wdXRcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjb21tZW50XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb21tZW50RmllbGQuZXJyb3JzPy5tYXhsZW5ndGhcIj57e1xyXG4gICAgICAgICdpZ28uZ2VvLmZvcm1WYWxpZGF0aW9uLm1heExlbmd0aCdcclxuICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIDoge1xyXG4gICAgICAgICAgICAgICAgY29sdW1uOiAnaWdvLmdlby5wcmludEZvcm0uY29tbWVudCcgfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogbWF4TGVuZ3RoXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXIgc2xpZGUtdG9nZ2xlLWNvbnRhaW5lclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInByaW50LXNsaWRlLXRvZ2dsZS1jb250YWluZXJcIj5cclxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgICBjbGFzcz1cInByaW50LW9wdGlvblwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2hvd1Byb2plY3Rpb25cIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zaG93UHJvamVjdGlvbicgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaG93U2NhbGVcIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zaG93U2NhbGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgICAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgICAgICBjbGFzcz1cInByaW50LW9wdGlvblwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZG9aaXBGaWxlXCJcclxuICAgICAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXHJcbiAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwiaXNQcmludFNlcnZpY2UgPyAnbm9uZScgOiAnJ1wiXHJcbiAgICAgID5cclxuICAgICAgICB7eyAnaWdvLmdlby5wcmludEZvcm0uZG9aaXBGaWxlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57e1xyXG4gICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbicgfCB0cmFuc2xhdGVcclxuICAgICAgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsZWdlbmRQb3NpdGlvblwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb24nIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgbGVnZW5kUG9zaXRpb24gb2YgbGVnZW5kUG9zaXRpb25zIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cImxlZ2VuZFBvc2l0aW9uLmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdJZj1cIiFbJ25ld3BhZ2UnLCAnbmV3aW1hZ2UnXS5pbmNsdWRlcyhsZWdlbmRQb3NpdGlvbi52YWx1ZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbnMuJyArIGxlZ2VuZFBvc2l0aW9uLnZhbHVlXHJcbiAgICAgICAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAqbmdJZj1cIlsnbmV3cGFnZScsICduZXdpbWFnZSddLmluY2x1ZGVzKGxlZ2VuZFBvc2l0aW9uLnZhbHVlKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgKG91dHB1dEZvcm1hdCA9PT0gJ1BkZidcclxuICAgICAgICAgICAgICAgID8gJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9ucy5uZXdwYWdlJ1xyXG4gICAgICAgICAgICAgICAgOiAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld2ltYWdlJ1xyXG4gICAgICAgICAgICAgICkgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0ub3V0cHV0Rm9ybWF0JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwidG9nZ2xlSW1hZ2VTYXZlUHJvcCgpXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJvdXRwdXRGb3JtYXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLm91dHB1dEZvcm1hdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvdXRwdXRGb3JtYXQgb2Ygb3V0cHV0Rm9ybWF0cyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvdXRwdXRGb3JtYXQua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyBvdXRwdXRGb3JtYXQudmFsdWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXHJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdibG9jaycgOiAnbm9uZSdcIlxyXG4gID5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0ucGFwZXJGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VDb21tZW50TGVuZ3RoKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhcGVyRm9ybWF0XCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBwYXBlckZvcm1hdCBvZiBwYXBlckZvcm1hdHMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwicGFwZXJGb3JtYXQua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7e1xyXG4gICAgICAgICAgICAnaWdvLmdlby5wcmludEZvcm0ucGFwZXJGb3JtYXRzLicgKyBwYXBlckZvcm1hdC52YWx1ZSB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXHJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdub25lJyA6ICdibG9jaydcIlxyXG4gID5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0uaW1hZ2VGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaW1hZ2VGb3JtYXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLmltYWdlRm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGltYWdlRm9ybWF0IG9mIGltYWdlRm9ybWF0cyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJpbWFnZUZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IGltYWdlRm9ybWF0LnZhbHVlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInJlc29sdXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb24nIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgcmVzb2x1dGlvbiBvZiByZXNvbHV0aW9ucyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJyZXNvbHV0aW9uLmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgcmVzb2x1dGlvbi52YWx1ZSArICcgUFBJJyB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ2Jsb2NrJyA6ICdub25lJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vcmllbnRhdGlvbicgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUNvbW1lbnRMZW5ndGgoKVwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwib3JpZW50YXRpb25cIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLm9yaWVudGF0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG9yaWVudGF0aW9uIG9mIG9yaWVudGF0aW9ucyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcmllbnRhdGlvbi5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS4nICsgb3JpZW50YXRpb24udmFsdWUgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28tZm9ybS1idXR0b24tZ3JvdXAgcHJpbnQtYnV0dG9uLXRvcC1wYWRkaW5nXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXHJcbiAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWQgfHwgKGRpc2FibGVkJCB8IGFzeW5jKVwiXHJcbiAgICAgIChjbGljayk9XCJoYW5kbGVGb3JtU3VibWl0KGZvcm0udmFsdWUsIGZvcm0udmFsaWQpXCJcclxuICAgID5cclxuICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNhdmVCdG4nIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
581
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpbnQtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9wcmludC1mb3JtL3ByaW50LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvcHJpbnQvcHJpbnQtZm9ybS9wcmludC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUNMLGtCQUFrQixFQUdsQixVQUFVLEVBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3ZDLE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG9CQUFvQixFQUNyQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztJQ1R4QixpQ0FBZ0Q7SUFBQSxZQU85Qzs7O0lBQUEsaUJBQVk7O0lBUGtDLGVBTzlDO0lBUDhDLDJKQU85Qzs7OztJQVdGLGlDQUFtRDtJQUFBLFlBT2pEOzs7SUFBQSxpQkFBWTs7SUFQcUMsZUFPakQ7SUFQaUQsOEpBT2pEOzs7O0lBV0YsaUNBQWtEO0lBQUEsWUFPaEQ7OztJQUFBLGlCQUFZOzs7SUFQb0MsZUFPaEQ7SUFQZ0QsK0tBT2hEOzs7SUE0Q0UsNkJBRUM7SUFDQyxZQUlGOztJQUFBLDBCQUFlOzs7SUFKYixlQUlGO0lBSkUscUhBSUY7OztJQUVBLDZCQUVDO0lBQ0MsWUFNRjs7SUFBQSwwQkFBZTs7O0lBTmIsZUFNRjtJQU5FLGtMQU1GOzs7O0lBdEJGLHNDQUdDO0lBQ0MsbUdBT2U7SUFFZixtR0FTZTtJ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STFELGVBQStEO1lBQS9ELGdHQUErRDtZQUdyQyxlQUEwQjtZQUExQixrRUFBMEI7WUFheEQsZUFBbUQ7WUFBbkQsZ0VBQW1EO1lBR3RDLGVBQWlEO1lBQWpELDZFQUFpRDtZQUcxRCxlQUErRDtZQUEvRCxnR0FBK0Q7WUFHckMsZUFBMEI7WUFBMUIsa0VBQTBCO1lBWW5ELGVBRUU7WUFGRix3SkFFRTtZQUlILGVBQThEO1lBQTlELCtGQUE4RDtZQUdyQyxlQUF5QjtZQUF6QixpRUFBeUI7WUFXdEQsZUFBbUQ7WUFBbkQsZ0VBQW1EO1lBR3RDLGVBQWlEO1lBQWpELDZFQUFpRDtZQUkxRCxlQUErRDtZQUEvRCxnR0FBK0Q7WUFHckMsZUFBMEI7WUFBMUIsa0VBQTBCO1lBYXRELGVBQStDO1lBQS9DLG9GQUErQztZQUcvQyxlQUNGO1lBREUscUZBQ0Y7Ozt1RkQ5TVMsa0JBQWtCO2NBTDlCLFNBQVM7MkJBQ0UsZ0JBQWdCO3FFQWNqQixTQUFTO2tCQUFqQixLQUFLO1lBR0YsV0FBVztrQkFEZCxLQUFLO1lBV0YsWUFBWTtrQkFEZixLQUFLO1lBV0YsV0FBVztrQkFEZCxLQUFLO1lBV0YsV0FBVztrQkFEZCxLQUFLO1lBV0YsVUFBVTtrQkFEYixLQUFLO1lBV0YsY0FBYztrQkFEakIsS0FBSztZQVdGLEtBQUs7a0JBRFIsS0FBSztZQVFGLFFBQVE7a0JBRFgsS0FBSztZQVFGLE9BQU87a0JBRFYsS0FBSztZQVFGLGNBQWM7a0JBRGpCLEtBQUs7WUFRRixTQUFTO2tCQURaLEtBQUs7WUFRRixVQUFVO2tCQURiLEtBQUs7WUFTRixTQUFTO2tCQURaLEtBQUs7WUE0REksTUFBTTtrQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFVudHlwZWRGb3JtQnVpbGRlcixcclxuICBVbnR5cGVkRm9ybUNvbnRyb2wsXHJcbiAgVW50eXBlZEZvcm1Hcm91cCxcclxuICBWYWxpZGF0b3JzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBQcmludE9wdGlvbnMgfSBmcm9tICcuLi9zaGFyZWQvcHJpbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBQcmludExlZ2VuZFBvc2l0aW9uLFxyXG4gIFByaW50T3JpZW50YXRpb24sXHJcbiAgUHJpbnRPdXRwdXRGb3JtYXQsXHJcbiAgUHJpbnRQYXBlckZvcm1hdCxcclxuICBQcmludFJlc29sdXRpb24sXHJcbiAgUHJpbnRTYXZlSW1hZ2VGb3JtYXRcclxufSBmcm9tICcuLi9zaGFyZWQvcHJpbnQudHlwZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2lnby1wcmludC1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJpbnQtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vcHJpbnQtZm9ybS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcmludEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyBmb3JtOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG4gIHB1YmxpYyBvdXRwdXRGb3JtYXRzID0gUHJpbnRPdXRwdXRGb3JtYXQ7XHJcbiAgcHVibGljIHBhcGVyRm9ybWF0cyA9IFByaW50UGFwZXJGb3JtYXQ7XHJcbiAgcHVibGljIG9yaWVudGF0aW9ucyA9IFByaW50T3JpZW50YXRpb247XHJcbiAgcHVibGljIHJlc29sdXRpb25zID0gUHJpbnRSZXNvbHV0aW9uO1xyXG4gIHB1YmxpYyBpbWFnZUZvcm1hdHMgPSBQcmludFNhdmVJbWFnZUZvcm1hdDtcclxuICBwdWJsaWMgbGVnZW5kUG9zaXRpb25zID0gUHJpbnRMZWdlbmRQb3NpdGlvbjtcclxuICBwdWJsaWMgaXNQcmludFNlcnZpY2UgPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKSBkaXNhYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgaW1hZ2VGb3JtYXQoKTogUHJpbnRTYXZlSW1hZ2VGb3JtYXQge1xyXG4gICAgcmV0dXJuIHRoaXMuaW1hZ2VGb3JtYXRGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGltYWdlRm9ybWF0KHZhbHVlOiBQcmludFNhdmVJbWFnZUZvcm1hdCkge1xyXG4gICAgdGhpcy5pbWFnZUZvcm1hdEZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50U2F2ZUltYWdlRm9ybWF0LkpwZWcsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgb3V0cHV0Rm9ybWF0KCk6IFByaW50T3V0cHV0Rm9ybWF0IHtcclxuICAgIHJldHVybiB0aGlzLm91dHB1dEZvcm1hdEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgb3V0cHV0Rm9ybWF0KHZhbHVlOiBQcmludE91dHB1dEZvcm1hdCkge1xyXG4gICAgdGhpcy5vdXRwdXRGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludE91dHB1dEZvcm1hdC5QZGYsIHtcclxuICAgICAgb25seVNlbGY6IHRydWVcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KClcclxuICBnZXQgcGFwZXJGb3JtYXQoKTogUHJpbnRQYXBlckZvcm1hdCB7XHJcbiAgICByZXR1cm4gdGhpcy5wYXBlckZvcm1hdEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgcGFwZXJGb3JtYXQodmFsdWU6IFByaW50UGFwZXJGb3JtYXQpIHtcclxuICAgIHRoaXMucGFwZXJGb3JtYXRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSB8fCBQcmludFBhcGVyRm9ybWF0LkxldHRlciwge1xyXG4gICAgICBvbmx5U2VsZjogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBvcmllbnRhdGlvbigpOiBQcmludE9yaWVudGF0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLm9yaWVudGF0aW9uRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBvcmllbnRhdGlvbih2YWx1ZTogUHJpbnRPcmllbnRhdGlvbikge1xyXG4gICAgdGhpcy5vcmllbnRhdGlvbkZpZWxkLnNldFZhbHVlKHZhbHVlIHx8IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHJlc29sdXRpb24oKTogUHJpbnRSZXNvbHV0aW9uIHtcclxuICAgIHJldHVybiB0aGlzLnJlc29sdXRpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHJlc29sdXRpb24odmFsdWU6IFByaW50UmVzb2x1dGlvbikge1xyXG4gICAgdGhpcy5yZXNvbHV0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRSZXNvbHV0aW9uWyc5NiddLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGxlZ2VuZFBvc2l0aW9uKCk6IFByaW50TGVnZW5kUG9zaXRpb24ge1xyXG4gICAgcmV0dXJuIHRoaXMubGVnZW5kUG9zaXRpb25GaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IGxlZ2VuZFBvc2l0aW9uKHZhbHVlOiBQcmludExlZ2VuZFBvc2l0aW9uKSB7XHJcbiAgICB0aGlzLmxlZ2VuZFBvc2l0aW9uRmllbGQuc2V0VmFsdWUodmFsdWUgfHwgUHJpbnRMZWdlbmRQb3NpdGlvbi5ub25lLCB7XHJcbiAgICAgIG9ubHlTZWxmOiB0cnVlXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy50aXRsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy50aXRsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuICBASW5wdXQoKVxyXG4gIGdldCBzdWJ0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuc3VidGl0bGVGaWVsZC52YWx1ZTtcclxuICB9XHJcbiAgc2V0IHN1YnRpdGxlKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc3VidGl0bGVGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgY29tbWVudCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29tbWVudEZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgY29tbWVudCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmNvbW1lbnRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc2hvd1Byb2plY3Rpb24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93UHJvamVjdGlvbkZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgc2hvd1Byb2plY3Rpb24odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1Byb2plY3Rpb25GaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcbiAgQElucHV0KClcclxuICBnZXQgc2hvd1NjYWxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hvd1NjYWxlRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzaG93U2NhbGUodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2hvd1NjYWxlRmllbGQuc2V0VmFsdWUodmFsdWUsIHsgb25seVNlbGY6IHRydWUgfSk7XHJcbiAgfVxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IHNob3dMZWdlbmQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5zaG93TGVnZW5kRmllbGQudmFsdWU7XHJcbiAgfVxyXG4gIHNldCBzaG93TGVnZW5kKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNob3dMZWdlbmRGaWVsZC5zZXRWYWx1ZSh2YWx1ZSwgeyBvbmx5U2VsZjogdHJ1ZSB9KTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGRvWmlwRmlsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmRvWmlwRmlsZUZpZWxkLnZhbHVlO1xyXG4gIH1cclxuICBzZXQgZG9aaXBGaWxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRvWmlwRmlsZUZpZWxkLnNldFZhbHVlKHZhbHVlLCB7IG9ubHlTZWxmOiB0cnVlIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG91dHB1dEZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5vdXRwdXRGb3JtYXQgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBhcGVyRm9ybWF0RmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnBhcGVyRm9ybWF0IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBpbWFnZUZvcm1hdEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5pbWFnZUZvcm1hdCBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgb3JpZW50YXRpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkub3JpZW50YXRpb24gYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlc29sdXRpb25GaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkucmVzb2x1dGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgY29tbWVudEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5jb21tZW50IGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBzaG93UHJvamVjdGlvbkZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93UHJvamVjdGlvbiBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1NjYWxlRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLnNob3dTY2FsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0xlZ2VuZEZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS5zaG93TGVnZW5kIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCBkb1ppcEZpbGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuZG9aaXBGaWxlIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIGdldCB0aXRsZUZpZWxkKCkge1xyXG4gICAgcmV0dXJuICh0aGlzLmZvcm0uY29udHJvbHMgYXMgYW55KS50aXRsZSBhcyBVbnR5cGVkRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VidGl0bGVGaWVsZCgpIHtcclxuICAgIHJldHVybiAodGhpcy5mb3JtLmNvbnRyb2xzIGFzIGFueSkuc3VidGl0bGUgYXMgVW50eXBlZEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxlZ2VuZFBvc2l0aW9uRmllbGQoKSB7XHJcbiAgICByZXR1cm4gKHRoaXMuZm9ybS5jb250cm9scyBhcyBhbnkpLmxlZ2VuZFBvc2l0aW9uIGFzIFVudHlwZWRGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKSBzdWJtaXQ6IEV2ZW50RW1pdHRlcjxQcmludE9wdGlvbnM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBtYXhMZW5ndGg6IG51bWJlciA9IDE4MDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgdGl0bGU6IFsnJywgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDApLCBWYWxpZGF0b3JzLm1heExlbmd0aCgxMzApXV0sXHJcbiAgICAgIHN1YnRpdGxlOiBbJycsIFtWYWxpZGF0b3JzLm1pbkxlbmd0aCgwKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTIwKV1dLFxyXG4gICAgICBjb21tZW50OiBbXHJcbiAgICAgICAgJycsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMubWluTGVuZ3RoKDApLCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heExlbmd0aCldXHJcbiAgICAgIF0sXHJcbiAgICAgIG91dHB1dEZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBwYXBlckZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBpbWFnZUZvcm1hdDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICByZXNvbHV0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIG9yaWVudGF0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGxlZ2VuZFBvc2l0aW9uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHNob3dQcm9qZWN0aW9uOiBmYWxzZSxcclxuICAgICAgc2hvd1NjYWxlOiBmYWxzZSxcclxuICAgICAgc2hvd0xlZ2VuZDogZmFsc2UsXHJcbiAgICAgIGRvWmlwRmlsZTogW3sgaGlkZGVuOiB0aGlzLmlzUHJpbnRTZXJ2aWNlIH1dXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5kb1ppcEZpbGVGaWVsZC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb3JtU3VibWl0KGRhdGE6IFByaW50T3B0aW9ucywgaXNWYWxpZDogYm9vbGVhbikge1xyXG4gICAgZGF0YS5pc1ByaW50U2VydmljZSA9IHRoaXMuaXNQcmludFNlcnZpY2U7XHJcbiAgICBpZiAoaXNWYWxpZCkge1xyXG4gICAgICB0aGlzLnN1Ym1pdC5lbWl0KGRhdGEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlSW1hZ2VTYXZlUHJvcCgpIHtcclxuICAgIGlmICh0aGlzLm91dHB1dEZvcm1hdEZpZWxkLnZhbHVlID09PSAnSW1hZ2UnKSB7XHJcbiAgICAgIHRoaXMuaXNQcmludFNlcnZpY2UgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jb21tZW50RmllbGQuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuY29tbWVudEZpZWxkLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNQcmludFNlcnZpY2UgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlQ29tbWVudExlbmd0aCgpIHtcclxuICAgIHN3aXRjaCAodGhpcy5wYXBlckZvcm1hdCkge1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTA6XHJcbiAgICAgICAgLy8gQTAsIGxhbmRzY2FwZSwgbGVuZ3RoIDkwMCB8IEEwLCBwb3J0cmFpdCwgY29tbWVudCBsZW5ndGg6ICA2MDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDkwMCA6IDYwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkExOlxyXG4gICAgICAgIC8vIEExLCBsYW5kc2NhcGUsIGxlbmd0aCA2MDAgfCBBMSwgcG9ydHJhaXQsIGxlbmd0aCA0MDA7XHJcbiAgICAgICAgdGhpcy5tYXhMZW5ndGggPVxyXG4gICAgICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gUHJpbnRPcmllbnRhdGlvbi5sYW5kc2NhcGUgPyA2MDAgOiA0MDA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUHJpbnRQYXBlckZvcm1hdC5BMjpcclxuICAgICAgICAvLyBBMiwgbGFuZHNjYXBlLCBsZW5ndGggNDAwIHwgQTIsIHBvcnRyYWl0LCBsZW5ndGggMzAwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gNDAwIDogMzAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTM6XHJcbiAgICAgICAgLy8gQTMsIGxhbmRzY2FwZSwgbGVuZ3RoIDMwMCB8IEEzLCBwb3J0cmFpdCwgbGVuZ3RoIDIwMDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDMwMCA6IDIwMDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBQcmludFBhcGVyRm9ybWF0LkE0OlxyXG4gICAgICAgIC8vIEE0LCBsYW5kc2NhcGUgbGVuZ3RoIDIwMCB8IEE0LCBwb3J0cmFpdCBsZW5ndGggMTIwO1xyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gMjAwIDogMTAwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuQTU6XHJcbiAgICAgICAgLy8gQTUsIGxhbmRzY2FwZSBsZW5ndGggMTIwIHwgQTUsIHBvcnRyYWl0IGxlbmd0aCA4MDtcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDEyMCA6IDgwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFByaW50UGFwZXJGb3JtYXQuTGV0dGVyOlxyXG4gICAgICAgIC8vIGxldHRyZSwgbGFuZHNjYXBlLCAxODAgfCBsZXR0cmUsIHBvcnRyYWl0LCAxNDBcclxuICAgICAgICB0aGlzLm1heExlbmd0aCA9XHJcbiAgICAgICAgICB0aGlzLm9yaWVudGF0aW9uID09PSBQcmludE9yaWVudGF0aW9uLmxhbmRzY2FwZSA/IDE4MCA6IDE0MDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICAvLyBsZWdhbCwgbGFuZHNjYXBlLCAyMDAgfCBsZWdhbCwgcG9ydHJhaXQsIDE0MFxyXG4gICAgICAgIHRoaXMubWF4TGVuZ3RoID1cclxuICAgICAgICAgIHRoaXMub3JpZW50YXRpb24gPT09IFByaW50T3JpZW50YXRpb24ubGFuZHNjYXBlID8gMjAwIDogMTQwO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY29tbWVudEZpZWxkLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4TGVuZ3RoKV0pO1xyXG4gICAgdGhpcy5jb21tZW50RmllbGQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlnby1mb3JtXCIgW2Zvcm1Hcm91cF09XCJmb3JtXCI+XHJcbiAgPGRpdiBjbGFzcz1cImlnby1pbnB1dC1jb250YWluZXJcIj5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0udGl0bGUnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgIG1hdElucHV0XHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgIC8+XHJcbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJ0aXRsZUZpZWxkLmVycm9ycz8ubWF4bGVuZ3RoXCI+e3tcclxuICAgICAgICAnaWdvLmdlby5mb3JtVmFsaWRhdGlvbi5tYXhMZW5ndGgnXHJcbiAgICAgICAgICB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICA6IHtcclxuICAgICAgICAgICAgICAgIGNvbHVtbjogJ2lnby5nZW8ucHJpbnRGb3JtLnRpdGxlJyB8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiAxMzBcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgIH19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWw+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnN1YnRpdGxlJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN1YnRpdGxlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICAvPlxyXG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwic3VidGl0bGVGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS5zdWJ0aXRsZScgfCB0cmFuc2xhdGUsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogMTIwXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICB9fTwvbWF0LWVycm9yPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbW1lbnRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLmNvbW1lbnQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgLz5cclxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNvbW1lbnRGaWVsZC5lcnJvcnM/Lm1heGxlbmd0aFwiPnt7XHJcbiAgICAgICAgJ2lnby5nZW8uZm9ybVZhbGlkYXRpb24ubWF4TGVuZ3RoJ1xyXG4gICAgICAgICAgfCB0cmFuc2xhdGVcclxuICAgICAgICAgICAgOiB7XHJcbiAgICAgICAgICAgICAgICBjb2x1bW46ICdpZ28uZ2VvLnByaW50Rm9ybS5jb21tZW50JyB8IHRyYW5zbGF0ZSxcclxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXhMZW5ndGhcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgIH19PC9tYXQtZXJyb3I+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lciBzbGlkZS10b2dnbGUtY29udGFpbmVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicHJpbnQtc2xpZGUtdG9nZ2xlLWNvbnRhaW5lclwiPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaG93UHJvamVjdGlvblwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNob3dQcm9qZWN0aW9uJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgICA8L21hdC1zbGlkZS10b2dnbGU+XHJcbiAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICAgICAgY2xhc3M9XCJwcmludC1vcHRpb25cIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInNob3dTY2FsZVwiXHJcbiAgICAgICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgJ2lnby5nZW8ucHJpbnRGb3JtLnNob3dTY2FsZScgfCB0cmFuc2xhdGUgfX1cclxuICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxyXG4gICAgICAgIGNsYXNzPVwicHJpbnQtb3B0aW9uXCJcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJkb1ppcEZpbGVcIlxyXG4gICAgICAgIFtsYWJlbFBvc2l0aW9uXT1cIidiZWZvcmUnXCJcclxuICAgICAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdub25lJyA6ICcnXCJcclxuICAgICAgPlxyXG4gICAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5kb1ppcEZpbGUnIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7XHJcbiAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9uJyB8IHRyYW5zbGF0ZVxyXG4gICAgICB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImxlZ2VuZFBvc2l0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsZWdlbmRQb3NpdGlvbiBvZiBsZWdlbmRQb3NpdGlvbnMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwibGVnZW5kUG9zaXRpb24ua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiIVsnbmV3cGFnZScsICduZXdpbWFnZSddLmluY2x1ZGVzKGxlZ2VuZFBvc2l0aW9uLnZhbHVlKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLmxlZ2VuZFBvc2l0aW9ucy4nICsgbGVnZW5kUG9zaXRpb24udmFsdWVcclxuICAgICAgICAgICAgICAgIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICpuZ0lmPVwiWyduZXdwYWdlJywgJ25ld2ltYWdlJ10uaW5jbHVkZXMobGVnZW5kUG9zaXRpb24udmFsdWUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAob3V0cHV0Rm9ybWF0ID09PSAnUGRmJ1xyXG4gICAgICAgICAgICAgICAgPyAnaWdvLmdlby5wcmludEZvcm0ubGVnZW5kUG9zaXRpb25zLm5ld3BhZ2UnXHJcbiAgICAgICAgICAgICAgICA6ICdpZ28uZ2VvLnByaW50Rm9ybS5sZWdlbmRQb3NpdGlvbnMubmV3aW1hZ2UnXHJcbiAgICAgICAgICAgICAgKSB8IHRyYW5zbGF0ZVxyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vdXRwdXRGb3JtYXQnIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJ0b2dnbGVJbWFnZVNhdmVQcm9wKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm91dHB1dEZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0ub3V0cHV0Rm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IG91dHB1dEZvcm1hdCBvZiBvdXRwdXRGb3JtYXRzIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cIm91dHB1dEZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG91dHB1dEZvcm1hdC52YWx1ZSB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ2Jsb2NrJyA6ICdub25lJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cImNoYW5nZUNvbW1lbnRMZW5ndGgoKVwiXHJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGFwZXJGb3JtYXRcIlxyXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2lnby5nZW8ucHJpbnRGb3JtLnBhcGVyRm9ybWF0JyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHBhcGVyRm9ybWF0IG9mIHBhcGVyRm9ybWF0cyB8IGtleXZhbHVlXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJwYXBlckZvcm1hdC5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7XHJcbiAgICAgICAgICAgICdpZ28uZ2VvLnByaW50Rm9ybS5wYXBlckZvcm1hdHMuJyArIHBhcGVyRm9ybWF0LnZhbHVlIHwgdHJhbnNsYXRlXHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cImlzUHJpbnRTZXJ2aWNlID8gJ25vbmUnIDogJ2Jsb2NrJ1wiXHJcbiAgPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICA8bWF0LWxhYmVsPnt7ICdpZ28uZ2VvLnByaW50Rm9ybS5pbWFnZUZvcm1hdCcgfCB0cmFuc2xhdGUgfX08L21hdC1sYWJlbD5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJpbWFnZUZvcm1hdFwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyAnaWdvLmdlby5wcmludEZvcm0uaW1hZ2VGb3JtYXQnIHwgdHJhbnNsYXRlIH19XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgaW1hZ2VGb3JtYXQgb2YgaW1hZ2VGb3JtYXRzIHwga2V5dmFsdWVcIlxyXG4gICAgICAgICAgW3ZhbHVlXT1cImltYWdlRm9ybWF0LmtleVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgaW1hZ2VGb3JtYXQudmFsdWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXYgY2xhc3M9XCJpZ28taW5wdXQtY29udGFpbmVyXCI+XHJcbiAgICA8bWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgIDxtYXQtbGFiZWxcclxuICAgICAgICA+e3sgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb24nIHwgdHJhbnNsYXRlIH19ICh7e1xyXG4gICAgICAgICAgJ2lnby5nZW8ucHJpbnRGb3JtLnJlc29sdXRpb25Vbml0JyB8IHRyYW5zbGF0ZVxyXG4gICAgICAgIH19KTwvbWF0LWxhYmVsXHJcbiAgICAgID5cclxuICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZXNvbHV0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5yZXNvbHV0aW9uJyB8IHRyYW5zbGF0ZSB9fVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bWF0LW9wdGlvblxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHJlc29sdXRpb24gb2YgcmVzb2x1dGlvbnMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwicmVzb2x1dGlvbi5rZXlcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IHJlc29sdXRpb24udmFsdWUgfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9kaXY+XHJcblxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiaWdvLWlucHV0LWNvbnRhaW5lclwiXHJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJpc1ByaW50U2VydmljZSA/ICdibG9jaycgOiAnbm9uZSdcIlxyXG4gID5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPG1hdC1sYWJlbD57eyAnaWdvLmdlby5wcmludEZvcm0ub3JpZW50YXRpb24nIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJjaGFuZ2VDb21tZW50TGVuZ3RoKClcIlxyXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9yaWVudGF0aW9uXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cInt7ICdpZ28uZ2VvLnByaW50Rm9ybS5vcmllbnRhdGlvbicgfCB0cmFuc2xhdGUgfX1cIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG1hdC1vcHRpb25cclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBvcmllbnRhdGlvbiBvZiBvcmllbnRhdGlvbnMgfCBrZXl2YWx1ZVwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3JpZW50YXRpb24ua2V5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICB7eyAnaWdvLmdlby5wcmludEZvcm0uJyArIG9yaWVudGF0aW9uLnZhbHVlIHwgdHJhbnNsYXRlIH19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiaWdvLWZvcm0tYnV0dG9uLWdyb3VwIHByaW50LWJ1dHRvbi10b3AtcGFkZGluZ1wiPlxyXG4gICAgPGJ1dHRvblxyXG4gICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIiFmb3JtLnZhbGlkIHx8IChkaXNhYmxlZCQgfCBhc3luYylcIlxyXG4gICAgICAoY2xpY2spPVwiaGFuZGxlRm9ybVN1Ym1pdChmb3JtLnZhbHVlLCBmb3JtLnZhbGlkKVwiXHJcbiAgICA+XHJcbiAgICAgIHt7ICdpZ28uZ2VvLnByaW50Rm9ybS5zYXZlQnRuJyB8IHRyYW5zbGF0ZSB9fVxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
@@ -2,4 +2,4 @@ export * from './print.interface';
|
|
|
2
2
|
export * from './print.service';
|
|
3
3
|
export * from './print.type';
|
|
4
4
|
export * from './geopdf';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9wcmludC9zaGFyZWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcmludC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmludC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcHJpbnQudHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2dlb3BkZic7XG4iXX0=
|