barsa-develop-components 2.0.135 → 2.1.1

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 (66) hide show
  1. package/esm2022/lib/accept-reject/accept-reject.component.mjs +4 -4
  2. package/esm2022/lib/avatar/avatar.component.mjs +4 -4
  3. package/esm2022/lib/barcode-format-pipe.mjs +4 -4
  4. package/esm2022/lib/barcode-reader/barcode-reader.component.mjs +4 -4
  5. package/esm2022/lib/barcode-reader-dialog/barcode-reader-dialog.component.mjs +4 -4
  6. package/esm2022/lib/barcode-reader-video/barcode-reader-video.component.mjs +4 -4
  7. package/esm2022/lib/barcode.service.mjs +7 -7
  8. package/esm2022/lib/barsa-develop-components.module.mjs +5 -5
  9. package/esm2022/lib/barsa-document-list-item/barsa-document-list-item.component.mjs +4 -4
  10. package/esm2022/lib/barsa-documents/barsa-documents.component.mjs +4 -4
  11. package/esm2022/lib/barsa-geographic-location/barsa-geographic-location.component.mjs +4 -4
  12. package/esm2022/lib/card-content-image-and-title/card-content-image-and-title.component.mjs +4 -4
  13. package/esm2022/lib/card-content-line-chart/card-content-line-chart.component.mjs +4 -4
  14. package/esm2022/lib/card-header-big-image-title-and-subtitle/card-header-big-image-title-and-subtitle.component.mjs +4 -4
  15. package/esm2022/lib/card-header-kpi/card-header-kpi.component.mjs +4 -4
  16. package/esm2022/lib/card-header-logo-title-subtitle/card-header-logo-title-subtitle.component.mjs +4 -4
  17. package/esm2022/lib/checkbox-button/checkbox-button.component.mjs +4 -4
  18. package/esm2022/lib/column-chip/column-chip.component.mjs +4 -4
  19. package/esm2022/lib/column-form-viewer/column-form-viewer.component.mjs +4 -4
  20. package/esm2022/lib/column-progressbar/column-progressbar.component.mjs +4 -4
  21. package/esm2022/lib/enum-info-micro-proccess-flow/enum-info-micro-proccess-flow.component.mjs +4 -4
  22. package/esm2022/lib/footer/footer.component.mjs +4 -4
  23. package/esm2022/lib/form-card/form-card.component.mjs +4 -4
  24. package/esm2022/lib/form-chart-content/form-chart-content.component.mjs +4 -4
  25. package/esm2022/lib/form-content-quick-view/form-content-quick-view.component.mjs +4 -4
  26. package/esm2022/lib/form-report-view/form-report-view.component.mjs +4 -4
  27. package/esm2022/lib/form-report-view-item/form-report-view-item.component.mjs +4 -4
  28. package/esm2022/lib/g4b-details/g4b-details.component.mjs +4 -4
  29. package/esm2022/lib/g4b-estelam/g4b-estelam.component.mjs +4 -4
  30. package/esm2022/lib/geographic-location/geographic-location.component.mjs +4 -4
  31. package/esm2022/lib/login-form/login-form.component.mjs +4 -4
  32. package/esm2022/lib/login-social-conncetions/login-social-conncetions.component.mjs +4 -4
  33. package/esm2022/lib/master-detail-card-form/master-detail-card-form.component.mjs +4 -4
  34. package/esm2022/lib/media-file-uploader/media-file-uploader.component.mjs +4 -4
  35. package/esm2022/lib/micro-proccess-flow/micro-proccess-flow.component.mjs +4 -4
  36. package/esm2022/lib/micro-process-flow-view/micro-process-flow-view.component.mjs +4 -4
  37. package/esm2022/lib/mo-info-micro-proccess-flow/mo-info-micro-proccess-flow.component.mjs +4 -4
  38. package/esm2022/lib/pipes/datasource-to-flow-item.mjs +4 -4
  39. package/esm2022/lib/pipes/mo-list-to-flow-item.pipe.mjs +4 -4
  40. package/esm2022/lib/query-string-form-observable/query-string-form-observable.component.mjs +4 -4
  41. package/esm2022/lib/query-string-observable/query-string-observable.component.mjs +4 -4
  42. package/esm2022/lib/report-button-view/report-button-view.component.mjs +4 -4
  43. package/esm2022/lib/report-line-chart-view/report-line-chart-view.component.mjs +4 -4
  44. package/esm2022/lib/report-tab-view/report-tab-view.component.mjs +4 -4
  45. package/esm2022/lib/resend-verification-code/resend-verification-code.component.mjs +4 -4
  46. package/esm2022/lib/service-desk-card-content-mojavezhay-akhz-shode/service-desk-card-content-mojavezhay-akhz-shode.component.mjs +4 -4
  47. package/esm2022/lib/service-desk-form-layout-content-mojavez/service-desk-form-layout-content-mojavez.component.mjs +4 -4
  48. package/esm2022/lib/service-desk-header/service-desk-header.component.mjs +4 -4
  49. package/esm2022/lib/service-desk-servcie-detail/service-desk-servcie-detail.component.mjs +4 -4
  50. package/esm2022/lib/service-desk-view-of-services/service-desk-view-of-services.component.mjs +4 -4
  51. package/esm2022/lib/setting-form/setting-form.component.mjs +4 -4
  52. package/esm2022/lib/subform-in-row-report/subform-in-row-report.component.mjs +4 -4
  53. package/esm2022/lib/tab-process-view/tab-process-view.component.mjs +4 -4
  54. package/esm2022/lib/table-view-vertical-columns/table-view-vertical-columns.component.mjs +4 -4
  55. package/esm2022/lib/timer-count-down/timer-count-down.component.mjs +4 -4
  56. package/esm2022/lib/token-report-view/token-report-view.component.mjs +4 -4
  57. package/esm2022/lib/ui-enum-segmented-button/ui-enum-segmented-button.component.mjs +4 -4
  58. package/esm2022/lib/ui-num-rate/ui-num-rate.component.mjs +4 -4
  59. package/esm2022/lib/ui-person/ui-person.component.mjs +4 -4
  60. package/esm2022/lib/ui-person/ui-person.pipe.mjs +4 -4
  61. package/esm2022/lib/ui-pictures-carousel/ui-pictures-carousel.component.mjs +4 -4
  62. package/esm2022/lib/ui-text-field-search/ui-text-field-search.component.mjs +4 -4
  63. package/esm2022/lib/ulv-context-menu-item-show-file-content/ulv-context-menu-item-show-file-content.component.mjs +4 -4
  64. package/fesm2022/barsa-develop-components.mjs +193 -193
  65. package/fesm2022/barsa-develop-components.mjs.map +1 -1
  66. package/package.json +3 -3
@@ -137,8 +137,8 @@ export class BarsaDevelopComponentsModule extends BaseModule {
137
137
  this.cfr = cfr;
138
138
  this.dynamicComponents = [...components];
139
139
  }
140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaDevelopComponentsModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule }); }
141
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.5", ngImport: i0, type: BarsaDevelopComponentsModule, declarations: [LoginFormComponent,
140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, deps: [{ token: i1.DynamicComponentService }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.NgModule }); }
141
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, declarations: [LoginFormComponent,
142
142
  LoginSocialConncetionsComponent,
143
143
  UiPersonComponent,
144
144
  BarcodeReaderComponent,
@@ -259,7 +259,7 @@ export class BarsaDevelopComponentsModule extends BaseModule {
259
259
  FormCardComponent,
260
260
  ColumnProgressbarComponent,
261
261
  ColumnChipComponent] }); }
262
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaDevelopComponentsModule, providers: [UserMediaBaseService, WebBarcodeService], imports: [CommonModule,
262
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, providers: [UserMediaBaseService, WebBarcodeService], imports: [CommonModule,
263
263
  BarsaNovinRayCoreModule,
264
264
  ReactiveFormsModule,
265
265
  BarsaSapUiModule,
@@ -269,7 +269,7 @@ export class BarsaDevelopComponentsModule extends BaseModule {
269
269
  PlatformInputGroupModule,
270
270
  FormsModule] }); }
271
271
  }
272
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaDevelopComponentsModule, decorators: [{
272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDevelopComponentsModule, decorators: [{
273
273
  type: NgModule,
274
274
  args: [{
275
275
  declarations: [...components, ...pipes],
@@ -289,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
289
289
  exports: [...components]
290
290
  }]
291
291
  }], ctorParameters: () => [{ type: i1.DynamicComponentService }, { type: i0.ComponentFactoryResolver }] });
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixzQkFBc0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQs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eEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsV0FBVztxQkFDZDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDcEQsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsIEJhc2VNb2R1bGUsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQmFyc2FTYXBVaU1vZHVsZSB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XG5pbXBvcnQgeyBCYXJzYVRpbGVzTW9kdWxlIH0gZnJvbSAnYmFyc2EtdGlsZXMnO1xuaW1wb3J0IHsgQmFyc2FFY2hhcnRzTW9kdWxlIH0gZnJvbSAnYmFyc2EtZWNoYXJ0cyc7XG5cbmltcG9ydCB7IExvZ2luRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dpblNvY2lhbENvbm5jZXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi1zb2NpYWwtY29ubmNldGlvbnMvbG9naW4tc29jaWFsLWNvbm5jZXRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVBlcnNvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktcGVyc29uL3VpLXBlcnNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlQZXJzb25QaXBlIH0gZnJvbSAnLi91aS1wZXJzb24vdWktcGVyc29uLnBpcGUnO1xuaW1wb3J0IHsgQmFyY29kZVJlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYmFyY29kZS1yZWFkZXIvYmFyY29kZS1yZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy9iYXJjb2RlLXJlYWRlci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJWaWRlb0NvbXBvbmVudCB9IGZyb20gJy4vYmFyY29kZS1yZWFkZXItdmlkZW8vYmFyY29kZS1yZWFkZXItdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJNZWRpYUJhc2VTZXJ2aWNlLCBXZWJCYXJjb2RlU2VydmljZSB9IGZyb20gJy4vYmFyY29kZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNldHRpbmdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWZvcm0vc2V0dGluZy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaWNyb1Byb2Nlc3NGbG93Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vbWljcm8tcHJvY2Vzcy1mbG93LXZpZXcvbWljcm8tcHJvY2Vzcy1mbG93LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFVpRW51bVNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktZW51bS1zZWdtZW50ZWQtYnV0dG9uL3VpLWVudW0tc2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiUHJvY2Vzc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wcm9jZXNzLXZpZXcvdGFiLXByb2Nlc3Mtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlUZXh0RmllbGRTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3VpLXRleHQtZmllbGQtc2VhcmNoL3VpLXRleHQtZmllbGQtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJjb2RlRm9ybWF0UGlwZSB9IGZyb20gJy4vYmFyY29kZS1mb3JtYXQtcGlwZSc7XG5pbXBvcnQgeyBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtY29udGVudC1pbWFnZS1hbmQtdGl0bGUvY2FyZC1jb250ZW50LWltYWdlLWFuZC10aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEhlYWRlckxvZ29UaXRsZVN1YnRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWhlYWRlci1sb2dvLXRpdGxlLXN1YnRpdGxlL2NhcmQtaGVhZGVyLWxvZ28tdGl0bGUtc3VidGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250ZW50UXVpY2tWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZURlc2tTZXJ2Y2llRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stc2VydmNpZS1kZXRhaWwvc2VydmljZS1kZXNrLXNlcnZjaWUtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlRGVza1ZpZXdPZlNlcnZpY2VzQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stdmlldy1vZi1zZXJ2aWNlcy9zZXJ2aWNlLWRlc2stdmlldy1vZi1zZXJ2aWNlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZURlc2tDYXJkQ29udGVudE1vamF2ZXpoYXlBa2h6U2hvZGVDb21wb25lbnQgfSBmcm9tICcuL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkSGVhZGVyQmlnSW1hZ2VUaXRsZUFuZFN1YnRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWhlYWRlci1iaWctaW1hZ2UtdGl0bGUtYW5kLXN1YnRpdGxlL2NhcmQtaGVhZGVyLWJpZy1pbWFnZS10aXRsZS1hbmQtc3VidGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VEZXNrRm9ybUxheW91dENvbnRlbnRNb2phdmV6Q29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6L3NlcnZpY2UtZGVzay1mb3JtLWxheW91dC1jb250ZW50LW1vamF2ZXouY29tcG9uZW50JztcbmltcG9ydCB7IFVsdkNvbnRleHRNZW51SXRlbVNob3dGaWxlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWx2LWNvbnRleHQtbWVudS1pdGVtLXNob3ctZmlsZS1jb250ZW50L3Vsdi1jb250ZXh0LW1lbnUtaXRlbS1zaG93LWZpbGUtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzZW5kVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCB9IGZyb20gJy4vcmVzZW5kLXZlcmlmaWNhdGlvbi1jb2RlL3Jlc2VuZC12ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tib3hCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LWJ1dHRvbi9jaGVja2JveC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFRhYlZpZXdDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC10YWItdmlldy9yZXBvcnQtdGFiLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydExpbmVDaGFydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1saW5lLWNoYXJ0LXZpZXcvcmVwb3J0LWxpbmUtY2hhcnQtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEhlYWRlcktwaUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1oZWFkZXIta3BpL2NhcmQtaGVhZGVyLWtwaS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbnRlbnRMaW5lQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtY29udGVudC1saW5lLWNoYXJ0L2NhcmQtY29udGVudC1saW5lLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ2hhcnRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNoYXJ0LWNvbnRlbnQvZm9ybS1jaGFydC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVZpZXdWZXJ0aWNhbENvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXZpZXctdmVydGljYWwtY29sdW1ucy90YWJsZS12aWV3LXZlcnRpY2FsLWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXJ5U3RyaW5nT2JzZXJ2YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktc3RyaW5nLW9ic2VydmFibGUvcXVlcnktc3RyaW5nLW9ic2VydmFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXJ5U3RyaW5nRm9ybU9ic2VydmFibGVDb21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LXN0cmluZy1mb3JtLW9ic2VydmFibGUvcXVlcnktc3RyaW5nLWZvcm0tb2JzZXJ2YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRzRiRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vZzRiLWRldGFpbHMvZzRiLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRzRiRXN0ZWxhbUNvbXBvbmVudCB9IGZyb20gJy4vZzRiLWVzdGVsYW0vZzRiLWVzdGVsYW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVyQ291bnREb3duQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lci1jb3VudC1kb3duL3RpbWVyLWNvdW50LWRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IE1vSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9tby1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cvbW8taW5mby1taWNyby1wcm9jY2Vzcy1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCB9IGZyb20gJy4vbWljcm8tcHJvY2Nlc3MtZmxvdy9taWNyby1wcm9jY2Vzcy1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnVtSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9lbnVtLWluZm8tbWljcm8tcHJvY2Nlc3MtZmxvdy9lbnVtLWluZm8tbWljcm8tcHJvY2Nlc3MtZmxvdy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlVG9GbG93SXRlbVBpcGUsIE1vTGlzdFRvRmxvd0l0ZW1QaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQgeyBVaVBpY3R1cmVzQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL3VpLXBpY3R1cmVzLWNhcm91c2VsL3VpLXBpY3R1cmVzLWNhcm91c2VsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaU51bVJhdGVDb21wb25lbnQgfSBmcm9tICcuL3VpLW51bS1yYXRlL3VpLW51bS1yYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbWVkaWEtZmlsZS11cGxvYWRlci9tZWRpYS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJmb3JtSW5Sb3dSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL3N1YmZvcm0taW4tcm93LXJlcG9ydC9zdWJmb3JtLWluLXJvdy1yZXBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0QnV0dG9uVmlld0NvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWJ1dHRvbi12aWV3L3JlcG9ydC1idXR0b24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FEb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWRvY3VtZW50cy9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhRG9jdW1lbnRMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjZXB0UmVqZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9hY2NlcHQtcmVqZWN0L2FjY2VwdC1yZWplY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9ncmFwaGljLWxvY2F0aW9uL2dlb2dyYXBoaWMtbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1nZW9ncmFwaGljLWxvY2F0aW9uL2JhcnNhLWdlb2dyYXBoaWMtbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRva2VuUmVwb3J0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vdG9rZW4tcmVwb3J0LXZpZXcvdG9rZW4tcmVwb3J0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkZvcm1WaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1mb3JtLXZpZXdlci9jb2x1bW4tZm9ybS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBsYXRmb3JtSW5wdXRHcm91cE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRm9ybVJlcG9ydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tcmVwb3J0LXZpZXcvZm9ybS1yZXBvcnQtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVJlcG9ydFZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXJlcG9ydC12aWV3LWl0ZW0vZm9ybS1yZXBvcnQtdmlldy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1jYXJkL2Zvcm0tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uUHJvZ3Jlc3NiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1wcm9ncmVzc2Jhci9jb2x1bW4tcHJvZ3Jlc3NiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNoaXBDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICBMb2dpbkZvcm1Db21wb25lbnQsXG4gICAgTG9naW5Tb2NpYWxDb25uY2V0aW9uc0NvbXBvbmVudCxcbiAgICBVaVBlcnNvbkNvbXBvbmVudCxcbiAgICBCYXJjb2RlUmVhZGVyQ29tcG9uZW50LFxuICAgIEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQsXG4gICAgQmFyY29kZVJlYWRlclZpZGVvQ29tcG9uZW50LFxuICAgIFNldHRpbmdGb3JtQ29tcG9uZW50LFxuICAgIE1pY3JvUHJvY2Vzc0Zsb3dWaWV3Q29tcG9uZW50LFxuICAgIFVpRW51bVNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUYWJQcm9jZXNzVmlld0NvbXBvbmVudCxcbiAgICBVaVRleHRGaWVsZFNlYXJjaENvbXBvbmVudCxcbiAgICBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCxcbiAgICBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnQsXG4gICAgQ2FyZEhlYWRlckxvZ29UaXRsZVN1YnRpdGxlQ29tcG9uZW50LFxuICAgIEZvcm1Db250ZW50UXVpY2tWaWV3Q29tcG9uZW50LFxuICAgIFNlcnZpY2VEZXNrU2VydmNpZURldGFpbENvbXBvbmVudCxcbiAgICBTZXJ2aWNlRGVza1ZpZXdPZlNlcnZpY2VzQ29tcG9uZW50LFxuICAgIFNlcnZpY2VEZXNrQ2FyZENvbnRlbnRNb2phdmV6aGF5QWtoelNob2RlQ29tcG9uZW50LFxuICAgIENhcmRIZWFkZXJCaWdJbWFnZVRpdGxlQW5kU3VidGl0bGVDb21wb25lbnQsXG4gICAgU2VydmljZURlc2tGb3JtTGF5b3V0Q29udGVudE1vamF2ZXpDb21wb25lbnQsXG4gICAgVWx2Q29udGV4dE1lbnVJdGVtU2hvd0ZpbGVDb250ZW50Q29tcG9uZW50LFxuICAgIFJlc2VuZFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXG4gICAgQ2hlY2tib3hCdXR0b25Db21wb25lbnQsXG4gICAgUmVwb3J0VGFiVmlld0NvbXBvbmVudCxcbiAgICBSZXBvcnRMaW5lQ2hhcnRWaWV3Q29tcG9uZW50LFxuICAgIENhcmRIZWFkZXJLcGlDb21wb25lbnQsXG4gICAgQ2FyZENvbnRlbnRMaW5lQ2hhcnRDb21wb25lbnQsXG4gICAgRm9ybUNoYXJ0Q29udGVudENvbXBvbmVudCxcbiAgICBUYWJsZVZpZXdWZXJ0aWNhbENvbHVtbnNDb21wb25lbnQsXG4gICAgUXVlcnlTdHJpbmdPYnNlcnZhYmxlQ29tcG9uZW50LFxuICAgIFF1ZXJ5U3RyaW5nRm9ybU9ic2VydmFibGVDb21wb25lbnQsXG4gICAgRzRiRGV0YWlsc0NvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgRzRiRXN0ZWxhbUNvbXBvbmVudCxcbiAgICBUaW1lckNvdW50RG93bkNvbXBvbmVudCxcbiAgICBNb0luZm9NaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCxcbiAgICBNaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCxcbiAgICBFbnVtSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50LFxuICAgIFVpUGljdHVyZXNDYXJvdXNlbENvbXBvbmVudCxcbiAgICBVaU51bVJhdGVDb21wb25lbnQsXG4gICAgTWVkaWFGaWxlVXBsb2FkZXJDb21wb25lbnQsXG4gICAgU3ViZm9ybUluUm93UmVwb3J0Q29tcG9uZW50LFxuICAgIE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50LFxuICAgIFJlcG9ydEJ1dHRvblZpZXdDb21wb25lbnQsXG4gICAgQmFyc2FEb2N1bWVudHNDb21wb25lbnQsXG4gICAgQmFyc2FEb2N1bWVudExpc3RJdGVtQ29tcG9uZW50LFxuICAgIEFjY2VwdFJlamVjdENvbXBvbmVudCxcbiAgICBGb290ZXJDb21wb25lbnQsXG4gICAgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50LFxuICAgIEJhcnNhR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50LFxuICAgIFRva2VuUmVwb3J0Vmlld0NvbXBvbmVudCxcbiAgICBDb2x1bW5Gb3JtVmlld2VyQ29tcG9uZW50LFxuICAgIEZvcm1SZXBvcnRWaWV3Q29tcG9uZW50LFxuICAgIEZvcm1SZXBvcnRWaWV3SXRlbUNvbXBvbmVudCxcbiAgICBGb3JtQ2FyZENvbXBvbmVudCxcbiAgICBDb2x1bW5Qcm9ncmVzc2JhckNvbXBvbmVudCxcbiAgICBDb2x1bW5DaGlwQ29tcG9uZW50XG5dO1xuY29uc3QgcGlwZXMgPSBbVWlQZXJzb25QaXBlLCBCYXJjb2RlRm9ybWF0UGlwZSwgTW9MaXN0VG9GbG93SXRlbVBpcGUsIERhdGFTb3VyY2VUb0Zsb3dJdGVtUGlwZV07XG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBCYXJzYVNhcFVpTW9kdWxlLFxuICAgICAgICBCYXJzYUVjaGFydHNNb2R1bGUsXG4gICAgICAgIEJhcnNhVGlsZXNNb2R1bGUsXG4gICAgICAgIEZ1bmRhbWVudGFsTmd4Q29yZU1vZHVsZSxcbiAgICAgICAgUGxhdGZvcm1JbnB1dEdyb3VwTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbVXNlck1lZGlhQmFzZVNlcnZpY2UsIFdlYkJhcmNvZGVTZXJ2aWNlXSxcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50c11cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FEZXZlbG9wQ29tcG9uZW50c01vZHVsZSBleHRlbmRzIEJhc2VNb2R1bGUge1xuICAgIHByb3RlY3RlZCBkeW5hbWljQ29tcG9uZW50cyA9IFsuLi5jb21wb25lbnRzXTtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XG4gICAgICAgIHN1cGVyKGRjbSwgY2ZyLCAnQmFyc2FEZXZlbG9wQ29tcG9uZW50c01vZHVsZScpO1xuICAgIH1cbn1cbiJdfQ==
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QixzQkFBc0IsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVqRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsVUFBVSxFQUEyQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQ2hILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN2RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUMvRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMxSCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2RUFBNkUsQ0FBQztBQUNuSSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM1RyxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUM3SCxPQUFPLEVBQUUsa0RBQWtELEVBQUUsTUFBTSw2R0FBNkcsQ0FBQztBQUNqTCxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSwrRkFBK0YsQ0FBQztBQUM1SixPQUFPLEVBQUUsNENBQTRDLEVBQUUsTUFBTSwrRkFBK0YsQ0FBQztBQUM3SixPQUFPLEVBQUUsMENBQTBDLEVBQUUsTUFBTSw2RkFBNkYsQ0FBQztBQUN6SixPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNoSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM1RyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM3RyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSx1RUFBdUUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDdkgsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDakcsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0seUVBQXlFLENBQUM7QUFFN0gsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQzVHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLCtEQUErRCxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpRUFBaUUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUVwRCxNQUFNLFVBQVUsR0FBRztJQUNmLGtCQUFrQjtJQUNsQiwrQkFBK0I7SUFDL0IsaUJBQWlCO0lBQ2pCLHNCQUFzQjtJQUN0Qiw0QkFBNEI7SUFDNUIsMkJBQTJCO0lBQzNCLG9CQUFvQjtJQUNwQiw2QkFBNkI7SUFDN0IsOEJBQThCO0lBQzlCLHVCQUF1QjtJQUN2QiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLGlDQUFpQztJQUNqQyxvQ0FBb0M7SUFDcEMsNkJBQTZCO0lBQzdCLGlDQUFpQztJQUNqQyxrQ0FBa0M7SUFDbEMsa0RBQWtEO0lBQ2xELDJDQUEyQztJQUMzQyw0Q0FBNEM7SUFDNUMsMENBQTBDO0lBQzFDLCtCQUErQjtJQUMvQix1QkFBdUI7SUFDdkIsc0JBQXNCO0lBQ3RCLDRCQUE0QjtJQUM1QixzQkFBc0I7SUFDdEIsNkJBQTZCO0lBQzdCLHlCQUF5QjtJQUN6QixpQ0FBaUM7SUFDakMsOEJBQThCO0lBQzlCLGtDQUFrQztJQUNsQyxtQkFBbUI7SUFDbkIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsZ0NBQWdDO0lBQ2hDLDBCQUEwQjtJQUMxQixrQ0FBa0M7SUFDbEMsMkJBQTJCO0lBQzNCLGtCQUFrQjtJQUNsQiwwQkFBMEI7SUFDMUIsMkJBQTJCO0lBQzNCLDZCQUE2QjtJQUM3Qix5QkFBeUI7SUFDekIsdUJBQXVCO0lBQ3ZCLDhCQUE4QjtJQUM5QixxQkFBcUI7SUFDckIsZUFBZTtJQUNmLDJCQUEyQjtJQUMzQixnQ0FBZ0M7SUFDaEMsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsMkJBQTJCO0lBQzNCLGlCQUFpQjtJQUNqQiwwQkFBMEI7SUFDMUIsbUJBQW1CO0NBQ3RCLENBQUM7QUFDRixNQUFNLEtBQUssR0FBRyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0FBa0JoRyxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsVUFBVTtJQUV4RCxZQUFzQixHQUE0QixFQUFZLEdBQTZCO1FBQ3ZGLEtBQUssQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLDhCQUE4QixDQUFDLENBQUM7UUFEOUIsUUFBRyxHQUFILEdBQUcsQ0FBeUI7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQURqRixzQkFBaUIsR0FBRyxDQUFDLEdBQUcsVUFBVSxDQUFDLENBQUM7SUFHOUMsQ0FBQzsrR0FKUSw0QkFBNEI7Z0hBQTVCLDRCQUE0QixpQkE1RXJDLGtCQUFrQjtZQUNsQiwrQkFBK0I7WUFDL0IsaUJBQWlCO1lBQ2pCLHNCQUFzQjtZQUN0Qiw0QkFBNEI7WUFDNUIsMkJBQTJCO1lBQzNCLG9CQUFvQjtZQUNwQiw2QkFBNkI7WUFDN0IsOEJBQThCO1lBQzlCLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsMEJBQTBCO1lBQzFCLGlDQUFpQztZQUNqQyxvQ0FBb0M7WUFDcEMsNkJBQTZCO1lBQzdCLGlDQUFpQztZQUNqQyxrQ0FBa0M7WUFDbEMsa0RBQWtEO1lBQ2xELDJDQUEyQztZQUMzQyw0Q0FBNEM7WUFDNUMsMENBQTBDO1lBQzFDLCtCQUErQjtZQUMvQix1QkFBdUI7WUFDdkIsc0JBQXNCO1lBQ3RCLDRCQUE0QjtZQUM1QixzQkFBc0I7WUFDdEIsNkJBQTZCO1lBQzdCLHlCQUF5QjtZQUN6QixpQ0FBaUM7WUFDakMsOEJBQThCO1lBQzlCLGtDQUFrQztZQUNsQyxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQix1QkFBdUI7WUFDdkIsZ0NBQWdDO1lBQ2hDLDBCQUEwQjtZQUMxQixrQ0FBa0M7WUFDbEMsMkJBQTJCO1lBQzNCLGtCQUFrQjtZQUNsQiwwQkFBMEI7WUFDMUIsMkJBQTJCO1lBQzNCLDZCQUE2QjtZQUM3Qix5QkFBeUI7WUFDekIsdUJBQXVCO1lBQ3ZCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsZUFBZTtZQUNmLDJCQUEyQjtZQUMzQixnQ0FBZ0M7WUFDaEMsd0JBQXdCO1lBQ3hCLHlCQUF5QjtZQUN6Qix1QkFBdUI7WUFDdkIsMkJBQTJCO1lBQzNCLGlCQUFpQjtZQUNqQiwwQkFBMEI7WUFDMUIsbUJBQW1CLEVBRVIsWUFBWSxFQUFFLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLHdCQUF3QixhQUt0RixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLG1CQUFtQjtZQUNuQixnQkFBZ0I7WUFDaEIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQix3QkFBd0I7WUFDeEIsd0JBQXdCO1lBQ3hCLFdBQVcsYUF2RWYsa0JBQWtCO1lBQ2xCLCtCQUErQjtZQUMvQixpQkFBaUI7WUFDakIsc0JBQXNCO1lBQ3RCLDRCQUE0QjtZQUM1QiwyQkFBMkI7WUFDM0Isb0JBQW9CO1lBQ3BCLDZCQUE2QjtZQUM3Qiw4QkFBOEI7WUFDOUIsdUJBQXVCO1lBQ3ZCLDBCQUEwQjtZQUMxQiwwQkFBMEI7WUFDMUIsaUNBQWlDO1lBQ2pDLG9DQUFvQztZQUNwQyw2QkFBNkI7WUFDN0IsaUNBQWlDO1lBQ2pDLGtDQUFrQztZQUNsQyxrREFBa0Q7WUFDbEQsMkNBQTJDO1lBQzNDLDRDQUE0QztZQUM1QywwQ0FBMEM7WUFDMUMsK0JBQStCO1lBQy9CLHVCQUF1QjtZQUN2QixzQkFBc0I7WUFDdEIsNEJBQTRCO1lBQzVCLHNCQUFzQjtZQUN0Qiw2QkFBNkI7WUFDN0IseUJBQXlCO1lBQ3pCLGlDQUFpQztZQUNqQyw4QkFBOEI7WUFDOUIsa0NBQWtDO1lBQ2xDLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLHVCQUF1QjtZQUN2QixnQ0FBZ0M7WUFDaEMsMEJBQTBCO1lBQzFCLGtDQUFrQztZQUNsQywyQkFBMkI7WUFDM0Isa0JBQWtCO1lBQ2xCLDBCQUEwQjtZQUMxQiwyQkFBMkI7WUFDM0IsNkJBQTZCO1lBQzdCLHlCQUF5QjtZQUN6Qix1QkFBdUI7WUFDdkIsOEJBQThCO1lBQzlCLHFCQUFxQjtZQUNyQixlQUFlO1lBQ2YsMkJBQTJCO1lBQzNCLGdDQUFnQztZQUNoQyx3QkFBd0I7WUFDeEIseUJBQXlCO1lBQ3pCLHVCQUF1QjtZQUN2QiwyQkFBMkI7WUFDM0IsaUJBQWlCO1lBQ2pCLDBCQUEwQjtZQUMxQixtQkFBbUI7Z0hBb0JWLDRCQUE0QixhQUgxQixDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDLFlBVmhELFlBQVk7WUFDWix1QkFBdUI7WUFDdkIsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsV0FBVzs7NEZBS04sNEJBQTRCO2tCQWpCeEMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQztvQkFDdkMsT0FBTyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ25ELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQix3QkFBd0I7d0JBQ3hCLHdCQUF3Qjt3QkFDeEIsV0FBVztxQkFDZDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDcEQsT0FBTyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRnVuZGFtZW50YWxOZ3hDb3JlTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcblxuaW1wb3J0IHsgQmFyc2FOb3ZpblJheUNvcmVNb2R1bGUsIEJhc2VNb2R1bGUsIER5bmFtaWNDb21wb25lbnRTZXJ2aWNlIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQmFyc2FTYXBVaU1vZHVsZSB9IGZyb20gJ2JhcnNhLXNhcC11aSc7XG5pbXBvcnQgeyBCYXJzYVRpbGVzTW9kdWxlIH0gZnJvbSAnYmFyc2EtdGlsZXMnO1xuaW1wb3J0IHsgQmFyc2FFY2hhcnRzTW9kdWxlIH0gZnJvbSAnYmFyc2EtZWNoYXJ0cyc7XG5cbmltcG9ydCB7IExvZ2luRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2dpblNvY2lhbENvbm5jZXRpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi1zb2NpYWwtY29ubmNldGlvbnMvbG9naW4tc29jaWFsLWNvbm5jZXRpb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaVBlcnNvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktcGVyc29uL3VpLXBlcnNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlQZXJzb25QaXBlIH0gZnJvbSAnLi91aS1wZXJzb24vdWktcGVyc29uLnBpcGUnO1xuaW1wb3J0IHsgQmFyY29kZVJlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYmFyY29kZS1yZWFkZXIvYmFyY29kZS1yZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2JhcmNvZGUtcmVhZGVyLWRpYWxvZy9iYXJjb2RlLXJlYWRlci1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcmNvZGVSZWFkZXJWaWRlb0NvbXBvbmVudCB9IGZyb20gJy4vYmFyY29kZS1yZWFkZXItdmlkZW8vYmFyY29kZS1yZWFkZXItdmlkZW8uY29tcG9uZW50JztcbmltcG9ydCB7IFVzZXJNZWRpYUJhc2VTZXJ2aWNlLCBXZWJCYXJjb2RlU2VydmljZSB9IGZyb20gJy4vYmFyY29kZS5zZXJ2aWNlJztcbmltcG9ydCB7IFNldHRpbmdGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zZXR0aW5nLWZvcm0vc2V0dGluZy1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaWNyb1Byb2Nlc3NGbG93Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vbWljcm8tcHJvY2Vzcy1mbG93LXZpZXcvbWljcm8tcHJvY2Vzcy1mbG93LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFVpRW51bVNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vdWktZW51bS1zZWdtZW50ZWQtYnV0dG9uL3VpLWVudW0tc2VnbWVudGVkLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFiUHJvY2Vzc1ZpZXdDb21wb25lbnQgfSBmcm9tICcuL3RhYi1wcm9jZXNzLXZpZXcvdGFiLXByb2Nlc3Mtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVWlUZXh0RmllbGRTZWFyY2hDb21wb25lbnQgfSBmcm9tICcuL3VpLXRleHQtZmllbGQtc2VhcmNoL3VpLXRleHQtZmllbGQtc2VhcmNoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYXJjb2RlRm9ybWF0UGlwZSB9IGZyb20gJy4vYmFyY29kZS1mb3JtYXQtcGlwZSc7XG5pbXBvcnQgeyBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtY29udGVudC1pbWFnZS1hbmQtdGl0bGUvY2FyZC1jb250ZW50LWltYWdlLWFuZC10aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEhlYWRlckxvZ29UaXRsZVN1YnRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWhlYWRlci1sb2dvLXRpdGxlLXN1YnRpdGxlL2NhcmQtaGVhZGVyLWxvZ28tdGl0bGUtc3VidGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEZvcm1Db250ZW50UXVpY2tWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy9mb3JtLWNvbnRlbnQtcXVpY2stdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZURlc2tTZXJ2Y2llRGV0YWlsQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stc2VydmNpZS1kZXRhaWwvc2VydmljZS1kZXNrLXNlcnZjaWUtZGV0YWlsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZXJ2aWNlRGVza1ZpZXdPZlNlcnZpY2VzQ29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stdmlldy1vZi1zZXJ2aWNlcy9zZXJ2aWNlLWRlc2stdmlldy1vZi1zZXJ2aWNlcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VydmljZURlc2tDYXJkQ29udGVudE1vamF2ZXpoYXlBa2h6U2hvZGVDb21wb25lbnQgfSBmcm9tICcuL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlL3NlcnZpY2UtZGVzay1jYXJkLWNvbnRlbnQtbW9qYXZlemhheS1ha2h6LXNob2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDYXJkSGVhZGVyQmlnSW1hZ2VUaXRsZUFuZFN1YnRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJkLWhlYWRlci1iaWctaW1hZ2UtdGl0bGUtYW5kLXN1YnRpdGxlL2NhcmQtaGVhZGVyLWJpZy1pbWFnZS10aXRsZS1hbmQtc3VidGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IFNlcnZpY2VEZXNrRm9ybUxheW91dENvbnRlbnRNb2phdmV6Q29tcG9uZW50IH0gZnJvbSAnLi9zZXJ2aWNlLWRlc2stZm9ybS1sYXlvdXQtY29udGVudC1tb2phdmV6L3NlcnZpY2UtZGVzay1mb3JtLWxheW91dC1jb250ZW50LW1vamF2ZXouY29tcG9uZW50JztcbmltcG9ydCB7IFVsdkNvbnRleHRNZW51SXRlbVNob3dGaWxlQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4vdWx2LWNvbnRleHQtbWVudS1pdGVtLXNob3ctZmlsZS1jb250ZW50L3Vsdi1jb250ZXh0LW1lbnUtaXRlbS1zaG93LWZpbGUtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVzZW5kVmVyaWZpY2F0aW9uQ29kZUNvbXBvbmVudCB9IGZyb20gJy4vcmVzZW5kLXZlcmlmaWNhdGlvbi1jb2RlL3Jlc2VuZC12ZXJpZmljYXRpb24tY29kZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2hlY2tib3hCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LWJ1dHRvbi9jaGVja2JveC1idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydFRhYlZpZXdDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC10YWItdmlldy9yZXBvcnQtdGFiLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IFJlcG9ydExpbmVDaGFydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL3JlcG9ydC1saW5lLWNoYXJ0LXZpZXcvcmVwb3J0LWxpbmUtY2hhcnQtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZEhlYWRlcktwaUNvbXBvbmVudCB9IGZyb20gJy4vY2FyZC1oZWFkZXIta3BpL2NhcmQtaGVhZGVyLWtwaS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FyZENvbnRlbnRMaW5lQ2hhcnRDb21wb25lbnQgfSBmcm9tICcuL2NhcmQtY29udGVudC1saW5lLWNoYXJ0L2NhcmQtY29udGVudC1saW5lLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ2hhcnRDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWNoYXJ0LWNvbnRlbnQvZm9ybS1jaGFydC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVZpZXdWZXJ0aWNhbENvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuL3RhYmxlLXZpZXctdmVydGljYWwtY29sdW1ucy90YWJsZS12aWV3LXZlcnRpY2FsLWNvbHVtbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXJ5U3RyaW5nT2JzZXJ2YWJsZUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktc3RyaW5nLW9ic2VydmFibGUvcXVlcnktc3RyaW5nLW9ic2VydmFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFF1ZXJ5U3RyaW5nRm9ybU9ic2VydmFibGVDb21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LXN0cmluZy1mb3JtLW9ic2VydmFibGUvcXVlcnktc3RyaW5nLWZvcm0tb2JzZXJ2YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRzRiRGV0YWlsc0NvbXBvbmVudCB9IGZyb20gJy4vZzRiLWRldGFpbHMvZzRiLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEF2YXRhckNvbXBvbmVudCB9IGZyb20gJy4vYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRzRiRXN0ZWxhbUNvbXBvbmVudCB9IGZyb20gJy4vZzRiLWVzdGVsYW0vZzRiLWVzdGVsYW0uY29tcG9uZW50JztcbmltcG9ydCB7IFRpbWVyQ291bnREb3duQ29tcG9uZW50IH0gZnJvbSAnLi90aW1lci1jb3VudC1kb3duL3RpbWVyLWNvdW50LWRvd24uY29tcG9uZW50JztcbmltcG9ydCB7IE1vSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9tby1pbmZvLW1pY3JvLXByb2NjZXNzLWZsb3cvbW8taW5mby1taWNyby1wcm9jY2Vzcy1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCB9IGZyb20gJy4vbWljcm8tcHJvY2Nlc3MtZmxvdy9taWNyby1wcm9jY2Vzcy1mbG93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbnVtSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50IH0gZnJvbSAnLi9lbnVtLWluZm8tbWljcm8tcHJvY2Nlc3MtZmxvdy9lbnVtLWluZm8tbWljcm8tcHJvY2Nlc3MtZmxvdy5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBEYXRhU291cmNlVG9GbG93SXRlbVBpcGUsIE1vTGlzdFRvRmxvd0l0ZW1QaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQgeyBVaVBpY3R1cmVzQ2Fyb3VzZWxDb21wb25lbnQgfSBmcm9tICcuL3VpLXBpY3R1cmVzLWNhcm91c2VsL3VpLXBpY3R1cmVzLWNhcm91c2VsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaU51bVJhdGVDb21wb25lbnQgfSBmcm9tICcuL3VpLW51bS1yYXRlL3VpLW51bS1yYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZWRpYUZpbGVVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbWVkaWEtZmlsZS11cGxvYWRlci9tZWRpYS1maWxlLXVwbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJmb3JtSW5Sb3dSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuL3N1YmZvcm0taW4tcm93LXJlcG9ydC9zdWJmb3JtLWluLXJvdy1yZXBvcnQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS9tYXN0ZXItZGV0YWlsLWNhcmQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVwb3J0QnV0dG9uVmlld0NvbXBvbmVudCB9IGZyb20gJy4vcmVwb3J0LWJ1dHRvbi12aWV3L3JlcG9ydC1idXR0b24tdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFyc2FEb2N1bWVudHNDb21wb25lbnQgfSBmcm9tICcuL2JhcnNhLWRvY3VtZW50cy9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhRG9jdW1lbnRMaXN0SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWNjZXB0UmVqZWN0Q29tcG9uZW50IH0gZnJvbSAnLi9hY2NlcHQtcmVqZWN0L2FjY2VwdC1yZWplY3QuY29tcG9uZW50JztcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9nZW9ncmFwaGljLWxvY2F0aW9uL2dlb2dyYXBoaWMtbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IEJhcnNhR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9iYXJzYS1nZW9ncmFwaGljLWxvY2F0aW9uL2JhcnNhLWdlb2dyYXBoaWMtbG9jYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRva2VuUmVwb3J0Vmlld0NvbXBvbmVudCB9IGZyb20gJy4vdG9rZW4tcmVwb3J0LXZpZXcvdG9rZW4tcmVwb3J0LXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkZvcm1WaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1mb3JtLXZpZXdlci9jb2x1bW4tZm9ybS12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBsYXRmb3JtSW5wdXRHcm91cE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRm9ybVJlcG9ydFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0tcmVwb3J0LXZpZXcvZm9ybS1yZXBvcnQtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybVJlcG9ydFZpZXdJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLXJlcG9ydC12aWV3LWl0ZW0vZm9ybS1yZXBvcnQtdmlldy1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb3JtQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vZm9ybS1jYXJkL2Zvcm0tY2FyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29sdW1uUHJvZ3Jlc3NiYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbHVtbi1wcm9ncmVzc2Jhci9jb2x1bW4tcHJvZ3Jlc3NiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtbkNoaXBDb21wb25lbnQgfSBmcm9tICcuLi9wdWJsaWMtYXBpJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgICBMb2dpbkZvcm1Db21wb25lbnQsXG4gICAgTG9naW5Tb2NpYWxDb25uY2V0aW9uc0NvbXBvbmVudCxcbiAgICBVaVBlcnNvbkNvbXBvbmVudCxcbiAgICBCYXJjb2RlUmVhZGVyQ29tcG9uZW50LFxuICAgIEJhcmNvZGVSZWFkZXJEaWFsb2dDb21wb25lbnQsXG4gICAgQmFyY29kZVJlYWRlclZpZGVvQ29tcG9uZW50LFxuICAgIFNldHRpbmdGb3JtQ29tcG9uZW50LFxuICAgIE1pY3JvUHJvY2Vzc0Zsb3dWaWV3Q29tcG9uZW50LFxuICAgIFVpRW51bVNlZ21lbnRlZEJ1dHRvbkNvbXBvbmVudCxcbiAgICBUYWJQcm9jZXNzVmlld0NvbXBvbmVudCxcbiAgICBVaVRleHRGaWVsZFNlYXJjaENvbXBvbmVudCxcbiAgICBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCxcbiAgICBDYXJkQ29udGVudEltYWdlQW5kVGl0bGVDb21wb25lbnQsXG4gICAgQ2FyZEhlYWRlckxvZ29UaXRsZVN1YnRpdGxlQ29tcG9uZW50LFxuICAgIEZvcm1Db250ZW50UXVpY2tWaWV3Q29tcG9uZW50LFxuICAgIFNlcnZpY2VEZXNrU2VydmNpZURldGFpbENvbXBvbmVudCxcbiAgICBTZXJ2aWNlRGVza1ZpZXdPZlNlcnZpY2VzQ29tcG9uZW50LFxuICAgIFNlcnZpY2VEZXNrQ2FyZENvbnRlbnRNb2phdmV6aGF5QWtoelNob2RlQ29tcG9uZW50LFxuICAgIENhcmRIZWFkZXJCaWdJbWFnZVRpdGxlQW5kU3VidGl0bGVDb21wb25lbnQsXG4gICAgU2VydmljZURlc2tGb3JtTGF5b3V0Q29udGVudE1vamF2ZXpDb21wb25lbnQsXG4gICAgVWx2Q29udGV4dE1lbnVJdGVtU2hvd0ZpbGVDb250ZW50Q29tcG9uZW50LFxuICAgIFJlc2VuZFZlcmlmaWNhdGlvbkNvZGVDb21wb25lbnQsXG4gICAgQ2hlY2tib3hCdXR0b25Db21wb25lbnQsXG4gICAgUmVwb3J0VGFiVmlld0NvbXBvbmVudCxcbiAgICBSZXBvcnRMaW5lQ2hhcnRWaWV3Q29tcG9uZW50LFxuICAgIENhcmRIZWFkZXJLcGlDb21wb25lbnQsXG4gICAgQ2FyZENvbnRlbnRMaW5lQ2hhcnRDb21wb25lbnQsXG4gICAgRm9ybUNoYXJ0Q29udGVudENvbXBvbmVudCxcbiAgICBUYWJsZVZpZXdWZXJ0aWNhbENvbHVtbnNDb21wb25lbnQsXG4gICAgUXVlcnlTdHJpbmdPYnNlcnZhYmxlQ29tcG9uZW50LFxuICAgIFF1ZXJ5U3RyaW5nRm9ybU9ic2VydmFibGVDb21wb25lbnQsXG4gICAgRzRiRGV0YWlsc0NvbXBvbmVudCxcbiAgICBBdmF0YXJDb21wb25lbnQsXG4gICAgRzRiRXN0ZWxhbUNvbXBvbmVudCxcbiAgICBUaW1lckNvdW50RG93bkNvbXBvbmVudCxcbiAgICBNb0luZm9NaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCxcbiAgICBNaWNyb1Byb2NjZXNzRmxvd0NvbXBvbmVudCxcbiAgICBFbnVtSW5mb01pY3JvUHJvY2Nlc3NGbG93Q29tcG9uZW50LFxuICAgIFVpUGljdHVyZXNDYXJvdXNlbENvbXBvbmVudCxcbiAgICBVaU51bVJhdGVDb21wb25lbnQsXG4gICAgTWVkaWFGaWxlVXBsb2FkZXJDb21wb25lbnQsXG4gICAgU3ViZm9ybUluUm93UmVwb3J0Q29tcG9uZW50LFxuICAgIE1hc3RlckRldGFpbENhcmRGb3JtQ29tcG9uZW50LFxuICAgIFJlcG9ydEJ1dHRvblZpZXdDb21wb25lbnQsXG4gICAgQmFyc2FEb2N1bWVudHNDb21wb25lbnQsXG4gICAgQmFyc2FEb2N1bWVudExpc3RJdGVtQ29tcG9uZW50LFxuICAgIEFjY2VwdFJlamVjdENvbXBvbmVudCxcbiAgICBGb290ZXJDb21wb25lbnQsXG4gICAgR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50LFxuICAgIEJhcnNhR2VvZ3JhcGhpY0xvY2F0aW9uQ29tcG9uZW50LFxuICAgIFRva2VuUmVwb3J0Vmlld0NvbXBvbmVudCxcbiAgICBDb2x1bW5Gb3JtVmlld2VyQ29tcG9uZW50LFxuICAgIEZvcm1SZXBvcnRWaWV3Q29tcG9uZW50LFxuICAgIEZvcm1SZXBvcnRWaWV3SXRlbUNvbXBvbmVudCxcbiAgICBGb3JtQ2FyZENvbXBvbmVudCxcbiAgICBDb2x1bW5Qcm9ncmVzc2JhckNvbXBvbmVudCxcbiAgICBDb2x1bW5DaGlwQ29tcG9uZW50XG5dO1xuY29uc3QgcGlwZXMgPSBbVWlQZXJzb25QaXBlLCBCYXJjb2RlRm9ybWF0UGlwZSwgTW9MaXN0VG9GbG93SXRlbVBpcGUsIERhdGFTb3VyY2VUb0Zsb3dJdGVtUGlwZV07XG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLnBpcGVzXSxcbiAgICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTk9fRVJST1JTX1NDSEVNQV0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJhcnNhTm92aW5SYXlDb3JlTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBCYXJzYVNhcFVpTW9kdWxlLFxuICAgICAgICBCYXJzYUVjaGFydHNNb2R1bGUsXG4gICAgICAgIEJhcnNhVGlsZXNNb2R1bGUsXG4gICAgICAgIEZ1bmRhbWVudGFsTmd4Q29yZU1vZHVsZSxcbiAgICAgICAgUGxhdGZvcm1JbnB1dEdyb3VwTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbVXNlck1lZGlhQmFzZVNlcnZpY2UsIFdlYkJhcmNvZGVTZXJ2aWNlXSxcbiAgICBleHBvcnRzOiBbLi4uY29tcG9uZW50c11cbn0pXG5leHBvcnQgY2xhc3MgQmFyc2FEZXZlbG9wQ29tcG9uZW50c01vZHVsZSBleHRlbmRzIEJhc2VNb2R1bGUge1xuICAgIHByb3RlY3RlZCBkeW5hbWljQ29tcG9uZW50cyA9IFsuLi5jb21wb25lbnRzXTtcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZGNtOiBEeW5hbWljQ29tcG9uZW50U2VydmljZSwgcHJvdGVjdGVkIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKSB7XG4gICAgICAgIHN1cGVyKGRjbSwgY2ZyLCAnQmFyc2FEZXZlbG9wQ29tcG9uZW50c01vZHVsZScpO1xuICAgIH1cbn1cbiJdfQ==
@@ -64,10 +64,10 @@ export class BarsaDocumentListItemComponent extends BaseComponent {
64
64
  _detectChanges() {
65
65
  this._cdr.detectChanges();
66
66
  }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaDocumentListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PictureFieldSourcePipe }], target: i0.ɵɵFactoryTarget.Component }); }
68
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: { documentItem: "documentItem", deviceSize: "deviceSize", files: "files", accepted: "accepted", rejectedReason: "rejectedReason", readonly: "readonly", status: "status", uploadingState: "uploadingState" }, outputs: { statusChanged: "statusChanged", rejectTextChange: "rejectTextChange", fileSelectionChange: "fileSelectionChange", removeFile: "removeFile", fullscreen: "fullscreen", download: "download", downloadAll: "downloadAll" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n <fd-avatar\r\n *ngIf=\"documentItem.Avatar\"\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n [clickable]=\"true\"\r\n ></fd-avatar\r\n ></span>\r\n\r\n <div fd-list-content>\r\n <div fd-list-title>\r\n <div style=\"display: flex; column-gap: 3px\">\r\n <strong\r\n >{{ documentItem.Title }}\r\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\r\n </span>\r\n </strong>\r\n <div\r\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n >\r\n <span\r\n fd-object-status\r\n [status]=\"accepted ? 'positive' : 'negative'\"\r\n [label]=\"accepted ? acceptedText : rejectedText\"\r\n [clickable]=\"true\"\r\n [inverted]=\"true\"\r\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n ></span>\r\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n <fd-popover-control>\r\n <span\r\n fd-object-status\r\n status=\"negative\"\r\n glyph=\"question-mark\"\r\n glyphAriaLabel=\"Negative\"\r\n title=\"Rejected document\"\r\n ></span>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ rejectedReason }}\r\n </fd-message-strip>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n <div fd-list-byline-left>\r\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n <ng-container *ngIf=\"hasFiles\">\r\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n <ng-container *ngFor=\"let file of files\">\r\n <fd-token\r\n [readOnly]=\"readonly\"\r\n *ngIf=\"!file.IsDeleted\"\r\n (onCloseClick)=\"onRemoveFile(file)\"\r\n >{{ file.FileName }}</fd-token\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <button\r\n fd-button\r\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button>\r\n <fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n ></fd-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n <bdc-accept-reject\r\n [rejectedReason]=\"rejectedReason\"\r\n [positiveText]=\"acceptedText\"\r\n [negativeText]=\"rejectedText\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"readonly\"\r\n ></bdc-accept-reject>\r\n </div>\r\n </div>\r\n </div>\r\n </li> -->\r\n\r\n<tr fd-table-row>\r\n <td fd-table-cell>\r\n @if (documentItem.Avatar && !files.length) {\r\n <fd-avatar\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n [clickable]=\"true\"\r\n [transparent]=\"true\"\r\n ></fd-avatar>\r\n } @else { @if (files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n } @if (!files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n } }\r\n </td>\r\n <td fd-table-cell style=\"min-width: 140px\">\r\n <p fd-table-text>\r\n <strong\r\n >{{ documentItem.Title }}\r\n @if (documentItem.IsRequired) {\r\n <span fd-object-status status=\"negative\">*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }}) </span>\r\n }\r\n </strong>\r\n </p>\r\n <div>\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n </div>\r\n </td>\r\n\r\n <td fd-table-cell>\r\n <ng-container>\r\n <!-- <ul fd-list>\r\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n <span fd-list-secondary>\r\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n </span>\r\n </li>\r\n </ul> -->\r\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n @for (file of files; track file) {\r\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n (remove)=\"removeFile.emit(file)\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n <!-- <button\r\n fd-button\r\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n glyph=\"add\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button> -->\r\n </div>\r\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n <fd-action-sheet >\r\n <fd-action-sheet-control>\r\n <button\r\n fd-button\r\n glyph=\"settings\"\r\n title=\"Open Action Sheet Mobile\"\r\n id=\"fd-action-sheet-mobile-control\"\r\n aria-haspopup=\"menu\"\r\n [label]=\"file.FileName ||''\"\r\n aria-controls=\"fd-action-sheet-mobile-body\"\r\n ></button>\r\n </fd-action-sheet-control>\r\n\r\n <fd-action-sheet-body\r\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n >\r\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n </p> -->\r\n </ng-container>\r\n </td>\r\n <td fd-table-cell>\r\n <div class=\"status\" style=\"position: relative\">\r\n @if (+documentItem.MaxFileCount && !readonly) {\r\n <button\r\n fd-button\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n (click)=\"!readonly && uploader.open()\"\r\n >\r\n @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n }\r\n </button>\r\n }\r\n <button\r\n fd-button\r\n glyph=\"show\"\r\n fullscreenFiles\r\n [files]=\"files\"\r\n [title]=\"documentItem.Title\"\r\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n fullscreenFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n ></button>\r\n <button\r\n fd-button\r\n glyph=\"download\"\r\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n downloadFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n (click)=\"downloadAll.emit()\"\r\n ></button>\r\n </div>\r\n </td>\r\n <td fd-table-cell>\r\n <fd-action-sheet #actionSheet>\r\n <fd-action-sheet-control>\r\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Accept' | bbbTranslate\"\r\n glyph=\"accept\"\r\n (click)=\"actionSheet.close(); onReject(2)\"\r\n ></li>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Reject' | bbbTranslate\"\r\n glyph=\"cancel\"\r\n (click)=\"actionSheet.close(); onReject(3)\"\r\n ></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n\r\n @if (status === 3) {\r\n <p fd-table-text maxWidth=\"400px\">\r\n @if (readonly && rejectedReason) {\r\n <span> {{ rejectedReason | bbbTranslate }} </span>\r\n } @if (!readonly) {\r\n <input\r\n fd-form-control\r\n [value]=\"rejectedReason | bbbTranslate\"\r\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\r\n />\r\n }\r\n </p>\r\n }\r\n </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n <div class=\"status\">\r\n <button fd-button fdType=\"transparent\">\r\n @if (status === 1) {\r\n <span\r\n fd-object-status\r\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 2) {\r\n <span\r\n fd-object-status\r\n glyph=\"message-success\"\r\n status=\"positive\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 3) {\r\n <span\r\n fd-object-status\r\n glyph=\"cancel\"\r\n status=\"negative\"\r\n [label]=\"'Rejected' | bbbTranslate\"\r\n [aria-label]=\"'Rejected' | bbbTranslate\"\r\n ></span>\r\n }\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i3.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i3.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i3.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "component", type: i4.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i4.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i4.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "glyphFont", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i4.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "component", type: i5.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i8.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "directive", type: i11.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i11.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "directive", type: i11.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
67
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentListItemComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PictureFieldSourcePipe }], target: i0.ɵɵFactoryTarget.Component }); }
68
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: { documentItem: "documentItem", deviceSize: "deviceSize", files: "files", accepted: "accepted", rejectedReason: "rejectedReason", readonly: "readonly", status: "status", uploadingState: "uploadingState" }, outputs: { statusChanged: "statusChanged", rejectTextChange: "rejectTextChange", fileSelectionChange: "fileSelectionChange", removeFile: "removeFile", fullscreen: "fullscreen", download: "download", downloadAll: "downloadAll" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n <fd-avatar\r\n *ngIf=\"documentItem.Avatar\"\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n [clickable]=\"true\"\r\n ></fd-avatar\r\n ></span>\r\n\r\n <div fd-list-content>\r\n <div fd-list-title>\r\n <div style=\"display: flex; column-gap: 3px\">\r\n <strong\r\n >{{ documentItem.Title }}\r\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\r\n </span>\r\n </strong>\r\n <div\r\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n >\r\n <span\r\n fd-object-status\r\n [status]=\"accepted ? 'positive' : 'negative'\"\r\n [label]=\"accepted ? acceptedText : rejectedText\"\r\n [clickable]=\"true\"\r\n [inverted]=\"true\"\r\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n ></span>\r\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n <fd-popover-control>\r\n <span\r\n fd-object-status\r\n status=\"negative\"\r\n glyph=\"question-mark\"\r\n glyphAriaLabel=\"Negative\"\r\n title=\"Rejected document\"\r\n ></span>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ rejectedReason }}\r\n </fd-message-strip>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n <div fd-list-byline-left>\r\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n <ng-container *ngIf=\"hasFiles\">\r\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n <ng-container *ngFor=\"let file of files\">\r\n <fd-token\r\n [readOnly]=\"readonly\"\r\n *ngIf=\"!file.IsDeleted\"\r\n (onCloseClick)=\"onRemoveFile(file)\"\r\n >{{ file.FileName }}</fd-token\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <button\r\n fd-button\r\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button>\r\n <fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n ></fd-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n <bdc-accept-reject\r\n [rejectedReason]=\"rejectedReason\"\r\n [positiveText]=\"acceptedText\"\r\n [negativeText]=\"rejectedText\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"readonly\"\r\n ></bdc-accept-reject>\r\n </div>\r\n </div>\r\n </div>\r\n </li> -->\r\n\r\n<tr fd-table-row>\r\n <td fd-table-cell>\r\n @if (documentItem.Avatar && !files.length) {\r\n <fd-avatar\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n [clickable]=\"true\"\r\n [transparent]=\"true\"\r\n ></fd-avatar>\r\n } @else { @if (files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n } @if (!files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n } }\r\n </td>\r\n <td fd-table-cell style=\"min-width: 140px\">\r\n <p fd-table-text>\r\n <strong\r\n >{{ documentItem.Title }}\r\n @if (documentItem.IsRequired) {\r\n <span fd-object-status status=\"negative\">*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }}) </span>\r\n }\r\n </strong>\r\n </p>\r\n <div>\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n </div>\r\n </td>\r\n\r\n <td fd-table-cell>\r\n <ng-container>\r\n <!-- <ul fd-list>\r\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n <span fd-list-secondary>\r\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n </span>\r\n </li>\r\n </ul> -->\r\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n @for (file of files; track file) {\r\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n (remove)=\"removeFile.emit(file)\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n <!-- <button\r\n fd-button\r\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n glyph=\"add\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button> -->\r\n </div>\r\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n <fd-action-sheet >\r\n <fd-action-sheet-control>\r\n <button\r\n fd-button\r\n glyph=\"settings\"\r\n title=\"Open Action Sheet Mobile\"\r\n id=\"fd-action-sheet-mobile-control\"\r\n aria-haspopup=\"menu\"\r\n [label]=\"file.FileName ||''\"\r\n aria-controls=\"fd-action-sheet-mobile-body\"\r\n ></button>\r\n </fd-action-sheet-control>\r\n\r\n <fd-action-sheet-body\r\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n >\r\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n </p> -->\r\n </ng-container>\r\n </td>\r\n <td fd-table-cell>\r\n <div class=\"status\" style=\"position: relative\">\r\n @if (+documentItem.MaxFileCount && !readonly) {\r\n <button\r\n fd-button\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n (click)=\"!readonly && uploader.open()\"\r\n >\r\n @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n }\r\n </button>\r\n }\r\n <button\r\n fd-button\r\n glyph=\"show\"\r\n fullscreenFiles\r\n [files]=\"files\"\r\n [title]=\"documentItem.Title\"\r\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n fullscreenFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n ></button>\r\n <button\r\n fd-button\r\n glyph=\"download\"\r\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n downloadFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n (click)=\"downloadAll.emit()\"\r\n ></button>\r\n </div>\r\n </td>\r\n <td fd-table-cell>\r\n <fd-action-sheet #actionSheet>\r\n <fd-action-sheet-control>\r\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Accept' | bbbTranslate\"\r\n glyph=\"accept\"\r\n (click)=\"actionSheet.close(); onReject(2)\"\r\n ></li>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Reject' | bbbTranslate\"\r\n glyph=\"cancel\"\r\n (click)=\"actionSheet.close(); onReject(3)\"\r\n ></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n\r\n @if (status === 3) {\r\n <p fd-table-text maxWidth=\"400px\">\r\n @if (readonly && rejectedReason) {\r\n <span> {{ rejectedReason | bbbTranslate }} </span>\r\n } @if (!readonly) {\r\n <input\r\n fd-form-control\r\n [value]=\"rejectedReason | bbbTranslate\"\r\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\r\n />\r\n }\r\n </p>\r\n }\r\n </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n <div class=\"status\">\r\n <button fd-button fdType=\"transparent\">\r\n @if (status === 1) {\r\n <span\r\n fd-object-status\r\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 2) {\r\n <span\r\n fd-object-status\r\n glyph=\"message-success\"\r\n status=\"positive\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 3) {\r\n <span\r\n fd-object-status\r\n glyph=\"cancel\"\r\n status=\"negative\"\r\n [label]=\"'Rejected' | bbbTranslate\"\r\n [aria-label]=\"'Rejected' | bbbTranslate\"\r\n ></span>\r\n }\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i3.FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: ["files", "file", "deviceSize", "canDownload", "disableRemove", "fdType"], outputs: ["remove"] }, { kind: "directive", type: i3.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i3.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }, { kind: "component", type: i4.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i4.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i4.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "glyphFont", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i4.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "component", type: i5.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i6.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i7.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i8.FormControlComponent, selector: "input[fd-form-control], textarea[fd-form-control]", inputs: ["state", "type", "class", "ariaLabel", "ariaLabelledBy"] }, { kind: "directive", type: i9.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help"] }, { kind: "component", type: i10.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "directive", type: i11.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i11.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "directive", type: i11.TableTextDirective, selector: "[fdTableText], [fd-table-text]", inputs: ["fdTableTextClass", "noWrap", "title", "maxWidth"] }, { kind: "directive", type: i12.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
69
69
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaDocumentListItemComponent, decorators: [{
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentListItemComponent, decorators: [{
71
71
  type: Component,
72
72
  args: [{ selector: 'bdc-barsa-document-list-item', changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- <li fd-list-item style=\"padding: 0.5rem 1rem\">\r\n<span fd-list-thumbnail>\r\n <fd-icon *ngIf=\"documentItem.FontIcon\" [glyph]=\"documentItem.FontIcon\"></fd-icon>\r\n <fd-avatar\r\n *ngIf=\"documentItem.Avatar\"\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:''\"\r\n [clickable]=\"true\"\r\n ></fd-avatar\r\n ></span>\r\n\r\n <div fd-list-content>\r\n <div fd-list-title>\r\n <div style=\"display: flex; column-gap: 3px\">\r\n <strong\r\n >{{ documentItem.Title }}\r\n <span fd-object-status status=\"negative\" *ngIf=\"documentItem.IsRequired\"\r\n >*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }})\r\n </span>\r\n </strong>\r\n <div\r\n *ngIf=\"documentItem.$Accepted === false || documentItem.$Accepted === true\"\r\n style=\"display: flex; column-gap: 3px; flex-wrap: wrap; align-items: center\"\r\n >\r\n <span\r\n fd-object-status\r\n [status]=\"accepted ? 'positive' : 'negative'\"\r\n [label]=\"accepted ? acceptedText : rejectedText\"\r\n [clickable]=\"true\"\r\n [inverted]=\"true\"\r\n [aria-label]=\"accepted ? acceptedText : rejectedText\"\r\n ></span>\r\n <fd-popover title=\"Rejected document\" *ngIf=\"rejectedReason && !accepted\">\r\n <fd-popover-control>\r\n <span\r\n fd-object-status\r\n status=\"negative\"\r\n glyph=\"question-mark\"\r\n glyphAriaLabel=\"Negative\"\r\n title=\"Rejected document\"\r\n ></span>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <fd-message-strip type=\"error\" [dismissible]=\"false\">\r\n {{ rejectedReason }}\r\n </fd-message-strip>\r\n </fd-popover-body>\r\n </fd-popover>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline [twoCol]=\"true\" [class.smallSize]=\"deviceSize === 's'\">\r\n <div fd-list-byline-left>\r\n <div style=\"display: flex; flex-direction: column; row-gap: 5px; flex-wrap: wrap\">\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n <div style=\"display: flex; flex-wrap: wrap; column-gap: 3px; align-items: center\">\r\n <ng-container *ngIf=\"hasFiles\">\r\n <button fd-button [fdType]=\"'transparent'\" glyph=\"show\" (click)=\"onFullscreen()\"></button>\r\n <ng-container *ngFor=\"let file of files\">\r\n <fd-token\r\n [readOnly]=\"readonly\"\r\n *ngIf=\"!file.IsDeleted\"\r\n (onCloseClick)=\"onRemoveFile(file)\"\r\n >{{ file.FileName }}</fd-token\r\n >\r\n </ng-container>\r\n </ng-container>\r\n <button\r\n fd-button\r\n *ngIf=\"documentItem.MaxFileCount && !readonly\"\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button>\r\n <fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n ></fd-file-uploader>\r\n </div>\r\n </div>\r\n </div>\r\n <div fd-list-byline-right *ngIf=\"documentItem.CanAccept\">\r\n <bdc-accept-reject\r\n [rejectedReason]=\"rejectedReason\"\r\n [positiveText]=\"acceptedText\"\r\n [negativeText]=\"rejectedText\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"readonly\"\r\n ></bdc-accept-reject>\r\n </div>\r\n </div>\r\n </div>\r\n </li> -->\r\n\r\n<tr fd-table-row>\r\n <td fd-table-cell>\r\n @if (documentItem.Avatar && !files.length) {\r\n <fd-avatar\r\n size=\"s\"\r\n [image]=\"documentItem.Avatar.FileId | picFieldSrc: 'ID':null:'':64:64\"\r\n [clickable]=\"true\"\r\n [transparent]=\"true\"\r\n ></fd-avatar>\r\n } @else { @if (files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [image]=\"firstImageUrl\" [clickable]=\"true\"></fd-avatar>\r\n } @if (!files.length) {\r\n <fd-avatar [transparent]=\"true\" size=\"s\" [glyph]=\"documentItem.FontIcon\" [clickable]=\"true\"></fd-avatar>\r\n } }\r\n </td>\r\n <td fd-table-cell style=\"min-width: 140px\">\r\n <p fd-table-text>\r\n <strong\r\n >{{ documentItem.Title }}\r\n @if (documentItem.IsRequired) {\r\n <span fd-object-status status=\"negative\">*({{ '\u0627\u062C\u0628\u0627\u0631\u06CC' | bbbTranslate }}) </span>\r\n }\r\n </strong>\r\n </p>\r\n <div>\r\n <span>\r\n {{ documentItem.Description }}\r\n </span>\r\n </div>\r\n </td>\r\n\r\n <td fd-table-cell>\r\n <ng-container>\r\n <!-- <ul fd-list>\r\n <li fd-list-item *ngFor=\"let file of files; let ind = index\">\r\n <span fd-list-title>\r\n {{ file.FileName }}\r\n </span>\r\n <span fd-list-secondary>\r\n <button ariaLabel=\"Remove\" title=\"Remove\" fd-button glyph=\"delete\" ></button>\r\n </span>\r\n </li>\r\n </ul> -->\r\n <div style=\"display: flex; align-items: flex-start; column-gap: 3px; row-gap: 3px; flex-direction: column\">\r\n @for (file of files; track file) {\r\n <!-- <span><fd-icon glyph=\"attachment\"></fd-icon><a fd-link>{{file.FileName}}</a></span> -->\r\n @if (!file.IsDeleted) {\r\n <bsu-file-viewer-popover\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize\"\r\n [canDownload]=\"true\"\r\n (remove)=\"removeFile.emit(file)\"\r\n ></bsu-file-viewer-popover>\r\n } }\r\n <!-- <button\r\n fd-button\r\n *ngIf=\"+documentItem.MaxFileCount && !readonly\"\r\n glyph=\"add\"\r\n (click)=\"!readonly && uploader.open()\"\r\n ></button> -->\r\n </div>\r\n <!-- <p *ngFor=\"let file of files\" fd-table-text>\r\n <fd-action-sheet >\r\n <fd-action-sheet-control>\r\n <button\r\n fd-button\r\n glyph=\"settings\"\r\n title=\"Open Action Sheet Mobile\"\r\n id=\"fd-action-sheet-mobile-control\"\r\n aria-haspopup=\"menu\"\r\n [label]=\"file.FileName ||''\"\r\n aria-controls=\"fd-action-sheet-mobile-body\"\r\n ></button>\r\n </fd-action-sheet-control>\r\n\r\n <fd-action-sheet-body\r\n actionSheetBodyId=\"fd-action-sheet-mobile-body\"\r\n ariaLabelledBy=\"fd-action-sheet-mobile-control\"\r\n >\r\n <li fd-action-sheet-item label=\"Search\" glyph=\"search\"></li>\r\n <li fd-action-sheet-item label=\"Download\" glyph=\"download\" ></li>\r\n <li fd-action-sheet-item label=\"Accept\" glyph=\"accept\" ></li>\r\n <li fd-action-sheet-item label=\"Reject\" glyph=\"cancel\" ></li>\r\n <li fd-action-sheet-item label=\"Decide Later\" [isCloseButton]=\"true\"></li>\r\n <li fd-action-sheet-item label=\"Cancel\" [negative]=\"true\" [isCloseButton]=\"true\"></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n </p> -->\r\n </ng-container>\r\n </td>\r\n <td fd-table-cell>\r\n <div class=\"status\" style=\"position: relative\">\r\n @if (+documentItem.MaxFileCount && !readonly) {\r\n <button\r\n fd-button\r\n glyph=\"attachment\"\r\n [label]=\"'AttachFile' | bbbTranslate\"\r\n [disabled]=\"uploadingState?.key === documentItem.Title && uploadingState?.uploading\"\r\n (click)=\"!readonly && uploader.open()\"\r\n >\r\n @if (uploadingState?.key === documentItem.Title && uploadingState?.uploading) {\r\n <bsu-mask [marginTop]=\"'3px'\"></bsu-mask>\r\n }\r\n </button>\r\n }\r\n <button\r\n fd-button\r\n glyph=\"show\"\r\n fullscreenFiles\r\n [files]=\"files\"\r\n [title]=\"documentItem.Title\"\r\n [fd-inline-help]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u0645\u0634\u0627\u0647\u062F\u0647 \u0647\u0645\u0647' | bbbTranslate\"\r\n fullscreenFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n ></button>\r\n <button\r\n fd-button\r\n glyph=\"download\"\r\n [fd-inline-help]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [aria-describedby]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n [ariaLabel]=\"'\u062F\u0627\u0646\u0644\u0648\u062F \u0647\u0645\u0647' | bbbTranslate\"\r\n downloadFiles\r\n [disabled]=\"!files.length\"\r\n [files]=\"files\"\r\n (click)=\"downloadAll.emit()\"\r\n ></button>\r\n </div>\r\n </td>\r\n <td fd-table-cell>\r\n <fd-action-sheet #actionSheet>\r\n <fd-action-sheet-control>\r\n <ng-container *ngTemplateOutlet=\"statusTpl\"></ng-container>\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Accept' | bbbTranslate\"\r\n glyph=\"accept\"\r\n (click)=\"actionSheet.close(); onReject(2)\"\r\n ></li>\r\n <li\r\n fd-action-sheet-item\r\n [label]=\"'Reject' | bbbTranslate\"\r\n glyph=\"cancel\"\r\n (click)=\"actionSheet.close(); onReject(3)\"\r\n ></li>\r\n </fd-action-sheet-body>\r\n </fd-action-sheet>\r\n\r\n @if (status === 3) {\r\n <p fd-table-text maxWidth=\"400px\">\r\n @if (readonly && rejectedReason) {\r\n <span> {{ rejectedReason | bbbTranslate }} </span>\r\n } @if (!readonly) {\r\n <input\r\n fd-form-control\r\n [value]=\"rejectedReason | bbbTranslate\"\r\n [placeholder]=\"'\u062F\u0644\u0627\u06CC\u0644 \u0631\u062F \u0645\u062F\u0631\u06A9' | bbbTranslate\"\r\n />\r\n }\r\n </p>\r\n }\r\n </td>\r\n</tr>\r\n\r\n<fd-file-uploader\r\n #uploader\r\n [style.display]=\"'none'\"\r\n fd-toolbar-item\r\n [id]=\"documentItem.ItemKey\"\r\n [name]=\"'pictures_' + documentItem.ItemKey\"\r\n [accept]=\"documentItem.$ValidExtensions\"\r\n [fileLimit]=\"documentItem.MaxFileCount\"\r\n [multiple]=\"documentItem.MaxFileCount > 0\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n></fd-file-uploader>\r\n<ng-template #statusTpl>\r\n <div class=\"status\">\r\n <button fd-button fdType=\"transparent\">\r\n @if (status === 1) {\r\n <span\r\n fd-object-status\r\n [label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n [aria-label]=\"'[\u067E\u06CC\u0648\u0633\u062A \u0645\u062F\u0627\u0631\u06A9]' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 2) {\r\n <span\r\n fd-object-status\r\n glyph=\"message-success\"\r\n status=\"positive\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n [label]=\"'Accepted' | bbbTranslate\"\r\n ></span>\r\n } @if (status === 3) {\r\n <span\r\n fd-object-status\r\n glyph=\"cancel\"\r\n status=\"negative\"\r\n [label]=\"'Rejected' | bbbTranslate\"\r\n [aria-label]=\"'Rejected' | bbbTranslate\"\r\n ></span>\r\n }\r\n </button>\r\n </div>\r\n</ng-template>\r\n", styles: [":host{display:contents}::ng-deep .fd-list--byline .fd-list__byline-left,::ng-deep .fd-list--byline .fd-list__byline-right{line-height:1.1rem!important}.fd-list__byline.smallSize{flex-direction:column;row-gap:5px}.fd-list__byline.smallSize div{width:100%}td{white-space:nowrap;padding:.5rem}fd-avatar ::ng-deep i{font-size:2.3rem!important}.status{display:flex;align-items:center;column-gap:3px;row-gap:3px}.status span.fd-object-status{font-size:var(--sapFontSize)!important;font-weight:700!important}.status span.fd-object-status ::ng-deep fd-icon{font-size:var(--sapFontSize);font-weight:700}\n"] }]
73
73
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.PictureFieldSourcePipe }], propDecorators: { documentItem: [{
@@ -101,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
101
101
  }], downloadAll: [{
102
102
  type: Output
103
103
  }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsYUFBYSxFQUNiLGFBQWEsRUFFYixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsRUFFaEIsT0FBTyxFQUNQLE9BQU8sRUFFVixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQXFCN0QsWUFBb0IsSUFBdUIsRUFBVSxZQUFvQztRQUNyRixLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBVi9FLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTJDLENBQUM7UUFDNUUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFD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QUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcclxuICAgIEF1ZGlvTWltZVR5cGUsXHJcbiAgICBCYXNlQ29tcG9uZW50LFxyXG4gICAgRmlsZUF0dGFjaG1lbnRJbmZvLFxyXG4gICAgSW1hZ2VNaW1lVHlwZSxcclxuICAgIFByZXZlbnREZWZhdWxFdmVudCxcclxuICAgIFZpZGVvTWltZVR5cGUsXHJcbiAgICBBbGxGaWxlc01pbWVUeXBlLFxyXG4gICAgUGljdHVyZUZpZWxkU291cmNlUGlwZSxcclxuICAgIGlzSW1hZ2UsXHJcbiAgICBnZXRJY29uLFxyXG4gICAgSVVwbG9hZGluZ1N0YXRlXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYURvY3VtZW50TGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtO1xyXG5cclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIEBJbnB1dCgpIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcmVqZWN0ZWRSZWFzb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc3RhdHVzOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSB1cGxvYWRpbmdTdGF0ZTogSVVwbG9hZGluZ1N0YXRlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBudW1iZXI7IHJlamVjdGVkVGV4dDogc3RyaW5nIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVqZWN0VGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmVGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlQXR0YWNobWVudEluZm8+KCk7XHJcbiAgICBAT3V0cHV0KCkgZnVsbHNjcmVlbiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbCB8IEZpbGVBdHRhY2htZW50SW5mbz4oKTtcclxuICAgIEBPdXRwdXQoKSBkb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xyXG4gICAgQE91dHB1dCgpIGRvd25sb2FkQWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIGhhc0ZpbGVzID0gZmFsc2U7XHJcbiAgICBmaXJzdEltYWdlVXJsOiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9waWNGaWVsZFNyYzogUGljdHVyZUZpZWxkU291cmNlUGlwZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IGRvY3VtZW50SXRlbSA9IHRoaXMuZG9jdW1lbnRJdGVtO1xyXG4gICAgICAgIGRvY3VtZW50SXRlbS4kVmFsaWRFeHRlbnNpb25zID0gYCAgICAgICAgICAgIFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRJbWFnZSA/IEltYWdlTWltZVR5cGUgOiAnJ30sXHJcbiAgICAgICAgJHtkb2N1bWVudEl0ZW0uU3VwcG9ydEF1ZGlvID8gQXVkaW9NaW1lVHlwZSA6ICcnfSxcclxuICAgICAgICAke2RvY3VtZW50SXRlbS5TdXBwb3J0VmlkZW8gPyBWaWRlb01pbWVUeXBlIDogJyd9LFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRGaWxlID8gQWxsRmlsZXNNaW1lVHlwZSA6ICcnfVxyXG4gICAgICAgIGA7XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gY2hhbmdlcztcclxuICAgICAgICBmaWxlcyAmJiBBcnJheS5pc0FycmF5KGZpbGVzLmN1cnJlbnRWYWx1ZSkgJiYgdGhpcy5fc2V0Rmlyc3RJbWFnZShmaWxlcy5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0KGU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHsgdmFsdWU6IGUsIHJlamVjdGVkVGV4dDogZSA9PT0gMiA/ICcnIDogdGhpcy5yZWplY3RlZFJlYXNvbiB9KTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0ZWRUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlamVjdFRleHRDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvblByZXZlbnRDbGljayhlKTogdm9pZCB7XHJcbiAgICAgICAgUHJldmVudERlZmF1bEV2ZW50KGUpO1xyXG4gICAgfVxyXG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3Rpb25DaGFuZ2UuZW1pdChmaWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRGaXJzdEltYWdlKGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXSk6IHZvaWQge1xyXG4gICAgICAgIGZpbGVzLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAodGhpcy5maXJzdEltYWdlVXJsID0gaXNJbWFnZShmaWxlc1swXS5UeXBlKVxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9waWNGaWVsZFNyYy50cmFuc2Zvcm0oZmlsZXNbMF0uSWQsICdJRCcsIG51bGwsICcnLCAxMjAsIDEyMClcclxuICAgICAgICAgICAgICAgIDogZ2V0SWNvbihmaWxlc1swXS5UeXBlKSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tIDxsaSBmZC1saXN0LWl0ZW0gc3R5bGU9XCJwYWRkaW5nOiAwLjVyZW0gMXJlbVwiPlxyXG48c3BhbiBmZC1saXN0LXRodW1ibmFpbD5cclxuICA8ZmQtaWNvbiAqbmdJZj1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtnbHlwaF09XCJkb2N1bWVudEl0ZW0uRm9udEljb25cIj48L2ZkLWljb24+XHJcbiAgPGZkLWF2YXRhclxyXG4gICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uQXZhdGFyXCJcclxuICAgIHNpemU9XCJzXCJcclxuICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6JydcIlxyXG4gICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgID48L2ZkLWF2YXRhclxyXG4gID48L3NwYW4+XHJcblxyXG4gIDxkaXYgZmQtbGlzdC1jb250ZW50PlxyXG4gICAgPGRpdiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgY29sdW1uLWdhcDogM3B4XCI+XHJcbiAgICAgICAgPHN0cm9uZ1xyXG4gICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxyXG4gICAgICAgICAgPHNwYW4gZmQtb2JqZWN0LXN0YXR1cyBzdGF0dXM9XCJuZWdhdGl2ZVwiICpuZ0lmPVwiZG9jdW1lbnRJdGVtLklzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICA+Kih7eyAn2KfYrNio2KfYsduMJyB8IGJiYlRyYW5zbGF0ZSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3N0cm9uZz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cImRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IGZhbHNlIHx8IGRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IHRydWVcIlxyXG4gICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiAzcHg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgIFtzdGF0dXNdPVwiYWNjZXB0ZWQgPyAncG9zaXRpdmUnIDogJ25lZ2F0aXZlJ1wiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJhY2NlcHRlZCA/IGFjY2VwdGVkVGV4dCA6IHJlamVjdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtpbnZlcnRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiYWNjZXB0ZWQgPyBhY2NlcHRlZFRleHQgOiByZWplY3RlZFRleHRcIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgIDxmZC1wb3BvdmVyIHRpdGxlPVwiUmVqZWN0ZWQgZG9jdW1lbnRcIiAqbmdJZj1cInJlamVjdGVkUmVhc29uICYmICFhY2NlcHRlZFwiPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cInF1ZXN0aW9uLW1hcmtcIlxyXG4gICAgICAgICAgICAgICAgZ2x5cGhBcmlhTGFiZWw9XCJOZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCJcclxuICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCB0eXBlPVwiZXJyb3JcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlamVjdGVkUmVhc29uIH19XHJcbiAgICAgICAgICAgICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3R3b0NvbF09XCJ0cnVlXCIgW2NsYXNzLnNtYWxsU2l6ZV09XCJkZXZpY2VTaXplID09PSAncydcIj5cclxuICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1sZWZ0PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyByb3ctZ2FwOiA1cHg7IGZsZXgtd3JhcDogd3JhcFwiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgY29sdW1uLWdhcDogM3B4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWxlc1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIGdseXBoPVwic2hvd1wiIChjbGljayk9XCJvbkZ1bGxzY3JlZW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlblxyXG4gICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVGaWxlKGZpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgPnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLXRva2VuXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ICYmICFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAjdXBsb2FkZXJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgICAgIFtpZF09XCJkb2N1bWVudEl0ZW0uSXRlbUtleVwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCIncGljdHVyZXNfJyArIGRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiZG9jdW1lbnRJdGVtLiRWYWxpZEV4dGVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVMaW1pdF09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50XCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgID48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1yaWdodCAqbmdJZj1cImRvY3VtZW50SXRlbS5DYW5BY2NlcHRcIj5cclxuICAgICAgICAgIDxiZGMtYWNjZXB0LXJlamVjdFxyXG4gICAgICAgICAgICBbcmVqZWN0ZWRSZWFzb25dPVwicmVqZWN0ZWRSZWFzb25cIlxyXG4gICAgICAgICAgICBbcG9zaXRpdmVUZXh0XT1cImFjY2VwdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtuZWdhdGl2ZVRleHRdPVwicmVqZWN0ZWRUZXh0XCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICA+PC9iZGMtYWNjZXB0LXJlamVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2xpPiAtLT5cclxuXHJcbjx0ciBmZC10YWJsZS1yb3c+XHJcbiAgICA8dGQgZmQtdGFibGUtY2VsbD5cclxuICAgICAgICBAaWYgKGRvY3VtZW50SXRlbS5BdmF0YXIgJiYgIWZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgc2l6ZT1cInNcIlxyXG4gICAgICAgICAgICBbaW1hZ2VdPVwiZG9jdW1lbnRJdGVtLkF2YXRhci5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsOicnOjY0OjY0XCJcclxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxyXG4gICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICB9IEBlbHNlIHsgQGlmIChmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICA8ZmQtYXZhdGFyIFt0cmFuc3BhcmVudF09XCJ0cnVlXCIgc2l6ZT1cInNcIiBbaW1hZ2VdPVwiZmlyc3RJbWFnZVVybFwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gQGlmICghZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgPGZkLWF2YXRhciBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiIHNpemU9XCJzXCIgW2dseXBoXT1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gfVxyXG4gICAgPC90ZD5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIHN0eWxlPVwibWluLXdpZHRoOiAxNDBweFwiPlxyXG4gICAgICAgIDxwIGZkLXRhYmxlLXRleHQ+XHJcbiAgICAgICAgICAgIDxzdHJvbmdcclxuICAgICAgICAgICAgICAgID57eyBkb2N1bWVudEl0ZW0uVGl0bGUgfX1cclxuICAgICAgICAgICAgICAgIEBpZiAoZG9jdW1lbnRJdGVtLklzUmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW9iamVjdC1zdGF0dXMgc3RhdHVzPVwibmVnYXRpdmVcIj4qKHt7ICfYp9is2KjYp9ix24wnIHwgYmJiVHJhbnNsYXRlIH19KSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Ryb25nPlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gPHVsIGZkLWxpc3Q+XHJcbiAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGluZCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICAgICAgICB7eyBmaWxlLkZpbGVOYW1lIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBhcmlhTGFiZWw9XCJSZW1vdmVcIiB0aXRsZT1cIlJlbW92ZVwiIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiID48L2J1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPiAtLT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBjb2x1bW4tZ2FwOiAzcHg7IHJvdy1nYXA6IDNweDsgZmxleC1kaXJlY3Rpb246IGNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZSkge1xyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj48ZmQtaWNvbiBnbHlwaD1cImF0dGFjaG1lbnRcIj48L2ZkLWljb24+PGEgZmQtbGluaz57e2ZpbGUuRmlsZU5hbWV9fTwvYT48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItcG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjYW5Eb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUZpbGUuZW1pdChmaWxlKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIrZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCAmJiAhcmVhZG9ubHlcIlxyXG4gICAgICAgIGdseXBoPVwiYWRkXCJcclxuICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgID48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxwICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCIgZmQtdGFibGUtdGV4dD5cclxuICAgIDxmZC1hY3Rpb24tc2hlZXQgID5cclxuICAgICAgPGZkLWFjdGlvbi1zaGVldC1jb250cm9sPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgZ2x5cGg9XCJzZXR0aW5nc1wiXHJcbiAgICAgICAgICB0aXRsZT1cIk9wZW4gQWN0aW9uIFNoZWV0IE1vYmlsZVwiXHJcbiAgICAgICAgICBpZD1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZmlsZS5GaWxlTmFtZSB8fCcnXCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJmZC1hY3Rpb24tc2hlZXQtbW9iaWxlLWJvZHlcIlxyXG4gICAgICAgID48L2J1dHRvbj5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuXHJcbiAgICAgIDxmZC1hY3Rpb24tc2hlZXQtYm9keVxyXG4gICAgICAgIGFjdGlvblNoZWV0Qm9keUlkPVwiZmQtYWN0aW9uLXNoZWV0LW1vYmlsZS1ib2R5XCJcclxuICAgICAgICBhcmlhTGFiZWxsZWRCeT1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlNlYXJjaFwiIGdseXBoPVwic2VhcmNoXCI+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJEb3dubG9hZFwiIGdseXBoPVwiZG93bmxvYWRcIiA+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJBY2NlcHRcIiBnbHlwaD1cImFjY2VwdFwiID48L2xpPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlJlamVjdFwiIGdseXBoPVwiY2FuY2VsXCIgPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiRGVjaWRlIExhdGVyXCIgW2lzQ2xvc2VCdXR0b25dPVwidHJ1ZVwiPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiQ2FuY2VsXCIgW25lZ2F0aXZlXT1cInRydWVcIiBbaXNDbG9zZUJ1dHRvbl09XCJ0cnVlXCI+PC9saT5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgIDwvZmQtYWN0aW9uLXNoZWV0PlxyXG4gIDwvcD4gLS0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoK2RvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgJiYgIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVwbG9hZGluZ1N0YXRlPy5rZXkgPT09IGRvY3VtZW50SXRlbS5UaXRsZSAmJiB1cGxvYWRpbmdTdGF0ZT8udXBsb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhcmVhZG9ubHkgJiYgdXBsb2FkZXIub3BlbigpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQGlmICh1cGxvYWRpbmdTdGF0ZT8ua2V5ID09PSBkb2N1bWVudEl0ZW0uVGl0bGUgJiYgdXBsb2FkaW5nU3RhdGU/LnVwbG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgPGJzdS1tYXNrIFttYXJnaW5Ub3BdPVwiJzNweCdcIj48L2JzdS1tYXNrPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwic2hvd1wiXHJcbiAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgICAgIFtmaWxlc109XCJmaWxlc1wiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZG9jdW1lbnRJdGVtLlRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cIifYr9in2YbZhNmI2K8g2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1kZXNjcmliZWRieV09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEFsbC5lbWl0KClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAjYWN0aW9uU2hlZXQ+XHJcbiAgICAgICAgICAgIDxmZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0dXNUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldC1ib2R5PlxyXG4gICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FjY2VwdCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYWNjZXB0XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uU2hlZXQuY2xvc2UoKTsgb25SZWplY3QoMilcIlxyXG4gICAgICAgICAgICAgICAgPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICBmZC1hY3Rpb24tc2hlZXQtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUmVqZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJjYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25TaGVldC5jbG9zZSgpOyBvblJlamVjdCgzKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9saT5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldD5cclxuXHJcbiAgICAgICAgQGlmIChzdGF0dXMgPT09IDMpIHtcclxuICAgICAgICA8cCBmZC10YWJsZS10ZXh0IG1heFdpZHRoPVwiNDAwcHhcIj5cclxuICAgICAgICAgICAgQGlmIChyZWFkb25seSAmJiByZWplY3RlZFJlYXNvbikge1xyXG4gICAgICAgICAgICA8c3Bhbj4ge3sgcmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGUgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIifYr9mE2KfbjNmEINix2K8g2YXYr9ix2qknIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICB9XHJcbiAgICA8L3RkPlxyXG48L3RyPlxyXG5cclxuPGZkLWZpbGUtdXBsb2FkZXJcclxuICAgICN1cGxvYWRlclxyXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgW2lkXT1cImRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgIFtuYW1lXT1cIidwaWN0dXJlc18nICsgZG9jdW1lbnRJdGVtLkl0ZW1LZXlcIlxyXG4gICAgW2FjY2VwdF09XCJkb2N1bWVudEl0ZW0uJFZhbGlkRXh0ZW5zaW9uc1wiXHJcbiAgICBbZmlsZUxpbWl0XT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnRcIlxyXG4gICAgW211bHRpcGxlXT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgPiAwXCJcclxuICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbj48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhdHVzVHBsPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICAgIEBpZiAoc3RhdHVzID09PSAxKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1vZvtuM2YjYs9iqINmF2K/Yp9ix2qldJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInW9m+24zZiNiz2Kog2YXYr9in2LHaqV0nIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfSBAaWYgKHN0YXR1cyA9PT0gMikge1xyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJtZXNzYWdlLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgc3RhdHVzPVwicG9zaXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoc3RhdHVzID09PSAzKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1JlamVjdGVkJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInUmVqZWN0ZWQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnQtbGlzdC1pdGVtL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFFVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUgsYUFBYSxFQUNiLGFBQWEsRUFFYixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGFBQWEsRUFDYixnQkFBZ0IsRUFFaEIsT0FBTyxFQUNQLE9BQU8sRUFFVixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQVM5QixNQUFNLE9BQU8sOEJBQStCLFNBQVEsYUFBYTtJQXFCN0QsWUFBb0IsSUFBdUIsRUFBVSxZQUFvQztRQUNyRixLQUFLLEVBQUUsQ0FBQztRQURRLFNBQUksR0FBSixJQUFJLENBQW1CO1FBQVUsaUJBQVksR0FBWixZQUFZLENBQXdCO1FBVi9FLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQTJDLENBQUM7UUFDNUUscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ2pELGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBc0IsQ0FBQztRQUNwRCxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQTZCLENBQUM7UUFD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QUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLG1CQUFtQjtzQkFBNUIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZSxcclxuICAgIEF1ZGlvTWltZVR5cGUsXHJcbiAgICBCYXNlQ29tcG9uZW50LFxyXG4gICAgRmlsZUF0dGFjaG1lbnRJbmZvLFxyXG4gICAgSW1hZ2VNaW1lVHlwZSxcclxuICAgIFByZXZlbnREZWZhdWxFdmVudCxcclxuICAgIFZpZGVvTWltZVR5cGUsXHJcbiAgICBBbGxGaWxlc01pbWVUeXBlLFxyXG4gICAgUGljdHVyZUZpZWxkU291cmNlUGlwZSxcclxuICAgIGlzSW1hZ2UsXHJcbiAgICBnZXRJY29uLFxyXG4gICAgSVVwbG9hZGluZ1N0YXRlXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWRvY3VtZW50LWxpc3QtaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1kb2N1bWVudC1saXN0LWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYURvY3VtZW50TGlzdEl0ZW1Db21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICAgIEBJbnB1dCgpIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtO1xyXG5cclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIEBJbnB1dCgpIGFjY2VwdGVkOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgcmVqZWN0ZWRSZWFzb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc3RhdHVzOiBudW1iZXI7XHJcbiAgICBASW5wdXQoKSB1cGxvYWRpbmdTdGF0ZTogSVVwbG9hZGluZ1N0YXRlO1xyXG5cclxuICAgIEBPdXRwdXQoKSBzdGF0dXNDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjx7IHZhbHVlOiBudW1iZXI7IHJlamVjdGVkVGV4dDogc3RyaW5nIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgcmVqZWN0VGV4dENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gICAgQE91dHB1dCgpIGZpbGVTZWxlY3Rpb25DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVbXT4oKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmVGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlQXR0YWNobWVudEluZm8+KCk7XHJcbiAgICBAT3V0cHV0KCkgZnVsbHNjcmVlbiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVsbCB8IEZpbGVBdHRhY2htZW50SW5mbz4oKTtcclxuICAgIEBPdXRwdXQoKSBkb3dubG9hZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUF0dGFjaG1lbnRJbmZvPigpO1xyXG4gICAgQE91dHB1dCgpIGRvd25sb2FkQWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIGhhc0ZpbGVzID0gZmFsc2U7XHJcbiAgICBmaXJzdEltYWdlVXJsOiBhbnk7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9waWNGaWVsZFNyYzogUGljdHVyZUZpZWxkU291cmNlUGlwZSkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IGRvY3VtZW50SXRlbSA9IHRoaXMuZG9jdW1lbnRJdGVtO1xyXG4gICAgICAgIGRvY3VtZW50SXRlbS4kVmFsaWRFeHRlbnNpb25zID0gYCAgICAgICAgICAgIFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRJbWFnZSA/IEltYWdlTWltZVR5cGUgOiAnJ30sXHJcbiAgICAgICAgJHtkb2N1bWVudEl0ZW0uU3VwcG9ydEF1ZGlvID8gQXVkaW9NaW1lVHlwZSA6ICcnfSxcclxuICAgICAgICAke2RvY3VtZW50SXRlbS5TdXBwb3J0VmlkZW8gPyBWaWRlb01pbWVUeXBlIDogJyd9LFxyXG4gICAgICAgICR7ZG9jdW1lbnRJdGVtLlN1cHBvcnRGaWxlID8gQWxsRmlsZXNNaW1lVHlwZSA6ICcnfVxyXG4gICAgICAgIGA7XHJcbiAgICB9XHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkNoYW5nZXMoY2hhbmdlcyk7XHJcbiAgICAgICAgY29uc3QgeyBmaWxlcyB9ID0gY2hhbmdlcztcclxuICAgICAgICBmaWxlcyAmJiBBcnJheS5pc0FycmF5KGZpbGVzLmN1cnJlbnRWYWx1ZSkgJiYgdGhpcy5fc2V0Rmlyc3RJbWFnZShmaWxlcy5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIHRoaXMuX2RldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0KGU6IG51bWJlcik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuc3RhdHVzQ2hhbmdlZC5lbWl0KHsgdmFsdWU6IGUsIHJlamVjdGVkVGV4dDogZSA9PT0gMiA/ICcnIDogdGhpcy5yZWplY3RlZFJlYXNvbiB9KTtcclxuICAgIH1cclxuICAgIG9uUmVqZWN0ZWRUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlamVjdFRleHRDaGFuZ2UuZW1pdChlLnRhcmdldC52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBvblByZXZlbnRDbGljayhlKTogdm9pZCB7XHJcbiAgICAgICAgUHJldmVudERlZmF1bEV2ZW50KGUpO1xyXG4gICAgfVxyXG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3Rpb25DaGFuZ2UuZW1pdChmaWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRGaXJzdEltYWdlKGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXSk6IHZvaWQge1xyXG4gICAgICAgIGZpbGVzLmxlbmd0aCAmJlxyXG4gICAgICAgICAgICAodGhpcy5maXJzdEltYWdlVXJsID0gaXNJbWFnZShmaWxlc1swXS5UeXBlKVxyXG4gICAgICAgICAgICAgICAgPyB0aGlzLl9waWNGaWVsZFNyYy50cmFuc2Zvcm0oZmlsZXNbMF0uSWQsICdJRCcsIG51bGwsICcnLCAxMjAsIDEyMClcclxuICAgICAgICAgICAgICAgIDogZ2V0SWNvbihmaWxlc1swXS5UeXBlKSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX2RldGVjdENoYW5nZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxufVxyXG4iLCI8IS0tIDxsaSBmZC1saXN0LWl0ZW0gc3R5bGU9XCJwYWRkaW5nOiAwLjVyZW0gMXJlbVwiPlxyXG48c3BhbiBmZC1saXN0LXRodW1ibmFpbD5cclxuICA8ZmQtaWNvbiAqbmdJZj1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtnbHlwaF09XCJkb2N1bWVudEl0ZW0uRm9udEljb25cIj48L2ZkLWljb24+XHJcbiAgPGZkLWF2YXRhclxyXG4gICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uQXZhdGFyXCJcclxuICAgIHNpemU9XCJzXCJcclxuICAgIFtpbWFnZV09XCJkb2N1bWVudEl0ZW0uQXZhdGFyLkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6JydcIlxyXG4gICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgID48L2ZkLWF2YXRhclxyXG4gID48L3NwYW4+XHJcblxyXG4gIDxkaXYgZmQtbGlzdC1jb250ZW50PlxyXG4gICAgPGRpdiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgY29sdW1uLWdhcDogM3B4XCI+XHJcbiAgICAgICAgPHN0cm9uZ1xyXG4gICAgICAgICAgPnt7IGRvY3VtZW50SXRlbS5UaXRsZSB9fVxyXG4gICAgICAgICAgPHNwYW4gZmQtb2JqZWN0LXN0YXR1cyBzdGF0dXM9XCJuZWdhdGl2ZVwiICpuZ0lmPVwiZG9jdW1lbnRJdGVtLklzUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICA+Kih7eyAn2KfYrNio2KfYsduMJyB8IGJiYlRyYW5zbGF0ZSB9fSlcclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L3N0cm9uZz5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAqbmdJZj1cImRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IGZhbHNlIHx8IGRvY3VtZW50SXRlbS4kQWNjZXB0ZWQgPT09IHRydWVcIlxyXG4gICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiAzcHg7IGZsZXgtd3JhcDogd3JhcDsgYWxpZ24taXRlbXM6IGNlbnRlclwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgIFtzdGF0dXNdPVwiYWNjZXB0ZWQgPyAncG9zaXRpdmUnIDogJ25lZ2F0aXZlJ1wiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJhY2NlcHRlZCA/IGFjY2VwdGVkVGV4dCA6IHJlamVjdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtjbGlja2FibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtpbnZlcnRlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2FyaWEtbGFiZWxdPVwiYWNjZXB0ZWQgPyBhY2NlcHRlZFRleHQgOiByZWplY3RlZFRleHRcIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgIDxmZC1wb3BvdmVyIHRpdGxlPVwiUmVqZWN0ZWQgZG9jdW1lbnRcIiAqbmdJZj1cInJlamVjdGVkUmVhc29uICYmICFhY2NlcHRlZFwiPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cInF1ZXN0aW9uLW1hcmtcIlxyXG4gICAgICAgICAgICAgICAgZ2x5cGhBcmlhTGFiZWw9XCJOZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIlJlamVjdGVkIGRvY3VtZW50XCJcclxuICAgICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICA8ZmQtbWVzc2FnZS1zdHJpcCB0eXBlPVwiZXJyb3JcIiBbZGlzbWlzc2libGVdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIHt7IHJlamVjdGVkUmVhc29uIH19XHJcbiAgICAgICAgICAgICAgPC9mZC1tZXNzYWdlLXN0cmlwPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgZmQtbGlzdC1ieWxpbmUgW3R3b0NvbF09XCJ0cnVlXCIgW2NsYXNzLnNtYWxsU2l6ZV09XCJkZXZpY2VTaXplID09PSAncydcIj5cclxuICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1sZWZ0PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyByb3ctZ2FwOiA1cHg7IGZsZXgtd3JhcDogd3JhcFwiPlxyXG4gICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtd3JhcDogd3JhcDsgY29sdW1uLWdhcDogM3B4OyBhbGlnbi1pdGVtczogY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNGaWxlc1wiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gZmQtYnV0dG9uIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiIGdseXBoPVwic2hvd1wiIChjbGljayk9XCJvbkZ1bGxzY3JlZW4oKVwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXNcIj5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlblxyXG4gICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIiFmaWxlLklzRGVsZXRlZFwiXHJcbiAgICAgICAgICAgICAgICAgIChvbkNsb3NlQ2xpY2spPVwib25SZW1vdmVGaWxlKGZpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgPnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLXRva2VuXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ICYmICFyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAgICAgICAgICAgICAjdXBsb2FkZXJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICAgICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgICAgIFtpZF09XCJkb2N1bWVudEl0ZW0uSXRlbUtleVwiXHJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCIncGljdHVyZXNfJyArIGRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiZG9jdW1lbnRJdGVtLiRWYWxpZEV4dGVuc2lvbnNcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVMaW1pdF09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50XCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJkb2N1bWVudEl0ZW0uTWF4RmlsZUNvdW50ID4gMFwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgID48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBmZC1saXN0LWJ5bGluZS1yaWdodCAqbmdJZj1cImRvY3VtZW50SXRlbS5DYW5BY2NlcHRcIj5cclxuICAgICAgICAgIDxiZGMtYWNjZXB0LXJlamVjdFxyXG4gICAgICAgICAgICBbcmVqZWN0ZWRSZWFzb25dPVwicmVqZWN0ZWRSZWFzb25cIlxyXG4gICAgICAgICAgICBbcG9zaXRpdmVUZXh0XT1cImFjY2VwdGVkVGV4dFwiXHJcbiAgICAgICAgICAgIFtuZWdhdGl2ZVRleHRdPVwicmVqZWN0ZWRUZXh0XCJcclxuICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICA+PC9iZGMtYWNjZXB0LXJlamVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2xpPiAtLT5cclxuXHJcbjx0ciBmZC10YWJsZS1yb3c+XHJcbiAgICA8dGQgZmQtdGFibGUtY2VsbD5cclxuICAgICAgICBAaWYgKGRvY3VtZW50SXRlbS5BdmF0YXIgJiYgIWZpbGVzLmxlbmd0aCkge1xyXG4gICAgICAgIDxmZC1hdmF0YXJcclxuICAgICAgICAgICAgc2l6ZT1cInNcIlxyXG4gICAgICAgICAgICBbaW1hZ2VdPVwiZG9jdW1lbnRJdGVtLkF2YXRhci5GaWxlSWQgfCBwaWNGaWVsZFNyYzogJ0lEJzpudWxsOicnOjY0OjY0XCJcclxuICAgICAgICAgICAgW2NsaWNrYWJsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW3RyYW5zcGFyZW50XT1cInRydWVcIlxyXG4gICAgICAgID48L2ZkLWF2YXRhcj5cclxuICAgICAgICB9IEBlbHNlIHsgQGlmIChmaWxlcy5sZW5ndGgpIHtcclxuICAgICAgICA8ZmQtYXZhdGFyIFt0cmFuc3BhcmVudF09XCJ0cnVlXCIgc2l6ZT1cInNcIiBbaW1hZ2VdPVwiZmlyc3RJbWFnZVVybFwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gQGlmICghZmlsZXMubGVuZ3RoKSB7XHJcbiAgICAgICAgPGZkLWF2YXRhciBbdHJhbnNwYXJlbnRdPVwidHJ1ZVwiIHNpemU9XCJzXCIgW2dseXBoXT1cImRvY3VtZW50SXRlbS5Gb250SWNvblwiIFtjbGlja2FibGVdPVwidHJ1ZVwiPjwvZmQtYXZhdGFyPlxyXG4gICAgICAgIH0gfVxyXG4gICAgPC90ZD5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsIHN0eWxlPVwibWluLXdpZHRoOiAxNDBweFwiPlxyXG4gICAgICAgIDxwIGZkLXRhYmxlLXRleHQ+XHJcbiAgICAgICAgICAgIDxzdHJvbmdcclxuICAgICAgICAgICAgICAgID57eyBkb2N1bWVudEl0ZW0uVGl0bGUgfX1cclxuICAgICAgICAgICAgICAgIEBpZiAoZG9jdW1lbnRJdGVtLklzUmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgICAgIDxzcGFuIGZkLW9iamVjdC1zdGF0dXMgc3RhdHVzPVwibmVnYXRpdmVcIj4qKHt7ICfYp9is2KjYp9ix24wnIHwgYmJiVHJhbnNsYXRlIH19KSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvc3Ryb25nPlxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7IGRvY3VtZW50SXRlbS5EZXNjcmlwdGlvbiB9fVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG5cclxuICAgIDx0ZCBmZC10YWJsZS1jZWxsPlxyXG4gICAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwhLS0gPHVsIGZkLWxpc3Q+XHJcbiAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgbGV0IGluZCA9IGluZGV4XCI+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPlxyXG4gICAgICAgICAgICB7eyBmaWxlLkZpbGVOYW1lIH19XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiBmZC1saXN0LXNlY29uZGFyeT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBhcmlhTGFiZWw9XCJSZW1vdmVcIiB0aXRsZT1cIlJlbW92ZVwiIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiID48L2J1dHRvbj5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPiAtLT5cclxuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyBjb2x1bW4tZ2FwOiAzcHg7IHJvdy1nYXA6IDNweDsgZmxleC1kaXJlY3Rpb246IGNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZSkge1xyXG4gICAgICAgICAgICAgICAgPCEtLSA8c3Bhbj48ZmQtaWNvbiBnbHlwaD1cImF0dGFjaG1lbnRcIj48L2ZkLWljb24+PGEgZmQtbGluaz57e2ZpbGUuRmlsZU5hbWV9fTwvYT48L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICAgICAgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItcG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtjYW5Eb3dubG9hZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAocmVtb3ZlKT1cInJlbW92ZUZpbGUuZW1pdChmaWxlKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItcG9wb3Zlcj5cclxuICAgICAgICAgICAgICAgIH0gfVxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCIrZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudCAmJiAhcmVhZG9ubHlcIlxyXG4gICAgICAgIGdseXBoPVwiYWRkXCJcclxuICAgICAgICAoY2xpY2spPVwiIXJlYWRvbmx5ICYmIHVwbG9hZGVyLm9wZW4oKVwiXHJcbiAgICAgID48L2J1dHRvbj4gLS0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxwICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzXCIgZmQtdGFibGUtdGV4dD5cclxuICAgIDxmZC1hY3Rpb24tc2hlZXQgID5cclxuICAgICAgPGZkLWFjdGlvbi1zaGVldC1jb250cm9sPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgZ2x5cGg9XCJzZXR0aW5nc1wiXHJcbiAgICAgICAgICB0aXRsZT1cIk9wZW4gQWN0aW9uIFNoZWV0IE1vYmlsZVwiXHJcbiAgICAgICAgICBpZD1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXHJcbiAgICAgICAgICBbbGFiZWxdPVwiZmlsZS5GaWxlTmFtZSB8fCcnXCJcclxuICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJmZC1hY3Rpb24tc2hlZXQtbW9iaWxlLWJvZHlcIlxyXG4gICAgICAgID48L2J1dHRvbj5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuXHJcbiAgICAgIDxmZC1hY3Rpb24tc2hlZXQtYm9keVxyXG4gICAgICAgIGFjdGlvblNoZWV0Qm9keUlkPVwiZmQtYWN0aW9uLXNoZWV0LW1vYmlsZS1ib2R5XCJcclxuICAgICAgICBhcmlhTGFiZWxsZWRCeT1cImZkLWFjdGlvbi1zaGVldC1tb2JpbGUtY29udHJvbFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlNlYXJjaFwiIGdseXBoPVwic2VhcmNoXCI+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJEb3dubG9hZFwiIGdseXBoPVwiZG93bmxvYWRcIiA+PC9saT5cclxuICAgICAgICA8bGkgZmQtYWN0aW9uLXNoZWV0LWl0ZW0gbGFiZWw9XCJBY2NlcHRcIiBnbHlwaD1cImFjY2VwdFwiID48L2xpPlxyXG4gICAgICAgIDxsaSBmZC1hY3Rpb24tc2hlZXQtaXRlbSBsYWJlbD1cIlJlamVjdFwiIGdseXBoPVwiY2FuY2VsXCIgPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiRGVjaWRlIExhdGVyXCIgW2lzQ2xvc2VCdXR0b25dPVwidHJ1ZVwiPjwvbGk+XHJcbiAgICAgICAgPGxpIGZkLWFjdGlvbi1zaGVldC1pdGVtIGxhYmVsPVwiQ2FuY2VsXCIgW25lZ2F0aXZlXT1cInRydWVcIiBbaXNDbG9zZUJ1dHRvbl09XCJ0cnVlXCI+PC9saT5cclxuICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgIDwvZmQtYWN0aW9uLXNoZWV0PlxyXG4gIDwvcD4gLS0+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiIHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgIEBpZiAoK2RvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgJiYgIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJhdHRhY2htZW50XCJcclxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInVwbG9hZGluZ1N0YXRlPy5rZXkgPT09IGRvY3VtZW50SXRlbS5UaXRsZSAmJiB1cGxvYWRpbmdTdGF0ZT8udXBsb2FkaW5nXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCIhcmVhZG9ubHkgJiYgdXBsb2FkZXIub3BlbigpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgQGlmICh1cGxvYWRpbmdTdGF0ZT8ua2V5ID09PSBkb2N1bWVudEl0ZW0uVGl0bGUgJiYgdXBsb2FkaW5nU3RhdGU/LnVwbG9hZGluZykge1xyXG4gICAgICAgICAgICAgICAgPGJzdS1tYXNrIFttYXJnaW5Ub3BdPVwiJzNweCdcIj48L2JzdS1tYXNrPlxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwic2hvd1wiXHJcbiAgICAgICAgICAgICAgICBmdWxsc2NyZWVuRmlsZXNcclxuICAgICAgICAgICAgICAgIFtmaWxlc109XCJmaWxlc1wiXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZG9jdW1lbnRJdGVtLlRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2YXYtNin2YfYr9mHINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWEtZGVzY3JpYmVkYnldPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIFthcmlhTGFiZWxdPVwiJ9mF2LTYp9mH2K/ZhyDZh9mF2YcnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGdseXBoPVwiZG93bmxvYWRcIlxyXG4gICAgICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cIifYr9in2YbZhNmI2K8g2YfZhdmHJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1kZXNjcmliZWRieV09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2FyaWFMYWJlbF09XCIn2K/Yp9mG2YTZiNivINmH2YXZhycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgZG93bmxvYWRGaWxlc1xyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFmaWxlcy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJkb3dubG9hZEFsbC5lbWl0KClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L3RkPlxyXG4gICAgPHRkIGZkLXRhYmxlLWNlbGw+XHJcbiAgICAgICAgPGZkLWFjdGlvbi1zaGVldCAjYWN0aW9uU2hlZXQ+XHJcbiAgICAgICAgICAgIDxmZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdGF0dXNUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLWFjdGlvbi1zaGVldC1ib2R5PlxyXG4gICAgICAgICAgICAgICAgPGxpXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cclxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ0FjY2VwdCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwiYWNjZXB0XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uU2hlZXQuY2xvc2UoKTsgb25SZWplY3QoMilcIlxyXG4gICAgICAgICAgICAgICAgPjwvbGk+XHJcbiAgICAgICAgICAgICAgICA8bGlcclxuICAgICAgICAgICAgICAgICAgICBmZC1hY3Rpb24tc2hlZXQtaXRlbVxyXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUmVqZWN0JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJjYW5jZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25TaGVldC5jbG9zZSgpOyBvblJlamVjdCgzKVwiXHJcbiAgICAgICAgICAgICAgICA+PC9saT5cclxuICAgICAgICAgICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuICAgICAgICA8L2ZkLWFjdGlvbi1zaGVldD5cclxuXHJcbiAgICAgICAgQGlmIChzdGF0dXMgPT09IDMpIHtcclxuICAgICAgICA8cCBmZC10YWJsZS10ZXh0IG1heFdpZHRoPVwiNDAwcHhcIj5cclxuICAgICAgICAgICAgQGlmIChyZWFkb25seSAmJiByZWplY3RlZFJlYXNvbikge1xyXG4gICAgICAgICAgICA8c3Bhbj4ge3sgcmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGUgfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoIXJlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXHJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmVqZWN0ZWRSZWFzb24gfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIifYr9mE2KfbjNmEINix2K8g2YXYr9ix2qknIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvcD5cclxuICAgICAgICB9XHJcbiAgICA8L3RkPlxyXG48L3RyPlxyXG5cclxuPGZkLWZpbGUtdXBsb2FkZXJcclxuICAgICN1cGxvYWRlclxyXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiJ25vbmUnXCJcclxuICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgW2lkXT1cImRvY3VtZW50SXRlbS5JdGVtS2V5XCJcclxuICAgIFtuYW1lXT1cIidwaWN0dXJlc18nICsgZG9jdW1lbnRJdGVtLkl0ZW1LZXlcIlxyXG4gICAgW2FjY2VwdF09XCJkb2N1bWVudEl0ZW0uJFZhbGlkRXh0ZW5zaW9uc1wiXHJcbiAgICBbZmlsZUxpbWl0XT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnRcIlxyXG4gICAgW211bHRpcGxlXT1cImRvY3VtZW50SXRlbS5NYXhGaWxlQ291bnQgPiAwXCJcclxuICAgIChzZWxlY3RlZEZpbGVzQ2hhbmdlZCk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbj48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbjxuZy10ZW1wbGF0ZSAjc3RhdHVzVHBsPlxyXG4gICAgPGRpdiBjbGFzcz1cInN0YXR1c1wiPlxyXG4gICAgICAgIDxidXR0b24gZmQtYnV0dG9uIGZkVHlwZT1cInRyYW5zcGFyZW50XCI+XHJcbiAgICAgICAgICAgIEBpZiAoc3RhdHVzID09PSAxKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1vZvtuM2YjYs9iqINmF2K/Yp9ix2qldJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInW9m+24zZiNiz2Kog2YXYr9in2LHaqV0nIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfSBAaWYgKHN0YXR1cyA9PT0gMikge1xyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgZmQtb2JqZWN0LXN0YXR1c1xyXG4gICAgICAgICAgICAgICAgZ2x5cGg9XCJtZXNzYWdlLXN1Y2Nlc3NcIlxyXG4gICAgICAgICAgICAgICAgc3RhdHVzPVwicG9zaXRpdmVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cIidBY2NlcHRlZCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgICB9IEBpZiAoc3RhdHVzID09PSAzKSB7XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICBnbHlwaD1cImNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICBzdGF0dXM9XCJuZWdhdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJ1JlamVjdGVkJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInUmVqZWN0ZWQnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -161,13 +161,13 @@ export class BarsaDocumentsComponent extends ReportViewBaseComponent {
161
161
  _columnNotExistsInReport(columnCaption) {
162
162
  throw new Error(`can not find ${columnCaption} column in report.please add it to report columns.`);
163
163
  }
164
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaDocumentsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.FindColumnByDbNamePipe }, { token: i1.UlvMainService }, { token: i1.PortalService }, { token: i2.DialogService }, { token: i1.UploadService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
165
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.5", type: BarsaDocumentsComponent, selector: "bdc-barsa-documents", providers: [UploadService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <ul fd-list [byline]=\"true\" fdCompact [selection]=\"false\"> -->\r\n<table fd-table aria-label=\"Default\" [allCellsFocusable]=\"true\" [noBorderX]=\"true\">\r\n <thead fd-table-header>\r\n <tr fd-table-row>\r\n <th fd-table-cell>{{ '\u0639\u06A9\u0633' | bbbTranslate }}</th>\r\n <th fd-table-cell style=\"min-width: 140px; width: auto\">{{ '\u0646\u0648\u0639 \u0645\u062F\u0631\u06A9' | bbbTranslate }}</th>\r\n <th fd-table-cell style=\"width: 99%\">{{ '\u0627\u0644\u0635\u0627\u0642 \u0641\u0627\u06CC\u0644' | bbbTranslate }}</th>\r\n <th fd-table-cell></th>\r\n <th fd-table-cell style=\"width: 400px; min-width: 400px; max-width: 400px\">{{ '\u0648\u0636\u0639\u06CC\u062A' | bbbTranslate }}</th>\r\n </tr>\r\n </thead>\r\n <tbody fd-table-body>\r\n @for (mo of moDataList; track _trackByRow($index, mo)) { @if (mo.$documentItem) {\r\n <bdc-barsa-document-list-item\r\n [documentItem]=\"mo.$documentItem\"\r\n [accepted]=\"mo[acceptedColumn.Name]\"\r\n [files]=\"mo[fileColumn.Name].Files\"\r\n [uploadingState]=\"(uploadingState$ | async)!!\"\r\n [rejectedReason]=\"mo[rejectedReasonColumn.Name]\"\r\n [fileDbName]=\"fileColumn.Name\"\r\n [status]=\"+mo[statusColumn.Name]\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"!access.Edit\"\r\n [deviceSize]=\"deviceSize\"\r\n (removeFile)=\"onRemoveFile($event, mo)\"\r\n (fileSelectionChange)=\"onFileSelection($event, mo.$documentItem, mo)\"\r\n (rejectTextChange)=\"onRejectedTextChange($event, mo)\"\r\n (statusChanged)=\"onStatusChanged($event, mo)\"\r\n ></bdc-barsa-document-list-item>\r\n } }\r\n <!-- </ul> -->\r\n </tbody>\r\n</table>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY", "nonInteractive"] }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "key"] }, { kind: "component", type: i4.BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: ["documentItem", "deviceSize", "files", "accepted", "rejectedReason", "readonly", "status", "uploadingState"], outputs: ["statusChanged", "rejectTextChange", "fileSelectionChange", "removeFile", "fullscreen", "download", "downloadAll"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
164
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i1.FindColumnByDbNamePipe }, { token: i1.UlvMainService }, { token: i1.PortalService }, { token: i2.DialogService }, { token: i1.UploadService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
165
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaDocumentsComponent, selector: "bdc-barsa-documents", providers: [UploadService], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<!-- <ul fd-list [byline]=\"true\" fdCompact [selection]=\"false\"> -->\r\n<table fd-table aria-label=\"Default\" [allCellsFocusable]=\"true\" [noBorderX]=\"true\">\r\n <thead fd-table-header>\r\n <tr fd-table-row>\r\n <th fd-table-cell>{{ '\u0639\u06A9\u0633' | bbbTranslate }}</th>\r\n <th fd-table-cell style=\"min-width: 140px; width: auto\">{{ '\u0646\u0648\u0639 \u0645\u062F\u0631\u06A9' | bbbTranslate }}</th>\r\n <th fd-table-cell style=\"width: 99%\">{{ '\u0627\u0644\u0635\u0627\u0642 \u0641\u0627\u06CC\u0644' | bbbTranslate }}</th>\r\n <th fd-table-cell></th>\r\n <th fd-table-cell style=\"width: 400px; min-width: 400px; max-width: 400px\">{{ '\u0648\u0636\u0639\u06CC\u062A' | bbbTranslate }}</th>\r\n </tr>\r\n </thead>\r\n <tbody fd-table-body>\r\n @for (mo of moDataList; track _trackByRow($index, mo)) { @if (mo.$documentItem) {\r\n <bdc-barsa-document-list-item\r\n [documentItem]=\"mo.$documentItem\"\r\n [accepted]=\"mo[acceptedColumn.Name]\"\r\n [files]=\"mo[fileColumn.Name].Files\"\r\n [uploadingState]=\"(uploadingState$ | async)!!\"\r\n [rejectedReason]=\"mo[rejectedReasonColumn.Name]\"\r\n [fileDbName]=\"fileColumn.Name\"\r\n [status]=\"+mo[statusColumn.Name]\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"!access.Edit\"\r\n [deviceSize]=\"deviceSize\"\r\n (removeFile)=\"onRemoveFile($event, mo)\"\r\n (fileSelectionChange)=\"onFileSelection($event, mo.$documentItem, mo)\"\r\n (rejectTextChange)=\"onRejectedTextChange($event, mo)\"\r\n (statusChanged)=\"onStatusChanged($event, mo)\"\r\n ></bdc-barsa-document-list-item>\r\n } }\r\n <!-- </ul> -->\r\n </tbody>\r\n</table>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "component", type: i3.TableComponent, selector: "table[fd-table]", inputs: ["noBorderX", "noBorderY", "noOuterBorder", "topBorder", "popIn", "responsive", "keys", "allCellsFocusable"], exportAs: ["fd-table"] }, { kind: "directive", type: i3.TableHeaderDirective, selector: "[fdTableHeader], [fd-table-header]", inputs: ["noBorderX", "noBorderY", "nonInteractive"] }, { kind: "directive", type: i3.TableBodyDirective, selector: "[fdTableBody], [fd-table-body]", inputs: ["noBorderX", "noBorderY"] }, { kind: "directive", type: i3.TableRowDirective, selector: "[fdTableRow], [fd-table-row]", inputs: ["activable", "highlightActive", "hoverable", "focusable", "main", "secondary", "active"] }, { kind: "directive", type: i3.TableCellDirective, selector: "[fdTableCell], [fd-table-cell]", inputs: ["noBorderX", "noBorderY", "activable", "focusable", "hoverable", "fitContent", "noPadding", "noData", "nonInteractive", "key"] }, { kind: "component", type: i4.BarsaDocumentListItemComponent, selector: "bdc-barsa-document-list-item", inputs: ["documentItem", "deviceSize", "files", "accepted", "rejectedReason", "readonly", "status", "uploadingState"], outputs: ["statusChanged", "rejectTextChange", "fileSelectionChange", "removeFile", "fullscreen", "download", "downloadAll"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
166
166
  }
167
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImport: i0, type: BarsaDocumentsComponent, decorators: [{
167
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaDocumentsComponent, decorators: [{
168
168
  type: Component,
169
169
  args: [{ selector: 'bdc-barsa-documents', changeDetection: ChangeDetectionStrategy.OnPush, providers: [UploadService], template: "<!-- <ul fd-list [byline]=\"true\" fdCompact [selection]=\"false\"> -->\r\n<table fd-table aria-label=\"Default\" [allCellsFocusable]=\"true\" [noBorderX]=\"true\">\r\n <thead fd-table-header>\r\n <tr fd-table-row>\r\n <th fd-table-cell>{{ '\u0639\u06A9\u0633' | bbbTranslate }}</th>\r\n <th fd-table-cell style=\"min-width: 140px; width: auto\">{{ '\u0646\u0648\u0639 \u0645\u062F\u0631\u06A9' | bbbTranslate }}</th>\r\n <th fd-table-cell style=\"width: 99%\">{{ '\u0627\u0644\u0635\u0627\u0642 \u0641\u0627\u06CC\u0644' | bbbTranslate }}</th>\r\n <th fd-table-cell></th>\r\n <th fd-table-cell style=\"width: 400px; min-width: 400px; max-width: 400px\">{{ '\u0648\u0636\u0639\u06CC\u062A' | bbbTranslate }}</th>\r\n </tr>\r\n </thead>\r\n <tbody fd-table-body>\r\n @for (mo of moDataList; track _trackByRow($index, mo)) { @if (mo.$documentItem) {\r\n <bdc-barsa-document-list-item\r\n [documentItem]=\"mo.$documentItem\"\r\n [accepted]=\"mo[acceptedColumn.Name]\"\r\n [files]=\"mo[fileColumn.Name].Files\"\r\n [uploadingState]=\"(uploadingState$ | async)!!\"\r\n [rejectedReason]=\"mo[rejectedReasonColumn.Name]\"\r\n [fileDbName]=\"fileColumn.Name\"\r\n [status]=\"+mo[statusColumn.Name]\"\r\n [deviceSize]=\"deviceSize\"\r\n [readonly]=\"!access.Edit\"\r\n [deviceSize]=\"deviceSize\"\r\n (removeFile)=\"onRemoveFile($event, mo)\"\r\n (fileSelectionChange)=\"onFileSelection($event, mo.$documentItem, mo)\"\r\n (rejectTextChange)=\"onRejectedTextChange($event, mo)\"\r\n (statusChanged)=\"onStatusChanged($event, mo)\"\r\n ></bdc-barsa-document-list-item>\r\n } }\r\n <!-- </ul> -->\r\n </tbody>\r\n</table>\r\n", styles: [":host{display:block}\n"] }]
170
170
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i1.FindColumnByDbNamePipe }, { type: i1.UlvMainService }, { type: i1.PortalService }, { type: i2.DialogService }, { type: i1.UploadService, decorators: [{
171
171
  type: Optional
172
172
  }] }] });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50cy9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnRzL2JhcnNhLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFJVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBRXZCLGFBQWEsRUFNaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVc5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXlDO0lBWWxGLFlBQ2MsR0FBZSxFQUNmLElBQXVCLEVBQ3ZCLFVBQXFCLEVBQ3JCLG1CQUEyQyxFQUMzQyxlQUErQixFQUMvQixjQUE2QixFQUM3QixjQUE2QixFQUNqQixjQUE4QjtRQUVwRCxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVR6RixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNqQixtQkFBYyxHQUFk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QUFDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNTLHdCQUF3QixDQUFDLGFBQWE7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsYUFBYSxvREFBb0QsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7OEdBN0tRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDhDQUZyQixDQUFDLGFBQWEsQ0FBQyxzRUNqQzlCLDgxREFpQ0E7OzJGREVhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGFBQWEsQ0FBQzs7MEJBc0JyQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRmlsZXNWYWxpZGF0aW9uSGVscGVyLFxyXG4gICAgTGluZWFyTGlzdEhlbHBlcixcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudCxcclxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXHJcbiAgICBVcGxvYWRTZXJ2aWNlLFxyXG4gICAgRmlsZUF0dGFjaG1lbnRJbmZvLFxyXG4gICAgRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcclxuICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICBVbHZNYWluU2VydmljZSxcclxuICAgIElVcGxvYWRpbmdTdGF0ZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEl0ZW0sIERvY3VtZW50c1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJzYS1kb2N1bWVudHMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbVXBsb2FkU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50IGV4dGVuZHMgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQ8RG9jdW1lbnRzU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBrZXlDb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XHJcbiAgICBmaWxlQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xyXG4gICAgc3RhdHVzQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xyXG4gICAgcmVqZWN0ZWRSZWFzb25Db2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XHJcbiAgICBhY2NlcHRlZENvbHVtbjogUmVwb3J0Vmlld0NvbHVtbjtcclxuICAgIHNlbGVjdGVkTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICB1cGxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8SVVwbG9hZGluZ1N0YXRlPjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcjogRmlsZXNWYWxpZGF0aW9uSGVscGVyO1xyXG4gICAgcHJvdGVjdGVkIF9saW5lYXJIZWxwZXI6IExpbmVhckxpc3RIZWxwZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgX2ZpbmRDb2x1bW5CeURiTmFtZTogRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3Vsdk1haW5TZXJ2aWNlOiBVbHZNYWluU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfdXBsb2FkU2VydmljZT86IFVwbG9hZFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9lbCwgX2NkciwgX3JlbmRlcmVyMiwgX2ZpbmRDb2x1bW5CeURiTmFtZSwgX3Vsdk1haW5TZXJ2aWNlLCBfcG9ydGFsU2VydmljZSwgX3VwbG9hZFNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkb2N1bWVudEl0ZW1zKCk6IEFycmF5PERvY3VtZW50SXRlbT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkSW5mbykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21GaWVsZEluZm8uRG9jdW1lbnRJdGVtcy5Nb0RhdGFMaXN0IGFzIEFycmF5PERvY3VtZW50SXRlbT47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlld1NldHRpbmcuRmlsZXNTZXR0aW5nLkRvY3VtZW50SXRlbXMuTW9EYXRhTGlzdCBhcyBBcnJheTxEb2N1bWVudEl0ZW0+O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgeyBtb0RhdGFMaXN0LCB2aWV3U2V0dGluZywgYWxsQ29sdW1ucyB9ID0gdGhpcztcclxuXHJcbiAgICAgICAgdGhpcy5faW5pdENvbHVtbkZpZWxkKGFsbENvbHVtbnMsIHZpZXdTZXR0aW5nKTtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpYmVPblVwbG9hZEZpbGUodGhpcy5maWxlQ29sdW1uKTtcclxuICAgICAgICB0aGlzLl9tYXBEb2N1bWVudEl0ZW0obW9EYXRhTGlzdCwgdGhpcy5kb2N1bWVudEl0ZW1zKTtcclxuICAgICAgICB0aGlzLl9jaGVja01hbmRhdG9yeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBjb25zdCB7IG1vRGF0YUxpc3QgfSA9IGNoYW5nZXM7XHJcbiAgICAgICAgaWYgKG1vRGF0YUxpc3QgJiYgIW1vRGF0YUxpc3QuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgaWYgKG1vRGF0YUxpc3QgJiYgIW1vRGF0YUxpc3QuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX21hcERvY3VtZW50SXRlbShtb0RhdGFMaXN0LmN1cnJlbnRWYWx1ZSwgdGhpcy5kb2N1bWVudEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZG9jdW1lbnRJdGVtcy5sZW5ndGggLSB0aGlzLm1vRGF0YUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTmV3TW8uZW1pdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSwgZG9jdW1lbnRJdGVtOiBEb2N1bWVudEl0ZW0sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vID0gbW87XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkRmlsZShmaWxlcywgZG9jdW1lbnRJdGVtKTtcclxuICAgIH1cclxuICAgIG9uUmVtb3ZlRmlsZShmaWxlOiBGaWxlQXR0YWNobWVudEluZm8sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZURiTmFtZSA9IHRoaXMuZmlsZUNvbHVtbi5OYW1lO1xyXG4gICAgICAgIGxldCBmaWxlcyA9IG1vW2ZpbGVEYk5hbWVdLkZpbGVzO1xyXG4gICAgICAgIGlmIChmaWxlLklzTmV3KSB7XHJcbiAgICAgICAgICAgIGZpbGVzID0gZmlsZXMuZmlsdGVyKChjKSA9PiBjLklkICE9PSBmaWxlLklkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBleGlzdEZpbGUgPSBmaWxlcy5maW5kKChjKSA9PiBjLklkID09PSBmaWxlLklkKTtcclxuICAgICAgICAgICAgZXhpc3RGaWxlLklzRGVsZXRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1vW2ZpbGVEYk5hbWVdLkZpbGVzID0gWy4uLmZpbGVzXTtcclxuICAgICAgICB0aGlzLl91cGRhdGVNbyhtbyk7XHJcbiAgICB9XHJcbiAgICBvblN0YXR1c0NoYW5nZWQoZTogeyB2YWx1ZTogbnVtYmVyOyByZWplY3RlZFRleHQ6IHN0cmluZyB9LCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIG1vW3RoaXMuc3RhdHVzQ29sdW1uLk5hbWVdID0gZS52YWx1ZTtcclxuICAgICAgICBtb1t0aGlzLnJlamVjdGVkUmVhc29uQ29sdW1uLk5hbWVdID0gZS5yZWplY3RlZFRleHQ7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlTW8obW8pO1xyXG4gICAgfVxyXG4gICAgb25SZWplY3RlZFRleHRDaGFuZ2UodGV4dDogc3RyaW5nLCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIG1vW3RoaXMucmVqZWN0ZWRSZWFzb25Db2x1bW4uTmFtZV0gPSB0ZXh0O1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZU1vKG1vKTtcclxuICAgIH1cclxuICAgIF9jaGVja01hbmRhdG9yeSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBtb0RhdGFMaXN0ID0gdGhpcy5tb0RhdGFMaXN0O1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5kb2N1bWVudEl0ZW1zLmZpbHRlcigoYykgPT4gYy5Jc1JlcXVpcmVkKTtcclxuICAgICAgICBsZXQgbWFuZGF0b3J5ID0gaXRlbXMubGVuZ3RoID4gMDtcclxuICAgICAgICBjb25zdCBtYW5kYXRvcnkyID0gaXRlbXNcclxuICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gbW9EYXRhTGlzdC5maW5kKChjKSA9PiBjW3RoaXMua2V5Q29sdW1uLk5hbWVdID09PSBpdGVtLkl0ZW1LZXkpKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtKVxyXG4gICAgICAgICAgICAuc29tZSgobW8pID0+IG1vW3RoaXMuZmlsZUNvbHVtbi5OYW1lXS5GaWxlcy5maWx0ZXIoKGMpID0+ICFjLklzRGVsZXRlZCkubGVuZ3RoID09PSAwKTtcclxuICAgICAgICBtYW5kYXRvcnkgPSBtYW5kYXRvcnkgJiYgbWFuZGF0b3J5MjtcclxuICAgICAgICB0aGlzLm1hbmRhdG9yeS5lbWl0KG1hbmRhdG9yeSk7XHJcbiAgICB9XHJcbiAgICBfbWFwRG9jdW1lbnRJdGVtKG1vRGF0YUxpc3Q6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+LCBkb2N1bWVudEl0ZW1zOiBBcnJheTxEb2N1bWVudEl0ZW0+KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qga2V5TmFtZSA9IHRoaXMua2V5Q29sdW1uLk5hbWU7XHJcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbywgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGRvY3VtZW50SXRlbSA9IGRvY3VtZW50SXRlbXMuZmluZCgoYykgPT4gYy5JdGVtS2V5ID09PSBtb1trZXlOYW1lXSk7IC8vIGZpbmQgc2V0dGluZyB0aGF0IG1hdGNoZXMgd2l0aCBtbyBieSBpdGVtS2V5XHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIG1vLiRkb2N1bWVudEl0ZW0gPSBkb2N1bWVudEl0ZW07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudEl0ZW0gPSBkb2N1bWVudEl0ZW1zLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IG1vRGF0YUxpc3QubWFwKChjKSA9PiBjW2tleU5hbWVdKS5pbmRleE9mKGl0ZW0uSXRlbUtleSkgPCAwXHJcbiAgICAgICAgICAgICAgICApOyAvLyBmaW5kIGEgc2V0dGluZyBoYXMgbm90IGhhdmUgJFJlbGF0ZWRNbyB5ZXRcclxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICBtb1trZXlOYW1lXSA9IGRvY3VtZW50SXRlbS5JdGVtS2V5O1xyXG4gICAgICAgICAgICAgICAgICAgIG1vLiRkb2N1bWVudEl0ZW0gPSBkb2N1bWVudEl0ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNby5lbWl0KG1vKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9pbml0Q29sdW1uRmllbGQoYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdLCB2aWV3U2V0dGluZzogRG9jdW1lbnRzU2V0dGluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGtleUNvbHVtbiA9IHRoaXMuX2ZpbmRDb2x1bW5CeURiTmFtZS50cmFuc2Zvcm0oYWxsQ29sdW1ucywgdmlld1NldHRpbmcuSXRlbUtleUZpZWxkKTtcclxuICAgICAgICBjb25zdCBmaWxlQ29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybShhbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5GaWxlRmllbGQpO1xyXG4gICAgICAgIGNvbnN0IGFjY2VwdGVkQ29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybShhbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5BY2NlcHRlZEZpZWxkKTtcclxuICAgICAgICBjb25zdCByZWplY3RlZFJlYXNvbkNvbHVtbiA9IHRoaXMuX2ZpbmRDb2x1bW5CeURiTmFtZS50cmFuc2Zvcm0oYWxsQ29sdW1ucywgdmlld1NldHRpbmcuUmVqZWN0ZWRSZWFzb25GaWVsZCk7XHJcbiAgICAgICAgY29uc3Qgc3RhdHVzQ29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybShhbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5TdGF0dXNGaWVsZCk7XHJcbiAgICAgICAgIWtleUNvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5JdGVtS2V5RmllbGQpO1xyXG4gICAgICAgICFmaWxlQ29sdW1uICYmIHRoaXMuX2NvbHVtbk5vdEV4aXN0c0luUmVwb3J0KHZpZXdTZXR0aW5nLkZpbGVGaWVsZCk7XHJcbiAgICAgICAgIXJlamVjdGVkUmVhc29uQ29sdW1uICYmIHRoaXMuX2NvbHVtbk5vdEV4aXN0c0luUmVwb3J0KHZpZXdTZXR0aW5nLlJlamVjdGVkUmVhc29uRmllbGQpO1xyXG4gICAgICAgICFhY2NlcHRlZENvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5BY2NlcHRlZEZpZWxkKTtcclxuICAgICAgICAhc3RhdHVzQ29sdW1uICYmIHRoaXMuX2NvbHVtbk5vdEV4aXN0c0luUmVwb3J0KHZpZXdTZXR0aW5nLlN0YXR1c0ZpZWxkKTtcclxuXHJcbiAgICAgICAga2V5Q29sdW1uICYmICh0aGlzLmtleUNvbHVtbiA9IGtleUNvbHVtbik7XHJcbiAgICAgICAgZmlsZUNvbHVtbiAmJiAodGhpcy5maWxlQ29sdW1uID0gZmlsZUNvbHVtbik7XHJcbiAgICAgICAgYWNjZXB0ZWRDb2x1bW4gJiYgKHRoaXMuYWNjZXB0ZWRDb2x1bW4gPSBhY2NlcHRlZENvbHVtbik7XHJcbiAgICAgICAgcmVqZWN0ZWRSZWFzb25Db2x1bW4gJiYgKHRoaXMucmVqZWN0ZWRSZWFzb25Db2x1bW4gPSByZWplY3RlZFJlYXNvbkNvbHVtbik7XHJcbiAgICAgICAgc3RhdHVzQ29sdW1uICYmICh0aGlzLnN0YXR1c0NvbHVtbiA9IHN0YXR1c0NvbHVtbik7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3N1YnNjcmliZU9uVXBsb2FkRmlsZShmaWxlQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyID0gbmV3IEZpbGVzVmFsaWRhdGlvbkhlbHBlcigwLCAwLCAwKTtcclxuICAgICAgICBpZiAodGhpcy5fdXBsb2FkU2VydmljZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVMaW5lYXJIZWxwZXIodGhpcy5fdXBsb2FkU2VydmljZSwgdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyLCBmaWxlQ29sdW1uLkZpZWxkRGVmSWQpO1xyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZGluZ1N0YXRlJCA9IHRoaXMuX3VwbG9hZFNlcnZpY2UudXBsb2FkaW5nU3RhdGUkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVXBsb2FkU2VydmljZSBub3QgcHJvdmlkZWQuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIubmV3RmlsZVVwbG9hZGVkJC5zdWJzY3JpYmUoKGZpbGUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbW8gPSB0aGlzLm1vRGF0YUxpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gdGhpcy5zZWxlY3RlZE1vLklkKTtcclxuICAgICAgICAgICAgaWYgKG1vKSB7XHJcbiAgICAgICAgICAgICAgICBtb1tmaWxlQ29sdW1uLk5hbWVdLkZpbGVzID0gWy4uLm1vW2ZpbGVDb2x1bW4uTmFtZV0uRmlsZXMsIGZpbGVdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW8obW8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZU1vKG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgbW8uJE5ld0lubGluZU1vID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmIChtby4kU3RhdGUgPT09ICdVbmNoYW5nZWQnKSB7XHJcbiAgICAgICAgICAgIG1vLiRTdGF0ZSA9ICdNb2RpZmllZCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRlTW8uZW1pdChtbyk7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tNYW5kYXRvcnkoKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfY3JlYXRlTGluZWFySGVscGVyKFxyXG4gICAgICAgIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgZmlsZXNWYWxpZGF0aW9uSGVscGVyOiBGaWxlc1ZhbGlkYXRpb25IZWxwZXIsXHJcbiAgICAgICAgZmllbGREZWZJZDogc3RyaW5nXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIgPSBuZXcgTGluZWFyTGlzdEhlbHBlcih1cGxvYWRTZXJ2aWNlLCBmaWxlc1ZhbGlkYXRpb25IZWxwZXIsIGZpZWxkRGVmSWQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF91cGxvYWRGaWxlKGZpbGVzOiBGaWxlW10sIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZXNWYWxpZGF0aW9uSGVscGVyID0gdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyO1xyXG4gICAgICAgIGZpbGVzVmFsaWRhdGlvbkhlbHBlci5tYXhGaWxlQ291bnQgPSArZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudDtcclxuICAgICAgICBmaWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZVNpemUgPSArZG9jdW1lbnRJdGVtLkVhY2hGaWxlU2l6ZTtcclxuICAgICAgICBmaWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4VG90YWxGaWxlU2l6ZSA9ICtkb2N1bWVudEl0ZW0uTWF4RmlsZVNpemU7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZFRvU2VydmVyKGZpbGVzLCBkb2N1bWVudEl0ZW0uVGl0bGUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydChjb2x1bW5DYXB0aW9uKTogdm9pZCB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW4gbm90IGZpbmQgJHtjb2x1bW5DYXB0aW9ufSBjb2x1bW4gaW4gcmVwb3J0LnBsZWFzZSBhZGQgaXQgdG8gcmVwb3J0IGNvbHVtbnMuYCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPCEtLSA8dWwgZmQtbGlzdCBbYnlsaW5lXT1cInRydWVcIiBmZENvbXBhY3QgW3NlbGVjdGlvbl09XCJmYWxzZVwiPiAtLT5cclxuPHRhYmxlIGZkLXRhYmxlIGFyaWEtbGFiZWw9XCJEZWZhdWx0XCIgW2FsbENlbGxzRm9jdXNhYmxlXT1cInRydWVcIiBbbm9Cb3JkZXJYXT1cInRydWVcIj5cclxuICAgIDx0aGVhZCBmZC10YWJsZS1oZWFkZXI+XHJcbiAgICAgICAgPHRyIGZkLXRhYmxlLXJvdz5cclxuICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGw+e3sgJ9i52qnYsycgfCBiYmJUcmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIm1pbi13aWR0aDogMTQwcHg7IHdpZHRoOiBhdXRvXCI+e3sgJ9mG2YjYuSDZhdiv2LHaqScgfCBiYmJUcmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIndpZHRoOiA5OSVcIj57eyAn2KfZhNi12KfZgiDZgdin24zZhCcgfCBiYmJUcmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbD48L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIndpZHRoOiA0MDBweDsgbWluLXdpZHRoOiA0MDBweDsgbWF4LXdpZHRoOiA0MDBweFwiPnt7ICfZiNi22LnbjNiqJyB8IGJiYlRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvdGhlYWQ+XHJcbiAgICA8dGJvZHkgZmQtdGFibGUtYm9keT5cclxuICAgICAgICBAZm9yIChtbyBvZiBtb0RhdGFMaXN0OyB0cmFjayBfdHJhY2tCeVJvdygkaW5kZXgsIG1vKSkgeyBAaWYgKG1vLiRkb2N1bWVudEl0ZW0pIHtcclxuICAgICAgICA8YmRjLWJhcnNhLWRvY3VtZW50LWxpc3QtaXRlbVxyXG4gICAgICAgICAgICBbZG9jdW1lbnRJdGVtXT1cIm1vLiRkb2N1bWVudEl0ZW1cIlxyXG4gICAgICAgICAgICBbYWNjZXB0ZWRdPVwibW9bYWNjZXB0ZWRDb2x1bW4uTmFtZV1cIlxyXG4gICAgICAgICAgICBbZmlsZXNdPVwibW9bZmlsZUNvbHVtbi5OYW1lXS5GaWxlc1wiXHJcbiAgICAgICAgICAgIFt1cGxvYWRpbmdTdGF0ZV09XCIodXBsb2FkaW5nU3RhdGUkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICBbcmVqZWN0ZWRSZWFzb25dPVwibW9bcmVqZWN0ZWRSZWFzb25Db2x1bW4uTmFtZV1cIlxyXG4gICAgICAgICAgICBbZmlsZURiTmFtZV09XCJmaWxlQ29sdW1uLk5hbWVcIlxyXG4gICAgICAgICAgICBbc3RhdHVzXT1cIittb1tzdGF0dXNDb2x1bW4uTmFtZV1cIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiFhY2Nlc3MuRWRpdFwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAocmVtb3ZlRmlsZSk9XCJvblJlbW92ZUZpbGUoJGV2ZW50LCBtbylcIlxyXG4gICAgICAgICAgICAoZmlsZVNlbGVjdGlvbkNoYW5nZSk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50LCBtby4kZG9jdW1lbnRJdGVtLCBtbylcIlxyXG4gICAgICAgICAgICAocmVqZWN0VGV4dENoYW5nZSk9XCJvblJlamVjdGVkVGV4dENoYW5nZSgkZXZlbnQsIG1vKVwiXHJcbiAgICAgICAgICAgIChzdGF0dXNDaGFuZ2VkKT1cIm9uU3RhdHVzQ2hhbmdlZCgkZXZlbnQsIG1vKVwiXHJcbiAgICAgICAgPjwvYmRjLWJhcnNhLWRvY3VtZW50LWxpc3QtaXRlbT5cclxuICAgICAgICB9IH1cclxuICAgICAgICA8IS0tIDwvdWw+IC0tPlxyXG4gICAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuIl19
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtZG9jdW1lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2JhcnNhLWRvY3VtZW50cy9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvYmFyc2EtZG9jdW1lbnRzL2JhcnNhLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBRXZCLFNBQVMsRUFJVCxRQUFRLEVBR1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNILHFCQUFxQixFQUNyQixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBRXZCLGFBQWEsRUFNaEIsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQVc5QixNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXlDO0lBWWxGLFlBQ2MsR0FBZSxFQUNmLElBQXVCLEVBQ3ZCLFVBQXFCLEVBQ3JCLG1CQUEyQyxFQUMzQyxlQUErQixFQUMvQixjQUE2QixFQUM3QixjQUE2QixFQUNqQixjQUE4QjtRQUVwRCxLQUFLLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQVR6RixRQUFHLEdBQUgsR0FBRyxDQUFZO1FBQ2YsU0FBSSxHQUFKLElBQUksQ0FBbUI7UUFDdkIsZUFBVSxHQUFWLFVBQVUsQ0FBVztRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUMvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUNqQixtQkFBYyxHQUFk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QUFDLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUNTLHdCQUF3QixDQUFDLGFBQWE7UUFDNUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsYUFBYSxvREFBb0QsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7K0dBN0tRLHVCQUF1QjttR0FBdkIsdUJBQXVCLDhDQUZyQixDQUFDLGFBQWEsQ0FBQyxzRUNqQzlCLDgxREFpQ0E7OzRGREVhLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGFBQWEsQ0FBQzs7MEJBc0JyQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgRmlsZXNWYWxpZGF0aW9uSGVscGVyLFxyXG4gICAgTGluZWFyTGlzdEhlbHBlcixcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBSZXBvcnRWaWV3QmFzZUNvbXBvbmVudCxcclxuICAgIFJlcG9ydFZpZXdDb2x1bW4sXHJcbiAgICBVcGxvYWRTZXJ2aWNlLFxyXG4gICAgRmlsZUF0dGFjaG1lbnRJbmZvLFxyXG4gICAgRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcclxuICAgIFBvcnRhbFNlcnZpY2UsXHJcbiAgICBVbHZNYWluU2VydmljZSxcclxuICAgIElVcGxvYWRpbmdTdGF0ZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEb2N1bWVudEl0ZW0sIERvY3VtZW50c1NldHRpbmcgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1iYXJzYS1kb2N1bWVudHMnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWRvY3VtZW50cy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1kb2N1bWVudHMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbVXBsb2FkU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhRG9jdW1lbnRzQ29tcG9uZW50IGV4dGVuZHMgUmVwb3J0Vmlld0Jhc2VDb21wb25lbnQ8RG9jdW1lbnRzU2V0dGluZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBrZXlDb2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XHJcbiAgICBmaWxlQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xyXG4gICAgc3RhdHVzQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uO1xyXG4gICAgcmVqZWN0ZWRSZWFzb25Db2x1bW46IFJlcG9ydFZpZXdDb2x1bW47XHJcbiAgICBhY2NlcHRlZENvbHVtbjogUmVwb3J0Vmlld0NvbHVtbjtcclxuICAgIHNlbGVjdGVkTW86IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICB1cGxvYWRpbmdTdGF0ZSQ6IE9ic2VydmFibGU8SVVwbG9hZGluZ1N0YXRlPjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcjogRmlsZXNWYWxpZGF0aW9uSGVscGVyO1xyXG4gICAgcHJvdGVjdGVkIF9saW5lYXJIZWxwZXI6IExpbmVhckxpc3RIZWxwZXI7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9lbDogRWxlbWVudFJlZixcclxuICAgICAgICBwcm90ZWN0ZWQgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9yZW5kZXJlcjI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcm90ZWN0ZWQgX2ZpbmRDb2x1bW5CeURiTmFtZTogRmluZENvbHVtbkJ5RGJOYW1lUGlwZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3Vsdk1haW5TZXJ2aWNlOiBVbHZNYWluU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBfdXBsb2FkU2VydmljZT86IFVwbG9hZFNlcnZpY2VcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9lbCwgX2NkciwgX3JlbmRlcmVyMiwgX2ZpbmRDb2x1bW5CeURiTmFtZSwgX3Vsdk1haW5TZXJ2aWNlLCBfcG9ydGFsU2VydmljZSwgX3VwbG9hZFNlcnZpY2UpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldCBkb2N1bWVudEl0ZW1zKCk6IEFycmF5PERvY3VtZW50SXRlbT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmN1c3RvbUZpZWxkSW5mbykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5jdXN0b21GaWVsZEluZm8uRG9jdW1lbnRJdGVtcy5Nb0RhdGFMaXN0IGFzIEFycmF5PERvY3VtZW50SXRlbT47XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMudmlld1NldHRpbmcuRmlsZXNTZXR0aW5nLkRvY3VtZW50SXRlbXMuTW9EYXRhTGlzdCBhcyBBcnJheTxEb2N1bWVudEl0ZW0+O1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgeyBtb0RhdGFMaXN0LCB2aWV3U2V0dGluZywgYWxsQ29sdW1ucyB9ID0gdGhpcztcclxuXHJcbiAgICAgICAgdGhpcy5faW5pdENvbHVtbkZpZWxkKGFsbENvbHVtbnMsIHZpZXdTZXR0aW5nKTtcclxuICAgICAgICB0aGlzLl9zdWJzY3JpYmVPblVwbG9hZEZpbGUodGhpcy5maWxlQ29sdW1uKTtcclxuICAgICAgICB0aGlzLl9tYXBEb2N1bWVudEl0ZW0obW9EYXRhTGlzdCwgdGhpcy5kb2N1bWVudEl0ZW1zKTtcclxuICAgICAgICB0aGlzLl9jaGVja01hbmRhdG9yeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uQ2hhbmdlcyhjaGFuZ2VzKTtcclxuICAgICAgICBjb25zdCB7IG1vRGF0YUxpc3QgfSA9IGNoYW5nZXM7XHJcbiAgICAgICAgaWYgKG1vRGF0YUxpc3QgJiYgIW1vRGF0YUxpc3QuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgaWYgKG1vRGF0YUxpc3QgJiYgIW1vRGF0YUxpc3QuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX21hcERvY3VtZW50SXRlbShtb0RhdGFMaXN0LmN1cnJlbnRWYWx1ZSwgdGhpcy5kb2N1bWVudEl0ZW1zKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuZG9jdW1lbnRJdGVtcy5sZW5ndGggLSB0aGlzLm1vRGF0YUxpc3QubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlTmV3TW8uZW1pdCgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSwgZG9jdW1lbnRJdGVtOiBEb2N1bWVudEl0ZW0sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE1vID0gbW87XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkRmlsZShmaWxlcywgZG9jdW1lbnRJdGVtKTtcclxuICAgIH1cclxuICAgIG9uUmVtb3ZlRmlsZShmaWxlOiBGaWxlQXR0YWNobWVudEluZm8sIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZURiTmFtZSA9IHRoaXMuZmlsZUNvbHVtbi5OYW1lO1xyXG4gICAgICAgIGxldCBmaWxlcyA9IG1vW2ZpbGVEYk5hbWVdLkZpbGVzO1xyXG4gICAgICAgIGlmIChmaWxlLklzTmV3KSB7XHJcbiAgICAgICAgICAgIGZpbGVzID0gZmlsZXMuZmlsdGVyKChjKSA9PiBjLklkICE9PSBmaWxlLklkKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBjb25zdCBleGlzdEZpbGUgPSBmaWxlcy5maW5kKChjKSA9PiBjLklkID09PSBmaWxlLklkKTtcclxuICAgICAgICAgICAgZXhpc3RGaWxlLklzRGVsZXRlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIG1vW2ZpbGVEYk5hbWVdLkZpbGVzID0gWy4uLmZpbGVzXTtcclxuICAgICAgICB0aGlzLl91cGRhdGVNbyhtbyk7XHJcbiAgICB9XHJcbiAgICBvblN0YXR1c0NoYW5nZWQoZTogeyB2YWx1ZTogbnVtYmVyOyByZWplY3RlZFRleHQ6IHN0cmluZyB9LCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIG1vW3RoaXMuc3RhdHVzQ29sdW1uLk5hbWVdID0gZS52YWx1ZTtcclxuICAgICAgICBtb1t0aGlzLnJlamVjdGVkUmVhc29uQ29sdW1uLk5hbWVdID0gZS5yZWplY3RlZFRleHQ7XHJcbiAgICAgICAgdGhpcy5fdXBkYXRlTW8obW8pO1xyXG4gICAgfVxyXG4gICAgb25SZWplY3RlZFRleHRDaGFuZ2UodGV4dDogc3RyaW5nLCBtbzogTWV0YW9iamVjdERhdGFNb2RlbCk6IHZvaWQge1xyXG4gICAgICAgIG1vW3RoaXMucmVqZWN0ZWRSZWFzb25Db2x1bW4uTmFtZV0gPSB0ZXh0O1xyXG4gICAgICAgIHRoaXMuX3VwZGF0ZU1vKG1vKTtcclxuICAgIH1cclxuICAgIF9jaGVja01hbmRhdG9yeSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBtb0RhdGFMaXN0ID0gdGhpcy5tb0RhdGFMaXN0O1xyXG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5kb2N1bWVudEl0ZW1zLmZpbHRlcigoYykgPT4gYy5Jc1JlcXVpcmVkKTtcclxuICAgICAgICBsZXQgbWFuZGF0b3J5ID0gaXRlbXMubGVuZ3RoID4gMDtcclxuICAgICAgICBjb25zdCBtYW5kYXRvcnkyID0gaXRlbXNcclxuICAgICAgICAgICAgLm1hcCgoaXRlbSkgPT4gbW9EYXRhTGlzdC5maW5kKChjKSA9PiBjW3RoaXMua2V5Q29sdW1uLk5hbWVdID09PSBpdGVtLkl0ZW1LZXkpKVxyXG4gICAgICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiBpdGVtKVxyXG4gICAgICAgICAgICAuc29tZSgobW8pID0+IG1vW3RoaXMuZmlsZUNvbHVtbi5OYW1lXS5GaWxlcy5maWx0ZXIoKGMpID0+ICFjLklzRGVsZXRlZCkubGVuZ3RoID09PSAwKTtcclxuICAgICAgICBtYW5kYXRvcnkgPSBtYW5kYXRvcnkgJiYgbWFuZGF0b3J5MjtcclxuICAgICAgICB0aGlzLm1hbmRhdG9yeS5lbWl0KG1hbmRhdG9yeSk7XHJcbiAgICB9XHJcbiAgICBfbWFwRG9jdW1lbnRJdGVtKG1vRGF0YUxpc3Q6IEFycmF5PE1ldGFvYmplY3REYXRhTW9kZWw+LCBkb2N1bWVudEl0ZW1zOiBBcnJheTxEb2N1bWVudEl0ZW0+KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3Qga2V5TmFtZSA9IHRoaXMua2V5Q29sdW1uLk5hbWU7XHJcbiAgICAgICAgbW9EYXRhTGlzdC5mb3JFYWNoKChtbywgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGRvY3VtZW50SXRlbSA9IGRvY3VtZW50SXRlbXMuZmluZCgoYykgPT4gYy5JdGVtS2V5ID09PSBtb1trZXlOYW1lXSk7IC8vIGZpbmQgc2V0dGluZyB0aGF0IG1hdGNoZXMgd2l0aCBtbyBieSBpdGVtS2V5XHJcbiAgICAgICAgICAgIGlmIChkb2N1bWVudEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgIG1vLiRkb2N1bWVudEl0ZW0gPSBkb2N1bWVudEl0ZW07XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBkb2N1bWVudEl0ZW0gPSBkb2N1bWVudEl0ZW1zLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IG1vRGF0YUxpc3QubWFwKChjKSA9PiBjW2tleU5hbWVdKS5pbmRleE9mKGl0ZW0uSXRlbUtleSkgPCAwXHJcbiAgICAgICAgICAgICAgICApOyAvLyBmaW5kIGEgc2V0dGluZyBoYXMgbm90IGhhdmUgJFJlbGF0ZWRNbyB5ZXRcclxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudEl0ZW0pIHtcclxuICAgICAgICAgICAgICAgICAgICBtb1trZXlOYW1lXSA9IGRvY3VtZW50SXRlbS5JdGVtS2V5O1xyXG4gICAgICAgICAgICAgICAgICAgIG1vLiRkb2N1bWVudEl0ZW0gPSBkb2N1bWVudEl0ZW07XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGVNby5lbWl0KG1vKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9pbml0Q29sdW1uRmllbGQoYWxsQ29sdW1uczogUmVwb3J0Vmlld0NvbHVtbltdLCB2aWV3U2V0dGluZzogRG9jdW1lbnRzU2V0dGluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGtleUNvbHVtbiA9IHRoaXMuX2ZpbmRDb2x1bW5CeURiTmFtZS50cmFuc2Zvcm0oYWxsQ29sdW1ucywgdmlld1NldHRpbmcuSXRlbUtleUZpZWxkKTtcclxuICAgICAgICBjb25zdCBmaWxlQ29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybShhbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5GaWxlRmllbGQpO1xyXG4gICAgICAgIGNvbnN0IGFjY2VwdGVkQ29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybShhbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5BY2NlcHRlZEZpZWxkKTtcclxuICAgICAgICBjb25zdCByZWplY3RlZFJlYXNvbkNvbHVtbiA9IHRoaXMuX2ZpbmRDb2x1bW5CeURiTmFtZS50cmFuc2Zvcm0oYWxsQ29sdW1ucywgdmlld1NldHRpbmcuUmVqZWN0ZWRSZWFzb25GaWVsZCk7XHJcbiAgICAgICAgY29uc3Qgc3RhdHVzQ29sdW1uID0gdGhpcy5fZmluZENvbHVtbkJ5RGJOYW1lLnRyYW5zZm9ybShhbGxDb2x1bW5zLCB2aWV3U2V0dGluZy5TdGF0dXNGaWVsZCk7XHJcbiAgICAgICAgIWtleUNvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5JdGVtS2V5RmllbGQpO1xyXG4gICAgICAgICFmaWxlQ29sdW1uICYmIHRoaXMuX2NvbHVtbk5vdEV4aXN0c0luUmVwb3J0KHZpZXdTZXR0aW5nLkZpbGVGaWVsZCk7XHJcbiAgICAgICAgIXJlamVjdGVkUmVhc29uQ29sdW1uICYmIHRoaXMuX2NvbHVtbk5vdEV4aXN0c0luUmVwb3J0KHZpZXdTZXR0aW5nLlJlamVjdGVkUmVhc29uRmllbGQpO1xyXG4gICAgICAgICFhY2NlcHRlZENvbHVtbiAmJiB0aGlzLl9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydCh2aWV3U2V0dGluZy5BY2NlcHRlZEZpZWxkKTtcclxuICAgICAgICAhc3RhdHVzQ29sdW1uICYmIHRoaXMuX2NvbHVtbk5vdEV4aXN0c0luUmVwb3J0KHZpZXdTZXR0aW5nLlN0YXR1c0ZpZWxkKTtcclxuXHJcbiAgICAgICAga2V5Q29sdW1uICYmICh0aGlzLmtleUNvbHVtbiA9IGtleUNvbHVtbik7XHJcbiAgICAgICAgZmlsZUNvbHVtbiAmJiAodGhpcy5maWxlQ29sdW1uID0gZmlsZUNvbHVtbik7XHJcbiAgICAgICAgYWNjZXB0ZWRDb2x1bW4gJiYgKHRoaXMuYWNjZXB0ZWRDb2x1bW4gPSBhY2NlcHRlZENvbHVtbik7XHJcbiAgICAgICAgcmVqZWN0ZWRSZWFzb25Db2x1bW4gJiYgKHRoaXMucmVqZWN0ZWRSZWFzb25Db2x1bW4gPSByZWplY3RlZFJlYXNvbkNvbHVtbik7XHJcbiAgICAgICAgc3RhdHVzQ29sdW1uICYmICh0aGlzLnN0YXR1c0NvbHVtbiA9IHN0YXR1c0NvbHVtbik7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3N1YnNjcmliZU9uVXBsb2FkRmlsZShmaWxlQ29sdW1uOiBSZXBvcnRWaWV3Q29sdW1uKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyID0gbmV3IEZpbGVzVmFsaWRhdGlvbkhlbHBlcigwLCAwLCAwKTtcclxuICAgICAgICBpZiAodGhpcy5fdXBsb2FkU2VydmljZSkge1xyXG4gICAgICAgICAgICB0aGlzLl9jcmVhdGVMaW5lYXJIZWxwZXIodGhpcy5fdXBsb2FkU2VydmljZSwgdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyLCBmaWxlQ29sdW1uLkZpZWxkRGVmSWQpO1xyXG4gICAgICAgICAgICB0aGlzLnVwbG9hZGluZ1N0YXRlJCA9IHRoaXMuX3VwbG9hZFNlcnZpY2UudXBsb2FkaW5nU3RhdGUkO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVXBsb2FkU2VydmljZSBub3QgcHJvdmlkZWQuJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIubmV3RmlsZVVwbG9hZGVkJC5zdWJzY3JpYmUoKGZpbGUpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgbW8gPSB0aGlzLm1vRGF0YUxpc3QuZmluZCgoYykgPT4gYy5JZCA9PT0gdGhpcy5zZWxlY3RlZE1vLklkKTtcclxuICAgICAgICAgICAgaWYgKG1vKSB7XHJcbiAgICAgICAgICAgICAgICBtb1tmaWxlQ29sdW1uLk5hbWVdLkZpbGVzID0gWy4uLm1vW2ZpbGVDb2x1bW4uTmFtZV0uRmlsZXMsIGZpbGVdO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlTW8obW8pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZU1vKG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsKTogdm9pZCB7XHJcbiAgICAgICAgbW8uJE5ld0lubGluZU1vID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmIChtby4kU3RhdGUgPT09ICdVbmNoYW5nZWQnKSB7XHJcbiAgICAgICAgICAgIG1vLiRTdGF0ZSA9ICdNb2RpZmllZCc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMudXBkYXRlTW8uZW1pdChtbyk7XHJcbiAgICAgICAgdGhpcy5fY2hlY2tNYW5kYXRvcnkoKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfY3JlYXRlTGluZWFySGVscGVyKFxyXG4gICAgICAgIHVwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgZmlsZXNWYWxpZGF0aW9uSGVscGVyOiBGaWxlc1ZhbGlkYXRpb25IZWxwZXIsXHJcbiAgICAgICAgZmllbGREZWZJZDogc3RyaW5nXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9saW5lYXJIZWxwZXIgPSBuZXcgTGluZWFyTGlzdEhlbHBlcih1cGxvYWRTZXJ2aWNlLCBmaWxlc1ZhbGlkYXRpb25IZWxwZXIsIGZpZWxkRGVmSWQpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF91cGxvYWRGaWxlKGZpbGVzOiBGaWxlW10sIGRvY3VtZW50SXRlbTogRG9jdW1lbnRJdGVtKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZXNWYWxpZGF0aW9uSGVscGVyID0gdGhpcy5fZmlsZXNWYWxpZGF0aW9uSGVscGVyO1xyXG4gICAgICAgIGZpbGVzVmFsaWRhdGlvbkhlbHBlci5tYXhGaWxlQ291bnQgPSArZG9jdW1lbnRJdGVtLk1heEZpbGVDb3VudDtcclxuICAgICAgICBmaWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZVNpemUgPSArZG9jdW1lbnRJdGVtLkVhY2hGaWxlU2l6ZTtcclxuICAgICAgICBmaWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4VG90YWxGaWxlU2l6ZSA9ICtkb2N1bWVudEl0ZW0uTWF4RmlsZVNpemU7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZFRvU2VydmVyKGZpbGVzLCBkb2N1bWVudEl0ZW0uVGl0bGUpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9jb2x1bW5Ob3RFeGlzdHNJblJlcG9ydChjb2x1bW5DYXB0aW9uKTogdm9pZCB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW4gbm90IGZpbmQgJHtjb2x1bW5DYXB0aW9ufSBjb2x1bW4gaW4gcmVwb3J0LnBsZWFzZSBhZGQgaXQgdG8gcmVwb3J0IGNvbHVtbnMuYCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPCEtLSA8dWwgZmQtbGlzdCBbYnlsaW5lXT1cInRydWVcIiBmZENvbXBhY3QgW3NlbGVjdGlvbl09XCJmYWxzZVwiPiAtLT5cclxuPHRhYmxlIGZkLXRhYmxlIGFyaWEtbGFiZWw9XCJEZWZhdWx0XCIgW2FsbENlbGxzRm9jdXNhYmxlXT1cInRydWVcIiBbbm9Cb3JkZXJYXT1cInRydWVcIj5cclxuICAgIDx0aGVhZCBmZC10YWJsZS1oZWFkZXI+XHJcbiAgICAgICAgPHRyIGZkLXRhYmxlLXJvdz5cclxuICAgICAgICAgICAgPHRoIGZkLXRhYmxlLWNlbGw+e3sgJ9i52qnYsycgfCBiYmJUcmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIm1pbi13aWR0aDogMTQwcHg7IHdpZHRoOiBhdXRvXCI+e3sgJ9mG2YjYuSDZhdiv2LHaqScgfCBiYmJUcmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIndpZHRoOiA5OSVcIj57eyAn2KfZhNi12KfZgiDZgdin24zZhCcgfCBiYmJUcmFuc2xhdGUgfX08L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbD48L3RoPlxyXG4gICAgICAgICAgICA8dGggZmQtdGFibGUtY2VsbCBzdHlsZT1cIndpZHRoOiA0MDBweDsgbWluLXdpZHRoOiA0MDBweDsgbWF4LXdpZHRoOiA0MDBweFwiPnt7ICfZiNi22LnbjNiqJyB8IGJiYlRyYW5zbGF0ZSB9fTwvdGg+XHJcbiAgICAgICAgPC90cj5cclxuICAgIDwvdGhlYWQ+XHJcbiAgICA8dGJvZHkgZmQtdGFibGUtYm9keT5cclxuICAgICAgICBAZm9yIChtbyBvZiBtb0RhdGFMaXN0OyB0cmFjayBfdHJhY2tCeVJvdygkaW5kZXgsIG1vKSkgeyBAaWYgKG1vLiRkb2N1bWVudEl0ZW0pIHtcclxuICAgICAgICA8YmRjLWJhcnNhLWRvY3VtZW50LWxpc3QtaXRlbVxyXG4gICAgICAgICAgICBbZG9jdW1lbnRJdGVtXT1cIm1vLiRkb2N1bWVudEl0ZW1cIlxyXG4gICAgICAgICAgICBbYWNjZXB0ZWRdPVwibW9bYWNjZXB0ZWRDb2x1bW4uTmFtZV1cIlxyXG4gICAgICAgICAgICBbZmlsZXNdPVwibW9bZmlsZUNvbHVtbi5OYW1lXS5GaWxlc1wiXHJcbiAgICAgICAgICAgIFt1cGxvYWRpbmdTdGF0ZV09XCIodXBsb2FkaW5nU3RhdGUkIHwgYXN5bmMpISFcIlxyXG4gICAgICAgICAgICBbcmVqZWN0ZWRSZWFzb25dPVwibW9bcmVqZWN0ZWRSZWFzb25Db2x1bW4uTmFtZV1cIlxyXG4gICAgICAgICAgICBbZmlsZURiTmFtZV09XCJmaWxlQ29sdW1uLk5hbWVcIlxyXG4gICAgICAgICAgICBbc3RhdHVzXT1cIittb1tzdGF0dXNDb2x1bW4uTmFtZV1cIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiFhY2Nlc3MuRWRpdFwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICAocmVtb3ZlRmlsZSk9XCJvblJlbW92ZUZpbGUoJGV2ZW50LCBtbylcIlxyXG4gICAgICAgICAgICAoZmlsZVNlbGVjdGlvbkNoYW5nZSk9XCJvbkZpbGVTZWxlY3Rpb24oJGV2ZW50LCBtby4kZG9jdW1lbnRJdGVtLCBtbylcIlxyXG4gICAgICAgICAgICAocmVqZWN0VGV4dENoYW5nZSk9XCJvblJlamVjdGVkVGV4dENoYW5nZSgkZXZlbnQsIG1vKVwiXHJcbiAgICAgICAgICAgIChzdGF0dXNDaGFuZ2VkKT1cIm9uU3RhdHVzQ2hhbmdlZCgkZXZlbnQsIG1vKVwiXHJcbiAgICAgICAgPjwvYmRjLWJhcnNhLWRvY3VtZW50LWxpc3QtaXRlbT5cclxuICAgICAgICB9IH1cclxuICAgICAgICA8IS0tIDwvdWw+IC0tPlxyXG4gICAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuIl19