@eqproject/eqp-dynamic-module 2.10.99 → 2.10.101

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.
Files changed (61) hide show
  1. package/README.md +887 -876
  2. package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +25 -25
  3. package/esm2020/lib/components/private/action-button-creator/action-button-creator.component.mjs +3 -3
  4. package/esm2020/lib/components/private/add-form-field/add-form-field.component.mjs +14 -14
  5. package/esm2020/lib/components/private/add-formula-field/add-formula-field.component.mjs +7 -7
  6. package/esm2020/lib/components/private/dbg-templates/list-value-dbg-template/list-value-dbg-template.component.mjs +3 -3
  7. package/esm2020/lib/components/private/dbgetter/dbgetter.component.mjs +5 -5
  8. package/esm2020/lib/components/private/dynamic-module-field-extra-fix/dynamic-module-field-extra-fix.component.mjs +5 -5
  9. package/esm2020/lib/components/private/field-templates/action-button-field-template/action-button-field-template.component.mjs +5 -5
  10. package/esm2020/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.mjs +10 -10
  11. package/esm2020/lib/components/private/field-templates/date-field-template/date-field-template.component.mjs +2 -2
  12. package/esm2020/lib/components/private/field-templates/list-value-field-template/list-value-field-template.component.mjs +3 -3
  13. package/esm2020/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.mjs +16 -9
  14. package/esm2020/lib/components/private/field-templates/text-field-template/text-field-template.component.mjs +6 -6
  15. package/esm2020/lib/components/private/field-templates/textarea-field-template/textarea-field-template.component.mjs +6 -6
  16. package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +5 -5
  17. package/esm2020/lib/components/private/form-records/hlist-form-record/hlist-form-record.component.mjs +5 -5
  18. package/esm2020/lib/components/private/form-records/list-form-record/list-form-record.component.mjs +10 -10
  19. package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +10 -10
  20. package/esm2020/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +32 -9
  21. package/esm2020/lib/components/private/form-statistics/filter-templates/boolean-filter-template/boolean-filter-template.component.mjs +7 -7
  22. package/esm2020/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.mjs +8 -8
  23. package/esm2020/lib/components/private/form-statistics/filter-templates/image-selector-filter-template/image-selector-filter-template.component.mjs +3 -3
  24. package/esm2020/lib/components/private/form-statistics/filter-templates/list-value-filter-template/list-value-filter-template.component.mjs +6 -6
  25. package/esm2020/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.mjs +17 -10
  26. package/esm2020/lib/components/private/form-statistics/filter-templates/text-filter-template/text-filter-template.component.mjs +7 -7
  27. package/esm2020/lib/components/private/form-statistics/filter-templates/textarea-filter-template/textarea-filter-template.component.mjs +7 -7
  28. package/esm2020/lib/components/private/graphs/graphs.component.mjs +3 -3
  29. package/esm2020/lib/components/private/tmw-image-drawer/tmw-image-drawer.component.mjs +5 -5
  30. package/esm2020/lib/components/private/tmw-image-marker/tmw-image-marker.component.mjs +6 -6
  31. package/esm2020/lib/components/private/trigger-creator/trigger-creator.component.mjs +8 -10
  32. package/esm2020/lib/components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component.mjs +3 -3
  33. package/esm2020/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.mjs +4 -4
  34. package/esm2020/lib/components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component.mjs +3 -3
  35. package/esm2020/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.mjs +13 -6
  36. package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +7 -7
  37. package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +7 -7
  38. package/esm2020/lib/eqp-dynamic-module.module.mjs +18 -40
  39. package/esm2020/lib/models/dynAttachment.mjs +1 -1
  40. package/esm2020/lib/utils/google-fonts-injector.mjs +1 -1
  41. package/fesm2015/eqproject-eqp-dynamic-module.mjs +227 -205
  42. package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
  43. package/fesm2020/eqproject-eqp-dynamic-module.mjs +226 -205
  44. package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
  45. package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +8 -8
  46. package/lib/components/private/add-form-field/add-form-field.component.d.ts +9 -9
  47. package/lib/components/private/field-templates/attachment-field-template/attachment-field-template.component.d.ts +2 -2
  48. package/lib/components/private/field-templates/date-field-template/date-field-template.component.d.ts +1 -1
  49. package/lib/components/private/field-templates/numeric-field-template/numeric-field-template.component.d.ts +2 -2
  50. package/lib/components/private/form-records/hlist-form-record/hlist-form-record.component.d.ts +2 -2
  51. package/lib/components/private/form-records/list-form-record/list-form-record.component.d.ts +2 -2
  52. package/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.d.ts +2 -2
  53. package/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.d.ts +4 -3
  54. package/lib/components/private/form-statistics/filter-templates/date-filter-template/date-filter-template.component.d.ts +1 -1
  55. package/lib/components/private/form-statistics/filter-templates/numeric-filter-template/numeric-filter-template.component.d.ts +2 -2
  56. package/lib/components/private/trigger-creator/trigger-creator.component.d.ts +0 -2
  57. package/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.d.ts +1 -1
  58. package/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.d.ts +2 -2
  59. package/lib/eqp-dynamic-module.module.d.ts +8 -25
  60. package/lib/models/dynAttachment.d.ts +2 -2
  61. package/package.json +6 -13
@@ -3,8 +3,8 @@ import { FireTrigger, Trigger, TriggerPropertyTypeEnum } from '../../../../model
3
3
  import { UtilityHelperService } from '../../../../services/utilityHelper.services';
4
4
  import { GlobalService } from '../../../../services/global.service';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/material/icon";
7
- import * as i2 from "@angular/common";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "tmw-icons";
8
8
  const ELEMENT_SELECTORS = {
9
9
  Container: ' button.btn',
10
10
  Icona: ' button.btn mat-icon',
@@ -174,10 +174,10 @@ export class ActionButtonFieldTemplateComponent {
174
174
  }
175
175
  }
176
176
  ActionButtonFieldTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActionButtonFieldTemplateComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
177
- ActionButtonFieldTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ActionButtonFieldTemplateComponent, selector: "action-button-field-template", inputs: { field: "field", record: "record", formulaObject: "formulaObject", inConfig: "inConfig", styleVersion: "styleVersion", forceState: "forceState" }, outputs: { fireTrigger: "fireTrigger", recordChange: "recordChange" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"{{fieldUid}}\">\r\n <button class=\"btn btn-primary\" (click)=\"generateAction(field)\">\r\n <mat-icon *ngIf=\"field.Icon\">{{field.Icon}}</mat-icon>\r\n <span class=\"btn-label\">{{field.ButtonLabel}}</span>\r\n </button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
177
+ ActionButtonFieldTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: ActionButtonFieldTemplateComponent, selector: "action-button-field-template", inputs: { field: "field", record: "record", formulaObject: "formulaObject", inConfig: "inConfig", styleVersion: "styleVersion", forceState: "forceState" }, outputs: { fireTrigger: "fireTrigger", recordChange: "recordChange" }, usesOnChanges: true, ngImport: i0, template: "<div id=\"{{fieldUid}}\">\r\n <button class=\"btn btn-primary\" (click)=\"generateAction(field)\">\r\n <tmw-icon class=\"mat-icon\" *ngIf=\"field.Icon\" [name]=\"field.Icon\"></tmw-icon>\r\n <span class=\"btn-label\">{{field.ButtonLabel}}</span>\r\n </button>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TmwIconComponent, selector: "tmw-icon", inputs: ["name", "size", "ariaLabel", "variant", "strokeWidth"] }] });
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ActionButtonFieldTemplateComponent, decorators: [{
179
179
  type: Component,
180
- args: [{ selector: 'action-button-field-template', template: "<div id=\"{{fieldUid}}\">\r\n <button class=\"btn btn-primary\" (click)=\"generateAction(field)\">\r\n <mat-icon *ngIf=\"field.Icon\">{{field.Icon}}</mat-icon>\r\n <span class=\"btn-label\">{{field.ButtonLabel}}</span>\r\n </button>\r\n</div>\r\n" }]
180
+ args: [{ selector: 'action-button-field-template', template: "<div id=\"{{fieldUid}}\">\r\n <button class=\"btn btn-primary\" (click)=\"generateAction(field)\">\r\n <tmw-icon class=\"mat-icon\" *ngIf=\"field.Icon\" [name]=\"field.Icon\"></tmw-icon>\r\n <span class=\"btn-label\">{{field.ButtonLabel}}</span>\r\n </button>\r\n</div>\r\n" }]
181
181
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { field: [{
182
182
  type: Input
183
183
  }], record: [{
@@ -195,4 +195,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
195
195
  }], recordChange: [{
196
196
  type: Output
197
197
  }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUvYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUvYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFL0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFFcEUsTUFBTSxpQkFBaUIsR0FBOEI7SUFDbkQsU0FBUyxFQUFJLGFBQWE7SUFDMUIsS0FBSyxFQUFRLHNCQUFzQjtJQUNuQyxXQUFXLEVBQUUsNEJBQTRCO0NBQzFDLENBQUM7QUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFD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SztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpcmVUcmlnZ2VyLCBUcmlnZ2VyLCBUcmlnZ2VyUHJvcGVydHlUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90cmlnZ2VyLm1vZGVsJztcclxuaW1wb3J0IHsgQWN0aW9uQnV0dG9uRmllbGQsIEFjdGlvbkJ1dHRvbkZpZWxkU3R5bGVDU1MgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmllbGRzL2FjdGlvbkJ1dHRvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZSc7XHJcblxyXG5jb25zdCBFTEVNRU5UX1NFTEVDVE9SUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICBDb250YWluZXI6ICAgJyBidXR0b24uYnRuJyxcclxuICBJY29uYTogICAgICAgJyBidXR0b24uYnRuIG1hdC1pY29uJyxcclxuICBEZXNjcml6aW9uZTogJyBidXR0b24uYnRuIHNwYW4uYnRuLWxhYmVsJyxcclxufTtcclxuY29uc3QgRUxFTUVOVFMgPSBPYmplY3Qua2V5cyhFTEVNRU5UX1NFTEVDVE9SUyk7XHJcbmNvbnN0IFNUQVRFUyA9IFsnTm9ybWFsZScsICdNb3VzZW92ZXInLCAnU2VsZXppb25hdG8nXTtcclxuY29uc3QgREVGQVVMVF9GSUVMRF9TVFlMRVM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uQnV0dG9uRmllbGRUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBmaWVsZDogQWN0aW9uQnV0dG9uRmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZm9ybXVsYU9iamVjdDogYW55ID0ge307XHJcbiAgQElucHV0KCkgaW5Db25maWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdHlsZVZlcnNpb246IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgZm9yY2VTdGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBPdXRwdXQoKSBmaXJlVHJpZ2dlcjogRXZlbnRFbWl0dGVyPEZpcmVUcmlnZ2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlyZVRyaWdnZXI+KCk7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgRmllbGRzdHlsZU9iajogYW55O1xyXG4gIGZpZWxkVWlkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWVsZFVpZCA9ICdhYi0nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwgMTApO1xyXG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gICAgdGhpcy5pbml0U3R5bGVzKCk7XHJcbiAgICB0aGlzLmluamVjdFN0eWxlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3N0eWxlVmVyc2lvbiddICYmICFjaGFuZ2VzWydzdHlsZVZlcnNpb24nXS5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLmluamVjdFN0eWxlcygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZvcmNlU3RhdGUnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdHlsZUVsPy5wYXJlbnROb2RlKSB7XHJcbiAgICAgIHRoaXMuc3R5bGVFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuc3R5bGVFbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0U3R5bGVzKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSBudWxsIHx8IHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSB1bmRlZmluZWQpXHJcbiAgICAgIHRoaXMuRmllbGRzdHlsZU9iaiA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLmluaXRTdHlsZXModGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5qZWN0U3R5bGVzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkVWlkKSByZXR1cm47XHJcbiAgICBjb25zdCBjc3MgPSAodGhpcy5maWVsZCBhcyBBY3Rpb25CdXR0b25GaWVsZCk/LkFjdGlvbkJ1dHRvbkZpZWxkU3R5bGVDU1MgPz8gKHt9IGFzIEFjdGlvbkJ1dHRvbkZpZWxkU3R5bGVDU1MpO1xyXG4gICAgY29uc3QgcnVsZXMgPSB0aGlzLmJ1aWxkQ3NzUnVsZXModGhpcy5maWVsZFVpZCwgY3NzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc3R5bGVFbCkge1xyXG4gICAgICB0aGlzLnN0eWxlRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJykgYXMgSFRNTFN0eWxlRWxlbWVudDtcclxuICAgICAgdGhpcy5zdHlsZUVsLmlkID0gJ3N0eWxlLScgKyB0aGlzLmZpZWxkVWlkO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHRoaXMuc3R5bGVFbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0eWxlRWwudGV4dENvbnRlbnQgPSBydWxlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IodWlkOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcsIHM6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICBjYXNlICdOb3JtYWxlJzogICAgIHJldHVybiBgIyR7dWlkfSR7c31gO1xyXG4gICAgICBjYXNlICdNb3VzZW92ZXInOiAgIHJldHVybiBgIyR7dWlkfTpob3ZlciR7c30sICMke3VpZH0uZXFwLXN0YXRlLWhvdmVyJHtzfWA7XHJcbiAgICAgIGNhc2UgJ1NlbGV6aW9uYXRvJzogcmV0dXJuIGAjJHt1aWR9OmFjdGl2ZSR7c30sICMke3VpZH0uZXFwLXN0YXRlLXNlbGVjdGVkJHtzfWA7XHJcbiAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQ3NzUnVsZXModWlkOiBzdHJpbmcsIGNzczogQWN0aW9uQnV0dG9uRmllbGRTdHlsZUNTUyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcclxuICAgIGZvciAoY29uc3QgZWwgb2YgRUxFTUVOVFMpIHtcclxuICAgICAgY29uc3QgcyA9IEVMRU1FTlRfU0VMRUNUT1JTW2VsXTtcclxuICAgICAgZm9yIChjb25zdCBzdGF0ZSBvZiBTVEFURVMpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBlbCArIHN0YXRlO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IERFRkFVTFRfRklFTERfU1RZTEVTW2tleV07XHJcbiAgICAgICAgY29uc3QgdXNlclZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gKGNzcyBhcyBhbnkpW2tleV07XHJcbiAgICAgICAgaWYgKCFkZWZhdWx0VmFsPy50cmltKCkgJiYgIXVzZXJWYWw/LnRyaW0oKSkgY29udGludWU7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLmdldFNlbGVjdG9yKHVpZCwgc3RhdGUsIHMpO1xyXG4gICAgICAgIGlmICghc2VsZWN0b3IpIGNvbnRpbnVlO1xyXG4gICAgICAgIGlmIChkZWZhdWx0VmFsPy50cmltKCkpIGxpbmVzLnB1c2goYCR7c2VsZWN0b3J9IHsgJHtkZWZhdWx0VmFsfSB9YCk7XHJcbiAgICAgICAgaWYgKHVzZXJWYWw/LnRyaW0oKSkgICAgbGluZXMucHVzaChgJHtzZWxlY3Rvcn0geyAke3VzZXJWYWx9IH1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZUNsYXNzZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGRVaWQpIHJldHVybjtcclxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpZWxkVWlkKTtcclxuICAgIGlmICghd3JhcHBlcikgcmV0dXJuO1xyXG4gICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXN0YXRlLWhvdmVyJywgICAgdGhpcy5mb3JjZVN0YXRlID09PSAnTW91c2VvdmVyJyk7XHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtc3RhdGUtc2VsZWN0ZWQnLCB0aGlzLmZvcmNlU3RhdGUgPT09ICdTZWxlemlvbmF0bycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVDbGFzcyhlbDogRWxlbWVudCwgY2xzOiBzdHJpbmcsIGNvbmRpdGlvbjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgY2xzKTtcclxuICAgIGVsc2UgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhlbCwgY2xzKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpZWxkKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQuVmlzaWJsZUlmKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuVmlzaWJsZUlmLCB0aGlzLnJlY29yZCwgdGhpcy5mb3JtdWxhT2JqZWN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IHRoaXMuZmllbGQuSW5MaXN0VmlldyA/IHRydWUgOiBmYWxzZTtcclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJidG4gSW5MaXN0VmlldyAtIFwiICsgdGhpcy5maWVsZC5Jbkxpc3RWaWV3KVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVBY3Rpb24oYWN0aW9uQnV0dG9uOiBBY3Rpb25CdXR0b25GaWVsZCkge1xyXG4gICAgaWYgKGFjdGlvbkJ1dHRvbi5leGVjdXRpb24gPT0gJ2V4ZWN1dGVfZm9ybXVsYScpIHtcclxuICAgICAgbGV0IHJlcyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKFxyXG4gICAgICAgIGFjdGlvbkJ1dHRvbi5mb3JtdWxhc1swXS52YWx1ZSxcclxuICAgICAgICB0aGlzLnJlY29yZCxcclxuICAgICAgICB0aGlzLmZvcm11bGFPYmplY3RcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgZmlyZVRyaWdnZXI6IEZpcmVUcmlnZ2VyID0gbmV3IEZpcmVUcmlnZ2VyKCk7XHJcblxyXG4gICAgICBmaXJlVHJpZ2dlci50cmlnZ2VyID0gbmV3IFRyaWdnZXIoKTtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5DSUQgPSBhY3Rpb25CdXR0b24uQnV0dG9uQ29kZTtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5jb25kaXRpb25zID0gbnVsbDtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5kZXNjcmlwdGlvbiA9IGFjdGlvbkJ1dHRvbi5MYWJlbDtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5leGVjdXRpb24gPSBhY3Rpb25CdXR0b24uZXhlY3V0aW9uO1xyXG4gICAgICBmaXJlVHJpZ2dlci50cmlnZ2VyLmZvcm11bGFzID0gYWN0aW9uQnV0dG9uLmZvcm11bGFzO1xyXG5cclxuICAgICAgZmlyZVRyaWdnZXIuZm9ybSA9IG51bGw7XHJcbiAgICAgIGZpcmVUcmlnZ2VyLmZvcm11bGFzID0gYWN0aW9uQnV0dG9uLmZvcm11bGFzO1xyXG4gICAgICBmaXJlVHJpZ2dlci5yZWNvcmQgPSB0aGlzLnJlY29yZDtcclxuICAgICAgZmlyZVRyaWdnZXIudXNlclBhdGllbnQgPSBudWxsO1xyXG4gICAgICBmaXJlVHJpZ2dlci51c2VyTWVkaWNhbEV4YW1pbmF0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgIHRoaXMuZXZhbHVhdGVGb3JtdWxhc0FuZEZpcmVUcmlnZ2VyKGZpcmVUcmlnZ2VyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV2YWx1YXRlRm9ybXVsYXNBbmRGaXJlVHJpZ2dlcih0cmlnZ2VyVG9GaXJlOiBGaXJlVHJpZ2dlcikge1xyXG5cclxuICAgIGNvbnN0IGZvcm11bGFzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0cmlnZ2VyVG9GaXJlLmZvcm11bGFzKSk7XHJcbiAgICBjb25zdCBldmFsdWF0ZWRGb3JtdWxhczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJjaGVja1RyaWdnZXJzIC0gZXZhbHVhdGUgZm9ybXVsYXMgXCIsIGZvcm11bGFzKTtcclxuICAgIGlmIChmb3JtdWxhcyAmJiBPYmplY3Qua2V5cyhmb3JtdWxhcykubGVuZ3RoID4gMCkge1xyXG4gICAgICBPYmplY3Qua2V5cyhmb3JtdWxhcykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZm9ybXVsYU9iaiA9IGZvcm11bGFzW2tleV07XHJcbiAgICAgICAgY29uc3QgZm9ybXVsYSA9IGZvcm11bGFPYmoudmFsdWU7XHJcbiAgICAgICAgbGV0IHRlbXA7XHJcblxyXG4gICAgICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJjaGVja1RyaWdnZXJzIC0gZm9ybXVsYXNba2V5XSBcIiwgZm9ybXVsYU9iaik7XHJcblxyXG4gICAgICAgIGlmIChmb3JtdWxhT2JqLnR5cGUgPT0gVHJpZ2dlclByb3BlcnR5VHlwZUVudW0uRE1NT0RVTEUpIHtcclxuICAgICAgICAgIHRlbXAgPSBmb3JtdWxhO1xyXG4gICAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcImNoZWNrVHJpZ2dlcnMgLSBhc3NpZ25lZCBETU1PRFVMRSAtIGlkL2NvZGUgXCIsIGZvcm11bGEpO1xyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm11bGFPYmoudHlwZSA9PSBUcmlnZ2VyUHJvcGVydHlUeXBlRW51bS5EUk9QRE9XTl9MSVNUKSB7XHJcbiAgICAgICAgICB0ZW1wID1cclxuICAgICAgICAgICAgZm9ybXVsYU9iaj8uc2VsZWN0ZWRBbGxvd2VkVmFsdWU/LmtleSA/IGZvcm11bGFPYmouc2VsZWN0ZWRBbGxvd2VkVmFsdWUua2V5XHJcbiAgICAgICAgICAgICAgOiAoXHJcbiAgICAgICAgICAgICAgICBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYShcclxuICAgICAgICAgICAgICAgICAgZm9ybXVsYSxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yZWNvcmQsXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybXVsYU9iamVjdFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcImNoZWNrVHJpZ2dlcnMgLSBhc3NpZ25lZCBEUk9QRE9XTl9MSVNULSAgc2VsZWN0ZWRBbGxvd2VkVmFsdWUgXCIsIGZvcm11bGFPYmouc2VsZWN0ZWRBbGxvd2VkVmFsdWUpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGVtcCA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKFxyXG4gICAgICAgICAgICBmb3JtdWxhLFxyXG4gICAgICAgICAgICB0aGlzLnJlY29yZCxcclxuICAgICAgICAgICAgdGhpcy5mb3JtdWxhT2JqZWN0XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcImNoZWNrVHJpZ2dlcnMgLSBhc3NpZ25lZCAtIC52YWx1ZSAgZm9ybXVsYSBcIiwgZm9ybXVsYSk7XHJcbiAgICAgICAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTG9nKFwiY2hlY2tUcmlnZ2VycyAtIGFzc2lnbmVkID4gdmFsdWUgIGZvcm11bGFPYmoudHlwZSBcIiwgZm9ybXVsYU9iaik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBldmFsdWF0ZWRGb3JtdWxhc1tmb3JtdWxhT2JqLmtleV0gPSB0ZW1wO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTG9nKFwiY2hlY2tUcmlnZ2VycyAtIGFzc2lnbmVkLSAgZXZhbHVhdGVkRm9ybXVsYXMgXCIsIGV2YWx1YXRlZEZvcm11bGFzKTtcclxuICAgIHRyaWdnZXJUb0ZpcmUuZm9ybXVsYXMgPSBldmFsdWF0ZWRGb3JtdWxhcztcclxuICAgIHRoaXMuZmlyZVRyaWdnZXIuZW1pdCh0cmlnZ2VyVG9GaXJlKTtcclxuICB9XHJcblxyXG4gIG9uUmVjb3JkVmFsdWVDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5maWVsZC5WaXNpYmxlSWYpIHtcclxuICAgICAgdGhpcy5yZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ7e2ZpZWxkVWlkfX1cIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZ2VuZXJhdGVBY3Rpb24oZmllbGQpXCI+XHJcbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiZmllbGQuSWNvblwiPnt7ZmllbGQuSWNvbn19PC9tYXQtaWNvbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1sYWJlbFwiPnt7ZmllbGQuQnV0dG9uTGFiZWx9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
198
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUvYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUvYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFL0gsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFFcEUsTUFBTSxpQkFBaUIsR0FBOEI7SUFDbkQsU0FBUyxFQUFJLGFBQWE7SUFDMUIsS0FBSyxFQUFRLHNCQUFzQjtJQUNuQyxXQUFXLEVBQUUsNEJBQTRCO0NBQzFDLENBQUM7QUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDaEQsTUFBTSxNQUFNLEdBQUcsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFD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SztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpcmVUcmlnZ2VyLCBUcmlnZ2VyLCBUcmlnZ2VyUHJvcGVydHlUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90cmlnZ2VyLm1vZGVsJztcclxuaW1wb3J0IHsgQWN0aW9uQnV0dG9uRmllbGQsIEFjdGlvbkJ1dHRvbkZpZWxkU3R5bGVDU1MgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZmllbGRzL2FjdGlvbkJ1dHRvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZSc7XHJcblxyXG5jb25zdCBFTEVNRU5UX1NFTEVDVE9SUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICBDb250YWluZXI6ICAgJyBidXR0b24uYnRuJyxcclxuICBJY29uYTogICAgICAgJyBidXR0b24uYnRuIG1hdC1pY29uJyxcclxuICBEZXNjcml6aW9uZTogJyBidXR0b24uYnRuIHNwYW4uYnRuLWxhYmVsJyxcclxufTtcclxuY29uc3QgRUxFTUVOVFMgPSBPYmplY3Qua2V5cyhFTEVNRU5UX1NFTEVDVE9SUyk7XHJcbmNvbnN0IFNUQVRFUyA9IFsnTm9ybWFsZScsICdNb3VzZW92ZXInLCAnU2VsZXppb25hdG8nXTtcclxuY29uc3QgREVGQVVMVF9GSUVMRF9TVFlMRVM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYWN0aW9uLWJ1dHRvbi1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2FjdGlvbi1idXR0b24tZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQWN0aW9uQnV0dG9uRmllbGRUZW1wbGF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG5cclxuICBASW5wdXQoKSBmaWVsZDogQWN0aW9uQnV0dG9uRmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZm9ybXVsYU9iamVjdDogYW55ID0ge307XHJcbiAgQElucHV0KCkgaW5Db25maWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdHlsZVZlcnNpb246IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgZm9yY2VTdGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBPdXRwdXQoKSBmaXJlVHJpZ2dlcjogRXZlbnRFbWl0dGVyPEZpcmVUcmlnZ2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8RmlyZVRyaWdnZXI+KCk7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgRmllbGRzdHlsZU9iajogYW55O1xyXG4gIGZpZWxkVWlkOiBzdHJpbmc7XHJcbiAgcHJpdmF0ZSBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5maWVsZFVpZCA9ICdhYi0nICsgTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwgMTApO1xyXG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG4gICAgdGhpcy5pbml0U3R5bGVzKCk7XHJcbiAgICB0aGlzLmluamVjdFN0eWxlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3N0eWxlVmVyc2lvbiddICYmICFjaGFuZ2VzWydzdHlsZVZlcnNpb24nXS5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLmluamVjdFN0eWxlcygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZvcmNlU3RhdGUnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zdHlsZUVsPy5wYXJlbnROb2RlKSB7XHJcbiAgICAgIHRoaXMuc3R5bGVFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuc3R5bGVFbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpbml0U3R5bGVzKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSBudWxsIHx8IHRoaXMuZmllbGQuRmllbGRzdHlsZUNTUyAhPSB1bmRlZmluZWQpXHJcbiAgICAgIHRoaXMuRmllbGRzdHlsZU9iaiA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLmluaXRTdHlsZXModGhpcy5maWVsZC5GaWVsZHN0eWxlQ1NTKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5qZWN0U3R5bGVzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkVWlkKSByZXR1cm47XHJcbiAgICBjb25zdCBjc3MgPSAodGhpcy5maWVsZCBhcyBBY3Rpb25CdXR0b25GaWVsZCk/LkFjdGlvbkJ1dHRvbkZpZWxkU3R5bGVDU1MgPz8gKHt9IGFzIEFjdGlvbkJ1dHRvbkZpZWxkU3R5bGVDU1MpO1xyXG4gICAgY29uc3QgcnVsZXMgPSB0aGlzLmJ1aWxkQ3NzUnVsZXModGhpcy5maWVsZFVpZCwgY3NzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc3R5bGVFbCkge1xyXG4gICAgICB0aGlzLnN0eWxlRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJykgYXMgSFRNTFN0eWxlRWxlbWVudDtcclxuICAgICAgdGhpcy5zdHlsZUVsLmlkID0gJ3N0eWxlLScgKyB0aGlzLmZpZWxkVWlkO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHRoaXMuc3R5bGVFbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0eWxlRWwudGV4dENvbnRlbnQgPSBydWxlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IodWlkOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcsIHM6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICBjYXNlICdOb3JtYWxlJzogICAgIHJldHVybiBgIyR7dWlkfSR7c31gO1xyXG4gICAgICBjYXNlICdNb3VzZW92ZXInOiAgIHJldHVybiBgIyR7dWlkfTpob3ZlciR7c30sICMke3VpZH0uZXFwLXN0YXRlLWhvdmVyJHtzfWA7XHJcbiAgICAgIGNhc2UgJ1NlbGV6aW9uYXRvJzogcmV0dXJuIGAjJHt1aWR9OmFjdGl2ZSR7c30sICMke3VpZH0uZXFwLXN0YXRlLXNlbGVjdGVkJHtzfWA7XHJcbiAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQ3NzUnVsZXModWlkOiBzdHJpbmcsIGNzczogQWN0aW9uQnV0dG9uRmllbGRTdHlsZUNTUyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcclxuICAgIGZvciAoY29uc3QgZWwgb2YgRUxFTUVOVFMpIHtcclxuICAgICAgY29uc3QgcyA9IEVMRU1FTlRfU0VMRUNUT1JTW2VsXTtcclxuICAgICAgZm9yIChjb25zdCBzdGF0ZSBvZiBTVEFURVMpIHtcclxuICAgICAgICBjb25zdCBrZXkgPSBlbCArIHN0YXRlO1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IERFRkFVTFRfRklFTERfU1RZTEVTW2tleV07XHJcbiAgICAgICAgY29uc3QgdXNlclZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gKGNzcyBhcyBhbnkpW2tleV07XHJcbiAgICAgICAgaWYgKCFkZWZhdWx0VmFsPy50cmltKCkgJiYgIXVzZXJWYWw/LnRyaW0oKSkgY29udGludWU7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSB0aGlzLmdldFNlbGVjdG9yKHVpZCwgc3RhdGUsIHMpO1xyXG4gICAgICAgIGlmICghc2VsZWN0b3IpIGNvbnRpbnVlO1xyXG4gICAgICAgIGlmIChkZWZhdWx0VmFsPy50cmltKCkpIGxpbmVzLnB1c2goYCR7c2VsZWN0b3J9IHsgJHtkZWZhdWx0VmFsfSB9YCk7XHJcbiAgICAgICAgaWYgKHVzZXJWYWw/LnRyaW0oKSkgICAgbGluZXMucHVzaChgJHtzZWxlY3Rvcn0geyAke3VzZXJWYWx9IH1gKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZUNsYXNzZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGRVaWQpIHJldHVybjtcclxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpZWxkVWlkKTtcclxuICAgIGlmICghd3JhcHBlcikgcmV0dXJuO1xyXG4gICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXN0YXRlLWhvdmVyJywgICAgdGhpcy5mb3JjZVN0YXRlID09PSAnTW91c2VvdmVyJyk7XHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtc3RhdGUtc2VsZWN0ZWQnLCB0aGlzLmZvcmNlU3RhdGUgPT09ICdTZWxlemlvbmF0bycpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVDbGFzcyhlbDogRWxlbWVudCwgY2xzOiBzdHJpbmcsIGNvbmRpdGlvbjogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGNvbmRpdGlvbikgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhlbCwgY2xzKTtcclxuICAgIGVsc2UgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhlbCwgY2xzKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZUZpZWxkKCkge1xyXG4gICAgaWYgKHRoaXMuZmllbGQuVmlzaWJsZUlmKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuVmlzaWJsZUlmLCB0aGlzLnJlY29yZCwgdGhpcy5mb3JtdWxhT2JqZWN0KTtcclxuICAgIH1cclxuICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IHRoaXMuZmllbGQuSW5MaXN0VmlldyA/IHRydWUgOiBmYWxzZTtcclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJidG4gSW5MaXN0VmlldyAtIFwiICsgdGhpcy5maWVsZC5Jbkxpc3RWaWV3KVxyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVBY3Rpb24oYWN0aW9uQnV0dG9uOiBBY3Rpb25CdXR0b25GaWVsZCkge1xyXG4gICAgaWYgKGFjdGlvbkJ1dHRvbi5leGVjdXRpb24gPT0gJ2V4ZWN1dGVfZm9ybXVsYScpIHtcclxuICAgICAgbGV0IHJlcyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKFxyXG4gICAgICAgIGFjdGlvbkJ1dHRvbi5mb3JtdWxhc1swXS52YWx1ZSxcclxuICAgICAgICB0aGlzLnJlY29yZCxcclxuICAgICAgICB0aGlzLmZvcm11bGFPYmplY3RcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB2YXIgZmlyZVRyaWdnZXI6IEZpcmVUcmlnZ2VyID0gbmV3IEZpcmVUcmlnZ2VyKCk7XHJcblxyXG4gICAgICBmaXJlVHJpZ2dlci50cmlnZ2VyID0gbmV3IFRyaWdnZXIoKTtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5DSUQgPSBhY3Rpb25CdXR0b24uQnV0dG9uQ29kZTtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5jb25kaXRpb25zID0gbnVsbDtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5kZXNjcmlwdGlvbiA9IGFjdGlvbkJ1dHRvbi5MYWJlbDtcclxuICAgICAgZmlyZVRyaWdnZXIudHJpZ2dlci5leGVjdXRpb24gPSBhY3Rpb25CdXR0b24uZXhlY3V0aW9uO1xyXG4gICAgICBmaXJlVHJpZ2dlci50cmlnZ2VyLmZvcm11bGFzID0gYWN0aW9uQnV0dG9uLmZvcm11bGFzO1xyXG5cclxuICAgICAgZmlyZVRyaWdnZXIuZm9ybSA9IG51bGw7XHJcbiAgICAgIGZpcmVUcmlnZ2VyLmZvcm11bGFzID0gYWN0aW9uQnV0dG9uLmZvcm11bGFzO1xyXG4gICAgICBmaXJlVHJpZ2dlci5yZWNvcmQgPSB0aGlzLnJlY29yZDtcclxuICAgICAgZmlyZVRyaWdnZXIudXNlclBhdGllbnQgPSBudWxsO1xyXG4gICAgICBmaXJlVHJpZ2dlci51c2VyTWVkaWNhbEV4YW1pbmF0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgIHRoaXMuZXZhbHVhdGVGb3JtdWxhc0FuZEZpcmVUcmlnZ2VyKGZpcmVUcmlnZ2VyKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGV2YWx1YXRlRm9ybXVsYXNBbmRGaXJlVHJpZ2dlcih0cmlnZ2VyVG9GaXJlOiBGaXJlVHJpZ2dlcikge1xyXG5cclxuICAgIGNvbnN0IGZvcm11bGFzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0cmlnZ2VyVG9GaXJlLmZvcm11bGFzKSk7XHJcbiAgICBjb25zdCBldmFsdWF0ZWRGb3JtdWxhczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xyXG5cclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJjaGVja1RyaWdnZXJzIC0gZXZhbHVhdGUgZm9ybXVsYXMgXCIsIGZvcm11bGFzKTtcclxuICAgIGlmIChmb3JtdWxhcyAmJiBPYmplY3Qua2V5cyhmb3JtdWxhcykubGVuZ3RoID4gMCkge1xyXG4gICAgICBPYmplY3Qua2V5cyhmb3JtdWxhcykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgY29uc3QgZm9ybXVsYU9iaiA9IGZvcm11bGFzW2tleV07XHJcbiAgICAgICAgY29uc3QgZm9ybXVsYSA9IGZvcm11bGFPYmoudmFsdWU7XHJcbiAgICAgICAgbGV0IHRlbXA7XHJcblxyXG4gICAgICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coXCJjaGVja1RyaWdnZXJzIC0gZm9ybXVsYXNba2V5XSBcIiwgZm9ybXVsYU9iaik7XHJcblxyXG4gICAgICAgIGlmIChmb3JtdWxhT2JqLnR5cGUgPT0gVHJpZ2dlclByb3BlcnR5VHlwZUVudW0uRE1NT0RVTEUpIHtcclxuICAgICAgICAgIHRlbXAgPSBmb3JtdWxhO1xyXG4gICAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcImNoZWNrVHJpZ2dlcnMgLSBhc3NpZ25lZCBETU1PRFVMRSAtIGlkL2NvZGUgXCIsIGZvcm11bGEpO1xyXG5cclxuICAgICAgICB9IGVsc2UgaWYgKGZvcm11bGFPYmoudHlwZSA9PSBUcmlnZ2VyUHJvcGVydHlUeXBlRW51bS5EUk9QRE9XTl9MSVNUKSB7XHJcbiAgICAgICAgICB0ZW1wID1cclxuICAgICAgICAgICAgZm9ybXVsYU9iaj8uc2VsZWN0ZWRBbGxvd2VkVmFsdWU/LmtleSA/IGZvcm11bGFPYmouc2VsZWN0ZWRBbGxvd2VkVmFsdWUua2V5XHJcbiAgICAgICAgICAgICAgOiAoXHJcbiAgICAgICAgICAgICAgICBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYShcclxuICAgICAgICAgICAgICAgICAgZm9ybXVsYSxcclxuICAgICAgICAgICAgICAgICAgdGhpcy5yZWNvcmQsXHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybXVsYU9iamVjdFxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcImNoZWNrVHJpZ2dlcnMgLSBhc3NpZ25lZCBEUk9QRE9XTl9MSVNULSAgc2VsZWN0ZWRBbGxvd2VkVmFsdWUgXCIsIGZvcm11bGFPYmouc2VsZWN0ZWRBbGxvd2VkVmFsdWUpO1xyXG5cclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGVtcCA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKFxyXG4gICAgICAgICAgICBmb3JtdWxhLFxyXG4gICAgICAgICAgICB0aGlzLnJlY29yZCxcclxuICAgICAgICAgICAgdGhpcy5mb3JtdWxhT2JqZWN0XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgR2xvYmFsU2VydmljZS5kZWJ1Z0xvZyhcImNoZWNrVHJpZ2dlcnMgLSBhc3NpZ25lZCAtIC52YWx1ZSAgZm9ybXVsYSBcIiwgZm9ybXVsYSk7XHJcbiAgICAgICAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTG9nKFwiY2hlY2tUcmlnZ2VycyAtIGFzc2lnbmVkID4gdmFsdWUgIGZvcm11bGFPYmoudHlwZSBcIiwgZm9ybXVsYU9iaik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBldmFsdWF0ZWRGb3JtdWxhc1tmb3JtdWxhT2JqLmtleV0gPSB0ZW1wO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBHbG9iYWxTZXJ2aWNlLmRlYnVnTG9nKFwiY2hlY2tUcmlnZ2VycyAtIGFzc2lnbmVkLSAgZXZhbHVhdGVkRm9ybXVsYXMgXCIsIGV2YWx1YXRlZEZvcm11bGFzKTtcclxuICAgIHRyaWdnZXJUb0ZpcmUuZm9ybXVsYXMgPSBldmFsdWF0ZWRGb3JtdWxhcztcclxuICAgIHRoaXMuZmlyZVRyaWdnZXIuZW1pdCh0cmlnZ2VyVG9GaXJlKTtcclxuICB9XHJcblxyXG4gIG9uUmVjb3JkVmFsdWVDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICAgIGlmICghdGhpcy5maWVsZC5WaXNpYmxlSWYpIHtcclxuICAgICAgdGhpcy5yZWNvcmRDaGFuZ2UuZW1pdCh0aGlzLnJlY29yZCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ7e2ZpZWxkVWlkfX1cIj5cclxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwiZ2VuZXJhdGVBY3Rpb24oZmllbGQpXCI+XHJcbiAgICAgICAgPHRtdy1pY29uIGNsYXNzPVwibWF0LWljb25cIiAqbmdJZj1cImZpZWxkLkljb25cIiBbbmFtZV09XCJmaWVsZC5JY29uXCI+PC90bXctaWNvbj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1sYWJlbFwiPnt7ZmllbGQuQnV0dG9uTGFiZWx9fTwvc3Bhbj5cclxuICAgIDwvYnV0dG9uPlxyXG48L2Rpdj5cclxuIl19
@@ -5,15 +5,15 @@ import { DataGetterTypeEnum } from '../../../../models/baseField.model';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../../../services/utilityHelper.services";
7
7
  import * as i2 from "@angular/common";
8
- import * as i3 from "@eqproject/eqp-attachments";
8
+ import * as i3 from "tmw-attachments";
9
9
  const ELEMENT_SELECTORS = {
10
10
  Container: '',
11
- Label: [' p.mb-2', ' .eqp-attachments-header-title'],
12
- BottoneAggiungi: ' .eqp-attachments-add-btn',
13
- BottoneDownload: ' .eqp-attachments-download-btn',
14
- BottoneElimina: ' .eqp-attachments-delete-btn',
15
- BottoneAnteprima: ' .eqp-attachments-preview-btn',
16
- CampoNomeFile: ' eqp-attachments mat-form-field',
11
+ Label: [' p.mb-2', ' .tmw-attachments-header-title'],
12
+ BottoneAggiungi: ' .tmw-attachments-add-btn',
13
+ BottoneDownload: ' .tmw-attachments-download-btn',
14
+ BottoneElimina: ' .tmw-attachments-delete-btn',
15
+ BottoneAnteprima: ' .tmw-attachments-preview-btn',
16
+ CampoNomeFile: ' tmw-attachments .tmw-attachments-filename-input',
17
17
  };
18
18
  const ELEMENTS = Object.keys(ELEMENT_SELECTORS);
19
19
  const STATES = ['Normale', 'Mouseover', 'NotValid', 'Readonly'];
@@ -175,10 +175,10 @@ export class AttachmentFieldTemplateComponent {
175
175
  }
176
176
  }
177
177
  AttachmentFieldTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AttachmentFieldTemplateComponent, deps: [{ token: i1.UtilityHelperService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
178
- AttachmentFieldTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AttachmentFieldTemplateComponent, selector: "attachment-field-template", inputs: { onlyImages: "onlyImages", field: "field", record: "record", formulaObject: "formulaObject", inConfig: "inConfig", styleVersion: "styleVersion", forceState: "forceState" }, outputs: { recordChange: "recordChange", onAttachmentsChange: "onAttachmentsChange" }, viewQueries: [{ propertyName: "eqpAttachments", first: true, predicate: ["eqpAttachments"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"{{fieldUid}}\">\r\n <p *ngIf=\"!field.isMultiAttach\" class=\"mb-2\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </p>\r\n <div class=\"row\" *ngIf=\"!field.isMultiAttach && record[field.Name] && record[field.Name][0]\">\r\n <!-- <div class=\"mt-2\" *ngFor=\"let metadata of field.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix [field]=\"metadata\" [record]=\"record[field.Name][0]\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div> -->\r\n </div>\r\n\r\n <eqp-attachments [attachmentsList]=\"record[field.Name]\" [showMatCard]=\"true\" [allowOnlyImages]=\"onlyImages\"\r\n [isDisabled]=\"field.FormFormGroup.disabled\" [showInlinePreview]=\"true\" [multipleAttachment]=\"field.isMultiAttach\"\r\n [disableAction]=\"field.FormFormGroup.disabled\" [acceptedFileTypes]=\"field.AllowedMimeTypes\" [showHeader]=\"true\"\r\n [headerTitle]=\"field.Description + (field.Required ? ' *' : '')\" (localEditedAttachments)=\"catchAttachmentList($event)\"\r\n #eqpAttachments>\r\n </eqp-attachments>\r\n</div>\r\n\r\n<!-- TEMPLATE PER VISUALIZZARE LA COLONNA DELLA SEZIONE NELLA TABELLA DEI FIELDS -->\r\n<!-- <ng-template #metadataColumnTemplate let-row=\"row\" let-col=\"col\">\r\n <dynamic-module-field-fix [field]=\"getFieldFromMetadata(col, row)\" [record]=\"row\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n</ng-template> -->\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EqpAttachmentsComponent, selector: "eqp-attachments", inputs: ["disableAction", "showHeader", "headerTitle", "attachmentsList", "showMatCard", "multipleAttachment", "loadMultipleFiles", "attachmentsColumns", "emptyTableMessage", "allowOnlyImages", "acceptedFileTypes", "isDisabled", "showInlinePreview", "getAttachmentEndpoint", "productionBaseUrl", "compressionOptions", "allowedTypes", "isEqpTableMultiLanguage", "tablePaginatorVisible", "isTableSearcheable", "tablePaginatorSize", "separatedUploadButtons", "showPreview", "singleAttachmentDragAndDrop", "cropOptions", "cropDialogClass", "downloadTooltipPosition", "openLinkLabel", "addButtonLabel", "downloadLabel", "deleteLabel", "fileNameLabel", "previewLabel", "uploadFileLabel", "confirmLabel", "abortLabel", "saveLabel", "exitLabel", "uploadWithDropboxLabel", "cropLabel", "eqpTableSearchText", "deleteDialogTitle", "deleteDialogMessage", "noImageSelectedErrorMessage", "wrongTypeSelectedErrorMessage", "videoPreviewErrorMessage", "flipHorinzontalLabel", "flipVerticalLabel", "rotateRightLabel", "rotateLeftLabel"], outputs: ["localEditedAttachments", "abortAddAttachment", "downloadAttachment", "onDeleteAttachment"] }] });
178
+ AttachmentFieldTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: AttachmentFieldTemplateComponent, selector: "attachment-field-template", inputs: { onlyImages: "onlyImages", field: "field", record: "record", formulaObject: "formulaObject", inConfig: "inConfig", styleVersion: "styleVersion", forceState: "forceState" }, outputs: { recordChange: "recordChange", onAttachmentsChange: "onAttachmentsChange" }, viewQueries: [{ propertyName: "eqpAttachments", first: true, predicate: ["eqpAttachments"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div id=\"{{fieldUid}}\">\r\n <p *ngIf=\"!field.isMultiAttach\" class=\"mb-2\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </p>\r\n <div class=\"row\" *ngIf=\"!field.isMultiAttach && record[field.Name] && record[field.Name][0]\">\r\n <!-- <div class=\"mt-2\" *ngFor=\"let metadata of field.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix [field]=\"metadata\" [record]=\"record[field.Name][0]\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div> -->\r\n </div>\r\n\r\n <tmw-attachments [attachmentsList]=\"record[field.Name]\" [showMatCard]=\"true\" [allowOnlyImages]=\"onlyImages\"\r\n [isDisabled]=\"field.FormFormGroup.disabled\" [showInlinePreview]=\"true\" [multipleAttachment]=\"field.isMultiAttach\"\r\n [disableAction]=\"field.FormFormGroup.disabled\" [acceptedFileTypes]=\"field.AllowedMimeTypes\" [showHeader]=\"true\"\r\n [headerTitle]=\"field.Description + (field.Required ? ' *' : '')\" (localEditedAttachments)=\"catchAttachmentList($event)\"\r\n #eqpAttachments>\r\n </tmw-attachments>\r\n</div>\r\n\r\n<!-- TEMPLATE PER VISUALIZZARE LA COLONNA DELLA SEZIONE NELLA TABELLA DEI FIELDS -->\r\n<!-- <ng-template #metadataColumnTemplate let-row=\"row\" let-col=\"col\">\r\n <dynamic-module-field-fix [field]=\"getFieldFromMetadata(col, row)\" [record]=\"row\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n</ng-template> -->\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TmwAttachmentsComponent, selector: "tmw-attachments", inputs: ["disableAction", "showHeader", "headerTitle", "attachmentsList", "showMatCard", "multipleAttachment", "loadMultipleFiles", "attachmentsColumns", "emptyTableMessage", "allowOnlyImages", "acceptedFileTypes", "isDisabled", "showInlinePreview", "getAttachmentEndpoint", "productionBaseUrl", "compressionOptions", "allowedTypes", "isEqpTableMultiLanguage", "tablePaginatorVisible", "tablePaginatorSize", "allowVideo", "allowVideoCompression", "videoFormatsNotAllowed", "allowedMBForFile", "downloadTooltipPosition", "openLinkLabel", "addButtonLabel", "downloadLabel", "deleteLabel", "fileNameLabel", "fileSizeLabel", "previewLabel", "uploadFileLabel", "confirmLabel", "abortLabel", "saveLabel", "exitLabel", "eqpTableSearchText", "deletedMessageLabel", "undoDeleteLabel", "undoDeleteTimeoutMs", "noImageSelectedErrorMessage", "wrongTypeSelectedErrorMessage", "videoPreviewErrorMessage", "audioPreviewErrorMessage", "uploadMode", "quickMode", "allowClipboardPaste", "allowCameraCapture", "pdfWorkerSrc", "dragDropTooManyFilesErrorMessage", "cropDialogClass"], outputs: ["localEditedAttachments", "abortAddAttachment", "downloadAttachment", "onDeleteAttachment", "onComponentLoaded"] }] });
179
179
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: AttachmentFieldTemplateComponent, decorators: [{
180
180
  type: Component,
181
- args: [{ selector: 'attachment-field-template', template: "<div id=\"{{fieldUid}}\">\r\n <p *ngIf=\"!field.isMultiAttach\" class=\"mb-2\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </p>\r\n <div class=\"row\" *ngIf=\"!field.isMultiAttach && record[field.Name] && record[field.Name][0]\">\r\n <!-- <div class=\"mt-2\" *ngFor=\"let metadata of field.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix [field]=\"metadata\" [record]=\"record[field.Name][0]\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div> -->\r\n </div>\r\n\r\n <eqp-attachments [attachmentsList]=\"record[field.Name]\" [showMatCard]=\"true\" [allowOnlyImages]=\"onlyImages\"\r\n [isDisabled]=\"field.FormFormGroup.disabled\" [showInlinePreview]=\"true\" [multipleAttachment]=\"field.isMultiAttach\"\r\n [disableAction]=\"field.FormFormGroup.disabled\" [acceptedFileTypes]=\"field.AllowedMimeTypes\" [showHeader]=\"true\"\r\n [headerTitle]=\"field.Description + (field.Required ? ' *' : '')\" (localEditedAttachments)=\"catchAttachmentList($event)\"\r\n #eqpAttachments>\r\n </eqp-attachments>\r\n</div>\r\n\r\n<!-- TEMPLATE PER VISUALIZZARE LA COLONNA DELLA SEZIONE NELLA TABELLA DEI FIELDS -->\r\n<!-- <ng-template #metadataColumnTemplate let-row=\"row\" let-col=\"col\">\r\n <dynamic-module-field-fix [field]=\"getFieldFromMetadata(col, row)\" [record]=\"row\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n</ng-template> -->\r\n" }]
181
+ args: [{ selector: 'attachment-field-template', template: "<div id=\"{{fieldUid}}\">\r\n <p *ngIf=\"!field.isMultiAttach\" class=\"mb-2\">\r\n {{field.Description + (field.Required ? \" *\" : \"\")}}\r\n </p>\r\n <div class=\"row\" *ngIf=\"!field.isMultiAttach && record[field.Name] && record[field.Name][0]\">\r\n <!-- <div class=\"mt-2\" *ngFor=\"let metadata of field.MetadataFields\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(metadata)\">\r\n <dynamic-module-field-fix [field]=\"metadata\" [record]=\"record[field.Name][0]\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n </div> -->\r\n </div>\r\n\r\n <tmw-attachments [attachmentsList]=\"record[field.Name]\" [showMatCard]=\"true\" [allowOnlyImages]=\"onlyImages\"\r\n [isDisabled]=\"field.FormFormGroup.disabled\" [showInlinePreview]=\"true\" [multipleAttachment]=\"field.isMultiAttach\"\r\n [disableAction]=\"field.FormFormGroup.disabled\" [acceptedFileTypes]=\"field.AllowedMimeTypes\" [showHeader]=\"true\"\r\n [headerTitle]=\"field.Description + (field.Required ? ' *' : '')\" (localEditedAttachments)=\"catchAttachmentList($event)\"\r\n #eqpAttachments>\r\n </tmw-attachments>\r\n</div>\r\n\r\n<!-- TEMPLATE PER VISUALIZZARE LA COLONNA DELLA SEZIONE NELLA TABELLA DEI FIELDS -->\r\n<!-- <ng-template #metadataColumnTemplate let-row=\"row\" let-col=\"col\">\r\n <dynamic-module-field-fix [field]=\"getFieldFromMetadata(col, row)\" [record]=\"row\"\r\n (recordChange)=\"updateMetadataValidity()\">\r\n </dynamic-module-field-fix>\r\n</ng-template> -->\r\n" }]
182
182
  }], ctorParameters: function () { return [{ type: i1.UtilityHelperService }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }]; }, propDecorators: { onlyImages: [{
183
183
  type: Input
184
184
  }], field: [{
@@ -201,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
201
201
  type: ViewChild,
202
202
  args: ["eqpAttachments", { static: true }]
203
203
  }] } });
204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQTRCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1SyxPQUFPLEVBQTRDLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFOUosT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBR3hFLE1BQU0saUJBQWlCLEdBQXlDO0lBQzlELFNBQVMsRUFBUyxFQUFFO0lBQ3BCLEtBQUssRUFBYSxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsQ0FBQztJQUMvRCxlQUFlLEVBQUcsMkJBQTJCO0lBQzdDLGVBQWUsRUFBRyxnQ0FBZ0M7SUFDbEQsY0FBYyxFQUFJLDhCQUE4QjtJQUNoRCxnQkFBZ0IsRUFBRSwrQkFBK0I7SUFDakQsYUFBYSxFQUFLLGlDQUFpQztDQUNwRCxDQUFDO0FBQ0YsTUFBTSxR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LG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7OEhBcExVLGdDQUFnQztrSEFBaEMsZ0NBQWdDLG1lQzVCN0MsOGxEQTJCQTs0RkRDYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsMkJBQTJCO21LQU01QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFFd0MsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RmllbGQsIEF0dGFjaG1lbnRGaWVsZFN0eWxlQ1NTLCBBdmFpbGFibGVGaWxlRXh0ZW5zaW9ucywgQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9hdHRhY2htZW50RmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBJQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9pQmFzZUZpZWxkQ29tcG9uZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEVxcEF0dGFjaG1lbnRzQ29tcG9uZW50IH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtYXR0YWNobWVudHMnO1xyXG5pbXBvcnQgeyBEYXRhR2V0dGVyVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5jb25zdCBFTEVNRU5UX1NFTEVDVE9SUzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB9ID0ge1xyXG4gIENvbnRhaW5lcjogICAgICAgICcnLFxyXG4gIExhYmVsOiAgICAgICAgICAgIFsnIHAubWItMicsICcgLmVxcC1hdHRhY2htZW50cy1oZWFkZXItdGl0bGUnXSxcclxuICBCb3R0b25lQWdnaXVuZ2k6ICAnIC5lcXAtYXR0YWNobWVudHMtYWRkLWJ0bicsXHJcbiAgQm90dG9uZURvd25sb2FkOiAgJyAuZXFwLWF0dGFjaG1lbnRzLWRvd25sb2FkLWJ0bicsXHJcbiAgQm90dG9uZUVsaW1pbmE6ICAgJyAuZXFwLWF0dGFjaG1lbnRzLWRlbGV0ZS1idG4nLFxyXG4gIEJvdHRvbmVBbnRlcHJpbWE6ICcgLmVxcC1hdHRhY2htZW50cy1wcmV2aWV3LWJ0bicsXHJcbiAgQ2FtcG9Ob21lRmlsZTogICAgJyBlcXAtYXR0YWNobWVudHMgbWF0LWZvcm0tZmllbGQnLFxyXG59O1xyXG5jb25zdCBFTEVNRU5UUyA9IE9iamVjdC5rZXlzKEVMRU1FTlRfU0VMRUNUT1JTKTtcclxuY29uc3QgU1RBVEVTID0gWydOb3JtYWxlJywgJ01vdXNlb3ZlcicsICdOb3RWYWxpZCcsICdSZWFkb25seSddO1xyXG5cclxuY29uc3QgREVGQVVMVF9GSUVMRF9TVFlMRVM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudEZpZWxkVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBJQmFzZUZpZWxkQ29tcG9uZW50LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgb25seUltYWdlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBBdHRhY2htZW50RmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZm9ybXVsYU9iamVjdDogYW55ID0ge307XHJcbiAgQElucHV0KCkgaW5Db25maWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdHlsZVZlcnNpb246IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgZm9yY2VTdGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuICBAT3V0cHV0KCkgb25BdHRhY2htZW50c0NoYW5nZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiZXFwQXR0YWNobWVudHNcIiwgeyBzdGF0aWM6IHRydWUgfSkgZXFwQXR0YWNobWVudHM6IEVxcEF0dGFjaG1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBmaWVsZFVpZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgc3R5bGVFbDogSFRNTFN0eWxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgc3RhdHVzU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZmllbGQuQWxsb3dlZE1pbWVUeXBlcykge1xyXG4gICAgICB0aGlzLmZpZWxkLkFsbG93ZWRNaW1lVHlwZXMgPSBBdmFpbGFibGVGaWxlRXh0ZW5zaW9ucy5jb25jYXQoQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zKS5tYXAoZXh0ID0+IGV4dC5rZXkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG5cclxuICAgIHRoaXMuZmllbGRVaWQgPSAnYWYtJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDEwKTtcclxuICAgIHRoaXMuaW5qZWN0QXR0YWNobWVudEZpZWxkU3R5bGVzKCk7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvRm9ybVN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3N0eWxlVmVyc2lvbiddICYmICFjaGFuZ2VzWydzdHlsZVZlcnNpb24nXS5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLmluamVjdEF0dGFjaG1lbnRGaWVsZFN0eWxlcygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZvcmNlU3RhdGUnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZVxyXG4gICAgICAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0eWxlRWw/LnBhcmVudE5vZGUpIHtcclxuICAgICAgdGhpcy5zdHlsZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zdHlsZUVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5qZWN0QXR0YWNobWVudEZpZWxkU3R5bGVzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkVWlkKSByZXR1cm47XHJcbiAgICBjb25zdCBjc3MgPSAodGhpcy5maWVsZCBhcyBBdHRhY2htZW50RmllbGQpPy5BdHRhY2htZW50RmllbGRTdHlsZUNTUyA/PyAoe30gYXMgQXR0YWNobWVudEZpZWxkU3R5bGVDU1MpO1xyXG4gICAgY29uc3QgcnVsZXMgPSB0aGlzLmJ1aWxkQ3NzUnVsZXModGhpcy5maWVsZFVpZCwgY3NzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc3R5bGVFbCkge1xyXG4gICAgICB0aGlzLnN0eWxlRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJykgYXMgSFRNTFN0eWxlRWxlbWVudDtcclxuICAgICAgdGhpcy5zdHlsZUVsLmlkID0gJ3N0eWxlLScgKyB0aGlzLmZpZWxkVWlkO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHRoaXMuc3R5bGVFbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0eWxlRWwudGV4dENvbnRlbnQgPSBydWxlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IodWlkOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcsIHM6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICBjYXNlICdOb3JtYWxlJzogICByZXR1cm4gYCMke3VpZH0ke3N9YDtcclxuICAgICAgY2FzZSAnTW91c2VvdmVyJzogcmV0dXJuIGAjJHt1aWR9OmhvdmVyJHtzfSwgIyR7dWlkfS5lcXAtc3RhdGUtaG92ZXIke3N9YDtcclxuICAgICAgY2FzZSAnTm90VmFsaWQnOiAgcmV0dXJuIGAjJHt1aWR9LmVxcC1pbnZhbGlkJHtzfWA7XHJcbiAgICAgIGNhc2UgJ1JlYWRvbmx5JzogIHJldHVybiBgIyR7dWlkfS5lcXAtcmVhZG9ubHkke3N9YDtcclxuICAgICAgZGVmYXVsdDogICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQ3NzUnVsZXModWlkOiBzdHJpbmcsIGNzczogQXR0YWNobWVudEZpZWxkU3R5bGVDU1MpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBlbCBvZiBFTEVNRU5UUykge1xyXG4gICAgICBjb25zdCBzRW50cnkgPSBFTEVNRU5UX1NFTEVDVE9SU1tlbF07XHJcbiAgICAgIGNvbnN0IHNlbExpc3QgPSBBcnJheS5pc0FycmF5KHNFbnRyeSkgPyBzRW50cnkgOiBbc0VudHJ5XTtcclxuXHJcbiAgICAgIGZvciAoY29uc3Qgc3RhdGUgb2YgU1RBVEVTKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gZWwgKyBzdGF0ZTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0VmFsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBERUZBVUxUX0ZJRUxEX1NUWUxFU1trZXldO1xyXG4gICAgICAgIGNvbnN0IHVzZXJWYWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IChjc3MgYXMgYW55KVtrZXldO1xyXG5cclxuICAgICAgICBpZiAoIWRlZmF1bHRWYWw/LnRyaW0oKSAmJiAhdXNlclZhbD8udHJpbSgpKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBzIG9mIHNlbExpc3QpIHtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5nZXRTZWxlY3Rvcih1aWQsIHN0YXRlLCBzKTtcclxuICAgICAgICAgIGlmICghc2VsZWN0b3IpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgIGlmIChkZWZhdWx0VmFsPy50cmltKCkpIGxpbmVzLnB1c2goYCR7c2VsZWN0b3J9IHsgJHtkZWZhdWx0VmFsfSB9YCk7XHJcbiAgICAgICAgICBpZiAodXNlclZhbD8udHJpbSgpKSAgICBsaW5lcy5wdXNoKGAke3NlbGVjdG9yfSB7ICR7dXNlclZhbH0gfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU3RhdGVDbGFzc2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkVWlkKSByZXR1cm47XHJcbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5maWVsZFVpZCk7XHJcbiAgICBpZiAoIXdyYXBwZXIpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtc3RhdGUtaG92ZXInLCB0aGlzLmZvcmNlU3RhdGUgPT09ICdNb3VzZW92ZXInKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JjZVN0YXRlID09PSAnTm90VmFsaWQnKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1pbnZhbGlkJywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1yZWFkb25seScsIGZhbHNlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSA9PT0gJ1JlYWRvbmx5Jykge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGZhbHNlKTtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgdHJ1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcmNlU3RhdGUgPT09ICdOb3JtYWxlJyB8fCB0aGlzLmZvcmNlU3RhdGUgPT09ICdNb3VzZW92ZXInKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1pbnZhbGlkJywgZmFsc2UpO1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtcmVhZG9ubHknLCBmYWxzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdHJsID0gdGhpcy5maWVsZD8uRm9ybUZvcm1Hcm91cD8uY29udHJvbHNbdGhpcy5maWVsZC5OYW1lXTtcclxuICAgIGNvbnN0IGlzSW52YWxpZCA9IGN0cmwgPyAoY3RybC5pbnZhbGlkICYmIGN0cmwudG91Y2hlZCkgOiBmYWxzZTtcclxuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSB0aGlzLmZpZWxkLlJlYWRvbmx5IHx8ICh0aGlzLmZpZWxkLkZvcm11bGEgIT0gbnVsbCAmJiB0aGlzLmZpZWxkLkZvcm11bGEgIT09ICcnKTtcclxuXHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGlzSW52YWxpZCk7XHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtcmVhZG9ubHknLCBpc1JlYWRvbmx5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlQ2xhc3MoZWw6IEVsZW1lbnQsIGNsczogc3RyaW5nLCBjb25kaXRpb246IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24pIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWwsIGNscyk7XHJcbiAgICBlbHNlIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWwsIGNscyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvRm9ybVN0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gICAgaWYgKHRoaXMuZmllbGQ/LkZvcm1Gb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5zdGF0dXNTdWIgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTdGF0ZUNsYXNzZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaWVsZCgpIHtcclxuICAgIGlmICgodGhpcy5maWVsZC5EYXRhR2V0dGVyLkRhdGFHZXR0ZXJUeXBlID09IERhdGFHZXR0ZXJUeXBlRW51bS5NYW51YWxlIHx8IHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVHlwZSA9PSBEYXRhR2V0dGVyVHlwZUVudW0uRm9ybXVsYSkgJiYgdGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLkZvcm11bGEsIHRoaXMucmVjb3JkLCB0aGlzLmZvcm11bGFPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmllbGQuVmlzaWJsZUlmKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuVmlzaWJsZUlmLCB0aGlzLnJlY29yZCwgdGhpcy5mb3JtdWxhT2JqZWN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGNoQXR0YWNobWVudExpc3QoZXZlbnQpIHtcclxuICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBldmVudDtcclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xyXG4gICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgICB0aGlzLm9uQXR0YWNobWVudHNDaGFuZ2UuZW1pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGb3JtQ29udHJvbFZhbHVlKCkge1xyXG4gICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0VmFsdWUodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVjb3JkVmFsdWVDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cInt7ZmllbGRVaWR9fVwiPlxyXG4gICAgPHAgKm5nSWY9XCIhZmllbGQuaXNNdWx0aUF0dGFjaFwiIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgIHt7ZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyBcIiAqXCIgOiBcIlwiKX19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhZmllbGQuaXNNdWx0aUF0dGFjaCAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdXCI+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXQtMlwiICpuZ0Zvcj1cImxldCBtZXRhZGF0YSBvZiBmaWVsZC5NZXRhZGF0YUZpZWxkc1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInV0aWxpdHlTZXJ2aWNlLmdldEZpZWxkU3lsZUNsYXNzKG1ldGFkYXRhKVwiPlxyXG4gICAgICAgICAgICA8ZHluYW1pYy1tb2R1bGUtZmllbGQtZml4IFtmaWVsZF09XCJtZXRhZGF0YVwiIFtyZWNvcmRdPVwicmVjb3JkW2ZpZWxkLk5hbWVdWzBdXCJcclxuICAgICAgICAgICAgICAgIChyZWNvcmRDaGFuZ2UpPVwidXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpXCI+XHJcbiAgICAgICAgICAgIDwvZHluYW1pYy1tb2R1bGUtZmllbGQtZml4PlxyXG4gICAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxlcXAtYXR0YWNobWVudHMgW2F0dGFjaG1lbnRzTGlzdF09XCJyZWNvcmRbZmllbGQuTmFtZV1cIiBbc2hvd01hdENhcmRdPVwidHJ1ZVwiIFthbGxvd09ubHlJbWFnZXNdPVwib25seUltYWdlc1wiXHJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwiZmllbGQuRm9ybUZvcm1Hcm91cC5kaXNhYmxlZFwiIFtzaG93SW5saW5lUHJldmlld109XCJ0cnVlXCIgW211bHRpcGxlQXR0YWNobWVudF09XCJmaWVsZC5pc011bHRpQXR0YWNoXCJcclxuICAgICAgICBbZGlzYWJsZUFjdGlvbl09XCJmaWVsZC5Gb3JtRm9ybUdyb3VwLmRpc2FibGVkXCIgW2FjY2VwdGVkRmlsZVR5cGVzXT1cImZpZWxkLkFsbG93ZWRNaW1lVHlwZXNcIiBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcclxuICAgICAgICBbaGVhZGVyVGl0bGVdPVwiZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyAnIConIDogJycpXCIgKGxvY2FsRWRpdGVkQXR0YWNobWVudHMpPVwiY2F0Y2hBdHRhY2htZW50TGlzdCgkZXZlbnQpXCJcclxuICAgICAgICAjZXFwQXR0YWNobWVudHM+XHJcbiAgICA8L2VxcC1hdHRhY2htZW50cz5cclxuPC9kaXY+XHJcblxyXG48IS0tIFRFTVBMQVRFIFBFUiBWSVNVQUxJWlpBUkUgTEEgQ09MT05OQSBERUxMQSBTRVpJT05FIE5FTExBIFRBQkVMTEEgREVJIEZJRUxEUyAtLT5cclxuPCEtLSA8bmctdGVtcGxhdGUgI21ldGFkYXRhQ29sdW1uVGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1jb2w9XCJjb2xcIj5cclxuICAgIDxkeW5hbWljLW1vZHVsZS1maWVsZC1maXggW2ZpZWxkXT1cImdldEZpZWxkRnJvbU1ldGFkYXRhKGNvbCwgcm93KVwiIFtyZWNvcmRdPVwicm93XCJcclxuICAgICAgICAocmVjb3JkQ2hhbmdlKT1cInVwZGF0ZU1ldGFkYXRhVmFsaWRpdHkoKVwiPlxyXG4gICAgPC9keW5hbWljLW1vZHVsZS1maWVsZC1maXg+XHJcbjwvbmctdGVtcGxhdGU+IC0tPlxyXG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUvYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFnQyxNQUFNLEVBQTRCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1SyxPQUFPLEVBQTRDLHVCQUF1QixFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFFOUosT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFbkYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7O0FBR3hFLE1BQU0saUJBQWlCLEdBQXlDO0lBQzlELFNBQVMsRUFBUyxFQUFFO0lBQ3BCLEtBQUssRUFBYSxDQUFDLFNBQVMsRUFBRSxnQ0FBZ0MsQ0FBQztJQUMvRCxlQUFlLEVBQUcsMkJBQTJCO0lBQzdDLGVBQWUsRUFBRyxnQ0FBZ0M7SUFDbEQsY0FBYyxFQUFJLDhCQUE4QjtJQUNoRCxnQkFBZ0IsRUFBRSwrQkFBK0I7SUFDakQsYUFBYSxFQUFLLGtEQUFrRDtDQUNyRSxDQUFDO0FBQ0YsTUFBTSxR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LG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUU7WUFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7OEhBcExVLGdDQUFnQztrSEFBaEMsZ0NBQWdDLG1lQzVCN0MsOGxEQTJCQTs0RkRDYSxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsMkJBQTJCO21LQU01QixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFFd0MsY0FBYztzQkFBNUQsU0FBUzt1QkFBQyxnQkFBZ0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9yZWNvcmQubW9kZWwnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50RmllbGQsIEF0dGFjaG1lbnRGaWVsZFN0eWxlQ1NTLCBBdmFpbGFibGVGaWxlRXh0ZW5zaW9ucywgQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2ZpZWxkcy9hdHRhY2htZW50RmllbGQubW9kZWwnO1xyXG5pbXBvcnQgeyBJQmFzZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vaW50ZXJmYWNlcy9pQmFzZUZpZWxkQ29tcG9uZW50LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFV0aWxpdHlIZWxwZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMvdXRpbGl0eUhlbHBlci5zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IFRtd0F0dGFjaG1lbnRzQ29tcG9uZW50IH0gZnJvbSAndG13LWF0dGFjaG1lbnRzJztcclxuaW1wb3J0IHsgRGF0YUdldHRlclR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuY29uc3QgRUxFTUVOVF9TRUxFQ1RPUlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfSA9IHtcclxuICBDb250YWluZXI6ICAgICAgICAnJyxcclxuICBMYWJlbDogICAgICAgICAgICBbJyBwLm1iLTInLCAnIC50bXctYXR0YWNobWVudHMtaGVhZGVyLXRpdGxlJ10sXHJcbiAgQm90dG9uZUFnZ2l1bmdpOiAgJyAudG13LWF0dGFjaG1lbnRzLWFkZC1idG4nLFxyXG4gIEJvdHRvbmVEb3dubG9hZDogICcgLnRtdy1hdHRhY2htZW50cy1kb3dubG9hZC1idG4nLFxyXG4gIEJvdHRvbmVFbGltaW5hOiAgICcgLnRtdy1hdHRhY2htZW50cy1kZWxldGUtYnRuJyxcclxuICBCb3R0b25lQW50ZXByaW1hOiAnIC50bXctYXR0YWNobWVudHMtcHJldmlldy1idG4nLFxyXG4gIENhbXBvTm9tZUZpbGU6ICAgICcgdG13LWF0dGFjaG1lbnRzIC50bXctYXR0YWNobWVudHMtZmlsZW5hbWUtaW5wdXQnLFxyXG59O1xyXG5jb25zdCBFTEVNRU5UUyA9IE9iamVjdC5rZXlzKEVMRU1FTlRfU0VMRUNUT1JTKTtcclxuY29uc3QgU1RBVEVTID0gWydOb3JtYWxlJywgJ01vdXNlb3ZlcicsICdOb3RWYWxpZCcsICdSZWFkb25seSddO1xyXG5cclxuY29uc3QgREVGQVVMVF9GSUVMRF9TVFlMRVM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXR0YWNobWVudC1maWVsZC10ZW1wbGF0ZScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2F0dGFjaG1lbnQtZmllbGQtdGVtcGxhdGUuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQXR0YWNobWVudEZpZWxkVGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBJQmFzZUZpZWxkQ29tcG9uZW50LCBBZnRlclZpZXdJbml0IHtcclxuXHJcbiAgQElucHV0KCkgb25seUltYWdlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGZpZWxkOiBBdHRhY2htZW50RmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZm9ybXVsYU9iamVjdDogYW55ID0ge307XHJcbiAgQElucHV0KCkgaW5Db25maWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdHlsZVZlcnNpb246IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgZm9yY2VTdGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuICBAT3V0cHV0KCkgb25BdHRhY2htZW50c0NoYW5nZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAVmlld0NoaWxkKFwiZXFwQXR0YWNobWVudHNcIiwgeyBzdGF0aWM6IHRydWUgfSkgZXFwQXR0YWNobWVudHM6IFRtd0F0dGFjaG1lbnRzQ29tcG9uZW50O1xyXG5cclxuICBmaWVsZFVpZDogc3RyaW5nO1xyXG4gIHByaXZhdGUgc3R5bGVFbDogSFRNTFN0eWxlRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIHByaXZhdGUgc3RhdHVzU3ViOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdXRpbGl0eVNlcnZpY2U6IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldEZvcm1Db250cm9sVmFsdWUoKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuZmllbGQuQWxsb3dlZE1pbWVUeXBlcykge1xyXG4gICAgICB0aGlzLmZpZWxkLkFsbG93ZWRNaW1lVHlwZXMgPSBBdmFpbGFibGVGaWxlRXh0ZW5zaW9ucy5jb25jYXQoQXZhaWxhYmxlSW1hZ2VFeHRlbnNpb25zKS5tYXAoZXh0ID0+IGV4dC5rZXkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVGaWVsZCgpO1xyXG5cclxuICAgIHRoaXMuZmllbGRVaWQgPSAnYWYtJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDEwKTtcclxuICAgIHRoaXMuaW5qZWN0QXR0YWNobWVudEZpZWxkU3R5bGVzKCk7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvRm9ybVN0YXR1cygpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3N0eWxlVmVyc2lvbiddICYmICFjaGFuZ2VzWydzdHlsZVZlcnNpb24nXS5maXJzdENoYW5nZSkge1xyXG4gICAgICB0aGlzLmluamVjdEF0dGFjaG1lbnRGaWVsZFN0eWxlcygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZvcmNlU3RhdGUnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZVxyXG4gICAgICAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0eWxlRWw/LnBhcmVudE5vZGUpIHtcclxuICAgICAgdGhpcy5zdHlsZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zdHlsZUVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5qZWN0QXR0YWNobWVudEZpZWxkU3R5bGVzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkVWlkKSByZXR1cm47XHJcbiAgICBjb25zdCBjc3MgPSAodGhpcy5maWVsZCBhcyBBdHRhY2htZW50RmllbGQpPy5BdHRhY2htZW50RmllbGRTdHlsZUNTUyA/PyAoe30gYXMgQXR0YWNobWVudEZpZWxkU3R5bGVDU1MpO1xyXG4gICAgY29uc3QgcnVsZXMgPSB0aGlzLmJ1aWxkQ3NzUnVsZXModGhpcy5maWVsZFVpZCwgY3NzKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuc3R5bGVFbCkge1xyXG4gICAgICB0aGlzLnN0eWxlRWwgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJykgYXMgSFRNTFN0eWxlRWxlbWVudDtcclxuICAgICAgdGhpcy5zdHlsZUVsLmlkID0gJ3N0eWxlLScgKyB0aGlzLmZpZWxkVWlkO1xyXG4gICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmhlYWQsIHRoaXMuc3R5bGVFbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0eWxlRWwudGV4dENvbnRlbnQgPSBydWxlcztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0U2VsZWN0b3IodWlkOiBzdHJpbmcsIHN0YXRlOiBzdHJpbmcsIHM6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgc3dpdGNoIChzdGF0ZSkge1xyXG4gICAgICBjYXNlICdOb3JtYWxlJzogICByZXR1cm4gYCMke3VpZH0ke3N9YDtcclxuICAgICAgY2FzZSAnTW91c2VvdmVyJzogcmV0dXJuIGAjJHt1aWR9OmhvdmVyJHtzfSwgIyR7dWlkfS5lcXAtc3RhdGUtaG92ZXIke3N9YDtcclxuICAgICAgY2FzZSAnTm90VmFsaWQnOiAgcmV0dXJuIGAjJHt1aWR9LmVxcC1pbnZhbGlkJHtzfWA7XHJcbiAgICAgIGNhc2UgJ1JlYWRvbmx5JzogIHJldHVybiBgIyR7dWlkfS5lcXAtcmVhZG9ubHkke3N9YDtcclxuICAgICAgZGVmYXVsdDogICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGJ1aWxkQ3NzUnVsZXModWlkOiBzdHJpbmcsIGNzczogQXR0YWNobWVudEZpZWxkU3R5bGVDU1MpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGluZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgZm9yIChjb25zdCBlbCBvZiBFTEVNRU5UUykge1xyXG4gICAgICBjb25zdCBzRW50cnkgPSBFTEVNRU5UX1NFTEVDVE9SU1tlbF07XHJcbiAgICAgIGNvbnN0IHNlbExpc3QgPSBBcnJheS5pc0FycmF5KHNFbnRyeSkgPyBzRW50cnkgOiBbc0VudHJ5XTtcclxuXHJcbiAgICAgIGZvciAoY29uc3Qgc3RhdGUgb2YgU1RBVEVTKSB7XHJcbiAgICAgICAgY29uc3Qga2V5ID0gZWwgKyBzdGF0ZTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0VmFsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSBERUZBVUxUX0ZJRUxEX1NUWUxFU1trZXldO1xyXG4gICAgICAgIGNvbnN0IHVzZXJWYWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9IChjc3MgYXMgYW55KVtrZXldO1xyXG5cclxuICAgICAgICBpZiAoIWRlZmF1bHRWYWw/LnRyaW0oKSAmJiAhdXNlclZhbD8udHJpbSgpKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgZm9yIChjb25zdCBzIG9mIHNlbExpc3QpIHtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5nZXRTZWxlY3Rvcih1aWQsIHN0YXRlLCBzKTtcclxuICAgICAgICAgIGlmICghc2VsZWN0b3IpIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgIGlmIChkZWZhdWx0VmFsPy50cmltKCkpIGxpbmVzLnB1c2goYCR7c2VsZWN0b3J9IHsgJHtkZWZhdWx0VmFsfSB9YCk7XHJcbiAgICAgICAgICBpZiAodXNlclZhbD8udHJpbSgpKSAgICBsaW5lcy5wdXNoKGAke3NlbGVjdG9yfSB7ICR7dXNlclZhbH0gfWApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBsaW5lcy5qb2luKCdcXG4nKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlU3RhdGVDbGFzc2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmZpZWxkVWlkKSByZXR1cm47XHJcbiAgICBjb25zdCB3cmFwcGVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5maWVsZFVpZCk7XHJcbiAgICBpZiAoIXdyYXBwZXIpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtc3RhdGUtaG92ZXInLCB0aGlzLmZvcmNlU3RhdGUgPT09ICdNb3VzZW92ZXInKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JjZVN0YXRlID09PSAnTm90VmFsaWQnKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1pbnZhbGlkJywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1yZWFkb25seScsIGZhbHNlKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSA9PT0gJ1JlYWRvbmx5Jykge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGZhbHNlKTtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgdHJ1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcmNlU3RhdGUgPT09ICdOb3JtYWxlJyB8fCB0aGlzLmZvcmNlU3RhdGUgPT09ICdNb3VzZW92ZXInKSB7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1pbnZhbGlkJywgZmFsc2UpO1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtcmVhZG9ubHknLCBmYWxzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjdHJsID0gdGhpcy5maWVsZD8uRm9ybUZvcm1Hcm91cD8uY29udHJvbHNbdGhpcy5maWVsZC5OYW1lXTtcclxuICAgIGNvbnN0IGlzSW52YWxpZCA9IGN0cmwgPyAoY3RybC5pbnZhbGlkICYmIGN0cmwudG91Y2hlZCkgOiBmYWxzZTtcclxuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSB0aGlzLmZpZWxkLlJlYWRvbmx5IHx8ICh0aGlzLmZpZWxkLkZvcm11bGEgIT0gbnVsbCAmJiB0aGlzLmZpZWxkLkZvcm11bGEgIT09ICcnKTtcclxuXHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGlzSW52YWxpZCk7XHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtcmVhZG9ubHknLCBpc1JlYWRvbmx5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlQ2xhc3MoZWw6IEVsZW1lbnQsIGNsczogc3RyaW5nLCBjb25kaXRpb246IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24pIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWwsIGNscyk7XHJcbiAgICBlbHNlIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWwsIGNscyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvRm9ybVN0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gICAgaWYgKHRoaXMuZmllbGQ/LkZvcm1Gb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5zdGF0dXNTdWIgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTdGF0ZUNsYXNzZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVGaWVsZCgpIHtcclxuICAgIGlmICgodGhpcy5maWVsZC5EYXRhR2V0dGVyLkRhdGFHZXR0ZXJUeXBlID09IERhdGFHZXR0ZXJUeXBlRW51bS5NYW51YWxlIHx8IHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVHlwZSA9PSBEYXRhR2V0dGVyVHlwZUVudW0uRm9ybXVsYSkgJiYgdGhpcy5maWVsZC5Gb3JtdWxhKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLkZvcm11bGEsIHRoaXMucmVjb3JkLCB0aGlzLmZvcm11bGFPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmllbGQuVmlzaWJsZUlmKSB7XHJcbiAgICAgIHRoaXMuZmllbGQuSW5MaXN0VmlldyA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuVmlzaWJsZUlmLCB0aGlzLnJlY29yZCwgdGhpcy5mb3JtdWxhT2JqZWN0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNhdGNoQXR0YWNobWVudExpc3QoZXZlbnQpIHtcclxuICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV0gPSBldmVudDtcclxuICAgIHRoaXMuc2V0Rm9ybUNvbnRyb2xWYWx1ZSgpO1xyXG4gICAgdGhpcy5vblJlY29yZFZhbHVlQ2hhbmdlKCk7XHJcbiAgICB0aGlzLm9uQXR0YWNobWVudHNDaGFuZ2UuZW1pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRGb3JtQ29udHJvbFZhbHVlKCkge1xyXG4gICAgdGhpcy5maWVsZC5Gb3JtRm9ybUdyb3VwLmNvbnRyb2xzW3RoaXMuZmllbGQuTmFtZV0uc2V0VmFsdWUodGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uUmVjb3JkVmFsdWVDaGFuZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBpZD1cInt7ZmllbGRVaWR9fVwiPlxyXG4gICAgPHAgKm5nSWY9XCIhZmllbGQuaXNNdWx0aUF0dGFjaFwiIGNsYXNzPVwibWItMlwiPlxyXG4gICAgICAgIHt7ZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyBcIiAqXCIgOiBcIlwiKX19XHJcbiAgICA8L3A+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nSWY9XCIhZmllbGQuaXNNdWx0aUF0dGFjaCAmJiByZWNvcmRbZmllbGQuTmFtZV0gJiYgcmVjb3JkW2ZpZWxkLk5hbWVdWzBdXCI+XHJcbiAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibXQtMlwiICpuZ0Zvcj1cImxldCBtZXRhZGF0YSBvZiBmaWVsZC5NZXRhZGF0YUZpZWxkc1wiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInV0aWxpdHlTZXJ2aWNlLmdldEZpZWxkU3lsZUNsYXNzKG1ldGFkYXRhKVwiPlxyXG4gICAgICAgICAgICA8ZHluYW1pYy1tb2R1bGUtZmllbGQtZml4IFtmaWVsZF09XCJtZXRhZGF0YVwiIFtyZWNvcmRdPVwicmVjb3JkW2ZpZWxkLk5hbWVdWzBdXCJcclxuICAgICAgICAgICAgICAgIChyZWNvcmRDaGFuZ2UpPVwidXBkYXRlTWV0YWRhdGFWYWxpZGl0eSgpXCI+XHJcbiAgICAgICAgICAgIDwvZHluYW1pYy1tb2R1bGUtZmllbGQtZml4PlxyXG4gICAgICAgIDwvZGl2PiAtLT5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDx0bXctYXR0YWNobWVudHMgW2F0dGFjaG1lbnRzTGlzdF09XCJyZWNvcmRbZmllbGQuTmFtZV1cIiBbc2hvd01hdENhcmRdPVwidHJ1ZVwiIFthbGxvd09ubHlJbWFnZXNdPVwib25seUltYWdlc1wiXHJcbiAgICAgICAgW2lzRGlzYWJsZWRdPVwiZmllbGQuRm9ybUZvcm1Hcm91cC5kaXNhYmxlZFwiIFtzaG93SW5saW5lUHJldmlld109XCJ0cnVlXCIgW211bHRpcGxlQXR0YWNobWVudF09XCJmaWVsZC5pc011bHRpQXR0YWNoXCJcclxuICAgICAgICBbZGlzYWJsZUFjdGlvbl09XCJmaWVsZC5Gb3JtRm9ybUdyb3VwLmRpc2FibGVkXCIgW2FjY2VwdGVkRmlsZVR5cGVzXT1cImZpZWxkLkFsbG93ZWRNaW1lVHlwZXNcIiBbc2hvd0hlYWRlcl09XCJ0cnVlXCJcclxuICAgICAgICBbaGVhZGVyVGl0bGVdPVwiZmllbGQuRGVzY3JpcHRpb24gKyAoZmllbGQuUmVxdWlyZWQgPyAnIConIDogJycpXCIgKGxvY2FsRWRpdGVkQXR0YWNobWVudHMpPVwiY2F0Y2hBdHRhY2htZW50TGlzdCgkZXZlbnQpXCJcclxuICAgICAgICAjZXFwQXR0YWNobWVudHM+XHJcbiAgICA8L3Rtdy1hdHRhY2htZW50cz5cclxuPC9kaXY+XHJcblxyXG48IS0tIFRFTVBMQVRFIFBFUiBWSVNVQUxJWlpBUkUgTEEgQ09MT05OQSBERUxMQSBTRVpJT05FIE5FTExBIFRBQkVMTEEgREVJIEZJRUxEUyAtLT5cclxuPCEtLSA8bmctdGVtcGxhdGUgI21ldGFkYXRhQ29sdW1uVGVtcGxhdGUgbGV0LXJvdz1cInJvd1wiIGxldC1jb2w9XCJjb2xcIj5cclxuICAgIDxkeW5hbWljLW1vZHVsZS1maWVsZC1maXggW2ZpZWxkXT1cImdldEZpZWxkRnJvbU1ldGFkYXRhKGNvbCwgcm93KVwiIFtyZWNvcmRdPVwicm93XCJcclxuICAgICAgICAocmVjb3JkQ2hhbmdlKT1cInVwZGF0ZU1ldGFkYXRhVmFsaWRpdHkoKVwiPlxyXG4gICAgPC9keW5hbWljLW1vZHVsZS1maWVsZC1maXg+XHJcbjwvbmctdGVtcGxhdGU+IC0tPlxyXG4iXX0=
@@ -220,7 +220,7 @@ export class DateFieldTemplateComponent {
220
220
  }
221
221
  /**
222
222
  * In base al formato della data richiesta nel DateField (solo data, solo orario o data e ora)
223
- * imposta la visualizzazione corretta del componente eqp-datetimepicker.
223
+ * imposta la visualizzazione corretta del componente tmw-datetimepicker.
224
224
  */
225
225
  setTimeType() {
226
226
  switch (this.field.IsOnlyDate) {
@@ -256,4 +256,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
256
256
  }], recordChange: [{
257
257
  type: Output
258
258
  }] } });
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFL0gsT0FBTyxFQUFnQyxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTNHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBR3BELE1BQU0saUJBQWlCLEdBQThCO0lBQ25ELFNBQVMsRUFBSSxpQ0FBaUM7SUFDOUMsV0FBVyxFQUFFLG9CQUFvQjtDQUNsQyxDQUFDO0FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2hELE1BQU0sTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRTNFLE1BQU0s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USxDQUFDLFVBQVUsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsYUFBYSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLGdCQUFnQixDQUFDLFlBQVksQ0FBQztnQkFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO2dCQUNwQyxNQUFNO1NBQ1Q7SUFDSCxDQUFDOzt3SEFoUFUsMEJBQTBCOzRHQUExQiwwQkFBMEIsdVJDdkJ2QyxneUNBeUJBOzRGREZhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxxQkFBcUI7Z0dBTXRCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZUZpZWxkLCBEYXRlRmllbGRTdHlsZUNTUywgRGF0ZVRpbWVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvZGF0ZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEYXRhR2V0dGVyVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgTW9kZUVudW0sIFRpbWVUeXBlRW51bSB9IGZyb20gXCJ0bXctcGlja2VyXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuY29uc3QgRUxFTUVOVF9TRUxFQ1RPUlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgQ29udGFpbmVyOiAgICcgbWF0LWZvcm0tZmllbGQudG13LXBpY2tlci1tYWluJyxcclxuICBEZXNjcml6aW9uZTogJyAudG13LXBpY2tlci1sYWJlbCcsXHJcbn07XHJcbmNvbnN0IEVMRU1FTlRTID0gT2JqZWN0LmtleXMoRUxFTUVOVF9TRUxFQ1RPUlMpO1xyXG5jb25zdCBTVEFURVMgPSBbJ05vcm1hbGUnLCAnTW91c2VvdmVyJywgJ0ZvY3VzZWQnLCAnTm90VmFsaWQnLCAnUmVhZG9ubHknXTtcclxuXHJcbmNvbnN0IERFRkFVTFRfRklFTERfU1RZTEVTOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhdGUtZmllbGQtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVGaWVsZFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkOiBEYXRlRmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZm9ybXVsYU9iamVjdDogYW55ID0ge307XHJcbiAgQElucHV0KCkgaW5Db25maWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdHlsZVZlcnNpb246IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgZm9yY2VTdGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgbW9kZXMgPSBNb2RlRW51bTtcclxuICB0aW1lVHlwZSA9IFRpbWVUeXBlRW51bTtcclxuICBtb2RlOiBNb2RlRW51bTtcclxuXHJcbiAgc2hvd1NlY29uZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvdXRwdXRGb3JtYXQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIGZpZWxkVWlkOiBzdHJpbmc7XHJcbiAgaG92ZXJpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdGF0dXNTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGRVaWQgPSAnZHQtJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDEwKTtcclxuICAgIHRoaXMuc2V0VGltZVR5cGUoKTtcclxuICAgIHRoaXMuc2V0T3V0cHV0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB0aGlzLmluamVjdERhdGVGaWVsZFN0eWxlcygpO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0Zvcm1TdGF0dXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzWydzdHlsZVZlcnNpb24nXSAmJiAhY2hhbmdlc1snc3R5bGVWZXJzaW9uJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5zZXRUaW1lVHlwZSgpO1xyXG4gICAgICB0aGlzLnNldE91dHB1dEZvcm1hdCgpO1xyXG4gICAgICB0aGlzLmluamVjdERhdGVGaWVsZFN0eWxlcygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZvcmNlU3RhdGUnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0eWxlRWw/LnBhcmVudE5vZGUpIHtcclxuICAgICAgdGhpcy5zdHlsZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zdHlsZUVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmplY3REYXRlRmllbGRTdHlsZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGRVaWQpIHJldHVybjtcclxuICAgIGNvbnN0IGNzcyA9ICh0aGlzLmZpZWxkIGFzIERhdGVGaWVsZCk/LkRhdGVGaWVsZFN0eWxlQ1NTID8/ICh7fSBhcyBEYXRlRmllbGRTdHlsZUNTUyk7XHJcbiAgICBjb25zdCBydWxlcyA9IHRoaXMuYnVpbGRDc3NSdWxlcyh0aGlzLmZpZWxkVWlkLCBjc3MpO1xyXG5cclxuICAgIGlmICghdGhpcy5zdHlsZUVsKSB7XHJcbiAgICAgIHRoaXMuc3R5bGVFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKSBhcyBIVE1MU3R5bGVFbGVtZW50O1xyXG4gICAgICB0aGlzLnN0eWxlRWwuaWQgPSAnc3R5bGUtJyArIHRoaXMuZmllbGRVaWQ7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuaGVhZCwgdGhpcy5zdHlsZUVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3R5bGVFbC50ZXh0Q29udGVudCA9IHJ1bGVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZWxlY3Rvcih1aWQ6IHN0cmluZywgc3RhdGU6IHN0cmluZywgczogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XHJcbiAgICAgIGNhc2UgJ05vcm1hbGUnOiAgIHJldHVybiBgIyR7dWlkfSR7c31gO1xyXG4gICAgICBjYXNlICdNb3VzZW92ZXInOiByZXR1cm4gYCMke3VpZH06aG92ZXIke3N9LCAjJHt1aWR9LmVxcC1zdGF0ZS1ob3ZlciR7c31gO1xyXG4gICAgICBjYXNlICdGb2N1c2VkJzogICByZXR1cm4gYCMke3VpZH06Zm9jdXMtd2l0aGluJHtzfSwgIyR7dWlkfS5lcXAtc3RhdGUtZm9jdXNlZCR7c31gO1xyXG4gICAgICBjYXNlICdOb3RWYWxpZCc6ICByZXR1cm4gYCMke3VpZH0uZXFwLWludmFsaWQke3N9YDtcclxuICAgICAgY2FzZSAnUmVhZG9ubHknOiAgcmV0dXJuIGAjJHt1aWR9LmVxcC1yZWFkb25seSR7c31gO1xyXG4gICAgICBkZWZhdWx0OiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRDc3NSdWxlcyh1aWQ6IHN0cmluZywgY3NzOiBEYXRlRmllbGRTdHlsZUNTUyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGVsIG9mIEVMRU1FTlRTKSB7XHJcbiAgICAgIGNvbnN0IHMgPSBFTEVNRU5UX1NFTEVDVE9SU1tlbF07XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IHN0YXRlIG9mIFNUQVRFUykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGVsICsgc3RhdGU7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gREVGQVVMVF9GSUVMRF9TVFlMRVNba2V5XTtcclxuICAgICAgICBjb25zdCB1c2VyVmFsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAoY3NzIGFzIGFueSlba2V5XTtcclxuXHJcbiAgICAgICAgaWYgKCFkZWZhdWx0VmFsPy50cmltKCkgJiYgIXVzZXJWYWw/LnRyaW0oKSkgY29udGludWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5nZXRTZWxlY3Rvcih1aWQsIHN0YXRlLCBzKTtcclxuICAgICAgICBpZiAoIXNlbGVjdG9yKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgaWYgKGRlZmF1bHRWYWw/LnRyaW0oKSkgbGluZXMucHVzaChgJHtzZWxlY3Rvcn0geyAke2RlZmF1bHRWYWx9IH1gKTtcclxuICAgICAgICBpZiAodXNlclZhbD8udHJpbSgpKSAgICBsaW5lcy5wdXNoKGAke3NlbGVjdG9yfSB7ICR7dXNlclZhbH0gfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZUNsYXNzZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGRVaWQpIHJldHVybjtcclxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpZWxkVWlkKTtcclxuICAgIGlmICghd3JhcHBlcikgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1zdGF0ZS1ob3ZlcicsICAgdGhpcy5mb3JjZVN0YXRlID09PSAnTW91c2VvdmVyJyk7XHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtc3RhdGUtZm9jdXNlZCcsICB0aGlzLmZvcmNlU3RhdGUgPT09ICdGb2N1c2VkJyk7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSA9PT0gJ05vdFZhbGlkJykge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIHRydWUpO1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtcmVhZG9ubHknLCBmYWxzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcmNlU3RhdGUgPT09ICdSZWFkb25seScpIHtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1pbnZhbGlkJywgZmFsc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JjZVN0YXRlID09PSAnTm9ybWFsZScgfHwgdGhpcy5mb3JjZVN0YXRlID09PSAnTW91c2VvdmVyJyB8fCB0aGlzLmZvcmNlU3RhdGUgPT09ICdGb2N1c2VkJykge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGZhbHNlKTtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgZmFsc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNSZWFkb25seSA9IHRoaXMuZmllbGQuUmVhZG9ubHkgfHwgKHRoaXMuZmllbGQuRm9ybXVsYSAhPSBudWxsICYmIHRoaXMuZmllbGQuRm9ybXVsYSAhPT0gJycpO1xyXG4gICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgaXNSZWFkb25seSk7XHJcblxyXG4gICAgY29uc3QgY3RybCA9IHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cD8uY29udHJvbHM/Llt0aGlzLmZpZWxkLk5hbWVdO1xyXG4gICAgaWYgKGN0cmw/LnRvdWNoZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLWludmFsaWQnLCB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuaW52YWxpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlQ2xhc3MoZWw6IEVsZW1lbnQsIGNsczogc3RyaW5nLCBjb25kaXRpb246IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24pIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWwsIGNscyk7XHJcbiAgICBlbHNlIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWwsIGNscyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvRm9ybVN0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gICAgaWYgKHRoaXMuZmllbGQ/LkZvcm1Gb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5zdGF0dXNTdWIgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTdGF0ZUNsYXNzZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBhY3RpdmVTdHlsZVN1ZmZpeCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSkgcmV0dXJuIHRoaXMuZm9yY2VTdGF0ZTtcclxuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSB0aGlzLmZpZWxkLlJlYWRvbmx5IHx8ICh0aGlzLmZpZWxkLkZvcm11bGEgIT0gbnVsbCAmJiB0aGlzLmZpZWxkLkZvcm11bGEgIT09ICcnKTtcclxuICAgIGlmIChpc1JlYWRvbmx5KSByZXR1cm4gJ1JlYWRvbmx5JztcclxuICAgIGNvbnN0IGN0cmwgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXA/LmNvbnRyb2xzPy5bdGhpcy5maWVsZC5OYW1lXTtcclxuICAgIGlmIChjdHJsPy50b3VjaGVkICYmIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cD8uaW52YWxpZCkgcmV0dXJuICdOb3RWYWxpZCc7XHJcbiAgICBpZiAodGhpcy5mb2N1c2VkKSByZXR1cm4gJ0ZvY3VzZWQnO1xyXG4gICAgaWYgKHRoaXMuaG92ZXJpbmcpIHJldHVybiAnTW91c2VvdmVyJztcclxuICAgIHJldHVybiAnTm9ybWFsZSc7XHJcbiAgfVxyXG5cclxuICBnZXREYXRlU3R5bGVCeVN0YXRlKGJhc2VLZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjc3MgPSAodGhpcy5maWVsZCBhcyBEYXRlRmllbGQpPy5EYXRlRmllbGRTdHlsZUNTUztcclxuICAgIGlmICghY3NzKSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gKGNzcyBhcyBhbnkpW2Jhc2VLZXkgKyB0aGlzLmFjdGl2ZVN0eWxlU3VmZml4XSA/PyAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgYWdnaW9ybmFyZSBpbCB2YWxvcmUgZGVsIGNhbXBvIHF1YW5kbyBxdWVzdG8gw6ggcmFwcHJlc2VudGF0byBkYSB1bmEgZm9ybXVsYS5cclxuICAgKi9cclxuICB1cGRhdGVGaWVsZCgpIHtcclxuICAgIGlmICh0aGlzLmZpZWxkLlJlYWRvbmx5SWYpIHtcclxuICAgICAgdGhpcy5maWVsZC5SZWFkb25seSA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuUmVhZG9ubHlJZiwgdGhpcy5yZWNvcmQsIHRoaXMuZm9ybXVsYU9iamVjdCk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVHlwZSA9PSBEYXRhR2V0dGVyVHlwZUVudW0uTWFudWFsZSB8fCB0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlclR5cGUgPT0gRGF0YUdldHRlclR5cGVFbnVtLkZvcm11bGEpICYmIHRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5Gb3JtdWxhLCB0aGlzLnJlY29yZCwgdGhpcy5mb3JtdWxhT2JqZWN0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpZWxkLlZpc2libGVJZikge1xyXG4gICAgICB0aGlzLmZpZWxkLkluTGlzdFZpZXcgPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLlZpc2libGVJZiwgdGhpcy5yZWNvcmQsIHRoaXMuZm9ybXVsYU9iamVjdCk7XHJcbiAgICAgIGlmKCF0aGlzLmZpZWxkLkluTGlzdFZpZXcgJiYgIXRoaXMuZmllbGQuTWFpbnRhaW5fVmFsdWUpe1xyXG4gICAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV09bnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVHlwZSA9PSBEYXRhR2V0dGVyVHlwZUVudW0uTWFudWFsZSAmJiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID09IG51bGwpIHtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuICAgKi9cclxuICBvblJlY29yZFZhbHVlQ2hhbmdlKGV2KSB7XHJcbiAgICB0aGlzLmZpZWxkLkZpZWxkVmFsdWU9ZXY7XHJcbiAgICB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuZ2V0KFt0aGlzLmZpZWxkLk5hbWVdKS5zZXRWYWx1ZShldik7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE91dHB1dEZvcm1hdCgpe1xyXG5cclxuICAgIGlmICh0aGlzLmZpZWxkLkRhdGVGb3JtYXQgIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gdGhpcy5maWVsZC5EYXRlRm9ybWF0XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5maWVsZC5Jc09ubHlEYXRlID09IERhdGVUaW1lVHlwZUVudW1bJ1NvbG8gZGF0YSddKXtcclxuICAgICAgICB0aGlzLm91dHB1dEZvcm1hdCA9ICdkZC9NTS95eXl5JztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5maWVsZC5Jc09ubHlEYXRlID09IERhdGVUaW1lVHlwZUVudW1bJ0RhdGEgZSBvcmEnXSl7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRGb3JtYXQgPSAnZGQvTU0veXl5eSBISDptbSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZmllbGQuSXNPbmx5RGF0ZSA9PSBEYXRlVGltZVR5cGVFbnVtWydTb2xvIG9yYXJpbyddKXtcclxuICAgICAgICB0aGlzLm91dHB1dEZvcm1hdCA9ICdISDptbSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vdXRwdXRGb3JtYXQuaW5kZXhPZihcInNzXCIpICE9IC0xKXtcclxuICAgICAgdGhpcy5zaG93U2Vjb25kcyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW4gYmFzZSBhbCBmb3JtYXRvIGRlbGxhIGRhdGEgcmljaGllc3RhIG5lbCBEYXRlRmllbGQgKHNvbG8gZGF0YSwgc29sbyBvcmFyaW8gbyBkYXRhIGUgb3JhKVxyXG4gICAqIGltcG9zdGEgbGEgdmlzdWFsaXp6YXppb25lIGNvcnJldHRhIGRlbCBjb21wb25lbnRlIGVxcC1kYXRldGltZXBpY2tlci5cclxuICAgKi9cclxuICBwcml2YXRlIHNldFRpbWVUeXBlKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLmZpZWxkLklzT25seURhdGUpIHtcclxuICAgICAgY2FzZSBEYXRlVGltZVR5cGVFbnVtW1wiU29sbyBkYXRhXCJdOlxyXG4gICAgICAgIHRoaXMubW9kZSA9IE1vZGVFbnVtLkRBVEVQSUNLRVI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRGF0ZVRpbWVUeXBlRW51bVtcIlNvbG8gb3JhcmlvXCJdOlxyXG4gICAgICAgIHRoaXMubW9kZSA9IE1vZGVFbnVtLlRJTUVQSUNLRVI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRGF0ZVRpbWVUeXBlRW51bVtcIkRhdGEgZSBvcmFcIl06XHJcbiAgICAgICAgdGhpcy5tb2RlID0gTW9kZUVudW0uREFURVRJTUVQSUNLRVI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ7e2ZpZWxkVWlkfX1cIlxyXG4gICAgIChtb3VzZWVudGVyKT1cImhvdmVyaW5nPXRydWVcIiAobW91c2VsZWF2ZSk9XCJob3ZlcmluZz1mYWxzZVwiXHJcbiAgICAgKGZvY3VzaW4pPVwiZm9jdXNlZD10cnVlXCIgICAoZm9jdXNvdXQpPVwiZm9jdXNlZD1mYWxzZVwiPlxyXG4gICAgPHRtdy1kYXRldGltZXBpY2tlclxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5EZXNjcmlwdGlvblwiXHJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLkRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbcGlja2VyTW9kZV09XCJtb2RlXCJcclxuICAgICAgICBbbWluRGF0ZV09XCJmaWVsZC5NaW5EYXRlID8gZmllbGQuTWluRGF0ZSA6IG51bGxcIlxyXG4gICAgICAgIFttYXhEYXRlXT1cImZpZWxkLk1heERhdGUgPyBmaWVsZC5NYXhEYXRlIDogbnVsbFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLlJlYWRvbmx5XCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInJlY29yZFtmaWVsZC5OYW1lXVwiXHJcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25SZWNvcmRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbb3V0cHV0Rm9ybWF0XT1cIm91dHB1dEZvcm1hdFwiXHJcbiAgICAgICAgW3Nob3dTZWNvbmRzXT1cInNob3dTZWNvbmRzXCJcclxuICAgICAgICBbY29udGFpbmVyU3R5bGVdPVwiZ2V0RGF0ZVN0eWxlQnlTdGF0ZSgnQ29udGVuaXRvcmVJbnRlcm5vJylcIlxyXG4gICAgICAgIFtpbnB1dFN0eWxlXT1cImdldERhdGVTdHlsZUJ5U3RhdGUoJ0NhbXBvRGF0YScpXCJcclxuICAgICAgICBbY2FsZW5kYXJCdXR0b25TdHlsZV09XCJnZXREYXRlU3R5bGVCeVN0YXRlKCdJY29uYUNhbGVuZGFyaW8nKVwiXHJcbiAgICAgICAgW2Nsb2NrQnV0dG9uU3R5bGVdPVwiZ2V0RGF0ZVN0eWxlQnlTdGF0ZSgnSWNvbmFPcm9sb2dpbycpXCJcclxuICAgICAgICBbY2xvc2VCdXR0b25TdHlsZV09XCJnZXREYXRlU3R5bGVCeVN0YXRlKCdJY29uYUNhbmNlbGxhemlvbmUnKVwiXHJcbiAgICAgICAgW3Rvb2x0aXBTdHlsZV09XCJnZXREYXRlU3R5bGVCeVN0YXRlKCdUb29sdGlwJylcIlxyXG4gICAgICAgIFtpY29uc1Bvc2l0aW9uXT1cImZpZWxkLkljb25zUG9zaXRpb24gfHwgJ3JpZ2h0J1wiXHJcbiAgICAgICAgW2Nsb3NlSWNvblBvc2l0aW9uXT1cImZpZWxkLkNsb3NlSWNvblBvc2l0aW9uIHx8ICdyaWdodCdcIlxyXG4gICAgICAgIFt1c2VUb29sdGlwXT1cImZpZWxkLlVzZVRvb2x0aXAgfHwgZmFsc2VcIj5cclxuICAgIDwvdG13LWRhdGV0aW1lcGlja2VyPlxyXG48L2Rpdj5cclxuIl19
259
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvZmllbGQtdGVtcGxhdGVzL2RhdGUtZmllbGQtdGVtcGxhdGUvZGF0ZS1maWVsZC10ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFL0gsT0FBTyxFQUFnQyxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRTNHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7O0FBR3BELE1BQU0saUJBQWlCLEdBQThCO0lBQ25ELFNBQVMsRUFBSSxpQ0FBaUM7SUFDOUMsV0FBVyxFQUFFLG9CQUFvQjtDQUNsQyxDQUFDO0FBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQ2hELE1BQU0sTUFBTSxHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRTNFLE1BQU0s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USxDQUFDLFVBQVUsQ0FBQztnQkFDaEMsTUFBTTtZQUNSLEtBQUssZ0JBQWdCLENBQUMsYUFBYSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUM7Z0JBQ2hDLE1BQU07WUFDUixLQUFLLGdCQUFnQixDQUFDLFlBQVksQ0FBQztnQkFDakMsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO2dCQUNwQyxNQUFNO1NBQ1Q7SUFDSCxDQUFDOzt3SEFoUFUsMEJBQTBCOzRHQUExQiwwQkFBMEIsdVJDdkJ2QyxneUNBeUJBOzRGREZhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDRSxxQkFBcUI7Z0dBTXRCLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZUZpZWxkLCBEYXRlRmllbGRTdHlsZUNTUywgRGF0ZVRpbWVUeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9maWVsZHMvZGF0ZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgSUJhc2VGaWVsZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2ludGVyZmFjZXMvaUJhc2VGaWVsZENvbXBvbmVudC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBVdGlsaXR5SGVscGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzL3V0aWxpdHlIZWxwZXIuc2VydmljZXMnO1xyXG5pbXBvcnQgeyBEYXRhR2V0dGVyVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgTW9kZUVudW0sIFRpbWVUeXBlRW51bSB9IGZyb20gXCJ0bXctcGlja2VyXCI7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuY29uc3QgRUxFTUVOVF9TRUxFQ1RPUlM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgQ29udGFpbmVyOiAgICcgbWF0LWZvcm0tZmllbGQudG13LXBpY2tlci1tYWluJyxcclxuICBEZXNjcml6aW9uZTogJyAudG13LXBpY2tlci1sYWJlbCcsXHJcbn07XHJcbmNvbnN0IEVMRU1FTlRTID0gT2JqZWN0LmtleXMoRUxFTUVOVF9TRUxFQ1RPUlMpO1xyXG5jb25zdCBTVEFURVMgPSBbJ05vcm1hbGUnLCAnTW91c2VvdmVyJywgJ0ZvY3VzZWQnLCAnTm90VmFsaWQnLCAnUmVhZG9ubHknXTtcclxuXHJcbmNvbnN0IERFRkFVTFRfRklFTERfU1RZTEVTOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhdGUtZmllbGQtdGVtcGxhdGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLWZpZWxkLXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVGaWVsZFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgSUJhc2VGaWVsZENvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIGZpZWxkOiBEYXRlRmllbGQ7XHJcbiAgQElucHV0KCkgcmVjb3JkOiBSZWNvcmQ7XHJcbiAgQElucHV0KCkgZm9ybXVsYU9iamVjdDogYW55ID0ge307XHJcbiAgQElucHV0KCkgaW5Db25maWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBzdHlsZVZlcnNpb246IG51bWJlciA9IDA7XHJcbiAgQElucHV0KCkgZm9yY2VTdGF0ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgQE91dHB1dCgpIHJlY29yZENoYW5nZTogRXZlbnRFbWl0dGVyPFJlY29yZD4gPSBuZXcgRXZlbnRFbWl0dGVyPFJlY29yZD4oKTtcclxuXHJcbiAgbW9kZXMgPSBNb2RlRW51bTtcclxuICB0aW1lVHlwZSA9IFRpbWVUeXBlRW51bTtcclxuICBtb2RlOiBNb2RlRW51bTtcclxuXHJcbiAgc2hvd1NlY29uZHM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBvdXRwdXRGb3JtYXQ6IHN0cmluZyA9IG51bGw7XHJcblxyXG4gIGZpZWxkVWlkOiBzdHJpbmc7XHJcbiAgaG92ZXJpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmb2N1c2VkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBzdHlsZUVsOiBIVE1MU3R5bGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBzdGF0dXNTdWI6IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZmllbGRVaWQgPSAnZHQtJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsIDEwKTtcclxuICAgIHRoaXMuc2V0VGltZVR5cGUoKTtcclxuICAgIHRoaXMuc2V0T3V0cHV0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICB0aGlzLmluamVjdERhdGVGaWVsZFN0eWxlcygpO1xyXG4gICAgdGhpcy5zdWJzY3JpYmVUb0Zvcm1TdGF0dXMoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzWydzdHlsZVZlcnNpb24nXSAmJiAhY2hhbmdlc1snc3R5bGVWZXJzaW9uJ10uZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgdGhpcy5zZXRUaW1lVHlwZSgpO1xyXG4gICAgICB0aGlzLnNldE91dHB1dEZvcm1hdCgpO1xyXG4gICAgICB0aGlzLmluamVjdERhdGVGaWVsZFN0eWxlcygpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2ZvcmNlU3RhdGUnXSkge1xyXG4gICAgICB0aGlzLnVwZGF0ZVN0YXRlQ2xhc3NlcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlY29yZCddICE9IHVuZGVmaW5lZCAmJiBjaGFuZ2VzWydyZWNvcmQnXS5maXJzdENoYW5nZSA9PSBmYWxzZSAmJiBKU09OLnN0cmluZ2lmeShjaGFuZ2VzWydyZWNvcmQnXS5jdXJyZW50VmFsdWUpICE9IEpTT04uc3RyaW5naWZ5KGNoYW5nZXNbJ3JlY29yZCddLnByZXZpb3VzVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMucmVjb3JkID0gY2hhbmdlc1sncmVjb3JkJ10uY3VycmVudFZhbHVlO1xyXG4gICAgICB0aGlzLnVwZGF0ZUZpZWxkKCk7XHJcbiAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnN0eWxlRWw/LnBhcmVudE5vZGUpIHtcclxuICAgICAgdGhpcy5zdHlsZUVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodGhpcy5zdHlsZUVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmplY3REYXRlRmllbGRTdHlsZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGRVaWQpIHJldHVybjtcclxuICAgIGNvbnN0IGNzcyA9ICh0aGlzLmZpZWxkIGFzIERhdGVGaWVsZCk/LkRhdGVGaWVsZFN0eWxlQ1NTID8/ICh7fSBhcyBEYXRlRmllbGRTdHlsZUNTUyk7XHJcbiAgICBjb25zdCBydWxlcyA9IHRoaXMuYnVpbGRDc3NSdWxlcyh0aGlzLmZpZWxkVWlkLCBjc3MpO1xyXG5cclxuICAgIGlmICghdGhpcy5zdHlsZUVsKSB7XHJcbiAgICAgIHRoaXMuc3R5bGVFbCA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKSBhcyBIVE1MU3R5bGVFbGVtZW50O1xyXG4gICAgICB0aGlzLnN0eWxlRWwuaWQgPSAnc3R5bGUtJyArIHRoaXMuZmllbGRVaWQ7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuaGVhZCwgdGhpcy5zdHlsZUVsKTtcclxuICAgIH1cclxuICAgIHRoaXMuc3R5bGVFbC50ZXh0Q29udGVudCA9IHJ1bGVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTZWxlY3Rvcih1aWQ6IHN0cmluZywgc3RhdGU6IHN0cmluZywgczogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XHJcbiAgICBzd2l0Y2ggKHN0YXRlKSB7XHJcbiAgICAgIGNhc2UgJ05vcm1hbGUnOiAgIHJldHVybiBgIyR7dWlkfSR7c31gO1xyXG4gICAgICBjYXNlICdNb3VzZW92ZXInOiByZXR1cm4gYCMke3VpZH06aG92ZXIke3N9LCAjJHt1aWR9LmVxcC1zdGF0ZS1ob3ZlciR7c31gO1xyXG4gICAgICBjYXNlICdGb2N1c2VkJzogICByZXR1cm4gYCMke3VpZH06Zm9jdXMtd2l0aGluJHtzfSwgIyR7dWlkfS5lcXAtc3RhdGUtZm9jdXNlZCR7c31gO1xyXG4gICAgICBjYXNlICdOb3RWYWxpZCc6ICByZXR1cm4gYCMke3VpZH0uZXFwLWludmFsaWQke3N9YDtcclxuICAgICAgY2FzZSAnUmVhZG9ubHknOiAgcmV0dXJuIGAjJHt1aWR9LmVxcC1yZWFkb25seSR7c31gO1xyXG4gICAgICBkZWZhdWx0OiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRDc3NSdWxlcyh1aWQ6IHN0cmluZywgY3NzOiBEYXRlRmllbGRTdHlsZUNTUyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBsaW5lczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBmb3IgKGNvbnN0IGVsIG9mIEVMRU1FTlRTKSB7XHJcbiAgICAgIGNvbnN0IHMgPSBFTEVNRU5UX1NFTEVDVE9SU1tlbF07XHJcblxyXG4gICAgICBmb3IgKGNvbnN0IHN0YXRlIG9mIFNUQVRFUykge1xyXG4gICAgICAgIGNvbnN0IGtleSA9IGVsICsgc3RhdGU7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFZhbDogc3RyaW5nIHwgdW5kZWZpbmVkID0gREVGQVVMVF9GSUVMRF9TVFlMRVNba2V5XTtcclxuICAgICAgICBjb25zdCB1c2VyVmFsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAoY3NzIGFzIGFueSlba2V5XTtcclxuXHJcbiAgICAgICAgaWYgKCFkZWZhdWx0VmFsPy50cmltKCkgJiYgIXVzZXJWYWw/LnRyaW0oKSkgY29udGludWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHNlbGVjdG9yID0gdGhpcy5nZXRTZWxlY3Rvcih1aWQsIHN0YXRlLCBzKTtcclxuICAgICAgICBpZiAoIXNlbGVjdG9yKSBjb250aW51ZTtcclxuXHJcbiAgICAgICAgaWYgKGRlZmF1bHRWYWw/LnRyaW0oKSkgbGluZXMucHVzaChgJHtzZWxlY3Rvcn0geyAke2RlZmF1bHRWYWx9IH1gKTtcclxuICAgICAgICBpZiAodXNlclZhbD8udHJpbSgpKSAgICBsaW5lcy5wdXNoKGAke3NlbGVjdG9yfSB7ICR7dXNlclZhbH0gfWApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTdGF0ZUNsYXNzZXMoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuZmllbGRVaWQpIHJldHVybjtcclxuICAgIGNvbnN0IHdyYXBwZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLmZpZWxkVWlkKTtcclxuICAgIGlmICghd3JhcHBlcikgcmV0dXJuO1xyXG5cclxuICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1zdGF0ZS1ob3ZlcicsICAgdGhpcy5mb3JjZVN0YXRlID09PSAnTW91c2VvdmVyJyk7XHJcbiAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtc3RhdGUtZm9jdXNlZCcsICB0aGlzLmZvcmNlU3RhdGUgPT09ICdGb2N1c2VkJyk7XHJcblxyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSA9PT0gJ05vdFZhbGlkJykge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIHRydWUpO1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtcmVhZG9ubHknLCBmYWxzZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZvcmNlU3RhdGUgPT09ICdSZWFkb25seScpIHtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgdHJ1ZSk7XHJcbiAgICAgIHRoaXMudG9nZ2xlQ2xhc3Mod3JhcHBlciwgJ2VxcC1pbnZhbGlkJywgZmFsc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5mb3JjZVN0YXRlID09PSAnTm9ybWFsZScgfHwgdGhpcy5mb3JjZVN0YXRlID09PSAnTW91c2VvdmVyJyB8fCB0aGlzLmZvcmNlU3RhdGUgPT09ICdGb2N1c2VkJykge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGZhbHNlKTtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgZmFsc2UpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNSZWFkb25seSA9IHRoaXMuZmllbGQuUmVhZG9ubHkgfHwgKHRoaXMuZmllbGQuRm9ybXVsYSAhPSBudWxsICYmIHRoaXMuZmllbGQuRm9ybXVsYSAhPT0gJycpO1xyXG4gICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLXJlYWRvbmx5JywgaXNSZWFkb25seSk7XHJcblxyXG4gICAgY29uc3QgY3RybCA9IHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cD8uY29udHJvbHM/Llt0aGlzLmZpZWxkLk5hbWVdO1xyXG4gICAgaWYgKGN0cmw/LnRvdWNoZWQpIHtcclxuICAgICAgdGhpcy50b2dnbGVDbGFzcyh3cmFwcGVyLCAnZXFwLWludmFsaWQnLCB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuaW52YWxpZCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnRvZ2dsZUNsYXNzKHdyYXBwZXIsICdlcXAtaW52YWxpZCcsIGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlQ2xhc3MoZWw6IEVsZW1lbnQsIGNsczogc3RyaW5nLCBjb25kaXRpb246IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChjb25kaXRpb24pIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZWwsIGNscyk7XHJcbiAgICBlbHNlIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoZWwsIGNscyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1YnNjcmliZVRvRm9ybVN0YXR1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhdHVzU3ViPy51bnN1YnNjcmliZSgpO1xyXG4gICAgaWYgKHRoaXMuZmllbGQ/LkZvcm1Gb3JtR3JvdXApIHtcclxuICAgICAgdGhpcy5zdGF0dXNTdWIgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4gdGhpcy51cGRhdGVTdGF0ZUNsYXNzZXMoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldCBhY3RpdmVTdHlsZVN1ZmZpeCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuZm9yY2VTdGF0ZSkgcmV0dXJuIHRoaXMuZm9yY2VTdGF0ZTtcclxuICAgIGNvbnN0IGlzUmVhZG9ubHkgPSB0aGlzLmZpZWxkLlJlYWRvbmx5IHx8ICh0aGlzLmZpZWxkLkZvcm11bGEgIT0gbnVsbCAmJiB0aGlzLmZpZWxkLkZvcm11bGEgIT09ICcnKTtcclxuICAgIGlmIChpc1JlYWRvbmx5KSByZXR1cm4gJ1JlYWRvbmx5JztcclxuICAgIGNvbnN0IGN0cmwgPSB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXA/LmNvbnRyb2xzPy5bdGhpcy5maWVsZC5OYW1lXTtcclxuICAgIGlmIChjdHJsPy50b3VjaGVkICYmIHRoaXMuZmllbGQuRm9ybUZvcm1Hcm91cD8uaW52YWxpZCkgcmV0dXJuICdOb3RWYWxpZCc7XHJcbiAgICBpZiAodGhpcy5mb2N1c2VkKSByZXR1cm4gJ0ZvY3VzZWQnO1xyXG4gICAgaWYgKHRoaXMuaG92ZXJpbmcpIHJldHVybiAnTW91c2VvdmVyJztcclxuICAgIHJldHVybiAnTm9ybWFsZSc7XHJcbiAgfVxyXG5cclxuICBnZXREYXRlU3R5bGVCeVN0YXRlKGJhc2VLZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBjc3MgPSAodGhpcy5maWVsZCBhcyBEYXRlRmllbGQpPy5EYXRlRmllbGRTdHlsZUNTUztcclxuICAgIGlmICghY3NzKSByZXR1cm4gJyc7XHJcbiAgICByZXR1cm4gKGNzcyBhcyBhbnkpW2Jhc2VLZXkgKyB0aGlzLmFjdGl2ZVN0eWxlU3VmZml4XSA/PyAnJztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1ldG9kbyBwZXIgYWdnaW9ybmFyZSBpbCB2YWxvcmUgZGVsIGNhbXBvIHF1YW5kbyBxdWVzdG8gw6ggcmFwcHJlc2VudGF0byBkYSB1bmEgZm9ybXVsYS5cclxuICAgKi9cclxuICB1cGRhdGVGaWVsZCgpIHtcclxuICAgIGlmICh0aGlzLmZpZWxkLlJlYWRvbmx5SWYpIHtcclxuICAgICAgdGhpcy5maWVsZC5SZWFkb25seSA9IFV0aWxpdHlIZWxwZXJTZXJ2aWNlLkV2YWx1YXRlRmllbGRGb3JtdWxhKHRoaXMuZmllbGQuUmVhZG9ubHlJZiwgdGhpcy5yZWNvcmQsIHRoaXMuZm9ybXVsYU9iamVjdCk7XHJcbiAgICB9XHJcbiAgICBpZiAoKHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVHlwZSA9PSBEYXRhR2V0dGVyVHlwZUVudW0uTWFudWFsZSB8fCB0aGlzLmZpZWxkLkRhdGFHZXR0ZXIuRGF0YUdldHRlclR5cGUgPT0gRGF0YUdldHRlclR5cGVFbnVtLkZvcm11bGEpICYmIHRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID0gVXRpbGl0eUhlbHBlclNlcnZpY2UuRXZhbHVhdGVGaWVsZEZvcm11bGEodGhpcy5maWVsZC5Gb3JtdWxhLCB0aGlzLnJlY29yZCwgdGhpcy5mb3JtdWxhT2JqZWN0KTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmZpZWxkLlZpc2libGVJZikge1xyXG4gICAgICB0aGlzLmZpZWxkLkluTGlzdFZpZXcgPSBVdGlsaXR5SGVscGVyU2VydmljZS5FdmFsdWF0ZUZpZWxkRm9ybXVsYSh0aGlzLmZpZWxkLlZpc2libGVJZiwgdGhpcy5yZWNvcmQsIHRoaXMuZm9ybXVsYU9iamVjdCk7XHJcbiAgICAgIGlmKCF0aGlzLmZpZWxkLkluTGlzdFZpZXcgJiYgIXRoaXMuZmllbGQuTWFpbnRhaW5fVmFsdWUpe1xyXG4gICAgICAgIHRoaXMucmVjb3JkW3RoaXMuZmllbGQuTmFtZV09bnVsbDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVHlwZSA9PSBEYXRhR2V0dGVyVHlwZUVudW0uTWFudWFsZSAmJiB0aGlzLnJlY29yZFt0aGlzLmZpZWxkLk5hbWVdID09IG51bGwpIHtcclxuICAgICAgdGhpcy5yZWNvcmRbdGhpcy5maWVsZC5OYW1lXSA9IHRoaXMuZmllbGQuRGF0YUdldHRlci5EYXRhR2V0dGVyVmFsdWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIGVtZXR0ZXJlIGwnZXZlbnRvIGNoZSBpbCB2YWxvcmUgZGVsIHJlY29yZCDDqCBjYW1iaWF0by5cclxuICAgKi9cclxuICBvblJlY29yZFZhbHVlQ2hhbmdlKGV2KSB7XHJcbiAgICB0aGlzLmZpZWxkLkZpZWxkVmFsdWU9ZXY7XHJcbiAgICB0aGlzLmZpZWxkLkZvcm1Gb3JtR3JvdXAuZ2V0KFt0aGlzLmZpZWxkLk5hbWVdKS5zZXRWYWx1ZShldik7XHJcbiAgICBpZiAoIXRoaXMuZmllbGQuRm9ybXVsYSkge1xyXG4gICAgICB0aGlzLnJlY29yZENoYW5nZS5lbWl0KHRoaXMucmVjb3JkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldE91dHB1dEZvcm1hdCgpe1xyXG5cclxuICAgIGlmICh0aGlzLmZpZWxkLkRhdGVGb3JtYXQgIT0gbnVsbCl7XHJcbiAgICAgIHRoaXMub3V0cHV0Rm9ybWF0ID0gdGhpcy5maWVsZC5EYXRlRm9ybWF0XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5maWVsZC5Jc09ubHlEYXRlID09IERhdGVUaW1lVHlwZUVudW1bJ1NvbG8gZGF0YSddKXtcclxuICAgICAgICB0aGlzLm91dHB1dEZvcm1hdCA9ICdkZC9NTS95eXl5JztcclxuICAgICAgfVxyXG4gICAgICBpZiAodGhpcy5maWVsZC5Jc09ubHlEYXRlID09IERhdGVUaW1lVHlwZUVudW1bJ0RhdGEgZSBvcmEnXSl7XHJcbiAgICAgICAgdGhpcy5vdXRwdXRGb3JtYXQgPSAnZGQvTU0veXl5eSBISDptbSc7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMuZmllbGQuSXNPbmx5RGF0ZSA9PSBEYXRlVGltZVR5cGVFbnVtWydTb2xvIG9yYXJpbyddKXtcclxuICAgICAgICB0aGlzLm91dHB1dEZvcm1hdCA9ICdISDptbSc7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vdXRwdXRGb3JtYXQuaW5kZXhPZihcInNzXCIpICE9IC0xKXtcclxuICAgICAgdGhpcy5zaG93U2Vjb25kcyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW4gYmFzZSBhbCBmb3JtYXRvIGRlbGxhIGRhdGEgcmljaGllc3RhIG5lbCBEYXRlRmllbGQgKHNvbG8gZGF0YSwgc29sbyBvcmFyaW8gbyBkYXRhIGUgb3JhKVxyXG4gICAqIGltcG9zdGEgbGEgdmlzdWFsaXp6YXppb25lIGNvcnJldHRhIGRlbCBjb21wb25lbnRlIHRtdy1kYXRldGltZXBpY2tlci5cclxuICAgKi9cclxuICBwcml2YXRlIHNldFRpbWVUeXBlKCkge1xyXG4gICAgc3dpdGNoICh0aGlzLmZpZWxkLklzT25seURhdGUpIHtcclxuICAgICAgY2FzZSBEYXRlVGltZVR5cGVFbnVtW1wiU29sbyBkYXRhXCJdOlxyXG4gICAgICAgIHRoaXMubW9kZSA9IE1vZGVFbnVtLkRBVEVQSUNLRVI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRGF0ZVRpbWVUeXBlRW51bVtcIlNvbG8gb3JhcmlvXCJdOlxyXG4gICAgICAgIHRoaXMubW9kZSA9IE1vZGVFbnVtLlRJTUVQSUNLRVI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRGF0ZVRpbWVUeXBlRW51bVtcIkRhdGEgZSBvcmFcIl06XHJcbiAgICAgICAgdGhpcy5tb2RlID0gTW9kZUVudW0uREFURVRJTUVQSUNLRVI7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgaWQ9XCJ7e2ZpZWxkVWlkfX1cIlxyXG4gICAgIChtb3VzZWVudGVyKT1cImhvdmVyaW5nPXRydWVcIiAobW91c2VsZWF2ZSk9XCJob3ZlcmluZz1mYWxzZVwiXHJcbiAgICAgKGZvY3VzaW4pPVwiZm9jdXNlZD10cnVlXCIgICAoZm9jdXNvdXQpPVwiZm9jdXNlZD1mYWxzZVwiPlxyXG4gICAgPHRtdy1kYXRldGltZXBpY2tlclxyXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5EZXNjcmlwdGlvblwiXHJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLkRlc2NyaXB0aW9uXCJcclxuICAgICAgICBbcGlja2VyTW9kZV09XCJtb2RlXCJcclxuICAgICAgICBbbWluRGF0ZV09XCJmaWVsZC5NaW5EYXRlID8gZmllbGQuTWluRGF0ZSA6IG51bGxcIlxyXG4gICAgICAgIFttYXhEYXRlXT1cImZpZWxkLk1heERhdGUgPyBmaWVsZC5NYXhEYXRlIDogbnVsbFwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLlJlYWRvbmx5XCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInJlY29yZFtmaWVsZC5OYW1lXVwiXHJcbiAgICAgICAgKGRhdGVDaGFuZ2UpPVwib25SZWNvcmRWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbb3V0cHV0Rm9ybWF0XT1cIm91dHB1dEZvcm1hdFwiXHJcbiAgICAgICAgW3Nob3dTZWNvbmRzXT1cInNob3dTZWNvbmRzXCJcclxuICAgICAgICBbY29udGFpbmVyU3R5bGVdPVwiZ2V0RGF0ZVN0eWxlQnlTdGF0ZSgnQ29udGVuaXRvcmVJbnRlcm5vJylcIlxyXG4gICAgICAgIFtpbnB1dFN0eWxlXT1cImdldERhdGVTdHlsZUJ5U3RhdGUoJ0NhbXBvRGF0YScpXCJcclxuICAgICAgICBbY2FsZW5kYXJCdXR0b25TdHlsZV09XCJnZXREYXRlU3R5bGVCeVN0YXRlKCdJY29uYUNhbGVuZGFyaW8nKVwiXHJcbiAgICAgICAgW2Nsb2NrQnV0dG9uU3R5bGVdPVwiZ2V0RGF0ZVN0eWxlQnlTdGF0ZSgnSWNvbmFPcm9sb2dpbycpXCJcclxuICAgICAgICBbY2xvc2VCdXR0b25TdHlsZV09XCJnZXREYXRlU3R5bGVCeVN0YXRlKCdJY29uYUNhbmNlbGxhemlvbmUnKVwiXHJcbiAgICAgICAgW3Rvb2x0aXBTdHlsZV09XCJnZXREYXRlU3R5bGVCeVN0YXRlKCdUb29sdGlwJylcIlxyXG4gICAgICAgIFtpY29uc1Bvc2l0aW9uXT1cImZpZWxkLkljb25zUG9zaXRpb24gfHwgJ3JpZ2h0J1wiXHJcbiAgICAgICAgW2Nsb3NlSWNvblBvc2l0aW9uXT1cImZpZWxkLkNsb3NlSWNvblBvc2l0aW9uIHx8ICdyaWdodCdcIlxyXG4gICAgICAgIFt1c2VUb29sdGlwXT1cImZpZWxkLlVzZVRvb2x0aXAgfHwgZmFsc2VcIj5cclxuICAgIDwvdG13LWRhdGV0aW1lcGlja2VyPlxyXG48L2Rpdj5cclxuIl19