@eqproject/eqp-dynamic-module 2.3.41 → 2.3.43
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/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +50 -5
- package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +218 -86
- package/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs +4 -3
- package/esm2020/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.mjs +71 -0
- package/esm2020/lib/components/private/field-templates/image-field-template/image-field-template.component.mjs +32 -18
- package/esm2020/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.mjs +6 -11
- package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +21 -1
- package/esm2020/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +21 -18
- package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +3 -3
- package/esm2020/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.mjs +5 -11
- package/esm2020/lib/eqp-dynamic-module.module.mjs +6 -3
- package/esm2020/lib/models/baseField.model.mjs +2 -1
- package/esm2020/lib/models/fields/imageField.model.mjs +17 -4
- package/esm2020/lib/models/fields/imageSelectorField.model.mjs +21 -0
- package/esm2020/lib/models/fields/listValueField.model.mjs +1 -4
- package/esm2020/lib/models/form.model.mjs +1 -1
- package/esm2020/lib/services/utilityHelper.services.mjs +32 -23
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +485 -180
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +485 -180
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +4 -1
- package/lib/components/private/add-form-field/add-form-field.component.d.ts +15 -7
- package/lib/components/private/field-templates/image-field-selector-template/image-field-selector-template.component.d.ts +31 -0
- package/lib/eqp-dynamic-module.module.d.ts +12 -11
- package/lib/models/baseField.model.d.ts +4 -3
- package/lib/models/fields/imageField.model.d.ts +4 -13
- package/lib/models/fields/imageSelectorField.model.d.ts +46 -0
- package/lib/models/fields/listValueField.model.d.ts +1 -19
- package/lib/models/form.model.d.ts +1 -0
- package/package.json +1 -1
package/esm2020/lib/components/private/dynamic-module-field-fix/dynamic-module-field.component.mjs
CHANGED
|
@@ -16,6 +16,7 @@ import * as i9 from "../field-templates/list-value-field-template/list-value-fie
|
|
|
16
16
|
import * as i10 from "../field-templates/attachment-field-template/attachment-field-template.component";
|
|
17
17
|
import * as i11 from "../field-templates/image-field-template/image-field-template.component";
|
|
18
18
|
import * as i12 from "../form-records/list-form-record/list-form-record.component";
|
|
19
|
+
import * as i13 from "../field-templates/image-field-selector-template/image-field-selector-template.component";
|
|
19
20
|
export class DynamicModuleFieldFixComponent {
|
|
20
21
|
constructor(dialog) {
|
|
21
22
|
this.dialog = dialog;
|
|
@@ -110,10 +111,10 @@ export class DynamicModuleFieldFixComponent {
|
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
DynamicModuleFieldFixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleFieldFixComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
-
DynamicModuleFieldFixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicModuleFieldFixComponent, selector: "dynamic-module-field-fix", inputs: { field: "field", form: "form", record: "record" }, outputs: { recordChange: "recordChange" }, viewQueries: [{ propertyName: "dialogInnerFormRecord", first: true, predicate: ["dialogInnerFormRecord"], descendants: true, static: true }, { propertyName: "fieldTemplate", predicate: ["fieldTemplate"], descendants: true }, { propertyName: "listInnerFormRecords", predicate: ["listInnerFormRecords"], descendants: true }], ngImport: i0, template: "<text-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</text-field-template>\r\n\r\n<textarea-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</textarea-field-template>\r\n\r\n<boolean-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Booleano']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</boolean-field-template>\r\n\r\n<date-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</date-field-template>\r\n\r\n<numeric-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</numeric-field-template>\r\n\r\n<list-value-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco generico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</list-value-field-template>\r\n\r\n <attachment-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Allegato']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</attachment-field-template>\r\n\r\n<image-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Immagine']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</image-field-template> \r\n\r\n<list-form-record #listInnerFormRecords *ngIf=\"field.FieldType == FieldTypeEnum['Form di dettaglio']\"\r\n [form]=\"getInnerFormFromField(field)\" [configurations]=\"configList\"\r\n (onAddViewEditRecord)=\"onAddViewEditInnerFormRecord($event, field)\">\r\n</list-form-record>", styles: [""], dependencies: [{ kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TextFieldTemplateComponent, selector: "text-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i5.BooleanFieldTemplateComponent, selector: "boolean-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i6.DateFieldTemplateComponent, selector: "date-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i7.TextareaFieldTemplateComponent, selector: "textarea-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i8.NumericFieldTemplateComponent, selector: "numeric-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i9.ListValueFieldTemplateComponent, selector: "list-value-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i10.AttachmentFieldTemplateComponent, selector: "attachment-field-template", inputs: ["onlyImages", "field", "record"], outputs: ["recordChange", "onAttachmentsChange"] }, { kind: "component", type: i11.ImageFieldTemplateComponent, selector: "image-field-template", inputs: ["record", "field"], outputs: ["recordChange"] }, { kind: "component", type: i12.ListFormRecordComponent, selector: "list-form-record", inputs: ["configurations", "endPointConfiguration", "formID", "form", "externalButtons"], outputs: ["onViewRecord", "onAddViewEditRecord", "onDeleteRecord", "onAfterDeleteRecord"] }] });
|
|
114
|
+
DynamicModuleFieldFixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicModuleFieldFixComponent, selector: "dynamic-module-field-fix", inputs: { field: "field", form: "form", record: "record" }, outputs: { recordChange: "recordChange" }, viewQueries: [{ propertyName: "dialogInnerFormRecord", first: true, predicate: ["dialogInnerFormRecord"], descendants: true, static: true }, { propertyName: "fieldTemplate", predicate: ["fieldTemplate"], descendants: true }, { propertyName: "listInnerFormRecords", predicate: ["listInnerFormRecords"], descendants: true }], ngImport: i0, template: "<text-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</text-field-template>\r\n\r\n<textarea-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</textarea-field-template>\r\n\r\n<boolean-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Booleano']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</boolean-field-template>\r\n\r\n<date-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</date-field-template>\r\n\r\n<numeric-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</numeric-field-template>\r\n\r\n<list-value-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco generico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</list-value-field-template>\r\n\r\n <attachment-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Allegato']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</attachment-field-template>\r\n\r\n<image-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Immagine']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</image-field-template> \r\n\r\n<image-field-selector-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco immagini']\"\r\n[matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\"\r\n>\r\n</image-field-selector-template>\r\n\r\n<list-form-record #listInnerFormRecords *ngIf=\"field.FieldType == FieldTypeEnum['Form di dettaglio']\"\r\n [form]=\"getInnerFormFromField(field)\" [configurations]=\"configList\"\r\n (onAddViewEditRecord)=\"onAddViewEditInnerFormRecord($event, field)\">\r\n</list-form-record>", styles: [""], dependencies: [{ kind: "directive", type: i2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TextFieldTemplateComponent, selector: "text-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i5.BooleanFieldTemplateComponent, selector: "boolean-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i6.DateFieldTemplateComponent, selector: "date-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i7.TextareaFieldTemplateComponent, selector: "textarea-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i8.NumericFieldTemplateComponent, selector: "numeric-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i9.ListValueFieldTemplateComponent, selector: "list-value-field-template", inputs: ["field", "record"], outputs: ["recordChange"] }, { kind: "component", type: i10.AttachmentFieldTemplateComponent, selector: "attachment-field-template", inputs: ["onlyImages", "field", "record"], outputs: ["recordChange", "onAttachmentsChange"] }, { kind: "component", type: i11.ImageFieldTemplateComponent, selector: "image-field-template", inputs: ["record", "field"], outputs: ["recordChange"] }, { kind: "component", type: i12.ListFormRecordComponent, selector: "list-form-record", inputs: ["configurations", "endPointConfiguration", "formID", "form", "externalButtons"], outputs: ["onViewRecord", "onAddViewEditRecord", "onDeleteRecord", "onAfterDeleteRecord"] }, { kind: "component", type: i13.ImageFieldSelectorTemplateComponent, selector: "image-field-selector-template", inputs: ["record", "field"], outputs: ["recordChange"] }] });
|
|
114
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleFieldFixComponent, decorators: [{
|
|
115
116
|
type: Component,
|
|
116
|
-
args: [{ selector: 'dynamic-module-field-fix', template: "<text-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</text-field-template>\r\n\r\n<textarea-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</textarea-field-template>\r\n\r\n<boolean-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Booleano']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</boolean-field-template>\r\n\r\n<date-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</date-field-template>\r\n\r\n<numeric-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</numeric-field-template>\r\n\r\n<list-value-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco generico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</list-value-field-template>\r\n\r\n <attachment-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Allegato']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</attachment-field-template>\r\n\r\n<image-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Immagine']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</image-field-template> \r\n\r\n<list-form-record #listInnerFormRecords *ngIf=\"field.FieldType == FieldTypeEnum['Form di dettaglio']\"\r\n [form]=\"getInnerFormFromField(field)\" [configurations]=\"configList\"\r\n (onAddViewEditRecord)=\"onAddViewEditInnerFormRecord($event, field)\">\r\n</list-form-record>" }]
|
|
117
|
+
args: [{ selector: 'dynamic-module-field-fix', template: "<text-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</text-field-template>\r\n\r\n<textarea-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</textarea-field-template>\r\n\r\n<boolean-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Booleano']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</boolean-field-template>\r\n\r\n<date-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</date-field-template>\r\n\r\n<numeric-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</numeric-field-template>\r\n\r\n<list-value-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco generico']\"\r\n [matTooltip]=\"field.Tooltip\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</list-value-field-template>\r\n\r\n <attachment-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Allegato']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</attachment-field-template>\r\n\r\n<image-field-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Immagine']\"\r\n [matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\">\r\n</image-field-template> \r\n\r\n<image-field-selector-template #fieldTemplate *ngIf=\"field.FieldType == FieldTypeEnum['Elenco immagini']\"\r\n[matTooltip]=\"field.Description\" [(record)]=\"record\" [field]=\"field\" (recordChange)=\"onRecordChange()\"\r\n>\r\n</image-field-selector-template>\r\n\r\n<list-form-record #listInnerFormRecords *ngIf=\"field.FieldType == FieldTypeEnum['Form di dettaglio']\"\r\n [form]=\"getInnerFormFromField(field)\" [configurations]=\"configList\"\r\n (onAddViewEditRecord)=\"onAddViewEditInnerFormRecord($event, field)\">\r\n</list-form-record>" }]
|
|
117
118
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { field: [{
|
|
118
119
|
type: Input
|
|
119
120
|
}], form: [{
|
|
@@ -132,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
132
133
|
type: ViewChildren,
|
|
133
134
|
args: ['listInnerFormRecords']
|
|
134
135
|
}] } });
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2R5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeC9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZHluYW1pYy1tb2R1bGUtZmllbGQtZml4L2R5bmFtaWMtbW9kdWxlLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTBCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEksT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXhGLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3RILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFRdEQsTUFBTSxPQUFPLDhCQUE4QjtJQXNCekMsWUFDVSxNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBbEJqQixpQkFBWSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBRTFFLGVBQVUsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3BFLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBTTlCLDRCQUF1QixHQUFZLEtBQUssQ0FBQztJQVVyQyxDQUFDO0lBR0wsV0FBVztRQUNULElBQUksSUFBSSxD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bWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBCYXNlRmllbGQsIEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUxpc3RDb25maWcgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZHluYW1pY01vZHVsZUxpc3RDb25maWcubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlTGlzdEZvcm1SZWNvcmRBY3Rpb25zRGVmYXVsdCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlTGlzdEZvcm1SZWNvcmRBY3Rpb25zRGVmYXVsdCc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBMaXN0Rm9ybVJlY29yZENvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0tcmVjb3Jkcy9saXN0LWZvcm0tcmVjb3JkL2xpc3QtZm9ybS1yZWNvcmQuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZHluYW1pYy1tb2R1bGUtZmllbGQtZml4JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2R5bmFtaWMtbW9kdWxlLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIER5bmFtaWNNb2R1bGVGaWVsZEZpeENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkOiBCYXNlRmllbGQ7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybTtcclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBAT3V0cHV0KCkgcmVjb3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG5cclxuICBjb25maWdMaXN0OiBEeW5hbWljTW9kdWxlTGlzdENvbmZpZyA9IG5ldyBEeW5hbWljTW9kdWxlTGlzdENvbmZpZygpO1xyXG4gIEZpZWxkVHlwZUVudW0gPSBGaWVsZFR5cGVFbnVtO1xyXG5cclxuICAvLyNyZWdpb24gUHJvcHJpZXTDoCBwZXIgYWdnaXVuZ2VyZS9tb2RpZmljYXJlIGkgcmVjb3JkIGRpIHVuYSBmb3JtIGRpIGRldHRhZ2xpb1xyXG4gIHNlbGVjdGVkSW5uZXJGb3JtOiBGb3JtO1xyXG4gIHNlbGVjdGVkSW5uZXJGb3JtUmVjb3JkOiBSZWNvcmQ7XHJcbiAgaW5kZXhJbm5lckZvcm1SZWNvcmQ6IG51bWJlcjtcclxuICBvbmx5Vmlld0lubmVyRm9ybVJlY29yZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpYWxvZ0lubmVyRm9ybVJlY29yZFJlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUmVmPGFueT4+O1xyXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ0lubmVyRm9ybVJlY29yZCcsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZ0lubmVyRm9ybVJlY29yZDogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgQFZpZXdDaGlsZHJlbihcImZpZWxkVGVtcGxhdGVcIikgZmllbGRUZW1wbGF0ZTogUXVlcnlMaXN0PER5bmFtaWNNb2R1bGVGaWVsZEZpeENvbXBvbmVudD47XHJcbiAgQFZpZXdDaGlsZHJlbignbGlzdElubmVyRm9ybVJlY29yZHMnKSBsaXN0SW5uZXJGb3JtUmVjb3JkczogUXVlcnlMaXN0PExpc3RGb3JtUmVjb3JkQ29tcG9uZW50PjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXHJcbiAgKSB7IH1cclxuXHJcblxyXG4gIHVwZGF0ZUZpZWxkKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmllbGRUZW1wbGF0ZSAmJiB0aGlzLmZpZWxkVGVtcGxhdGUubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpZWxkVGVtcGxhdGUuZm9yRWFjaChmID0+IGYudXBkYXRlRmllbGQoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29uZmlnTGlzdC52YWx1ZXMgPSB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdXHJcbiAgICB0aGlzLmNvbmZpZ0xpc3Quc2hvd1RpdGxlID0gdHJ1ZTtcclxuICAgIHRoaXMuY29uZmlnTGlzdC5kZWZhdWx0TGlzdEFjdGlvbnMgPSBuZXcgRHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQoKVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludm9jYXRvIGFsIGNhbWJpbyBkZWwgdmFsb3JlIGRpIG9nbmkgcHJvcHJpZXTDoCBkZWxsJ29nZ2V0dG8gcmVjb3JkLlxyXG4gICAqIFNlcnZlIGFkIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRpIHR1dHRpIGkgY2FtcGkgY2hlIGhhbm5vIHVuYSBmb3JtdWxhLlxyXG4gICAqL1xyXG4gIG9uUmVjb3JkQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5yZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUgdW5hIElubmVyRm9ybSBhIHBhcnRpcmUgZGFsIEZpZWxkIGNoZSBsYSByYXBwcmVzZW50YS5cclxuICAgKiBAcGFyYW0gZmllbGQgQ2FtcG8gYSBwYXJ0aXJlIGRhbCBxdWFsZSBzaSB2dW9sZSByZWN1cGVyYXJlIGxhIElubmVyRm9ybS5cclxuICAgKiBAcmV0dXJucyBSZXN0aXR1aXNjZSB1biBvZ2dldHRvIGRpIHRpcG8gRm9ybS5cclxuICAgKi9cclxuICBnZXRJbm5lckZvcm1Gcm9tRmllbGQoZmllbGQ6IEJhc2VGaWVsZCk6IEZvcm0ge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5Jbm5lckZvcm1zICYmIHRoaXMuZm9ybS5Jbm5lckZvcm1zLmZpbmQoZiA9PiBmLk5hbWUgPT0gZmllbGQuTGFiZWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm0uSW5uZXJGb3Jtcy5maW5kKGYgPT4gZi5OYW1lID09IGZpZWxkLkxhYmVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAqIE1ldG9kbyBwZXIgYXByaXJlIHVuIGRpYWxvZyBpbiBjdWkgYWdnaXVuZ2VyZS9tb2RpZmljYXJlL3Zpc3VhbGl6emFyZSB1biByZWNvcmQgYXBwYXJ0ZW5lbnRlXHJcbiAqIGEgdW5hIGZvcm0gZGkgZGV0dGFnbGlvLlxyXG4gKiBAcGFyYW0gcmVjb3JkIEV2ZW50byBkaSBvdXRwdXQgZGVsIGNvbXBvbmVudGUgbGlzdC1mb3JtLXJlY29yZCwgY29udGllbmUgaWwgcmVjb3JkIHNlbGV6aW9uYXRvIGUgdW4gYm9vbGVubyBjaGUgaW5kaWNhIFxyXG4gKiBzZSBsJ3V0ZW50ZSB2dW9sZSBtb2RpZmljYXJlIG8gdmlzdWFsaXp6YXJlIGwnZWxlbWVudG8gc2VsZXppb25hdG8uXHJcbiAqIEBwYXJhbSBpbm5lckZvcm0gQ29udGllbmUgbGEgRm9ybSBkaSBkZXR0YWdsaW8gZGFsbGEgcXVhbGUgw6ggc3RhdG8gcmljaGllc3RvIGlsIHJlY29yZC5cclxuICovXHJcbiAgb25BZGRWaWV3RWRpdElubmVyRm9ybVJlY29yZChyZWNvcmQ6IHsgcmVjb3JkOiBSZWNvcmQsIG9ubHlWaWV3OiBib29sZWFuIH0sIGZpZWxkOiBCYXNlRmllbGQpIHtcclxuICAgIHRoaXMuc2VsZWN0ZWRJbm5lckZvcm0gPSB0aGlzLmdldElubmVyRm9ybUZyb21GaWVsZChmaWVsZCk7XHJcbiAgICBpZiAocmVjb3JkID09IG51bGwpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZElubmVyRm9ybVJlY29yZCA9IG5ldyBSZWNvcmQoKTtcclxuICAgICAgdGhpcy5pbmRleElubmVyRm9ybVJlY29yZCA9IG51bGw7XHJcbiAgICAgIHRoaXMub25seVZpZXdJbm5lckZvcm1SZWNvcmQgPSBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbm5lckZvcm1SZWNvcmQgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHJlY29yZC5yZWNvcmQpKTtcclxuICAgICAgdGhpcy5pbmRleElubmVyRm9ybVJlY29yZCA9IHRoaXMucmVjb3JkW2ZpZWxkLk5hbWVdLmluZGV4T2YocmVjb3JkKTtcclxuICAgICAgdGhpcy5vbmx5Vmlld0lubmVyRm9ybVJlY29yZCA9IHJlY29yZC5vbmx5VmlldztcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRpYWxvZ0lubmVyRm9ybVJlY29yZFJlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5kaWFsb2dJbm5lckZvcm1SZWNvcmQsIHtcclxuICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcclxuICAgICAgd2lkdGg6ICc3NSUnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBpbnZvY2F0byBhbCBzYWx2YXRhZ2dpbyBvIGFsbGEgY2hpdXN1cmEgZGVsIGRpYWxvZyBkaSBhZ2dpdW50YS9tb2RpZmljYS92aXN1YWxpenphemlvbmVcclxuICAgKiBkaSB1biByZWNvcmQgZGkgdW5hIGZvcm0gZGkgZGV0dGFnbGlvLlxyXG4gICAqIEBwYXJhbSByZWNvcmQgT2dnZXR0byByZXN0aXR1aXRvIGRhbCBjb21wb25lbnRlIGFkZC1mb3JtLWZpZWxkIChxdWVzdG8gcXVpKSBjb250ZW5lbnRlIGlsIFJlY29yZCBcclxuICAgKiBhZ2dpb3JuYXRvIGRhbGwndXRlbnRlLiBTZSBudWxsIGFsbG9yYSBsJ3V0ZW50ZSBub24gaGEgbW9kaWZpY2F0byBudWxsYSBlIGhhIGNoaXVzbyBpbCBkaWFsb2cuXHJcbiAgICovXHJcbiAgb25TYXZlSW5uZXJGb3JtUmVjb3JkKHJlY29yZDogUmVjb3JkKSB7XHJcbiAgICBpZiAocmVjb3JkICE9IG51bGwpIHtcclxuICAgICAgY29uc3QgYXJyYXlOYW1lOiBzdHJpbmcgPSB0aGlzLnNlbGVjdGVkSW5uZXJGb3JtLk5hbWUuc3BsaXQoJyAnKS5qb2luKCdfJyk7XHJcbiAgICAgIGlmICh0aGlzLmluZGV4SW5uZXJGb3JtUmVjb3JkICE9IG51bGwgJiYgdGhpcy5pbmRleElubmVyRm9ybVJlY29yZCA+PSAwKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbYXJyYXlOYW1lXVt0aGlzLmluZGV4SW5uZXJGb3JtUmVjb3JkXSA9IHJlY29yZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBpZiAoIXRoaXMucmVjb3JkW2FycmF5TmFtZV0pIHtcclxuICAgICAgICAgIHRoaXMucmVjb3JkW2FycmF5TmFtZV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbYXJyYXlOYW1lXS5wdXNoKHJlY29yZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuZGlhbG9nSW5uZXJGb3JtUmVjb3JkUmVmLmNsb3NlKCk7XHJcblxyXG4gICAgLy8gUmljYXJpY28gbGEgdGFiZWxsYSBkZWkgcmVjb3JkIHBlciB2aXN1YWxpenphcmUgbGUgbW9kaWZpY2hlIGZhdHRlIGRhbGwndXRlbnRlLlxyXG4gICAgaWYgKHRoaXMubGlzdElubmVyRm9ybVJlY29yZHMgJiYgdGhpcy5saXN0SW5uZXJGb3JtUmVjb3Jkcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubGlzdElubmVyRm9ybVJlY29yZHMuZm9yRWFjaChsaXN0ID0+IHtcclxuICAgICAgICBpZiAobGlzdCAmJiBsaXN0LnRhYmxlUmVjb3Jkcykge1xyXG4gICAgICAgICAgbGlzdC50YWJsZVJlY29yZHMucmVsb2FkRGF0YXRhYmxlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHRleHQtZmllbGQtdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnQ2FtcG8gZGkgdGVzdG8nXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5Ub29sdGlwXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L3RleHQtZmllbGQtdGVtcGxhdGU+XHJcblxyXG48dGV4dGFyZWEtZmllbGQtdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnQXJlYSBkaSB0ZXN0byddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLlRvb2x0aXBcIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvdGV4dGFyZWEtZmllbGQtdGVtcGxhdGU+XHJcblxyXG48Ym9vbGVhbi1maWVsZC10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZSAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydCb29sZWFubyddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLlRvb2x0aXBcIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvYm9vbGVhbi1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbjxkYXRlLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0RhdGEgZS9vIG9yYSddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLlRvb2x0aXBcIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvZGF0ZS1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbjxudW1lcmljLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0NhbXBvIG51bWVyaWNvJ11cIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiZmllbGQuVG9vbHRpcFwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC9udW1lcmljLWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuPGxpc3QtdmFsdWUtZmllbGQtdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnRWxlbmNvIGdlbmVyaWNvJ11cIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiZmllbGQuVG9vbHRpcFwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC9saXN0LXZhbHVlLWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuIDxhdHRhY2htZW50LWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0FsbGVnYXRvJ11cIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiZmllbGQuRGVzY3JpcHRpb25cIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbjxpbWFnZS1maWVsZC10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZSAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydJbW1hZ2luZSddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLkRlc2NyaXB0aW9uXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L2ltYWdlLWZpZWxkLXRlbXBsYXRlPiBcclxuXHJcbjxsaXN0LWZvcm0tcmVjb3JkICNsaXN0SW5uZXJGb3JtUmVjb3JkcyAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydGb3JtIGRpIGRldHRhZ2xpbyddXCJcclxuICAgIFtmb3JtXT1cImdldElubmVyRm9ybUZyb21GaWVsZChmaWVsZClcIiBbY29uZmlndXJhdGlvbnNdPVwiY29uZmlnTGlzdFwiXHJcbiAgICAob25BZGRWaWV3RWRpdFJlY29yZCk9XCJvbkFkZFZpZXdFZGl0SW5uZXJGb3JtUmVjb3JkKCRldmVudCwgZmllbGQpXCI+XHJcbjwvbGlzdC1mb3JtLXJlY29yZD4iXX0=
|
|
136
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tb2R1bGUtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2R5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeC9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZHluYW1pYy1tb2R1bGUtZmllbGQtZml4L2R5bmFtaWMtbW9kdWxlLWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTBCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHaEksT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXhGLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3RILE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUXRELE1BQU0sT0FBTyw4QkFBOEI7SUFzQnpDLFlBQ1UsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWxCakIsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUUxRSxlQUFVLEdBQTRCLElBQUksdUJBQXVCLEVBQUUsQ0FBQztRQUNwRSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQU05Qiw0QkFBdUIsR0FBWSxLQUFLLENBQUM7SUFVckMsQ0FBQztJQUdMLFdBQVc7UUFDVCxJQUFJLElBQUks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RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IElCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL2lCYXNlRmllbGRDb21wb25lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkLCBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVMaXN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVMaXN0Q29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvZHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuLi9mb3JtLXJlY29yZHMvbGlzdC1mb3JtLXJlY29yZC9saXN0LWZvcm0tcmVjb3JkLmNvbXBvbmVudCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2R5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2R5bmFtaWMtbW9kdWxlLWZpZWxkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIElCYXNlRmllbGRDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBmaWVsZDogQmFzZUZpZWxkO1xyXG4gIEBJbnB1dCgpIGZvcm06IEZvcm07XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgY29uZmlnTGlzdDogRHluYW1pY01vZHVsZUxpc3RDb25maWcgPSBuZXcgRHluYW1pY01vZHVsZUxpc3RDb25maWcoKTtcclxuICBGaWVsZFR5cGVFbnVtID0gRmllbGRUeXBlRW51bTtcclxuXHJcbiAgLy8jcmVnaW9uIFByb3ByaWV0w6AgcGVyIGFnZ2l1bmdlcmUvbW9kaWZpY2FyZSBpIHJlY29yZCBkaSB1bmEgZm9ybSBkaSBkZXR0YWdsaW9cclxuICBzZWxlY3RlZElubmVyRm9ybTogRm9ybTtcclxuICBzZWxlY3RlZElubmVyRm9ybVJlY29yZDogUmVjb3JkO1xyXG4gIGluZGV4SW5uZXJGb3JtUmVjb3JkOiBudW1iZXI7XHJcbiAgb25seVZpZXdJbm5lckZvcm1SZWNvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaWFsb2dJbm5lckZvcm1SZWNvcmRSZWY6IE1hdERpYWxvZ1JlZjxUZW1wbGF0ZVJlZjxhbnk+PjtcclxuICBAVmlld0NoaWxkKCdkaWFsb2dJbm5lckZvcm1SZWNvcmQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dJbm5lckZvcm1SZWNvcmQ6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJmaWVsZFRlbXBsYXRlXCIpIGZpZWxkVGVtcGxhdGU6IFF1ZXJ5TGlzdDxEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQ+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2xpc3RJbm5lckZvcm1SZWNvcmRzJykgbGlzdElubmVyRm9ybVJlY29yZHM6IFF1ZXJ5TGlzdDxMaXN0Rm9ybVJlY29yZENvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkgeyB9XHJcblxyXG5cclxuICB1cGRhdGVGaWVsZCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmZpZWxkVGVtcGxhdGUgJiYgdGhpcy5maWVsZFRlbXBsYXRlLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5maWVsZFRlbXBsYXRlLmZvckVhY2goZiA9PiBmLnVwZGF0ZUZpZWxkKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbmZpZ0xpc3QudmFsdWVzID0gdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVxyXG4gICAgdGhpcy5jb25maWdMaXN0LnNob3dUaXRsZSA9IHRydWU7XHJcbiAgICB0aGlzLmNvbmZpZ0xpc3QuZGVmYXVsdExpc3RBY3Rpb25zID0gbmV3IER5bmFtaWNNb2R1bGVMaXN0Rm9ybVJlY29yZEFjdGlvbnNEZWZhdWx0KClcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBpbnZvY2F0byBhbCBjYW1iaW8gZGVsIHZhbG9yZSBkaSBvZ25pIHByb3ByaWV0w6AgZGVsbCdvZ2dldHRvIHJlY29yZC5cclxuICAgKiBTZXJ2ZSBhZCBhZ2dpb3JuYXJlIGlsIHZhbG9yZSBkaSB0dXR0aSBpIGNhbXBpIGNoZSBoYW5ubyB1bmEgZm9ybXVsYS5cclxuICAgKi9cclxuICBvblJlY29yZENoYW5nZSgpIHtcclxuICAgIHRoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciByZWN1cGVyYXJlIHVuYSBJbm5lckZvcm0gYSBwYXJ0aXJlIGRhbCBGaWVsZCBjaGUgbGEgcmFwcHJlc2VudGEuXHJcbiAgICogQHBhcmFtIGZpZWxkIENhbXBvIGEgcGFydGlyZSBkYWwgcXVhbGUgc2kgdnVvbGUgcmVjdXBlcmFyZSBsYSBJbm5lckZvcm0uXHJcbiAgICogQHJldHVybnMgUmVzdGl0dWlzY2UgdW4gb2dnZXR0byBkaSB0aXBvIEZvcm0uXHJcbiAgICovXHJcbiAgZ2V0SW5uZXJGb3JtRnJvbUZpZWxkKGZpZWxkOiBCYXNlRmllbGQpOiBGb3JtIHtcclxuICAgIGlmICh0aGlzLmZvcm0uSW5uZXJGb3JtcyAmJiB0aGlzLmZvcm0uSW5uZXJGb3Jtcy5maW5kKGYgPT4gZi5OYW1lID09IGZpZWxkLkxhYmVsKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5mb3JtLklubmVyRm9ybXMuZmluZChmID0+IGYuTmFtZSA9PSBmaWVsZC5MYWJlbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gKiBNZXRvZG8gcGVyIGFwcmlyZSB1biBkaWFsb2cgaW4gY3VpIGFnZ2l1bmdlcmUvbW9kaWZpY2FyZS92aXN1YWxpenphcmUgdW4gcmVjb3JkIGFwcGFydGVuZW50ZVxyXG4gKiBhIHVuYSBmb3JtIGRpIGRldHRhZ2xpby5cclxuICogQHBhcmFtIHJlY29yZCBFdmVudG8gZGkgb3V0cHV0IGRlbCBjb21wb25lbnRlIGxpc3QtZm9ybS1yZWNvcmQsIGNvbnRpZW5lIGlsIHJlY29yZCBzZWxlemlvbmF0byBlIHVuIGJvb2xlbm8gY2hlIGluZGljYSBcclxuICogc2UgbCd1dGVudGUgdnVvbGUgbW9kaWZpY2FyZSBvIHZpc3VhbGl6emFyZSBsJ2VsZW1lbnRvIHNlbGV6aW9uYXRvLlxyXG4gKiBAcGFyYW0gaW5uZXJGb3JtIENvbnRpZW5lIGxhIEZvcm0gZGkgZGV0dGFnbGlvIGRhbGxhIHF1YWxlIMOoIHN0YXRvIHJpY2hpZXN0byBpbCByZWNvcmQuXHJcbiAqL1xyXG4gIG9uQWRkVmlld0VkaXRJbm5lckZvcm1SZWNvcmQocmVjb3JkOiB7IHJlY29yZDogUmVjb3JkLCBvbmx5VmlldzogYm9vbGVhbiB9LCBmaWVsZDogQmFzZUZpZWxkKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkSW5uZXJGb3JtID0gdGhpcy5nZXRJbm5lckZvcm1Gcm9tRmllbGQoZmllbGQpO1xyXG4gICAgaWYgKHJlY29yZCA9PSBudWxsKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbm5lckZvcm1SZWNvcmQgPSBuZXcgUmVjb3JkKCk7XHJcbiAgICAgIHRoaXMuaW5kZXhJbm5lckZvcm1SZWNvcmQgPSBudWxsO1xyXG4gICAgICB0aGlzLm9ubHlWaWV3SW5uZXJGb3JtUmVjb3JkID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkSW5uZXJGb3JtUmVjb3JkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZWNvcmQucmVjb3JkKSk7XHJcbiAgICAgIHRoaXMuaW5kZXhJbm5lckZvcm1SZWNvcmQgPSB0aGlzLnJlY29yZFtmaWVsZC5OYW1lXS5pbmRleE9mKHJlY29yZCk7XHJcbiAgICAgIHRoaXMub25seVZpZXdJbm5lckZvcm1SZWNvcmQgPSByZWNvcmQub25seVZpZXc7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaWFsb2dJbm5lckZvcm1SZWNvcmRSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRoaXMuZGlhbG9nSW5uZXJGb3JtUmVjb3JkLCB7XHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIHdpZHRoOiAnNzUlJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gYWwgc2FsdmF0YWdnaW8gbyBhbGxhIGNoaXVzdXJhIGRlbCBkaWFsb2cgZGkgYWdnaXVudGEvbW9kaWZpY2EvdmlzdWFsaXp6YXppb25lXHJcbiAgICogZGkgdW4gcmVjb3JkIGRpIHVuYSBmb3JtIGRpIGRldHRhZ2xpby5cclxuICAgKiBAcGFyYW0gcmVjb3JkIE9nZ2V0dG8gcmVzdGl0dWl0byBkYWwgY29tcG9uZW50ZSBhZGQtZm9ybS1maWVsZCAocXVlc3RvIHF1aSkgY29udGVuZW50ZSBpbCBSZWNvcmQgXHJcbiAgICogYWdnaW9ybmF0byBkYWxsJ3V0ZW50ZS4gU2UgbnVsbCBhbGxvcmEgbCd1dGVudGUgbm9uIGhhIG1vZGlmaWNhdG8gbnVsbGEgZSBoYSBjaGl1c28gaWwgZGlhbG9nLlxyXG4gICAqL1xyXG4gIG9uU2F2ZUlubmVyRm9ybVJlY29yZChyZWNvcmQ6IFJlY29yZCkge1xyXG4gICAgaWYgKHJlY29yZCAhPSBudWxsKSB7XHJcbiAgICAgIGNvbnN0IGFycmF5TmFtZTogc3RyaW5nID0gdGhpcy5zZWxlY3RlZElubmVyRm9ybS5OYW1lLnNwbGl0KCcgJykuam9pbignXycpO1xyXG4gICAgICBpZiAodGhpcy5pbmRleElubmVyRm9ybVJlY29yZCAhPSBudWxsICYmIHRoaXMuaW5kZXhJbm5lckZvcm1SZWNvcmQgPj0gMCkge1xyXG4gICAgICAgIHRoaXMucmVjb3JkW2FycmF5TmFtZV1bdGhpcy5pbmRleElubmVyRm9ybVJlY29yZF0gPSByZWNvcmQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnJlY29yZFthcnJheU5hbWVdKSB7XHJcbiAgICAgICAgICB0aGlzLnJlY29yZFthcnJheU5hbWVdID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucmVjb3JkW2FycmF5TmFtZV0ucHVzaChyZWNvcmQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmRpYWxvZ0lubmVyRm9ybVJlY29yZFJlZi5jbG9zZSgpO1xyXG5cclxuICAgIC8vIFJpY2FyaWNvIGxhIHRhYmVsbGEgZGVpIHJlY29yZCBwZXIgdmlzdWFsaXp6YXJlIGxlIG1vZGlmaWNoZSBmYXR0ZSBkYWxsJ3V0ZW50ZS5cclxuICAgIGlmICh0aGlzLmxpc3RJbm5lckZvcm1SZWNvcmRzICYmIHRoaXMubGlzdElubmVyRm9ybVJlY29yZHMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmxpc3RJbm5lckZvcm1SZWNvcmRzLmZvckVhY2gobGlzdCA9PiB7XHJcbiAgICAgICAgaWYgKGxpc3QgJiYgbGlzdC50YWJsZVJlY29yZHMpIHtcclxuICAgICAgICAgIGxpc3QudGFibGVSZWNvcmRzLnJlbG9hZERhdGF0YWJsZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjx0ZXh0LWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0NhbXBvIGRpIHRlc3RvJ11cIlxyXG4gICAgW21hdFRvb2x0aXBdPVwiZmllbGQuVG9vbHRpcFwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC90ZXh0LWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuPHRleHRhcmVhLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0FyZWEgZGkgdGVzdG8nXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5Ub29sdGlwXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L3RleHRhcmVhLWZpZWxkLXRlbXBsYXRlPlxyXG5cclxuPGJvb2xlYW4tZmllbGQtdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnQm9vbGVhbm8nXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5Ub29sdGlwXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L2Jvb2xlYW4tZmllbGQtdGVtcGxhdGU+XHJcblxyXG48ZGF0ZS1maWVsZC10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZSAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydEYXRhIGUvbyBvcmEnXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5Ub29sdGlwXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L2RhdGUtZmllbGQtdGVtcGxhdGU+XHJcblxyXG48bnVtZXJpYy1maWVsZC10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZSAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydDYW1wbyBudW1lcmljbyddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLlRvb2x0aXBcIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvbnVtZXJpYy1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbjxsaXN0LXZhbHVlLWZpZWxkLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiZmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0VsZW5jbyBnZW5lcmljbyddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLlRvb2x0aXBcIiBbKHJlY29yZCldPVwicmVjb3JkXCIgW2ZpZWxkXT1cImZpZWxkXCIgKHJlY29yZENoYW5nZSk9XCJvblJlY29yZENoYW5nZSgpXCI+XHJcbjwvbGlzdC12YWx1ZS1maWVsZC10ZW1wbGF0ZT5cclxuXHJcbiA8YXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZSAjZmllbGRUZW1wbGF0ZSAqbmdJZj1cImZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydBbGxlZ2F0byddXCJcclxuICAgIFttYXRUb29sdGlwXT1cImZpZWxkLkRlc2NyaXB0aW9uXCIgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZFwiIChyZWNvcmRDaGFuZ2UpPVwib25SZWNvcmRDaGFuZ2UoKVwiPlxyXG48L2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGU+XHJcblxyXG48aW1hZ2UtZmllbGQtdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnSW1tYWdpbmUnXVwiXHJcbiAgICBbbWF0VG9vbHRpcF09XCJmaWVsZC5EZXNjcmlwdGlvblwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIj5cclxuPC9pbWFnZS1maWVsZC10ZW1wbGF0ZT4gXHJcblxyXG48aW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnRWxlbmNvIGltbWFnaW5pJ11cIlxyXG5bbWF0VG9vbHRpcF09XCJmaWVsZC5EZXNjcmlwdGlvblwiIFsocmVjb3JkKV09XCJyZWNvcmRcIiBbZmllbGRdPVwiZmllbGRcIiAocmVjb3JkQ2hhbmdlKT1cIm9uUmVjb3JkQ2hhbmdlKClcIlxyXG4+XHJcbjwvaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGU+XHJcblxyXG48bGlzdC1mb3JtLXJlY29yZCAjbGlzdElubmVyRm9ybVJlY29yZHMgKm5nSWY9XCJmaWVsZC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnRm9ybSBkaSBkZXR0YWdsaW8nXVwiXHJcbiAgICBbZm9ybV09XCJnZXRJbm5lckZvcm1Gcm9tRmllbGQoZmllbGQpXCIgW2NvbmZpZ3VyYXRpb25zXT1cImNvbmZpZ0xpc3RcIlxyXG4gICAgKG9uQWRkVmlld0VkaXRSZWNvcmQpPVwib25BZGRWaWV3RWRpdElubmVyRm9ybVJlY29yZCgkZXZlbnQsIGZpZWxkKVwiPlxyXG48L2xpc3QtZm9ybS1yZWNvcmQ+Il19
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { DynAttachmentSelectObject } from '../../../../models/fields/imageSelectorField.model';
|
|
3
|
+
import { UtilityHelperService } from '../../../../services/utilityHelper.services';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/material/dialog";
|
|
6
|
+
import * as i2 from "../../../../services/utilityHelper.services";
|
|
7
|
+
import * as i3 from "@angular/material/form-field";
|
|
8
|
+
import * as i4 from "@angular/material/core";
|
|
9
|
+
import * as i5 from "@angular/material/select";
|
|
10
|
+
import * as i6 from "@angular/forms";
|
|
11
|
+
import * as i7 from "@angular/common";
|
|
12
|
+
export class ImageFieldSelectorTemplateComponent {
|
|
13
|
+
constructor(dialog, utilityService) {
|
|
14
|
+
this.dialog = dialog;
|
|
15
|
+
this.utilityService = utilityService;
|
|
16
|
+
this.recordChange = new EventEmitter();
|
|
17
|
+
}
|
|
18
|
+
ngOnInit() {
|
|
19
|
+
this.initStyles();
|
|
20
|
+
this.initializeAttachments();
|
|
21
|
+
}
|
|
22
|
+
initStyles() {
|
|
23
|
+
//Funzione per parsare il campo stylecss dell'oggetto field ed applicarlo all'html
|
|
24
|
+
if (this.field.FieldstyleCSS != null || this.field.FieldstyleCSS != undefined)
|
|
25
|
+
this.FieldstyleObj = UtilityHelperService.initStyles(this.field.FieldstyleCSS);
|
|
26
|
+
if (this.field.FieldstyleCSS != null || this.field.FieldstyleCSS != undefined)
|
|
27
|
+
this.LabelstyleObj = UtilityHelperService.initStyles(this.field.LabelstyleCSS);
|
|
28
|
+
}
|
|
29
|
+
ToLowerCase(el) {
|
|
30
|
+
return el.toLowerCase();
|
|
31
|
+
}
|
|
32
|
+
ngOnChanges(changes) {
|
|
33
|
+
// Se viene modificato il valore di "ngModelInput" allora aggiorna l'input
|
|
34
|
+
if (changes['record'] != undefined && changes['record'].firstChange == false && JSON.stringify(changes['record'].currentValue) != JSON.stringify(changes['record'].previousValue)) {
|
|
35
|
+
this.record = changes['record'].currentValue;
|
|
36
|
+
this.updateField();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Metodo per aggiornare il valore del campo quando questo è rappresentato da una formula.
|
|
41
|
+
*/
|
|
42
|
+
updateField() {
|
|
43
|
+
}
|
|
44
|
+
initializeAttachments() {
|
|
45
|
+
this.field.AttachmentList.forEach((attachment) => {
|
|
46
|
+
attachment.objectToSelect = new DynAttachmentSelectObject();
|
|
47
|
+
attachment.objectToSelect.ID = attachment.ID;
|
|
48
|
+
attachment.objectToSelect.ButtonKey = attachment.ButtonKey;
|
|
49
|
+
attachment.objectToSelect.ButtonValue = attachment.ButtonValue;
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Metodo per emettere l'evento che il valore del record è cambiato.
|
|
54
|
+
*/
|
|
55
|
+
onRecordValueChange(event) {
|
|
56
|
+
//this.recordChange.emit(this.record);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
ImageFieldSelectorTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImageFieldSelectorTemplateComponent, deps: [{ token: i1.MatDialog }, { token: i2.UtilityHelperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
ImageFieldSelectorTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ImageFieldSelectorTemplateComponent, selector: "image-field-selector-template", inputs: { record: "record", field: "field" }, outputs: { recordChange: "recordChange" }, usesOnChanges: true, ngImport: i0, template: "<mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1 ps-3\" [ngStyle]=\"LabelstyleObj\">{{field.Description}}</mat-label>\r\n\r\n <!-- Mat-Select SINGOLA -->\r\n <mat-select *ngIf=\"!field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange($event)\">\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.objectToSelect.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <!-- Mat-Select MULTIPLA -->\r\n <mat-select *ngIf=\"field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange($event)\" multiple>\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.objectToSelect.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n</mat-form-field>", styles: [".mdc-list-item__primary-text{margin-right:50px}\n"], dependencies: [{ kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImageFieldSelectorTemplateComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'image-field-selector-template', template: "<mat-form-field [formGroup]=\"field.FormFormGroup\">\r\n <mat-label class=\"pt-1 ps-3\" [ngStyle]=\"LabelstyleObj\">{{field.Description}}</mat-label>\r\n\r\n <!-- Mat-Select SINGOLA -->\r\n <mat-select *ngIf=\"!field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange($event)\">\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.objectToSelect.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n <!-- Mat-Select MULTIPLA -->\r\n <mat-select *ngIf=\"field.IsMultiChoiche\" class=\"imageFieldSelectorImages\" [formControlName]=\"field.Name\"\r\n [required]=\"field.Required\" [(ngModel)]=\"record[field.Name]\" (ngModelChange)=\"onRecordValueChange($event)\" multiple>\r\n <mat-option *ngFor=\"let attachment of field.AttachmentList\" [value]=\"attachment.objectToSelect.ID\">\r\n <img src='data:image/{{ToLowerCase(attachment.FileExtension)}};base64,{{attachment.FileDataBase64}}' [height]=\"attachment.ResizedImageHeightPx != null ? attachment.ResizedImageHeightPx : 128\"> \r\n <span>{{ attachment.ButtonKey }}</span>\r\n </mat-option>\r\n </mat-select>\r\n\r\n</mat-form-field>", styles: [".mdc-list-item__primary-text{margin-right:50px}\n"] }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.UtilityHelperService }]; }, propDecorators: { record: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], field: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], recordChange: [{
|
|
69
|
+
type: Output
|
|
70
|
+
}] } });
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtc2VsZWN0b3ItdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBaUIseUJBQXlCLEVBQXNCLE1BQU0sb0RBQW9ELENBQUM7QUFDbEksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7Ozs7OztBQU9uRixNQUFNLE9BQU8sbUNBQW1DO0lBUzlDLFlBQ1UsTUFBaUIsRUFDbEIsY0FBb0M7UUFEbkMsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUNsQixtQkFBYyxHQUFkLGNBQWMsQ0FBc0I7UUFQbkMsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQVF0RSxDQUFDO0lBRUwsUUFBUTtRQUVOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztJQUUvQixDQUFDO0lBRUQsVUFBVTtRQUNSLGtGQUFrRjtRQUNwRixJQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxTQUFTO1lBQzFFLElBQUksQ0FBQyxhQUFhLEdBQUUsb0JBQW9CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDaEYsSUFBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksU0FBUztZQUMxRSxJQUFJLENBQUMsYUFBYSxHQUFHLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFQyxXQUFXLENBQUMsRUFBUztRQUNuQixPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLDBFQUEwRTtRQUMxRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxTQUFTLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakwsSUFBSSxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsWUFBWSxDQUFDO1lBQzdDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFdBQVc7SUFFWCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFO1lBQy9DLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSx5QkFBeUIsRUFBRSxDQUFDO1lBQzVELFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDN0MsVUFBVSxDQUFDLGNBQWMsQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQztZQUMzRCxVQUFVLENBQUMsY0FBYyxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVDOztLQUVDO0lBQ0QsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsc0NBQXNDO0lBQ3hDLENBQUM7O2lJQTlEUSxtQ0FBbUM7cUhBQW5DLG1DQUFtQyxtTENYaEQsc2dEQXFCaUI7NEZEVkosbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNFLCtCQUErQjttSUFNaEMsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgRHluQXR0YWNobWVudCwgRHluQXR0YWNobWVudFNlbGVjdE9iamVjdCwgSW1hZ2VTZWxlY3RvckZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9pbWFnZVNlbGVjdG9yRmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ltYWdlLWZpZWxkLXNlbGVjdG9yLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1maWVsZC1zZWxlY3Rvci10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUZpZWxkU2VsZWN0b3JUZW1wbGF0ZUNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIHJlY29yZDogUmVjb3JkO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBJbWFnZVNlbGVjdG9yRmllbGQ7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgRmllbGRzdHlsZU9iajogYW55O1xyXG4gIExhYmVsc3R5bGVPYmo6IGFueTtcclxuIFxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eUhlbHBlclNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICB0aGlzLmluaXRTdHlsZXMoKTtcclxuICAgIHRoaXMuaW5pdGlhbGl6ZUF0dGFjaG1lbnRzKCk7XHJcbiAgICBcclxuICB9XHJcblxyXG4gIGluaXRTdHlsZXMoKSB7XHJcbiAgICAvL0Z1bnppb25lIHBlciBwYXJzYXJlIGlsIGNhbXBvIHN0eWxlY3NzIGRlbGwnb2dnZXR0byBmaWVsZCBlZCBhcHBsaWNhcmxvIGFsbCdodG1sXHJcbiAgaWYodGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IG51bGwgfHwgdGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTICE9IHVuZGVmaW5lZCkgICBcclxuICAgIHRoaXMuRmllbGRzdHlsZU9iaj0gVXRpbGl0eUhlbHBlclNlcnZpY2UuaW5pdFN0eWxlcyh0aGlzLmZpZWxkLkZpZWxkc3R5bGVDU1MpO1xyXG4gIGlmKHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSBudWxsIHx8IHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSB1bmRlZmluZWQpICAgXHJcbiAgICB0aGlzLkxhYmVsc3R5bGVPYmogPSBVdGlsaXR5SGVscGVyU2VydmljZS5pbml0U3R5bGVzKHRoaXMuZmllbGQuTGFiZWxzdHlsZUNTUyk7XHJcbn0gIFxyXG5cclxuICBUb0xvd2VyQ2FzZShlbDpzdHJpbmcpe1xyXG4gICAgcmV0dXJuIGVsLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAvLyBTZSB2aWVuZSBtb2RpZmljYXRvIGlsIHZhbG9yZSBkaSBcIm5nTW9kZWxJbnB1dFwiIGFsbG9yYSBhZ2dpb3JuYSBsJ2lucHV0XHJcbiAgICBpZiAoY2hhbmdlc1sncmVjb3JkJ10gIT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbJ3JlY29yZCddLmZpcnN0Q2hhbmdlID09IGZhbHNlICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLmN1cnJlbnRWYWx1ZSkgIT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncmVjb3JkJ10ucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5yZWNvcmQgPSBjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMudXBkYXRlRmllbGQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgYWdnaW9ybmFyZSBpbCB2YWxvcmUgZGVsIGNhbXBvIHF1YW5kbyBxdWVzdG8gw6ggcmFwcHJlc2VudGF0byBkYSB1bmEgZm9ybXVsYS5cclxuICAgKi9cclxuICB1cGRhdGVGaWVsZCgpIHtcclxuXHJcbiAgfVxyXG5cclxuICBpbml0aWFsaXplQXR0YWNobWVudHMoKXtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNobWVudExpc3QuZm9yRWFjaCgoYXR0YWNobWVudCkgPT4ge1xyXG4gICAgICBhdHRhY2htZW50Lm9iamVjdFRvU2VsZWN0ID0gbmV3IER5bkF0dGFjaG1lbnRTZWxlY3RPYmplY3QoKTtcclxuICAgICAgYXR0YWNobWVudC5vYmplY3RUb1NlbGVjdC5JRCA9IGF0dGFjaG1lbnQuSUQ7XHJcbiAgICAgIGF0dGFjaG1lbnQub2JqZWN0VG9TZWxlY3QuQnV0dG9uS2V5ID0gYXR0YWNobWVudC5CdXR0b25LZXk7XHJcbiAgICAgIGF0dGFjaG1lbnQub2JqZWN0VG9TZWxlY3QuQnV0dG9uVmFsdWUgPSBhdHRhY2htZW50LkJ1dHRvblZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZW1ldHRlcmUgbCdldmVudG8gY2hlIGlsIHZhbG9yZSBkZWwgcmVjb3JkIMOoIGNhbWJpYXRvLlxyXG4gICAqL1xyXG4gICAgb25SZWNvcmRWYWx1ZUNoYW5nZShldmVudDogRHluQXR0YWNobWVudCkge1xyXG4gICAgICAvL3RoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxtYXQtZm9ybS1maWVsZCBbZm9ybUdyb3VwXT1cImZpZWxkLkZvcm1Gb3JtR3JvdXBcIj5cclxuICA8bWF0LWxhYmVsIGNsYXNzPVwicHQtMSBwcy0zXCIgW25nU3R5bGVdPVwiTGFiZWxzdHlsZU9ialwiPnt7ZmllbGQuRGVzY3JpcHRpb259fTwvbWF0LWxhYmVsPlxyXG5cclxuICA8IS0tIE1hdC1TZWxlY3QgU0lOR09MQSAtLT5cclxuICA8bWF0LXNlbGVjdCAqbmdJZj1cIiFmaWVsZC5Jc011bHRpQ2hvaWNoZVwiIGNsYXNzPVwiaW1hZ2VGaWVsZFNlbGVjdG9ySW1hZ2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5OYW1lXCJcclxuICBbcmVxdWlyZWRdPVwiZmllbGQuUmVxdWlyZWRcIiBbKG5nTW9kZWwpXT1cInJlY29yZFtmaWVsZC5OYW1lXVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVjb3JkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGF0dGFjaG1lbnQgb2YgZmllbGQuQXR0YWNobWVudExpc3RcIiBbdmFsdWVdPVwiYXR0YWNobWVudC5vYmplY3RUb1NlbGVjdC5JRFwiPlxyXG4gICAgICA8aW1nIHNyYz0nZGF0YTppbWFnZS97e1RvTG93ZXJDYXNlKGF0dGFjaG1lbnQuRmlsZUV4dGVuc2lvbil9fTtiYXNlNjQse3thdHRhY2htZW50LkZpbGVEYXRhQmFzZTY0fX0nIFtoZWlnaHRdPVwiYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCAhPSBudWxsID8gYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCA6IDEyOFwiPiBcclxuICAgICAgPHNwYW4+e3sgYXR0YWNobWVudC5CdXR0b25LZXkgfX08L3NwYW4+XHJcbiAgICA8L21hdC1vcHRpb24+XHJcbiAgPC9tYXQtc2VsZWN0PlxyXG5cclxuICA8IS0tIE1hdC1TZWxlY3QgTVVMVElQTEEgLS0+XHJcbiAgPG1hdC1zZWxlY3QgKm5nSWY9XCJmaWVsZC5Jc011bHRpQ2hvaWNoZVwiIGNsYXNzPVwiaW1hZ2VGaWVsZFNlbGVjdG9ySW1hZ2VzXCIgW2Zvcm1Db250cm9sTmFtZV09XCJmaWVsZC5OYW1lXCJcclxuICBbcmVxdWlyZWRdPVwiZmllbGQuUmVxdWlyZWRcIiBbKG5nTW9kZWwpXT1cInJlY29yZFtmaWVsZC5OYW1lXVwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uUmVjb3JkVmFsdWVDaGFuZ2UoJGV2ZW50KVwiIG11bHRpcGxlPlxyXG4gICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGF0dGFjaG1lbnQgb2YgZmllbGQuQXR0YWNobWVudExpc3RcIiBbdmFsdWVdPVwiYXR0YWNobWVudC5vYmplY3RUb1NlbGVjdC5JRFwiPlxyXG4gICAgICA8aW1nIHNyYz0nZGF0YTppbWFnZS97e1RvTG93ZXJDYXNlKGF0dGFjaG1lbnQuRmlsZUV4dGVuc2lvbil9fTtiYXNlNjQse3thdHRhY2htZW50LkZpbGVEYXRhQmFzZTY0fX0nIFtoZWlnaHRdPVwiYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCAhPSBudWxsID8gYXR0YWNobWVudC5SZXNpemVkSW1hZ2VIZWlnaHRQeCA6IDEyOFwiPiBcclxuICAgICAgPHNwYW4+e3sgYXR0YWNobWVudC5CdXR0b25LZXkgfX08L3NwYW4+XHJcbiAgICA8L21hdC1vcHRpb24+XHJcbiAgPC9tYXQtc2VsZWN0PlxyXG5cclxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { AvailableImageExtensions } from '../../../../models/fields/attachmentField.model';
|
|
3
2
|
import { UtilityHelperService } from '../../../../services/utilityHelper.services';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
import * as i1 from "@angular/material/dialog";
|
|
6
5
|
import * as i2 from "../../../../services/utilityHelper.services";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/common";
|
|
7
8
|
/**
|
|
8
9
|
* Metodo per recuperare, a partire da un Blob, la stringa contenente il base64 del file.
|
|
9
10
|
* Usato per prendere il base64 dell'immagine dopo che l'utente ci ha disegnato sopra.
|
|
@@ -31,30 +32,41 @@ export class ImageFieldTemplateComponent {
|
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
ngOnInit() {
|
|
35
|
+
/*
|
|
34
36
|
this.field.AttachDefinition.FormFormGroup = this.field.FormFormGroup;
|
|
37
|
+
|
|
35
38
|
if (!this.field.AttachDefinition.AllowedExtensions) {
|
|
36
|
-
|
|
39
|
+
this.field.AttachDefinition.AllowedExtensions = AvailableImageExtensions.map(ext => ext.key);
|
|
37
40
|
}
|
|
41
|
+
|
|
38
42
|
this.field.AttachDefinition.Name = this.field.Name;
|
|
39
43
|
this.field.AttachDefinition.Label = this.field.Label;
|
|
40
44
|
this.field.AttachDefinition.Description = this.field.Description;
|
|
41
45
|
this.field.AttachDefinition.Required = this.field.Required;
|
|
42
46
|
this.field.AttachDefinition.Formula = this.field.Formula;
|
|
43
47
|
this.field.AttachDefinition.FieldValue = this.field.FieldValue;
|
|
48
|
+
*/
|
|
44
49
|
// Se il campo prevede un'immagine pre-caricata (ImageIsContextualAttachment == true) sulla quale
|
|
45
50
|
// l'utente può disegnare (EnableDrawing == true) e non sono in modifica di un record (ovvero nel record
|
|
46
51
|
// non ho un'immagine già salvata) allora imposta l'immagine pre caricata come valore iniziale
|
|
47
52
|
// nel record corrente e ne recupera le dimensioni per visualizzare correttamente l'area in cui
|
|
48
53
|
// l'utente può disegnare. Se non effettua modifiche o non salva i disegni fatti viene salvata
|
|
49
54
|
// l'immagine originale.
|
|
55
|
+
/*
|
|
50
56
|
if (this.field.ImageIsContextualAttachment && this.field.ContextualAttachment) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
+
if (!this.record[this.field.Name] || !Array.isArray(this.record[this.field.Name]) || !(this.record[this.field.Name].length > 0)) {
|
|
58
|
+
this.record[this.field.Name] = [JSON.parse(JSON.stringify(this.field.ContextualAttachment))];
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// if(this.field.AttachDefinition.MetadataFields != undefined)
|
|
62
|
+
// this.preLoadedImageMetadataFormGroup = this.utilityService.CreateFormFormGroup(this.field.AttachDefinition.MetadataFields, this.record[this.field.Name][0]);
|
|
63
|
+
this.getImageDimensions();
|
|
57
64
|
}
|
|
65
|
+
|
|
66
|
+
*/
|
|
67
|
+
console.log("recordfield", this.record, this.field);
|
|
68
|
+
this.record[this.field.Name] = this.field.DynAttachmentID;
|
|
69
|
+
this.recordChange.emit(this.record);
|
|
58
70
|
this.updateField();
|
|
59
71
|
}
|
|
60
72
|
ngOnChanges(changes) {
|
|
@@ -86,7 +98,7 @@ export class ImageFieldTemplateComponent {
|
|
|
86
98
|
resetPreLoadedImage() {
|
|
87
99
|
this.width = null;
|
|
88
100
|
this.height = null;
|
|
89
|
-
this.record[this.field.Name] = [JSON.parse(JSON.stringify(this.field.ContextualAttachment))]
|
|
101
|
+
/*this.record[this.field.Name] = [JSON.parse(JSON.stringify(this.field.ContextualAttachment))];*/
|
|
90
102
|
this.getImageDimensions();
|
|
91
103
|
}
|
|
92
104
|
/**
|
|
@@ -96,14 +108,16 @@ export class ImageFieldTemplateComponent {
|
|
|
96
108
|
* apre il dialog con il componente image-drawing per permettere il disegno sull'immagine appena caricata.
|
|
97
109
|
*/
|
|
98
110
|
onAttachmentsChange() {
|
|
111
|
+
/*
|
|
99
112
|
if (!this.field.AttachDefinition.IsMultiAttach && this.field.EnableDrawing && this.record[this.field.Name] && this.record[this.field.Name][0]) {
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
113
|
+
this.getImageDimensions();
|
|
114
|
+
this.dialogImageDrowingRef = this.dialog.open(this.dialogImageDrowing, {
|
|
115
|
+
disableClose: true,
|
|
116
|
+
hasBackdrop: true,
|
|
117
|
+
width: '75%'
|
|
118
|
+
});
|
|
106
119
|
}
|
|
120
|
+
*/
|
|
107
121
|
}
|
|
108
122
|
/**
|
|
109
123
|
* Metodo invocato al salvataggio dell'immagine dal componente image-drawing.
|
|
@@ -172,10 +186,10 @@ export class ImageFieldTemplateComponent {
|
|
|
172
186
|
}
|
|
173
187
|
}
|
|
174
188
|
ImageFieldTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImageFieldTemplateComponent, deps: [{ token: i1.MatDialog }, { token: i2.UtilityHelperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
175
|
-
ImageFieldTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ImageFieldTemplateComponent, selector: "image-field-template", inputs: { record: "record", field: "field" }, outputs: { recordChange: "recordChange" }, viewQueries: [{ propertyName: "dialogImageDrowing", first: true, predicate: ["dialogImageDrowing"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<!-- VISUALIZZAZIONE ALLEGATO PRE CARICATO CON POSSIBILITA' DI DISEGNO\r\n<div class=\"row\" *ngIf=\"field.ImageIsContextualAttachment && field.ContextualAttachment\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-4\">\r\n <p class=\"mb-2\">\r\n {{ field.Description + (field.Required ? \" *\" : \"\")}}\r\n <br>\r\n Nome immagine: {{ field.ImgName}}\r\n </p>\r\n <eqp-img-drawing\r\n *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\" [width]=\"width\"\r\n [height]=\"height\" [i18n]=\"i18n\" [showCancelButton]=\"true\" (save)=\"saveDrowning($event)\"\r\n (cancel)=\"resetPreLoadedImage()\">\r\n </eqp-img-drawing>\r\n\r\n <img *ngIf=\"!field.EnableDrawing\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType+ ';base64,'+ record[field.Name][0].FileDataBase64\">\r\n </div> -->\r\n\r\n <!-- <div class=\"col-sm-12 col-md-6 col-lg-8\">\r\n <div class=\"row\"\r\n *ngIf=\"field.AttachDefinition && field.AttachDefinition.MetadataFields && preLoadedImageMetadataFormGroup\">\r\n <div class=\"mt-2\" *ngFor=\"let metadata of field.AttachDefinition.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix #fieldTemplate [field]=\"metadata\" [form]=\"preLoadedImageMetadataFormGroup\"\r\n [record]=\"record[field.Name][0]\" (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div>\r\n </div>\r\n </div> -->\r\n<!-- </div> -->\r\n\r\n<!-- COMPONENTE IN CUI CARICARE NUOVI ALLEGATI -->\r\n<!-- <attachment-field-template [(record)]=\"record\" [field]=\"field.AttachDefinition\" [onlyImages]=\"true\"\r\n (onAttachmentsChange)=\"onAttachmentsChange()\" *ngIf=\"!field.ImageIsContextualAttachment\">\r\n</attachment-field-template> -->\r\n\r\n<!-- DIALOG PER DISEGNARE SUL NUOVO ALLEGATO CARICATO -->\r\n<!-- <ng-template #dialogImageDrowing>\r\n <div *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n class=\"row\">\r\n <div class=\"col-sm-12 col-md-12\">\r\n <eqp-img-drawing [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [i18n]=\"i18n\" [showCancelButton]=\"false\" (save)=\"saveDrowning($event)\">\r\n </eqp-img-drawing>\r\n </div>\r\n </div>\r\n <div class=\"row mt-2 mb-1\">\r\n <div class=\"col-sm-12 text-right\">\r\n <button class=\"btn mat-raised-button\" (click)=\"closeImageDrowingDialog()\" type=\"button\">\r\n Annulla disegno\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template> -->", styles: ["::ng-deep image-drawing>button{background-color:var(--primary)!important;color:#fff!important}\n"] });
|
|
189
|
+
ImageFieldTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ImageFieldTemplateComponent, selector: "image-field-template", inputs: { record: "record", field: "field" }, outputs: { recordChange: "recordChange" }, viewQueries: [{ propertyName: "dialogImageDrowing", first: true, predicate: ["dialogImageDrowing"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"row imageContainer\">\r\n <div class=\"col-12\">\r\n <mat-label> {{field.Description}} </mat-label>\r\n <img *ngIf=\"field.DynAttachment\"\r\n src=\"data:{{field.DynAttachment.FileContentType}};base64,{{field.DynAttachment.FileDataBase64}}\"\r\n [height]=\"field.DynAttachment.ResizedImageHeightPx != null ? field.DynAttachment.ResizedImageHeightPx : 128\"\r\n class=\"singleImage\">\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n<!-- VISUALIZZAZIONE ALLEGATO PRE CARICATO CON POSSIBILITA' DI DISEGNO\r\n<div class=\"row\" *ngIf=\"field.ImageIsContextualAttachment && field.ContextualAttachment\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-4\">\r\n <p class=\"mb-2\">\r\n {{ field.Description + (field.Required ? \" *\" : \"\")}}\r\n <br>\r\n Nome immagine: {{ field.ImgName}}\r\n </p>\r\n <eqp-img-drawing\r\n *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\" [width]=\"width\"\r\n [height]=\"height\" [i18n]=\"i18n\" [showCancelButton]=\"true\" (save)=\"saveDrowning($event)\"\r\n (cancel)=\"resetPreLoadedImage()\">\r\n </eqp-img-drawing>\r\n\r\n <img *ngIf=\"!field.EnableDrawing\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType+ ';base64,'+ record[field.Name][0].FileDataBase64\">\r\n </div> -->\r\n\r\n <!-- <div class=\"col-sm-12 col-md-6 col-lg-8\">\r\n <div class=\"row\"\r\n *ngIf=\"field.AttachDefinition && field.AttachDefinition.MetadataFields && preLoadedImageMetadataFormGroup\">\r\n <div class=\"mt-2\" *ngFor=\"let metadata of field.AttachDefinition.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix #fieldTemplate [field]=\"metadata\" [form]=\"preLoadedImageMetadataFormGroup\"\r\n [record]=\"record[field.Name][0]\" (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div>\r\n </div>\r\n </div> -->\r\n<!-- </div> -->\r\n\r\n<!-- COMPONENTE IN CUI CARICARE NUOVI ALLEGATI -->\r\n<!-- <attachment-field-template [(record)]=\"record\" [field]=\"field.AttachDefinition\" [onlyImages]=\"true\"\r\n (onAttachmentsChange)=\"onAttachmentsChange()\" *ngIf=\"!field.ImageIsContextualAttachment\">\r\n</attachment-field-template> -->\r\n\r\n<!-- DIALOG PER DISEGNARE SUL NUOVO ALLEGATO CARICATO -->\r\n<!-- <ng-template #dialogImageDrowing>\r\n <div *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n class=\"row\">\r\n <div class=\"col-sm-12 col-md-12\">\r\n <eqp-img-drawing [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [i18n]=\"i18n\" [showCancelButton]=\"false\" (save)=\"saveDrowning($event)\">\r\n </eqp-img-drawing>\r\n </div>\r\n </div>\r\n <div class=\"row mt-2 mb-1\">\r\n <div class=\"col-sm-12 text-right\">\r\n <button class=\"btn mat-raised-button\" (click)=\"closeImageDrowingDialog()\" type=\"button\">\r\n Annulla disegno\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template> -->", styles: ["::ng-deep image-drawing>button{background-color:var(--primary)!important;color:#fff!important}.imageContainer .singleImage{margin-top:5px;display:block}\n"], dependencies: [{ kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
176
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ImageFieldTemplateComponent, decorators: [{
|
|
177
191
|
type: Component,
|
|
178
|
-
args: [{ selector: 'image-field-template', template: "<!-- VISUALIZZAZIONE ALLEGATO PRE CARICATO CON POSSIBILITA' DI DISEGNO\r\n<div class=\"row\" *ngIf=\"field.ImageIsContextualAttachment && field.ContextualAttachment\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-4\">\r\n <p class=\"mb-2\">\r\n {{ field.Description + (field.Required ? \" *\" : \"\")}}\r\n <br>\r\n Nome immagine: {{ field.ImgName}}\r\n </p>\r\n <eqp-img-drawing\r\n *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\" [width]=\"width\"\r\n [height]=\"height\" [i18n]=\"i18n\" [showCancelButton]=\"true\" (save)=\"saveDrowning($event)\"\r\n (cancel)=\"resetPreLoadedImage()\">\r\n </eqp-img-drawing>\r\n\r\n <img *ngIf=\"!field.EnableDrawing\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType+ ';base64,'+ record[field.Name][0].FileDataBase64\">\r\n </div> -->\r\n\r\n <!-- <div class=\"col-sm-12 col-md-6 col-lg-8\">\r\n <div class=\"row\"\r\n *ngIf=\"field.AttachDefinition && field.AttachDefinition.MetadataFields && preLoadedImageMetadataFormGroup\">\r\n <div class=\"mt-2\" *ngFor=\"let metadata of field.AttachDefinition.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix #fieldTemplate [field]=\"metadata\" [form]=\"preLoadedImageMetadataFormGroup\"\r\n [record]=\"record[field.Name][0]\" (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div>\r\n </div>\r\n </div> -->\r\n<!-- </div> -->\r\n\r\n<!-- COMPONENTE IN CUI CARICARE NUOVI ALLEGATI -->\r\n<!-- <attachment-field-template [(record)]=\"record\" [field]=\"field.AttachDefinition\" [onlyImages]=\"true\"\r\n (onAttachmentsChange)=\"onAttachmentsChange()\" *ngIf=\"!field.ImageIsContextualAttachment\">\r\n</attachment-field-template> -->\r\n\r\n<!-- DIALOG PER DISEGNARE SUL NUOVO ALLEGATO CARICATO -->\r\n<!-- <ng-template #dialogImageDrowing>\r\n <div *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n class=\"row\">\r\n <div class=\"col-sm-12 col-md-12\">\r\n <eqp-img-drawing [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [i18n]=\"i18n\" [showCancelButton]=\"false\" (save)=\"saveDrowning($event)\">\r\n </eqp-img-drawing>\r\n </div>\r\n </div>\r\n <div class=\"row mt-2 mb-1\">\r\n <div class=\"col-sm-12 text-right\">\r\n <button class=\"btn mat-raised-button\" (click)=\"closeImageDrowingDialog()\" type=\"button\">\r\n Annulla disegno\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template> -->", styles: ["::ng-deep image-drawing>button{background-color:var(--primary)!important;color:#fff!important}\n"] }]
|
|
192
|
+
args: [{ selector: 'image-field-template', template: "<div class=\"row imageContainer\">\r\n <div class=\"col-12\">\r\n <mat-label> {{field.Description}} </mat-label>\r\n <img *ngIf=\"field.DynAttachment\"\r\n src=\"data:{{field.DynAttachment.FileContentType}};base64,{{field.DynAttachment.FileDataBase64}}\"\r\n [height]=\"field.DynAttachment.ResizedImageHeightPx != null ? field.DynAttachment.ResizedImageHeightPx : 128\"\r\n class=\"singleImage\">\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n<!-- VISUALIZZAZIONE ALLEGATO PRE CARICATO CON POSSIBILITA' DI DISEGNO\r\n<div class=\"row\" *ngIf=\"field.ImageIsContextualAttachment && field.ContextualAttachment\">\r\n <div class=\"col-sm-12 col-md-6 col-lg-4\">\r\n <p class=\"mb-2\">\r\n {{ field.Description + (field.Required ? \" *\" : \"\")}}\r\n <br>\r\n Nome immagine: {{ field.ImgName}}\r\n </p>\r\n <eqp-img-drawing\r\n *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\" [width]=\"width\"\r\n [height]=\"height\" [i18n]=\"i18n\" [showCancelButton]=\"true\" (save)=\"saveDrowning($event)\"\r\n (cancel)=\"resetPreLoadedImage()\">\r\n </eqp-img-drawing>\r\n\r\n <img *ngIf=\"!field.EnableDrawing\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType+ ';base64,'+ record[field.Name][0].FileDataBase64\">\r\n </div> -->\r\n\r\n <!-- <div class=\"col-sm-12 col-md-6 col-lg-8\">\r\n <div class=\"row\"\r\n *ngIf=\"field.AttachDefinition && field.AttachDefinition.MetadataFields && preLoadedImageMetadataFormGroup\">\r\n <div class=\"mt-2\" *ngFor=\"let metadata of field.AttachDefinition.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix #fieldTemplate [field]=\"metadata\" [form]=\"preLoadedImageMetadataFormGroup\"\r\n [record]=\"record[field.Name][0]\" (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div>\r\n </div>\r\n </div> -->\r\n<!-- </div> -->\r\n\r\n<!-- COMPONENTE IN CUI CARICARE NUOVI ALLEGATI -->\r\n<!-- <attachment-field-template [(record)]=\"record\" [field]=\"field.AttachDefinition\" [onlyImages]=\"true\"\r\n (onAttachmentsChange)=\"onAttachmentsChange()\" *ngIf=\"!field.ImageIsContextualAttachment\">\r\n</attachment-field-template> -->\r\n\r\n<!-- DIALOG PER DISEGNARE SUL NUOVO ALLEGATO CARICATO -->\r\n<!-- <ng-template #dialogImageDrowing>\r\n <div *ngIf=\"field.EnableDrawing && record[field.Name] && record[field.Name][0] && width != null && height != null\"\r\n class=\"row\">\r\n <div class=\"col-sm-12 col-md-12\">\r\n <eqp-img-drawing [showCancelButton]=\"false\" [enableLoadAnotherImage]=\"false\" [enableRemoveImage]=\"false\"\r\n [src]=\"'data:'+ record[field.Name][0].FileContentType + ';base64,'+ record[field.Name][0].FileDataBase64\"\r\n [i18n]=\"i18n\" [showCancelButton]=\"false\" (save)=\"saveDrowning($event)\">\r\n </eqp-img-drawing>\r\n </div>\r\n </div>\r\n <div class=\"row mt-2 mb-1\">\r\n <div class=\"col-sm-12 text-right\">\r\n <button class=\"btn mat-raised-button\" (click)=\"closeImageDrowingDialog()\" type=\"button\">\r\n Annulla disegno\r\n </button>\r\n </div>\r\n </div>\r\n</ng-template> -->", styles: ["::ng-deep image-drawing>button{background-color:var(--primary)!important;color:#fff!important}.imageContainer .singleImage{margin-top:5px;display:block}\n"] }]
|
|
179
193
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.UtilityHelperService }]; }, propDecorators: { record: [{
|
|
180
194
|
type: Input
|
|
181
195
|
}], field: [{
|
|
@@ -186,4 +200,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
186
200
|
type: ViewChild,
|
|
187
201
|
args: ["dialogImageDrowing", { static: true }]
|
|
188
202
|
}] } });
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC10ZW1wbGF0ZS9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE4QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakksT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFHM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7QUFLbkY7Ozs7R0FJRztBQUNILE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLENBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUNoQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN4RCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFF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LFlBQVk7c0JBQXJCLE1BQU07Z0JBWTRDLGtCQUFrQjtzQkFBcEUsU0FBUzt1QkFBQyxvQkFBb0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW1hZ2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvaW1hZ2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IEF2YWlsYWJsZUltYWdlRXh0ZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvYXR0YWNobWVudEZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IElCYXNlRmllbGRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi8uLi9pbnRlcmZhY2VzL2lCYXNlRmllbGRDb21wb25lbnQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVXRpbGl0eUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91dGlsaXR5SGVscGVyLnNlcnZpY2VzJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBJMThuSW50ZXJmYWNlIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtaW1nLWRyYXdpbmcnO1xyXG5cclxuLyoqXHJcbiAqIE1ldG9kbyBwZXIgcmVjdXBlcmFyZSwgYSBwYXJ0aXJlIGRhIHVuIEJsb2IsIGxhIHN0cmluZ2EgY29udGVuZW50ZSBpbCBiYXNlNjQgZGVsIGZpbGUuXHJcbiAqIFVzYXRvIHBlciBwcmVuZGVyZSBpbCBiYXNlNjQgZGVsbCdpbW1hZ2luZSBkb3BvIGNoZSBsJ3V0ZW50ZSBjaSBoYSBkaXNlZ25hdG8gc29wcmEuXHJcbiAqIEBwYXJhbSBmaWxlIEJsb2IgY2hlIHJhcHByZXNlbnRhIGwnaW1tYWdpbmUuXHJcbiAqL1xyXG5jb25zdCB0b0Jhc2U2NCA9IGZpbGUgPT4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICByZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0LnRvU3RyaW5nKCkpO1xyXG4gIHJlYWRlci5vbmVycm9yID0gZXJyb3IgPT4gcmVqZWN0KGVycm9yKTtcclxufSk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2ltYWdlLWZpZWxkLXRlbXBsYXRlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEltYWdlRmllbGRUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBJQmFzZUZpZWxkQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZmllbGQ6IEltYWdlRmllbGQ7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgLy9wcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xyXG5cclxuICAvLyNyZWdpb24gUHJvcHJpZXTDoCBwZXIgY29uZmlndXJhcmUgaWwgY29tcG9uZW50ZSBuZ3gtaW1hZ2UtZHJhd2luZyBlIGFwcmlyZSBpbCByZWxhdGl2byBkaWFsb2cuXHJcbiAgcHVibGljIHdpZHRoID0gbnVsbDtcclxuICBwdWJsaWMgaGVpZ2h0ID0gbnVsbDtcclxuICBwdWJsaWMgaTE4bjogSTE4bkludGVyZmFjZSA9IHtcclxuICAgIHNhdmVCdG46ICdTYWx2YSBtb2RpZmljaGUnLFxyXG4gICAgY2FuY2VsQnRuOiAnUmljYXJpY2Egb3JpZ2luYWxlJ1xyXG4gIH07XHJcbiAgZGlhbG9nSW1hZ2VEcm93aW5nUmVmOiBNYXREaWFsb2dSZWY8VGVtcGxhdGVSZWY8YW55Pj47XHJcbiAgQFZpZXdDaGlsZChcImRpYWxvZ0ltYWdlRHJvd2luZ1wiLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dJbWFnZURyb3dpbmc6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHB1YmxpYyB1dGlsaXR5U2VydmljZTogVXRpbGl0eUhlbHBlclNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIFxyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkZvcm1Gb3JtR3JvdXAgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXA7XHJcblxyXG4gICAgaWYgKCF0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uQWxsb3dlZEV4dGVuc2lvbnMpIHtcclxuICAgICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkFsbG93ZWRFeHRlbnNpb25zID0gQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zLm1hcChleHQgPT4gZXh0LmtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLk5hbWUgPSB0aGlzLmZpZWxkLk5hbWU7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uTGFiZWwgPSB0aGlzLmZpZWxkLkxhYmVsO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkRlc2NyaXB0aW9uID0gdGhpcy5maWVsZC5EZXNjcmlwdGlvbjtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5SZXF1aXJlZCA9IHRoaXMuZmllbGQuUmVxdWlyZWQ7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uRm9ybXVsYSA9IHRoaXMuZmllbGQuRm9ybXVsYTtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5GaWVsZFZhbHVlID0gdGhpcy5maWVsZC5GaWVsZFZhbHVlO1xyXG5cclxuICAgIC8vIFNlIGlsIGNhbXBvIHByZXZlZGUgdW4naW1tYWdpbmUgcHJlLWNhcmljYXRhIChJbWFnZUlzQ29udGV4dHVhbEF0dGFjaG1lbnQgPT0gdHJ1ZSkgc3VsbGEgcXVhbGUgXHJcbiAgICAvLyBsJ3V0ZW50ZSBwdcOyIGRpc2VnbmFyZSAoRW5hYmxlRHJhd2luZyA9PSB0cnVlKSBlIG5vbiBzb25vIGluIG1vZGlmaWNhIGRpIHVuIHJlY29yZCAob3Z2ZXJvIG5lbCByZWNvcmRcclxuICAgIC8vIG5vbiBobyB1bidpbW1hZ2luZSBnacOgIHNhbHZhdGEpIGFsbG9yYSBpbXBvc3RhIGwnaW1tYWdpbmUgcHJlIGNhcmljYXRhIGNvbWUgdmFsb3JlIGluaXppYWxlXHJcbiAgICAvLyBuZWwgcmVjb3JkIGNvcnJlbnRlIGUgbmUgcmVjdXBlcmEgbGUgZGltZW5zaW9uaSBwZXIgdmlzdWFsaXp6YXJlIGNvcnJldHRhbWVudGUgbCdhcmVhIGluIGN1aSAgXHJcbiAgICAvLyBsJ3V0ZW50ZSBwdcOyIGRpc2VnbmFyZS4gU2Ugbm9uIGVmZmV0dHVhIG1vZGlmaWNoZSBvIG5vbiBzYWx2YSBpIGRpc2VnbmkgZmF0dGkgdmllbmUgc2FsdmF0YVxyXG4gICAgLy8gbCdpbW1hZ2luZSBvcmlnaW5hbGUuXHJcbiAgICBpZiAodGhpcy5maWVsZC5JbWFnZUlzQ29udGV4dHVhbEF0dGFjaG1lbnQgJiYgdGhpcy5maWVsZC5Db250ZXh0dWFsQXR0YWNobWVudCkge1xyXG4gICAgICBpZiAoIXRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gfHwgIUFycmF5LmlzQXJyYXkodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSkgfHwgISh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IFtKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuQ29udGV4dHVhbEF0dGFjaG1lbnQpKV07XHJcbiAgICAgIH1cclxuICAgIC8vICBpZih0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uTWV0YWRhdGFGaWVsZHMgIT0gdW5kZWZpbmVkKSBcclxuICAgIC8vICAgdGhpcy5wcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwID0gdGhpcy51dGlsaXR5U2VydmljZS5DcmVhdGVGb3JtRm9ybUdyb3VwKHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5NZXRhZGF0YUZpZWxkcywgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXSk7XHJcbiAgICAgIHRoaXMuZ2V0SW1hZ2VEaW1lbnNpb25zKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgfVxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIC8vIFNlIHZpZW5lIG1vZGlmaWNhdG8gaWwgdmFsb3JlIGRpIFwibmdNb2RlbElucHV0XCIgYWxsb3JhIGFnZ2lvcm5hIGwnaW5wdXRcclxuICAgIGlmIChjaGFuZ2VzWydyZWNvcmQnXSAhPSB1bmRlZmluZWQgJiYgY2hhbmdlc1sncmVjb3JkJ10uZmlyc3RDaGFuZ2UgPT0gZmFsc2UgJiYgSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlKSAhPSBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5wcmV2aW91c1ZhbHVlKSkge1xyXG4gICAgICB0aGlzLnJlY29yZCA9IGNoYW5nZXNbJ3JlY29yZCddLmN1cnJlbnRWYWx1ZTtcclxuICAgICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vIHVwZGF0ZU1ldGFkYXRhVmFsaWRpdHkoKSB7XHJcbiAgLy8gICBpZiAodGhpcy5wcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwLmludmFsaWQpIHtcclxuICAvLyAgICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0RXJyb3JzKHsgJ2luY29ycmVjdCc6IHRydWUgfSk7XHJcbiAgLy8gICB9IGVsc2Uge1xyXG4gIC8vICAgICB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuY29udHJvbHNbdGhpcy5maWVsZC5OYW1lXS5zZXRFcnJvcnMobnVsbCk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLm9uUmVjb3JkVmFsdWVDaGFuZ2UoKTtcclxuICAvLyB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGFnZ2lvcm5hcmUgaWwgdmFsb3JlIGRlbCBjYW1wbyBxdWFuZG8gcXVlc3RvIMOoIHJhcHByZXNlbnRhdG8gZGEgdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgdXBkYXRlRmllbGQoKSB7XHJcbiAgICBpZiAodGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLkZvcm11bGEsIHRoaXMucmVjb3JkLCBudWxsKTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpZWxkLlZpc2libGVJZikge1xyXG4gICAgICB0aGlzLmZpZWxkLkluTGlzdFZpZXcgPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLlZpc2libGVJZiwgdGhpcy5yZWNvcmQsIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHJlc2V0UHJlTG9hZGVkSW1hZ2UoKSB7XHJcbiAgICB0aGlzLndpZHRoID0gbnVsbDtcclxuICAgIHRoaXMuaGVpZ2h0ID0gbnVsbDtcclxuICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBbSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpZWxkLkNvbnRleHR1YWxBdHRhY2htZW50KSldO1xyXG4gICAgdGhpcy5nZXRJbWFnZURpbWVuc2lvbnMoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBpbnZvY2F0byBxdWFuZG8gdmVuZ29ubyBhZ2dpdW50aSBvIGVsaW1pbmF0aSBnbGkgYWxsZWdhdGkgbmVsIGNvbXBvbmVudGUgQXR0YWNobWVudEZpZWxkVGVtcGxhdGUuXHJcbiAgICogU2UgbCdJbWFnZUZpZWxkIMOoIGFiaWxpdGF0byBhbCBkaXNlZ25vIChFbmFibGVEcmF3aW5nID09IHRydWUpLCBub24gcGVybWV0dGUgYWxsZWdhdGkgbXVsdGlwbGkgKElzTXVsaXRBdHRhY2ggPT0gZmFsc2UpXHJcbiAgICogZSBuZWwgUmVjb3JkIGNvcnJlbnRlIMOoIHByZXNlbnRlIGwnaW1tYWdpbmUgY2FyaWNhdGEgZGFsbCd1dGVudGUgYWxsb3JhIHJlY3VwZXJhIGxlIGRpbWVuc2lvbmkgZGVsbCdpbW1hZ2luZSBlXHJcbiAgICogYXByZSBpbCBkaWFsb2cgY29uIGlsIGNvbXBvbmVudGUgaW1hZ2UtZHJhd2luZyBwZXIgcGVybWV0dGVyZSBpbCBkaXNlZ25vIHN1bGwnaW1tYWdpbmUgYXBwZW5hIGNhcmljYXRhLlxyXG4gICAqL1xyXG4gIG9uQXR0YWNobWVudHNDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5Jc011bHRpQXR0YWNoICYmIHRoaXMuZmllbGQuRW5hYmxlRHJhd2luZyAmJiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdICYmIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0pIHtcclxuICAgICAgdGhpcy5nZXRJbWFnZURpbWVuc2lvbnMoKTtcclxuICAgICAgdGhpcy5kaWFsb2dJbWFnZURyb3dpbmdSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nLCB7XHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICAgIHdpZHRoOiAnNzUlJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBpbnZvY2F0byBhbCBzYWx2YXRhZ2dpbyBkZWxsJ2ltbWFnaW5lIGRhbCBjb21wb25lbnRlIGltYWdlLWRyYXdpbmcuXHJcbiAgICogVHJhc2Zvcm1hIGlsIEJsb2IgcmljZXZ1dG8gaW4gdW4gYmFzZTY0LCBhZ2dpb3JuYSBpbCBGaWxlQ29udGV0VHlwZSBlIGlsIEZpbGVEYXRhQmFzZTY0XHJcbiAgICogZGVsbCdhbGxlZ2F0byBjYXJpY2F0byBlIGNoaXVkZSBpbCBkaWFsb2cgaW4gY3VpIGRpc2VnbmFyZS5cclxuICAgKiBAcGFyYW0gZHJhd25QaWN0dXJlIEJsb2IgZGVsbCdpbW1hZ2luZSBkaXNlZ25hdGEuXHJcbiAgICovXHJcbiAgYXN5bmMgc2F2ZURyb3duaW5nKGRyYXduUGljdHVyZTogQmxvYikge1xyXG4gICAgbGV0IGJhc2U2NEZpbGUgPSBhd2FpdCB0b0Jhc2U2NChkcmF3blBpY3R1cmUpO1xyXG4gICAgaWYgKGJhc2U2NEZpbGUpIHtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXS5GaWxlQ29udGVudFR5cGUgPSBiYXNlNjRGaWxlLnNwbGl0KFwiLFwiKVswXS5zcGxpdChcIjpcIilbMV0uc3BsaXQoXCI7XCIpWzBdO1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0ID0gYmFzZTY0RmlsZS5zcGxpdChcIixcIilbMV07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5kaWFsb2dJbWFnZURyb3dpbmdSZWYpIHtcclxuICAgICAgdGhpcy5jbG9zZUltYWdlRHJvd2luZ0RpYWxvZygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBjaGl1ZGVyZSBpbCBkaWFsb2cgaW4gY3VpIGRpc2VnbmFyZSBzdWxsJ2ltbWFnaW5lIGNhcmlhdGEgZSBzdnVvdGFyZSBsZSBkaW1lbnNpb25pLlxyXG4gICAqL1xyXG4gIGNsb3NlSW1hZ2VEcm93aW5nRGlhbG9nKCkge1xyXG4gICAgdGhpcy5kaWFsb2dJbWFnZURyb3dpbmdSZWYuY2xvc2UoKTtcclxuICAgIHRoaXMud2lkdGggPSBudWxsO1xyXG4gICAgdGhpcy5oZWlnaHQgPSBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciByZWN1cGVyYXJlIGxlIGRpbWVuc2lvbmkgZGVsbCdpbW1hZ2luZSBjYXJpY2F0YSBwZXIgbW9zdHJhcmUgY29ycmV0dGFtZW50ZVxyXG4gICAqIGlsIGNvbXBvbmVudGUgaW1hZ2UtZHJhd2luZy4gU2Ugbm9uIHZpZW5lIGVzZWd1aXRvIHF1ZXN0byBwYXNzYWdnaW8gbCdhcmVhIGluIGN1aSBkaXNlZ25hcmUgXHJcbiAgICogw6ggcGnDuSBncmFuZGUgZGVsbCdpbW1hZ2luZSBzdGVzc2EgZSBhbCBzYWx2YXRhZ2dpbyBpIHRyYXR0aSBkaXNlZ25hdGkgdmVuZ29ubyBzcG9zdGF0aS4gXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRJbWFnZURpbWVuc2lvbnMoKSB7XHJcbiAgICB2YXIgYmxvYjogQmxvYiA9IHRoaXMuZ2V0QmxvYkZyb21CYXNlNjQoKTtcclxuICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XHJcbiAgICByZWFkZXIub25sb2FkID0gKGU6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gICAgICBpbWFnZS5zcmMgPSBlLnRhcmdldC5yZXN1bHQ7XHJcbiAgICAgIGltYWdlLm9ubG9hZCA9IHJzID0+IHtcclxuICAgICAgICB0aGlzLmhlaWdodCA9IHJzLmN1cnJlbnRUYXJnZXRbJ2hlaWdodCddO1xyXG4gICAgICAgIHRoaXMud2lkdGggPSBycy5jdXJyZW50VGFyZ2V0Wyd3aWR0aCddO1xyXG4gICAgICB9O1xyXG4gICAgfTtcclxuICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBjb252ZXJ0aXJlIGlsIGJhc2U2NCBkaSB1bidpbW1hZ2luZSBpbiB1biBCbG9iLlxyXG4gICAqIE5lY2Vzc2FyaW8gcGVyIGlsIHJlY3VwZXJvIGRlbGxlIGRpbWVuc2lvbmkgZGVsbCdpbW1hZ2luZSBjYXJpY2F0YSBhIHBhcnRpcmUgZGFsIHN1byBiYXNlNjQuXHJcbiAgICogVmllbmUgZXNlZ3VpdG8gc29sbyBuZWwgY2FzbyBpbiBjdWkgbCdJbWFnZUZpZWxkIG5vbiBhbW1ldHRlIGFsbGVnYXRpIG11bHRpcGxpLlxyXG4gICAqIEByZXR1cm5zIFJlc3RpdHVpc2NlIGlsIEJsb2IgZGVsbCdpbW1hZ2luZSBjYXJpY2F0YS5cclxuICAgKi9cclxuICBwcml2YXRlIGdldEJsb2JGcm9tQmFzZTY0KCkge1xyXG4gICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0uRmlsZURhdGFCYXNlNjQpO1xyXG4gICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoYnl0ZUNoYXJhY3RlcnMubGVuZ3RoKTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgYnl0ZU51bWJlcnNbaV0gPSBieXRlQ2hhcmFjdGVycy5jaGFyQ29kZUF0KGkpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZU51bWJlcnMpO1xyXG4gICAgcmV0dXJuIG5ldyBCbG9iKFtieXRlQXJyYXldLCB7IHR5cGU6IHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBlbWV0dGVyZSBsJ2V2ZW50byBjaGUgaWwgdmFsb3JlIGRlbCByZWNvcmQgw6ggY2FtYmlhdG8uXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBvblJlY29yZFZhbHVlQ2hhbmdlKCkge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkLkZvcm11bGEpIHtcclxuICAgICAgdGhpcy5yZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgICB9XHJcbiAgfVxyXG59IiwiPCEtLSBWSVNVQUxJWlpBWklPTkUgQUxMRUdBVE8gUFJFIENBUklDQVRPIENPTiBQT1NTSUJJTElUQScgREkgRElTRUdOT1xyXG48ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJmaWVsZC5JbWFnZUlzQ29udGV4dHVhbEF0dGFjaG1lbnQgJiYgZmllbGQuQ29udGV4dHVhbEF0dGFjaG1lbnRcIj5cclxuICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC02IGNvbC1sZy00XCI+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAge3sgZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyBcIiAqXCIgOiBcIlwiKX19XHJcbiAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgTm9tZSBpbW1hZ2luZToge3sgZmllbGQuSW1nTmFtZX19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8ZXFwLWltZy1kcmF3aW5nXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQuRW5hYmxlRHJhd2luZyAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdICYmIHdpZHRoICE9IG51bGwgJiYgaGVpZ2h0ICE9IG51bGxcIlxyXG4gICAgICAgICAgICAgICBbc3JjXT1cIidkYXRhOicrIHJlY29yZFtmaWVsZC5OYW1lXVswXS5GaWxlQ29udGVudFR5cGUgKyAnO2Jhc2U2NCwnKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZURhdGFCYXNlNjRcIlxyXG4gICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiIFtlbmFibGVMb2FkQW5vdGhlckltYWdlXT1cImZhbHNlXCIgW2VuYWJsZVJlbW92ZUltYWdlXT1cImZhbHNlXCIgW3dpZHRoXT1cIndpZHRoXCJcclxuICAgICAgICAgICAgICAgW2hlaWdodF09XCJoZWlnaHRcIiBbaTE4bl09XCJpMThuXCIgW3Nob3dDYW5jZWxCdXR0b25dPVwidHJ1ZVwiIChzYXZlKT1cInNhdmVEcm93bmluZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGNhbmNlbCk9XCJyZXNldFByZUxvYWRlZEltYWdlKClcIj5cclxuICAgICAgICAgIDwvZXFwLWltZy1kcmF3aW5nPlxyXG5cclxuICAgICAgICAgIDxpbWcgKm5nSWY9XCIhZmllbGQuRW5hYmxlRHJhd2luZ1wiXHJcbiAgICAgICAgICAgICAgIFtzcmNdPVwiJ2RhdGE6JysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSsgJztiYXNlNjQsJysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0XCI+XHJcbiAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTYgY29sLWxnLThcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cImZpZWxkLkF0dGFjaERlZmluaXRpb24gJiYgZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5NZXRhZGF0YUZpZWxkcyAmJiBwcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nRm9yPVwibGV0IG1ldGFkYXRhIG9mIGZpZWxkLkF0dGFjaERlZmluaXRpb24uTWV0YWRhdGFGaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInV0aWxpdHlTZXJ2aWNlLmdldEZpZWxkU3lsZUNsYXNzKG1ldGFkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeW5hbWljLW1vZHVsZS1maWVsZC1maXggI2ZpZWxkVGVtcGxhdGUgW2ZpZWxkXT1cIm1ldGFkYXRhXCIgW2Zvcm1dPVwicHJlTG9hZGVkSW1hZ2VNZXRhZGF0YUZvcm1Hcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVjb3JkXT1cInJlY29yZFtmaWVsZC5OYW1lXVswXVwiIChyZWNvcmRDaGFuZ2UpPVwidXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keW5hbWljLW1vZHVsZS1maWVsZC1maXg+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgPC9kaXY+IC0tPlxyXG48IS0tIDwvZGl2PiAtLT5cclxuXHJcbjwhLS0gQ09NUE9ORU5URSBJTiBDVUkgQ0FSSUNBUkUgTlVPVkkgQUxMRUdBVEkgLS0+XHJcbjwhLS0gPGF0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZC5BdHRhY2hEZWZpbml0aW9uXCIgW29ubHlJbWFnZXNdPVwidHJ1ZVwiXHJcbiAgICAgKG9uQXR0YWNobWVudHNDaGFuZ2UpPVwib25BdHRhY2htZW50c0NoYW5nZSgpXCIgKm5nSWY9XCIhZmllbGQuSW1hZ2VJc0NvbnRleHR1YWxBdHRhY2htZW50XCI+XHJcbjwvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZT4gLS0+XHJcblxyXG48IS0tIERJQUxPRyBQRVIgRElTRUdOQVJFIFNVTCBOVU9WTyBBTExFR0FUTyBDQVJJQ0FUTyAtLT5cclxuPCEtLSA8bmctdGVtcGxhdGUgI2RpYWxvZ0ltYWdlRHJvd2luZz5cclxuICAgICA8ZGl2ICpuZ0lmPVwiZmllbGQuRW5hYmxlRHJhd2luZyAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdICYmIHdpZHRoICE9IG51bGwgJiYgaGVpZ2h0ICE9IG51bGxcIlxyXG4gICAgICAgICAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgIDxlcXAtaW1nLWRyYXdpbmcgW3Nob3dDYW5jZWxCdXR0b25dPVwiZmFsc2VcIiBbZW5hYmxlTG9hZEFub3RoZXJJbWFnZV09XCJmYWxzZVwiIFtlbmFibGVSZW1vdmVJbWFnZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCInZGF0YTonKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlICsgJztiYXNlNjQsJysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0XCJcclxuICAgICAgICAgICAgICAgICAgICBbaTE4bl09XCJpMThuXCIgW3Nob3dDYW5jZWxCdXR0b25dPVwiZmFsc2VcIiAoc2F2ZSk9XCJzYXZlRHJvd25pbmcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICA8L2VxcC1pbWctZHJhd2luZz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG4gICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMiBtYi0xXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtYXQtcmFpc2VkLWJ1dHRvblwiIChjbGljayk9XCJjbG9zZUltYWdlRHJvd2luZ0RpYWxvZygpXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEFubnVsbGEgZGlzZWdub1xyXG4gICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiAtLT4iXX0=
|
|
203
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL2ZpZWxkLXRlbXBsYXRlcy9pbWFnZS1maWVsZC10ZW1wbGF0ZS9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2ltYWdlLWZpZWxkLXRlbXBsYXRlL2ltYWdlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUE4QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLakksT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7Ozs7OztBQUtuRjs7OztHQUlHO0FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtJQUMvRCxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO0lBQ2hDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQyxD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Q0FBQyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7eUhBak1VLDJCQUEyQjs2R0FBM0IsMkJBQTJCLGtUQzNCeEMsMHlIQXNFa0I7NEZEM0NMLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSxzQkFBc0I7bUlBTXZCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFZNEMsa0JBQWtCO3NCQUFwRSxTQUFTO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWFnZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9pbWFnZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9hdHRhY2htZW50RmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEkxOG5JbnRlcmZhY2UgfSBmcm9tICdAZXFwcm9qZWN0L2VxcC1pbWctZHJhd2luZyc7XHJcblxyXG4vKipcclxuICogTWV0b2RvIHBlciByZWN1cGVyYXJlLCBhIHBhcnRpcmUgZGEgdW4gQmxvYiwgbGEgc3RyaW5nYSBjb250ZW5lbnRlIGlsIGJhc2U2NCBkZWwgZmlsZS5cclxuICogVXNhdG8gcGVyIHByZW5kZXJlIGlsIGJhc2U2NCBkZWxsJ2ltbWFnaW5lIGRvcG8gY2hlIGwndXRlbnRlIGNpIGhhIGRpc2VnbmF0byBzb3ByYS5cclxuICogQHBhcmFtIGZpbGUgQmxvYiBjaGUgcmFwcHJlc2VudGEgbCdpbW1hZ2luZS5cclxuICovXHJcbmNvbnN0IHRvQmFzZTY0ID0gZmlsZSA9PiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xyXG4gIHJlYWRlci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQudG9TdHJpbmcoKSk7XHJcbiAgcmVhZGVyLm9uZXJyb3IgPSBlcnJvciA9PiByZWplY3QoZXJyb3IpO1xyXG59KTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaW1hZ2UtZmllbGQtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaW1hZ2UtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW1hZ2VGaWVsZFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIElCYXNlRmllbGRDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSByZWNvcmQ6IFJlY29yZDtcclxuICBASW5wdXQoKSBmaWVsZDogSW1hZ2VGaWVsZDtcclxuICBAT3V0cHV0KCkgcmVjb3JkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UmVjb3JkPiA9IG5ldyBFdmVudEVtaXR0ZXI8UmVjb3JkPigpO1xyXG5cclxuICAvL3ByZUxvYWRlZEltYWdlTWV0YWRhdGFGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIC8vI3JlZ2lvbiBQcm9wcmlldMOgIHBlciBjb25maWd1cmFyZSBpbCBjb21wb25lbnRlIG5neC1pbWFnZS1kcmF3aW5nIGUgYXByaXJlIGlsIHJlbGF0aXZvIGRpYWxvZy5cclxuICBwdWJsaWMgd2lkdGggPSBudWxsO1xyXG4gIHB1YmxpYyBoZWlnaHQgPSBudWxsO1xyXG4gIHB1YmxpYyBpMThuOiBJMThuSW50ZXJmYWNlID0ge1xyXG4gICAgc2F2ZUJ0bjogJ1NhbHZhIG1vZGlmaWNoZScsXHJcbiAgICBjYW5jZWxCdG46ICdSaWNhcmljYSBvcmlnaW5hbGUnXHJcbiAgfTtcclxuICBkaWFsb2dJbWFnZURyb3dpbmdSZWY6IE1hdERpYWxvZ1JlZjxUZW1wbGF0ZVJlZjxhbnk+PjtcclxuICBAVmlld0NoaWxkKFwiZGlhbG9nSW1hZ2VEcm93aW5nXCIsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZ0ltYWdlRHJvd2luZzogVGVtcGxhdGVSZWY8YW55PjtcclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHVibGljIHV0aWxpdHlTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgXHJcbiAgICAvKlxyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkZvcm1Gb3JtR3JvdXAgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXA7XHJcblxyXG4gICAgaWYgKCF0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uQWxsb3dlZEV4dGVuc2lvbnMpIHtcclxuICAgICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkFsbG93ZWRFeHRlbnNpb25zID0gQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zLm1hcChleHQgPT4gZXh0LmtleSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLk5hbWUgPSB0aGlzLmZpZWxkLk5hbWU7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uTGFiZWwgPSB0aGlzLmZpZWxkLkxhYmVsO1xyXG4gICAgdGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLkRlc2NyaXB0aW9uID0gdGhpcy5maWVsZC5EZXNjcmlwdGlvbjtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5SZXF1aXJlZCA9IHRoaXMuZmllbGQuUmVxdWlyZWQ7XHJcbiAgICB0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uRm9ybXVsYSA9IHRoaXMuZmllbGQuRm9ybXVsYTtcclxuICAgIHRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5GaWVsZFZhbHVlID0gdGhpcy5maWVsZC5GaWVsZFZhbHVlO1xyXG4gICAgKi9cclxuXHJcbiAgICAvLyBTZSBpbCBjYW1wbyBwcmV2ZWRlIHVuJ2ltbWFnaW5lIHByZS1jYXJpY2F0YSAoSW1hZ2VJc0NvbnRleHR1YWxBdHRhY2htZW50ID09IHRydWUpIHN1bGxhIHF1YWxlIFxyXG4gICAgLy8gbCd1dGVudGUgcHXDsiBkaXNlZ25hcmUgKEVuYWJsZURyYXdpbmcgPT0gdHJ1ZSkgZSBub24gc29ubyBpbiBtb2RpZmljYSBkaSB1biByZWNvcmQgKG92dmVybyBuZWwgcmVjb3JkXHJcbiAgICAvLyBub24gaG8gdW4naW1tYWdpbmUgZ2nDoCBzYWx2YXRhKSBhbGxvcmEgaW1wb3N0YSBsJ2ltbWFnaW5lIHByZSBjYXJpY2F0YSBjb21lIHZhbG9yZSBpbml6aWFsZVxyXG4gICAgLy8gbmVsIHJlY29yZCBjb3JyZW50ZSBlIG5lIHJlY3VwZXJhIGxlIGRpbWVuc2lvbmkgcGVyIHZpc3VhbGl6emFyZSBjb3JyZXR0YW1lbnRlIGwnYXJlYSBpbiBjdWkgIFxyXG4gICAgLy8gbCd1dGVudGUgcHXDsiBkaXNlZ25hcmUuIFNlIG5vbiBlZmZldHR1YSBtb2RpZmljaGUgbyBub24gc2FsdmEgaSBkaXNlZ25pIGZhdHRpIHZpZW5lIHNhbHZhdGFcclxuICAgIC8vIGwnaW1tYWdpbmUgb3JpZ2luYWxlLlxyXG5cclxuICAgIC8qXHJcbiAgICBpZiAodGhpcy5maWVsZC5JbWFnZUlzQ29udGV4dHVhbEF0dGFjaG1lbnQgJiYgdGhpcy5maWVsZC5Db250ZXh0dWFsQXR0YWNobWVudCkge1xyXG4gICAgICBpZiAoIXRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gfHwgIUFycmF5LmlzQXJyYXkodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSkgfHwgISh0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IFtKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuZmllbGQuQ29udGV4dHVhbEF0dGFjaG1lbnQpKV07XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAvLyAgaWYodGhpcy5maWVsZC5BdHRhY2hEZWZpbml0aW9uLk1ldGFkYXRhRmllbGRzICE9IHVuZGVmaW5lZCkgXHJcbiAgICAvLyAgIHRoaXMucHJlTG9hZGVkSW1hZ2VNZXRhZGF0YUZvcm1Hcm91cCA9IHRoaXMudXRpbGl0eVNlcnZpY2UuQ3JlYXRlRm9ybUZvcm1Hcm91cCh0aGlzLmZpZWxkLkF0dGFjaERlZmluaXRpb24uTWV0YWRhdGFGaWVsZHMsIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0pO1xyXG4gICAgICB0aGlzLmdldEltYWdlRGltZW5zaW9ucygpO1xyXG4gICAgfVxyXG5cclxuICAgICovXHJcblxyXG4gICAgY29uc29sZS5sb2coXCJyZWNvcmRmaWVsZFwiLHRoaXMucmVjb3JkLHRoaXMuZmllbGQpO1xyXG5cclxuICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSB0aGlzLmZpZWxkLkR5bkF0dGFjaG1lbnRJRDtcclxuICAgIHRoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gIH1cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICAvLyBTZSB2aWVuZSBtb2RpZmljYXRvIGlsIHZhbG9yZSBkaSBcIm5nTW9kZWxJbnB1dFwiIGFsbG9yYSBhZ2dpb3JuYSBsJ2lucHV0XHJcbiAgICBpZiAoY2hhbmdlc1sncmVjb3JkJ10gIT0gdW5kZWZpbmVkICYmIGNoYW5nZXNbJ3JlY29yZCddLmZpcnN0Q2hhbmdlID09IGZhbHNlICYmIEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLmN1cnJlbnRWYWx1ZSkgIT0gSlNPTi5zdHJpbmdpZnkoY2hhbmdlc1sncmVjb3JkJ10ucHJldmlvdXNWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5yZWNvcmQgPSBjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWU7XHJcbiAgICAgIHRoaXMudXBkYXRlRmllbGQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvLyB1cGRhdGVNZXRhZGF0YVZhbGlkaXR5KCkge1xyXG4gIC8vICAgaWYgKHRoaXMucHJlTG9hZGVkSW1hZ2VNZXRhZGF0YUZvcm1Hcm91cC5pbnZhbGlkKSB7XHJcbiAgLy8gICAgIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cC5jb250cm9sc1t0aGlzLmZpZWxkLk5hbWVdLnNldEVycm9ycyh7ICdpbmNvcnJlY3QnOiB0cnVlIH0pO1xyXG4gIC8vICAgfSBlbHNlIHtcclxuICAvLyAgICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0RXJyb3JzKG51bGwpO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgLy8gfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIHBlciBhZ2dpb3JuYXJlIGlsIHZhbG9yZSBkZWwgY2FtcG8gcXVhbmRvIHF1ZXN0byDDqCByYXBwcmVzZW50YXRvIGRhIHVuYSBmb3JtdWxhLlxyXG4gICAqL1xyXG4gIHVwZGF0ZUZpZWxkKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5Gb3JtdWxhLCB0aGlzLnJlY29yZCwgbnVsbCk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5maWVsZC5WaXNpYmxlSWYpIHtcclxuICAgICAgdGhpcy5maWVsZC5Jbkxpc3RWaWV3ID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5WaXNpYmxlSWYsIHRoaXMucmVjb3JkLCBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICByZXNldFByZUxvYWRlZEltYWdlKCkge1xyXG4gICAgdGhpcy53aWR0aCA9IG51bGw7XHJcbiAgICB0aGlzLmhlaWdodCA9IG51bGw7XHJcbiAgICAvKnRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBbSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmZpZWxkLkNvbnRleHR1YWxBdHRhY2htZW50KSldOyovXHJcbiAgICB0aGlzLmdldEltYWdlRGltZW5zaW9ucygpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTWV0b2RvIGludm9jYXRvIHF1YW5kbyB2ZW5nb25vIGFnZ2l1bnRpIG8gZWxpbWluYXRpIGdsaSBhbGxlZ2F0aSBuZWwgY29tcG9uZW50ZSBBdHRhY2htZW50RmllbGRUZW1wbGF0ZS5cclxuICAgKiBTZSBsJ0ltYWdlRmllbGQgw6ggYWJpbGl0YXRvIGFsIGRpc2Vnbm8gKEVuYWJsZURyYXdpbmcgPT0gdHJ1ZSksIG5vbiBwZXJtZXR0ZSBhbGxlZ2F0aSBtdWx0aXBsaSAoSXNNdWxpdEF0dGFjaCA9PSBmYWxzZSlcclxuICAgKiBlIG5lbCBSZWNvcmQgY29ycmVudGUgw6ggcHJlc2VudGUgbCdpbW1hZ2luZSBjYXJpY2F0YSBkYWxsJ3V0ZW50ZSBhbGxvcmEgcmVjdXBlcmEgbGUgZGltZW5zaW9uaSBkZWxsJ2ltbWFnaW5lIGVcclxuICAgKiBhcHJlIGlsIGRpYWxvZyBjb24gaWwgY29tcG9uZW50ZSBpbWFnZS1kcmF3aW5nIHBlciBwZXJtZXR0ZXJlIGlsIGRpc2Vnbm8gc3VsbCdpbW1hZ2luZSBhcHBlbmEgY2FyaWNhdGEuXHJcbiAgICovXHJcbiAgb25BdHRhY2htZW50c0NoYW5nZSgpIHtcclxuICAgIC8qXHJcbiAgICBpZiAoIXRoaXMuZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5Jc011bHRpQXR0YWNoICYmIHRoaXMuZmllbGQuRW5hYmxlRHJhd2luZyAmJiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdICYmIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0pIHtcclxuICAgICAgdGhpcy5nZXRJbWFnZURpbWVuc2lvbnMoKTtcclxuICAgICAgdGhpcy5kaWFsb2dJbWFnZURyb3dpbmdSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nLCB7XHJcbiAgICAgICAgZGlzYWJsZUNsb3NlOiB0cnVlLFxyXG4gICAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxyXG4gICAgICAgIHdpZHRoOiAnNzUlJ1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgICovXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gYWwgc2FsdmF0YWdnaW8gZGVsbCdpbW1hZ2luZSBkYWwgY29tcG9uZW50ZSBpbWFnZS1kcmF3aW5nLlxyXG4gICAqIFRyYXNmb3JtYSBpbCBCbG9iIHJpY2V2dXRvIGluIHVuIGJhc2U2NCwgYWdnaW9ybmEgaWwgRmlsZUNvbnRldFR5cGUgZSBpbCBGaWxlRGF0YUJhc2U2NFxyXG4gICAqIGRlbGwnYWxsZWdhdG8gY2FyaWNhdG8gZSBjaGl1ZGUgaWwgZGlhbG9nIGluIGN1aSBkaXNlZ25hcmUuXHJcbiAgICogQHBhcmFtIGRyYXduUGljdHVyZSBCbG9iIGRlbGwnaW1tYWdpbmUgZGlzZWduYXRhLlxyXG4gICAqL1xyXG4gIGFzeW5jIHNhdmVEcm93bmluZyhkcmF3blBpY3R1cmU6IEJsb2IpIHtcclxuICAgIGxldCBiYXNlNjRGaWxlID0gYXdhaXQgdG9CYXNlNjQoZHJhd25QaWN0dXJlKTtcclxuICAgIGlmIChiYXNlNjRGaWxlKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlID0gYmFzZTY0RmlsZS5zcGxpdChcIixcIilbMF0uc3BsaXQoXCI6XCIpWzFdLnNwbGl0KFwiO1wiKVswXTtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXVswXS5GaWxlRGF0YUJhc2U2NCA9IGJhc2U2NEZpbGUuc3BsaXQoXCIsXCIpWzFdO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmKSB7XHJcbiAgICAgIHRoaXMuY2xvc2VJbWFnZURyb3dpbmdEaWFsb2coKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY2hpdWRlcmUgaWwgZGlhbG9nIGluIGN1aSBkaXNlZ25hcmUgc3VsbCdpbW1hZ2luZSBjYXJpYXRhIGUgc3Z1b3RhcmUgbGUgZGltZW5zaW9uaS5cclxuICAgKi9cclxuICBjbG9zZUltYWdlRHJvd2luZ0RpYWxvZygpIHtcclxuICAgIHRoaXMuZGlhbG9nSW1hZ2VEcm93aW5nUmVmLmNsb3NlKCk7XHJcbiAgICB0aGlzLndpZHRoID0gbnVsbDtcclxuICAgIHRoaXMuaGVpZ2h0ID0gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgcmVjdXBlcmFyZSBsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEgcGVyIG1vc3RyYXJlIGNvcnJldHRhbWVudGVcclxuICAgKiBpbCBjb21wb25lbnRlIGltYWdlLWRyYXdpbmcuIFNlIG5vbiB2aWVuZSBlc2VndWl0byBxdWVzdG8gcGFzc2FnZ2lvIGwnYXJlYSBpbiBjdWkgZGlzZWduYXJlIFxyXG4gICAqIMOoIHBpw7kgZ3JhbmRlIGRlbGwnaW1tYWdpbmUgc3Rlc3NhIGUgYWwgc2FsdmF0YWdnaW8gaSB0cmF0dGkgZGlzZWduYXRpIHZlbmdvbm8gc3Bvc3RhdGkuIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgZ2V0SW1hZ2VEaW1lbnNpb25zKCkge1xyXG4gICAgdmFyIGJsb2I6IEJsb2IgPSB0aGlzLmdldEJsb2JGcm9tQmFzZTY0KCk7XHJcbiAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgcmVhZGVyLm9ubG9hZCA9IChlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICAgICAgaW1hZ2Uuc3JjID0gZS50YXJnZXQucmVzdWx0O1xyXG4gICAgICBpbWFnZS5vbmxvYWQgPSBycyA9PiB7XHJcbiAgICAgICAgdGhpcy5oZWlnaHQgPSBycy5jdXJyZW50VGFyZ2V0WydoZWlnaHQnXTtcclxuICAgICAgICB0aGlzLndpZHRoID0gcnMuY3VycmVudFRhcmdldFsnd2lkdGgnXTtcclxuICAgICAgfTtcclxuICAgIH07XHJcbiAgICByZWFkZXIucmVhZEFzRGF0YVVSTChibG9iKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgY29udmVydGlyZSBpbCBiYXNlNjQgZGkgdW4naW1tYWdpbmUgaW4gdW4gQmxvYi5cclxuICAgKiBOZWNlc3NhcmlvIHBlciBpbCByZWN1cGVybyBkZWxsZSBkaW1lbnNpb25pIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEgYSBwYXJ0aXJlIGRhbCBzdW8gYmFzZTY0LlxyXG4gICAqIFZpZW5lIGVzZWd1aXRvIHNvbG8gbmVsIGNhc28gaW4gY3VpIGwnSW1hZ2VGaWVsZCBub24gYW1tZXR0ZSBhbGxlZ2F0aSBtdWx0aXBsaS5cclxuICAgKiBAcmV0dXJucyBSZXN0aXR1aXNjZSBpbCBCbG9iIGRlbGwnaW1tYWdpbmUgY2FyaWNhdGEuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBnZXRCbG9iRnJvbUJhc2U2NCgpIHtcclxuICAgIGNvbnN0IGJ5dGVDaGFyYWN0ZXJzID0gYXRvYih0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0KTtcclxuICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGJ5dGVOdW1iZXJzW2ldID0gYnl0ZUNoYXJhY3RlcnMuY2hhckNvZGVBdChpKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGJ5dGVBcnJheSA9IG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKTtcclxuICAgIHJldHVybiBuZXcgQmxvYihbYnl0ZUFycmF5XSwgeyB0eXBlOiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgZW1ldHRlcmUgbCdldmVudG8gY2hlIGlsIHZhbG9yZSBkZWwgcmVjb3JkIMOoIGNhbWJpYXRvLlxyXG4gICAqL1xyXG4gIHByaXZhdGUgb25SZWNvcmRWYWx1ZUNoYW5nZSgpIHtcclxuICAgIGlmICghdGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkQ2hhbmdlLmVtaXQodGhpcy5yZWNvcmQpO1xyXG4gICAgfVxyXG4gIH1cclxufSIsIjxkaXYgY2xhc3M9XCJyb3cgaW1hZ2VDb250YWluZXJcIj5cclxuICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICA8bWF0LWxhYmVsPiB7e2ZpZWxkLkRlc2NyaXB0aW9ufX0gPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICA8aW1nICpuZ0lmPVwiZmllbGQuRHluQXR0YWNobWVudFwiXHJcbiAgICAgICAgICBzcmM9XCJkYXRhOnt7ZmllbGQuRHluQXR0YWNobWVudC5GaWxlQ29udGVudFR5cGV9fTtiYXNlNjQse3tmaWVsZC5EeW5BdHRhY2htZW50LkZpbGVEYXRhQmFzZTY0fX1cIlxyXG4gICAgICAgICAgW2hlaWdodF09XCJmaWVsZC5EeW5BdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4ICE9IG51bGwgPyBmaWVsZC5EeW5BdHRhY2htZW50LlJlc2l6ZWRJbWFnZUhlaWdodFB4IDogMTI4XCJcclxuICAgICAgICAgIGNsYXNzPVwic2luZ2xlSW1hZ2VcIj5cclxuICAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcblxyXG5cclxuPCEtLSBWSVNVQUxJWlpBWklPTkUgQUxMRUdBVE8gUFJFIENBUklDQVRPIENPTiBQT1NTSUJJTElUQScgREkgRElTRUdOT1xyXG48ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCJmaWVsZC5JbWFnZUlzQ29udGV4dHVhbEF0dGFjaG1lbnQgJiYgZmllbGQuQ29udGV4dHVhbEF0dGFjaG1lbnRcIj5cclxuICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC02IGNvbC1sZy00XCI+XHJcbiAgICAgICAgICA8cCBjbGFzcz1cIm1iLTJcIj5cclxuICAgICAgICAgICAgICAge3sgZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyBcIiAqXCIgOiBcIlwiKX19XHJcbiAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgTm9tZSBpbW1hZ2luZToge3sgZmllbGQuSW1nTmFtZX19XHJcbiAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICA8ZXFwLWltZy1kcmF3aW5nXHJcbiAgICAgICAgICAgICAgICpuZ0lmPVwiZmllbGQuRW5hYmxlRHJhd2luZyAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdICYmIHdpZHRoICE9IG51bGwgJiYgaGVpZ2h0ICE9IG51bGxcIlxyXG4gICAgICAgICAgICAgICBbc3JjXT1cIidkYXRhOicrIHJlY29yZFtmaWVsZC5OYW1lXVswXS5GaWxlQ29udGVudFR5cGUgKyAnO2Jhc2U2NCwnKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZURhdGFCYXNlNjRcIlxyXG4gICAgICAgICAgICAgICBbc2hvd0NhbmNlbEJ1dHRvbl09XCJmYWxzZVwiIFtlbmFibGVMb2FkQW5vdGhlckltYWdlXT1cImZhbHNlXCIgW2VuYWJsZVJlbW92ZUltYWdlXT1cImZhbHNlXCIgW3dpZHRoXT1cIndpZHRoXCJcclxuICAgICAgICAgICAgICAgW2hlaWdodF09XCJoZWlnaHRcIiBbaTE4bl09XCJpMThuXCIgW3Nob3dDYW5jZWxCdXR0b25dPVwidHJ1ZVwiIChzYXZlKT1cInNhdmVEcm93bmluZygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgKGNhbmNlbCk9XCJyZXNldFByZUxvYWRlZEltYWdlKClcIj5cclxuICAgICAgICAgIDwvZXFwLWltZy1kcmF3aW5nPlxyXG5cclxuICAgICAgICAgIDxpbWcgKm5nSWY9XCIhZmllbGQuRW5hYmxlRHJhd2luZ1wiXHJcbiAgICAgICAgICAgICAgIFtzcmNdPVwiJ2RhdGE6JysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVDb250ZW50VHlwZSsgJztiYXNlNjQsJysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0XCI+XHJcbiAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTYgY29sLWxnLThcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIlxyXG4gICAgICAgICAgICAgICAqbmdJZj1cImZpZWxkLkF0dGFjaERlZmluaXRpb24gJiYgZmllbGQuQXR0YWNoRGVmaW5pdGlvbi5NZXRhZGF0YUZpZWxkcyAmJiBwcmVMb2FkZWRJbWFnZU1ldGFkYXRhRm9ybUdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKm5nRm9yPVwibGV0IG1ldGFkYXRhIG9mIGZpZWxkLkF0dGFjaERlZmluaXRpb24uTWV0YWRhdGFGaWVsZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInV0aWxpdHlTZXJ2aWNlLmdldEZpZWxkU3lsZUNsYXNzKG1ldGFkYXRhKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkeW5hbWljLW1vZHVsZS1maWVsZC1maXggI2ZpZWxkVGVtcGxhdGUgW2ZpZWxkXT1cIm1ldGFkYXRhXCIgW2Zvcm1dPVwicHJlTG9hZGVkSW1hZ2VNZXRhZGF0YUZvcm1Hcm91cFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVjb3JkXT1cInJlY29yZFtmaWVsZC5OYW1lXVswXVwiIChyZWNvcmRDaGFuZ2UpPVwidXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9keW5hbWljLW1vZHVsZS1maWVsZC1maXg+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgPC9kaXY+IC0tPlxyXG48IS0tIDwvZGl2PiAtLT5cclxuXHJcbjwhLS0gQ09NUE9ORU5URSBJTiBDVUkgQ0FSSUNBUkUgTlVPVkkgQUxMRUdBVEkgLS0+XHJcbjwhLS0gPGF0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUgWyhyZWNvcmQpXT1cInJlY29yZFwiIFtmaWVsZF09XCJmaWVsZC5BdHRhY2hEZWZpbml0aW9uXCIgW29ubHlJbWFnZXNdPVwidHJ1ZVwiXHJcbiAgICAgKG9uQXR0YWNobWVudHNDaGFuZ2UpPVwib25BdHRhY2htZW50c0NoYW5nZSgpXCIgKm5nSWY9XCIhZmllbGQuSW1hZ2VJc0NvbnRleHR1YWxBdHRhY2htZW50XCI+XHJcbjwvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZT4gLS0+XHJcblxyXG48IS0tIERJQUxPRyBQRVIgRElTRUdOQVJFIFNVTCBOVU9WTyBBTExFR0FUTyBDQVJJQ0FUTyAtLT5cclxuPCEtLSA8bmctdGVtcGxhdGUgI2RpYWxvZ0ltYWdlRHJvd2luZz5cclxuICAgICA8ZGl2ICpuZ0lmPVwiZmllbGQuRW5hYmxlRHJhd2luZyAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdICYmIHdpZHRoICE9IG51bGwgJiYgaGVpZ2h0ICE9IG51bGxcIlxyXG4gICAgICAgICAgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTEyXCI+XHJcbiAgICAgICAgICAgICAgIDxlcXAtaW1nLWRyYXdpbmcgW3Nob3dDYW5jZWxCdXR0b25dPVwiZmFsc2VcIiBbZW5hYmxlTG9hZEFub3RoZXJJbWFnZV09XCJmYWxzZVwiIFtlbmFibGVSZW1vdmVJbWFnZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3NyY109XCInZGF0YTonKyByZWNvcmRbZmllbGQuTmFtZV1bMF0uRmlsZUNvbnRlbnRUeXBlICsgJztiYXNlNjQsJysgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdLkZpbGVEYXRhQmFzZTY0XCJcclxuICAgICAgICAgICAgICAgICAgICBbaTE4bl09XCJpMThuXCIgW3Nob3dDYW5jZWxCdXR0b25dPVwiZmFsc2VcIiAoc2F2ZSk9XCJzYXZlRHJvd25pbmcoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICA8L2VxcC1pbWctZHJhd2luZz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG4gICAgIDxkaXYgY2xhc3M9XCJyb3cgbXQtMiBtYi0xXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIHRleHQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBtYXQtcmFpc2VkLWJ1dHRvblwiIChjbGljayk9XCJjbG9zZUltYWdlRHJvd2luZ0RpYWxvZygpXCIgdHlwZT1cImJ1dHRvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIEFubnVsbGEgZGlzZWdub1xyXG4gICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiAtLT4iXX0=
|