gamma-app-controller 1.0.1 → 1.0.3

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 (27) hide show
  1. package/esm2020/lib/application-controller/application-content.service.mjs +107 -68
  2. package/esm2020/lib/application-controller/application-controller.module.mjs +11 -2
  3. package/esm2020/lib/application-controller/application-dataset-call.service.mjs +3 -6
  4. package/esm2020/lib/application-controller/application-view-components/application-views/application-views.component.mjs +70 -5
  5. package/esm2020/lib/application-controller/environment.mjs +3 -26
  6. package/esm2020/lib/application-controller/page-controller/page-config/page-config.component.mjs +8 -24
  7. package/esm2020/lib/application-controller/shared/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.mjs +9 -11
  8. package/esm2020/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.mjs +11 -13
  9. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.mjs +19 -16
  10. package/esm2020/lib/application-controller/shared/advanced-component/gamma-advance-operator-table/gamma-advance-operator-table.component.mjs +6 -1
  11. package/esm2020/lib/application-controller/shared/advanced-component/gamma-table-with-percentage/gamma-table-with-percentage.component.mjs +3 -3
  12. package/esm2020/lib/application-controller/shared/gamam-widget/gamam-widget.component.mjs +8 -10
  13. package/esm2020/lib/application-controller/shared/gamma-bread-crumbs/bread-crumbs.component.mjs +1 -3
  14. package/fesm2015/gamma-app-controller.mjs +238 -276
  15. package/fesm2015/gamma-app-controller.mjs.map +1 -1
  16. package/fesm2020/gamma-app-controller.mjs +236 -276
  17. package/fesm2020/gamma-app-controller.mjs.map +1 -1
  18. package/lib/application-controller/application-content.service.d.ts +7 -1
  19. package/lib/application-controller/application-view-components/application-views/application-views.component.d.ts +8 -0
  20. package/lib/application-controller/environment.d.ts +2 -25
  21. package/lib/application-controller/shared/advanced-component/advance-widget-header-filter/advance-widget-header-filter.component.d.ts +1 -3
  22. package/lib/application-controller/shared/advanced-component/app-advance-header/app-header.component.d.ts +1 -3
  23. package/lib/application-controller/shared/advanced-component/gamma-advance-chart/gamma-advance-chart.component.d.ts +1 -3
  24. package/lib/application-controller/shared/gamam-widget/gamam-widget.component.d.ts +1 -3
  25. package/package.json +1 -1
  26. package/esm2020/lib/application-controller/shared/api.service.mjs +0 -117
  27. package/lib/application-controller/shared/api.service.d.ts +0 -26
@@ -44,6 +44,8 @@ import { GeoMapComponent } from './support-components/geo-map/geo-map.component'
44
44
  import { LoadingModule } from './shared/loading/loadingModule';
45
45
  import { GoogleGeoMapComponent } from './shared/advanced-component/google-geo-map/google-geo-map.component';
46
46
  import { GammaTableClumnBarChartComponent } from './shared/advanced-component/gamma-table-clumn-bar-chart/gamma-table-clumn-bar-chart.component';
47
+ import { ApplicationContentService } from './application-content.service';
48
+ import { ApplicationDatssetsCall } from './application-dataset-call.service';
47
49
  import * as i0 from "@angular/core";
48
50
  import * as i1 from "@angular/router";
49
51
  const appRoutes = [
@@ -176,7 +178,10 @@ PackageApplicationControllerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion
176
178
  SafeHtmlPipe,
177
179
  GoogleGeoMapComponent,
178
180
  GammaTableClumnBarChartComponent] });
179
- PackageApplicationControllerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: PackageApplicationControllerModule, imports: [CommonModule,
181
+ PackageApplicationControllerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: PackageApplicationControllerModule, providers: [
182
+ ApplicationContentService,
183
+ ApplicationDatssetsCall
184
+ ], imports: [CommonModule,
180
185
  RouterModule.forChild(appRoutes),
181
186
  DevExtremeModule,
182
187
  DxButtonModule,
@@ -318,7 +323,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImpor
318
323
  SafeHtmlPipe,
319
324
  GoogleGeoMapComponent,
320
325
  GammaTableClumnBarChartComponent
326
+ ],
327
+ providers: [
328
+ ApplicationContentService,
329
+ ApplicationDatssetsCall
321
330
  ]
322
331
  }]
323
332
  }] });
324
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFVLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBRW5CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0s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cUJBRWpDO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFJvdXRlciwgUm91dGVyTW9kdWxlLCBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtcbiAgRGV2RXh0cmVtZU1vZHVsZSxcbiAgRHhBY2NvcmRpb25Nb2R1bGUsXG4gIER4QnV0dG9uTW9kdWxlLFxuICBEeENoZWNrQm94TW9kdWxlLFxuICBEeERhdGFHcmlkTW9kdWxlLFxuICBEeERyb3BEb3duQm94TW9kdWxlLFxuICBEeEZvcm1Nb2R1bGUsXG4gIER4SHRtbEVkaXRvck1vZHVsZSxcbiAgRHhOdW1iZXJCb3hNb2R1bGUsXG4gIER4UG9wdXBNb2R1bGUsXG4gIER4U2VsZWN0Qm94TW9kdWxlLFxuICBEeFRhZ0JveE1vZHVsZSxcbiAgRHhUZXh0Qm94TW9kdWxlLFxuICBEeFRyZWVWaWV3TW9kdWxlLFxuICBEeEJ1bGxldE1vZHVsZSxcbiAgRHhDaGFydE1vZHVsZSxcbiAgRHhEYXRlQm94TW9kdWxlLFxuICBEeExvYWRQYW5lbE1vZHVsZSxcbiAgRHhMb29rdXBNb2R1bGUsXG4gIER4UGl2b3RHcmlkTW9kdWxlLFxuICBEeFRlbXBsYXRlTW9kdWxlLFxuICBEeFRleHRBcmVhTW9kdWxlLFxuICBEeFZhbGlkYXRpb25TdW1tYXJ5TW9kdWxlLFxuICBEeFZhbGlkYXRvck1vZHVsZSxcbiAgRHhDYWxlbmRhck1vZHVsZSxcbiAgRHhUb29sdGlwTW9kdWxlLFxuICBEeENvbnRleHRNZW51TW9kdWxlLFxuICBEeExvYWRJbmRpY2F0b3JNb2R1bGUsXG4gIER4U2Nyb2xsVmlld01vZHVsZVxuXG59IGZyb20gXCJkZXZleHRyZW1lLWFuZ3VsYXJcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuLy8gaW1wb3J0IHsgQXBwVmlld0Zyb21LcGlDb21wb25lbnQgfSBmcm9tICcuL2FwcC12aWV3LWZyb20ta3BpL2FwcC12aWV3LWZyb20ta3BpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZmlsdGVyL2FwcGxpY2F0aW9uLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25EYXRhc2V0Q29tcG9uZW50XG59IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvYXBwbGljYXRpb24tZGF0YXNldC9hcHBsaWNhdGlvbi1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblZpZXdzQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi12aWV3LWNvbXBvbmVudHMvYXBwbGljYXRpb24tdmlld3MvYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFzZXRNb25nb0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvZGF0YXNldC1tb25nby9kYXRhc2V0LW1vbmdvLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBEYXRhc2V0UXVlcnlCdWxkZXJDb21wb25lbnRcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9kYXRhc2V0LXF1ZXJ5LWJ1bGRlci9kYXRhc2V0LXF1ZXJ5LWJ1bGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YXNldFJlc3RBcGlDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2RhdGFzZXQtcmVzdC1hcGkvZGF0YXNldC1yZXN0LWFwaS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3JlYXRlQ29tcFZpZXdDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9jcmVhdGUtY29tcC12aWV3L2NyZWF0ZS1jb21wLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc3VwcG9ydC1jb21wb25lbnRzL2Rhc2gtY2hhcnQvZGFzaC1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaFRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC10YWJsZS9kYXNoLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdlQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb25maWcvcGFnZS1jb25maWcuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb250cm9sZXJDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIvcGFnZS1jb250cm9sbGVyLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IER5bmFtaWNSb3V0ZVNlcnZpY2UgfSBmcm9tICcuL3BhZ2UtdGVtcGxhdGVzL2R5bmFtaWMtcm91dGUtc2VydmljZSc7XG5cblxuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpdmlkZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaXZpZGVyJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gJy4vc2hhcmVkL3NhZmVIdG1sUGlwZSc7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBDcmVhdGVEYXRhc2V0SnNvbkNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQtanNvbi9jcmVhdGUtZGF0YXNldC1qc29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVEYXRhc2V0U3FsQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvY3JlYXRlLWRhdGFzZXQtc3FsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTcWxQaXBlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1zcWwvc3FsRm9ybWF0dGVyJztcbmltcG9ydCB7IENyZWF0ZURhdGFzZXRDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0L2NyZWF0ZS1kYXRhc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDZHJDb25maWdDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtdGVtcGxhdGVzL2Nkci1jb25maWcvY2RyLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWR2YW5jZVdpZGdldEhlYWRlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hZHZhbmNlLXdpZGdldC1oZWFkZXItZmlsdGVyL2FkdmFuY2Utd2lkZ2V0LWhlYWRlci1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcEFkdmFuY2VIZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvYXBwLWFkdmFuY2UtaGVhZGVyL2FwcC1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW0tc2luZ2xlLW51bWJlci1jYXJkL2dhbW0tc2luZ2xlLW51bWJlci1jYXJkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUFkdmFuY2VDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1hZHZhbmNlLWNoYXJ0L2dhbW1hLWFkdmFuY2UtY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtYWR2YW5jZS1vcGVyYXRvci10YWJsZS9nYW1tYS1hZHZhbmNlLW9wZXJhdG9yLXRhYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBjb250ZW50U2FmZUh0bWwgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlL2NvbnRlbnRTYWZlSHRtbCc7XG5pbXBvcnQgeyBHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlL2dhbW1hLXRhYmxlLXdpdGgtcGVyY2VudGFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFUb2RheVByZXZpb3VzQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRvZGF5LXByZXZpb3VzL2dhbW1hLXRvZGF5LXByZXZpb3VzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FwcC10aXRsZS9hcHAtdGl0bGUuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbWFtV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2FtYW0td2lkZ2V0L2dhbWFtLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2FtbWEtYWR2YW5jZS1maWx0ZXIvZ2FtbWEtYWR2YW5jZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEJyZWFkQ3J1bWJzQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvZ2FtbWEtYnJlYWQtY3J1bWJzL2JyZWFkLWNydW1icy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGFibGVXaXRoQmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvdGFibGUtd2l0aC1iYXIvdGFibGUtd2l0aC1iYXIuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbkhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uLWhlYWRlci9jb21tb24taGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHZW9NYXBDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9nZW8tbWFwL2dlby1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRpbmdNb2R1bGUgfSBmcm9tICcuL3NoYXJlZC9sb2FkaW5nL2xvYWRpbmdNb2R1bGUnO1xuaW1wb3J0IHsgR29vZ2xlR2VvTWFwQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dvb2dsZS1nZW8tbWFwL2dvb2dsZS1nZW8tbWFwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYVRhYmxlQ2x1bW5CYXJDaGFydENvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQvZ2FtbWEtdGFibGUtY2x1bW4tYmFyLWNoYXJ0LmNvbXBvbmVudCc7XG5cbmNvbnN0IGFwcFJvdXRlczogUm91dGVzID0gW1xuICB7XG4gICAgcGF0aDogJycsXG4gICAgcmVkaXJlY3RUbzogJ2FwcGxpY2F0aW9uRGF0YXNldCcsXG4gICAgcGF0aE1hdGNoOiAnZnVsbCdcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkRhdGFzZXQnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25EYXRhc2V0Q29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2FwcGxpY2F0aW9uVmlld3MnLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25WaWV3c0NvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkZpbHRlcicsXG4gICAgY29tcG9uZW50OiBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvbkRhc2hib2FyZCcsXG4gICAgY29tcG9uZW50OiBQYWdlQ29udHJvbGVyQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ3BhZ2VDb25maWdDb250cm9sbGVyJyxcbiAgICBjb21wb25lbnQ6IFBhZ2VDb25maWdDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXRhc2V0L2RhdGFzZXRFZGl0b3InLFxuICAgIGNvbXBvbmVudDogQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvblZpZXdzL3ZpZXdFZGl0b3InLFxuICAgIGNvbXBvbmVudDogQ3JlYXRlQ29tcFZpZXdDb21wb25lbnQsXG4gIH1cbl07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFwcGxpY2F0aW9uRGF0YXNldENvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvblZpZXdzQ29tcG9uZW50LFxuICAgIERhdGFzZXRNb25nb0NvbXBvbmVudCxcbiAgICBEYXRhc2V0UXVlcnlCdWxkZXJDb21wb25lbnQsXG4gICAgRGF0YXNldFJlc3RBcGlDb21wb25lbnQsXG4gICAgR2VvTWFwQ29tcG9uZW50LFxuICAgIC8vIEFwcFZpZXdGcm9tS3BpQ29tcG9uZW50LFxuICAgIENyZWF0ZUNvbXBWaWV3Q29tcG9uZW50LFxuICAgIERhc2hDaGFydENvbXBvbmVudCxcbiAgICBEYXNoVGFibGVDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gICAgUGFnZUNvbmZpZ0NvbXBvbmVudCxcbiAgICBQYWdlQ29udHJvbGVyQ29tcG9uZW50LFxuICAgIENkckNvbmZpZ0NvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0Q29tcG9uZW50LFxuICAgIFRhYmxlV2l0aEJhckNvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0U3FsQ29tcG9uZW50LFxuICAgIENyZWF0ZURhdGFzZXRKc29uQ29tcG9uZW50LFxuICAgIEFwcFRpdGxlQ29tcG9uZW50LFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBHYW1hbVdpZGdldENvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VGaWx0ZXJDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlQ2hhcnRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlT3BlcmF0b3JUYWJsZUNvbXBvbmVudCxcbiAgICBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50LFxuICAgIEdhbW1hVG9kYXlQcmV2aW91c0NvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnQsXG4gICAgY29udGVudFNhZmVIdG1sLFxuICAgIEdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50LFxuICAgIEFkdmFuY2VXaWRnZXRIZWFkZXJGaWx0ZXJDb21wb25lbnQsXG4gICAgQnJlYWRDcnVtYnNDb21wb25lbnQsXG4gICAgU3FsUGlwZSxcbiAgICBTYWZlSHRtbFBpcGUsXG4gICAgQ29tbW9uSGVhZGVyQ29tcG9uZW50LFxuICAgIEdvb2dsZUdlb01hcENvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlQ2x1bW5CYXJDaGFydENvbXBvbmVudFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChhcHBSb3V0ZXMpLFxuXG4gICAgRGV2RXh0cmVtZU1vZHVsZSxcbiAgICBEeEJ1dHRvbk1vZHVsZSxcbiAgICBEeENoZWNrQm94TW9kdWxlLFxuICAgIER4TnVtYmVyQm94TW9kdWxlLFxuICAgIER4RGF0YUdyaWRNb2R1bGUsXG4gICAgRHhEcm9wRG93bkJveE1vZHVsZSxcbiAgICBEeFRyZWVWaWV3TW9kdWxlLFxuICAgIER4U2Nyb2xsVmlld01vZHVsZSxcbiAgICBEeEZvcm1Nb2R1bGUsXG4gICAgRHhBY2NvcmRpb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgRHhUYWdCb3hNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIER4SHRtbEVkaXRvck1vZHVsZSxcbiAgICBEeEJ1bGxldE1vZHVsZSxcbiAgICBEeENoYXJ0TW9kdWxlLFxuICAgIER4RGF0ZUJveE1vZHVsZSxcbiAgICBEeExvYWRQYW5lbE1vZHVsZSxcbiAgICBEeExvb2t1cE1vZHVsZSxcbiAgICBEeFBpdm90R3JpZE1vZHVsZSxcbiAgICBEeFRlbXBsYXRlTW9kdWxlLFxuICAgIER4VGV4dEFyZWFNb2R1bGUsXG4gICAgRHhWYWxpZGF0aW9uU3VtbWFyeU1vZHVsZSxcbiAgICBEeFZhbGlkYXRvck1vZHVsZSxcbiAgICBEeENhbGVuZGFyTW9kdWxlLFxuICAgIER4VG9vbHRpcE1vZHVsZSxcbiAgICBEeENvbnRleHRNZW51TW9kdWxlLFxuICAgIER4TG9hZEluZGljYXRvck1vZHVsZSxcbiAgICAvLyBTdHJ1Y3R1cmVLcGlNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBEeFBvcHVwTW9kdWxlLCBEeFNlbGVjdEJveE1vZHVsZSwgRHhUZXh0Qm94TW9kdWxlLCBEeFRyZWVWaWV3TW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXREaXZpZGVyTW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBMb2FkaW5nTW9kdWxlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRGFzaENoYXJ0Q29tcG9uZW50LFxuICAgIERhc2hUYWJsZUNvbXBvbmVudCxcbiAgICBBcHBsaWNhdGlvbkZpbHRlckNvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0Q29tcG9uZW50LFxuICAgIEFwcFRpdGxlQ29tcG9uZW50LFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBHYW1hbVdpZGdldENvbXBvbmVudCxcbiAgICBHYW1tYUFkdmFuY2VGaWx0ZXJDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlQ2hhcnRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlT3BlcmF0b3JUYWJsZUNvbXBvbmVudCxcbiAgICBBcHBBZHZhbmNlSGVhZGVyQ29tcG9uZW50LFxuICAgIEdhbW1hVG9kYXlQcmV2aW91c0NvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnQsXG4gICAgY29udGVudFNhZmVIdG1sLFxuICAgIEdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50LFxuICAgIEFkdmFuY2VXaWRnZXRIZWFkZXJGaWx0ZXJDb21wb25lbnQsXG4gICAgQnJlYWRDcnVtYnNDb21wb25lbnQsXG4gICAgQ29tbW9uSGVhZGVyQ29tcG9uZW50LFxuICAgIEdlb01hcENvbXBvbmVudCxcbiAgICBTYWZlSHRtbFBpcGUsXG4gICAgR29vZ2xlR2VvTWFwQ29tcG9uZW50LFxuICAgIEdhbW1hVGFibGVDbHVtbkJhckNoYXJ0Q29tcG9uZW50XG5cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQYWNrYWdlQXBwbGljYXRpb25Db250cm9sbGVyTW9kdWxlIHtcblxufVxuIl19
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tY29udHJvbGxlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFVLFlBQVksRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLGNBQWMsRUFDZCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxhQUFhLEVBQ2IsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixjQUFjLEVBQ2QsaUJBQWlCLEVBQ2pCLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIseUJBQXlCLEVBQ3pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsa0JBQWtCLEVBRW5CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0s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QixpQ0FBaUM7d0JBQ2pDLGVBQWU7d0JBQ2YsNkJBQTZCO3dCQUM3QixrQ0FBa0M7d0JBQ2xDLG9CQUFvQjt3QkFDcEIscUJBQXFCO3dCQUNyQixlQUFlO3dCQUNmLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixnQ0FBZ0M7cUJBRWpDO29CQUNELFNBQVMsRUFBRTt3QkFDVCx5QkFBeUI7d0JBQ3pCLHVCQUF1QjtxQkFDeEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgUm91dGVyLCBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICBEZXZFeHRyZW1lTW9kdWxlLFxuICBEeEFjY29yZGlvbk1vZHVsZSxcbiAgRHhCdXR0b25Nb2R1bGUsXG4gIER4Q2hlY2tCb3hNb2R1bGUsXG4gIER4RGF0YUdyaWRNb2R1bGUsXG4gIER4RHJvcERvd25Cb3hNb2R1bGUsXG4gIER4Rm9ybU1vZHVsZSxcbiAgRHhIdG1sRWRpdG9yTW9kdWxlLFxuICBEeE51bWJlckJveE1vZHVsZSxcbiAgRHhQb3B1cE1vZHVsZSxcbiAgRHhTZWxlY3RCb3hNb2R1bGUsXG4gIER4VGFnQm94TW9kdWxlLFxuICBEeFRleHRCb3hNb2R1bGUsXG4gIER4VHJlZVZpZXdNb2R1bGUsXG4gIER4QnVsbGV0TW9kdWxlLFxuICBEeENoYXJ0TW9kdWxlLFxuICBEeERhdGVCb3hNb2R1bGUsXG4gIER4TG9hZFBhbmVsTW9kdWxlLFxuICBEeExvb2t1cE1vZHVsZSxcbiAgRHhQaXZvdEdyaWRNb2R1bGUsXG4gIER4VGVtcGxhdGVNb2R1bGUsXG4gIER4VGV4dEFyZWFNb2R1bGUsXG4gIER4VmFsaWRhdGlvblN1bW1hcnlNb2R1bGUsXG4gIER4VmFsaWRhdG9yTW9kdWxlLFxuICBEeENhbGVuZGFyTW9kdWxlLFxuICBEeFRvb2x0aXBNb2R1bGUsXG4gIER4Q29udGV4dE1lbnVNb2R1bGUsXG4gIER4TG9hZEluZGljYXRvck1vZHVsZSxcbiAgRHhTY3JvbGxWaWV3TW9kdWxlXG5cbn0gZnJvbSBcImRldmV4dHJlbWUtYW5ndWxhclwiO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG4vLyBpbXBvcnQgeyBBcHBWaWV3RnJvbUtwaUNvbXBvbmVudCB9IGZyb20gJy4vYXBwLXZpZXctZnJvbS1rcGkvYXBwLXZpZXctZnJvbS1rcGkuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1maWx0ZXIvYXBwbGljYXRpb24tZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkRhdGFzZXRDb21wb25lbnRcbn0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9hcHBsaWNhdGlvbi1kYXRhc2V0L2FwcGxpY2F0aW9uLWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9hcHBsaWNhdGlvbi12aWV3cy9hcHBsaWNhdGlvbi12aWV3cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YXNldE1vbmdvQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9kYXRhc2V0LW1vbmdvL2RhdGFzZXQtbW9uZ28uY29tcG9uZW50JztcbmltcG9ydCB7XG4gIERhdGFzZXRRdWVyeUJ1bGRlckNvbXBvbmVudFxufSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2RhdGFzZXQtcXVlcnktYnVsZGVyL2RhdGFzZXQtcXVlcnktYnVsZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRhc2V0UmVzdEFwaUNvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvZGF0YXNldC1yZXN0LWFwaS9kYXRhc2V0LXJlc3QtYXBpLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVDb21wVmlld0NvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tdmlldy1jb21wb25lbnRzL2NyZWF0ZS1jb21wLXZpZXcvY3JlYXRlLWNvbXAtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGFzaENoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9zdXBwb3J0LWNvbXBvbmVudHMvZGFzaC1jaGFydC9kYXNoLWNoYXJ0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXNoVGFibGVDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy9kYXNoLXRhYmxlL2Rhc2gtdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IFBhZ2VDb25maWdDb21wb25lbnQgfSBmcm9tICcuL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbmZpZy9wYWdlLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZUNvbnRyb2xlckNvbXBvbmVudCB9IGZyb20gJy4vcGFnZS1jb250cm9sbGVyL3BhZ2UtY29udHJvbGxlci9wYWdlLWNvbnRyb2xsZXIuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRHluYW1pY1JvdXRlU2VydmljZSB9IGZyb20gJy4vcGFnZS10ZW1wbGF0ZXMvZHluYW1pYy1yb3V0ZS1zZXJ2aWNlJztcblxuXG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGl2aWRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpdmlkZXInO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSAnLi9zaGFyZWQvc2FmZUh0bWxQaXBlJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IENyZWF0ZURhdGFzZXRKc29uQ29tcG9uZW50IH0gZnJvbSAnLi9hcHBsaWNhdGlvbi1kYXRhc2V0LWNvbXBvbmVudC9jcmVhdGUtZGF0YXNldC1qc29uL2NyZWF0ZS1kYXRhc2V0LWpzb24uY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZURhdGFzZXRTcWxDb21wb25lbnQgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LXNxbC9jcmVhdGUtZGF0YXNldC1zcWwuY29tcG9uZW50JztcbmltcG9ydCB7IFNxbFBpcGUgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWRhdGFzZXQtY29tcG9uZW50L2NyZWF0ZS1kYXRhc2V0LXNxbC9zcWxGb3JtYXR0ZXInO1xuaW1wb3J0IHsgQ3JlYXRlRGF0YXNldENvbXBvbmVudCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jb21wb25lbnQvY3JlYXRlLWRhdGFzZXQvY3JlYXRlLWRhdGFzZXQuY29tcG9uZW50JztcbmltcG9ydCB7IENkckNvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4vcGFnZS10ZW1wbGF0ZXMvY2RyLWNvbmZpZy9jZHItY29uZmlnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBZHZhbmNlV2lkZ2V0SGVhZGVyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2FkdmFuY2Utd2lkZ2V0LWhlYWRlci1maWx0ZXIvYWR2YW5jZS13aWRnZXQtaGVhZGVyLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9hcHAtYWR2YW5jZS1oZWFkZXIvYXBwLWhlYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbVNpbmdsZU51bWJlckNhcmRDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQvZ2FtbS1zaW5nbGUtbnVtYmVyLWNhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hQWR2YW5jZUNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLWFkdmFuY2UtY2hhcnQvZ2FtbWEtYWR2YW5jZS1jaGFydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtbWFBZHZhbmNlT3BlcmF0b3JUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS1hZHZhbmNlLW9wZXJhdG9yLXRhYmxlL2dhbW1hLWFkdmFuY2Utb3BlcmF0b3ItdGFibGUuY29tcG9uZW50JztcbmltcG9ydCB7IGNvbnRlbnRTYWZlSHRtbCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UvY29udGVudFNhZmVIdG1sJztcbmltcG9ydCB7IEdhbW1hVGFibGVXaXRoUGVyY2VudGFnZUNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL2FkdmFuY2VkLWNvbXBvbmVudC9nYW1tYS10YWJsZS13aXRoLXBlcmNlbnRhZ2UvZ2FtbWEtdGFibGUtd2l0aC1wZXJjZW50YWdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ2FtbWEtdG9kYXktcHJldmlvdXMvZ2FtbWEtdG9kYXktcHJldmlvdXMuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYXBwLXRpdGxlL2FwcC10aXRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgR2FtYW1XaWRnZXRDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9nYW1hbS13aWRnZXQvZ2FtYW0td2lkZ2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHYW1tYUFkdmFuY2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9nYW1tYS1hZHZhbmNlLWZpbHRlci9nYW1tYS1hZHZhbmNlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnJlYWRDcnVtYnNDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9nYW1tYS1icmVhZC1jcnVtYnMvYnJlYWQtY3J1bWJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUYWJsZVdpdGhCYXJDb21wb25lbnQgfSBmcm9tICcuL3N1cHBvcnQtY29tcG9uZW50cy90YWJsZS13aXRoLWJhci90YWJsZS13aXRoLWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29tbW9uSGVhZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24taGVhZGVyL2NvbW1vbi1oZWFkZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEdlb01hcENvbXBvbmVudCB9IGZyb20gJy4vc3VwcG9ydC1jb21wb25lbnRzL2dlby1tYXAvZ2VvLW1hcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGluZ01vZHVsZSB9IGZyb20gJy4vc2hhcmVkL2xvYWRpbmcvbG9hZGluZ01vZHVsZSc7XG5pbXBvcnQgeyBHb29nbGVHZW9NYXBDb21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9hZHZhbmNlZC1jb21wb25lbnQvZ29vZ2xlLWdlby1tYXAvZ29vZ2xlLWdlby1tYXAuY29tcG9uZW50JztcbmltcG9ydCB7IEdhbW1hVGFibGVDbHVtbkJhckNoYXJ0Q29tcG9uZW50IH0gZnJvbSAnLi9zaGFyZWQvYWR2YW5jZWQtY29tcG9uZW50L2dhbW1hLXRhYmxlLWNsdW1uLWJhci1jaGFydC9nYW1tYS10YWJsZS1jbHVtbi1iYXItY2hhcnQuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkRhdHNzZXRzQ2FsbCB9IGZyb20gJy4vYXBwbGljYXRpb24tZGF0YXNldC1jYWxsLnNlcnZpY2UnO1xuXG5jb25zdCBhcHBSb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICcnLFxuICAgIHJlZGlyZWN0VG86ICdhcHBsaWNhdGlvbkRhdGFzZXQnLFxuICAgIHBhdGhNYXRjaDogJ2Z1bGwnXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXRhc2V0JyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uRGF0YXNldENvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdhcHBsaWNhdGlvblZpZXdzJyxcbiAgICBjb21wb25lbnQ6IEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25GaWx0ZXInLFxuICAgIGNvbXBvbmVudDogQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25EYXNoYm9hcmQnLFxuICAgIGNvbXBvbmVudDogUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgfSxcbiAge1xuICAgIHBhdGg6ICdwYWdlQ29uZmlnQ29udHJvbGxlcicsXG4gICAgY29tcG9uZW50OiBQYWdlQ29uZmlnQ29tcG9uZW50LFxuICB9LFxuICB7XG4gICAgcGF0aDogJ2FwcGxpY2F0aW9uRGF0YXNldC9kYXRhc2V0RWRpdG9yJyxcbiAgICBjb21wb25lbnQ6IENyZWF0ZURhdGFzZXRDb21wb25lbnQsXG4gIH0sXG4gIHtcbiAgICBwYXRoOiAnYXBwbGljYXRpb25WaWV3cy92aWV3RWRpdG9yJyxcbiAgICBjb21wb25lbnQ6IENyZWF0ZUNvbXBWaWV3Q29tcG9uZW50LFxuICB9XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBsaWNhdGlvbkRhdGFzZXRDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25WaWV3c0NvbXBvbmVudCxcbiAgICBEYXRhc2V0TW9uZ29Db21wb25lbnQsXG4gICAgRGF0YXNldFF1ZXJ5QnVsZGVyQ29tcG9uZW50LFxuICAgIERhdGFzZXRSZXN0QXBpQ29tcG9uZW50LFxuICAgIEdlb01hcENvbXBvbmVudCxcbiAgICAvLyBBcHBWaWV3RnJvbUtwaUNvbXBvbmVudCxcbiAgICBDcmVhdGVDb21wVmlld0NvbXBvbmVudCxcbiAgICBEYXNoQ2hhcnRDb21wb25lbnQsXG4gICAgRGFzaFRhYmxlQ29tcG9uZW50LFxuICAgIEFwcGxpY2F0aW9uRmlsdGVyQ29tcG9uZW50LFxuICAgIFBhZ2VDb25maWdDb21wb25lbnQsXG4gICAgUGFnZUNvbnRyb2xlckNvbXBvbmVudCxcbiAgICBDZHJDb25maWdDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgICBUYWJsZVdpdGhCYXJDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldFNxbENvbXBvbmVudCxcbiAgICBDcmVhdGVEYXRhc2V0SnNvbkNvbXBvbmVudCxcbiAgICBBcHBUaXRsZUNvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgR2FtYW1XaWRnZXRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUNoYXJ0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQsXG4gICAgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCxcbiAgICBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50LFxuICAgIGNvbnRlbnRTYWZlSHRtbCxcbiAgICBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCxcbiAgICBBZHZhbmNlV2lkZ2V0SGVhZGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIEJyZWFkQ3J1bWJzQ29tcG9uZW50LFxuICAgIFNxbFBpcGUsXG4gICAgU2FmZUh0bWxQaXBlLFxuICAgIENvbW1vbkhlYWRlckNvbXBvbmVudCxcbiAgICBHb29nbGVHZW9NYXBDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZUNsdW1uQmFyQ2hhcnRDb21wb25lbnRcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQoYXBwUm91dGVzKSxcblxuICAgIERldkV4dHJlbWVNb2R1bGUsXG4gICAgRHhCdXR0b25Nb2R1bGUsXG4gICAgRHhDaGVja0JveE1vZHVsZSxcbiAgICBEeE51bWJlckJveE1vZHVsZSxcbiAgICBEeERhdGFHcmlkTW9kdWxlLFxuICAgIER4RHJvcERvd25Cb3hNb2R1bGUsXG4gICAgRHhUcmVlVmlld01vZHVsZSxcbiAgICBEeFNjcm9sbFZpZXdNb2R1bGUsXG4gICAgRHhGb3JtTW9kdWxlLFxuICAgIER4QWNjb3JkaW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIER4VGFnQm94TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBEeEh0bWxFZGl0b3JNb2R1bGUsXG4gICAgRHhCdWxsZXRNb2R1bGUsXG4gICAgRHhDaGFydE1vZHVsZSxcbiAgICBEeERhdGVCb3hNb2R1bGUsXG4gICAgRHhMb2FkUGFuZWxNb2R1bGUsXG4gICAgRHhMb29rdXBNb2R1bGUsXG4gICAgRHhQaXZvdEdyaWRNb2R1bGUsXG4gICAgRHhUZW1wbGF0ZU1vZHVsZSxcbiAgICBEeFRleHRBcmVhTW9kdWxlLFxuICAgIER4VmFsaWRhdGlvblN1bW1hcnlNb2R1bGUsXG4gICAgRHhWYWxpZGF0b3JNb2R1bGUsXG4gICAgRHhDYWxlbmRhck1vZHVsZSxcbiAgICBEeFRvb2x0aXBNb2R1bGUsXG4gICAgRHhDb250ZXh0TWVudU1vZHVsZSxcbiAgICBEeExvYWRJbmRpY2F0b3JNb2R1bGUsXG4gICAgLy8gU3RydWN0dXJlS3BpTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgRHhQb3B1cE1vZHVsZSwgRHhTZWxlY3RCb3hNb2R1bGUsIER4VGV4dEJveE1vZHVsZSwgRHhUcmVlVmlld01vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGl2aWRlck1vZHVsZSxcbiAgICBNYXRNZW51TW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIERhc2hDaGFydENvbXBvbmVudCxcbiAgICBEYXNoVGFibGVDb21wb25lbnQsXG4gICAgQXBwbGljYXRpb25GaWx0ZXJDb21wb25lbnQsXG4gICAgQ3JlYXRlRGF0YXNldENvbXBvbmVudCxcbiAgICBBcHBUaXRsZUNvbXBvbmVudCxcbiAgICBMb2FkZXJDb21wb25lbnQsXG4gICAgR2FtYW1XaWRnZXRDb21wb25lbnQsXG4gICAgR2FtbWFBZHZhbmNlRmlsdGVyQ29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZUNoYXJ0Q29tcG9uZW50LFxuICAgIEdhbW1hQWR2YW5jZU9wZXJhdG9yVGFibGVDb21wb25lbnQsXG4gICAgQXBwQWR2YW5jZUhlYWRlckNvbXBvbmVudCxcbiAgICBHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnQsXG4gICAgR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50LFxuICAgIGNvbnRlbnRTYWZlSHRtbCxcbiAgICBHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudCxcbiAgICBBZHZhbmNlV2lkZ2V0SGVhZGVyRmlsdGVyQ29tcG9uZW50LFxuICAgIEJyZWFkQ3J1bWJzQ29tcG9uZW50LFxuICAgIENvbW1vbkhlYWRlckNvbXBvbmVudCxcbiAgICBHZW9NYXBDb21wb25lbnQsXG4gICAgU2FmZUh0bWxQaXBlLFxuICAgIEdvb2dsZUdlb01hcENvbXBvbmVudCxcbiAgICBHYW1tYVRhYmxlQ2x1bW5CYXJDaGFydENvbXBvbmVudFxuXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UsXG4gICAgQXBwbGljYXRpb25EYXRzc2V0c0NhbGxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBQYWNrYWdlQXBwbGljYXRpb25Db250cm9sbGVyTW9kdWxlIHtcblxufVxuIl19
@@ -311,11 +311,8 @@ export class ApplicationDatssetsCall {
311
311
  }
312
312
  }
313
313
  ApplicationDatssetsCall.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ApplicationDatssetsCall, deps: [{ token: i1.ApplicationContentService }, { token: i2.kpicommonService }], target: i0.ɵɵFactoryTarget.Injectable });
314
- ApplicationDatssetsCall.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ApplicationDatssetsCall, providedIn: 'root' });
314
+ ApplicationDatssetsCall.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ApplicationDatssetsCall });
315
315
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ApplicationDatssetsCall, decorators: [{
316
- type: Injectable,
317
- args: [{
318
- providedIn: 'root'
319
- }]
316
+ type: Injectable
320
317
  }], ctorParameters: function () { return [{ type: i1.ApplicationContentService }, { type: i2.kpicommonService }]; } });
321
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGF0YXNldC1jYWxsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jYWxsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUtyQyxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDLFlBQW9CLE9BQWtDLEVBQzFDLFVBQTRCO1FBRHBCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQzFDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBSHhDLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztJQU16QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPO1FBQzFDLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLEVBQUU7WUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3REO2FBQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLGNBQWMsRUFBRTtZQUM5QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO2FBQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pFO2FBQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVB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QUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqRDtxQkFBTTtvQkFDSCxTQUFTLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDdkM7Z0JBR0QsSUFBSSxTQUFTLElBQUksY0FBYyxFQUFFO29CQUM3QixTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDN0I7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMxQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBSUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUdELHNCQUFzQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDOztvSEF4VlEsdUJBQXVCO3dIQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTsyRkFFVCx1QkFBdUI7a0JBSG5DLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db250ZW50U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbi8vIGltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IGtwaWNvbW1vblNlcnZpY2UgfSBmcm9tICcuL2twaS1jb21vbi1zZXJ2aWNlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnLi9tb21lbnQtaGVscGVyJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkRhdHNzZXRzQ2FsbCB7XG5cbiAgICB1bmlxdWVEYXRhU2V0T2JqZWN0ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUga3BpU2VydmljZToga3BpY29tbW9uU2VydmljZSxcbiAgICApIHtcblxuICAgIH1cblxuICAgIGdldERhdGFGcm9tRGF0YVNldChkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpIHtcbiAgICAgICAgaWYgKGRhdGFzZXQuZGF0YXNldFR5cGUgPT0gXCJtb25nb1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhU2V0Rm9yTW9uZ28oZGF0YXNldCwgZGF0YXNldElkKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwicXVlcnlidWlsZGVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwic2ltcGxlQXBpXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JTaW1wbGVBcGlJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwicGxhaW5qc29uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JQbGFpbkpzb24oZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwic3FsUXVlcnlcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldEZvclNxbFRlbXBsYXRlKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGdldERhdGFTZXRGb3JNb25nbyhkYXRhc2V0LCBkYXRhc2V0SWQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGxldCBhcGlKc29uT2JqZWN0ID0ge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RJZDogZGF0YXNldC5jb25maWcuc2VydmljZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChkYXRhc2V0LmNvbmZpZy5maXhPcGVyYXRpb25MZXZsZXMgJiYgZGF0YXNldC5jb25maWcuZml4T3BlcmF0aW9uTGV2bGVzLmxlbmd0aCAhPSAwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGRhdGFzZXQuY29uZmlnLmZpeE9wZXJhdGlvbkxldmxlcykge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGFwaUpzb25PYmplY3QsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1vbl9jb25maWcgPSB0aGlzLmtwaVNlcnZpY2UuZ2V0QWxsU2V2aWNlQXBpSnNvbihhcGlKc29uT2JqZWN0KTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXREYXRhKG1vbl9jb25maWcsIGRhdGFzZXQuY29uZmlnLmFwaSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhW1wiUGF5bG9hZFwiXSB8fCBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQuc2xpY2UoMCwgMjApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldERhdGFzZXRGb3JJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnO1xuICAgICAgICAgICAgbGV0IHRyYW5zZm9ybWVkT2JqZWN0OiBhbnkgPSB7fTtcbiAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgcmVxdWVzdC5yZXFGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE9iamVjdC52YWx1ZXMoaXRlbSlbMF07XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3N0YXJ0RGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3QucmVjb3JkRGF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSAoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCAhPT0gMCkgPyBPYmplY3Qua2V5cyhmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlcikubWFwKGtleSA9PiAoeyBba2V5XTogZmlsdGVycy5vcGVyYXRpb25GaWx0ZXJba2V5XSB9KSkgOiBbXTtcblxuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ21lYXN1cmVzJ10gPSByZXF1ZXN0Lm1lYXN1cmVzO1xuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2ZpbHRlcnMnXSA9IHRoaXMudHJhbnNmb3JtRGF0YUZvck1GaWx0ZXIob3BlcmF0b3IsIHJlcXVlc3QubWFwZWRGaWx0ZXJzKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0Wydzb3J0ZXJzJ10gPSByZXF1ZXN0LnNvcnRlcnM7XG4gICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFtcInBhZ2luYXRpb25SZXF1aXJlZFwiXSA9IGZhbHNlO1xuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2RpbWVuc2lvbnMnXSA9IHJlcXVlc3QuZGltZW5zaW9ucztcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LmhhdmluZ3MgJiYgcmVxdWVzdC5oYXZpbmdzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0WydoYXZpbmdzJ10gPSByZXF1ZXN0LmhhdmluZ3M7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXREYXRhKHRyYW5zZm9ybWVkT2JqZWN0LCBkYXRhc2V0LmNvbmZpZy5hcGkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVsnZGF0YXNldCddO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQuc2xpY2UoMCwgMzApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybURhdGFGb3JNRmlsdGVyKGZpbHRlcmRhdGEsIG1hcERhdGEpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBtYXBEYXRhLmZvckVhY2gobWFwcGluZyA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IG1hcHBpbmcuc2VydmVyQ29sdW1uLFxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBtYXBwaW5nLmRhdGFUeXBlLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBtYXBwaW5nLm9wZXJhdG9yTmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbWFwcGluZy5kZWZhdWx0VmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobWFwcGluZy5zZXJ2ZXJDb2x1bW4uaW5jbHVkZXMoJ2RhdGUnKSAmJiB0eXBlb2YgcmVzdWx0T2JqLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJZWVlZTU1ERFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlcmRhdGEuZmluZChmID0+IGYuaGFzT3duUHJvcGVydHkobWFwcGluZy5sb2NhbENvbHVtbikpO1xuICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLmRlZmF1bHRWYWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZpbHRlclttYXBwaW5nLmxvY2FsQ29sdW1uXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlLmpvaW4oXCIsXCIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJZWVlZTU1ERFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuICAgICAgICB9KTtcbiAgICAgICAgZmlsdGVyZGF0YSA9IGZpbHRlcmRhdGEuZmlsdGVyKG9iaiA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xuICAgICAgICAgICAgcmV0dXJuIGtleSAhPT0gJ3N0YXJ0RGF0ZScgJiYga2V5ICE9PSAnZW5kRGF0ZSc7XG4gICAgICAgIH0pO1xuICAgICAgICBmaWx0ZXJkYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IE9iamVjdC5rZXlzKGZpbHRlcilbMF07XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ01hcHBpbmcgPSBtYXBEYXRhLmZpbmQobWFwcGluZyA9PiBtYXBwaW5nLmxvY2FsQ29sdW1uID09PSBmaWx0ZXJLZXkpO1xuXG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nTWFwcGluZykge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IGZpbHRlcktleSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBmaWx0ZXJLZXksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJbZmlsdGVyS2V5XVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJbZmlsdGVyS2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJpblwiO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XS5qb2luKFwiLFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBmb3IgbWNpdCBvbmx5XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcktleSA9PSAnb3BlcmF0b3Jfa2V5Jykge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImVxXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdE9iaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihvYmogPT4gb2JqLnZhbHVlICE9PSBudWxsICYmIG9iai52YWx1ZSAhPT0gXCJcIik7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cblxuXG4gICAgZ2V0RGF0YXNldEZvclNpbXBsZUFwaUltcGFsYShkYXRhc2V0OiBhbnksIGRhdGFzZXRJZDogc3RyaW5nLCBmaWx0ZXJzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgICAgICAgIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyLmhhc093blByb3BlcnR5KGZpbHRlci5sb2NhbENvbHVtbikpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmRlZmF1bHRWYWx1ZSA9IGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyW2ZpbHRlci5sb2NhbENvbHVtbl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZGF0YXNldC5jb25maWcuYXBpVHlwZSA9PT0gXCJwb3N0XCIpIHtcblxuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlSnNvbjogYW55ID0ge307XG4gICAgICAgICAgICAgICAgZGF0YXNldC5jb25maWcucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRlY29sdW1uID0gZmlsdGVyLnNlcnZlckNvbHVtbi50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZWNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiBmaWx0ZXIuZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlSnNvbltmaWx0ZXIuc2VydmVyQ29sdW1uXSA9IG1vbWVudChmaWx0ZXIuZGVmYXVsdFZhbHVlLCBcIllZWVlNTUREXCIpLmZvcm1hdChcIllZWVktTU0tRERcIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlSnNvbltmaWx0ZXIuc2VydmVyQ29sdW1uXSA9IGZpbHRlci5kZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0U2ltcGxlQXBpUG9zdFJlcXVlc3QoZGF0YXNldC5jb25maWcuYXBpLCBzZXJ2aWNlSnNvbikuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmNvbmZpZy5hcGlUeXBlID09PSBcImdldFwiKSB7XG5cbiAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdFVybCA9IGRhdGFzZXQuY29uZmlnLmFwaSArIFwiP1wiO1xuICAgICAgICAgICAgICAgIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXI6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0VXJsICs9IGAke2ZpbHRlci5zZXJ2ZXJDb2x1bW59PSR7ZmlsdGVyLmRlZmF1bHRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFVybCArPSBcIiZcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFNpbXBsZUFwaUdldFJlcXVlc3QocmVxdWVzdFVybCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGdldERhdGFzZXRGb3JQbGFpbkpzb24oZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgICAgICAgbGV0IHJlcXVlc3RhcGkgPSBkYXRhc2V0LmNvbmZpZy5hcGkgKyAnP2RhdGFzZXRJZD0nICsgZGF0YXNldC5kYXRhc2V0SWQ7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0SnNvbkRhdGFzZXRQYXlsb2FkKHJlcXVlc3RhcGkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgZ2V0RGF0YXNldEZvclNxbFRlbXBsYXRlKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG5cbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGggIT09IDApID8gT2JqZWN0LmtleXMoZmlsdGVycy5vcGVyYXRpb25GaWx0ZXIpLm1hcChrZXkgPT4gKHsgW2tleV06IGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyW2tleV0gfSkpIDogW107XG5cbiAgICAgICAgICAgIGxldCByZXF1ZXN0QXAgPSBkYXRhc2V0LmNvbmZpZy5hcGk7XG4gICAgICAgICAgICBsZXQgcmVxdWVzdF9wYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgJ2RiQ29uZmlnJzogZGF0YXNldC5jb25maWcucXVlcnlDb25maWcuZGJDb25maWcsXG4gICAgICAgICAgICAgICAgJ2RhdGFiYXNlTmFtZSc6IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgICAnZmlsdGVycyc6IHRoaXMudHJhbnNmb3JtRGF0YUZvck1GaWx0ZXJGb3JTUWwob3BlcmF0b3IsIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycyksXG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlUXVlcnknOiBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy50ZW1wbGF0ZVF1ZXJ5LFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdlbmVyaWNTcWxRdWVyeVJlc3BvbnNlKHJlcXVlc3RBcCwgcmVxdWVzdF9wYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybURhdGFGb3JNRmlsdGVyRm9yU1FsKGZpbHRlcmRhdGEsIG1hcERhdGEpIHtcblxuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIG1hcERhdGEuZm9yRWFjaChtYXBwaW5nID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZTogbWFwcGluZy5zZXJ2ZXJDb2x1bW4sXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IG1hcHBpbmcuZGF0YVR5cGUsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IG1hcHBpbmcub3BlcmF0b3JOYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXBwaW5nLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICBhbGlhc0NvbHVtbk5hbWU6IG1hcHBpbmcubG9jYWxDb2x1bW4sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KFwiWVlZWU1NRERcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJkYXRhLmZpbmQoZiA9PiBmLmhhc093blByb3BlcnR5KG1hcHBpbmcubG9jYWxDb2x1bW4pKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJbbWFwcGluZy5sb2NhbENvbHVtbl07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSB2YWx1ZS5qb2luKFwiLFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLnNlcnZlckNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiByZXN1bHRPYmoudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KFwiWVlZWU1NRERcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hcHBpbmcuZGVmYXVsdFZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0T2JqKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZpbHRlcmRhdGEgPSBmaWx0ZXJkYXRhLmZpbHRlcihvYmogPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMob2JqKVswXTtcbiAgICAgICAgICAgIHJldHVybiBrZXkgIT09ICdzdGFydERhdGUnICYmIGtleSAhPT0gJ2VuZERhdGUnO1xuICAgICAgICB9KTsgZmlsdGVyZGF0YS5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJLZXkgPSBPYmplY3Qua2V5cyhmaWx0ZXIpWzBdO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdNYXBwaW5nID0gbWFwRGF0YS5maW5kKG1hcHBpbmcgPT4gbWFwcGluZy5sb2NhbENvbHVtbiA9PT0gZmlsdGVyS2V5KTtcblxuICAgICAgICAgICAgaWYgKCFleGlzdGluZ01hcHBpbmcpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBmaWx0ZXJLZXksXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogZmlsdGVyS2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyW2ZpbHRlcktleV1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyW2ZpbHRlcktleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV0uam9pbihcIixcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZm9yIG1jaXQgb25seVxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJLZXkgPT0gJ29wZXJhdG9yX2tleScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJlcVwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuXG4gICAgICAgIC8vIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIob2JqID0+IG9iai52YWx1ZSAhPT0gbnVsbCAmJiBvYmoudmFsdWUgIT09IFwiXCIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG4gICAgZ2V0VW5pcXVlRGF0YVNldE9iamVjdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdDtcbiAgICB9XG5cblxufVxuIl19
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tZGF0YXNldC1jYWxsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tZGF0YXNldC1jYWxsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLE1BQU0sTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUdyQyxNQUFNLE9BQU8sdUJBQXVCO0lBSWhDLFlBQW9CLE9BQWtDLEVBQzFDLFVBQTRCO1FBRHBCLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQzFDLGVBQVUsR0FBVixVQUFVLENBQWtCO1FBSHhDLHdCQUFtQixHQUFHLEVBQUUsQ0FBQztJQU16QixDQUFDO0lBRUQsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPO1FBQzFDLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLEVBQUU7WUFDaEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1NBQ3REO2FBQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLGNBQWMsRUFBRTtZQUM5QyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ2hFO2FBQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ3pFO2FBQU0sSUFBSSxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsRUFBRTtZQUMzQyxPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVB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QUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2lCQUNqRDtxQkFBTTtvQkFDSCxTQUFTLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDdkM7Z0JBR0QsSUFBSSxTQUFTLElBQUksY0FBYyxFQUFFO29CQUM3QixTQUFTLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztpQkFDN0I7Z0JBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMxQjtRQUNMLENBQUMsQ0FBQyxDQUFDO1FBSUgsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUdELHNCQUFzQjtRQUNsQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNwQyxDQUFDOztvSEF4VlEsdUJBQXVCO3dIQUF2Qix1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UgfSBmcm9tICcuL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZSc7XG4vLyBpbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBrcGljb21tb25TZXJ2aWNlIH0gZnJvbSAnLi9rcGktY29tb24tc2VydmljZSc7XG5pbXBvcnQgbW9tZW50IGZyb20gJy4vbW9tZW50LWhlbHBlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkRhdHNzZXRzQ2FsbCB7XG5cbiAgICB1bmlxdWVEYXRhU2V0T2JqZWN0ID0ge307XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNlcnZpY2U6IEFwcGxpY2F0aW9uQ29udGVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUga3BpU2VydmljZToga3BpY29tbW9uU2VydmljZSxcbiAgICApIHtcblxuICAgIH1cblxuICAgIGdldERhdGFGcm9tRGF0YVNldChkYXRhc2V0LCBkYXRhc2V0SWQsIGZpbHRlcnMpIHtcbiAgICAgICAgaWYgKGRhdGFzZXQuZGF0YXNldFR5cGUgPT0gXCJtb25nb1wiKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXREYXRhU2V0Rm9yTW9uZ28oZGF0YXNldCwgZGF0YXNldElkKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwicXVlcnlidWlsZGVyXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwic2ltcGxlQXBpXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JTaW1wbGVBcGlJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwicGxhaW5qc29uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldERhdGFzZXRGb3JQbGFpbkpzb24oZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKTtcbiAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmRhdGFzZXRUeXBlID09IFwic3FsUXVlcnlcIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGF0YXNldEZvclNxbFRlbXBsYXRlKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIGdldERhdGFTZXRGb3JNb25nbyhkYXRhc2V0LCBkYXRhc2V0SWQpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGxldCBhcGlKc29uT2JqZWN0ID0ge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RJZDogZGF0YXNldC5jb25maWcuc2VydmljZUlkLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGlmIChkYXRhc2V0LmNvbmZpZy5maXhPcGVyYXRpb25MZXZsZXMgJiYgZGF0YXNldC5jb25maWcuZml4T3BlcmF0aW9uTGV2bGVzLmxlbmd0aCAhPSAwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIGRhdGFzZXQuY29uZmlnLmZpeE9wZXJhdGlvbkxldmxlcykge1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGFwaUpzb25PYmplY3QsIGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG1vbl9jb25maWcgPSB0aGlzLmtwaVNlcnZpY2UuZ2V0QWxsU2V2aWNlQXBpSnNvbihhcGlKc29uT2JqZWN0KTtcbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXREYXRhKG1vbl9jb25maWcsIGRhdGFzZXQuY29uZmlnLmFwaSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHBheWxvYWQgPSBkYXRhW1wiUGF5bG9hZFwiXSB8fCBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQuc2xpY2UoMCwgMjApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldERhdGFzZXRGb3JJbXBhbGEoZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXJzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVxdWVzdCA9IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnO1xuICAgICAgICAgICAgbGV0IHRyYW5zZm9ybWVkT2JqZWN0OiBhbnkgPSB7fTtcbiAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gb2YgcmVxdWVzdC5yZXFGaWVsZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhpdGVtKVswXTtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IE9iamVjdC52YWx1ZXMoaXRlbSlbMF07XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3N0YXJ0RGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3QucmVjb3JkRGF0ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgY29uc3Qgb3BlcmF0b3IgPSAoZmlsdGVycyAmJiBmaWx0ZXJzLmxlbmd0aCAhPT0gMCkgPyBPYmplY3Qua2V5cyhmaWx0ZXJzLm9wZXJhdGlvbkZpbHRlcikubWFwKGtleSA9PiAoeyBba2V5XTogZmlsdGVycy5vcGVyYXRpb25GaWx0ZXJba2V5XSB9KSkgOiBbXTtcblxuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ21lYXN1cmVzJ10gPSByZXF1ZXN0Lm1lYXN1cmVzO1xuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2ZpbHRlcnMnXSA9IHRoaXMudHJhbnNmb3JtRGF0YUZvck1GaWx0ZXIob3BlcmF0b3IsIHJlcXVlc3QubWFwZWRGaWx0ZXJzKTtcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0Wydzb3J0ZXJzJ10gPSByZXF1ZXN0LnNvcnRlcnM7XG4gICAgICAgICAgICB0cmFuc2Zvcm1lZE9iamVjdFtcInBhZ2luYXRpb25SZXF1aXJlZFwiXSA9IGZhbHNlO1xuICAgICAgICAgICAgdHJhbnNmb3JtZWRPYmplY3RbJ2RpbWVuc2lvbnMnXSA9IHJlcXVlc3QuZGltZW5zaW9ucztcbiAgICAgICAgICAgIGlmIChyZXF1ZXN0LmhhdmluZ3MgJiYgcmVxdWVzdC5oYXZpbmdzLmxlbmd0aCAhPT0gMCkge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVkT2JqZWN0WydoYXZpbmdzJ10gPSByZXF1ZXN0LmhhdmluZ3M7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc2VydmljZS5nZXREYXRhKHRyYW5zZm9ybWVkT2JqZWN0LCBkYXRhc2V0LmNvbmZpZy5hcGkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVsnZGF0YXNldCddO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQuc2xpY2UoMCwgMzApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybURhdGFGb3JNRmlsdGVyKGZpbHRlcmRhdGEsIG1hcERhdGEpIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgICAgICBtYXBEYXRhLmZvckVhY2gobWFwcGluZyA9PiB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IG1hcHBpbmcuc2VydmVyQ29sdW1uLFxuICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBtYXBwaW5nLmRhdGFUeXBlLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBtYXBwaW5nLm9wZXJhdG9yTmFtZSxcbiAgICAgICAgICAgICAgICB2YWx1ZTogbWFwcGluZy5kZWZhdWx0VmFsdWVcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBpZiAobWFwcGluZy5zZXJ2ZXJDb2x1bW4uaW5jbHVkZXMoJ2RhdGUnKSAmJiB0eXBlb2YgcmVzdWx0T2JqLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJZWVlZTU1ERFwiKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGZpbHRlciA9IGZpbHRlcmRhdGEuZmluZChmID0+IGYuaGFzT3duUHJvcGVydHkobWFwcGluZy5sb2NhbENvbHVtbikpO1xuICAgICAgICAgICAgaWYgKGZpbHRlcikge1xuICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLmRlZmF1bHRWYWx1ZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGZpbHRlclttYXBwaW5nLmxvY2FsQ29sdW1uXTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlLmpvaW4oXCIsXCIpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IG1vbWVudChyZXN1bHRPYmoudmFsdWUsIFwiWVlZWS1NTS1ERFwiKS5mb3JtYXQoXCJZWVlZTU1ERFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuICAgICAgICB9KTtcbiAgICAgICAgZmlsdGVyZGF0YSA9IGZpbHRlcmRhdGEuZmlsdGVyKG9iaiA9PiB7XG4gICAgICAgICAgICBjb25zdCBrZXkgPSBPYmplY3Qua2V5cyhvYmopWzBdO1xuICAgICAgICAgICAgcmV0dXJuIGtleSAhPT0gJ3N0YXJ0RGF0ZScgJiYga2V5ICE9PSAnZW5kRGF0ZSc7XG4gICAgICAgIH0pO1xuICAgICAgICBmaWx0ZXJkYXRhLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcktleSA9IE9iamVjdC5rZXlzKGZpbHRlcilbMF07XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZ01hcHBpbmcgPSBtYXBEYXRhLmZpbmQobWFwcGluZyA9PiBtYXBwaW5nLmxvY2FsQ29sdW1uID09PSBmaWx0ZXJLZXkpO1xuXG4gICAgICAgICAgICBpZiAoIWV4aXN0aW5nTWFwcGluZykge1xuICAgICAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbHVtbk5hbWU6IGZpbHRlcktleSxcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBmaWx0ZXJLZXksXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJbZmlsdGVyS2V5XVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWx0ZXJbZmlsdGVyS2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJpblwiO1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XS5qb2luKFwiLFwiKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBmaWx0ZXJbZmlsdGVyS2V5XTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBmb3IgbWNpdCBvbmx5XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcktleSA9PSAnb3BlcmF0b3Jfa2V5Jykge1xuICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImVxXCI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlc3VsdE9iaik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG5cbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0LmZpbHRlcihvYmogPT4gb2JqLnZhbHVlICE9PSBudWxsICYmIG9iai52YWx1ZSAhPT0gXCJcIik7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cblxuXG4gICAgZ2V0RGF0YXNldEZvclNpbXBsZUFwaUltcGFsYShkYXRhc2V0OiBhbnksIGRhdGFzZXRJZDogc3RyaW5nLCBmaWx0ZXJzKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cbiAgICAgICAgICAgIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyLmhhc093blByb3BlcnR5KGZpbHRlci5sb2NhbENvbHVtbikpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyLmRlZmF1bHRWYWx1ZSA9IGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyW2ZpbHRlci5sb2NhbENvbHVtbl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZGF0YXNldC5jb25maWcuYXBpVHlwZSA9PT0gXCJwb3N0XCIpIHtcblxuICAgICAgICAgICAgICAgIGxldCBzZXJ2aWNlSnNvbjogYW55ID0ge307XG4gICAgICAgICAgICAgICAgZGF0YXNldC5jb25maWcucXVlcnlDb25maWcubWFwZWRGaWx0ZXJzLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBkYXRlY29sdW1uID0gZmlsdGVyLnNlcnZlckNvbHVtbi50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0ZWNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiBmaWx0ZXIuZGF0YVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlSnNvbltmaWx0ZXIuc2VydmVyQ29sdW1uXSA9IG1vbWVudChmaWx0ZXIuZGVmYXVsdFZhbHVlLCBcIllZWVlNTUREXCIpLmZvcm1hdChcIllZWVktTU0tRERcIik7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlSnNvbltmaWx0ZXIuc2VydmVyQ29sdW1uXSA9IGZpbHRlci5kZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0U2ltcGxlQXBpUG9zdFJlcXVlc3QoZGF0YXNldC5jb25maWcuYXBpLCBzZXJ2aWNlSnNvbikuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkYXRhc2V0LmNvbmZpZy5hcGlUeXBlID09PSBcImdldFwiKSB7XG5cbiAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdFVybCA9IGRhdGFzZXQuY29uZmlnLmFwaSArIFwiP1wiO1xuICAgICAgICAgICAgICAgIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXI6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0VXJsICs9IGAke2ZpbHRlci5zZXJ2ZXJDb2x1bW59PSR7ZmlsdGVyLmRlZmF1bHRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPCBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy5tYXBlZEZpbHRlcnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFVybCArPSBcIiZcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdldFNpbXBsZUFwaUdldFJlcXVlc3QocmVxdWVzdFVybCkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF5bG9hZCA9IGRhdGFbXCJQYXlsb2FkXCJdIHx8IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVuaXF1ZURhdGFTZXRPYmplY3RbZGF0YXNldElkXSA9IHBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cblxuICAgIGdldERhdGFzZXRGb3JQbGFpbkpzb24oZGF0YXNldCwgZGF0YXNldElkLCBmaWx0ZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcblxuICAgICAgICAgICAgbGV0IHJlcXVlc3RhcGkgPSBkYXRhc2V0LmNvbmZpZy5hcGkgKyAnP2RhdGFzZXRJZD0nICsgZGF0YXNldC5kYXRhc2V0SWQ7XG4gICAgICAgICAgICB0aGlzLnNlcnZpY2UuZ2V0SnNvbkRhdGFzZXRQYXlsb2FkKHJlcXVlc3RhcGkpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG5cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3I6JywgZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGVycik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuXG4gICAgZ2V0RGF0YXNldEZvclNxbFRlbXBsYXRlKGRhdGFzZXQsIGRhdGFzZXRJZCwgZmlsdGVycykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuXG5cbiAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yID0gKGZpbHRlcnMgJiYgZmlsdGVycy5sZW5ndGggIT09IDApID8gT2JqZWN0LmtleXMoZmlsdGVycy5vcGVyYXRpb25GaWx0ZXIpLm1hcChrZXkgPT4gKHsgW2tleV06IGZpbHRlcnMub3BlcmF0aW9uRmlsdGVyW2tleV0gfSkpIDogW107XG5cbiAgICAgICAgICAgIGxldCByZXF1ZXN0QXAgPSBkYXRhc2V0LmNvbmZpZy5hcGk7XG4gICAgICAgICAgICBsZXQgcmVxdWVzdF9wYXJhbXMgPSB7XG4gICAgICAgICAgICAgICAgJ2RiQ29uZmlnJzogZGF0YXNldC5jb25maWcucXVlcnlDb25maWcuZGJDb25maWcsXG4gICAgICAgICAgICAgICAgJ2RhdGFiYXNlTmFtZSc6IGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLmRhdGFiYXNlTmFtZSxcbiAgICAgICAgICAgICAgICAnZmlsdGVycyc6IHRoaXMudHJhbnNmb3JtRGF0YUZvck1GaWx0ZXJGb3JTUWwob3BlcmF0b3IsIGRhdGFzZXQuY29uZmlnLnF1ZXJ5Q29uZmlnLm1hcGVkRmlsdGVycyksXG4gICAgICAgICAgICAgICAgJ3RlbXBsYXRlUXVlcnknOiBkYXRhc2V0LmNvbmZpZy5xdWVyeUNvbmZpZy50ZW1wbGF0ZVF1ZXJ5LFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlLmdlbmVyaWNTcWxRdWVyeVJlc3BvbnNlKHJlcXVlc3RBcCwgcmVxdWVzdF9wYXJhbXMpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXlsb2FkID0gZGF0YVtcIlBheWxvYWRcIl0gfHwgZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51bmlxdWVEYXRhU2V0T2JqZWN0W2RhdGFzZXRJZF0gPSBwYXlsb2FkO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yOicsIGVycik7XG4gICAgICAgICAgICAgICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRyYW5zZm9ybURhdGFGb3JNRmlsdGVyRm9yU1FsKGZpbHRlcmRhdGEsIG1hcERhdGEpIHtcblxuICAgICAgICBsZXQgcmVzdWx0ID0gW107XG4gICAgICAgIG1hcERhdGEuZm9yRWFjaChtYXBwaW5nID0+IHtcbiAgICAgICAgICAgIGxldCByZXN1bHRPYmogPSB7XG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZTogbWFwcGluZy5zZXJ2ZXJDb2x1bW4sXG4gICAgICAgICAgICAgICAgZGF0YVR5cGU6IG1hcHBpbmcuZGF0YVR5cGUsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IG1hcHBpbmcub3BlcmF0b3JOYW1lLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBtYXBwaW5nLmRlZmF1bHRWYWx1ZSxcbiAgICAgICAgICAgICAgICBhbGlhc0NvbHVtbk5hbWU6IG1hcHBpbmcubG9jYWxDb2x1bW4sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgaWYgKG1hcHBpbmcuc2VydmVyQ29sdW1uLmluY2x1ZGVzKCdkYXRlJykgJiYgdHlwZW9mIHJlc3VsdE9iai52YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KFwiWVlZWU1NRERcIik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBmaWx0ZXJkYXRhLmZpbmQoZiA9PiBmLmhhc093blByb3BlcnR5KG1hcHBpbmcubG9jYWxDb2x1bW4pKTtcbiAgICAgICAgICAgIGlmIChmaWx0ZXIpIHtcbiAgICAgICAgICAgICAgICBpZiAobWFwcGluZy5kZWZhdWx0VmFsdWUgPT09IFwiXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBmaWx0ZXJbbWFwcGluZy5sb2NhbENvbHVtbl07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoub3BlcmF0b3IgPSBcImluXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSB2YWx1ZS5qb2luKFwiLFwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChtYXBwaW5nLnNlcnZlckNvbHVtbi5pbmNsdWRlcygnZGF0ZScpICYmIHR5cGVvZiByZXN1bHRPYmoudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRPYmoudmFsdWUgPSBtb21lbnQocmVzdWx0T2JqLnZhbHVlLCBcIllZWVktTU0tRERcIikuZm9ybWF0KFwiWVlZWU1NRERcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1hcHBpbmcuZGVmYXVsdFZhbHVlID09PSBcIlwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmVzdWx0LnB1c2gocmVzdWx0T2JqKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGZpbHRlcmRhdGEgPSBmaWx0ZXJkYXRhLmZpbHRlcihvYmogPT4ge1xuICAgICAgICAgICAgY29uc3Qga2V5ID0gT2JqZWN0LmtleXMob2JqKVswXTtcbiAgICAgICAgICAgIHJldHVybiBrZXkgIT09ICdzdGFydERhdGUnICYmIGtleSAhPT0gJ2VuZERhdGUnO1xuICAgICAgICB9KTsgZmlsdGVyZGF0YS5mb3JFYWNoKGZpbHRlciA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJLZXkgPSBPYmplY3Qua2V5cyhmaWx0ZXIpWzBdO1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdNYXBwaW5nID0gbWFwRGF0YS5maW5kKG1hcHBpbmcgPT4gbWFwcGluZy5sb2NhbENvbHVtbiA9PT0gZmlsdGVyS2V5KTtcblxuICAgICAgICAgICAgaWYgKCFleGlzdGluZ01hcHBpbmcpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVzdWx0T2JqID0ge1xuICAgICAgICAgICAgICAgICAgICBjb2x1bW5OYW1lOiBmaWx0ZXJLZXksXG4gICAgICAgICAgICAgICAgICAgIGRhdGFUeXBlOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBvcGVyYXRvcjogZmlsdGVyS2V5LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyW2ZpbHRlcktleV1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmlsdGVyW2ZpbHRlcktleV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdE9iai5vcGVyYXRvciA9IFwiaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV0uam9pbihcIixcIik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLnZhbHVlID0gZmlsdGVyW2ZpbHRlcktleV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gZm9yIG1jaXQgb25seVxuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJLZXkgPT0gJ29wZXJhdG9yX2tleScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0T2JqLm9wZXJhdG9yID0gXCJlcVwiO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXN1bHQucHVzaChyZXN1bHRPYmopO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuXG4gICAgICAgIC8vIHJlc3VsdCA9IHJlc3VsdC5maWx0ZXIob2JqID0+IG9iai52YWx1ZSAhPT0gbnVsbCAmJiBvYmoudmFsdWUgIT09IFwiXCIpO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG4gICAgZ2V0VW5pcXVlRGF0YVNldE9iamVjdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudW5pcXVlRGF0YVNldE9iamVjdDtcbiAgICB9XG5cblxufVxuIl19
@@ -10,8 +10,10 @@ import * as i6 from "@angular/common";
10
10
  import * as i7 from "devextreme-angular/core";
11
11
  import * as i8 from "devextreme-angular/ui/nested";
12
12
  import * as i9 from "devextreme-angular/ui/data-grid";
13
- import * as i10 from "../../shared/loader/loader.component";
14
- import * as i11 from "../../common-header/common-header.component";
13
+ import * as i10 from "devextreme-angular/ui/popup";
14
+ import * as i11 from "@angular/forms";
15
+ import * as i12 from "../../shared/loader/loader.component";
16
+ import * as i13 from "../../common-header/common-header.component";
15
17
  export class ApplicationViewsComponent {
16
18
  constructor(service, commonService, toastr, title, activatedRoute, router) {
17
19
  this.service = service;
@@ -32,6 +34,8 @@ export class ApplicationViewsComponent {
32
34
  { "compName": "GammaTableWithPercentageComponent", "item": "Table View with percentage" },
33
35
  { "compName": "GammSingleNumberCardComponent", "item": "Single Number Card" }
34
36
  ];
37
+ this.isPopupVisible = false;
38
+ this.jsonContent = '';
35
39
  this.title.setTitle('Application Views');
36
40
  }
37
41
  ngOnInit() {
@@ -121,14 +125,75 @@ export class ApplicationViewsComponent {
121
125
  this.router.navigate(['/apps/controlPanel/applicationDataset']);
122
126
  }
123
127
  }
128
+ importConfigPopup() {
129
+ this.isPopupVisible = true;
130
+ }
131
+ hidePopup() {
132
+ this.isPopupVisible = false;
133
+ this.jsonContent = '';
134
+ }
135
+ onjsonFileSelected(event) {
136
+ const input = event.target;
137
+ if (input.files && input.files.length > 0) {
138
+ const file = input.files[0];
139
+ const reader = new FileReader();
140
+ reader.onload = (e) => {
141
+ if (e.target) {
142
+ const parsedContent = JSON.parse(e.target.result);
143
+ parsedContent.viewId = '';
144
+ this.jsonContent = JSON.stringify(parsedContent, null, 2);
145
+ }
146
+ };
147
+ reader.readAsText(file);
148
+ }
149
+ }
150
+ submitView() {
151
+ console.log(this.jsonContent);
152
+ this.service.createAppViewConfig(JSON.parse(this.jsonContent)).subscribe({
153
+ next: (data) => {
154
+ this.toastr.success('View Created Successfully');
155
+ this.getComponentViewSet();
156
+ this.isLoader = false;
157
+ }, error: (err) => {
158
+ this.toastr.error('Unexpected Server Exception. Please contact System Admin.', 'View Creation');
159
+ }
160
+ });
161
+ }
162
+ exportJsonFile(item) {
163
+ if (!item) {
164
+ this.toastr.error('No data available to export.', 'Export Error');
165
+ return;
166
+ }
167
+ const jsonStr = JSON.stringify(item, null, 2);
168
+ const blob = new Blob([jsonStr], { type: 'application/json' });
169
+ const url = window.URL.createObjectURL(blob);
170
+ const anchor = document.createElement('a');
171
+ anchor.href = url;
172
+ anchor.download = `${item.viewName.replace(/ /g, '_')}.json`;
173
+ anchor.click();
174
+ window.URL.revokeObjectURL(url);
175
+ }
176
+ copyJsonFile(item) {
177
+ if (!item) {
178
+ this.toastr.error('No data available to copy.', 'Copy Error');
179
+ return;
180
+ }
181
+ const jsonStr = JSON.stringify(item, null, 2);
182
+ navigator.clipboard.writeText(jsonStr).then(() => {
183
+ this.toastr.success('Data copied to clipboard.', 'Success');
184
+ }).catch(err => {
185
+ this.toastr.error('Failed to copy data.', 'Copy Error');
186
+ console.error('Failed to copy text: ', err);
187
+ });
188
+ }
124
189
  }
125
190
  ApplicationViewsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ApplicationViewsComponent, deps: [{ token: i1.ApplicationContentService }, { token: i2.CommonService }, { token: i3.ToastrService }, { token: i4.Title }, { token: i5.ActivatedRoute }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
126
- ApplicationViewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ApplicationViewsComponent, selector: "app-application-views", viewQueries: [{ propertyName: "scrollToElement", first: true, predicate: ["scrollToElement"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0\">\n\n <lib-common-header [pageTitle]=\"'Application Views'\"></lib-common-header>\n\n <div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900\n dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-table mr-2\"></i> Manage Views\n <div class=\"ml-auto\">\n\n\n <button class=\"{{commonService.btnLightWhite}}\" (click)=\"backToPage()\" *ngIf=\"pageId\">\n Back To Page\n </button>\n\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"createNewComponentView()\">\n Add View\n </button>\n\n </div>\n </h6>\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <dx-data-grid [columnAutoWidth]=\"true\" [dataSource]=\"componentViewTableDataSource\"\n [hoverStateEnabled]=\"true\" *ngIf=\"!isLoader\" [selectedRowKeys]=\"[]\" [showBorders]=\"true\"\n [showColumnLines]=\"true\" [showRowLines]=\"true\" id=\"gridContainer\">\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxo-export [enabled]=\"true\"></dxo-export>\n <dxo-search-panel [highlightCaseSensitive]=\"true\" [visible]=\"true\">\n </dxo-search-panel>\n\n <dxi-column dataField=\"viewName\"></dxi-column>\n <!-- <dxi-column dataField=\"datasetName\"></dxi-column>-->\n <!-- <dxi-column dataField=\"viewLabel\"></dxi-column> -->\n <dxi-column dataField=\"kpiConfig.formate\"></dxi-column>\n <dxi-column dataField=\"kpiConfig.componentName\"></dxi-column>\n <dxi-column dataField=\"viewType\"></dxi-column>\n <dxi-column dataField=\"createdBy\"></dxi-column>\n <dxi-column dataField=\"creationDate\"></dxi-column>\n <dxi-column dataField=\"action\" cellTemplate=\"cellTemplate\" [fixed]=\"true\"\n fixedPosition=\"right\"></dxi-column>\n <div *dxTemplate=\"let data of 'cellTemplate'\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"editViews(data.data)\">\n Edit\n </button>\n <!-- <button class=\"{{commonService.btn_warning_md}}\" (click)=\"duplicateViews(data.data)\">\n Duplicate\n </button> -->\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"deleteDataset(data.data)\">\n Delete\n </button>\n </div>\n\n\n\n </dx-data-grid>\n </div>\n </div>\n\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i8.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "proxyUrl", "svgToCanvas", "allowExportSelectedData", "customizeExcelCell", "excelFilterEnabled", "excelWrapTextEnabled", "ignoreExcelErrors", "texts"] }, { kind: "component", type: i9.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "component", type: i10.LoaderComponent, selector: "app-loader" }, { kind: "component", type: i11.CommonHeaderComponent, selector: "lib-common-header", inputs: ["pageTitle"] }] });
191
+ ApplicationViewsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.3", type: ApplicationViewsComponent, selector: "app-application-views", viewQueries: [{ propertyName: "scrollToElement", first: true, predicate: ["scrollToElement"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col flex-auto min-w-0\">\n\n <lib-common-header [pageTitle]=\"'Application Views'\"></lib-common-header>\n\n <div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900\n dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-table mr-2\"></i> Manage Views\n <div class=\"ml-auto\">\n\n\n <button class=\"{{commonService.btnLightWhite}}\" (click)=\"backToPage()\" *ngIf=\"pageId\">\n Back To Page\n </button>\n <button (click)=\"importConfigPopup()\" class=\"{{commonService.btn_warning_md}}\">\n Import Config\n </button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"createNewComponentView()\">\n Add View\n </button>\n\n </div>\n </h6>\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <dx-data-grid [columnAutoWidth]=\"true\" [dataSource]=\"componentViewTableDataSource\"\n [hoverStateEnabled]=\"true\" *ngIf=\"!isLoader\" [selectedRowKeys]=\"[]\" [showBorders]=\"true\"\n [showColumnLines]=\"true\" [showRowLines]=\"true\" id=\"gridContainer\">\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxo-export [enabled]=\"true\"></dxo-export>\n <dxo-search-panel [highlightCaseSensitive]=\"true\" [visible]=\"true\">\n </dxo-search-panel>\n\n <dxi-column dataField=\"viewName\"></dxi-column>\n <!-- <dxi-column dataField=\"datasetName\"></dxi-column>-->\n <!-- <dxi-column dataField=\"viewLabel\"></dxi-column> -->\n <dxi-column dataField=\"kpiConfig.formate\"></dxi-column>\n <dxi-column dataField=\"kpiConfig.componentName\"></dxi-column>\n <dxi-column dataField=\"viewType\"></dxi-column>\n <dxi-column dataField=\"createdBy\"></dxi-column>\n <dxi-column dataField=\"creationDate\"></dxi-column>\n <dxi-column dataField=\"action\" cellTemplate=\"cellTemplate\" [fixed]=\"true\"\n fixedPosition=\"right\"></dxi-column>\n <div *dxTemplate=\"let data of 'cellTemplate'\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"editViews(data.data)\">\n Edit\n </button>\n <!-- <button class=\"{{commonService.btn_warning_md}}\" (click)=\"duplicateViews(data.data)\">\n Duplicate\n </button> -->\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"deleteDataset(data.data)\">\n Delete\n </button>\n\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"exportJsonFile(data.data)\"\n title=\"Export View\">\n <i class=\"fa fa-sign-out\"></i>\n\n </button>\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"copyJsonFile(data.data)\"\n title=\"Copy as Json\">\n <i class=\"fa fa-files-o\"></i>\n\n\n </button>\n </div>\n\n\n\n </dx-data-grid>\n </div>\n </div>\n\n</div>\n\n\n<dx-popup [(visible)]=\"isPopupVisible\" [dragEnabled]=\"false\" [closeOnOutsideClick]=\"false\" [showTitle]=\"true\"\n title=\"Model Editor\" [width]=\"1000\" [height]=\"620\">\n\n <div>\n <button (click)=\"hidePopup()\" class=\"btn btn-secondary\"></button>\n <div class=\"m-2 flex items-center justify-between\">\n <input type=\"file\" #fileInput accept=\".json\"\n class=\"block w-3/5 p-2 text-sm text-gray-400 border border-gray-700 rounded-lg bg-gray-800 focus:ring-blue-500 focus:border-blue-500\"\n (change)=\"onjsonFileSelected($event)\">\n <button (click)=\"submitView()\" class=\"{{commonService.btn_success_md}} mr-4\">Submit</button>\n\n </div>\n <textarea [(ngModel)]=\"jsonContent\"\n class=\"w-full h-100 p-2 border border-gray-700 rounded-lg bg-gray-800 text-gray-400\"></textarea>\n </div>\n</dx-popup>", styles: [""], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i7.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i8.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "proxyUrl", "svgToCanvas", "allowExportSelectedData", "customizeExcelCell", "excelFilterEnabled", "excelWrapTextEnabled", "ignoreExcelErrors", "texts"] }, { kind: "component", type: i9.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "customizeExportData", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "focusStateEnabled", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExported", "onExporting", "onFileSaving", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "customizeExportDataChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "focusStateEnabledChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i8.DxiColumnComponent, selector: "dxi-column", inputs: ["alignment", "allowEditing", "allowExporting", "allowFiltering", "allowFixing", "allowGrouping", "allowHeaderFiltering", "allowHiding", "allowReordering", "allowResizing", "allowSearch", "allowSorting", "autoExpandGroup", "buttons", "calculateCellValue", "calculateDisplayValue", "calculateFilterExpression", "calculateGroupValue", "calculateSortValue", "caption", "cellTemplate", "columns", "cssClass", "customizeText", "dataField", "dataType", "editCellTemplate", "editorOptions", "encodeHtml", "falseText", "filterOperations", "filterType", "filterValue", "filterValues", "fixed", "fixedPosition", "format", "formItem", "groupCellTemplate", "groupIndex", "headerCellTemplate", "headerFilter", "hidingPriority", "isBand", "lookup", "minWidth", "name", "ownerBand", "renderAsync", "selectedFilterOperation", "setCellValue", "showEditorAlways", "showInColumnChooser", "showWhenGrouped", "sortIndex", "sortingMethod", "sortOrder", "trueText", "type", "validationRules", "visible", "visibleIndex", "width"], outputs: ["filterValueChange", "filterValuesChange", "groupIndexChange", "selectedFilterOperationChange", "sortIndexChange", "sortOrderChange", "visibleChange", "visibleIndexChange"] }, { kind: "component", type: i8.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i8.DxoSearchPanelComponent, selector: "dxo-search-panel", inputs: ["highlightCaseSensitive", "highlightSearchText", "placeholder", "searchVisibleColumnsOnly", "text", "visible", "width"], outputs: ["textChange"] }, { kind: "component", type: i10.DxPopupComponent, selector: "dx-popup", inputs: ["accessKey", "animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "dragAndResizeArea", "dragEnabled", "dragOutsideBoundary", "elementAttr", "focusStateEnabled", "fullScreen", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "resizeEnabled", "restorePosition", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showTitle", "tabIndex", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onResize", "onResizeEnd", "onResizeStart", "onShowing", "onShown", "onTitleRendered", "accessKeyChange", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "dragAndResizeAreaChange", "dragEnabledChange", "dragOutsideBoundaryChange", "elementAttrChange", "focusStateEnabledChange", "fullScreenChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "resizeEnabledChange", "restorePositionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showTitleChange", "tabIndexChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "directive", type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i12.LoaderComponent, selector: "app-loader" }, { kind: "component", type: i13.CommonHeaderComponent, selector: "lib-common-header", inputs: ["pageTitle"] }] });
127
192
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.3", ngImport: i0, type: ApplicationViewsComponent, decorators: [{
128
193
  type: Component,
129
- args: [{ selector: 'app-application-views', template: "<div class=\"flex flex-col flex-auto min-w-0\">\n\n <lib-common-header [pageTitle]=\"'Application Views'\"></lib-common-header>\n\n <div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900\n dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-table mr-2\"></i> Manage Views\n <div class=\"ml-auto\">\n\n\n <button class=\"{{commonService.btnLightWhite}}\" (click)=\"backToPage()\" *ngIf=\"pageId\">\n Back To Page\n </button>\n\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"createNewComponentView()\">\n Add View\n </button>\n\n </div>\n </h6>\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <dx-data-grid [columnAutoWidth]=\"true\" [dataSource]=\"componentViewTableDataSource\"\n [hoverStateEnabled]=\"true\" *ngIf=\"!isLoader\" [selectedRowKeys]=\"[]\" [showBorders]=\"true\"\n [showColumnLines]=\"true\" [showRowLines]=\"true\" id=\"gridContainer\">\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxo-export [enabled]=\"true\"></dxo-export>\n <dxo-search-panel [highlightCaseSensitive]=\"true\" [visible]=\"true\">\n </dxo-search-panel>\n\n <dxi-column dataField=\"viewName\"></dxi-column>\n <!-- <dxi-column dataField=\"datasetName\"></dxi-column>-->\n <!-- <dxi-column dataField=\"viewLabel\"></dxi-column> -->\n <dxi-column dataField=\"kpiConfig.formate\"></dxi-column>\n <dxi-column dataField=\"kpiConfig.componentName\"></dxi-column>\n <dxi-column dataField=\"viewType\"></dxi-column>\n <dxi-column dataField=\"createdBy\"></dxi-column>\n <dxi-column dataField=\"creationDate\"></dxi-column>\n <dxi-column dataField=\"action\" cellTemplate=\"cellTemplate\" [fixed]=\"true\"\n fixedPosition=\"right\"></dxi-column>\n <div *dxTemplate=\"let data of 'cellTemplate'\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"editViews(data.data)\">\n Edit\n </button>\n <!-- <button class=\"{{commonService.btn_warning_md}}\" (click)=\"duplicateViews(data.data)\">\n Duplicate\n </button> -->\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"deleteDataset(data.data)\">\n Delete\n </button>\n </div>\n\n\n\n </dx-data-grid>\n </div>\n </div>\n\n</div>" }]
194
+ args: [{ selector: 'app-application-views', template: "<div class=\"flex flex-col flex-auto min-w-0\">\n\n <lib-common-header [pageTitle]=\"'Application Views'\"></lib-common-header>\n\n <div class=\"p-4 w-full\">\n <div class=\"m-3 p-4 bg-white border border-gray-200 rounded-lg shadow-md dark:bg-gray-800 dark:border-gray-700\">\n <h6 class=\"mb-2 text-lg tracking-tight text-gray-900\n dark:text-white border-b pb-3 flex items-center\">\n <i class=\"fa fa-table mr-2\"></i> Manage Views\n <div class=\"ml-auto\">\n\n\n <button class=\"{{commonService.btnLightWhite}}\" (click)=\"backToPage()\" *ngIf=\"pageId\">\n Back To Page\n </button>\n <button (click)=\"importConfigPopup()\" class=\"{{commonService.btn_warning_md}}\">\n Import Config\n </button>\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"createNewComponentView()\">\n Add View\n </button>\n\n </div>\n </h6>\n <app-loader *ngIf=\"isLoader\"></app-loader>\n <dx-data-grid [columnAutoWidth]=\"true\" [dataSource]=\"componentViewTableDataSource\"\n [hoverStateEnabled]=\"true\" *ngIf=\"!isLoader\" [selectedRowKeys]=\"[]\" [showBorders]=\"true\"\n [showColumnLines]=\"true\" [showRowLines]=\"true\" id=\"gridContainer\">\n <dxo-paging [pageSize]=\"10\"></dxo-paging>\n <dxo-export [enabled]=\"true\"></dxo-export>\n <dxo-search-panel [highlightCaseSensitive]=\"true\" [visible]=\"true\">\n </dxo-search-panel>\n\n <dxi-column dataField=\"viewName\"></dxi-column>\n <!-- <dxi-column dataField=\"datasetName\"></dxi-column>-->\n <!-- <dxi-column dataField=\"viewLabel\"></dxi-column> -->\n <dxi-column dataField=\"kpiConfig.formate\"></dxi-column>\n <dxi-column dataField=\"kpiConfig.componentName\"></dxi-column>\n <dxi-column dataField=\"viewType\"></dxi-column>\n <dxi-column dataField=\"createdBy\"></dxi-column>\n <dxi-column dataField=\"creationDate\"></dxi-column>\n <dxi-column dataField=\"action\" cellTemplate=\"cellTemplate\" [fixed]=\"true\"\n fixedPosition=\"right\"></dxi-column>\n <div *dxTemplate=\"let data of 'cellTemplate'\">\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"editViews(data.data)\">\n Edit\n </button>\n <!-- <button class=\"{{commonService.btn_warning_md}}\" (click)=\"duplicateViews(data.data)\">\n Duplicate\n </button> -->\n <button class=\"{{commonService.btn_danger_md}}\" (click)=\"deleteDataset(data.data)\">\n Delete\n </button>\n\n <button class=\"{{commonService.btn_primary_md}}\" (click)=\"exportJsonFile(data.data)\"\n title=\"Export View\">\n <i class=\"fa fa-sign-out\"></i>\n\n </button>\n <button class=\"{{commonService.btn_warning_md}}\" (click)=\"copyJsonFile(data.data)\"\n title=\"Copy as Json\">\n <i class=\"fa fa-files-o\"></i>\n\n\n </button>\n </div>\n\n\n\n </dx-data-grid>\n </div>\n </div>\n\n</div>\n\n\n<dx-popup [(visible)]=\"isPopupVisible\" [dragEnabled]=\"false\" [closeOnOutsideClick]=\"false\" [showTitle]=\"true\"\n title=\"Model Editor\" [width]=\"1000\" [height]=\"620\">\n\n <div>\n <button (click)=\"hidePopup()\" class=\"btn btn-secondary\"></button>\n <div class=\"m-2 flex items-center justify-between\">\n <input type=\"file\" #fileInput accept=\".json\"\n class=\"block w-3/5 p-2 text-sm text-gray-400 border border-gray-700 rounded-lg bg-gray-800 focus:ring-blue-500 focus:border-blue-500\"\n (change)=\"onjsonFileSelected($event)\">\n <button (click)=\"submitView()\" class=\"{{commonService.btn_success_md}} mr-4\">Submit</button>\n\n </div>\n <textarea [(ngModel)]=\"jsonContent\"\n class=\"w-full h-100 p-2 border border-gray-700 rounded-lg bg-gray-800 text-gray-400\"></textarea>\n </div>\n</dx-popup>" }]
130
195
  }], ctorParameters: function () { return [{ type: i1.ApplicationContentService }, { type: i2.CommonService }, { type: i3.ToastrService }, { type: i4.Title }, { type: i5.ActivatedRoute }, { type: i5.Router }]; }, propDecorators: { scrollToElement: [{
131
196
  type: ViewChild,
132
197
  args: ['scrollToElement']
133
198
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9hcHBsaWNhdGlvbi12aWV3cy9hcHBsaWNhdGlvbi12aWV3cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tdmlldy1jb21wb25lbnRzL2FwcGxpY2F0aW9uLXZpZXdzL2FwcGxpY2F0aW9uLXZpZXdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFXL0MsTUFBTSxPQUFPLHlCQUF5QjtJQXdCcEMsWUFDVSxPQUFrQyxFQUNuQyxhQUE0QixFQUMzQixNQUFxQixFQUNyQixLQUFZLEVBQ1osY0FBOEIsRUFDOUIsTUFBYztRQUxkLFlBQU8sR0FBUCxPQUFPLENBQTJCO1FBQ25DLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzNCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUNaLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBM0J4QixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLDZCQUF3QixHQUFZLEtBQUssQ0FBQztR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QUMsQ0FBQyx1Q0FBdUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzdFO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHVDQUF1QyxDQUFDLENBQUMsQ0FBQztTQUNqRTtJQUNILENBQUM7O3NIQWxKVSx5QkFBeUI7MEdBQXpCLHlCQUF5QixpTENkdEMsODZGQTJETTsyRkQ3Q08seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1Qjs4T0EwQkgsZUFBZTtzQkFBNUMsU0FBUzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBUb2FzdHJTZXJ2aWNlIH0gZnJvbSAnbmd4LXRvYXN0cic7XG5pbXBvcnQgeyBjb25maXJtIH0gZnJvbSAnZGV2ZXh0cmVtZS91aS9kaWFsb2cnO1xuaW1wb3J0IHsgVGl0bGUgfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FeHRyYXMsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24tY29udGVudC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vblNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtYXBwbGljYXRpb24tdmlld3MnLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hcHBsaWNhdGlvbi12aWV3cy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uVmlld3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb21wb25lbnRWaWV3VGFibGVEYXRhU291cmNlOiBhbnk7XG4gIGRhdGFTZXR0YWJsZURhdGFTb3VyY2U6IGFueTtcbiAgaXNMb2FkZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNFZGl0Q2xpY2s6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNGaWx0ZXJJbnB1dHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNOZXdDb21wb25lbnRWaWV3Q3JlYXRlOiBib29sZWFuID0gZmFsc2U7XG4gIGlzRHVwbGlkYXRlVmlldzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGlzQ3JlYXRlVmlld0Zyb21LcGk6IGJvb2xlYW47XG4gIGlzQ3JlYXRlVmlld0Zyb21LcGlMb2FkZXI6IGJvb2xlYW47XG4gIGlzQ3JlYXRlTmV3VmlldzogYm9vbGVhbjtcbiAgdHJlZUxpc3RGb3JTZWFyY2hCb3g6IGFueSA9IFtdO1xuICBzZWxlY3RlZERhdGFTZXQ6IGFueSA9IHt9O1xuICB2aWV3SWQ6IGFueTtcbiAgcGFnZUlkOiBhbnk7XG4gIGNvbXBvbmVudE5hbWVzT3RoZXJzID0gW1xuICAgIHsgXCJjb21wTmFtZVwiOiBcIkdhbW1hVG9kYXlQcmV2aW91c0NvbXBvbmVudFwiLCBcIml0ZW1cIjogXCJUb2RheSB2cyBQcmV2aW91cyBEYXkgXCIgfSxcbiAgICB7IFwiY29tcE5hbWVcIjogXCJHYW1tYVRhYmxlV2l0aFBlcmNlbnRhZ2VDb21wb25lbnRcIiwgXCJpdGVtXCI6IFwiVGFibGUgVmlldyB3aXRoIHBlcmNlbnRhZ2VcIiB9LFxuICAgIHsgXCJjb21wTmFtZVwiOiBcIkdhbW1TaW5nbGVOdW1iZXJDYXJkQ29tcG9uZW50XCIsIFwiaXRlbVwiOiBcIlNpbmdsZSBOdW1iZXIgQ2FyZFwiIH1cbiAgXVxuICBjb21wb25lbnROYW1lOiBhbnk7XG4gIEBWaWV3Q2hpbGQoJ3Njcm9sbFRvRWxlbWVudCcpIHNjcm9sbFRvRWxlbWVudCE6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBBcHBsaWNhdGlvbkNvbnRlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb21tb25TZXJ2aWNlOiBDb21tb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlLFxuICAgIHByaXZhdGUgdGl0bGU6IFRpdGxlLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgdGhpcy50aXRsZS5zZXRUaXRsZSgnQXBwbGljYXRpb24gVmlld3MnKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGxldCBjb250ZW50Vmlld0lkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncGFnZUlkJ107XG4gICAgaWYgKGNvbnRlbnRWaWV3SWQpIHtcbiAgICAgIHRoaXMucGFnZUlkID0gdHJ1ZTtcbiAgICB9XG5cblxuICAgIHRoaXMuZ2V0Q29tcG9uZW50Vmlld1NldCgpO1xuICB9XG5cbiAgY3JlYXRlTmV3Q29tcG9uZW50VmlldygpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvblZpZXdzL3ZpZXdFZGl0b3InXSlcbiAgfVxuXG5cbiAgZ2V0Q29tcG9uZW50Vmlld1NldCgpIHtcbiAgICB0aGlzLmlzTG9hZGVyID0gdHJ1ZTtcbiAgICB0aGlzLnNlcnZpY2UuZ2V0QXBwVmlld0NvbmZpZ3MoKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLmNvbXBvbmVudFZpZXdUYWJsZURhdGFTb3VyY2UgPSBkYXRhO1xuICAgICAgICB0aGlzLmlzTG9hZGVyID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNOZXdDb21wb25lbnRWaWV3Q3JlYXRlID0gZmFsc2U7XG4gICAgICAgIHRoaXMuaXNEdXBsaWRhdGVWaWV3ID0gZmFsc2U7XG4gICAgICB9LCBlcnJvcjogKGVycjogYW55KSA9PiB7XG4gICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnVmlldyBDcmVhdGlvbicpXG5cbiAgICAgIH1cbiAgICB9KVxuICB9XG5cblxuXG5cblxuXG5cblxuXG5cblxuXG5cbiAgZWRpdFZpZXdzKGRhdGEpIHtcbiAgICBsZXQgbmF2aWdhdGlvbkV4dHJhOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgdmlld0lkOiBkYXRhLnZpZXdJZCxcbiAgICAgICAgY29udGVudFR5cGU6IFwiZWRpdFwiXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2FwcHMvY29udHJvbFBhbmVsL2FwcGxpY2F0aW9uVmlld3Mvdmlld0VkaXRvciddLCBuYXZpZ2F0aW9uRXh0cmEpXG5cbiAgfVxuXG4gIGR1cGxpY2F0ZVZpZXdzKGRhdGEpIHtcbiAgICBsZXQgbmF2aWdhdGlvbkV4dHJhOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgdmlld0lkOiBkYXRhLnZpZXdJZCxcbiAgICAgICAgY29udGVudFR5cGU6IFwiY2xvbmVcIlxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvblZpZXdzL3ZpZXdFZGl0b3InXSwgbmF2aWdhdGlvbkV4dHJhKVxuICB9XG5cbiAgZGVsZXRlRGF0YXNldChkYXRhKSB7XG4gICAgbGV0IHJlc3VsdCA9IGNvbmZpcm0oXCI8aT5BcmUgWW91IFN1cmU/PC9pPlwiLCBcIkRlbGV0ZSBEYXRhc2V0XCIpO1xuICAgIHJlc3VsdC50aGVuKChkaWFsb2dSZXN1bHQpID0+IHtcbiAgICAgIGlmIChkaWFsb2dSZXN1bHQpIHtcbiAgICAgICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgICAgIHRoaXMuc2VydmljZS5kZWxldGVBcHBWaWV3Q29uZmlnKGRhdGEudmlld0lkKS5zdWJzY3JpYmUoKHZhbDogYW55KSA9PiB7XG4gICAgICAgICAgdGhpcy5nZXRDb21wb25lbnRWaWV3U2V0KCk7XG4gICAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMuaXNFZGl0Q2xpY2sgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdEYXRhc2V0IERlbGV0ZWQgU3VjY2Vzc2Z1bGx5JylcbiAgICAgICAgfSwgZXJyID0+IHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpO1xuICAgICAgICAgIHRoaXMudG9hc3RyLmVycm9yKCdVbmV4cGVjdGVkIFNlcnZlciBFeGNlcHRpb24uIFBsZWFzZSBjb250YWN0IFN5c3RlbSBBZG1pbi4nLCAnUnVsZSBNb2R1bGUnKTtcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG5cbiAgZ2V0Q2FwaXRhbGl6ZShpdGVtOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5jb21tb25TZXJ2aWNlLmNvbnZlcnRUb1NwYWNlU2VwYXJhdGVkQ2FwaXRhbGl6ZWQoaXRlbSlcbiAgfVxuXG4gIGJhY2tUb1BhZ2UoKSB7XG4gICAgbGV0IGNvbnRlbnRWaWV3SWQgPSB0aGlzLmFjdGl2YXRlZFJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zWydwYWdlSWQnXTtcbiAgICBpZiAoY29udGVudFZpZXdJZCkge1xuICAgICAgbGV0IG5hdmlnYXRpb246IE5hdmlnYXRpb25FeHRyYXMgPSB7XG4gICAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgICAgJ3BhZ2VJZCc6IGNvbnRlbnRWaWV3SWQsXG4gICAgICAgICAgXCJjb250ZW50VHlwZVwiOiAnZWRpdCdcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2FwcHMvY29udHJvbFBhbmVsL3BhZ2VDb25maWdDb250cm9sbGVyJ10sIG5hdmlnYXRpb24pO1xuICAgIH1cbiAgfVxuXG4gIGdvdG9EYXRhc2V0KCkge1xuICAgIGxldCBjb250ZW50Vmlld0lkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncGFnZUlkJ107XG4gICAgaWYgKGNvbnRlbnRWaWV3SWQpIHtcbiAgICAgIGxldCBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICdwYWdlSWQnOiBjb250ZW50Vmlld0lkLFxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0J10sIG5hdmlnYXRpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvbkRhdGFzZXQnXSk7XG4gICAgfVxuICB9XG5cblxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC1hdXRvIG1pbi13LTBcIj5cblxuICAgIDxsaWItY29tbW9uLWhlYWRlciBbcGFnZVRpdGxlXT1cIidBcHBsaWNhdGlvbiBWaWV3cydcIj48L2xpYi1jb21tb24taGVhZGVyPlxuXG4gICAgPGRpdiBjbGFzcz1cInAtNCB3LWZ1bGxcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm0tMyBwLTQgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTIwMCByb3VuZGVkLWxnIHNoYWRvdy1tZCBkYXJrOmJnLWdyYXktODAwIGRhcms6Ym9yZGVyLWdyYXktNzAwXCI+XG4gICAgICAgICAgICA8aDYgY2xhc3M9XCJtYi0yIHRleHQtbGcgdHJhY2tpbmctdGlnaHQgdGV4dC1ncmF5LTkwMFxuICAgICAgICAgICAgICAgIGRhcms6dGV4dC13aGl0ZSBib3JkZXItYiBwYi0zIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYSBmYS10YWJsZSBtci0yXCI+PC9pPiBNYW5hZ2UgVmlld3NcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWwtYXV0b1wiPlxuXG5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5MaWdodFdoaXRlfX1cIiAoY2xpY2spPVwiYmFja1RvUGFnZSgpXCIgKm5nSWY9XCJwYWdlSWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEJhY2sgVG8gUGFnZVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9wcmltYXJ5X21kfX1cIiAoY2xpY2spPVwiY3JlYXRlTmV3Q29tcG9uZW50VmlldygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGQgVmlld1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgIDxhcHAtbG9hZGVyICpuZ0lmPVwiaXNMb2FkZXJcIj48L2FwcC1sb2FkZXI+XG4gICAgICAgICAgICA8ZHgtZGF0YS1ncmlkIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtkYXRhU291cmNlXT1cImNvbXBvbmVudFZpZXdUYWJsZURhdGFTb3VyY2VcIlxuICAgICAgICAgICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgKm5nSWY9XCIhaXNMb2FkZXJcIiBbc2VsZWN0ZWRSb3dLZXlzXT1cIltdXCIgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzaG93Q29sdW1uTGluZXNdPVwidHJ1ZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiIGlkPVwiZ3JpZENvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cbiAgICAgICAgICAgICAgICA8ZHhvLWV4cG9ydCBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tZXhwb3J0PlxuICAgICAgICAgICAgICAgIDxkeG8tc2VhcmNoLXBhbmVsIFtoaWdobGlnaHRDYXNlU2Vuc2l0aXZlXT1cInRydWVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPC9keG8tc2VhcmNoLXBhbmVsPlxuXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidmlld05hbWVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkYXRhc2V0TmFtZVwiPjwvZHhpLWNvbHVtbj4tLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInZpZXdMYWJlbFwiPjwvZHhpLWNvbHVtbj4gLS0+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwia3BpQ29uZmlnLmZvcm1hdGVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwia3BpQ29uZmlnLmNvbXBvbmVudE5hbWVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidmlld1R5cGVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY3JlYXRlZEJ5XCI+PC9keGktY29sdW1uPlxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImNyZWF0aW9uRGF0ZVwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJhY3Rpb25cIiBjZWxsVGVtcGxhdGU9XCJjZWxsVGVtcGxhdGVcIiBbZml4ZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZpeGVkUG9zaXRpb249XCJyaWdodFwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NlbGxUZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fcHJpbWFyeV9tZH19XCIgKGNsaWNrKT1cImVkaXRWaWV3cyhkYXRhLmRhdGEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3dhcm5pbmdfbWR9fVwiIChjbGljayk9XCJkdXBsaWNhdGVWaWV3cyhkYXRhLmRhdGEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBEdXBsaWNhdGVcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9kYW5nZXJfbWR9fVwiIChjbGljayk9XCJkZWxldGVEYXRhc2V0KGRhdGEuZGF0YSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuXG5cbiAgICAgICAgICAgIDwvZHgtZGF0YS1ncmlkPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuPC9kaXY+Il19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ2FtbWEtYXBwLWNvbnRyb2xsZXIvc3JjL2xpYi9hcHBsaWNhdGlvbi1jb250cm9sbGVyL2FwcGxpY2F0aW9uLXZpZXctY29tcG9uZW50cy9hcHBsaWNhdGlvbi12aWV3cy9hcHBsaWNhdGlvbi12aWV3cy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9nYW1tYS1hcHAtY29udHJvbGxlci9zcmMvbGliL2FwcGxpY2F0aW9uLWNvbnRyb2xsZXIvYXBwbGljYXRpb24tdmlldy1jb21wb25lbnRzL2FwcGxpY2F0aW9uLXZpZXdzL2FwcGxpY2F0aW9uLXZpZXdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQVcvQyxNQUFNLE9BQU8seUJBQXlCO0lBd0JwQyxZQUNVLE9BQWtDLEVBQ25DLGFBQTRCLEVBQzNCLE1BQXFCLEVBQ3JCLEtBQVksRUFDWixjQUE4QixFQUM5QixNQUFjO1FBTGQsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFDbkMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDM0IsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ1osbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFdBQU0sR0FBTixNQUFNLENBQVE7UUEzQnhCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxLQUFLLENBQUM7UUFDaEMsNkJBQXdCLEdBQVksS0FBSyxDQUFD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ZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZSwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVG9hc3RyU2VydmljZSB9IGZyb20gJ25neC10b2FzdHInO1xuaW1wb3J0IHsgY29uZmlybSB9IGZyb20gJ2RldmV4dHJlbWUvdWkvZGlhbG9nJztcbmltcG9ydCB7IFRpdGxlIH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRXh0cmFzLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Db250ZW50U2VydmljZSB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uLWNvbnRlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBDb21tb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWFwcGxpY2F0aW9uLXZpZXdzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxpY2F0aW9uLXZpZXdzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYXBwbGljYXRpb24tdmlld3MuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvblZpZXdzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29tcG9uZW50Vmlld1RhYmxlRGF0YVNvdXJjZTogYW55O1xuICBkYXRhU2V0dGFibGVEYXRhU291cmNlOiBhbnk7XG4gIGlzTG9hZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIGlzRWRpdENsaWNrOiBib29sZWFuID0gZmFsc2U7XG4gIGlzRmlsdGVySW5wdXRzOiBib29sZWFuID0gZmFsc2U7XG4gIGlzTmV3Q29tcG9uZW50Vmlld0NyZWF0ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpc0R1cGxpZGF0ZVZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBpc0NyZWF0ZVZpZXdGcm9tS3BpOiBib29sZWFuO1xuICBpc0NyZWF0ZVZpZXdGcm9tS3BpTG9hZGVyOiBib29sZWFuO1xuICBpc0NyZWF0ZU5ld1ZpZXc6IGJvb2xlYW47XG4gIHRyZWVMaXN0Rm9yU2VhcmNoQm94OiBhbnkgPSBbXTtcbiAgc2VsZWN0ZWREYXRhU2V0OiBhbnkgPSB7fTtcbiAgdmlld0lkOiBhbnk7XG4gIHBhZ2VJZDogYW55O1xuICBjb21wb25lbnROYW1lc090aGVycyA9IFtcbiAgICB7IFwiY29tcE5hbWVcIjogXCJHYW1tYVRvZGF5UHJldmlvdXNDb21wb25lbnRcIiwgXCJpdGVtXCI6IFwiVG9kYXkgdnMgUHJldmlvdXMgRGF5IFwiIH0sXG4gICAgeyBcImNvbXBOYW1lXCI6IFwiR2FtbWFUYWJsZVdpdGhQZXJjZW50YWdlQ29tcG9uZW50XCIsIFwiaXRlbVwiOiBcIlRhYmxlIFZpZXcgd2l0aCBwZXJjZW50YWdlXCIgfSxcbiAgICB7IFwiY29tcE5hbWVcIjogXCJHYW1tU2luZ2xlTnVtYmVyQ2FyZENvbXBvbmVudFwiLCBcIml0ZW1cIjogXCJTaW5nbGUgTnVtYmVyIENhcmRcIiB9XG4gIF1cbiAgY29tcG9uZW50TmFtZTogYW55O1xuICBAVmlld0NoaWxkKCdzY3JvbGxUb0VsZW1lbnQnKSBzY3JvbGxUb0VsZW1lbnQhOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VydmljZTogQXBwbGljYXRpb25Db250ZW50U2VydmljZSxcbiAgICBwdWJsaWMgY29tbW9uU2VydmljZTogQ29tbW9uU2VydmljZSxcbiAgICBwcml2YXRlIHRvYXN0cjogVG9hc3RyU2VydmljZSxcbiAgICBwcml2YXRlIHRpdGxlOiBUaXRsZSxcbiAgICBwcml2YXRlIGFjdGl2YXRlZFJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMudGl0bGUuc2V0VGl0bGUoJ0FwcGxpY2F0aW9uIFZpZXdzJyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgY29udGVudFZpZXdJZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3BhZ2VJZCddO1xuICAgIGlmIChjb250ZW50Vmlld0lkKSB7XG4gICAgICB0aGlzLnBhZ2VJZCA9IHRydWU7XG4gICAgfVxuXG5cbiAgICB0aGlzLmdldENvbXBvbmVudFZpZXdTZXQoKTtcbiAgfVxuXG4gIGNyZWF0ZU5ld0NvbXBvbmVudFZpZXcoKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25WaWV3cy92aWV3RWRpdG9yJ10pXG4gIH1cblxuXG4gIGdldENvbXBvbmVudFZpZXdTZXQoKSB7XG4gICAgdGhpcy5pc0xvYWRlciA9IHRydWU7XG4gICAgdGhpcy5zZXJ2aWNlLmdldEFwcFZpZXdDb25maWdzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChkYXRhOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5jb21wb25lbnRWaWV3VGFibGVEYXRhU291cmNlID0gZGF0YTtcbiAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzTmV3Q29tcG9uZW50Vmlld0NyZWF0ZSA9IGZhbHNlO1xuICAgICAgICB0aGlzLmlzRHVwbGlkYXRlVmlldyA9IGZhbHNlO1xuICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ1ZpZXcgQ3JlYXRpb24nKVxuXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG5cblxuXG5cblxuXG5cblxuXG5cblxuXG4gIGVkaXRWaWV3cyhkYXRhKSB7XG4gICAgbGV0IG5hdmlnYXRpb25FeHRyYTogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIHZpZXdJZDogZGF0YS52aWV3SWQsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBcImVkaXRcIlxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9hcHBsaWNhdGlvblZpZXdzL3ZpZXdFZGl0b3InXSwgbmF2aWdhdGlvbkV4dHJhKVxuXG4gIH1cblxuICBkdXBsaWNhdGVWaWV3cyhkYXRhKSB7XG4gICAgbGV0IG5hdmlnYXRpb25FeHRyYTogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgIHF1ZXJ5UGFyYW1zOiB7XG4gICAgICAgIHZpZXdJZDogZGF0YS52aWV3SWQsXG4gICAgICAgIGNvbnRlbnRUeXBlOiBcImNsb25lXCJcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25WaWV3cy92aWV3RWRpdG9yJ10sIG5hdmlnYXRpb25FeHRyYSlcbiAgfVxuXG4gIGRlbGV0ZURhdGFzZXQoZGF0YSkge1xuICAgIGxldCByZXN1bHQgPSBjb25maXJtKFwiPGk+QXJlIFlvdSBTdXJlPzwvaT5cIiwgXCJEZWxldGUgRGF0YXNldFwiKTtcbiAgICByZXN1bHQudGhlbigoZGlhbG9nUmVzdWx0KSA9PiB7XG4gICAgICBpZiAoZGlhbG9nUmVzdWx0KSB7XG4gICAgICAgIHRoaXMuaXNMb2FkZXIgPSB0cnVlO1xuICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlQXBwVmlld0NvbmZpZyhkYXRhLnZpZXdJZCkuc3Vic2NyaWJlKCh2YWw6IGFueSkgPT4ge1xuICAgICAgICAgIHRoaXMuZ2V0Q29tcG9uZW50Vmlld1NldCgpO1xuICAgICAgICAgIHRoaXMuaXNMb2FkZXIgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLmlzRWRpdENsaWNrID0gZmFsc2U7XG4gICAgICAgICAgdGhpcy50b2FzdHIuc3VjY2VzcygnRGF0YXNldCBEZWxldGVkIFN1Y2Nlc3NmdWxseScpXG4gICAgICAgIH0sIGVyciA9PiB7XG4gICAgICAgICAgY29uc29sZS5sb2coZXJyKTtcbiAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ1J1bGUgTW9kdWxlJyk7XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuXG4gIGdldENhcGl0YWxpemUoaXRlbTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuY29tbW9uU2VydmljZS5jb252ZXJ0VG9TcGFjZVNlcGFyYXRlZENhcGl0YWxpemVkKGl0ZW0pXG4gIH1cblxuICBiYWNrVG9QYWdlKCkge1xuICAgIGxldCBjb250ZW50Vmlld0lkID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtc1sncGFnZUlkJ107XG4gICAgaWYgKGNvbnRlbnRWaWV3SWQpIHtcbiAgICAgIGxldCBuYXZpZ2F0aW9uOiBOYXZpZ2F0aW9uRXh0cmFzID0ge1xuICAgICAgICBxdWVyeVBhcmFtczoge1xuICAgICAgICAgICdwYWdlSWQnOiBjb250ZW50Vmlld0lkLFxuICAgICAgICAgIFwiY29udGVudFR5cGVcIjogJ2VkaXQnXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hcHBzL2NvbnRyb2xQYW5lbC9wYWdlQ29uZmlnQ29udHJvbGxlciddLCBuYXZpZ2F0aW9uKTtcbiAgICB9XG4gIH1cblxuICBnb3RvRGF0YXNldCgpIHtcbiAgICBsZXQgY29udGVudFZpZXdJZCA9IHRoaXMuYWN0aXZhdGVkUm91dGUuc25hcHNob3QucXVlcnlQYXJhbXNbJ3BhZ2VJZCddO1xuICAgIGlmIChjb250ZW50Vmlld0lkKSB7XG4gICAgICBsZXQgbmF2aWdhdGlvbjogTmF2aWdhdGlvbkV4dHJhcyA9IHtcbiAgICAgICAgcXVlcnlQYXJhbXM6IHtcbiAgICAgICAgICAncGFnZUlkJzogY29udGVudFZpZXdJZCxcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2FwcHMvY29udHJvbFBhbmVsL2FwcGxpY2F0aW9uRGF0YXNldCddLCBuYXZpZ2F0aW9uKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvYXBwcy9jb250cm9sUGFuZWwvYXBwbGljYXRpb25EYXRhc2V0J10pO1xuICAgIH1cbiAgfVxuXG5cblxuXG4gIGlzUG9wdXBWaXNpYmxlID0gZmFsc2U7XG4gIGpzb25Db250ZW50OiBzdHJpbmcgPSAnJztcblxuXG4gIGltcG9ydENvbmZpZ1BvcHVwKCk6IHZvaWQge1xuICAgIHRoaXMuaXNQb3B1cFZpc2libGUgPSB0cnVlO1xuXG4gIH1cblxuICBoaWRlUG9wdXAoKTogdm9pZCB7XG4gICAgdGhpcy5pc1BvcHVwVmlzaWJsZSA9IGZhbHNlO1xuICAgIHRoaXMuanNvbkNvbnRlbnQgPSAnJztcblxuICB9XG5cbiAgb25qc29uRmlsZVNlbGVjdGVkKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgaWYgKGlucHV0LmZpbGVzICYmIGlucHV0LmZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbGUgPSBpbnB1dC5maWxlc1swXTtcbiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZTogUHJvZ3Jlc3NFdmVudDxGaWxlUmVhZGVyPikgPT4ge1xuICAgICAgICBpZiAoZS50YXJnZXQpIHtcbiAgICAgICAgICBjb25zdCBwYXJzZWRDb250ZW50ID0gSlNPTi5wYXJzZShlLnRhcmdldC5yZXN1bHQgYXMgc3RyaW5nKTtcblxuICAgICAgICAgIHBhcnNlZENvbnRlbnQudmlld0lkID0gJyc7XG4gICAgICAgICAgdGhpcy5qc29uQ29udGVudCA9IEpTT04uc3RyaW5naWZ5KHBhcnNlZENvbnRlbnQsIG51bGwsIDIpO1xuXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcbiAgICB9XG4gIH1cblxuXG4gIHN1Ym1pdFZpZXcoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2codGhpcy5qc29uQ29udGVudClcbiAgICB0aGlzLnNlcnZpY2UuY3JlYXRlQXBwVmlld0NvbmZpZyhKU09OLnBhcnNlKHRoaXMuanNvbkNvbnRlbnQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGRhdGE6IGFueSkgPT4ge1xuXG4gICAgICAgIHRoaXMudG9hc3RyLnN1Y2Nlc3MoJ1ZpZXcgQ3JlYXRlZCBTdWNjZXNzZnVsbHknKVxuICAgICAgICB0aGlzLmdldENvbXBvbmVudFZpZXdTZXQoKTtcbiAgICAgICAgdGhpcy5pc0xvYWRlciA9IGZhbHNlO1xuICAgICAgICAvLyB0aGlzLmFkZE5ld1ZpZXcoKTtcblxuICAgICAgfSwgZXJyb3I6IChlcnI6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignVW5leHBlY3RlZCBTZXJ2ZXIgRXhjZXB0aW9uLiBQbGVhc2UgY29udGFjdCBTeXN0ZW0gQWRtaW4uJywgJ1ZpZXcgQ3JlYXRpb24nKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuXG4gIGV4cG9ydEpzb25GaWxlKGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ05vIGRhdGEgYXZhaWxhYmxlIHRvIGV4cG9ydC4nLCAnRXhwb3J0IEVycm9yJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QganNvblN0ciA9IEpTT04uc3RyaW5naWZ5KGl0ZW0sIG51bGwsIDIpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbanNvblN0cl0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nIH0pO1xuICAgIGNvbnN0IHVybCA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgIGNvbnN0IGFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBhbmNob3IuaHJlZiA9IHVybDtcbiAgICBhbmNob3IuZG93bmxvYWQgPSBgJHtpdGVtLnZpZXdOYW1lLnJlcGxhY2UoLyAvZywgJ18nKX0uanNvbmA7XG4gICAgYW5jaG9yLmNsaWNrKCk7XG4gICAgd2luZG93LlVSTC5yZXZva2VPYmplY3RVUkwodXJsKTtcbiAgfVxuXG5cbiAgY29weUpzb25GaWxlKGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICghaXRlbSkge1xuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ05vIGRhdGEgYXZhaWxhYmxlIHRvIGNvcHkuJywgJ0NvcHkgRXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QganNvblN0ciA9IEpTT04uc3RyaW5naWZ5KGl0ZW0sIG51bGwsIDIpO1xuXG4gICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQoanNvblN0cikudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLnRvYXN0ci5zdWNjZXNzKCdEYXRhIGNvcGllZCB0byBjbGlwYm9hcmQuJywgJ1N1Y2Nlc3MnKTtcbiAgICB9KS5jYXRjaChlcnIgPT4ge1xuICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ0ZhaWxlZCB0byBjb3B5IGRhdGEuJywgJ0NvcHkgRXJyb3InKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhaWxlZCB0byBjb3B5IHRleHQ6ICcsIGVycik7XG4gICAgfSk7XG4gIH1cblxuXG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtYXV0byBtaW4tdy0wXCI+XG5cbiAgICA8bGliLWNvbW1vbi1oZWFkZXIgW3BhZ2VUaXRsZV09XCInQXBwbGljYXRpb24gVmlld3MnXCI+PC9saWItY29tbW9uLWhlYWRlcj5cblxuICAgIDxkaXYgY2xhc3M9XCJwLTQgdy1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtLTMgcC00IGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0yMDAgcm91bmRlZC1sZyBzaGFkb3ctbWQgZGFyazpiZy1ncmF5LTgwMCBkYXJrOmJvcmRlci1ncmF5LTcwMFwiPlxuICAgICAgICAgICAgPGg2IGNsYXNzPVwibWItMiB0ZXh0LWxnIHRyYWNraW5nLXRpZ2h0IHRleHQtZ3JheS05MDBcbiAgICAgICAgICAgICAgICBkYXJrOnRleHQtd2hpdGUgYm9yZGVyLWIgcGItMyBmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtdGFibGUgbXItMlwiPjwvaT4gTWFuYWdlIFZpZXdzXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1sLWF1dG9cIj5cblxuXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuTGlnaHRXaGl0ZX19XCIgKGNsaWNrKT1cImJhY2tUb1BhZ2UoKVwiICpuZ0lmPVwicGFnZUlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBCYWNrIFRvIFBhZ2VcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImltcG9ydENvbmZpZ1BvcHVwKClcIiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fd2FybmluZ19tZH19XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBJbXBvcnQgQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9wcmltYXJ5X21kfX1cIiAoY2xpY2spPVwiY3JlYXRlTmV3Q29tcG9uZW50VmlldygpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBBZGQgVmlld1xuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9oNj5cbiAgICAgICAgICAgIDxhcHAtbG9hZGVyICpuZ0lmPVwiaXNMb2FkZXJcIj48L2FwcC1sb2FkZXI+XG4gICAgICAgICAgICA8ZHgtZGF0YS1ncmlkIFtjb2x1bW5BdXRvV2lkdGhdPVwidHJ1ZVwiIFtkYXRhU291cmNlXT1cImNvbXBvbmVudFZpZXdUYWJsZURhdGFTb3VyY2VcIlxuICAgICAgICAgICAgICAgIFtob3ZlclN0YXRlRW5hYmxlZF09XCJ0cnVlXCIgKm5nSWY9XCIhaXNMb2FkZXJcIiBbc2VsZWN0ZWRSb3dLZXlzXT1cIltdXCIgW3Nob3dCb3JkZXJzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzaG93Q29sdW1uTGluZXNdPVwidHJ1ZVwiIFtzaG93Um93TGluZXNdPVwidHJ1ZVwiIGlkPVwiZ3JpZENvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkeG8tcGFnaW5nIFtwYWdlU2l6ZV09XCIxMFwiPjwvZHhvLXBhZ2luZz5cbiAgICAgICAgICAgICAgICA8ZHhvLWV4cG9ydCBbZW5hYmxlZF09XCJ0cnVlXCI+PC9keG8tZXhwb3J0PlxuICAgICAgICAgICAgICAgIDxkeG8tc2VhcmNoLXBhbmVsIFtoaWdobGlnaHRDYXNlU2Vuc2l0aXZlXT1cInRydWVcIiBbdmlzaWJsZV09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgPC9keG8tc2VhcmNoLXBhbmVsPlxuXG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidmlld05hbWVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPCEtLSAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJkYXRhc2V0TmFtZVwiPjwvZHhpLWNvbHVtbj4tLT5cbiAgICAgICAgICAgICAgICA8IS0tIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cInZpZXdMYWJlbFwiPjwvZHhpLWNvbHVtbj4gLS0+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwia3BpQ29uZmlnLmZvcm1hdGVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwia3BpQ29uZmlnLmNvbXBvbmVudE5hbWVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwidmlld1R5cGVcIj48L2R4aS1jb2x1bW4+XG4gICAgICAgICAgICAgICAgPGR4aS1jb2x1bW4gZGF0YUZpZWxkPVwiY3JlYXRlZEJ5XCI+PC9keGktY29sdW1uPlxuICAgICAgICAgICAgICAgIDxkeGktY29sdW1uIGRhdGFGaWVsZD1cImNyZWF0aW9uRGF0ZVwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZHhpLWNvbHVtbiBkYXRhRmllbGQ9XCJhY3Rpb25cIiBjZWxsVGVtcGxhdGU9XCJjZWxsVGVtcGxhdGVcIiBbZml4ZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIGZpeGVkUG9zaXRpb249XCJyaWdodFwiPjwvZHhpLWNvbHVtbj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpkeFRlbXBsYXRlPVwibGV0IGRhdGEgb2YgJ2NlbGxUZW1wbGF0ZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInt7Y29tbW9uU2VydmljZS5idG5fcHJpbWFyeV9tZH19XCIgKGNsaWNrKT1cImVkaXRWaWV3cyhkYXRhLmRhdGEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBFZGl0XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIDxidXR0b24gY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3dhcm5pbmdfbWR9fVwiIChjbGljayk9XCJkdXBsaWNhdGVWaWV3cyhkYXRhLmRhdGEpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBEdXBsaWNhdGVcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9kYW5nZXJfbWR9fVwiIChjbGljayk9XCJkZWxldGVEYXRhc2V0KGRhdGEuZGF0YSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIERlbGV0ZVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl9wcmltYXJ5X21kfX1cIiAoY2xpY2spPVwiZXhwb3J0SnNvbkZpbGUoZGF0YS5kYXRhKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZT1cIkV4cG9ydCBWaWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhIGZhLXNpZ24tb3V0XCI+PC9pPlxuXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwie3tjb21tb25TZXJ2aWNlLmJ0bl93YXJuaW5nX21kfX1cIiAoY2xpY2spPVwiY29weUpzb25GaWxlKGRhdGEuZGF0YSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJDb3B5IGFzIEpzb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmEgZmEtZmlsZXMtb1wiPjwvaT5cblxuXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cblxuICAgICAgICAgICAgPC9keC1kYXRhLWdyaWQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG48L2Rpdj5cblxuXG48ZHgtcG9wdXAgWyh2aXNpYmxlKV09XCJpc1BvcHVwVmlzaWJsZVwiIFtkcmFnRW5hYmxlZF09XCJmYWxzZVwiIFtjbG9zZU9uT3V0c2lkZUNsaWNrXT1cImZhbHNlXCIgW3Nob3dUaXRsZV09XCJ0cnVlXCJcbiAgICB0aXRsZT1cIk1vZGVsIEVkaXRvclwiIFt3aWR0aF09XCIxMDAwXCIgW2hlaWdodF09XCI2MjBcIj5cblxuICAgIDxkaXY+XG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImhpZGVQb3B1cCgpXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiPjwvYnV0dG9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS0yIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlblwiPlxuICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJmaWxlXCIgI2ZpbGVJbnB1dCBhY2NlcHQ9XCIuanNvblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJibG9jayB3LTMvNSBwLTIgdGV4dC1zbSB0ZXh0LWdyYXktNDAwIGJvcmRlciBib3JkZXItZ3JheS03MDAgcm91bmRlZC1sZyBiZy1ncmF5LTgwMCBmb2N1czpyaW5nLWJsdWUtNTAwIGZvY3VzOmJvcmRlci1ibHVlLTUwMFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvbmpzb25GaWxlU2VsZWN0ZWQoJGV2ZW50KVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwic3VibWl0VmlldygpXCIgY2xhc3M9XCJ7e2NvbW1vblNlcnZpY2UuYnRuX3N1Y2Nlc3NfbWR9fSBtci00XCI+U3VibWl0PC9idXR0b24+XG5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx0ZXh0YXJlYSBbKG5nTW9kZWwpXT1cImpzb25Db250ZW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGgtMTAwIHAtMiAgYm9yZGVyIGJvcmRlci1ncmF5LTcwMCByb3VuZGVkLWxnIGJnLWdyYXktODAwIHRleHQtZ3JheS00MDBcIj48L3RleHRhcmVhPlxuICAgIDwvZGl2PlxuPC9keC1wb3B1cD4iXX0=