ngx-render-material-forms 2.5.11 → 2.5.12

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 (93) hide show
  1. package/esm2020/lib/FormioControl.mjs +4 -4
  2. package/esm2020/lib/components/MaterialComponent.mjs +6 -9
  3. package/esm2020/lib/components/MaterialNestedComponent.mjs +4 -4
  4. package/esm2020/lib/components/add-on-products/add-on-products.component.mjs +13 -13
  5. package/esm2020/lib/components/button/button.component.mjs +5 -5
  6. package/esm2020/lib/components/calendar/calendar.component.mjs +7 -7
  7. package/esm2020/lib/components/checkbox/checkbox.component.mjs +6 -6
  8. package/esm2020/lib/components/columns/columns.component.mjs +4 -4
  9. package/esm2020/lib/components/common.service.mjs +4 -4
  10. package/esm2020/lib/components/confirmation-dialog/confirmation-dialog.component.mjs +4 -4
  11. package/esm2020/lib/components/container/container.component.mjs +4 -4
  12. package/esm2020/lib/components/content/content.component.mjs +4 -4
  13. package/esm2020/lib/components/currency/currency.component.mjs +6 -6
  14. package/esm2020/lib/components/datagrid/datagrid.component.mjs +8 -8
  15. package/esm2020/lib/components/date/date.component.mjs +7 -7
  16. package/esm2020/lib/components/day/day.component.mjs +5 -5
  17. package/esm2020/lib/components/editgrid/editgrid.component.mjs +4 -4
  18. package/esm2020/lib/components/email/email.component.mjs +6 -6
  19. package/esm2020/lib/components/fieldset/fieldset.component.mjs +5 -5
  20. package/esm2020/lib/components/formio-form-field/formio-form-field.component.mjs +4 -4
  21. package/esm2020/lib/components/formio.wizard.mjs +5 -5
  22. package/esm2020/lib/components/hidden/hidden.component.mjs +4 -4
  23. package/esm2020/lib/components/html/html.component.mjs +4 -4
  24. package/esm2020/lib/components/label/label.component.mjs +4 -4
  25. package/esm2020/lib/components/number/number.component.mjs +6 -6
  26. package/esm2020/lib/components/panel/panel.component.mjs +7 -7
  27. package/esm2020/lib/components/password/password.component.mjs +6 -6
  28. package/esm2020/lib/components/phonenumber/phonenumber.component.mjs +6 -6
  29. package/esm2020/lib/components/radio/radio.component.mjs +5 -5
  30. package/esm2020/lib/components/select/select.component.mjs +6 -6
  31. package/esm2020/lib/components/selectboxes/selectboxes.component.mjs +5 -5
  32. package/esm2020/lib/components/signature/signature.component.mjs +5 -5
  33. package/esm2020/lib/components/survey/survey.component.mjs +5 -5
  34. package/esm2020/lib/components/table/table.component.mjs +6 -6
  35. package/esm2020/lib/components/tabs/tabs.component.mjs +5 -5
  36. package/esm2020/lib/components/tags/tags.component.mjs +15 -13
  37. package/esm2020/lib/components/textarea/textarea.component.mjs +8 -8
  38. package/esm2020/lib/components/textfield/textfield.component.mjs +6 -6
  39. package/esm2020/lib/components/time/time.component.mjs +5 -5
  40. package/esm2020/lib/components/url/url.component.mjs +6 -6
  41. package/esm2020/lib/components/well/well.component.mjs +7 -7
  42. package/esm2020/lib/directives/mask.directive.mjs +4 -4
  43. package/esm2020/lib/formio.component.mjs +5 -5
  44. package/esm2020/lib/ngx-render-material-forms.component.mjs +4 -4
  45. package/esm2020/lib/ngx-render-material-forms.module.mjs +5 -5
  46. package/esm2020/lib/ngx-render-material-forms.service.mjs +4 -4
  47. package/fesm2015/ngx-render-material-forms.js +196 -198
  48. package/fesm2015/ngx-render-material-forms.mjs.map +1 -1
  49. package/fesm2020/ngx-render-material-forms.js +196 -197
  50. package/fesm2020/ngx-render-material-forms.mjs.map +1 -1
  51. package/lib/components/MaterialComponent.d.ts +1 -1
  52. package/lib/components/MaterialNestedComponent.d.ts +1 -1
  53. package/lib/components/add-on-products/add-on-products.component.d.ts +3 -3
  54. package/lib/components/button/button.component.d.ts +1 -1
  55. package/lib/components/calendar/calendar.component.d.ts +1 -1
  56. package/lib/components/checkbox/checkbox.component.d.ts +1 -1
  57. package/lib/components/columns/columns.component.d.ts +1 -1
  58. package/lib/components/confirmation-dialog/confirmation-dialog.component.d.ts +1 -1
  59. package/lib/components/container/container.component.d.ts +1 -1
  60. package/lib/components/content/content.component.d.ts +1 -1
  61. package/lib/components/currency/currency.component.d.ts +1 -1
  62. package/lib/components/datagrid/datagrid.component.d.ts +2 -2
  63. package/lib/components/date/date.component.d.ts +1 -1
  64. package/lib/components/day/day.component.d.ts +1 -1
  65. package/lib/components/editgrid/editgrid.component.d.ts +1 -1
  66. package/lib/components/email/email.component.d.ts +1 -1
  67. package/lib/components/fieldset/fieldset.component.d.ts +1 -1
  68. package/lib/components/formio-form-field/formio-form-field.component.d.ts +1 -1
  69. package/lib/components/formio.wizard.d.ts +1 -1
  70. package/lib/components/hidden/hidden.component.d.ts +1 -1
  71. package/lib/components/html/html.component.d.ts +1 -1
  72. package/lib/components/label/label.component.d.ts +1 -1
  73. package/lib/components/number/number.component.d.ts +1 -1
  74. package/lib/components/panel/panel.component.d.ts +1 -1
  75. package/lib/components/password/password.component.d.ts +1 -1
  76. package/lib/components/phonenumber/phonenumber.component.d.ts +1 -1
  77. package/lib/components/radio/radio.component.d.ts +1 -1
  78. package/lib/components/select/select.component.d.ts +1 -1
  79. package/lib/components/selectboxes/selectboxes.component.d.ts +1 -1
  80. package/lib/components/signature/signature.component.d.ts +1 -1
  81. package/lib/components/survey/survey.component.d.ts +1 -1
  82. package/lib/components/table/table.component.d.ts +1 -1
  83. package/lib/components/tabs/tabs.component.d.ts +1 -1
  84. package/lib/components/tags/tags.component.d.ts +1 -1
  85. package/lib/components/textarea/textarea.component.d.ts +1 -1
  86. package/lib/components/textfield/textfield.component.d.ts +1 -1
  87. package/lib/components/time/time.component.d.ts +1 -1
  88. package/lib/components/url/url.component.d.ts +1 -1
  89. package/lib/components/well/well.component.d.ts +1 -1
  90. package/lib/directives/mask.directive.d.ts +1 -1
  91. package/lib/formio.component.d.ts +1 -1
  92. package/lib/ngx-render-material-forms.component.d.ts +1 -1
  93. package/package.json +1 -1
@@ -486,8 +486,8 @@ export class MaterialSelectComponent extends MaterialComponent {
486
486
  return false;
487
487
  }
488
488
  }
489
- MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.CommonService }], target: i0.ɵɵFactoryTarget.Component });
490
- MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MaterialSelectComponent, selector: "mat-formio-select", viewQueries: [{ propertyName: "multiSelect", first: true, predicate: ["multiSelect"], descendants: true, static: true }, { propertyName: "selectElem", first: true, predicate: ["productSelect"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
489
+ MaterialSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.HttpClient }, { token: i2.CommonService }], target: i0.ɵɵFactoryTarget.Component });
490
+ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSelectComponent, selector: "mat-formio-select", viewQueries: [{ propertyName: "multiSelect", first: true, predicate: ["multiSelect"], descendants: true, static: true }, { propertyName: "selectElem", first: true, predicate: ["productSelect"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
491
491
  <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
492
492
  <ng-template #componentTemplate let-hasLabel>
493
493
  <mat-form-field fxFill>
@@ -528,8 +528,8 @@ MaterialSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
528
528
  <mat-error *ngIf="isError()" >{{ getErrorMessage() }}</mat-error>
529
529
  </mat-form-field>
530
530
  </ng-template>
531
- `, isInline: true, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i10.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: i10.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: i11.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i12.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
532
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSelectComponent, decorators: [{
531
+ `, isInline: true, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix]" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i10.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "indexAndLengthScreenReaderText", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toogleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "directive", type: i10.MatSelectSearchClearDirective, selector: "[ngxMatSelectSearchClear]" }, { kind: "component", type: i11.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i12.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }] });
532
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectComponent, decorators: [{
533
533
  type: Component,
534
534
  args: [{ selector: 'mat-formio-select', template: `
535
535
  <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
@@ -572,7 +572,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
572
572
  <mat-error *ngIf="isError()" >{{ getErrorMessage() }}</mat-error>
573
573
  </mat-form-field>
574
574
  </ng-template>
575
- `, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"] }]
575
+ `, styles: [".example-viewport{height:200px}.product-picker{overflow-x:hidden}.virtual-full-view{height:auto!important;white-space:normal!important;line-height:1.4!important;text-overflow:initial!important;min-height:48px!important;overflow:visible!important;overflow:initial!important;padding-top:10px!important;padding-bottom:10px!important}::ng-deep .product-picker .cdk-virtual-scroll-content-wrapper{width:100%!important}.virtual-full-view .mat-pseudo-checkbox{align-self:top!important}\n"] }]
576
576
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.HttpClient }, { type: i2.CommonService }]; }, propDecorators: { multiSelect: [{
577
577
  type: ViewChild,
578
578
  args: ['multiSelect', { static: true }]
@@ -590,4 +590,4 @@ SelectComponent.prototype.setItems = function (...args) {
590
590
  }
591
591
  };
592
592
  export { SelectComponent };
593
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUE0QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQVUsU0FBUyxFQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQTRFL0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGlCQUFpQjtJQThCNUQsWUFBbUIsT0FBbUIsRUFBUyxHQUFzQixFQUFTLElBQWdCLEVBQVMsYUFBNEI7UUFDakksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQURILFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXpCNUgscUJBQWdCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsMkJBQXNCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFckQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFF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QUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLEVBQzVDO2dCQUNBLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7cUhBamdCVSx1QkFBdUI7eUdBQXZCLHVCQUF1Qix3U0F4RXhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDVDs0RkErQlUsdUJBQXVCO2tCQTFFbkMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNUO3NMQXNDMkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVkLFVBQVU7c0JBQXJDLFNBQVM7dUJBQUMsZUFBZTs7QUEyZjVCLGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RCxzRkFBc0Y7QUFDdEYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDcEQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxHQUFHLElBQUk7SUFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUU7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNqRTtBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IFNlbGVjdENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdC9TZWxlY3QuanMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCIgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCI+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmlsbD5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeFwiIG1hdFByZWZpeD5cclxuICAgICAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXggfX0mbmJzcDtcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJpbnN0YW5jZS5jb21wb25lbnQubXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImluc3RhbmNlLmNvbXBvbmVudC5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVPYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICNwcm9kdWN0U2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbcGFuZWxDbGFzc109XCJhZGRDdXN0b21DbGFzcyhpbnN0YW5jZS5jb21wb25lbnQua2V5KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW3NlYXJjaGluZ109XCJpbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnID8gc2VhcmNoaW5nIDogZmFsc2VcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXJMYWJlbD1cIlR5cGUgdG8gc2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cIndlYnNpdGVNdWx0aUZpbHRlckN0cmxcIj4gXHJcbiAgICAgICAgPG1hdC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIChjbGljayk9XCJjbGVhclByb2R1Y3RzKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgY2xhc3M9XCJ2aXJ0dWFsLWZ1bGwtdmlld1wiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPiAgIFxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zTGVuZ3RoXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgIDxzcGFuPk5vdGhpbmcgd2FzIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4XCIgbWF0U3VmZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0Vycm9yKClcIiA+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgLmV4YW1wbGUtdmlld3BvcnQge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcbiAgXHJcbiAgLnByb2R1Y3QtcGlja2VyIHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogRGlzYWJsZSBob3Jpem9udGFsIHNjcm9sbGluZyAqL1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IHtcclxuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNCAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgbWluLWhlaWdodDogNDhweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgOjpuZy1kZWVwIC5wcm9kdWN0LXBpY2tlciAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciB7XHJcbiAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudmlydHVhbC1mdWxsLXZpZXcgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xyXG4gICAgYWxpZ24tc2VsZjogdG9wICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgc2VsZWN0T3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBQcm9taXNlPGFueVtdPjtcclxuICBmaWx0ZXJlZE9wdGlvbnNMZW5ndGg6IG51bWJlcjtcclxuICBzZWxlY3RPcHRpb25zUmVzb2x2ZTogYW55O1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0JywgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZCgncHJvZHVjdFNlbGVjdCcpIHNlbGVjdEVsZW06IE1hdFNlbGVjdDtcclxuICAvLyBWYXJpYWJsZXMgdG8gdHJhY2sgcGFnaW5hdGlvblxyXG4gIHBhZ2VOdW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplID0gMjA7XHJcbiAgdG90YWxQYWdlcyA9IDA7XHJcbiAgc2VhcmNoUXVlcnkgPSAnJztcclxuICBwcm9kdWN0c2xvYWRpbmdGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlYXJjaGluZyA9IGZhbHNlO1xyXG4gIHByb2R1Y3RMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkVmFsdWU6IGFueSA9ICcnO1xyXG4gIHNlYXJjaEl0ZW0gPSBcIlwiO1xyXG4gIC8vIFZhcmlhYmxlIHRvIGhvbGQgdGhlIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBwYW5lbCBlbGVtZW50XHJcbiAgcHJpdmF0ZSBjdXJyZW50UGFuZWxFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIG9wZW5Db3VudGVyOiBudW1iZXIgPSAxXHJcbiAgZmlyc3REcm9wZG93bkl0ZW1zOiBhbnkgPSBbXTtcclxuICBzZWNvbmREcm9wZG93bkl0ZW1zOiBhbnkgPSBbXTtcclxuICBzdG9yZVZhbHVlOiBhbnkgPSBbXVxyXG4gIHN0b3JlRGVwZW5kZW50SXRlbXM6IGFueSA9IFtdO1xyXG4gIGV4ZWN1dGlvbkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGFwaUNvdW50ZXI6IG51bWJlciA9IDA7XHJcbiAgY2hlY2tBdHRyaWJ1dGU6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZiwgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LCBwdWJsaWMgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoZWxlbWVudCwgcmVmKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJyAmJiBldmVudC50YXJnZXQudmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMub25DbGVhckFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJQcm9kdWN0cygpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgdGhpcy5vbkNsZWFyQWxsKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoSXRlbSA9IFwiXCI7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJQYW5lbFNjcm9sbEV2ZW50KHNlbGVjdEVsZW06IE1hdFNlbGVjdCkge1xyXG4gICAgaWYgKHNlbGVjdEVsZW0gJiYgc2VsZWN0RWxlbT8ucGFuZWwpIHtcclxuICAgICAgLy8gY29uc3QgcGFuZWxFbGVtZW50ID0gc2VsZWN0RWxlbS5wYW5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQgPSBzZWxlY3RFbGVtLnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhbmVsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQ3VzdG9tQ2xhc3Moa2V5KSB7XHJcbiAgICByZXR1cm4gJ3dhbGttZV9zZWxlY3RfJyArIGtleTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgIGlmICghc2Nyb2xsRWxlbWVudCkgcmV0dXJuOyAvLyBFbnN1cmUgc2Nyb2xsRWxlbWVudCBpcyBub3QgdW5kZWZpbmVkXHJcbiAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgaWYgKGlzTmFOKHRyYWNrSGVpZ2h0KSB8fCB0cmFja0hlaWdodCA8PSAwKSByZXR1cm47IC8vIENoZWNrIGlmIHRyYWNrSGVpZ2h0IGlzIHZhbGlkXHJcbiAgICAgIGlmICh0aGlzLm9wZW5Db3VudGVyIDwgMikge1xyXG4gICAgICAgIGNvbnN0IHJldHJpZXZlZE9iamVjdCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N0b3JhZ2VPYmplY3QnKSk7XHJcbiAgICAgICAgdGhpcy50b3RhbFBhZ2VzID0gTnVtYmVyKHJldHJpZXZlZE9iamVjdD8udG90YWxQYWdlcyk7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c2xvYWRpbmdGbGFnID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gcmV0cmlldmVkT2JqZWN0Py5kYXRhU291cmNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnByb2R1Y3RzbG9hZGluZ0ZsYWcgJiYgTWF0aC5mbG9vcihzY3JvbGxFbGVtZW50Py5zY3JvbGxUb3AgLyB0cmFja0hlaWdodCAqIDEwMCkgPiA1MCkge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkNvdW50ZXIgPSB0aGlzLm9wZW5Db3VudGVyICsgMTtcclxuICAgICAgICBpZiAodGhpcy5wYWdlTnVtYmVyIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VOdW1iZXIgKyAxO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGJ5IGtleSBmcm9tIHRoZSBhcnJheVxyXG4gIGdldFZhbHVlQnlLZXkoZGF0YSwga2V5KSB7XHJcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIGRhdGEgaXMgZW1wdHkgb3IgdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGt2ID0+IGt2LmtleS50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcblxyXG4gIGxvYWREYXRhKHBhZ2VOdW1iZXIsIHBhZ2VTaXplLCBzZWFyY2hRdWVyeSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Byb2R1Y3RQaWNrZXJQYXJhbXMnKSk7XHJcbiAgICBjb25zdCBpbmNsdWRlRGVzY3JpcHRpb24gPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ2luY2x1ZGVEZXNjcmlwdGlvbicpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICBjb25zdCBvbmx5QWN0aXZlID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdvbmx5QWN0aXZlJyk7XHJcbiAgICBjb25zdCBpbmNsdWRlQ291bnRyeSA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAnZmlsdGVyUHJvZHVjdEJhc2VkT25DdXN0b21lckNvdW50cnknKTtcclxuICAgIGNvbnN0IHByb2dyYW1JZCA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCBcInByb2dyYW1JZFwiKTtcclxuICAgIHZhciBjdXJyZW50VXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJykpO1xyXG4gICAgbGV0IGhlYWRlcnM7XHJcbiAgICBpZiAoY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIuVG9rZW5zICYmIGN1cnJlbnRVc2VyLlRva2Vucy5BY2Nlc3NUb2tlbikge1xyXG4gICAgICB2YXIgYWNjZXNzVG9rZW4gPSBjdXJyZW50VXNlci5Ub2tlbnMuQWNjZXNzVG9rZW47XHJcbiAgICAgIGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlblxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXIgbm90IGF1dGhlbnRpY2F0ZWQgb3IgdG9rZW5zIG1pc3NpbmcuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZW52ZW5kb3JJZCA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZSh2ZW5kb3JJZClcclxuICAgIGNvbnN0IGVucGFnZU51bWJlciA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShwYWdlTnVtYmVyKVxyXG4gICAgY29uc3QgZW5wYWdlU2l6ZSA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShwYWdlU2l6ZSk7XHJcbiAgICBjb25zdCBlbnNlYXJjaFF1ZXJ5ID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKHNlYXJjaFF1ZXJ5KTtcclxuICAgIGNvbnN0IGVuY29kZUluY2x1ZGVDb3VudHJ5ID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKGluY2x1ZGVDb3VudHJ5KTtcclxuICAgIGxldCBlbmFjdGl2ZSA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShvbmx5QWN0aXZlKTtcclxuICAgIGNvbnN0IGVucHJvZ3JhbUlkID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKHByb2dyYW1JZCk7XHJcbiAgICAvL0NoZWNrIGlmIGVuYWN0aXZlIGlzIHVuZGVmaW5lZCwgbnVsbCwgb3IgYmxhbmtcclxuICAgIGlmIChlbmFjdGl2ZSA9PT0gdW5kZWZpbmVkIHx8IGVuYWN0aXZlID09PSBudWxsIHx8IGVuYWN0aXZlID09PSAnJykge1xyXG4gICAgICBlbmFjdGl2ZSA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZSh0cnVlKTsgLy8gU2V0IGRlZmF1bHQgdmFsdWUgdG8gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNjcnVtYmxlIGFuZCBoYW5kbGUgdGhlIGluY2x1ZGVEZXNjcmlwdGlvbiBwYXJhbWV0ZXJcclxuICAgIGxldCBlbmRlc2NyaXB0aW9uID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKGluY2x1ZGVEZXNjcmlwdGlvbik7XHJcbiAgICBpZiAoIWVuZGVzY3JpcHRpb24pIHtcclxuICAgICAgZW5kZXNjcmlwdGlvbiA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShmYWxzZSk7ICAvLyBTZXQgdG8gJ2ZhbHNlJyBpZiB1bmRlZmluZWQsIG51bGwsIG9yIGJsYW5rXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYmFzZVVybE1hcHBpbmcgPSB7XHJcbiAgICAgICdiRzlqWVd4b2IzTjAnOiAnaHR0cDovL2xvY2FsaG9zdDo1ODUwNCcsXHJcbiAgICAgICdiR2x1WTI5c2JpNTJZWEowYjNCcFlTNWpiMjA9JzogJ2h0dHBzOi8vbGluY29sbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ2MzUmhaMlV1ZG1GeWRHOXdhV0V1WTI5dCc6ICdodHRwczovL3N0YWdlLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnYlhrdWRtRnlkRzl3YVdFdVkyOXQnOiAnaHR0cHM6Ly9yZWFnYW4tYXBpLnZhcnRvcGlhLmNvbScsXHJcbiAgICAgICdhbUZqYTNOdmJpNTJZWEowYjNCcFlTNWpiMjA9JzogJ2h0dHBzOi8vamFja3Nvbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ2RXRjBMblpoY25SdmNHbGhMbU52YlE9PSc6ICdodHRwczovL3VhdC1hcGkudmFydG9waWEuY29tJ1xyXG4gICAgfTtcclxuICAgIC8vIEdldCB0aGUgY3VycmVudCBob3N0bmFtZVxyXG4gICAgY29uc3QgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XHJcbiAgICBjb25zdCBiYXNlQXBpVXJsID0gYmFzZVVybE1hcHBpbmdbYnRvYShob3N0bmFtZSldIHx8IG51bGw7XHJcbiAgICBpbnRlcmZhY2UgVmVuZG9yUHJvZHVjdHNSZXNwb25zZSB7XHJcbiAgICAgIGNvZGU6IG51bWJlcjtcclxuICAgICAgZGF0YTogYW55O1xyXG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgICAgIHN0YXR1c0NvZGU6IG51bWJlcjtcclxuICAgIH1cclxuICAgIGxldCB1cmwgPSBgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0VmVuZG9yUHJvZHVjdHM/dmVuZG9ySWQ9JHtlbnZlbmRvcklkfSZwYWdlTnVtYmVyPSR7ZW5wYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke2VucGFnZVNpemV9JnNlYXJjaD0ke2Vuc2VhcmNoUXVlcnl9Jm9ubHlBY3RpdmU9JHtlbmFjdGl2ZX0maW5jbHVkZURlc2NyaXB0aW9uPSR7ZW5kZXNjcmlwdGlvbn1gO1xyXG4gICAgaWYgKGVucHJvZ3JhbUlkICYmIHByb2dyYW1JZCkge1xyXG4gICAgICB1cmwgKz0gYCZwcm9ncmFtSWQ9JHtlbnByb2dyYW1JZH1gO1xyXG4gICAgfVxyXG4gICAgLy8gT25seSBhZGQgaW5jbHVkZUNvdW50cnlJZCBpZiBpdCBoYXMgYSB2YWxpZCB2YWx1ZVxyXG4gICAgaWYgKGVuY29kZUluY2x1ZGVDb3VudHJ5ICE9PSBudWxsICYmIGVuY29kZUluY2x1ZGVDb3VudHJ5ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pc0ZpbHRlclByb2R1Y3RCYXNlZE9uQ3VzdG9tZXJDb3VudHJ5VmFsaWQodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGF0YSkpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyUHJvZHVjdEJhc2VkT25DdXN0b21lckNvdW50cnk9JHtlbmNvZGVJbmNsdWRlQ291bnRyeX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4odXJsLCB7IGhlYWRlcnMgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyA9IHJlc3BvbnNlPy5kYXRhPy50b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRhdGEubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgICAgICAgIH0pLmZvckVhY2goaSA9PiB0aGlzLnByb2R1Y3RMaXN0LnB1c2goaSkpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gZGF0YTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIFVwZGF0ZSBmaWx0ZXJlZE9wdGlvbnMgd2l0aCB0cmFuc2Zvcm1lZERhdGFcclxuICAgICAgICAgIHZhciBhbGxQcm9kdWN0TGlzdCA9IHRoaXMudHJhbnNmb3JtUmVzcG9uc2VEYXRhKHRoaXMucHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUoYWxsUHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZWxlID0gdGhpcy5zZWxlY3RFbGVtPy5wYW5lbD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGVsZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gZWxlLnNjcm9sbEhlaWdodCAtIGVsZS5vZmZzZXRIZWlnaHRcclxuICAgICAgICAgICAgICBjb25zdCBtaWRkbGVQb3NpdGlvbiA9IHRyYWNrSGVpZ2h0IC8gMiAtIDUwO1xyXG4gICAgICAgICAgICAgIGVsZS5zY3JvbGxUbyh7IHRvcDogbWlkZGxlUG9zaXRpb24sIGJlaGF2aW9yOiAnYXV0bycgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1BhbmVsIGVsZW1lbnQgaXMgbm90IGF2YWlsYWJsZSB5ZXQuJyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9LCAyNTApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVXRpbGl0eSBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxyXG4gIHRyYW5zZm9ybVJlc3BvbnNlRGF0YShkYXRhOiBBcnJheTx7IHRleHQ6IGFueSwgdmFsdWU6IGFueSwgZGF0ZTogYW55IH0+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciwgZGF0ZTogc3RyaW5nIH0+IHtcclxuICAgIC8vIENoZWNrIGlmIGRhdGEgaXMgbm90IG51bGwsIHVuZGVmaW5lZCwgYW5kIGlzIGFuIGFycmF5IHdpdGggZWxlbWVudHNcclxuICAgIGlmIChkYXRhICYmIEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBkYXRlOiBpdGVtLmRhdGVcclxuICAgICAgfSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRhdGEgaXMgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGZpbHRlcldlYnNpdGVNdWx0aSgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RPcHRpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBzZWFyY2ggPSB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWU7XHJcbiAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyZWQgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24ubGFiZWwucmVwbGFjZSgvPFxcLz9zcGFuW14+XSo+L2csIFwiXCIpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpICE9PSAtMSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZmlsdGVyZWQubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCcnKTtcclxuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKkVuZCovXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wcm9kdWN0TGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2Vjb25kRHJvcGRvd24odmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Nhc2NhZGluZ0Ryb3Bkb3duc1BhcmFtc29uZScpKTtcclxuICAgIGNvbnN0IHZlbmRvcklkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgY29uc3QgZGVhbElkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdkZWFsSWQnKTtcclxuICAgIGNvbnN0IGlzRWRpdCA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAnaXNFZGl0Jyk7XHJcbiAgICBsZXQgZmluYWxQYXJhbXM7XHJcbiAgICB0aGlzLmluc3RhbmNlPy5wYXJlbnQ/LmNvbXBvbmVudHM/Lmxlbmd0aCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5jb21wb25lbnRzLmZvckVhY2goaXRlbXMgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jaGVja1ZlbmRvclJlZkl0ZW1zKGl0ZW1zKSkge1xyXG4gICAgICAgIGNvbnN0IGFwaUVuZFBvaW50ID0gaXRlbXM/LmNvbXBvbmVudD8uc2VsZWN0VmFsdWVzO1xyXG4gICAgICAgIGlmIChhcGlFbmRQb2ludCAhPSAnJykge1xyXG4gICAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInVzZXJJZFwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKSkuVXNlcklkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInZlbmRvcklkXCIsXHJcbiAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB2ZW5kb3JJZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJsb2dpblVzZXJJZFwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKSkuVXNlcklkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcImNvdW50cnlcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJkYXRhVmFsdWVcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJkZWFsSWRcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IGRlYWxJZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJpc0VkaXRcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IGlzRWRpdFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJyZWZlcmVuY2VMaXN0TmFtZVwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogaXRlbXM/LmNvbXBvbmVudD8ua2V5XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInJlZmVyZW5jZUxpc3RGaWVsZE5hbWVcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHRoaXMuaW5zdGFuY2U/LmNvbXBvbmVudD8ua2V5XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICAgIGZpbmFsUGFyYW1zID0gcGFyYW1ldGVycz8uZmlsdGVyKGYxID0+IGl0ZW1zPy5jb21wb25lbnQ/LmRhdGE/LmhlYWRlcnMuc29tZShmMiA9PiBmMS5rZXkgPT09IGYyLmtleSkpO1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmluYWxQYXJhbXMpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZmluYWxQYXJhbXMuZmluZEluZGV4KHBhcmFtID0+IHBhcmFtLmtleSA9PT0gJ2RhdGFWYWx1ZScpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBleGlzdHMsIHVwZGF0ZSBpdHMgdmFsdWVcclxuICAgICAgICAgICAgICBmaW5hbFBhcmFtc1tpbmRleF0udmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGRvZXNuJ3QgZXhpc3QsIGFkZCBpdCB0byB0aGUgYXJyYXlcclxuICAgICAgICAgICAgICBmaW5hbFBhcmFtcy5wdXNoKHsga2V5OiAnZGF0YVZhbHVlJywgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5pbml0aWFsaXplQXBpUGF0aChhcGlFbmRQb2ludCwgZmluYWxQYXJhbXMpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmREcm9wZG93bkl0ZW1zID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5zZXREcm9wZG93bkl0ZW1zKHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudCAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCAmJiB0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgIC8vIEFkZCBjdXN0b20gY2xhc3NlcyB0byBlbGVtZW50cy5cclxuICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmN1c3RvbUNsYXNzKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jdXN0b21DbGFzcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0RWxlbS5vcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKGFzeW5jIChpc09wZW46IGJvb2xlYW4pID0+IHtcclxuICAgICAgbGV0IGkgPSAwXHJcbiAgICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgICBjb25zdCBuZXdQcm9kdWN0UGlja2VyRmxhZyA9IHRoaXMuaW5zdGFuY2U/LmNvbXBvbmVudD8uYXR0cmlidXRlcztcclxuICAgICAgICBsZXQgY2hlY2tJbnZva2VGcm9tTGlicmFyeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShuZXdQcm9kdWN0UGlja2VyRmxhZywgXCJpbnZva2VGcm9tTGlicmFyeVwiKVxyXG4gICAgICAgIGNvbnN0IGZpcnN0TGV2ZWwgPSAodGhpcy5nZXRWZW5kb3JSZWZMaXN0KHRoaXMuaW5zdGFuY2UpICYmIGNoZWNrSW52b2tlRnJvbUxpYnJhcnkpO1xyXG4gICAgICAgIGlmIChmaXJzdExldmVsKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEVsZW0udmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5zZXREcm9wRG93bkZsYWcodHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZWNvbmREcm9wZG93bihyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkrK1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrVmVuZG9yUmVmSXRlbXModGhpcy5pbnN0YW5jZSkgJiYgY2hlY2tJbnZva2VGcm9tTGlicmFyeSkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZURlcGVuZGVudEl0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLnNlY29uZERyb3Bkb3duSXRlbXMgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0RHJvcGRvd25JdGVtcygpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcy5mb3JFYWNoKChyZW5kZXJFbGVtZW50LCBpbmRleCwgYXJyYXkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMucHVzaCh7IGxhYmVsOiByZW5kZXJFbGVtZW50Wyd0ZXh0J10sIHZhbHVlOiB0aGlzLmNvbW1vblNlcnZpY2Uub25seU51bWJlcnMocmVuZGVyRWxlbWVudFsndmFsdWUnXSkgPyByZW5kZXJFbGVtZW50Wyd2YWx1ZSddICsgJyAnIDogcmVuZGVyRWxlbWVudFsndmFsdWUnXSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIXRoaXMuY29tbW9uU2VydmljZS5nZXREcm9wRG93bkZsYWcoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMgPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5kYXRhLnZhbHVlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMuc3RvcmVEZXBlbmRlbnRJdGVtcyk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUodGhpcy5zdG9yZURlcGVuZGVudEl0ZW1zKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucy50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gcmVzdWx0Lmxlbmd0aFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbS5vcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKChpc09wZW46IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoUXVlcnk/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNoSXRlbT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMud2Vic2l0ZU11bHRpRmlsdGVyQ3RybC5zZXRWYWx1ZSh0aGlzLnNlYXJjaEl0ZW0pO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIC8vdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgICAgdGhpcy5yZWdpc3RlclBhbmVsU2Nyb2xsRXZlbnQodGhpcy5zZWxlY3RFbGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVQYW5lbFNjcm9sbEV2ZW50KCk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZT8udG9TdHJpbmcoKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLnByb2R1Y3RMaXN0ID0gW107XHJcbiAgICAgICAgICAvLyAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICAgICAgICAvLyAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgICAgICAgIC8vICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmxvYWREYXRhKHRoaXMucGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSwgdGhpcy5zZWFyY2hRdWVyeSk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVBhbmVsU2Nyb2xsRXZlbnQoKSB7XHJcbiAgICAvLyBSZW1vdmUgdGhlIHNjcm9sbCBldmVudCBsaXN0ZW5lclxyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgICAgdGhpcy5jdXJyZW50UGFuZWxFbGVtZW50ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvKm5ldyBsb2dpYyAqL1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50c1xyXG4gICAgICAgICAgLy8gIHRhcCgoKSA9PiB0aGlzLnNlYXJjaGluZyA9IHRydWUpLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFF1ZXJ5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoUXVlcnkgIT0gJycpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0TGlzdCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSBzZWFyY2hRdWVyeTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hJdGVtID0gc2VhcmNoUXVlcnlcclxuICAgICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHNlYXJjaFF1ZXJ5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMud2Vic2l0ZU11bHRpRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJXZWJzaXRlTXVsdGkoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qRW5kICovXHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbnNSZXNvbHZlID0gcmVzb2x2ZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNMZW5ndGggPSBvcHRpb25zLmxlbmd0aDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgc3VibWl0RGF0YTogYW55LCBhdHRyaWJ1dGVzOiBhbnkpIHtcclxuXHJcbiAgfVxyXG5cclxuICBjaGVja1ZlbmRvclJlZkl0ZW1zKGluc3RhbmNlKSB7XHJcbiAgICBjb25zdCBzZWxlY3RWYWx1ZXMgPSBpbnN0YW5jZS5jb21wb25lbnRbJ3NlbGVjdFZhbHVlcyddO1xyXG4gICAgY29uc3QgZGF0YVVybCA9IGluc3RhbmNlLmNvbXBvbmVudFsnZGF0YSddPy51cmw7XHJcbiAgICBjb25zdCBpc1NlbGVjdFZhbHVlc1ZhbGlkID0gc2VsZWN0VmFsdWVzICE9IG51bGwgJiYgc2VsZWN0VmFsdWVzICE9PSAnJyAmJiBzZWxlY3RWYWx1ZXMgIT09IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGlzRGF0YVVybEludmFsaWQgPSBkYXRhVXJsID09IG51bGwgfHwgZGF0YVVybCA9PT0gJycgfHwgZGF0YVVybCA9PT0gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIGlzU2VsZWN0VmFsdWVzVmFsaWQgJiYgaXNEYXRhVXJsSW52YWxpZDtcclxuICB9XHJcblxyXG4gIGdldFZlbmRvclJlZkxpc3QoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IGRhdGFVcmwgPSBpbnN0YW5jZS5jb21wb25lbnRbJ2RhdGEnXT8udXJsO1xyXG4gICAgY29uc3QgaXNTZWxlY3RWYWx1ZXNWYWxpZCA9IGRhdGFVcmwgIT0gbnVsbCAmJiBkYXRhVXJsICE9PSAnJyAmJiBkYXRhVXJsICE9PSB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gaXNTZWxlY3RWYWx1ZXNWYWxpZDtcclxuICB9XHJcblxyXG4gIGlzRXJyb3IoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5lcnJvcikge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LnZhbGlkYXRlKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuZXJyb3IgJiYgdGhpcy5pbnN0YW5jZS5lcnJvci5tZXNzYWdlcykge1xyXG4gICAgICBjb25zdCB7IG1lc3NhZ2VzIH0gPSB0aGlzLmluc3RhbmNlLmVycm9yO1xyXG4gICAgICBpZiAobWVzc2FnZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBtc2cgb2YgbWVzc2FnZXMpIHtcclxuICAgICAgICAgIGlmIChtc2cuY29udGV4dCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLmluc3RhbmNlLnBhcmVudCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5fZGF0YSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlLnBhcmVudC5fZGF0YS5zdWJtaXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmVycm9yID8gdGhpcy5pbnN0YW5jZS5lcnJvci5tZXNzYWdlIDogJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wYXJlT2JqZWN0cyhvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gXy5pc0VxdWFsKG8xLCBvMik7XHJcbiAgfVxyXG5cclxuICBpc0ZpbHRlclByb2R1Y3RCYXNlZE9uQ3VzdG9tZXJDb3VudHJ5VmFsaWQoZGF0YSkge1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5oZWFkZXJzICYmIEFycmF5LmlzQXJyYXkoZGF0YS5oZWFkZXJzKSkge1xyXG4gICAgICBjb25zdCBoZWFkZXIgPSBkYXRhLmhlYWRlcnMuZmluZChoID0+IGgua2V5ID09PSAnZmlsdGVyUHJvZHVjdEJhc2VkT25DdXN0b21lckNvdW50cnknKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGhlYWRlciAmJlxyXG4gICAgICAgIGhlYWRlci52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgIGhlYWRlci52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgaGVhZGVyLnZhbHVlLnRyaW0oKSAhPT0gXCJcIiAmJlxyXG4gICAgICAgIGhlYWRlci52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG59XHJcblNlbGVjdENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50O1xyXG5cclxuLy8gTWFrZSBzdXJlIHdlIGRldGVjdCBjaGFuZ2VzIHdoZW4gbmV3IGl0ZW1zIG1ha2UgdGhlaXIgd2F5IGludG8gdGhlIHNlbGVjdCBkcm9wZG93bi5cclxuY29uc3Qgc2V0SXRlbXMgPSBTZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zO1xyXG5TZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICBzZXRJdGVtcy5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xyXG4gIGlmICh0aGlzLm1hdGVyaWFsQ29tcG9uZW50ICYmIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUpIHtcclxuICAgIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUodGhpcy5zZWxlY3RPcHRpb25zKTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgeyBTZWxlY3RDb21wb25lbnQgfTsiXX0=
593
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0MsU0FBUyxFQUE0QyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQVUsU0FBUyxFQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUYsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQTRFL0QsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGlCQUFpQjtJQThCNUQsWUFBbUIsT0FBbUIsRUFBUyxHQUFzQixFQUFTLElBQWdCLEVBQVMsYUFBNEI7UUFDakksS0FBSyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQztRQURILFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQVk7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQXpCNUgscUJBQWdCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFDbEQsMkJBQXNCLEdBQWdCLElBQUksV0FBVyxFQUFFLENBQUM7UUFFckQsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFFckMsZ0NBQWdDO1FBQ2hDLGVBQVUsR0FBRyxDQUFDLENBQUM7UUFDZixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsZUFBVSxHQUFHLENBQUMsQ0FBQztRQUNmLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLHdCQUFtQixHQUFZLEtBQUssQ0FBQztRQUM5QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQVUsRUFBRSxDQUFDO1FBQ3hCLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLGVBQVUsR0FBRyxFQUFFLENBQUM7UUFDaEIsOERBQThEO1FBQ3RELHdCQUFtQixHQUF1QixJQUFJLENBQUM7UUFDdkQsZ0JBQVcsR0FBVyxDQUFDLENBQUE7UUFDdkIsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBQzdCLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUM5QixlQUFVLEdBQVEsRUFBRSxDQUFBO1FBQ3BCLHdCQUFtQixHQUFRLEVBQUUsQ0FBQztRQUM5QixrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUN2QixlQUFVLEdBQVcsQ0FBQyxDQUFDO0lBSS9CLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUN0QixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxpQkFBaUIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssS0FBSyxFQUFFLEVBQUU7WUFDaEcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxpQkFBaUIsRUFBRTtZQUNuRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7U0FFdEI7SUFDSCxDQUFDO0lBRUQsd0JBQXdCLENBQUMsVUFBcUI7UUFDNUMsSUFBSSxVQUFVLElBQUksVUFBVSxFQUFFLEtBQUssRUFBRTtZQUNuQyx1REFBdUQ7WUFDdkQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzFELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUMvRTtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsR0FBRztRQUNoQixPQUFPLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztJQUNoQyxDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxpQkFBaUIsRUFBRTtZQUNuRSxNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1lBQ25DLElBQUksQ0FBQyxhQUFhO2dCQUFFLE9BQU8sQ0FBQyx3Q0FBd0M7WUFDcEUsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLFlBQVksR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDO1lBQzVFLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsSUFBSSxDQUFDO2dCQUFFLE9BQU8sQ0FBQyxnQ0FBZ0M7WUFDcEYsSUFBSSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRTtnQkFDeEIsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7Z0JBQzFFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDdEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxlQUFlLEVBQUUsVUFBVSxDQUFDO2FBQ2hEO1lBQ0QsSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsU0FBUyxHQUFHLFdBQVcsR0FBRyxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQzdGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFO29CQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO29CQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFBO2lCQUNoRTtxQkFBTTtvQkFDTCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDO29CQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztpQkFDeEI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztJQUVELDhDQUE4QztJQUM5QyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUc7UUFDckIsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM5QixPQUFPLElBQUksQ0FBQyxDQUFDLDRDQUE0QztTQUMxRDtRQUNELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3pFLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUdELFFBQVEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFdBQVc7UUFDeEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUMzRSxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDaEYsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDNUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDaEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLEVBQUUscUNBQXFDLENBQUMsQ0FBQztRQUM3RixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RCxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLE9BQU8sQ0FBQztRQUNaLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7WUFDdkUsSUFBSSxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7WUFDakQsT0FBTyxHQUFHLElBQUksV0FBVyxDQUFDO2dCQUN4QixjQUFjLEVBQUUsa0JBQWtCO2dCQUNsQyxlQUFlLEVBQUUsU0FBUyxHQUFHLFdBQVc7YUFDekMsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztTQUM1RDtRQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQzVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9ELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDekUsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsZ0RBQWdEO1FBQ2hELElBQUksUUFBUSxLQUFLLFNBQVMsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUU7WUFDbEUsUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsNEJBQTRCO1NBQzNFO1FBRUQsdURBQXVEO1FBQ3ZELElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNsQixhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBRSw4Q0FBOEM7U0FDcEc7UUFFRCxNQUFNLGNBQWMsR0FBRztZQUNyQixjQUFjLEVBQUUsd0JBQXdCO1lBQ3hDLDhCQUE4QixFQUFFLGtDQUFrQztZQUNsRSwwQkFBMEIsRUFBRSxnQ0FBZ0M7WUFDNUQsc0JBQXNCLEVBQUUsaUNBQWlDO1lBQ3pELDhCQUE4QixFQUFFLGtDQUFrQztZQUNsRSwwQkFBMEIsRUFBRSw4QkFBOEI7U0FDM0QsQ0FBQztRQUNGLDJCQUEyQjtRQUMzQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO1FBTzFELElBQUksR0FBRyxHQUFHLEdBQUcsVUFBVSxxREFBcUQsVUFBVSxlQUFlLFlBQVksYUFBYSxVQUFVLFdBQVcsYUFBYSxlQUFlLFFBQVEsdUJBQXVCLGFBQWEsRUFBRSxDQUFDO1FBQzlOLElBQUksV0FBVyxJQUFJLFNBQVMsRUFBRTtZQUM1QixHQUFHLElBQUksY0FBYyxXQUFXLEVBQUUsQ0FBQztTQUNwQztRQUNELG9EQUFvRDtRQUNwRCxJQUFJLG9CQUFvQixLQUFLLElBQUksSUFBSSxvQkFBb0IsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLDBDQUEwQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3hKLEdBQUcsSUFBSSx3Q0FBd0Msb0JBQW9CLEVBQUUsQ0FBQztTQUN2RTtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF5QixHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMzRSxJQUFJLFFBQVEsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTtnQkFDckMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssaUJBQWlCLEVBQUU7b0JBQ25FLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxFQUFFLElBQUksRUFBRSxVQUFVLENBQUM7b0JBQzdDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO29CQUN0QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDekMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQy9CLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7NEJBQ2QsT0FBTyxJQUFJLENBQUE7d0JBQ2IsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtxQkFDMUM7eUJBQU07d0JBQ0wsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7cUJBQ3pCO29CQUNELDhDQUE4QztvQkFDOUMsSUFBSSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztvQkFDbEUsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO29CQUN2RCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztvQkFDaEMsVUFBVSxDQUFDLEdBQUcsRUFBRTt3QkFDZCxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxhQUFhLENBQUM7d0JBQ2xELElBQUksR0FBRyxFQUFFOzRCQUNQLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQTs0QkFDdkQsTUFBTSxjQUFjLEdBQUcsV0FBVyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUM7NEJBQzVDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxHQUFHLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO3lCQUN6RDs2QkFBTTs0QkFDTCxPQUFPLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7eUJBQ3BEO29CQUVILENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztpQkFDVDthQUVGO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLHFCQUFxQixDQUFDLElBQW9FO1FBQ3hGLHNFQUFzRTtRQUN0RSxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2xELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3ZCLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDaEIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7YUFDaEIsQ0FBQyxDQUFDLENBQUM7U0FDTDthQUFNO1lBQ0wsNkRBQTZEO1lBQzdELE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDO0lBSUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ3ZCLE9BQU87U0FDUjtRQUNELElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7UUFDL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDekQsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUgsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDN0MsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBR0QsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ2xGO0lBQ0gsQ0FBQztJQUdELE9BQU87SUFDUCxXQUFXLENBQUMsUUFBYTtRQUN2QixLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsS0FBSyxpQkFBaUIsRUFBRTtZQUNuRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQztZQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDakU7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBVTtRQUM3QixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDO1FBQ25GLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzVELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMzRixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDbkMsTUFBTSxXQUFXLEdBQUcsS0FBSyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUM7Z0JBQ25ELElBQUksV0FBVyxJQUFJLEVBQUUsRUFBRTtvQkFDckIsSUFBSSxVQUFVLEdBQUc7d0JBQ2Y7NEJBQ0UsS0FBSyxFQUFFLFFBQVE7NEJBQ2YsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU07eUJBQ2hFO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxVQUFVOzRCQUNqQixPQUFPLEVBQUUsUUFBUTt5QkFDbEI7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLGFBQWE7NEJBQ3BCLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNO3lCQUNoRTt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsU0FBUzs0QkFDaEIsT0FBTyxFQUFFLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO3lCQUN2RDt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsV0FBVzs0QkFDbEIsT0FBTyxFQUFFLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFO3lCQUN2RDt3QkFDRDs0QkFDRSxLQUFLLEVBQUUsUUFBUTs0QkFDZixPQUFPLEVBQUUsTUFBTTt5QkFDaEI7d0JBQ0Q7NEJBQ0UsS0FBSyxFQUFFLFFBQVE7NEJBQ2YsT0FBTyxFQUFFLE1BQU07eUJBQ2hCO3dCQUNEOzRCQUNFLEtBQUssRUFBRSxtQkFBbUI7NEJBQzFCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUc7eUJBQy9CO3dCQUNEOzRCQUNFLEtBQUssRUFBRSx3QkFBd0I7NEJBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHO3lCQUN2QztxQkFDRixDQUFBO29CQUNELFdBQVcsR0FBRyxVQUFVLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRTt3QkFDOUIsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUM7d0JBQ3hFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFOzRCQUNoQix5Q0FBeUM7NEJBQ3pDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO3lCQUNsQzs2QkFBTTs0QkFDTCxtREFBbUQ7NEJBQ25ELFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO3lCQUN0RDt3QkFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUU7NEJBQ2xGLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssR0FBRyxFQUFFO2dDQUNyQyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztnQ0FDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQzs2QkFDL0Q7d0JBQ0gsQ0FBQyxDQUFDLENBQUM7cUJBQ0o7aUJBQ0Y7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUMvRCxrQ0FBa0M7WUFDbEMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDL0U7U0FDRjtRQUNELElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBZSxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ1QsSUFBSSxNQUFNLEVBQUU7Z0JBQ1YsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUM7Z0JBQ2xFLElBQUksc0JBQXNCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsRUFBRSxtQkFBbUIsQ0FBQyxDQUFBO2dCQUMvRyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksc0JBQXNCLENBQUMsQ0FBQztnQkFDcEYsSUFBSSxVQUFVLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO3dCQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzt3QkFDekMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFOzRCQUNYLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsQ0FBQzt5QkFDaEM7d0JBQ0QsQ0FBQyxFQUFFLENBQUE7b0JBQ0wsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7Z0JBSUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLHNCQUFzQixFQUFFO29CQUNyRSxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUNqRSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUU7d0JBQ3BDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFOzRCQUMvRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ3pMLENBQUMsQ0FBQyxDQUFDO3FCQUNKO29CQUNELElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsRUFBRSxFQUFFO3dCQUN6QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztxQkFDaEU7b0JBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO29CQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO3dCQUMvQixJQUFJLENBQUMscUJBQXFCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQTtvQkFDNUMsQ0FBQyxDQUFDLENBQUM7aUJBQ0o7YUFDRjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEtBQUssaUJBQWlCLEVBQUU7WUFDbkUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7Z0JBQ3pELElBQUksTUFBTSxFQUFFO29CQUNWLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO29CQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLE1BQU0sR0FBRyxDQUFDLEVBQUU7d0JBQ2hDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsQ0FBQyxFQUFFOzRCQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzs0QkFDdEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQzt5QkFDMUI7cUJBQ0Y7b0JBQ0QseUJBQXlCO29CQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDdkIsa0VBQWtFO29CQUNsRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUNoRDtxQkFBTTtvQkFDTCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7b0JBQ3ZCLHdDQUF3QztvQkFDeEMsb0RBQW9EO29CQUNwRCwyQkFBMkI7b0JBQzNCLHlCQUF5QjtvQkFDekIsd0JBQXdCO29CQUN4QiwyQkFBMkI7b0JBQzNCLHFFQUFxRTtvQkFDckUsSUFBSTtpQkFDTDtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsc0JBQXNCO1FBQ3BCLG1DQUFtQztRQUNuQyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQztTQUNqQztJQUNILENBQUM7SUFJRCxRQUFRO1FBQ04sY0FBYztRQUNkLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLGlCQUFpQixFQUFFO1lBQ25FLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZO2lCQUNyQyxJQUFJLENBQ0gsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLDBDQUEwQztZQUM5RCxxQ0FBcUM7WUFDckMsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztpQkFDNUIsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7Z0JBQ3pCLElBQUksV0FBVyxJQUFJLEVBQUUsRUFBRTtvQkFFckIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7b0JBQ3BCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO29CQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7b0JBQ3RCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO29CQUMvQixJQUFJLENBQUMsVUFBVSxHQUFHLFdBQVcsQ0FBQTtvQkFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7aUJBQzVEO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0wsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVk7aUJBQ3JDLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2lCQUM1QixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFDRCxRQUFRO1FBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQzNDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxPQUFPLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFVLEVBQUUsVUFBZSxFQUFFLFVBQWU7SUFFOUQsQ0FBQztJQUVELG1CQUFtQixDQUFDLFFBQVE7UUFDMUIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RCxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUNoRCxNQUFNLG1CQUFtQixHQUFHLFlBQVksSUFBSSxJQUFJLElBQUksWUFBWSxLQUFLLEVBQUUsSUFBSSxZQUFZLEtBQUssU0FBUyxDQUFDO1FBQ3RHLE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxJQUFJLElBQUksSUFBSSxPQUFPLEtBQUssRUFBRSxJQUFJLE9BQU8sS0FBSyxTQUFTLENBQUM7UUFDcEYsT0FBTyxtQkFBbUIsSUFBSSxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBUTtRQUN2QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQztRQUNoRCxNQUFNLG1CQUFtQixHQUFHLE9BQU8sSUFBSSxJQUFJLElBQUksT0FBTyxLQUFLLEVBQUUsSUFBSSxPQUFPLEtBQUssU0FBUyxDQUFDO1FBQ3ZGLE9BQU8sbUJBQW1CLENBQUM7SUFDN0IsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sSUFBSSxDQUFDO1NBQ2I7YUFDSTtZQUNILE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFO1lBQ3ZELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUN6QyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLEtBQUssTUFBTSxHQUFHLElBQUksUUFBUSxFQUFFO29CQUMxQixJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUU7d0JBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRTs0QkFDdkUsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFO2dDQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUM7NkJBQ2pDO3lCQUNGO3dCQUNELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO3FCQUMvRDtpQkFDRjthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQU8sRUFBRSxFQUFPO1FBQzdCLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVELDBDQUEwQyxDQUFDLElBQUk7UUFDN0MsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUsscUNBQXFDLENBQUMsQ0FBQztZQUN2RixJQUNFLE1BQU07Z0JBQ04sTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJO2dCQUNyQixNQUFNLENBQUMsS0FBSyxLQUFLLFNBQVM7Z0JBQzFCLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtnQkFDMUIsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxNQUFNLEVBQzVDO2dCQUNBLE9BQU8sSUFBSSxDQUFDO2FBQ2I7U0FDRjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7b0hBamdCVSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix3U0F4RXhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlDVDsyRkErQlUsdUJBQXVCO2tCQTFFbkMsU0FBUzsrQkFDRSxtQkFBbUIsWUFDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUNUO3NMQXNDMkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUVkLFVBQVU7c0JBQXJDLFNBQVM7dUJBQUMsZUFBZTs7QUEyZjVCLGVBQWUsQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FBQztBQUU1RCxzRkFBc0Y7QUFDdEYsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUM7QUFDcEQsZUFBZSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEdBQUcsVUFBVSxHQUFHLElBQUk7SUFDcEQsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM3QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsb0JBQW9CLEVBQUU7UUFDekUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUNqRTtBQUNILENBQUMsQ0FBQztBQUVGLE9BQU8sRUFBRSxlQUFlLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsQ29tcG9uZW50JztcclxuaW1wb3J0IFNlbGVjdENvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdC9TZWxlY3QuanMnO1xyXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgQ29tbW9uU2VydmljZSB9IGZyb20gJy4uL2NvbW1vbi5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxtYXQtZm9ybWlvLWZvcm0tZmllbGQgW2luc3RhbmNlXT1cImluc3RhbmNlXCIgW2NvbXBvbmVudFRlbXBsYXRlXT1cImNvbXBvbmVudFRlbXBsYXRlXCI+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudFRlbXBsYXRlIGxldC1oYXNMYWJlbD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGZ4RmlsbD5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LnByZWZpeFwiIG1hdFByZWZpeD5cclxuICAgICAgICAgIHt7IGluc3RhbmNlLmNvbXBvbmVudC5wcmVmaXggfX0mbmJzcDtcclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJpbnN0YW5jZS5jb21wb25lbnQubXVsdGlwbGVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImluc3RhbmNlLmNvbXBvbmVudC5wbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVPYmplY3RzXCJcclxuICAgICAgICAgICAgICAgICNwcm9kdWN0U2VsZWN0XHJcbiAgICAgICAgICAgICAgICBbcGFuZWxDbGFzc109XCJhZGRDdXN0b21DbGFzcyhpbnN0YW5jZS5jb21wb25lbnQua2V5KVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uPlxyXG4gICAgICAgIDxuZ3gtbWF0LXNlbGVjdC1zZWFyY2ggW3NlYXJjaGluZ109XCJpbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnID8gc2VhcmNoaW5nIDogZmFsc2VcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgcGxhY2Vob2xkZXJMYWJlbD1cIlR5cGUgdG8gc2VhcmNoXCIgW2Zvcm1Db250cm9sXT1cIndlYnNpdGVNdWx0aUZpbHRlckN0cmxcIj4gXHJcbiAgICAgICAgPG1hdC1pY29uIG5neE1hdFNlbGVjdFNlYXJjaENsZWFyIChjbGljayk9XCJjbGVhclByb2R1Y3RzKClcIj5jbG9zZTwvbWF0LWljb24+XHJcbiAgICAgICAgPC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuXHJcbiAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uLnZhbHVlXCIgY2xhc3M9XCJ2aXJ0dWFsLWZ1bGwtdmlld1wiPlxyXG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJvcHRpb24ubGFiZWxcIj48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPiAgIFxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhZmlsdGVyZWRPcHRpb25zTGVuZ3RoXCIgZGlzYWJsZWQ+XHJcbiAgICAgICAgICAgIDxzcGFuPk5vdGhpbmcgd2FzIGZvdW5kPC9zcGFuPlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuXHJcbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbnN0YW5jZS5jb21wb25lbnQuc3VmZml4XCIgbWF0U3VmZml4PlxyXG4gICAgICAgICAge3sgaW5zdGFuY2UuY29tcG9uZW50LnN1ZmZpeCB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpc0Vycm9yKClcIiA+e3sgZ2V0RXJyb3JNZXNzYWdlKCkgfX08L21hdC1lcnJvcj5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgLmV4YW1wbGUtdmlld3BvcnQge1xyXG4gICAgaGVpZ2h0OiAyMDBweDtcclxuICB9XHJcbiAgXHJcbiAgLnByb2R1Y3QtcGlja2VyIHtcclxuICAgIG92ZXJmbG93LXg6IGhpZGRlbjsgLyogRGlzYWJsZSBob3Jpem9udGFsIHNjcm9sbGluZyAqL1xyXG4gIH1cclxuXHJcbiAgLnZpcnR1YWwtZnVsbC12aWV3IHtcclxuICAgIGhlaWdodDogYXV0byAhaW1wb3J0YW50O1xyXG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbCAhaW1wb3J0YW50O1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuNCAhaW1wb3J0YW50O1xyXG4gICAgdGV4dC1vdmVyZmxvdzogaW5pdGlhbCAhaW1wb3J0YW50O1xyXG4gICAgbWluLWhlaWdodDogNDhweCAhaW1wb3J0YW50O1xyXG4gICAgb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcclxuICAgIHBhZGRpbmctdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XHJcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xyXG4gIH1cclxuXHJcbiAgOjpuZy1kZWVwIC5wcm9kdWN0LXBpY2tlciAuY2RrLXZpcnR1YWwtc2Nyb2xsLWNvbnRlbnQtd3JhcHBlciB7XHJcbiAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAudmlydHVhbC1mdWxsLXZpZXcgLm1hdC1wc2V1ZG8tY2hlY2tib3gge1xyXG4gICAgYWxpZ24tc2VsZjogdG9wICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuYF1cclxufSlcclxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgTWF0ZXJpYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XHJcbiAgc2VsZWN0T3B0aW9uczogUHJvbWlzZTxhbnlbXT47XHJcbiAgZmlsdGVyZWRPcHRpb25zOiBQcm9taXNlPGFueVtdPjtcclxuICBmaWx0ZXJlZE9wdGlvbnNMZW5ndGg6IG51bWJlcjtcclxuICBzZWxlY3RPcHRpb25zUmVzb2x2ZTogYW55O1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIHB1YmxpYyB3ZWJzaXRlTXVsdGlGaWx0ZXJDdHJsOiBGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gIEBWaWV3Q2hpbGQoJ211bHRpU2VsZWN0JywgeyBzdGF0aWM6IHRydWUgfSkgbXVsdGlTZWxlY3Q6IE1hdFNlbGVjdDtcclxuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgQFZpZXdDaGlsZCgncHJvZHVjdFNlbGVjdCcpIHNlbGVjdEVsZW06IE1hdFNlbGVjdDtcclxuICAvLyBWYXJpYWJsZXMgdG8gdHJhY2sgcGFnaW5hdGlvblxyXG4gIHBhZ2VOdW1iZXIgPSAxO1xyXG4gIHBhZ2VTaXplID0gMjA7XHJcbiAgdG90YWxQYWdlcyA9IDA7XHJcbiAgc2VhcmNoUXVlcnkgPSAnJztcclxuICBwcm9kdWN0c2xvYWRpbmdGbGFnOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlYXJjaGluZyA9IGZhbHNlO1xyXG4gIHByb2R1Y3RMaXN0OiBhbnlbXSA9IFtdO1xyXG4gIHNlbGVjdGVkVmFsdWU6IGFueSA9ICcnO1xyXG4gIHNlYXJjaEl0ZW0gPSBcIlwiO1xyXG4gIC8vIFZhcmlhYmxlIHRvIGhvbGQgdGhlIHJlZmVyZW5jZSB0byB0aGUgY3VycmVudCBwYW5lbCBlbGVtZW50XHJcbiAgcHJpdmF0ZSBjdXJyZW50UGFuZWxFbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSBudWxsO1xyXG4gIG9wZW5Db3VudGVyOiBudW1iZXIgPSAxXHJcbiAgZmlyc3REcm9wZG93bkl0ZW1zOiBhbnkgPSBbXTtcclxuICBzZWNvbmREcm9wZG93bkl0ZW1zOiBhbnkgPSBbXTtcclxuICBzdG9yZVZhbHVlOiBhbnkgPSBbXVxyXG4gIHN0b3JlRGVwZW5kZW50SXRlbXM6IGFueSA9IFtdO1xyXG4gIGV4ZWN1dGlvbkZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGFwaUNvdW50ZXI6IG51bWJlciA9IDA7XHJcbiAgY2hlY2tBdHRyaWJ1dGU6IGFueTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZiwgcHVibGljIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50LCBwdWJsaWMgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoZWxlbWVudCwgcmVmKTtcclxuICB9XHJcblxyXG4gIG9uSW5wdXRDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJyAmJiBldmVudC50YXJnZXQudmFsdWUgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMub25DbGVhckFsbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJQcm9kdWN0cygpIHtcclxuICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgdGhpcy5vbkNsZWFyQWxsKCk7XHJcbiAgICAgIHRoaXMuc2VhcmNoSXRlbSA9IFwiXCI7XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJQYW5lbFNjcm9sbEV2ZW50KHNlbGVjdEVsZW06IE1hdFNlbGVjdCkge1xyXG4gICAgaWYgKHNlbGVjdEVsZW0gJiYgc2VsZWN0RWxlbT8ucGFuZWwpIHtcclxuICAgICAgLy8gY29uc3QgcGFuZWxFbGVtZW50ID0gc2VsZWN0RWxlbS5wYW5lbC5uYXRpdmVFbGVtZW50O1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQgPSBzZWxlY3RFbGVtLnBhbmVsLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgIHRoaXMuY3VycmVudFBhbmVsRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdzY3JvbGwnLCB0aGlzLm9uU2Nyb2xsLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYWRkQ3VzdG9tQ2xhc3Moa2V5KSB7XHJcbiAgICByZXR1cm4gJ3dhbGttZV9zZWxlY3RfJyArIGtleTtcclxuICB9XHJcblxyXG4gIG9uU2Nyb2xsKGV2ZW50KSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIGNvbnN0IHNjcm9sbEVsZW1lbnQgPSBldmVudC50YXJnZXQ7XHJcbiAgICAgIGlmICghc2Nyb2xsRWxlbWVudCkgcmV0dXJuOyAvLyBFbnN1cmUgc2Nyb2xsRWxlbWVudCBpcyBub3QgdW5kZWZpbmVkXHJcbiAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gc2Nyb2xsRWxlbWVudC5zY3JvbGxIZWlnaHQgLSBzY3JvbGxFbGVtZW50Lm9mZnNldEhlaWdodDtcclxuICAgICAgaWYgKGlzTmFOKHRyYWNrSGVpZ2h0KSB8fCB0cmFja0hlaWdodCA8PSAwKSByZXR1cm47IC8vIENoZWNrIGlmIHRyYWNrSGVpZ2h0IGlzIHZhbGlkXHJcbiAgICAgIGlmICh0aGlzLm9wZW5Db3VudGVyIDwgMikge1xyXG4gICAgICAgIGNvbnN0IHJldHJpZXZlZE9iamVjdCA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3N0b3JhZ2VPYmplY3QnKSk7XHJcbiAgICAgICAgdGhpcy50b3RhbFBhZ2VzID0gTnVtYmVyKHJldHJpZXZlZE9iamVjdD8udG90YWxQYWdlcyk7XHJcbiAgICAgICAgdGhpcy5wcm9kdWN0c2xvYWRpbmdGbGFnID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gcmV0cmlldmVkT2JqZWN0Py5kYXRhU291cmNlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnByb2R1Y3RzbG9hZGluZ0ZsYWcgJiYgTWF0aC5mbG9vcihzY3JvbGxFbGVtZW50Py5zY3JvbGxUb3AgLyB0cmFja0hlaWdodCAqIDEwMCkgPiA1MCkge1xyXG4gICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMub3BlbkNvdW50ZXIgPSB0aGlzLm9wZW5Db3VudGVyICsgMTtcclxuICAgICAgICBpZiAodGhpcy5wYWdlTnVtYmVyIDwgdGhpcy50b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSB0aGlzLnBhZ2VOdW1iZXIgKyAxO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSB0cnVlO1xyXG4gICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpXHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gRnVuY3Rpb24gdG8gZ2V0IHZhbHVlIGJ5IGtleSBmcm9tIHRoZSBhcnJheVxyXG4gIGdldFZhbHVlQnlLZXkoZGF0YSwga2V5KSB7XHJcbiAgICBpZiAoIWRhdGEgfHwgZGF0YS5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIG51bGw7IC8vIFJldHVybiBudWxsIGlmIGRhdGEgaXMgZW1wdHkgb3IgdW5kZWZpbmVkXHJcbiAgICB9XHJcbiAgICBjb25zdCBpdGVtID0gZGF0YS5maW5kKGt2ID0+IGt2LmtleS50b0xvd2VyQ2FzZSgpID09PSBrZXkudG9Mb3dlckNhc2UoKSk7XHJcbiAgICByZXR1cm4gaXRlbSA/IGl0ZW0udmFsdWUgOiBudWxsO1xyXG4gIH1cclxuXHJcblxyXG4gIGxvYWREYXRhKHBhZ2VOdW1iZXIsIHBhZ2VTaXplLCBzZWFyY2hRdWVyeSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Byb2R1Y3RQaWNrZXJQYXJhbXMnKSk7XHJcbiAgICBjb25zdCBpbmNsdWRlRGVzY3JpcHRpb24gPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ2luY2x1ZGVEZXNjcmlwdGlvbicpO1xyXG4gICAgY29uc3QgdmVuZG9ySWQgPSB0aGlzLmdldFZhbHVlQnlLZXkocGFyYW1zRGF0YSwgJ3ZlbmRvcklkJyk7XHJcbiAgICBjb25zdCBvbmx5QWN0aXZlID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdvbmx5QWN0aXZlJyk7XHJcbiAgICBjb25zdCBpbmNsdWRlQ291bnRyeSA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAnZmlsdGVyUHJvZHVjdEJhc2VkT25DdXN0b21lckNvdW50cnknKTtcclxuICAgIGNvbnN0IHByb2dyYW1JZCA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCBcInByb2dyYW1JZFwiKTtcclxuICAgIHZhciBjdXJyZW50VXNlciA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2N1cnJlbnRVc2VyJykpO1xyXG4gICAgbGV0IGhlYWRlcnM7XHJcbiAgICBpZiAoY3VycmVudFVzZXIgJiYgY3VycmVudFVzZXIuVG9rZW5zICYmIGN1cnJlbnRVc2VyLlRva2Vucy5BY2Nlc3NUb2tlbikge1xyXG4gICAgICB2YXIgYWNjZXNzVG9rZW4gPSBjdXJyZW50VXNlci5Ub2tlbnMuQWNjZXNzVG9rZW47XHJcbiAgICAgIGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlblxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1VzZXIgbm90IGF1dGhlbnRpY2F0ZWQgb3IgdG9rZW5zIG1pc3NpbmcuJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZW52ZW5kb3JJZCA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZSh2ZW5kb3JJZClcclxuICAgIGNvbnN0IGVucGFnZU51bWJlciA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShwYWdlTnVtYmVyKVxyXG4gICAgY29uc3QgZW5wYWdlU2l6ZSA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShwYWdlU2l6ZSk7XHJcbiAgICBjb25zdCBlbnNlYXJjaFF1ZXJ5ID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKHNlYXJjaFF1ZXJ5KTtcclxuICAgIGNvbnN0IGVuY29kZUluY2x1ZGVDb3VudHJ5ID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKGluY2x1ZGVDb3VudHJ5KTtcclxuICAgIGxldCBlbmFjdGl2ZSA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShvbmx5QWN0aXZlKTtcclxuICAgIGNvbnN0IGVucHJvZ3JhbUlkID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKHByb2dyYW1JZCk7XHJcbiAgICAvL0NoZWNrIGlmIGVuYWN0aXZlIGlzIHVuZGVmaW5lZCwgbnVsbCwgb3IgYmxhbmtcclxuICAgIGlmIChlbmFjdGl2ZSA9PT0gdW5kZWZpbmVkIHx8IGVuYWN0aXZlID09PSBudWxsIHx8IGVuYWN0aXZlID09PSAnJykge1xyXG4gICAgICBlbmFjdGl2ZSA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZSh0cnVlKTsgLy8gU2V0IGRlZmF1bHQgdmFsdWUgdG8gdHJ1ZVxyXG4gICAgfVxyXG5cclxuICAgIC8vIFNjcnVtYmxlIGFuZCBoYW5kbGUgdGhlIGluY2x1ZGVEZXNjcmlwdGlvbiBwYXJhbWV0ZXJcclxuICAgIGxldCBlbmRlc2NyaXB0aW9uID0gdGhpcy5jb21tb25TZXJ2aWNlLnNjcnVtYmxlKGluY2x1ZGVEZXNjcmlwdGlvbik7XHJcbiAgICBpZiAoIWVuZGVzY3JpcHRpb24pIHtcclxuICAgICAgZW5kZXNjcmlwdGlvbiA9IHRoaXMuY29tbW9uU2VydmljZS5zY3J1bWJsZShmYWxzZSk7ICAvLyBTZXQgdG8gJ2ZhbHNlJyBpZiB1bmRlZmluZWQsIG51bGwsIG9yIGJsYW5rXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgYmFzZVVybE1hcHBpbmcgPSB7XHJcbiAgICAgICdiRzlqWVd4b2IzTjAnOiAnaHR0cDovL2xvY2FsaG9zdDo1ODUwNCcsXHJcbiAgICAgICdiR2x1WTI5c2JpNTJZWEowYjNCcFlTNWpiMjA9JzogJ2h0dHBzOi8vbGluY29sbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ2MzUmhaMlV1ZG1GeWRHOXdhV0V1WTI5dCc6ICdodHRwczovL3N0YWdlLWFwaS52YXJ0b3BpYS5jb20nLFxyXG4gICAgICAnYlhrdWRtRnlkRzl3YVdFdVkyOXQnOiAnaHR0cHM6Ly9yZWFnYW4tYXBpLnZhcnRvcGlhLmNvbScsXHJcbiAgICAgICdhbUZqYTNOdmJpNTJZWEowYjNCcFlTNWpiMjA9JzogJ2h0dHBzOi8vamFja3Nvbi1hcGkudmFydG9waWEuY29tJyxcclxuICAgICAgJ2RXRjBMblpoY25SdmNHbGhMbU52YlE9PSc6ICdodHRwczovL3VhdC1hcGkudmFydG9waWEuY29tJ1xyXG4gICAgfTtcclxuICAgIC8vIEdldCB0aGUgY3VycmVudCBob3N0bmFtZVxyXG4gICAgY29uc3QgaG9zdG5hbWUgPSB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XHJcbiAgICBjb25zdCBiYXNlQXBpVXJsID0gYmFzZVVybE1hcHBpbmdbYnRvYShob3N0bmFtZSldIHx8IG51bGw7XHJcbiAgICBpbnRlcmZhY2UgVmVuZG9yUHJvZHVjdHNSZXNwb25zZSB7XHJcbiAgICAgIGNvZGU6IG51bWJlcjtcclxuICAgICAgZGF0YTogYW55O1xyXG4gICAgICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgICAgIHN0YXR1c0NvZGU6IG51bWJlcjtcclxuICAgIH1cclxuICAgIGxldCB1cmwgPSBgJHtiYXNlQXBpVXJsfS9hcGkvVmVuZG9yRm9ybUJ1aWxkZXIvR2V0VmVuZG9yUHJvZHVjdHM/dmVuZG9ySWQ9JHtlbnZlbmRvcklkfSZwYWdlTnVtYmVyPSR7ZW5wYWdlTnVtYmVyfSZwYWdlU2l6ZT0ke2VucGFnZVNpemV9JnNlYXJjaD0ke2Vuc2VhcmNoUXVlcnl9Jm9ubHlBY3RpdmU9JHtlbmFjdGl2ZX0maW5jbHVkZURlc2NyaXB0aW9uPSR7ZW5kZXNjcmlwdGlvbn1gO1xyXG4gICAgaWYgKGVucHJvZ3JhbUlkICYmIHByb2dyYW1JZCkge1xyXG4gICAgICB1cmwgKz0gYCZwcm9ncmFtSWQ9JHtlbnByb2dyYW1JZH1gO1xyXG4gICAgfVxyXG4gICAgLy8gT25seSBhZGQgaW5jbHVkZUNvdW50cnlJZCBpZiBpdCBoYXMgYSB2YWxpZCB2YWx1ZVxyXG4gICAgaWYgKGVuY29kZUluY2x1ZGVDb3VudHJ5ICE9PSBudWxsICYmIGVuY29kZUluY2x1ZGVDb3VudHJ5ICE9PSB1bmRlZmluZWQgJiYgdGhpcy5pc0ZpbHRlclByb2R1Y3RCYXNlZE9uQ3VzdG9tZXJDb3VudHJ5VmFsaWQodGhpcy5pbnN0YW5jZS5jb21wb25lbnQuZGF0YSkpIHtcclxuICAgICAgdXJsICs9IGAmZmlsdGVyUHJvZHVjdEJhc2VkT25DdXN0b21lckNvdW50cnk9JHtlbmNvZGVJbmNsdWRlQ291bnRyeX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaHR0cC5nZXQ8VmVuZG9yUHJvZHVjdHNSZXNwb25zZT4odXJsLCB7IGhlYWRlcnMgfSkuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5rZXkudG9Mb3dlckNhc2UoKSA9PT0gJ3ZlbmRvcnByb2R1Y3RpZCcpIHtcclxuICAgICAgICAgIHRoaXMudG90YWxQYWdlcyA9IHJlc3BvbnNlPy5kYXRhPy50b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGEuZGF0YVNvdXJjZTtcclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZGF0YS5sZW5ndGg7XHJcbiAgICAgICAgICBpZiAodGhpcy5wcm9kdWN0TGlzdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGRhdGEubWFwKGl0ZW0gPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiBpdGVtXHJcbiAgICAgICAgICAgIH0pLmZvckVhY2goaSA9PiB0aGlzLnByb2R1Y3RMaXN0LnB1c2goaSkpXHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnByb2R1Y3RMaXN0ID0gZGF0YTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIC8vIFVwZGF0ZSBmaWx0ZXJlZE9wdGlvbnMgd2l0aCB0cmFuc2Zvcm1lZERhdGFcclxuICAgICAgICAgIHZhciBhbGxQcm9kdWN0TGlzdCA9IHRoaXMudHJhbnNmb3JtUmVzcG9uc2VEYXRhKHRoaXMucHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUoYWxsUHJvZHVjdExpc3QpO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMucHJvZHVjdHNsb2FkaW5nRmxhZyA9IHRydWU7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZWxlID0gdGhpcy5zZWxlY3RFbGVtPy5wYW5lbD8ubmF0aXZlRWxlbWVudDtcclxuICAgICAgICAgICAgaWYgKGVsZSkge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHRyYWNrSGVpZ2h0ID0gZWxlLnNjcm9sbEhlaWdodCAtIGVsZS5vZmZzZXRIZWlnaHRcclxuICAgICAgICAgICAgICBjb25zdCBtaWRkbGVQb3NpdGlvbiA9IHRyYWNrSGVpZ2h0IC8gMiAtIDUwO1xyXG4gICAgICAgICAgICAgIGVsZS5zY3JvbGxUbyh7IHRvcDogbWlkZGxlUG9zaXRpb24sIGJlaGF2aW9yOiAnYXV0bycgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1BhbmVsIGVsZW1lbnQgaXMgbm90IGF2YWlsYWJsZSB5ZXQuJyk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICB9LCAyNTApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy8gVXRpbGl0eSBmdW5jdGlvbiB0byB0cmFuc2Zvcm0gcmVzcG9uc2UgZGF0YVxyXG4gIHRyYW5zZm9ybVJlc3BvbnNlRGF0YShkYXRhOiBBcnJheTx7IHRleHQ6IGFueSwgdmFsdWU6IGFueSwgZGF0ZTogYW55IH0+IHwgbnVsbCB8IHVuZGVmaW5lZCk6IEFycmF5PHsgbGFiZWw6IHN0cmluZywgdmFsdWU6IG51bWJlciwgZGF0ZTogc3RyaW5nIH0+IHtcclxuICAgIC8vIENoZWNrIGlmIGRhdGEgaXMgbm90IG51bGwsIHVuZGVmaW5lZCwgYW5kIGlzIGFuIGFycmF5IHdpdGggZWxlbWVudHNcclxuICAgIGlmIChkYXRhICYmIEFycmF5LmlzQXJyYXkoZGF0YSkgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiBkYXRhLm1hcChpdGVtID0+ICh7XHJcbiAgICAgICAgbGFiZWw6IGl0ZW0udGV4dCxcclxuICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcclxuICAgICAgICBkYXRlOiBpdGVtLmRhdGVcclxuICAgICAgfSkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgLy8gUmV0dXJuIGFuIGVtcHR5IGFycmF5IGlmIGRhdGEgaXMgbnVsbCwgdW5kZWZpbmVkLCBvciBlbXB0eVxyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGZpbHRlcldlYnNpdGVNdWx0aSgpIHtcclxuICAgIGlmICghdGhpcy5zZWxlY3RPcHRpb25zKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBzZWFyY2ggPSB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWU7XHJcbiAgICBzZWFyY2ggPSBzZWFyY2gudG9Mb3dlckNhc2UoKTtcclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgY29uc3QgZmlsdGVyZWQgPSBvcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb24ubGFiZWwucmVwbGFjZSgvPFxcLz9zcGFuW14+XSo+L2csIFwiXCIpLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpICE9PSAtMSk7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gZmlsdGVyZWQubGVuZ3RoO1xyXG4gICAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCcnKTtcclxuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvKkVuZCovXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyVXBkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyQWxsKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICB0aGlzLnBhZ2VTaXplID0gMjA7XHJcbiAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSAnJztcclxuICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5wcm9kdWN0TGlzdCA9IFtdO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSAnJztcclxuICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2Vjb25kRHJvcGRvd24odmFsdWU6IGFueSkge1xyXG4gICAgY29uc3QgcGFyYW1zRGF0YSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2Nhc2NhZGluZ0Ryb3Bkb3duc1BhcmFtc29uZScpKTtcclxuICAgIGNvbnN0IHZlbmRvcklkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICd2ZW5kb3JJZCcpO1xyXG4gICAgY29uc3QgZGVhbElkID0gdGhpcy5nZXRWYWx1ZUJ5S2V5KHBhcmFtc0RhdGEsICdkZWFsSWQnKTtcclxuICAgIGNvbnN0IGlzRWRpdCA9IHRoaXMuZ2V0VmFsdWVCeUtleShwYXJhbXNEYXRhLCAnaXNFZGl0Jyk7XHJcbiAgICBsZXQgZmluYWxQYXJhbXM7XHJcbiAgICB0aGlzLmluc3RhbmNlPy5wYXJlbnQ/LmNvbXBvbmVudHM/Lmxlbmd0aCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5jb21wb25lbnRzLmZvckVhY2goaXRlbXMgPT4ge1xyXG4gICAgICBpZiAodGhpcy5jaGVja1ZlbmRvclJlZkl0ZW1zKGl0ZW1zKSkge1xyXG4gICAgICAgIGNvbnN0IGFwaUVuZFBvaW50ID0gaXRlbXM/LmNvbXBvbmVudD8uc2VsZWN0VmFsdWVzO1xyXG4gICAgICAgIGlmIChhcGlFbmRQb2ludCAhPSAnJykge1xyXG4gICAgICAgICAgdmFyIHBhcmFtZXRlcnMgPSBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInVzZXJJZFwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKSkuVXNlcklkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInZlbmRvcklkXCIsXHJcbiAgICAgICAgICAgICAgXCJ2YWx1ZVwiOiB2ZW5kb3JJZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJsb2dpblVzZXJJZFwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnY3VycmVudFVzZXInKSkuVXNlcklkXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcImNvdW50cnlcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJkYXRhVmFsdWVcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkgOiAnJ1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJkZWFsSWRcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IGRlYWxJZFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJpc0VkaXRcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IGlzRWRpdFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgXCJrZXlcIjogXCJyZWZlcmVuY2VMaXN0TmFtZVwiLFxyXG4gICAgICAgICAgICAgIFwidmFsdWVcIjogaXRlbXM/LmNvbXBvbmVudD8ua2V5XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBcImtleVwiOiBcInJlZmVyZW5jZUxpc3RGaWVsZE5hbWVcIixcclxuICAgICAgICAgICAgICBcInZhbHVlXCI6IHRoaXMuaW5zdGFuY2U/LmNvbXBvbmVudD8ua2V5XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIF1cclxuICAgICAgICAgIGZpbmFsUGFyYW1zID0gcGFyYW1ldGVycz8uZmlsdGVyKGYxID0+IGl0ZW1zPy5jb21wb25lbnQ/LmRhdGE/LmhlYWRlcnMuc29tZShmMiA9PiBmMS5rZXkgPT09IGYyLmtleSkpO1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmluYWxQYXJhbXMpKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gZmluYWxQYXJhbXMuZmluZEluZGV4KHBhcmFtID0+IHBhcmFtLmtleSA9PT0gJ2RhdGFWYWx1ZScpO1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XHJcbiAgICAgICAgICAgICAgLy8gSWYgdGhlIG9iamVjdCBleGlzdHMsIHVwZGF0ZSBpdHMgdmFsdWVcclxuICAgICAgICAgICAgICBmaW5hbFBhcmFtc1tpbmRleF0udmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAvLyBJZiB0aGUgb2JqZWN0IGRvZXNuJ3QgZXhpc3QsIGFkZCBpdCB0byB0aGUgYXJyYXlcclxuICAgICAgICAgICAgICBmaW5hbFBhcmFtcy5wdXNoKHsga2V5OiAnZGF0YVZhbHVlJywgdmFsdWU6IHZhbHVlIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5pbml0aWFsaXplQXBpUGF0aChhcGlFbmRQb2ludCwgZmluYWxQYXJhbXMpLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLmNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmREcm9wZG93bkl0ZW1zID0gcmVzcG9uc2UuZGF0YTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5zZXREcm9wZG93bkl0ZW1zKHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcyk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudCAmJiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCAmJiB0aGlzLmluc3RhbmNlKSB7XHJcbiAgICAgIC8vIEFkZCBjdXN0b20gY2xhc3NlcyB0byBlbGVtZW50cy5cclxuICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmN1c3RvbUNsYXNzKSB7XHJcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCh0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5jdXN0b21DbGFzcyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0RWxlbS5vcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKGFzeW5jIChpc09wZW46IGJvb2xlYW4pID0+IHtcclxuICAgICAgbGV0IGkgPSAwXHJcbiAgICAgIGlmIChpc09wZW4pIHtcclxuICAgICAgICBjb25zdCBuZXdQcm9kdWN0UGlja2VyRmxhZyA9IHRoaXMuaW5zdGFuY2U/LmNvbXBvbmVudD8uYXR0cmlidXRlcztcclxuICAgICAgICBsZXQgY2hlY2tJbnZva2VGcm9tTGlicmFyeSA9IHRoaXMuY29tbW9uU2VydmljZS5jaGVja0lzQXR0cmlidXRlVHJ1ZShuZXdQcm9kdWN0UGlja2VyRmxhZywgXCJpbnZva2VGcm9tTGlicmFyeVwiKVxyXG4gICAgICAgIGNvbnN0IGZpcnN0TGV2ZWwgPSAodGhpcy5nZXRWZW5kb3JSZWZMaXN0KHRoaXMuaW5zdGFuY2UpICYmIGNoZWNrSW52b2tlRnJvbUxpYnJhcnkpO1xyXG4gICAgICAgIGlmIChmaXJzdExldmVsKSB7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdEVsZW0udmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tbW9uU2VydmljZS5zZXREcm9wRG93bkZsYWcodHJ1ZSk7XHJcbiAgICAgICAgICAgIGlmIChpID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZWNvbmREcm9wZG93bihyZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGkrK1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuXHJcblxyXG4gICAgICAgIGlmICh0aGlzLmNoZWNrVmVuZG9yUmVmSXRlbXModGhpcy5pbnN0YW5jZSkgJiYgY2hlY2tJbnZva2VGcm9tTGlicmFyeSkge1xyXG4gICAgICAgICAgdGhpcy5zdG9yZURlcGVuZGVudEl0ZW1zID0gW107XHJcbiAgICAgICAgICB0aGlzLnNlY29uZERyb3Bkb3duSXRlbXMgPSB0aGlzLmNvbW1vblNlcnZpY2UuZ2V0RHJvcGRvd25JdGVtcygpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2Vjb25kRHJvcGRvd25JdGVtcy5mb3JFYWNoKChyZW5kZXJFbGVtZW50LCBpbmRleCwgYXJyYXkpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMucHVzaCh7IGxhYmVsOiByZW5kZXJFbGVtZW50Wyd0ZXh0J10sIHZhbHVlOiB0aGlzLmNvbW1vblNlcnZpY2Uub25seU51bWJlcnMocmVuZGVyRWxlbWVudFsndmFsdWUnXSkgPyByZW5kZXJFbGVtZW50Wyd2YWx1ZSddICsgJyAnIDogcmVuZGVyRWxlbWVudFsndmFsdWUnXSB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoIXRoaXMuY29tbW9uU2VydmljZS5nZXREcm9wRG93bkZsYWcoKSkge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3JlRGVwZW5kZW50SXRlbXMgPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudC5kYXRhLnZhbHVlcztcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gUHJvbWlzZS5yZXNvbHZlKHRoaXMuc3RvcmVEZXBlbmRlbnRJdGVtcyk7XHJcbiAgICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSBQcm9taXNlLnJlc29sdmUodGhpcy5zdG9yZURlcGVuZGVudEl0ZW1zKTtcclxuICAgICAgICAgIHRoaXMuc2VsZWN0T3B0aW9ucy50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zTGVuZ3RoID0gcmVzdWx0Lmxlbmd0aFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5jb21wb25lbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICd2ZW5kb3Jwcm9kdWN0aWQnKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbS5vcGVuZWRDaGFuZ2Uuc3Vic2NyaWJlKChpc09wZW46IGJvb2xlYW4pID0+IHtcclxuICAgICAgICBpZiAoaXNPcGVuKSB7XHJcbiAgICAgICAgICB0aGlzLnBhZ2VOdW1iZXIgPSAxO1xyXG4gICAgICAgICAgdGhpcy5wYWdlU2l6ZSA9IDIwO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc2VhcmNoUXVlcnk/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2VhcmNoSXRlbT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgIHRoaXMud2Vic2l0ZU11bHRpRmlsdGVyQ3RybC5zZXRWYWx1ZSh0aGlzLnNlYXJjaEl0ZW0pO1xyXG4gICAgICAgICAgICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgLy8gdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xyXG4gICAgICAgICAgdGhpcy5zZWFyY2hpbmcgPSBmYWxzZTtcclxuICAgICAgICAgIC8vdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHRoaXMuc2VhcmNoUXVlcnkpO1xyXG4gICAgICAgICAgdGhpcy5yZWdpc3RlclBhbmVsU2Nyb2xsRXZlbnQodGhpcy5zZWxlY3RFbGVtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5yZW1vdmVQYW5lbFNjcm9sbEV2ZW50KCk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgLy8gdGhpcy5zZWxlY3RlZFZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgLy8gaWYgKHRoaXMuc2VsZWN0ZWRWYWx1ZT8udG9TdHJpbmcoKS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgLy8gICB0aGlzLnByb2R1Y3RMaXN0ID0gW107XHJcbiAgICAgICAgICAvLyAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICAgICAgICAvLyAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgICAgICAgIC8vICAgdGhpcy5zZWFyY2hRdWVyeSA9ICcnO1xyXG4gICAgICAgICAgLy8gICB0aGlzLmxvYWREYXRhKHRoaXMucGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSwgdGhpcy5zZWFyY2hRdWVyeSk7XHJcbiAgICAgICAgICAvLyB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZVBhbmVsU2Nyb2xsRXZlbnQoKSB7XHJcbiAgICAvLyBSZW1vdmUgdGhlIHNjcm9sbCBldmVudCBsaXN0ZW5lclxyXG4gICAgaWYgKHRoaXMuY3VycmVudFBhbmVsRWxlbWVudCkge1xyXG4gICAgICB0aGlzLmN1cnJlbnRQYW5lbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2Nyb2xsJywgdGhpcy5vblNjcm9sbC5iaW5kKHRoaXMpKTtcclxuICAgICAgdGhpcy5jdXJyZW50UGFuZWxFbGVtZW50ID0gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvKm5ldyBsb2dpYyAqL1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAndmVuZG9ycHJvZHVjdGlkJykge1xyXG4gICAgICB0aGlzLndlYnNpdGVNdWx0aUZpbHRlckN0cmwudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICBkZWJvdW5jZVRpbWUoMTAwMCksIC8vIFRpbWUgaW4gbWlsbGlzZWNvbmRzIGJldHdlZW4ga2V5IGV2ZW50c1xyXG4gICAgICAgICAgLy8gIHRhcCgoKSA9PiB0aGlzLnNlYXJjaGluZyA9IHRydWUpLFxyXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHNlYXJjaFF1ZXJ5KSA9PiB7XHJcbiAgICAgICAgICBpZiAoc2VhcmNoUXVlcnkgIT0gJycpIHtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucGFnZU51bWJlciA9IDE7XHJcbiAgICAgICAgICAgIHRoaXMucGFnZVNpemUgPSAyMDtcclxuICAgICAgICAgICAgdGhpcy5wcm9kdWN0TGlzdCA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnNlYXJjaGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoUXVlcnkgPSBzZWFyY2hRdWVyeTtcclxuICAgICAgICAgICAgdGhpcy5zZWFyY2hJdGVtID0gc2VhcmNoUXVlcnlcclxuICAgICAgICAgICAgdGhpcy5sb2FkRGF0YSh0aGlzLnBhZ2VOdW1iZXIsIHRoaXMucGFnZVNpemUsIHNlYXJjaFF1ZXJ5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMud2Vic2l0ZU11bHRpRmlsdGVyQ3RybC52YWx1ZUNoYW5nZXNcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJXZWJzaXRlTXVsdGkoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8qRW5kICovXHJcbiAgICB0aGlzLnNlbGVjdE9wdGlvbnMgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNlbGVjdE9wdGlvbnNSZXNvbHZlID0gcmVzb2x2ZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RPcHRpb25zLnRoZW4oKG9wdGlvbnMpID0+IHtcclxuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNMZW5ndGggPSBvcHRpb25zLmxlbmd0aDtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5zZWxlY3RPcHRpb25zO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3Rpb25DaGFuZ2UoZXZlbnQ6IGFueSwgc3VibWl0RGF0YTogYW55LCBhdHRyaWJ1dGVzOiBhbnkpIHtcclxuXHJcbiAgfVxyXG5cclxuICBjaGVja1ZlbmRvclJlZkl0ZW1zKGluc3RhbmNlKSB7XHJcbiAgICBjb25zdCBzZWxlY3RWYWx1ZXMgPSBpbnN0YW5jZS5jb21wb25lbnRbJ3NlbGVjdFZhbHVlcyddO1xyXG4gICAgY29uc3QgZGF0YVVybCA9IGluc3RhbmNlLmNvbXBvbmVudFsnZGF0YSddPy51cmw7XHJcbiAgICBjb25zdCBpc1NlbGVjdFZhbHVlc1ZhbGlkID0gc2VsZWN0VmFsdWVzICE9IG51bGwgJiYgc2VsZWN0VmFsdWVzICE9PSAnJyAmJiBzZWxlY3RWYWx1ZXMgIT09IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGlzRGF0YVVybEludmFsaWQgPSBkYXRhVXJsID09IG51bGwgfHwgZGF0YVVybCA9PT0gJycgfHwgZGF0YVVybCA9PT0gdW5kZWZpbmVkO1xyXG4gICAgcmV0dXJuIGlzU2VsZWN0VmFsdWVzVmFsaWQgJiYgaXNEYXRhVXJsSW52YWxpZDtcclxuICB9XHJcblxyXG4gIGdldFZlbmRvclJlZkxpc3QoaW5zdGFuY2UpIHtcclxuICAgIGNvbnN0IGRhdGFVcmwgPSBpbnN0YW5jZS5jb21wb25lbnRbJ2RhdGEnXT8udXJsO1xyXG4gICAgY29uc3QgaXNTZWxlY3RWYWx1ZXNWYWxpZCA9IGRhdGFVcmwgIT0gbnVsbCAmJiBkYXRhVXJsICE9PSAnJyAmJiBkYXRhVXJsICE9PSB1bmRlZmluZWQ7XHJcbiAgICByZXR1cm4gaXNTZWxlY3RWYWx1ZXNWYWxpZDtcclxuICB9XHJcblxyXG4gIGlzRXJyb3IoKSB7XHJcbiAgICBpZiAodGhpcy5pbnN0YW5jZS5lcnJvcikge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc2V0RXJyb3JzKHRoaXMuaW5zdGFuY2UuY29tcG9uZW50LnZhbGlkYXRlKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKCkge1xyXG4gICAgaWYgKHRoaXMuaW5zdGFuY2UuZXJyb3IgJiYgdGhpcy5pbnN0YW5jZS5lcnJvci5tZXNzYWdlcykge1xyXG4gICAgICBjb25zdCB7IG1lc3NhZ2VzIH0gPSB0aGlzLmluc3RhbmNlLmVycm9yO1xyXG4gICAgICBpZiAobWVzc2FnZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgZm9yIChjb25zdCBtc2cgb2YgbWVzc2FnZXMpIHtcclxuICAgICAgICAgIGlmIChtc2cuY29udGV4dCkge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5pbnN0YW5jZSAmJiB0aGlzLmluc3RhbmNlLnBhcmVudCAmJiB0aGlzLmluc3RhbmNlLnBhcmVudC5fZGF0YSkge1xyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmluc3RhbmNlLnBhcmVudC5fZGF0YS5zdWJtaXQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5tYXJrQWxsQXNUb3VjaGVkKCk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmluc3RhbmNlLmVycm9yID8gdGhpcy5pbnN0YW5jZS5lcnJvci5tZXNzYWdlIDogJyc7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wYXJlT2JqZWN0cyhvMTogYW55LCBvMjogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gXy5pc0VxdWFsKG8xLCBvMik7XHJcbiAgfVxyXG5cclxuICBpc0ZpbHRlclByb2R1Y3RCYXNlZE9uQ3VzdG9tZXJDb3VudHJ5VmFsaWQoZGF0YSkge1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5oZWFkZXJzICYmIEFycmF5LmlzQXJyYXkoZGF0YS5oZWFkZXJzKSkge1xyXG4gICAgICBjb25zdCBoZWFkZXIgPSBkYXRhLmhlYWRlcnMuZmluZChoID0+IGgua2V5ID09PSAnZmlsdGVyUHJvZHVjdEJhc2VkT25DdXN0b21lckNvdW50cnknKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGhlYWRlciAmJlxyXG4gICAgICAgIGhlYWRlci52YWx1ZSAhPT0gbnVsbCAmJlxyXG4gICAgICAgIGhlYWRlci52YWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgaGVhZGVyLnZhbHVlLnRyaW0oKSAhPT0gXCJcIiAmJlxyXG4gICAgICAgIGhlYWRlci52YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gXCJ0cnVlXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG59XHJcblNlbGVjdENvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Q29tcG9uZW50O1xyXG5cclxuLy8gTWFrZSBzdXJlIHdlIGRldGVjdCBjaGFuZ2VzIHdoZW4gbmV3IGl0ZW1zIG1ha2UgdGhlaXIgd2F5IGludG8gdGhlIHNlbGVjdCBkcm9wZG93bi5cclxuY29uc3Qgc2V0SXRlbXMgPSBTZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zO1xyXG5TZWxlY3RDb21wb25lbnQucHJvdG90eXBlLnNldEl0ZW1zID0gZnVuY3Rpb24gKC4uLmFyZ3MpIHtcclxuICBzZXRJdGVtcy5jYWxsKHRoaXMsIC4uLmFyZ3MpO1xyXG4gIGlmICh0aGlzLm1hdGVyaWFsQ29tcG9uZW50ICYmIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUpIHtcclxuICAgIHRoaXMubWF0ZXJpYWxDb21wb25lbnQuc2VsZWN0T3B0aW9uc1Jlc29sdmUodGhpcy5zZWxlY3RPcHRpb25zKTtcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgeyBTZWxlY3RDb21wb25lbnQgfTsiXX0=
@@ -40,8 +40,8 @@ export class MaterialSelectBoxesComponent extends MaterialRadioComponent {
40
40
  this.instance.triggerChange({ modified: true });
41
41
  }
42
42
  }
43
- MaterialSelectBoxesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSelectBoxesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
44
- MaterialSelectBoxesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MaterialSelectBoxesComponent, selector: "mat-formio-selectboxes", usesInheritance: true, ngImport: i0, template: `
43
+ MaterialSelectBoxesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectBoxesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
44
+ MaterialSelectBoxesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSelectBoxesComponent, selector: "mat-formio-selectboxes", usesInheritance: true, ngImport: i0, template: `
45
45
  <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
46
46
  <ng-template #componentTemplate let-hasLabel>
47
47
  <div fxLayout="column">
@@ -65,8 +65,8 @@ MaterialSelectBoxesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14
65
65
  </div>
66
66
  </div>
67
67
  </ng-template>
68
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSelectBoxesComponent, decorators: [{
68
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i5.DefaultFlexOffsetDirective, selector: " [fxFlexOffset], [fxFlexOffset.xs], [fxFlexOffset.sm], [fxFlexOffset.md], [fxFlexOffset.lg], [fxFlexOffset.xl], [fxFlexOffset.lt-sm], [fxFlexOffset.lt-md], [fxFlexOffset.lt-lg], [fxFlexOffset.lt-xl], [fxFlexOffset.gt-xs], [fxFlexOffset.gt-sm], [fxFlexOffset.gt-md], [fxFlexOffset.gt-lg]", inputs: ["fxFlexOffset", "fxFlexOffset.xs", "fxFlexOffset.sm", "fxFlexOffset.md", "fxFlexOffset.lg", "fxFlexOffset.xl", "fxFlexOffset.lt-sm", "fxFlexOffset.lt-md", "fxFlexOffset.lt-lg", "fxFlexOffset.lt-xl", "fxFlexOffset.gt-xs", "fxFlexOffset.gt-sm", "fxFlexOffset.gt-md", "fxFlexOffset.gt-lg"] }, { kind: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSelectBoxesComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{
72
72
  selector: 'mat-formio-selectboxes',
@@ -99,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
99
99
  }] });
100
100
  SelectBoxesComponent.MaterialComponent = MaterialSelectBoxesComponent;
101
101
  export { SelectBoxesComponent };
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0Ym94ZXMvc2VsZWN0Ym94ZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxvQkFBb0IsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7O0FBNkJsRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBQXNCO0lBNUJ4RTs7UUE2QlMsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBOEJ6QjtJQTVCQyxXQUFXLENBQUMsUUFBUTtRQUNsQixRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELEtBQUssTUFBTSxJQUFJLElBQUksZUFBZSxFQUFFO1lBQ2xDLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUM7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUTtRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7OzBIQS9CVSw0QkFBNEI7OEdBQTVCLDRCQUE0QixxRkExQjdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlQ7NEZBRVUsNEJBQTRCO2tCQTVCeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDtpQkFDRjs7QUFrQ0Qsb0JBQW9CLENBQUMsaUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4uL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCBTZWxlY3RCb3hlc0NvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdGJveGVzL1NlbGVjdEJveGVzLmpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdGJveGVzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIj48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgZnhGbGV4T2Zmc2V0PVwiMTBweFwiXHJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInt7IGdldExheW91dCgpIH19XCJcclxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMTBweFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW29wdGlvbi52YWx1ZV1cIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImluc3RhbmNlLmVycm9yXCI+e3sgaW5zdGFuY2UuZXJyb3IubWVzc2FnZSB9fTwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsUmFkaW9Db21wb25lbnQge1xyXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0ge307XHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlKSB7XHJcbiAgICBpbnN0YW5jZS5jb21wb25lbnQudmFsdWVzLmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlW29wdGlvbi52YWx1ZV0gPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLmluc3RhbmNlLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBub3JtYWxpemVkVmFsdWUpIHtcclxuICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVbcHJvcF0gPSBub3JtYWxpemVkVmFsdWVbcHJvcF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkKGRpc2FibGVkKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gISFkaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5pbnN0YW5jZS51cGRhdGVWYWx1ZSh0aGlzLmdldFZhbHVlKCksIHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyQ2hhbmdlKHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gIH1cclxufVxyXG5TZWxlY3RCb3hlc0NvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFNlbGVjdEJveGVzQ29tcG9uZW50IH07XHJcbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Ym94ZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvc2VsZWN0Ym94ZXMvc2VsZWN0Ym94ZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDbEUsT0FBTyxvQkFBb0IsTUFBTSxnREFBZ0QsQ0FBQzs7Ozs7Ozs7O0FBNkJsRixNQUFNLE9BQU8sNEJBQTZCLFNBQVEsc0JBQXNCO0lBNUJ4RTs7UUE2QlMsVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBOEJ6QjtJQTVCQyxXQUFXLENBQUMsUUFBUTtRQUNsQixRQUFRLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUMzQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELEtBQUssTUFBTSxJQUFJLElBQUksZUFBZSxFQUFFO1lBQ2xDLElBQUksZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDMUM7U0FDRjtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUTtRQUNsQixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7O3lIQS9CVSw0QkFBNEI7NkdBQTVCLDRCQUE0QixxRkExQjdCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlQ7MkZBRVUsNEJBQTRCO2tCQTVCeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsd0JBQXdCO29CQUNsQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCVDtpQkFDRjs7QUFrQ0Qsb0JBQW9CLENBQUMsaUJBQWlCLEdBQUcsNEJBQTRCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4uL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XHJcbmltcG9ydCBTZWxlY3RCb3hlc0NvbXBvbmVudCBmcm9tICdmb3JtaW9qcy9jb21wb25lbnRzL3NlbGVjdGJveGVzL1NlbGVjdEJveGVzLmpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXNlbGVjdGJveGVzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG1hdC1mb3JtaW8tZm9ybS1maWVsZCBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIj48L21hdC1mb3JtaW8tZm9ybS1maWVsZD5cclxuICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgZnhGbGV4T2Zmc2V0PVwiMTBweFwiXHJcbiAgICAgICAgICAgICAgICBmeExheW91dD1cInt7IGdldExheW91dCgpIH19XCJcclxuICAgICAgICAgICAgICAgIGZ4TGF5b3V0R2FwPVwiMTBweFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInZhbHVlW29wdGlvbi52YWx1ZV1cIlxyXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBvcHRpb24ubGFiZWwgfX1cclxuICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImluc3RhbmNlLmVycm9yXCI+e3sgaW5zdGFuY2UuZXJyb3IubWVzc2FnZSB9fTwvbWF0LWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTZWxlY3RCb3hlc0NvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsUmFkaW9Db21wb25lbnQge1xyXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0ge307XHJcbiAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gIHNldEluc3RhbmNlKGluc3RhbmNlKSB7XHJcbiAgICBpbnN0YW5jZS5jb21wb25lbnQudmFsdWVzLmZvckVhY2goKG9wdGlvbikgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlW29wdGlvbi52YWx1ZV0gPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB0aGlzLmluc3RhbmNlLm5vcm1hbGl6ZVZhbHVlKHZhbHVlKTtcclxuICAgIGZvciAoY29uc3QgcHJvcCBpbiBub3JtYWxpemVkVmFsdWUpIHtcclxuICAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xyXG4gICAgICAgIHRoaXMudmFsdWVbcHJvcF0gPSBub3JtYWxpemVkVmFsdWVbcHJvcF07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkKGRpc2FibGVkKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gISFkaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIG9uQ2hhbmdlKCkge1xyXG4gICAgdGhpcy5pbnN0YW5jZS51cGRhdGVWYWx1ZSh0aGlzLmdldFZhbHVlKCksIHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gICAgdGhpcy5pbnN0YW5jZS50cmlnZ2VyQ2hhbmdlKHttb2RpZmllZDogdHJ1ZX0pO1xyXG4gIH1cclxufVxyXG5TZWxlY3RCb3hlc0NvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2VsZWN0Qm94ZXNDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFNlbGVjdEJveGVzQ29tcG9uZW50IH07XHJcbiJdfQ==
@@ -20,8 +20,8 @@ export class MaterialSignatureComponent extends MaterialComponent {
20
20
  this.renderComponents();
21
21
  }
22
22
  }
23
- MaterialSignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSignatureComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
- MaterialSignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MaterialSignatureComponent, selector: "mat-formio-signature", viewQueries: [{ propertyName: "signatureElement", first: true, predicate: ["signature"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
23
+ MaterialSignatureComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSignatureComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
24
+ MaterialSignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSignatureComponent, selector: "mat-formio-signature", viewQueries: [{ propertyName: "signatureElement", first: true, predicate: ["signature"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
25
25
  <mat-formio-form-field [instance]="instance" [componentTemplate]="componentTemplate"></mat-formio-form-field>
26
26
  <ng-template #componentTemplate let-hasLabel>
27
27
  <div #signature>
@@ -54,8 +54,8 @@ MaterialSignatureComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0
54
54
  </div>
55
55
  </div>
56
56
  </ng-template>
57
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i6.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i7.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i8.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSignatureComponent, decorators: [{
57
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "directive", type: i6.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i7.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i8.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
58
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSignatureComponent, decorators: [{
59
59
  type: Component,
60
60
  args: [{
61
61
  selector: 'mat-formio-signature',
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
100
100
  }] } });
101
101
  SignatureComponent.MaterialComponent = MaterialSignatureComponent;
102
102
  export { SignatureComponent };
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLGtCQUFrQixNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBc0M1RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBRy9ELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7d0hBWFUsMEJBQTBCOzRHQUExQiwwQkFBMEIsa01BbkMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUOzRGQUVVLDBCQUEwQjtrQkFyQ3RDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1Q7aUJBQ0Y7OEJBRXlCLGdCQUFnQjtzQkFBdkMsU0FBUzt1QkFBQyxXQUFXOztBQVl4QixrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgU2lnbmF0dXJlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc2lnbmF0dXJlL1NpZ25hdHVyZS5qcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1zaWduYXR1cmUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxkaXYgI3NpZ25hdHVyZT5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtuZ1N0eWxlXT1cIntwb3NpdGlvbjogJ2Fic29sdXRlJ31cIiByZWY9XCJyZWZyZXNoXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWduYXR1cmUtcGFkLWJvZHlcIlxyXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwie3dpZHRoOiBpbnN0YW5jZS5jb21wb25lbnQud2lkdGgsIGhlaWdodDogaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodCwgcGFkZGluZzogMCwgbWFyZ2luOiAwfVwiXHJcbiAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpbnN0YW5jZS5jb21wb25lbnQudGFiaW5kZXggfHwgMFwiXHJcbiAgICAgICAgICAgICByZWY9XCJwYWRCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8Y2FudmFzIGNsYXNzPVwic2lnbmF0dXJlLXBhZC1jYW52YXNcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgIHJlZj1cImNhbnZhc1wiXHJcbiAgICAgICAgICA+PC9jYW52YXM+XHJcbiAgICAgICAgICA8aW1nIGZ4RmxleEZpbGwgW25nU3R5bGVdPVwie2Rpc3BsYXk6ICdub25lJyB9XCIgcmVmPVwic2lnbmF0dXJlSW1hZ2VcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LmZvb3RlclwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cInNpZ25hdHVyZS1wYWQtZm9vdGVyXCJcclxuICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3sgaW5zdGFuY2UudChpbnN0YW5jZS5jb21wb25lbnQuZm9vdGVyKSB9fTwvbWF0LWhpbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnc2lnbmF0dXJlJykgc2lnbmF0dXJlRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50cygpIHtcclxuICAgIGlmICh0aGlzLnNpZ25hdHVyZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hdHRhY2godGhpcy5zaWduYXR1cmVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5yZW5kZXJDb21wb25lbnRzKCk7XHJcbiAgfVxyXG59XHJcblNpZ25hdHVyZUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50O1xyXG5leHBvcnQgeyBTaWduYXR1cmVDb21wb25lbnQgfTtcclxuIl19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmF0dXJlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3NpZ25hdHVyZS9zaWduYXR1cmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUE2QixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLGtCQUFrQixNQUFNLDRDQUE0QyxDQUFDOzs7Ozs7Ozs7O0FBc0M1RSxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsaUJBQWlCO0lBRy9ELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztTQUMzRDtJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQzs7dUhBWFUsMEJBQTBCOzJHQUExQiwwQkFBMEIsa01BbkMzQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNUOzJGQUVVLDBCQUEwQjtrQkFyQ3RDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ1Q7aUJBQ0Y7OEJBRXlCLGdCQUFnQjtzQkFBdkMsU0FBUzt1QkFBQyxXQUFXOztBQVl4QixrQkFBa0IsQ0FBQyxpQkFBaUIsR0FBRywwQkFBMEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgU2lnbmF0dXJlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc2lnbmF0dXJlL1NpZ25hdHVyZS5qcyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbWF0LWZvcm1pby1zaWduYXR1cmUnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkIFtpbnN0YW5jZV09XCJpbnN0YW5jZVwiIFtjb21wb25lbnRUZW1wbGF0ZV09XCJjb21wb25lbnRUZW1wbGF0ZVwiPjwvbWF0LWZvcm1pby1mb3JtLWZpZWxkPlxyXG4gICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRUZW1wbGF0ZSBsZXQtaGFzTGFiZWw+XHJcbiAgICAgIDxkaXYgI3NpZ25hdHVyZT5cclxuXHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcblxyXG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIFtuZ1N0eWxlXT1cIntwb3NpdGlvbjogJ2Fic29sdXRlJ31cIiByZWY9XCJyZWZyZXNoXCI+XHJcbiAgICAgICAgICA8bWF0LWljb24+cmVmcmVzaDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzaWduYXR1cmUtcGFkLWJvZHlcIlxyXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwie3dpZHRoOiBpbnN0YW5jZS5jb21wb25lbnQud2lkdGgsIGhlaWdodDogaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodCwgcGFkZGluZzogMCwgbWFyZ2luOiAwfVwiXHJcbiAgICAgICAgICAgICBbYXR0ci50YWJpbmRleF09XCJpbnN0YW5jZS5jb21wb25lbnQudGFiaW5kZXggfHwgMFwiXHJcbiAgICAgICAgICAgICByZWY9XCJwYWRCb2R5XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8Y2FudmFzIGNsYXNzPVwic2lnbmF0dXJlLXBhZC1jYW52YXNcIlxyXG4gICAgICAgICAgICAgICAgICBbYXR0ci5oZWlnaHRdPVwiaW5zdGFuY2UuY29tcG9uZW50LmhlaWdodFwiXHJcbiAgICAgICAgICAgICAgICAgIHJlZj1cImNhbnZhc1wiXHJcbiAgICAgICAgICA+PC9jYW52YXM+XHJcbiAgICAgICAgICA8aW1nIGZ4RmxleEZpbGwgW25nU3R5bGVdPVwie2Rpc3BsYXk6ICdub25lJyB9XCIgcmVmPVwic2lnbmF0dXJlSW1hZ2VcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LmZvb3RlclwiXHJcbiAgICAgICAgICAgICBjbGFzcz1cInNpZ25hdHVyZS1wYWQtZm9vdGVyXCJcclxuICAgICAgICAgICAgIGZ4TGF5b3V0PVwicm93XCJcclxuICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bWF0LWhpbnQ+e3sgaW5zdGFuY2UudChpbnN0YW5jZS5jb21wb25lbnQuZm9vdGVyKSB9fTwvbWF0LWhpbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFNpZ25hdHVyZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnc2lnbmF0dXJlJykgc2lnbmF0dXJlRWxlbWVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgcmVuZGVyQ29tcG9uZW50cygpIHtcclxuICAgIGlmICh0aGlzLnNpZ25hdHVyZUVsZW1lbnQpIHtcclxuICAgICAgdGhpcy5pbnN0YW5jZS5hdHRhY2godGhpcy5zaWduYXR1cmVFbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5yZW5kZXJDb21wb25lbnRzKCk7XHJcbiAgfVxyXG59XHJcblNpZ25hdHVyZUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU2lnbmF0dXJlQ29tcG9uZW50O1xyXG5leHBvcnQgeyBTaWduYXR1cmVDb21wb25lbnQgfTtcclxuIl19
@@ -55,8 +55,8 @@ export class MaterialSurveyComponent extends MaterialComponent {
55
55
  return `${this.instance.id}-${question}`;
56
56
  }
57
57
  }
58
- MaterialSurveyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSurveyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
59
- MaterialSurveyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MaterialSurveyComponent, selector: "mat-formio-survey", usesInheritance: true, ngImport: i0, template: `
58
+ MaterialSurveyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSurveyComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
59
+ MaterialSurveyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialSurveyComponent, selector: "mat-formio-survey", usesInheritance: true, ngImport: i0, template: `
60
60
 
61
61
  <mat-formio-form-field
62
62
  [instance]="instance"
@@ -105,8 +105,8 @@ MaterialSurveyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0"
105
105
  <mat-error *ngIf="instance.error">{{ instance.error.message }}</mat-error>
106
106
  </table>
107
107
  </ng-template>
108
- `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
109
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialSurveyComponent, decorators: [{
108
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i5.FlexFillDirective, selector: "[fxFill], [fxFlexFill]" }, { kind: "component", type: i6.FormioFormFieldComponent, selector: "mat-formio-form-field", inputs: ["labelTemplate", "renderTopLabel", "showDescription", "renderElementOnly", "instance", "componentTemplate"] }, { kind: "component", type: i7.LabelComponent, selector: "span[matFormioLabel]", inputs: ["instance"] }] });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialSurveyComponent, decorators: [{
110
110
  type: Component,
111
111
  args: [{
112
112
  selector: 'mat-formio-survey',
@@ -164,4 +164,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
164
164
  }] });
165
165
  SurveyComponent.MaterialComponent = MaterialSurveyComponent;
166
166
  export { SurveyComponent };
167
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUF1RDdDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFyRDlEOztRQXNEUyxhQUFRLEdBQVEsRUFBRSxDQUFDO0tBNEMzQjtJQTNDQyxjQUFjLENBQUMsUUFBUTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNuQztTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQy9DLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO2FBQzNEO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRTtZQUM1QixJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO2lCQUM1QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7O3FIQTVDVSx1QkFBdUI7eUdBQXZCLHVCQUF1QixnRkFuRHRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaURUOzRGQUVRLHVCQUF1QjtrQkFyRG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaURUO2lCQUNKOztBQStDRCxlQUFlLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgU3VydmV5Q29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc3VydmV5L1N1cnZleS5qcyc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tc3VydmV5JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkXHJcbiAgICAgICAgICAgICAgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcclxuICAgICAgICAgICAgICBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtzaG93RGVzY3JpcHRpb25dPVwiZmFsc2VcIlxyXG4gICAgICA+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4IG1hdC10YWJsZVwiIGZ4RmlsbD5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICAgICAgICAgIDxoMiAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBpbnN0YW5jZS5jb21wb25lbnQudmFsdWVzXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyB2YWx1ZS5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBpbnN0YW5jZS5jb21wb25lbnQucXVlc3Rpb25zOyBpbmRleCBhcyBpO1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7IHF1ZXN0aW9uLmxhYmVsIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXM7IGluZGV4IGFzIGo7XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2wocXVlc3Rpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldFVuaXF1ZU5hbWUocXVlc3Rpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwidmFsdWUudmFsdWVcIj48L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJtYXQtZm9ybWlvLWNvbXBvbmVudC1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQuZGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgIDwvbWF0LWhpbnQ+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpbnN0YW5jZS5lcnJvclwiPnt7IGluc3RhbmNlLmVycm9yLm1lc3NhZ2UgfX08L21hdC1lcnJvcj5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbENvbXBvbmVudCB7XHJcbiAgcHVibGljIGNvbnRyb2xzOiBhbnkgPSB7fTtcclxuICBnZXRGb3JtQ29udHJvbChxdWVzdGlvbikge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXSA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5zaG91bGREaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHNbcXVlc3Rpb25dLmRpc2FibGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHNbcXVlc3Rpb25dO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWQoZGlzYWJsZWQpIHtcclxuICAgIGNvbnN0IG1ldGhvZCA9IGRpc2FibGVkID8gJ2Rpc2FibGUnIDogJ2VuYWJsZSc7XHJcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIGluIHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkocXVlc3Rpb24pKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sc1txdWVzdGlvbl1bbWV0aG9kXSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBxdWVzdGlvbiBpbiB0aGlzLmNvbnRyb2xzKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KHF1ZXN0aW9uKSkge1xyXG4gICAgICAgIHZhbHVlc1txdWVzdGlvbl0gPSB0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXS52YWx1ZSB8fCBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIGluIHZhbHVlKSB7XHJcbiAgICAgIGlmICh2YWx1ZS5oYXNPd25Qcm9wZXJ0eShxdWVzdGlvbikpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRGb3JtQ29udHJvbChxdWVzdGlvbik7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWVbcXVlc3Rpb25dIHx8IGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVuaXF1ZU5hbWUocXVlc3Rpb24pIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmluc3RhbmNlLmlkfS0ke3F1ZXN0aW9ufWA7XHJcbiAgfVxyXG59XHJcblN1cnZleUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU3VydmV5Q29tcG9uZW50O1xyXG5leHBvcnQgeyBTdXJ2ZXlDb21wb25lbnQgfTtcclxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZW5kZXItbWF0ZXJpYWwtZm9ybXMvc3JjL2xpYi9jb21wb25lbnRzL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7QUF1RDdDLE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxpQkFBaUI7SUFyRDlEOztRQXNEUyxhQUFRLEdBQVEsRUFBRSxDQUFDO0tBNEMzQjtJQTNDQyxjQUFjLENBQUMsUUFBUTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDNUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRTtnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNuQztTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsUUFBUTtRQUNsQixNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQy9DLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7YUFDbkM7U0FDRjtJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUMxQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDO2FBQzNEO1NBQ0Y7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQUs7UUFDWixLQUFLLE1BQU0sUUFBUSxJQUFJLEtBQUssRUFBRTtZQUM1QixJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLEVBQUU7Z0JBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQzlDLElBQUksT0FBTyxFQUFFO29CQUNYLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDO2lCQUM1QzthQUNGO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQzNDLENBQUM7O29IQTVDVSx1QkFBdUI7d0dBQXZCLHVCQUF1QixnRkFuRHRCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaURUOzJGQUVRLHVCQUF1QjtrQkFyRG5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBaURUO2lCQUNKOztBQStDRCxlQUFlLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdGVyaWFsQ29tcG9uZW50IH0gZnJvbSAnLi4vTWF0ZXJpYWxDb21wb25lbnQnO1xyXG5pbXBvcnQgU3VydmV5Q29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvc3VydmV5L1N1cnZleS5qcyc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ21hdC1mb3JtaW8tc3VydmV5JyxcclxuICAgIHRlbXBsYXRlOiBgXHJcblxyXG4gICAgICA8bWF0LWZvcm1pby1mb3JtLWZpZWxkXHJcbiAgICAgICAgICAgICAgW2luc3RhbmNlXT1cImluc3RhbmNlXCJcclxuICAgICAgICAgICAgICBbY29tcG9uZW50VGVtcGxhdGVdPVwiY29tcG9uZW50VGVtcGxhdGVcIlxyXG4gICAgICAgICAgICAgIFtzaG93RGVzY3JpcHRpb25dPVwiZmFsc2VcIlxyXG4gICAgICA+PC9tYXQtZm9ybWlvLWZvcm0tZmllbGQ+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50VGVtcGxhdGUgbGV0LWhhc0xhYmVsPlxyXG5cclxuICAgICAgICA8dGFibGUgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4IG1hdC10YWJsZVwiIGZ4RmlsbD5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgIDx0ciBjbGFzcz1cIm1hdC1oZWFkZXItcm93XCI+XHJcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cIm1hdC1oZWFkZXItY2VsbFwiPlxyXG4gICAgICAgICAgICAgIDxoMiAqbmdJZj1cImhhc0xhYmVsXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5zdGFuY2VdPVwiaW5zdGFuY2VcIiBtYXRGb3JtaW9MYWJlbD48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9oMj5cclxuICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgPHRoIGNsYXNzPVwibWF0LWhlYWRlci1jZWxsXCJcclxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBpbnN0YW5jZS5jb21wb25lbnQudmFsdWVzXCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7eyB2YWx1ZS5sYWJlbCB9fVxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgPC90cj5cclxuICAgICAgICAgIDwvdGhlYWQ+XHJcblxyXG4gICAgICAgICAgPHRib2R5PlxyXG4gICAgICAgICAgPHRyIGNsYXNzPVwibWF0LXJvd1wiICpuZ0Zvcj1cImxldCBxdWVzdGlvbiBvZiBpbnN0YW5jZS5jb21wb25lbnQucXVlc3Rpb25zOyBpbmRleCBhcyBpO1wiPlxyXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJtYXQtY2VsbFwiPnt7IHF1ZXN0aW9uLmxhYmVsIH19PC90ZD5cclxuICAgICAgICAgICAgPHRkIGNsYXNzPVwibWF0LWNlbGxcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIGluc3RhbmNlLmNvbXBvbmVudC52YWx1ZXM7IGluZGV4IGFzIGo7XCJcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwidGV4dC1hbGlnbjogY2VudGVyO1wiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIChjaGFuZ2UpPVwib25DaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZ2V0Rm9ybUNvbnRyb2wocXVlc3Rpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImdldFVuaXF1ZU5hbWUocXVlc3Rpb24udmFsdWUpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwidmFsdWUudmFsdWVcIj48L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgPG1hdC1oaW50ICpuZ0lmPVwiaW5zdGFuY2UuY29tcG9uZW50LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJtYXQtZm9ybWlvLWNvbXBvbmVudC1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS5jb21wb25lbnQuZGVzY3JpcHRpb24gfX1cclxuICAgICAgICAgIDwvbWF0LWhpbnQ+XHJcbiAgICAgICAgICA8L3Rib2R5PlxyXG5cclxuICAgICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJpbnN0YW5jZS5lcnJvclwiPnt7IGluc3RhbmNlLmVycm9yLm1lc3NhZ2UgfX08L21hdC1lcnJvcj5cclxuICAgICAgICA8L3RhYmxlPlxyXG4gICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxTdXJ2ZXlDb21wb25lbnQgZXh0ZW5kcyBNYXRlcmlhbENvbXBvbmVudCB7XHJcbiAgcHVibGljIGNvbnRyb2xzOiBhbnkgPSB7fTtcclxuICBnZXRGb3JtQ29udHJvbChxdWVzdGlvbikge1xyXG4gICAgaWYgKCF0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXSkge1xyXG4gICAgICB0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXSA9IG5ldyBGb3JtQ29udHJvbCgpO1xyXG4gICAgICBpZiAodGhpcy5pbnN0YW5jZS5zaG91bGREaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMuY29udHJvbHNbcXVlc3Rpb25dLmRpc2FibGUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuY29udHJvbHNbcXVlc3Rpb25dO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWQoZGlzYWJsZWQpIHtcclxuICAgIGNvbnN0IG1ldGhvZCA9IGRpc2FibGVkID8gJ2Rpc2FibGUnIDogJ2VuYWJsZSc7XHJcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIGluIHRoaXMuY29udHJvbHMpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbHMuaGFzT3duUHJvcGVydHkocXVlc3Rpb24pKSB7XHJcbiAgICAgICAgdGhpcy5jb250cm9sc1txdWVzdGlvbl1bbWV0aG9kXSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IHZhbHVlcyA9IHt9O1xyXG4gICAgZm9yIChjb25zdCBxdWVzdGlvbiBpbiB0aGlzLmNvbnRyb2xzKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2xzLmhhc093blByb3BlcnR5KHF1ZXN0aW9uKSkge1xyXG4gICAgICAgIHZhbHVlc1txdWVzdGlvbl0gPSB0aGlzLmNvbnRyb2xzW3F1ZXN0aW9uXS52YWx1ZSB8fCBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlcztcclxuICB9XHJcblxyXG4gIHNldFZhbHVlKHZhbHVlKSB7XHJcbiAgICBmb3IgKGNvbnN0IHF1ZXN0aW9uIGluIHZhbHVlKSB7XHJcbiAgICAgIGlmICh2YWx1ZS5oYXNPd25Qcm9wZXJ0eShxdWVzdGlvbikpIHtcclxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5nZXRGb3JtQ29udHJvbChxdWVzdGlvbik7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcclxuICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWVbcXVlc3Rpb25dIHx8IGZhbHNlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVuaXF1ZU5hbWUocXVlc3Rpb24pIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmluc3RhbmNlLmlkfS0ke3F1ZXN0aW9ufWA7XHJcbiAgfVxyXG59XHJcblN1cnZleUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsU3VydmV5Q29tcG9uZW50O1xyXG5leHBvcnQgeyBTdXJ2ZXlDb21wb25lbnQgfTtcclxuIl19
@@ -24,8 +24,8 @@ export class MaterialTableComponent extends MaterialNestedComponent {
24
24
  };
25
25
  }
26
26
  }
27
- MaterialTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
- MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MaterialTableComponent, selector: "mat-formio-table", usesInheritance: true, ngImport: i0, template: `
27
+ MaterialTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
28
+ MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: MaterialTableComponent, selector: "mat-formio-table", usesInheritance: true, ngImport: i0, template: `
29
29
  <table class="mat-table" style="width: 100%;" [ngClass]="{'is-bordered' : instance.component.bordered}">
30
30
  <thead>
31
31
  <tr class="mat-header-row">
@@ -56,8 +56,8 @@ MaterialTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0",
56
56
  </tr>
57
57
  </tbody>
58
58
  </table>
59
- `, isInline: true, styles: [".mat-mdc-table.is-bordered{border:1px solid #ddd}.mat-mdc-row.is-hover:hover{background-color:#f5f5f5}.mat-mdc-cell{padding:8px}.mat-mdc-cell.is-condensed{padding:3px}.mat-mdc-row.is-striped{background-color:#eee}.mat-mdc-cell.center{text-align:center}.mat-mdc-cell.right{text-align:right}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialTableComponent, decorators: [{
59
+ `, isInline: true, styles: [".mat-table.is-bordered{border:1px solid #ddd}.mat-row.is-hover:hover{background-color:#f5f5f5}.mat-cell{padding:8px}.mat-cell.is-condensed{padding:3px}.mat-row.is-striped{background-color:#eee}.mat-cell.center{text-align:center}.mat-cell.right{text-align:right}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] });
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: MaterialTableComponent, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'mat-formio-table', template: `
63
63
  <table class="mat-table" style="width: 100%;" [ngClass]="{'is-bordered' : instance.component.bordered}">
@@ -90,8 +90,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
90
90
  </tr>
91
91
  </tbody>
92
92
  </table>
93
- `, styles: [".mat-mdc-table.is-bordered{border:1px solid #ddd}.mat-mdc-row.is-hover:hover{background-color:#f5f5f5}.mat-mdc-cell{padding:8px}.mat-mdc-cell.is-condensed{padding:3px}.mat-mdc-row.is-striped{background-color:#eee}.mat-mdc-cell.center{text-align:center}.mat-mdc-cell.right{text-align:right}\n"] }]
93
+ `, styles: [".mat-table.is-bordered{border:1px solid #ddd}.mat-row.is-hover:hover{background-color:#f5f5f5}.mat-cell{padding:8px}.mat-cell.is-condensed{padding:3px}.mat-row.is-striped{background-color:#eee}.mat-cell.center{text-align:center}.mat-cell.right{text-align:right}\n"] }]
94
94
  }] });
95
95
  TableComponent.MaterialComponent = MaterialTableComponent;
96
96
  export { TableComponent };
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxjQUFjLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFzQ2hFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFFakUsV0FBVyxDQUFDLFFBQWE7UUFDdkIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixRQUFRLENBQUMsYUFBYSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNyRyxJQUFJLENBQUM7UUFDVCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELE1BQU0sRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDM0QsT0FBTztZQUNMLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBQyxDQUFDO1NBQzlDLENBQUE7SUFDSCxDQUFDOztvSEFwQlUsc0JBQXNCO3dHQUF0QixzQkFBc0IsK0VBakN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs0RkFFVSxzQkFBc0I7a0JBcENsQyxTQUFTOytCQUNFLGtCQUFrQixZQUVsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs7QUF3QkgsY0FBYyxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcclxuaW1wb3J0IFRhYmxlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvdGFibGUvVGFibGUuanMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXRhYmxlJyxcclxuICBzdHlsZVVybHM6IFsgJy4vdGFibGUuY29tcG9uZW50LmNzcycgXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtuZ0NsYXNzXT1cInsnaXMtYm9yZGVyZWQnIDogaW5zdGFuY2UuY29tcG9uZW50LmJvcmRlcmVkfVwiPlxyXG4gICAgICAgIDx0aGVhZD5cclxuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaW5zdGFuY2UuY29tcG9uZW50LmhlYWRlclwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS50KGhlYWRlcikgfX1cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgaW5zdGFuY2UudGFibGU7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICByb2xlPVwicm93XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJtYXQtcm93XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2lzLWhvdmVyJzogaW5zdGFuY2UuY29tcG9uZW50LmhvdmVyLFxyXG4gICAgICAgICAgICAgICAgJ2lzLXN0cmlwZWQnOiBpbnN0YW5jZS5jb21wb25lbnQuc3RyaXBlZCAmJiBpICUgMiA9PT0gMFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIHJvd1wiXHJcbiAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1jZWxsXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRUYWJsZUNvbENsYXNzZXMoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHtcclxuXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgP1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lcnNbKGNvbXBvbmVudC50YWJsZVJvdyAqIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50Lm51bUNvbHMpICsgY29tcG9uZW50LnRhYmxlQ29sdW1uXSA6XHJcbiAgICAgICAgbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRUYWJsZUNvbENsYXNzZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qge2NvbmRlbnNlZCwgY2VsbEFsaWdubWVudH0gPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdpcy1jb25kZW5zZWQnOiBjb25kZW5zZWQsXHJcbiAgICAgIC4uLihjZWxsQWxpZ25tZW50ICYmIHtbY2VsbEFsaWdubWVudF06IHRydWV9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5UYWJsZUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsVGFibGVDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRhYmxlQ29tcG9uZW50IH07XHJcbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJlbmRlci1tYXRlcmlhbC1mb3Jtcy9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUvdGFibGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxjQUFjLE1BQU0sb0NBQW9DLENBQUM7Ozs7QUFzQ2hFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSx1QkFBdUI7SUFFakUsV0FBVyxDQUFDLFFBQWE7UUFDdkIsS0FBSyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM1QixRQUFRLENBQUMsYUFBYSxHQUFHLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUNyRyxJQUFJLENBQUM7UUFDVCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLE9BQU87U0FDUjtRQUNELE1BQU0sRUFBQyxTQUFTLEVBQUUsYUFBYSxFQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUM7UUFDM0QsT0FBTztZQUNMLGNBQWMsRUFBRSxTQUFTO1lBQ3pCLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBQyxDQUFDLGFBQWEsQ0FBQyxFQUFFLElBQUksRUFBQyxDQUFDO1NBQzlDLENBQUE7SUFDSCxDQUFDOzttSEFwQlUsc0JBQXNCO3VHQUF0QixzQkFBc0IsK0VBakN2Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDsyRkFFVSxzQkFBc0I7a0JBcENsQyxTQUFTOytCQUNFLGtCQUFrQixZQUVsQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCVDs7QUF3QkgsY0FBYyxDQUFDLGlCQUFpQixHQUFHLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRlcmlhbE5lc3RlZENvbXBvbmVudCB9IGZyb20gJy4uL01hdGVyaWFsTmVzdGVkQ29tcG9uZW50JztcclxuaW1wb3J0IFRhYmxlQ29tcG9uZW50IGZyb20gJ2Zvcm1pb2pzL2NvbXBvbmVudHMvdGFibGUvVGFibGUuanMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtYXQtZm9ybWlvLXRhYmxlJyxcclxuICBzdHlsZVVybHM6IFsgJy4vdGFibGUuY29tcG9uZW50LmNzcycgXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8dGFibGUgY2xhc3M9XCJtYXQtdGFibGVcIiBzdHlsZT1cIndpZHRoOiAxMDAlO1wiIFtuZ0NsYXNzXT1cInsnaXMtYm9yZGVyZWQnIDogaW5zdGFuY2UuY29tcG9uZW50LmJvcmRlcmVkfVwiPlxyXG4gICAgICAgIDx0aGVhZD5cclxuICAgICAgICA8dHIgY2xhc3M9XCJtYXQtaGVhZGVyLXJvd1wiPlxyXG4gICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgaW5zdGFuY2UuY29tcG9uZW50LmhlYWRlclwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtaGVhZGVyLWNlbGxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBpbnN0YW5jZS50KGhlYWRlcikgfX1cclxuICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgICAgICA8L3RoZWFkPlxyXG5cclxuICAgICAgICA8dGJvZHk+XHJcbiAgICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgaW5zdGFuY2UudGFibGU7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgICAgICAgICByb2xlPVwicm93XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJtYXQtcm93XCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2lzLWhvdmVyJzogaW5zdGFuY2UuY29tcG9uZW50LmhvdmVyLFxyXG4gICAgICAgICAgICAgICAgJ2lzLXN0cmlwZWQnOiBpbnN0YW5jZS5jb21wb25lbnQuc3RyaXBlZCAmJiBpICUgMiA9PT0gMFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIHJvd1wiXHJcbiAgICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1jZWxsXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJnZXRUYWJsZUNvbENsYXNzZXMoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50cz48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L3RyPlxyXG4gICAgICAgIDwvdGJvZHk+XHJcbiAgICAgIDwvdGFibGU+XHJcbiAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWF0ZXJpYWxUYWJsZUNvbXBvbmVudCBleHRlbmRzIE1hdGVyaWFsTmVzdGVkQ29tcG9uZW50IHtcclxuXHJcbiAgc2V0SW5zdGFuY2UoaW5zdGFuY2U6IGFueSkge1xyXG4gICAgc3VwZXIuc2V0SW5zdGFuY2UoaW5zdGFuY2UpO1xyXG4gICAgaW5zdGFuY2Uudmlld0NvbnRhaW5lciA9IChjb21wb25lbnQpID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMudmlld0NvbnRhaW5lcnMgP1xyXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lcnNbKGNvbXBvbmVudC50YWJsZVJvdyAqIHRoaXMuaW5zdGFuY2UuY29tcG9uZW50Lm51bUNvbHMpICsgY29tcG9uZW50LnRhYmxlQ29sdW1uXSA6XHJcbiAgICAgICAgbnVsbDtcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXRUYWJsZUNvbENsYXNzZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3Qge2NvbmRlbnNlZCwgY2VsbEFsaWdubWVudH0gPSB0aGlzLmluc3RhbmNlLmNvbXBvbmVudDtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdpcy1jb25kZW5zZWQnOiBjb25kZW5zZWQsXHJcbiAgICAgIC4uLihjZWxsQWxpZ25tZW50ICYmIHtbY2VsbEFsaWdubWVudF06IHRydWV9KVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5UYWJsZUNvbXBvbmVudC5NYXRlcmlhbENvbXBvbmVudCA9IE1hdGVyaWFsVGFibGVDb21wb25lbnQ7XHJcbmV4cG9ydCB7IFRhYmxlQ29tcG9uZW50IH07XHJcbiJdfQ==