@pepperi-addons/ngx-lib 0.4.0-angular14.6 → 0.4.0-angular14.9

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 (57) hide show
  1. package/esm2020/form/form.module.mjs +8 -3
  2. package/esm2020/form/internal-carusel.component.mjs +11 -13
  3. package/esm2020/form/internal-page.component.mjs +15 -18
  4. package/esm2020/link/link.component.mjs +10 -11
  5. package/esm2020/ngx-lib.module.mjs +4 -2
  6. package/esm2020/plugin/pepperi-addons-ngx-lib-plugin.mjs +5 -0
  7. package/esm2020/plugin/plugin-proxy.component.mjs +90 -0
  8. package/esm2020/plugin/plugin.model.mjs +2 -0
  9. package/esm2020/plugin/public-api.mjs +6 -0
  10. package/esm2020/query-builder/common/services/query-structure.service.mjs +12 -10
  11. package/esm2020/query-builder/query-builder.module.mjs +8 -3
  12. package/esm2020/remote-loader/remote-loader.component.mjs +40 -41
  13. package/esm2020/smart-filters/common/model/base-filter-component.mjs +1 -1
  14. package/esm2020/smart-filters/smart-filters.module.mjs +8 -3
  15. package/esm2020/textbox/textbox.component.mjs +9 -10
  16. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +31 -29
  17. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  18. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +8 -9
  19. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  20. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +107 -0
  21. package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  22. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +15 -8
  23. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  24. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +39 -40
  25. package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  26. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +7 -2
  27. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  28. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +10 -11
  29. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  30. package/fesm2015/pepperi-addons-ngx-lib.mjs +3 -1
  31. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  32. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +31 -29
  33. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  34. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +8 -9
  35. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  36. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +101 -0
  37. package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +1 -0
  38. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +15 -8
  39. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  40. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +39 -40
  41. package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
  42. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +7 -2
  43. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  44. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +10 -11
  45. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  46. package/fesm2020/pepperi-addons-ngx-lib.mjs +3 -1
  47. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  48. package/form/internal-carusel.component.d.ts +1 -3
  49. package/form/internal-page.component.d.ts +2 -4
  50. package/link/link.component.d.ts +2 -3
  51. package/package.json +9 -1
  52. package/plugin/index.d.ts +5 -0
  53. package/plugin/plugin-proxy.component.d.ts +22 -0
  54. package/plugin/plugin.model.d.ts +5 -0
  55. package/plugin/public-api.d.ts +2 -0
  56. package/query-builder/common/services/query-structure.service.d.ts +3 -4
  57. package/textbox/textbox.component.d.ts +2 -3
@@ -1,17 +1,16 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { FormControl, FormGroup } from '@angular/forms';
2
3
  import { BehaviorSubject } from 'rxjs';
3
4
  import { PepQueryBuilderSectionComponent } from '../../query-builder-section/query-builder-section.component';
4
5
  import { PepQueryBuilderItemComponent } from '../../query-builder-item/query-builder-item.component';
5
6
  import { PepQueryBuilderTypeMap } from '../../common/model/type-map';
6
7
  import { PepOperatorTypes } from '../../common/model/type';
7
8
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/forms";
9
- import * as i2 from "../../common/services/output-query.service";
10
- import * as i3 from "../../query-builder.service";
9
+ import * as i1 from "../../common/services/output-query.service";
10
+ import * as i2 from "../../query-builder.service";
11
11
  const MAX_STRUCTURE_DEPTH = 3;
12
12
  export class PepQueryStructureService {
13
- constructor(_fb, _resolver, _outputQueryService, _queryBuilderService) {
14
- this._fb = _fb;
13
+ constructor(_resolver, _outputQueryService, _queryBuilderService) {
15
14
  this._resolver = _resolver;
16
15
  this._outputQueryService = _outputQueryService;
17
16
  this._queryBuilderService = _queryBuilderService;
@@ -111,8 +110,11 @@ export class PepQueryStructureService {
111
110
  createSection(operator, containerRef, parentForm, depth) {
112
111
  const factory = this._resolver.resolveComponentFactory(PepQueryBuilderSectionComponent);
113
112
  const componentRef = containerRef.createComponent(factory);
114
- const sectionGroup = this._fb.group({
115
- operator: this._fb.control(operator)
113
+ // const sectionGroup = this._fb.group({
114
+ // operator: this._fb.control(operator)
115
+ // });
116
+ const sectionGroup = new FormGroup({
117
+ operator: new FormControl(operator)
116
118
  });
117
119
  let counter = 1;
118
120
  Object.keys(parentForm.controls).forEach(item => { if (item.includes('section')) {
@@ -216,9 +218,9 @@ export class PepQueryStructureService {
216
218
  }
217
219
  }
218
220
  }
219
- PepQueryStructureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryStructureService, deps: [{ token: i1.FormBuilder }, { token: i0.ComponentFactoryResolver }, { token: i2.PepOutputQueryService }, { token: i3.PepQueryBuilderService }], target: i0.ɵɵFactoryTarget.Injectable });
221
+ PepQueryStructureService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryStructureService, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.PepOutputQueryService }, { token: i2.PepQueryBuilderService }], target: i0.ɵɵFactoryTarget.Injectable });
220
222
  PepQueryStructureService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryStructureService });
221
223
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryStructureService, decorators: [{
222
224
  type: Injectable
223
- }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ComponentFactoryResolver }, { type: i2.PepOutputQueryService }, { type: i3.PepQueryBuilderService }]; } });
224
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBRXZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFldkMsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFDOUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFFckcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBRTNELE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxDQUFDO0FBRzlCLE1BQU0sT0FBTyx3QkFBd0I7SUFVakMsWUFDWSxHQUFnQixFQUNoQixTQUFtQyxFQUNuQyxtQkFBMEMsRUFDMUMsb0JBQTRDO1FBSDVDLFFBQUcsR0FBSCxHQUFHLENBQWE7UUFDaEIsY0FBUyxHQUFULFNBQVMsQ0FBMEI7UUFDbkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF1QjtRQUMxQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXdCO1FBYmhELGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQW1DLElBQUksQ0FBQyxDQUFDO1FBRzVFLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBRTFCLHVCQUFrQixHQUFHLG1CQUFtQixDQUFDO1FBRTFDLGlCQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQVF4RCxDQUFDO0lBRUQsSUFBSSxRQUFRLENBQUMsS0FBSztRQUNkLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFrQztRQUN6QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDVCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxJQUFrQztRQUNqRCxJQUFJLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDZCxNQUFNLFVBQVUsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUM7WUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLCtCQUErQixDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDdkcsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxDQUFDLEVBQUU7b0JBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDdkQ7cUJBQU07b0JBQ0gsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDckQ7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELElBQUksSUFBSSxDQUFDLEtBQWdCO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsbUJBQW1CLENBQ2YsS0FBdUMsRUFDdkMsWUFBOEI7UUFFOUIsOEJBQThCO1FBQzlCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO1lBQ3BDLEtBQUssRUFBRSxTQUFTO1lBQ2hCLEtBQUssQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFO1lBQ3RELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVEOzs7OztNQUtFO0lBQ00sV0FBVyxDQUFDLEdBQUcsRUFBRSxJQUFJO1FBQ3pCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ssT0FBTyxDQUFDLGNBQXNCLEVBQUUsT0FBeUMsRUFBRSxZQUE4QixFQUFFLFVBQXFCLEVBQUUsS0FBYTtRQUNuSixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLE1BQU0sT0FBTyxHQUFHLE9BQTJCLENBQUM7WUFDNUMsSUFBSSxjQUFjLEtBQUssT0FBTyxDQUFDLFNBQVMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDbkYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUN2RjtpQkFBTTtnQkFDSCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzFGLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDekc7U0FDSjthQUFNLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUF3QixFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztTQUN2RTtJQUNMLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsYUFBYSxDQUFDLFFBQTBCLEVBQUUsWUFBOEIsRUFBRSxVQUFxQixFQUFFLEtBQWE7UUFDMUcsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO1FBQ3hGLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFM0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDaEMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUN2QyxDQUFDLENBQUM7UUFDSCxJQUFJLE9BQU8sR0FBRyxDQUFDLENBQUM7UUFDaEIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQUUsT0FBTyxFQUFFLENBQUM7U0FBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sT0FBTyxHQUFHLFVBQVUsT0FBTyxFQUFFLENBQUM7UUFDcEMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFN0MsWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1FBQzFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHO1lBQzFCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7U0FDL0IsQ0FBQztRQUNGLFlBQVksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzFILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1QyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4QyxVQUFVLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPO1lBQ0gsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCO1lBQ3BELFVBQVUsRUFBRSxZQUFZO1NBQzNCLENBQUM7SUFDTixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxVQUFVLENBQUMsT0FBc0IsRUFBRSxZQUE4QixFQUFFLFVBQXFCO1FBQ3BGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQXVCLENBQUMsNEJBQTRCLENBQUMsQ0FBQztRQUNyRixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTNELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztRQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFBRSxPQUFPLEVBQUUsQ0FBQztTQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEcsTUFBTSxPQUFPLEdBQUcsT0FBTyxPQUFPLEVBQUUsQ0FBQztRQUVqQyxZQUFZLENBQUMsUUFBUSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDeEMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3ZELFlBQVksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDNUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksYUFBYSxFQUFFO1lBQ2YsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsYUFBYSxDQUFDO1lBQy9DLElBQUksT0FBTyxFQUFFO2dCQUNULFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwRztTQUNKO1FBQ0QsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzlDLFlBQVksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7UUFDSCxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hDLFVBQVUsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxnQkFBZ0IsQ0FBQyxPQUFzQjtRQUMzQyxJQUFJLE9BQU8sRUFBRTtZQUNULE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkYsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2hHO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNsRjtJQUNMLENBQUM7SUFFTywrQkFBK0IsQ0FBQyxJQUFZO1FBQ2hELFFBQVEsSUFBSSxFQUFFO1lBQ1YsS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLFVBQVUsQ0FBQztZQUNoQixLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssWUFBWTtnQkFDYixPQUFPLFFBQVEsQ0FBQztZQUNwQixLQUFLLFdBQVc7Z0JBQ1osT0FBTyxNQUFNLENBQUM7WUFDbEI7Z0JBQ0ksT0FBTyxJQUFJLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxpQkFBaUI7UUFDYixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFO1lBQ2xCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7O3FIQWxPUSx3QkFBd0I7eUhBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQURwQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBJUGVwUXVlcnlCdWlsZGVyRmllbGQsIElQZXBRdWVyeVNlY3Rpb24sIElQZXBRdWVyeUl0ZW0gfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvbGVnYWN5JztcbmltcG9ydCB7XG4gICAgSVBlcFNtYXJ0RmlsdGVyRGF0YSxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9ycyxcbiAgICBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcixcbiAgICBQZXBTbWFydEZpbHRlclR5cGUsXG4gICAgY3JlYXRlU21hcnRGaWx0ZXIsXG4gICAgY3JlYXRlU21hcnRGaWx0ZXJGaWVsZCxcbiAgICBQZXBTbWFydEZpbHRlckJhc2VGaWVsZFxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVwT3V0cHV0UXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL291dHB1dC1xdWVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFNtYXJ0RmlsdGVyT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvb3BlcmF0b3InO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi9xdWVyeS1idWlsZGVyLXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlckl0ZW1Db21wb25lbnQgfSBmcm9tICcuLi8uLi9xdWVyeS1idWlsZGVyLWl0ZW0vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXIgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvZmllbGQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyVHlwZU1hcCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC90eXBlLW1hcCc7XG5pbXBvcnQgeyBnZXRTbWFydEZpbHRlck9wZXJhdGlvblVuaXQgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvb3BlcmF0b3ItdW5pdCc7XG5pbXBvcnQgeyBJUGVwUXVlcnlCdWlsZGVyVmFsdWVzIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL2ZpbHRlcic7XG5pbXBvcnQgeyBQZXBPcGVyYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3R5cGUnO1xuXG5jb25zdCBNQVhfU1RSVUNUVVJFX0RFUFRIID0gMztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBlcFF1ZXJ5U3RydWN0dXJlU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfb3V0cHV0UXVlcnkkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbT4obnVsbCk7XG5cbiAgICBwcml2YXRlIF9zbWFydEZpbHRlckZpZWxkczogQXJyYXk8SVBlcFF1ZXJ5QnVpbGRlckZpZWxkQ29udGFpbmVyPjtcbiAgICBwcml2YXRlIF92YXJpYWJsZUZpZWxkczogYW55ID0ge307XG4gICAgcHJpdmF0ZSBfZm9ybTogRm9ybUdyb3VwO1xuICAgIHByaXZhdGUgX21heFN0cnVjdHVyZURlcHRoID0gTUFYX1NUUlVDVFVSRV9ERVBUSDtcblxuICAgIHB1YmxpYyBvdXRwdXRRdWVyeSQgPSB0aGlzLl9vdXRwdXRRdWVyeSQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZmI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIF9yZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIF9vdXRwdXRRdWVyeVNlcnZpY2U6IFBlcE91dHB1dFF1ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcXVlcnlCdWlsZGVyU2VydmljZTogUGVwUXVlcnlCdWlsZGVyU2VydmljZSkge1xuXG4gICAgfVxuXG4gICAgc2V0IG1heERlcHRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX21heFN0cnVjdHVyZURlcHRoID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IG1heERlcHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4U3RydWN0dXJlRGVwdGg7XG4gICAgfVxuXG4gICAgc2V0IGZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGQ+KSB7XG4gICAgICAgIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5jb252ZXJ0VG9TbWFydEZpbHRlckZpZWxkcyhsaXN0KTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgc2V0IHZhcmlhYmxlRmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdHlwZU1hcHBlciA9IG5ldyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwKCk7XG4gICAgICAgICAgICBsaXN0LmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkVHlwZSA9IHRoaXMuY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlTWFwcGVyLmdldFNtYXJ0RmlsdGVyVHlwZShmaWVsZC5GaWVsZFR5cGUpKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0eSh0aGlzLl92YXJpYWJsZUZpZWxkcywgZmllbGRUeXBlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZUZpZWxkc1tmaWVsZFR5cGVdLnB1c2goZmllbGQuRmllbGRJRCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXSA9IFtmaWVsZC5GaWVsZElEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldCBmb3JtKHZhbHVlOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fZm9ybSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBmb3JtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBidWlsZHMgYSBkeW5hbWljIFVJIHF1ZXJ5IHN0cnVjdHVyZVxuICAgICAqIG1pZ2h0IGhhcyBhIGRpZmZlcmVudCBzdHJ1Y3R1cmUgdGhhbiB0aGUgcXVlcnkncyBkdWUgdG8gcGFyZW50LWNoaWxkIGVsZW1lbnRzIG1lcmdlXG4gICAgICogQHBhcmFtIHF1ZXJ5IGxlZ2FjeSBxdWVyeSAgICAgXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiByZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgYnVpbGRRdWVyeVN0cnVjdHVyZShcbiAgICAgICAgcXVlcnk6IElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtLFxuICAgICAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgLy91cGRhdGUgcm9vdCBvcGVyYXRvciAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHF1ZXJ5LCAnQ29tcGxleElkJykgJiZcbiAgICAgICAgICAgIHF1ZXJ5Py5PcGVyYXRpb24gJiZcbiAgICAgICAgICAgIHF1ZXJ5Lk9wZXJhdGlvbiAhPT0gdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnNldFZhbHVlKHF1ZXJ5Lk9wZXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGF0dGVuKHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnZhbHVlLCBxdWVyeSwgY29udGFpbmVyUmVmLCB0aGlzLl9mb3JtLCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XG4gICAgKiBAcGFyYW0gb2JqIG9iamVjdFxuICAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgKi9cbiAgICBwcml2YXRlIGhhc1Byb3BlcnR5KG9iaiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIFVJIGZpbHRlcnMgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHBhcmVudE9wZXJhdG9yIHBhcmVudCBsZWdhY3kgY29tcGxleCBvcGVyYXRvclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGNoaWxkIGxlZ2FjeSBvYmplY3QgKGVpdGhlciBhbm90aGVyIGNvbXBsZXggb3IgZXhwcmVzc2lvbiB0eXBlKVxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIHByaXZhdGUgZmxhdHRlbihwYXJlbnRPcGVyYXRvcjogc3RyaW5nLCBjdXJyZW50OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkoY3VycmVudCwgJ0NvbXBsZXhJZCcpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwUXVlcnlTZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHBhcmVudE9wZXJhdG9yID09PSBjdXJyZW50Lk9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihjdXJyZW50Lk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihzZWN0aW9uLk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnRXhwcmVzc2lvbklkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShjdXJyZW50IGFzIElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZiwgcGFyZW50Rm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBvZiB0d28gb3IgbW9yZSBjaGlsZCBmaWx0ZXIgaXRlbXNcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgQU5EL09SIG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICogQHBhcmFtIGRlcHRoXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgY3VycmVudCBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlU2VjdGlvbihvcGVyYXRvcjogUGVwT3BlcmF0b3JUeXBlcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuXG4gICAgICAgIGNvbnN0IHNlY3Rpb25Hcm91cCA9IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKG9wZXJhdG9yKVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnc2VjdGlvbicpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBzZWN0aW9uJHtjb3VudGVyfWA7XG4gICAgICAgIHBhcmVudEZvcm0uYWRkQ29udHJvbChmb3JtS2V5LCBzZWN0aW9uR3JvdXApO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtID0gc2VjdGlvbkdyb3VwO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVwdGggPSB7XG4gICAgICAgICAgICBjdXJyZW50OiBkZXB0aCxcbiAgICAgICAgICAgIG1heDogdGhpcy5fbWF4U3RydWN0dXJlRGVwdGhcbiAgICAgICAgfTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNyZWF0ZVNlY3Rpb24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmNyZWF0ZVNlY3Rpb24oUGVwT3BlcmF0b3JUeXBlcy5BbmQsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXAsIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlSXRlbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKG51bGwsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVyYXRvckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgIHBhcmVudEZvcm06IHNlY3Rpb25Hcm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVJdGVtKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcGFyZW50Rm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdpdGVtJykpIHsgY291bnRlcisrOyB9IH0pO1xuICAgICAgICBjb25zdCBmb3JtS2V5ID0gYGl0ZW0ke2NvdW50ZXJ9YDtcblxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZm9ybUtleSA9IGZvcm1LZXk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZHMgPSB0aGlzLl9zbWFydEZpbHRlckZpZWxkcztcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnZhcmlhYmxlRmllbGRzID0gdGhpcy5fdmFyaWFibGVGaWVsZHM7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSB0aGlzLmdldFNlbGVjdGVkRmllbGQoY3VycmVudCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSBzZWxlY3RlZEZpZWxkO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5nZXRGaWx0ZXIoY3VycmVudCwgc2VsZWN0ZWRGaWVsZC5zbWFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEZvcm0gPSBwYXJlbnRGb3JtO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woZm9ybUtleSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgc21hcnQgZmlsdGVyIGZpZWxkXG4gICAgICogQHBhcmFtIGN1cnJlbnQgZmlsdGVyIGxlZ2FjeSBlbGVtZW50XG4gICAgICogQHJldHVybnMgc21hcnQgZmlsdGVyIGZpZWxkLCBpZiBub3QgZm91bmQgcmV0dXJucyB0aGUgZmlyc3QgZmllbGRcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRmllbGQoY3VycmVudDogSVBlcFF1ZXJ5SXRlbSk6IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB8IG51bGwge1xuICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuc21hcnQuaWQgPT09IGN1cnJlbnQuQXBpTmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbSA/IGl0ZW0gOiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdpbnQnOlxuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgY2FzZSAncmVhbCc6XG4gICAgICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGxlZ2FjeSBvdXRwdXQgcXVlcnkgXG4gICAgICovXG4gICAgY3JlYXRlT3V0cHV0UXVlcnkoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuX291dHB1dFF1ZXJ5U2VydmljZS5nZW5lcmF0ZVF1ZXJ5KHRoaXMuX2Zvcm0udmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3V0cHV0UXVlcnkkLm5leHQocXVlcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG59Il19
225
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.PepOutputQueryService }, { type: i2.PepQueryBuilderService }]; } });
226
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktc3RydWN0dXJlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvY29tbW9uL3NlcnZpY2VzL3F1ZXJ5LXN0cnVjdHVyZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQThDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQWV2QyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUVyRyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQUUzRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsQ0FBQztBQUc5QixNQUFNLE9BQU8sd0JBQXdCO0lBVWpDLFlBQ1ksU0FBbUMsRUFDbkMsbUJBQTBDLEVBQzFDLG9CQUE0QztRQUY1QyxjQUFTLEdBQVQsU0FBUyxDQUEwQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXVCO1FBQzFDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBd0I7UUFaaEQsa0JBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBbUMsSUFBSSxDQUFDLENBQUM7UUFHNUUsb0JBQWUsR0FBUSxFQUFFLENBQUM7UUFFMUIsdUJBQWtCLEdBQUcsbUJBQW1CLENBQUM7UUFFMUMsaUJBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBT3hELENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxLQUFLO1FBQ2Qs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QUMsQ0FBQztZQUN2RixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDaEc7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ2xGO0lBQ0wsQ0FBQztJQUVPLCtCQUErQixDQUFDLElBQVk7UUFDaEQsUUFBUSxJQUFJLEVBQUU7WUFDVixLQUFLLEtBQUssQ0FBQztZQUNYLEtBQUssVUFBVSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxZQUFZO2dCQUNiLE9BQU8sUUFBUSxDQUFDO1lBQ3BCLEtBQUssV0FBVztnQkFDWixPQUFPLE1BQU0sQ0FBQztZQUNsQjtnQkFDSSxPQUFPLElBQUksQ0FBQztTQUNuQjtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILGlCQUFpQjtRQUNiLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUU7WUFDbEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQzs7cUhBcE9RLHdCQUF3Qjt5SEFBeEIsd0JBQXdCOzJGQUF4Qix3QkFBd0I7a0JBRHBDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZCwgSVBlcFF1ZXJ5U2VjdGlvbiwgSVBlcFF1ZXJ5SXRlbSB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9sZWdhY3knO1xuaW1wb3J0IHtcbiAgICBJUGVwU21hcnRGaWx0ZXJEYXRhLFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxuICAgIFBlcFNtYXJ0RmlsdGVyVHlwZSxcbiAgICBjcmVhdGVTbWFydEZpbHRlcixcbiAgICBjcmVhdGVTbWFydEZpbHRlckZpZWxkLFxuICAgIFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQZXBPdXRwdXRRdWVyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb21tb24vc2VydmljZXMvb3V0cHV0LXF1ZXJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgZ2V0U21hcnRGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvcic7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vcXVlcnktYnVpbGRlci1zZWN0aW9uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3F1ZXJ5LWJ1aWxkZXItaXRlbS9xdWVyeS1idWlsZGVyLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9maWVsZCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVsL3R5cGUtbWFwJztcbmltcG9ydCB7IGdldFNtYXJ0RmlsdGVyT3BlcmF0aW9uVW5pdCB9IGZyb20gJy4uLy4uL2NvbW1vbi9tb2RlbC9vcGVyYXRvci11bml0JztcbmltcG9ydCB7IElQZXBRdWVyeUJ1aWxkZXJWYWx1ZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvZmlsdGVyJztcbmltcG9ydCB7IFBlcE9wZXJhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9jb21tb24vbW9kZWwvdHlwZSc7XG5cbmNvbnN0IE1BWF9TVFJVQ1RVUkVfREVQVEggPSAzO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlTdHJ1Y3R1cmVTZXJ2aWNlIHtcbiAgICBwcml2YXRlIF9vdXRwdXRRdWVyeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtPihudWxsKTtcblxuICAgIHByaXZhdGUgX3NtYXJ0RmlsdGVyRmllbGRzOiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGRDb250YWluZXI+O1xuICAgIHByaXZhdGUgX3ZhcmlhYmxlRmllbGRzOiBhbnkgPSB7fTtcbiAgICBwcml2YXRlIF9mb3JtOiBGb3JtR3JvdXA7XG4gICAgcHJpdmF0ZSBfbWF4U3RydWN0dXJlRGVwdGggPSBNQVhfU1RSVUNUVVJFX0RFUFRIO1xuXG4gICAgcHVibGljIG91dHB1dFF1ZXJ5JCA9IHRoaXMuX291dHB1dFF1ZXJ5JC5hc09ic2VydmFibGUoKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9yZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIF9vdXRwdXRRdWVyeVNlcnZpY2U6IFBlcE91dHB1dFF1ZXJ5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfcXVlcnlCdWlsZGVyU2VydmljZTogUGVwUXVlcnlCdWlsZGVyU2VydmljZSkge1xuXG4gICAgfVxuXG4gICAgc2V0IG1heERlcHRoKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX21heFN0cnVjdHVyZURlcHRoID0gdmFsdWU7XG4gICAgfVxuXG4gICAgZ2V0IG1heERlcHRoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWF4U3RydWN0dXJlRGVwdGg7XG4gICAgfVxuXG4gICAgc2V0IGZpZWxkcyhsaXN0OiBBcnJheTxJUGVwUXVlcnlCdWlsZGVyRmllbGQ+KSB7XG4gICAgICAgIHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5jb252ZXJ0VG9TbWFydEZpbHRlckZpZWxkcyhsaXN0KTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fc21hcnRGaWx0ZXJGaWVsZHM/Lmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgc2V0IHZhcmlhYmxlRmllbGRzKGxpc3Q6IEFycmF5PElQZXBRdWVyeUJ1aWxkZXJGaWVsZD4pIHtcbiAgICAgICAgaWYgKGxpc3Q/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdHlwZU1hcHBlciA9IG5ldyBQZXBRdWVyeUJ1aWxkZXJUeXBlTWFwKCk7XG4gICAgICAgICAgICBsaXN0LmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkVHlwZSA9IHRoaXMuY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlTWFwcGVyLmdldFNtYXJ0RmlsdGVyVHlwZShmaWVsZC5GaWVsZFR5cGUpKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5oYXNQcm9wZXJ0eSh0aGlzLl92YXJpYWJsZUZpZWxkcywgZmllbGRUeXBlKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl92YXJpYWJsZUZpZWxkc1tmaWVsZFR5cGVdLnB1c2goZmllbGQuRmllbGRJRCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVGaWVsZHNbZmllbGRUeXBlXSA9IFtmaWVsZC5GaWVsZElEXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHNldCBmb3JtKHZhbHVlOiBGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy5fZm9ybSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldCBmb3JtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBidWlsZHMgYSBkeW5hbWljIFVJIHF1ZXJ5IHN0cnVjdHVyZVxuICAgICAqIG1pZ2h0IGhhcyBhIGRpZmZlcmVudCBzdHJ1Y3R1cmUgdGhhbiB0aGUgcXVlcnkncyBkdWUgdG8gcGFyZW50LWNoaWxkIGVsZW1lbnRzIG1lcmdlXG4gICAgICogQHBhcmFtIHF1ZXJ5IGxlZ2FjeSBxdWVyeSAgICAgXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiByZWZlcmVuY2UgdG8gcm9vdCBlbGVtZW50XG4gICAgICovXG4gICAgYnVpbGRRdWVyeVN0cnVjdHVyZShcbiAgICAgICAgcXVlcnk6IElQZXBRdWVyeVNlY3Rpb24gfCBJUGVwUXVlcnlJdGVtLFxuICAgICAgICBjb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgLy91cGRhdGUgcm9vdCBvcGVyYXRvciAgICAgICAgXG4gICAgICAgIGlmICh0aGlzLmhhc1Byb3BlcnR5KHF1ZXJ5LCAnQ29tcGxleElkJykgJiZcbiAgICAgICAgICAgIHF1ZXJ5Py5PcGVyYXRpb24gJiZcbiAgICAgICAgICAgIHF1ZXJ5Lk9wZXJhdGlvbiAhPT0gdGhpcy5fZm9ybS5nZXQoJ29wZXJhdG9yJykudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnNldFZhbHVlKHF1ZXJ5Lk9wZXJhdGlvbik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mbGF0dGVuKHRoaXMuX2Zvcm0uZ2V0KCdvcGVyYXRvcicpLnZhbHVlLCBxdWVyeSwgY29udGFpbmVyUmVmLCB0aGlzLl9mb3JtLCAwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAqIGNoZWNrcyBpZiB0aGUgb2JqZWN0IGNvbnRhaW5zIHByb3BlcnR5XG4gICAgKiBAcGFyYW0gb2JqIG9iamVjdFxuICAgICogQHBhcmFtIHByb3AgcHJvcGVydHkgbmFtZVxuICAgICogQHJldHVybnMgdHJ1ZSBpZiBjb250YWlucywgZmFsc2Ugb3RoZXJ3aXNlXG4gICAgKi9cbiAgICBwcml2YXRlIGhhc1Byb3BlcnR5KG9iaiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogYSByZWN1cnNpdmUgZnVuY3Rpb24gZHluYW1pY2FsbHkgYnVpbGRzIFVJIGZpbHRlcnMgc3RydWN0dXJlXG4gICAgICogQHBhcmFtIHBhcmVudE9wZXJhdG9yIHBhcmVudCBsZWdhY3kgY29tcGxleCBvcGVyYXRvclxuICAgICAqIEBwYXJhbSBjdXJyZW50IGNoaWxkIGxlZ2FjeSBvYmplY3QgKGVpdGhlciBhbm90aGVyIGNvbXBsZXggb3IgZXhwcmVzc2lvbiB0eXBlKVxuICAgICAqIEBwYXJhbSBjb250YWluZXJSZWYgcGFyZW50IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gcGFyZW50Rm9ybSBwYXJlbnQgZm9ybVxuICAgICAqL1xuICAgIHByaXZhdGUgZmxhdHRlbihwYXJlbnRPcGVyYXRvcjogc3RyaW5nLCBjdXJyZW50OiBJUGVwUXVlcnlTZWN0aW9uIHwgSVBlcFF1ZXJ5SXRlbSwgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzUHJvcGVydHkoY3VycmVudCwgJ0NvbXBsZXhJZCcpKSB7XG4gICAgICAgICAgICBjb25zdCBzZWN0aW9uID0gY3VycmVudCBhcyBJUGVwUXVlcnlTZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHBhcmVudE9wZXJhdG9yID09PSBjdXJyZW50Lk9wZXJhdGlvbikge1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihjdXJyZW50Lk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKGN1cnJlbnQuT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuY3JlYXRlU2VjdGlvbihzZWN0aW9uLk9wZXJhdGlvbiwgY29udGFpbmVyUmVmLCBwYXJlbnRGb3JtLCBkZXB0aCArIDEpO1xuICAgICAgICAgICAgICAgIHRoaXMuZmxhdHRlbihzZWN0aW9uLk9wZXJhdGlvbiwgc2VjdGlvbi5MZWZ0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5mbGF0dGVuKHNlY3Rpb24uT3BlcmF0aW9uLCBzZWN0aW9uLlJpZ2h0Tm9kZSwgcmVzdWx0LmNvbnRhaW5lclJlZiwgcmVzdWx0LnBhcmVudEZvcm0sIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5oYXNQcm9wZXJ0eShjdXJyZW50LCAnRXhwcmVzc2lvbklkJykpIHtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSXRlbShjdXJyZW50IGFzIElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZiwgcGFyZW50Rm9ybSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGEgY29udGFpbmVyIG9iamVjdCBvZiB0d28gb3IgbW9yZSBjaGlsZCBmaWx0ZXIgaXRlbXNcbiAgICAgKiBAcGFyYW0gb3BlcmF0b3IgQU5EL09SIG9wZXJhdG9yXG4gICAgICogQHBhcmFtIGNvbnRhaW5lclJlZiBwYXJlbnQgZWxlbWVudFxuICAgICAqIEBwYXJhbSBwYXJlbnRGb3JtIHBhcmVudCBmb3JtXG4gICAgICogQHBhcmFtIGRlcHRoXG4gICAgICogQHJldHVybnMgYW4gb2JqZWN0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgZWxlbWVudCBhbmQgY3VycmVudCBmb3JtXG4gICAgICovXG4gICAgY3JlYXRlU2VjdGlvbihvcGVyYXRvcjogUGVwT3BlcmF0b3JUeXBlcywgY29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLCBwYXJlbnRGb3JtOiBGb3JtR3JvdXAsIGRlcHRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeSA9IHRoaXMuX3Jlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSBjb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xuXG4gICAgICAgIC8vIGNvbnN0IHNlY3Rpb25Hcm91cCA9IHRoaXMuX2ZiLmdyb3VwKHtcbiAgICAgICAgLy8gICAgIG9wZXJhdG9yOiB0aGlzLl9mYi5jb250cm9sKG9wZXJhdG9yKVxuICAgICAgICAvLyB9KTtcbiAgICAgICAgY29uc3Qgc2VjdGlvbkdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBvcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKG9wZXJhdG9yKVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAxO1xuICAgICAgICBPYmplY3Qua2V5cyhwYXJlbnRGb3JtLmNvbnRyb2xzKS5mb3JFYWNoKGl0ZW0gPT4geyBpZiAoaXRlbS5pbmNsdWRlcygnc2VjdGlvbicpKSB7IGNvdW50ZXIrKzsgfSB9KTtcbiAgICAgICAgY29uc3QgZm9ybUtleSA9IGBzZWN0aW9uJHtjb3VudGVyfWA7XG4gICAgICAgIHBhcmVudEZvcm0uYWRkQ29udHJvbChmb3JtS2V5LCBzZWN0aW9uR3JvdXApO1xuXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5mb3JtID0gc2VjdGlvbkdyb3VwO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZGVwdGggPSB7XG4gICAgICAgICAgICBjdXJyZW50OiBkZXB0aCxcbiAgICAgICAgICAgIG1heDogdGhpcy5fbWF4U3RydWN0dXJlRGVwdGhcbiAgICAgICAgfTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmNyZWF0ZVNlY3Rpb24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlY3Rpb24gPSB0aGlzLmNyZWF0ZVNlY3Rpb24oUGVwT3BlcmF0b3JUeXBlcy5BbmQsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXAsIGRlcHRoICsgMSk7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUl0ZW0obnVsbCwgc2VjdGlvbi5jb250YWluZXJSZWYsIHNlY3Rpb24ucGFyZW50Rm9ybSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuY3JlYXRlSXRlbS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVJdGVtKG51bGwsIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5zZWN0aW9uQ29udGFpbmVyLCBzZWN0aW9uR3JvdXApO1xuICAgICAgICB9KTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnJlbW92ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgcGFyZW50Rm9ybS5yZW1vdmVDb250cm9sKGZvcm1LZXkpO1xuICAgICAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlT3V0cHV0UXVlcnkoKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5vcGVyYXRvckNoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgY29udGFpbmVyUmVmOiBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VjdGlvbkNvbnRhaW5lcixcbiAgICAgICAgICAgIHBhcmVudEZvcm06IHNlY3Rpb25Hcm91cFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGNyZWF0ZXMgYSBjb21wb25lbnQgcmVwcmVzZW50cyBmaWx0ZXIgaXRlbSAobGVhZiBlbGVtZW50IC0gaGFzIG5vIGNoaWxkcylcbiAgICAgKiBAcGFyYW0gY3VycmVudCBmaWx0ZXIgbGVnYWN5IGVsZW1lbnRcbiAgICAgKiBAcGFyYW0gY29udGFpbmVyUmVmIHBhcmVudCBlbGVtZW50XG4gICAgICogQHBhcmFtIHBhcmVudEZvcm0gcGFyZW50IGZvcm1cbiAgICAgKi9cbiAgICBjcmVhdGVJdGVtKGN1cnJlbnQ6IElQZXBRdWVyeUl0ZW0sIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZiwgcGFyZW50Rm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIGNvbnN0IGZhY3RvcnkgPSB0aGlzLl9yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcblxuICAgICAgICBsZXQgY291bnRlciA9IDE7XG4gICAgICAgIE9iamVjdC5rZXlzKHBhcmVudEZvcm0uY29udHJvbHMpLmZvckVhY2goaXRlbSA9PiB7IGlmIChpdGVtLmluY2x1ZGVzKCdpdGVtJykpIHsgY291bnRlcisrOyB9IH0pO1xuICAgICAgICBjb25zdCBmb3JtS2V5ID0gYGl0ZW0ke2NvdW50ZXJ9YDtcblxuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZm9ybUtleSA9IGZvcm1LZXk7XG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5maWVsZHMgPSB0aGlzLl9zbWFydEZpbHRlckZpZWxkcztcbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnZhcmlhYmxlRmllbGRzID0gdGhpcy5fdmFyaWFibGVGaWVsZHM7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkRmllbGQgPSB0aGlzLmdldFNlbGVjdGVkRmllbGQoY3VycmVudCk7XG4gICAgICAgIGlmIChzZWxlY3RlZEZpZWxkKSB7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uuc2VsZWN0ZWQgPSBzZWxlY3RlZEZpZWxkO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyID0gdGhpcy5fcXVlcnlCdWlsZGVyU2VydmljZS5nZXRGaWx0ZXIoY3VycmVudCwgc2VsZWN0ZWRGaWVsZC5zbWFydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29tcG9uZW50UmVmLmluc3RhbmNlLnBhcmVudEZvcm0gPSBwYXJlbnRGb3JtO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UuZmlsdGVyQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZU91dHB1dFF1ZXJ5KCk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb21wb25lbnRSZWYuaW5zdGFuY2UucmVtb3ZlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBwYXJlbnRGb3JtLnJlbW92ZUNvbnRyb2woZm9ybUtleSk7XG4gICAgICAgICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVPdXRwdXRRdWVyeSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBnZXQgc21hcnQgZmlsdGVyIGZpZWxkXG4gICAgICogQHBhcmFtIGN1cnJlbnQgZmlsdGVyIGxlZ2FjeSBlbGVtZW50XG4gICAgICogQHJldHVybnMgc21hcnQgZmlsdGVyIGZpZWxkLCBpZiBub3QgZm91bmQgcmV0dXJucyB0aGUgZmlyc3QgZmllbGRcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFNlbGVjdGVkRmllbGQoY3VycmVudDogSVBlcFF1ZXJ5SXRlbSk6IElQZXBRdWVyeUJ1aWxkZXJGaWVsZENvbnRhaW5lciB8IG51bGwge1xuICAgICAgICBpZiAoY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzLmZpbmQoZmllbGQgPT4gZmllbGQuc21hcnQuaWQgPT09IGN1cnJlbnQuQXBpTmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gaXRlbSA/IGl0ZW0gOiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9zbWFydEZpbHRlckZpZWxkcz8ubGVuZ3RoID4gMCA/IHRoaXMuX3NtYXJ0RmlsdGVyRmllbGRzWzBdIDogbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY29udmVydFNtYXJ0RmlsdGVyQ29tcG9uZW50VHlwZSh0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICBjYXNlICdpbnQnOlxuICAgICAgICAgICAgY2FzZSAnY3VycmVuY3knOlxuICAgICAgICAgICAgY2FzZSAncmVhbCc6XG4gICAgICAgICAgICBjYXNlICdwZXJjZW50YWdlJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgICAgICBjYXNlICdkYXRlLXRpbWUnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnZGF0ZSc7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0eXBlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBhIGxlZ2FjeSBvdXRwdXQgcXVlcnkgXG4gICAgICovXG4gICAgY3JlYXRlT3V0cHV0UXVlcnkoKSB7XG4gICAgICAgIGlmICh0aGlzLl9mb3JtLnZhbGlkKSB7XG4gICAgICAgICAgICBjb25zdCBxdWVyeSA9IHRoaXMuX291dHB1dFF1ZXJ5U2VydmljZS5nZW5lcmF0ZVF1ZXJ5KHRoaXMuX2Zvcm0udmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3V0cHV0UXVlcnkkLm5leHQocXVlcnkpO1xuICAgICAgICB9XG4gICAgfVxuXG59Il19
@@ -1,6 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule } from '@angular/forms';
3
+ import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
4
4
  import { FlexLayoutModule } from '@angular/flex-layout';
5
5
  import { PepSmartFiltersModule } from '@pepperi-addons/ngx-lib/smart-filters';
6
6
  import { PepSelectModule } from '@pepperi-addons/ngx-lib/select';
@@ -22,7 +22,9 @@ PepQueryBuilderModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
22
22
  PepButtonModule,
23
23
  PepGroupButtonsModule,
24
24
  PepSmartFiltersModule], exports: [PepQueryBuilderComponent] });
25
- PepQueryBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, imports: [CommonModule,
25
+ PepQueryBuilderModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepQueryBuilderModule, providers: [
26
+ FormBuilder
27
+ ], imports: [CommonModule,
26
28
  ReactiveFormsModule,
27
29
  FlexLayoutModule,
28
30
  PepSelectModule,
@@ -48,7 +50,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
48
50
  PepQueryBuilderComponent,
49
51
  PepQueryBuilderSectionComponent,
50
52
  PepQueryBuilderItemComponent
53
+ ],
54
+ providers: [
55
+ FormBuilder
51
56
  ]
52
57
  }]
53
58
  }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUU5RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFzQmpHLE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFMMUIsd0JBQXdCO1FBQ3hCLCtCQUErQjtRQUMvQiw0QkFBNEIsYUFkNUIsWUFBWTtRQUNaLG1CQUFtQjtRQUNuQixnQkFBZ0I7UUFDaEIsZUFBZTtRQUNmLGVBQWU7UUFDZixxQkFBcUI7UUFDckIscUJBQXFCLGFBR3JCLHdCQUF3QjttSEFRbkIscUJBQXFCLFlBakIxQixZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixxQkFBcUI7MkZBV2hCLHFCQUFxQjtrQkFuQmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHdCQUF3QjtxQkFDM0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQiw0QkFBNEI7cUJBQy9CO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRmxleExheW91dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7IFBlcFNtYXJ0RmlsdGVyc01vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMnO1xuaW1wb3J0IHsgUGVwU2VsZWN0TW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2VsZWN0JztcbmltcG9ydCB7IFBlcEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQgeyBQZXBHcm91cEJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9ncm91cC1idXR0b25zJztcblxuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLXNlY3Rpb24vcXVlcnktYnVpbGRlci1zZWN0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBRdWVyeUJ1aWxkZXJJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9xdWVyeS1idWlsZGVyLWl0ZW0vcXVlcnktYnVpbGRlci1pdGVtLmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgRmxleExheW91dE1vZHVsZSxcbiAgICAgICAgUGVwU2VsZWN0TW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFBlcEdyb3VwQnV0dG9uc01vZHVsZSxcbiAgICAgICAgUGVwU21hcnRGaWx0ZXJzTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlckNvbXBvbmVudFxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlckNvbXBvbmVudCxcbiAgICAgICAgUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlCdWlsZGVyTW9kdWxlIHsgfVxuIl19
59
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3F1ZXJ5LWJ1aWxkZXIvcXVlcnktYnVpbGRlci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFOUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDMUcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbURBQW1ELENBQUM7O0FBeUJqRyxNQUFNLE9BQU8scUJBQXFCOztrSEFBckIscUJBQXFCO21IQUFyQixxQkFBcUIsaUJBUjFCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0IsNEJBQTRCLGFBZDVCLFlBQVk7UUFDWixtQkFBbUI7UUFDbkIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixlQUFlO1FBQ2YscUJBQXFCO1FBQ3JCLHFCQUFxQixhQUdyQix3QkFBd0I7bUhBV25CLHFCQUFxQixhQUpuQjtRQUNQLFdBQVc7S0FDZCxZQWxCRyxZQUFZO1FBQ1osbUJBQW1CO1FBQ25CLGdCQUFnQjtRQUNoQixlQUFlO1FBQ2YsZUFBZTtRQUNmLHFCQUFxQjtRQUNyQixxQkFBcUI7MkZBY2hCLHFCQUFxQjtrQkF0QmpDLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixxQkFBcUI7d0JBQ3JCLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHdCQUF3QjtxQkFDM0I7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsK0JBQStCO3dCQUMvQiw0QkFBNEI7cUJBQy9CO29CQUNELFNBQVMsRUFBRTt3QkFDUCxXQUFXO3FCQUNkO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlcnNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zbWFydC1maWx0ZXJzJztcbmltcG9ydCB7IFBlcFNlbGVjdE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NlbGVjdCc7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHsgUGVwR3JvdXBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZ3JvdXAtYnV0dG9ucyc7XG5cbmltcG9ydCB7IFBlcFF1ZXJ5QnVpbGRlckNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVyU2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1zZWN0aW9uL3F1ZXJ5LWJ1aWxkZXItc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwUXVlcnlCdWlsZGVySXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktYnVpbGRlci1pdGVtL3F1ZXJ5LWJ1aWxkZXItaXRlbS5jb21wb25lbnQnO1xuXG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIEZsZXhMYXlvdXRNb2R1bGUsXG4gICAgICAgIFBlcFNlbGVjdE1vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBHcm91cEJ1dHRvbnNNb2R1bGUsXG4gICAgICAgIFBlcFNtYXJ0RmlsdGVyc01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBQZXBRdWVyeUJ1aWxkZXJDb21wb25lbnRcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBQZXBRdWVyeUJ1aWxkZXJDb21wb25lbnQsXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlclNlY3Rpb25Db21wb25lbnQsXG4gICAgICAgIFBlcFF1ZXJ5QnVpbGRlckl0ZW1Db21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBGb3JtQnVpbGRlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGVwUXVlcnlCdWlsZGVyTW9kdWxlIHsgfVxuIl19
@@ -49,48 +49,47 @@ export class PepRemoteLoaderComponent {
49
49
  // Check if only need update
50
50
  if (!this.options?.update) {
51
51
  this.viewContainer?.clear();
52
- try {
53
- if (this.options.addonId) {
54
- const publicPathArr = this.options.remoteEntry.split('/');
55
- const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/') + '/';
56
- __webpack_public_path__ = publicPath;
57
- this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
58
- }
59
- const module = await loadRemoteModule(this.options).then(m => m);
60
- const component = module[this.options.componentName];
61
- this.compRef = this.viewContainer.createComponent(component);
52
+ // try {
53
+ // if (this.options.addonId) {
54
+ // const publicPathArr = this.options.remoteEntry.split('/');
55
+ // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
56
+ // __webpack_public_path__ = publicPath;
57
+ // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
58
+ // }
59
+ // const module = await loadRemoteModule(this.options).then(m => m);
60
+ // const component = module[this.options.componentName];
61
+ // this.compRef = this.viewContainer.createComponent(component);
62
+ // } catch (e) {
63
+ this.viewContainer?.clear();
64
+ // Load Component
65
+ if (this.options?.noModule) {
66
+ const component = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);
67
+ // New code
68
+ // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });
69
+ // Old code
70
+ const componentFactory = this.cfr.resolveComponentFactory(component);
71
+ this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector);
62
72
  }
63
- catch (e) {
64
- this.viewContainer?.clear();
65
- // Load Component
66
- if (this.options?.noModule) {
67
- const component = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);
68
- // New code
69
- // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });
70
- // Old code
71
- const componentFactory = this.cfr.resolveComponentFactory(component);
72
- this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector);
73
- }
74
- // Load Module
75
- else {
76
- // const publicPathArr = this.options.remoteEntry.split('/');
77
- // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
78
- // __webpack_public_path__ = publicPath;
79
- // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
80
- const module = await loadRemoteModule(this.options).then(m => m);
81
- // New code
82
- // const moduleRef = createNgModuleRef(module, this.injector);
83
- // const component = module[this.options.componentName];
84
- // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
85
- // Old code
86
- const moduleFactory = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./', '')]);
87
- const moduleRef = moduleFactory.create(this.injector);
88
- const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);
89
- this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector, null, moduleRef);
90
- const t1 = performance.now();
91
- console.log('remote module load performance: ' + (t1 - t0) / 1000);
92
- }
73
+ // Load Module
74
+ else {
75
+ // const publicPathArr = this.options.remoteEntry.split('/');
76
+ // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
77
+ // __webpack_public_path__ = publicPath;
78
+ // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
79
+ const module = await loadRemoteModule(this.options).then(m => m);
80
+ // New code
81
+ // const moduleRef = createNgModuleRef(module, this.injector);
82
+ // const component = module[this.options.componentName];
83
+ // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
84
+ // Old code
85
+ const moduleFactory = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./', '')]);
86
+ const moduleRef = moduleFactory.create(this.injector);
87
+ const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);
88
+ this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector, null, moduleRef);
89
+ const t1 = performance.now();
90
+ console.log('remote module load performance: ' + (t1 - t0) / 1000);
93
91
  }
92
+ // }
94
93
  this.load.emit();
95
94
  }
96
95
  if (this.compRef) {
@@ -135,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
135
134
  }], load: [{
136
135
  type: Output
137
136
  }] } });
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3JlbW90ZS1sb2FkZXIvcmVtb3RlLWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLGdCQUFnQixFQUMxQixZQUFZLEVBQUUsTUFBTSxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBV3pFLE1BQU0sT0FBTyx3QkFBd0I7SUFnQ2pDLFlBQ1ksUUFBa0IsRUFDbEIsR0FBNkIsRUFDN0IsUUFBa0IsRUFDbEIsZUFBZ0M7UUFIaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWpDcEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFZaEQsMkRBQTJEO1FBQ25ELGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBVXRCLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFXcEQsQ0FBQztJQWxDTCxJQUNJLE9BQU8sQ0FBQyxLQUE2QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUlELElBQ0ksVUFBVSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBZ0JPLGdDQUFnQztRQUNwQyxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDM0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFFbkQsc0RBQXNEO1lBQ3RELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFO2dCQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3REO1NBQ0o7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxPQUFzQjtRQUNwQyx3Q0FBd0M7UUFDeEMsdURBQXVEO1FBQ3ZELElBQUk7SUFDUixDQUFDO0lBRU8sS0FBSyxDQUFDLFVBQVU7UUFDcEIsTUFBTSxFQUFFLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRTdCLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUU1QixJQUFJO2dCQUNBLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7b0JBQ3RCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDMUQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUMsR0FBRyxDQUFDO29CQUNsRix1QkFBdUIsR0FBRyxVQUFVLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQy9FO2dCQUVELE1BQU0sTUFBTSxHQUFJLE1BQU0sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUVoRTtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUVSLElBQUksQ0FBQyxhQUFhLEVBQUUsS0FBSyxFQUFFLENBQUM7Z0JBQzVCLGlCQUFpQjtnQkFDakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRTtvQkFDeEIsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztvQkFFaEcsV0FBVztvQkFDWCw2RkFBNkY7b0JBRTdGLFdBQVc7b0JBQ1gsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQzVGO2dCQUNELGNBQWM7cUJBQ1Q7b0JBQ0QsNkRBQTZEO29CQUM3RCxxRkFBcUY7b0JBQ3JGLHdDQUF3QztvQkFDeEMsK0VBQStFO29CQUUvRSxNQUFNLE1BQU0sR0FBSSxNQUFNLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFFbEUsV0FBVztvQkFDWCw4REFBOEQ7b0JBQzlELHdEQUF3RDtvQkFDeEQscUhBQXFIO29CQUVySCxXQUFXO29CQUNYLE1BQU0sYUFBYSxHQUF5QixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDakksTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBRXRELE1BQU0sZ0JBQWdCLEdBQUcsU0FBUyxFQUFFLHdCQUF3QixFQUFFLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7b0JBQzFILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO29CQUUxRyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7b0JBQzdCLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0NBQWtDLEdBQUcsQ0FBQyxFQUFFLEdBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ2xFO2FBRUo7WUFHRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3BCO1FBRUQsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7WUFFeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoRCxvQkFBb0I7Z0JBQ3BCLDJCQUEyQjtnQkFDM0Isb0NBQW9DO2dCQUNwQyxJQUFJO2dCQUNKLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFBO1lBQzNCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNoQyxDQUFDOztxSEF6SVEsd0JBQXdCO3lHQUF4Qix3QkFBd0IsaVFBQ0MsZ0JBQWdCLGdFQU54Qzs7O0tBR1Q7MkZBRVEsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRTs7O0tBR1Q7aUJBQ0o7MkxBRXVFLGFBQWE7c0JBQWhGLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTlELE9BQU87c0JBRFYsS0FBSztnQkFjRixVQUFVO3NCQURiLEtBQUs7Z0JBU0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQZXBBZGRvblNlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBJbmplY3RvciwgTmdNb2R1bGVGYWN0b3J5LCBDb21waWxlciwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIENvbXBvbmVudFJlZiwgU2ltcGxlQ2hhbmdlcywgTmdab25lLCBjcmVhdGVOZ01vZHVsZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbG9hZFJlbW90ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLWFyY2hpdGVjdHMvbW9kdWxlLWZlZGVyYXRpb24nO1xuaW1wb3J0IHsgUGVwUmVtb3RlTG9hZGVyT3B0aW9ucyB9IGZyb20gJy4vcmVtb3RlLWxvYWRlci5tb2RlbCc7XG5kZWNsYXJlIGxldCBfX3dlYnBhY2tfcHVibGljX3BhdGhfXztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdwZXAtcmVtb3RlLWxvYWRlcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPCEtLSA8bWF0LXNwaW5uZXIgKm5nSWY9XCJzaG93U3Bpbm5lcjsgZWxzZSBwbGFjZUhvbGRlclwiPjwvbWF0LXNwaW5uZXI+IC0tPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3BsYWNlSG9sZGVyPjwvbmctdGVtcGxhdGU+XG4gICAgYFxufSlcbmV4cG9ydCBjbGFzcyBQZXBSZW1vdGVMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIEBWaWV3Q2hpbGQoJ3BsYWNlSG9sZGVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgdmlld0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZjtcbiAgICBcbiAgICBwcml2YXRlIF9vcHRpb25zOiBQZXBSZW1vdGVMb2FkZXJPcHRpb25zID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBvcHRpb25zKHZhbHVlOiBQZXBSZW1vdGVMb2FkZXJPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB2YWx1ZTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmxvYWRNb2R1bGUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb3B0aW9ucygpOiBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gICAgfVxuICAgIFxuICAgIC8vIFRoaXMgaXMgdGhlIGRhdGEgcGFzc2VkIGJ5IHRoZSBBUEkgRGVzaWduIGRvY3VtZW50YXRpb24uXG4gICAgcHJpdmF0ZSBfaG9zdE9iamVjdDogYW55ID0gbnVsbDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBob3N0T2JqZWN0KHZhbHVlOiBhbnkpIHsgXG4gICAgICAgIHRoaXMuX2hvc3RPYmplY3QgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRIb3N0Q29tcG9uZW50SW50b0NvbXBvbmVudFJlZigpO1xuICAgIH1cbiAgICBnZXQgaG9zdE9iamVjdCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5faG9zdE9iamVjdDtcbiAgICB9XG5cbiAgICBAT3V0cHV0KCkgaG9zdEV2ZW50czogRXZlbnRFbWl0dGVyPGFueT4gPSAgbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSBsb2FkOiBFdmVudEVtaXR0ZXI8YW55PiA9ICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgLy8gc2hvd1NwaW5uZXIgPSB0cnVlO1xuICAgIFxuICAgIHByaXZhdGUgY29tcFJlZjogQ29tcG9uZW50UmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgICAgIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgY29tcGlsZXI6IENvbXBpbGVyLFxuICAgICAgICBwcml2YXRlIHBlcEFkZG9uU2VydmljZTogUGVwQWRkb25TZXJ2aWNlLFxuICAgICAgICAvLyBwcml2YXRlIHpvbmU6IE5nWm9uZSxcbiAgICApIHsgfVxuXG4gICAgcHJpdmF0ZSBzZXRIb3N0Q29tcG9uZW50SW50b0NvbXBvbmVudFJlZigpIHtcbiAgICAgICAgaWYgKHRoaXMuaG9zdE9iamVjdCAmJiB0aGlzLmNvbXBSZWY/Lmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBSZWYuaW5zdGFuY2UuaG9zdE9iamVjdCA9IHRoaXMuaG9zdE9iamVjdDtcblxuICAgICAgICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgdGhpcyBpcyBuZWVkZWQ/PyBpZiBub3QgcmVtb3ZlIHRoaXMuXG4gICAgICAgICAgICBpZiAodGhpcy5jb21wUmVmPy5pbnN0YW5jZT8ubmdPbkNoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBSZWYuaW5zdGFuY2UubmdPbkNoYW5nZXModGhpcy5ob3N0T2JqZWN0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgLy8gaWYgKGNoYW5nZXM/Lm9wdGlvbnM/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAvLyAgICAgdGhpcy5sb2FkTW9kdWxlKGNoYW5nZXM/Lm9wdGlvbnM/LmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWRNb2R1bGUoKSB7XG4gICAgICAgIGNvbnN0IHQwID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgIFxuICAgICAgICAvLyBDaGVjayBpZiBvbmx5IG5lZWQgdXBkYXRlXG4gICAgICAgIGlmICghdGhpcy5vcHRpb25zPy51cGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lcj8uY2xlYXIoKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zLmFkZG9uSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcHVibGljUGF0aEFyciA9IHRoaXMub3B0aW9ucy5yZW1vdGVFbnRyeS5zcGxpdCgnLycpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBwdWJsaWNQYXRoID0gcHVibGljUGF0aEFyci5zbGljZSgwLCBwdWJsaWNQYXRoQXJyLmxlbmd0aCAtIDEpLmpvaW4oJy8nKSsnLyc7XG4gICAgICAgICAgICAgICAgICAgIF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gcHVibGljUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wZXBBZGRvblNlcnZpY2Uuc2V0QWRkb25TdGF0aWNGb2xkZXIocHVibGljUGF0aCwgdGhpcy5vcHRpb25zLmFkZG9uSWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGUgPSAgYXdhaXQgbG9hZFJlbW90ZU1vZHVsZSh0aGlzLm9wdGlvbnMpLnRoZW4obSA9PiBtKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBtb2R1bGVbdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdO1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50KTtcblxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIHRoaXMudmlld0NvbnRhaW5lcj8uY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAvLyBMb2FkIENvbXBvbmVudFxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnM/Lm5vTW9kdWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IGF3YWl0IGxvYWRSZW1vdGVNb2R1bGUodGhpcy5vcHRpb25zKS50aGVuKG0gPT4gbVt0aGlzLm9wdGlvbnMuY29tcG9uZW50TmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gTmV3IGNvZGVcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5jb21wUmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSk7XG4gICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIE9sZCBjb2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSB0aGlzLmNmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIG51bGwsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBMb2FkIE1vZHVsZVxuICAgICAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBwdWJsaWNQYXRoQXJyID0gdGhpcy5vcHRpb25zLnJlbW90ZUVudHJ5LnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IHB1YmxpY1BhdGggPSBwdWJsaWNQYXRoQXJyLnNsaWNlKDAsIHB1YmxpY1BhdGhBcnIubGVuZ3RoIC0gMSkuam9pbignLycpKycvJztcbiAgICAgICAgICAgICAgICAgICAgLy8gX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBwdWJsaWNQYXRoO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLnBlcEFkZG9uU2VydmljZS5zZXRBZGRvblN0YXRpY0ZvbGRlcihwdWJsaWNQYXRoLCB0aGlzLm9wdGlvbnMuYWRkb25JZCk7XG4gICAgXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9ICBhd2FpdCBsb2FkUmVtb3RlTW9kdWxlKHRoaXMub3B0aW9ucykudGhlbihtID0+IG0pO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gTmV3IGNvZGVcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgbW9kdWxlUmVmID0gY3JlYXRlTmdNb2R1bGVSZWYobW9kdWxlLCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgY29tcG9uZW50ID0gbW9kdWxlW3RoaXMub3B0aW9ucy5jb21wb25lbnROYW1lXTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5jb21wUmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQsIHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsIG5nTW9kdWxlUmVmOiBtb2R1bGVSZWYgfSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBPbGQgY29kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGVGYWN0b3J5OiBOZ01vZHVsZUZhY3Rvcnk8YW55PiA9IHRoaXMuY29tcGlsZXIuY29tcGlsZU1vZHVsZVN5bmMobW9kdWxlW3RoaXMub3B0aW9ucy5leHBvc2VkTW9kdWxlLnJlcGxhY2UoJy4vJywnJyldKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlUmVmID0gbW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gbW9kdWxlUmVmPy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI/LnJlc29sdmVDb21wb25lbnRGYWN0b3J5KG1vZHVsZVt0aGlzLm9wdGlvbnMuY29tcG9uZW50TmFtZV0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIG51bGwsIHRoaXMuaW5qZWN0b3IsIG51bGwsIG1vZHVsZVJlZik7XG4gICAgXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHQxID0gcGVyZm9ybWFuY2Uubm93KCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdyZW1vdGUgbW9kdWxlIGxvYWQgcGVyZm9ybWFuY2U6ICcgKyAodDEtdDApLzEwMDApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMubG9hZC5lbWl0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb21wUmVmKSB7XG4gICAgICAgICAgICB0aGlzLnNldEhvc3RDb21wb25lbnRJbnRvQ29tcG9uZW50UmVmKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHRoaXMuY29tcFJlZj8uaW5zdGFuY2VbJ2hvc3RFdmVudHMnXT8uc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHN3aXRjaChlLmFjdGlvbil7XG4gICAgICAgICAgICAgICAgLy8gICAgIGNhc2UgJ2FkZG9uLWxvYWRlZCc6XG4gICAgICAgICAgICAgICAgLy8gICAgICAgICB0aGlzLnNob3dTcGlubmVyID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgIHRoaXMuaG9zdEV2ZW50cy5lbWl0KGUpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbXBSZWY/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyPy5jbGVhcigpO1xuICAgIH1cbn1cblxuIl19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3JlbW90ZS1sb2FkZXIvcmVtb3RlLWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLGdCQUFnQixFQUMxQixZQUFZLEVBQUUsTUFBTSxFQUEwRCxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBV3pFLE1BQU0sT0FBTyx3QkFBd0I7SUFnQ2pDLFlBQ1ksUUFBa0IsRUFDbEIsR0FBNkIsRUFDN0IsUUFBa0IsRUFDbEIsZUFBZ0M7UUFIaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWpDcEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFZaEQsMkRBQTJEO1FBQ25ELGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBVXRCLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFXcEQsQ0FBQztJQWxDTCxJQUNJLE9BQU8sQ0FBQyxLQUE2QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUlELElBQ0ksVUFBVSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFD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QUFFLElBQUksRUFBRTtnQkFJOUQsT0FBTztzQkFEVixLQUFLO2dCQWNGLFVBQVU7c0JBRGIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcEFkZG9uU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdG9yLCBOZ01vZHVsZUZhY3RvcnksIENvbXBpbGVyLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgQ29tcG9uZW50UmVmLCBTaW1wbGVDaGFuZ2VzLCBOZ1pvbmUsIGNyZWF0ZU5nTW9kdWxlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9tb2R1bGUtZmVkZXJhdGlvbic7XG5pbXBvcnQgeyBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9yZW1vdGUtbG9hZGVyLm1vZGVsJztcbmRlY2xhcmUgbGV0IF9fd2VicGFja19wdWJsaWNfcGF0aF9fO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1yZW1vdGUtbG9hZGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8IS0tIDxtYXQtc3Bpbm5lciAqbmdJZj1cInNob3dTcGlubmVyOyBlbHNlIHBsYWNlSG9sZGVyXCI+PC9tYXQtc3Bpbm5lcj4gLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjcGxhY2VIb2xkZXI+PC9uZy10ZW1wbGF0ZT5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIFBlcFJlbW90ZUxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgncGxhY2VIb2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIFxuICAgIHByaXZhdGUgX29wdGlvbnM6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG9wdGlvbnModmFsdWU6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE1vZHVsZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcHRpb25zKCk6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICB9XG4gICAgXG4gICAgLy8gVGhpcyBpcyB0aGUgZGF0YSBwYXNzZWQgYnkgdGhlIEFQSSBEZXNpZ24gZG9jdW1lbnRhdGlvbi5cbiAgICBwcml2YXRlIF9ob3N0T2JqZWN0OiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGhvc3RPYmplY3QodmFsdWU6IGFueSkgeyBcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldEhvc3RDb21wb25lbnRJbnRvQ29tcG9uZW50UmVmKCk7XG4gICAgfVxuICAgIGdldCBob3N0T2JqZWN0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3N0T2JqZWN0O1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBob3N0RXZlbnRzOiBFdmVudEVtaXR0ZXI8YW55PiA9ICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBzaG93U3Bpbm5lciA9IHRydWU7XG4gICAgXG4gICAgcHJpdmF0ZSBjb21wUmVmOiBDb21wb25lbnRSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXG4gICAgICAgIHByaXZhdGUgcGVwQWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgICAgIC8vIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICkgeyB9XG5cbiAgICBwcml2YXRlIHNldEhvc3RDb21wb25lbnRJbnRvQ29tcG9uZW50UmVmKCkge1xuICAgICAgICBpZiAodGhpcy5ob3N0T2JqZWN0ICYmIHRoaXMuY29tcFJlZj8uaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcFJlZi5pbnN0YW5jZS5ob3N0T2JqZWN0ID0gdGhpcy5ob3N0T2JqZWN0O1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGlzIG5lZWRlZD8/IGlmIG5vdCByZW1vdmUgdGhpcy5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBSZWY/Lmluc3RhbmNlPy5uZ09uQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcFJlZi5pbnN0YW5jZS5uZ09uQ2hhbmdlcyh0aGlzLmhvc3RPYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICAvLyBpZiAoY2hhbmdlcz8ub3B0aW9ucz8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmxvYWRNb2R1bGUoY2hhbmdlcz8ub3B0aW9ucz8uY3VycmVudFZhbHVlKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZE1vZHVsZSgpIHtcbiAgICAgICAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgXG4gICAgICAgIC8vIENoZWNrIGlmIG9ubHkgbmVlZCB1cGRhdGVcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnM/LnVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyPy5jbGVhcigpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyB0cnkge1xuICAgICAgICAgICAgICAgIC8vIGlmICh0aGlzLm9wdGlvbnMuYWRkb25JZCkge1xuICAgICAgICAgICAgICAgIC8vICAgICBjb25zdCBwdWJsaWNQYXRoQXJyID0gdGhpcy5vcHRpb25zLnJlbW90ZUVudHJ5LnNwbGl0KCcvJyk7XG4gICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwdWJsaWNQYXRoQXJyLnNsaWNlKDAsIHB1YmxpY1BhdGhBcnIubGVuZ3RoIC0gMSkuam9pbignLycpKycvJztcbiAgICAgICAgICAgICAgICAvLyAgICAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBwdWJsaWNQYXRoO1xuICAgICAgICAgICAgICAgIC8vICAgICB0aGlzLnBlcEFkZG9uU2VydmljZS5zZXRBZGRvblN0YXRpY0ZvbGRlcihwdWJsaWNQYXRoLCB0aGlzLm9wdGlvbnMuYWRkb25JZCk7XG4gICAgICAgICAgICAgICAgLy8gfVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIGNvbnN0IG1vZHVsZSA9ICBhd2FpdCBsb2FkUmVtb3RlTW9kdWxlKHRoaXMub3B0aW9ucykudGhlbihtID0+IG0pO1xuICAgICAgICAgICAgICAgIC8vIGNvbnN0IGNvbXBvbmVudCA9IG1vZHVsZVt0aGlzLm9wdGlvbnMuY29tcG9uZW50TmFtZV07XG4gICAgICAgICAgICAgICAgLy8gdGhpcy5jb21wUmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnQpO1xuXG4gICAgICAgICAgICAvLyB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyPy5jbGVhcigpO1xuICAgICAgICAgICAgICAgIC8vIExvYWQgQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucz8ubm9Nb2R1bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gYXdhaXQgbG9hZFJlbW90ZU1vZHVsZSh0aGlzLm9wdGlvbnMpLnRoZW4obSA9PiBtW3RoaXMub3B0aW9ucy5jb21wb25lbnROYW1lXSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBOZXcgY29kZVxuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KTtcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gT2xkIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSwgbnVsbCwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIExvYWQgTW9kdWxlXG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IHB1YmxpY1BhdGhBcnIgPSB0aGlzLm9wdGlvbnMucmVtb3RlRW50cnkuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgcHVibGljUGF0aCA9IHB1YmxpY1BhdGhBcnIuc2xpY2UoMCwgcHVibGljUGF0aEFyci5sZW5ndGggLSAxKS5qb2luKCcvJykrJy8nO1xuICAgICAgICAgICAgICAgICAgICAvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyA9IHB1YmxpY1BhdGg7XG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMucGVwQWRkb25TZXJ2aWNlLnNldEFkZG9uU3RhdGljRm9sZGVyKHB1YmxpY1BhdGgsIHRoaXMub3B0aW9ucy5hZGRvbklkKTtcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlID0gIGF3YWl0IGxvYWRSZW1vdGVNb2R1bGUodGhpcy5vcHRpb25zKS50aGVuKG0gPT4gbSk7XG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBOZXcgY29kZVxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBtb2R1bGVSZWYgPSBjcmVhdGVOZ01vZHVsZVJlZihtb2R1bGUsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBjb21wb25lbnQgPSBtb2R1bGVbdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdO1xuICAgICAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCwgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciwgbmdNb2R1bGVSZWY6IG1vZHVsZVJlZiB9KTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIE9sZCBjb2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZUZhY3Rvcnk6IE5nTW9kdWxlRmFjdG9yeTxhbnk+ID0gdGhpcy5jb21waWxlci5jb21waWxlTW9kdWxlU3luYyhtb2R1bGVbdGhpcy5vcHRpb25zLmV4cG9zZWRNb2R1bGUucmVwbGFjZSgnLi8nLCcnKV0pO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGVSZWYgPSBtb2R1bGVGYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSBtb2R1bGVSZWY/LmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcj8ucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkobW9kdWxlW3RoaXMub3B0aW9ucy5jb21wb25lbnROYW1lXSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50RmFjdG9yeSwgbnVsbCwgdGhpcy5pbmplY3RvciwgbnVsbCwgbW9kdWxlUmVmKTtcbiAgICBcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdDEgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ3JlbW90ZSBtb2R1bGUgbG9hZCBwZXJmb3JtYW5jZTogJyArICh0MS10MCkvMTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5sb2FkLmVtaXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbXBSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SG9zdENvbXBvbmVudEludG9Db21wb25lbnRSZWYoKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5jb21wUmVmPy5pbnN0YW5jZVsnaG9zdEV2ZW50cyddPy5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gc3dpdGNoKGUuYWN0aW9uKXtcbiAgICAgICAgICAgICAgICAvLyAgICAgY2FzZSAnYWRkb24tbG9hZGVkJzpcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIHRoaXMuc2hvd1NwaW5uZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RXZlbnRzLmVtaXQoZSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcFJlZj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXI/LmNsZWFyKCk7XG4gICAgfVxufVxuXG4iXX0=
@@ -292,4 +292,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
292
292
  }], filterChange: [{
293
293
  type: Output
294
294
  }] } });
295
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBUUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUszQyxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsMkJBQTJCLEdBQzlCLE1BQU0sWUFBWSxDQUFDO0FBSXBCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFJeEUsTUFBTSxPQUFnQixtQkFBbUI7SUFxSHJDLFlBQ1ksZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLFFBQWtDLEVBQ2xDLE9BQW9CLEVBQ2xCLFNBQTJCLEVBQzNCLFNBQThCLEVBQzlCLFFBQW1CO1FBTnJCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUF2SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVloQyx5QkFBb0IsR0FBc0IsRUFBRSxDQUFDO1FBNkJwQyxpQkFBWSxHQUFHLEtB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LElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztJQUNMLENBQUM7O2dIQWhWaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFO3dSQVNMLEtBQUs7c0JBRFIsS0FBSztnQkFZRixhQUFhO3NCQURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgVmFsaWRhdGlvbkVycm9ycyxcbiAgICBWYWxpZGF0b3JGbixcbiAgICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICAgIFBlcFZhbGlkYXRvclNlcnZpY2UsXG4gICAgSVBlcE9wdGlvblxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XG5pbXBvcnQge1xuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yLFxuICAgIElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnMsXG4gICAgUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHMsXG59IGZyb20gJy4vb3BlcmF0b3InO1xuaW1wb3J0IHsgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSVBlcFNtYXJ0RmlsdGVyRGF0YSwgSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlIH0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9maWx0ZXItYWN0aW9ucy5jb21wb25lbnQnO1xuXG5cbkBEaXJlY3RpdmUoe30pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUZpbHRlckNvbXBvbmVudFxuICAgIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveWVkOiBTdWJqZWN0PHZvaWQ+O1xuICAgIHByaXZhdGUgYWN0aW9uc0NvbnRhaW5lclJlZjogQ29tcG9uZW50UmVmPFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+O1xuXG4gICAgcHJpdmF0ZSBfZmllbGRJZFdpdGhOb0RvdHMgPSAnJztcbiAgICBwcml2YXRlIF9maWVsZDogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQ7XG4gICAgQElucHV0KClcbiAgICBzZXQgZmllbGQodmFsdWU6IFBlcFNtYXJ0RmlsdGVyQmFzZUZpZWxkKSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgICAgIHRoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzID0gdmFsdWUgPyB2YWx1ZS5pZC5yZXBsYWNlKC9cXC4vZywgJ18nKSA6ICcnO1xuICAgICAgICB0aGlzLnNldHVwRm9ybSgpO1xuICAgIH1cbiAgICBnZXQgZmllbGQoKTogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gICAgfVxuXG4gICAgdmFyaWFibGVGaWVsZE9wdGlvbnM6IEFycmF5PElQZXBPcHRpb24+ID0gW107XG4gICAgQElucHV0KClcbiAgICBzZXQgdmFyaWFibGVGaWVsZChsaXN0OiBhbnlbXSkge1xuICAgICAgICBpZiAobGlzdD8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnZhcmlhYmxlRmllbGRPcHRpb25zID0gbGlzdC5tYXAoaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIFxuXG4gICAgcHJpdmF0ZSBfZmlsdGVyOiBJUGVwU21hcnRGaWx0ZXJEYXRhO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZpbHRlcih2YWx1ZTogSVBlcFNtYXJ0RmlsdGVyRGF0YSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXR1cEZpbHRlcigpO1xuICAgIH1cbiAgICBnZXQgZmlsdGVyKCk6IElQZXBTbWFydEZpbHRlckRhdGEge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyO1xuICAgIH1cbiAgICBwcm90ZWN0ZWQgX3BhcmVudEZvcm06IEZvcm1Hcm91cDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBwYXJlbnRGb3JtKGZvcm06IEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtID0gZm9ybTtcbiAgICAgICAgdGhpcy51cGRhdGVQYXJlbnRGb3JtKCk7XG4gICAgfVxuICAgIEBJbnB1dCgpIGVtaXRPbkNoYW5nZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlubGluZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b25zID0gdHJ1ZTtcbiAgICBASW5wdXQoKSByZW5kZXJUaXRsZSA9IHRydWU7XG4gICAgQElucHV0KCkgc2hvd0FkZGl0aW9uYWxPcGVyYXRvcnMgPSBmYWxzZTtcblxuICAgIEBPdXRwdXQoKSBmaWx0ZXJDbGVhcjogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZpbHRlckNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBTbWFydEZpbHRlckRhdGE+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwU21hcnRGaWx0ZXJEYXRhPigpO1xuXG4gICAgcHJpdmF0ZSBfb3BlcmF0b3I6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yO1xuICAgIHNldCBvcGVyYXRvcihvcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IpIHtcbiAgICAgICAgaWYgKG9wZXJhdG9yPy5pZCAhPSB0aGlzLl9vcGVyYXRvcj8uaWQpIHtcbiAgICAgICAgICAgIC8vIFZhbGlkYXRlIG9wZXJhdG9yXG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JzLmZpbmRJbmRleCgobykgPT4gby5pZCA9PT0gb3BlcmF0b3IuaWQpO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzW2luZGV4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb3BlcmF0b3IgPSB0aGlzLm9wZXJhdG9yc1swXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yKCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdG9yO1xuICAgIH1cblxuICAgIHByaXZhdGUgX29wZXJhdG9yVW5pdDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0O1xuICAgIHNldCBvcGVyYXRvclVuaXQob3BlcmF0b3JVbml0OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQpIHtcbiAgICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0b3IgdW5pdFxuICAgICAgICBpZiAob3BlcmF0b3JVbml0KSB7XG4gICAgICAgICAgICBjb25zdCBpbmRleCA9IHRoaXMub3BlcmF0b3JVbml0cy5maW5kSW5kZXgoXG4gICAgICAgICAgICAgICAgKG91KSA9PiBvdS5pZCA9PT0gb3BlcmF0b3JVbml0LmlkXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB0aGlzLm9wZXJhdG9yVW5pdHNbMF07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vcGVyYXRvclVuaXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3JVbml0O1xuICAgIH1cblxuICAgIGdldCBmaXJzdENvbnRyb2xLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkID8gYCR7dGhpcy5fZmllbGRJZFdpdGhOb0RvdHN9X2ZpcnN0YCA6ICdmaXJzdCc7XG4gICAgfVxuICAgIGdldCBmaXJzdENvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQodGhpcy5maXJzdENvbnRyb2xLZXkpO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbEtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyBgJHt0aGlzLl9maWVsZElkV2l0aE5vRG90c31fc2Vjb25kYCA6ICdzZWNvbmQnO1xuICAgIH1cbiAgICBnZXQgc2Vjb25kQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCh0aGlzLnNlY29uZENvbnRyb2xLZXkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVyYXRvcnM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW107XG4gICAgcHJvdGVjdGVkIG9wZXJhdG9yVW5pdHM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdFtdO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE9QRVJBVE9SU19UUkFOU0xBVElPTl9QUkVGSVggPSAnU01BUlRfRklMVEVSUy5PUEVSQVRPUlMnO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBPUEVSQVRPUl9VTklUU19UUkFOU0xBVElPTl9QUkVGSVggPVxuICAgICAgICAnU01BUlRfRklMVEVSUy5PUEVSQVRPUl9VTklUUyc7XG5cbiAgICBmb3JtOiBGb3JtR3JvdXA7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZXNvbHZlcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgdmFsaWRhdG9yOiBQZXBWYWxpZGF0b3JTZXJ2aWNlLFxuICAgICAgICBwcm90ZWN0ZWQgcmVuZGVyZXI6IFJlbmRlcmVyMlxuICAgICkge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlQWN0aW9uc0NvbXBvbmVudCgpIHtcbiAgICAgICAgY29uc3QgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50PiA9IHRoaXMucmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoXG4gICAgICAgICAgICBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmID0gZmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5mb3JtID0gdGhpcy5mb3JtO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuYXBwbHlDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIoKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaW5zdGFuY2UuY2xlYXJDbGljay5zdWJzY3JpYmUoKCkgPT5cbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5pbnNlcnQodGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmhvc3RWaWV3KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRm9ybSgpIHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuc2Vjb25kQ29udHJvbEtleV0gPSBbXTtcbiAgICAgICAgLy8gdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTsgICAgICAgIFxuICAgICAgICB0aGlzLmZvcm0gPSB0aGlzLmJ1aWxkZXIuZ3JvdXAoZm9ybVZhbHVlKTtcbiAgICAgICAgLy8gdGhpcy5mb3JtW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuXG4gICAgICAgIHRoaXMuc2V0dXBPcGVyYXRvcnMoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5jcmVhdGVBY3Rpb25zQ29tcG9uZW50KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwT3BlcmF0b3JzKCkge1xuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9ycyBieSBjb21wb25lbnRUeXBlLlxuICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgIC8vIEFkZCBhZGRpdGlvbmFsIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy5zaG93QWRkaXRpb25hbE9wZXJhdG9ycykge1xuICAgICAgICAgICAgY29uc3QgYWRkaXRpb25hbDogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JbXSA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0pO1xuXG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9ycyA9IFsuLi50aGlzLm9wZXJhdG9ycywgLi4uYWRkaXRpb25hbF07XG4gICAgICAgIH1cblxuICAgICAgICAvL2FkZCB2YXJpYWJsZSBvcGVyYXRvcnNcbiAgICAgICAgaWYgKHRoaXMudmFyaWFibGVGaWVsZE9wdGlvbnM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdmFyaWFibGVzOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9ycylcbiAgICAgICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5jb21wb25lbnRUeXBlXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAubWFwKChrZXkpID0+IFBlcFNtYXJ0RmlsdGVyVmFyaWFibGVPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi52YXJpYWJsZXNdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gdGhpcy5vcGVyYXRvcnMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9ycy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG5cblxuICAgICAgICAvLyBHZXQgdGhlIG9wZXJhdG9yIHVuaXRzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IE9iamVjdC5rZXlzKFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cylcbiAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzW2tleV0pO1xuXG4gICAgICAgIC8vIEZpbHRlciBieSBmcm9tIGZpZWxkLm9wZXJhdG9yc1VuaXRzIGlucHV0IGlmIGV4aXN0LlxuICAgICAgICBpZiAodGhpcy5maWVsZC5vcGVyYXRvclVuaXRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yVW5pdHMgPSB0aGlzLm9wZXJhdG9yVW5pdHMuZmlsdGVyKChvMSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHMuc29tZSgobzIpID0+IG8xLmlkID09PSBvMilcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBMb2FkIHRyYW5zbGF0aW9uIGJlZm9yZSBnZXQgdGhlIG9wdGlvbnMgaW4gdGhlIGNoaWxkcmVuLlxuICAgICAgICB0aGlzLnRyYW5zbGF0ZS5nZXQoJ1NNQVJUX0ZJTFRFUlMuVElUTEUnKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgdGhpcy5sb2FkT3BlcmF0b3JzT3B0aW9ucygpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwRmlsdGVyKCkge1xuICAgICAgICBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLmZpbHRlci5vcGVyYXRvcjtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0ID0gdGhpcy5maWx0ZXIub3BlcmF0b3JVbml0O1xuICAgICAgICAgICAgY29uc3QgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5maXJzdENvbnRyb2xLZXldID0gdGhpcy5maWx0ZXIudmFsdWUuZmlyc3Q7XG4gICAgICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IHRoaXMuZmlsdGVyLnZhbHVlLnNlY29uZDtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKGZvcm1WYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLm9wZXJhdG9yID0gdGhpcy5nZXREZWZhdWx0T3BlcmF0b3IoKTtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0ID0gdGhpcy5nZXREZWZhdWx0T3BlcmF0b3JVbml0KCk7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVQYXJlbnRGb3JtKCkge1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ2ZpZWxkSWQnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLmZpZWxkLmlkKSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnZmllbGRUeXBlJywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5maWVsZC50eXBlKSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnb3BlcmF0b3InLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLm9wZXJhdG9yKSk7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnb3BlcmF0b3JVbml0JywgdGhpcy5idWlsZGVyLmNvbnRyb2wodGhpcy5vcGVyYXRvclVuaXQpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCd2YWx1ZXMnLCB0aGlzLmJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgZmlyc3Q6IHRoaXMuZmlyc3RDb250cm9sLFxuICAgICAgICAgICAgc2Vjb25kOiB0aGlzLnNlY29uZENvbnRyb2xcbiAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXREZXN0cm95ZXIoKSB7XG4gICAgICAgIHJldHVybiB0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkaXR5KCkge1xuICAgICAgICB0aGlzLnNldEZpZWxkc1N0YXRlQW5kVmFsaWRhdG9ycygpO1xuXG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG4gICAgLy8gTG9hZCB0aGUgb3BlcmF0b3JzIG9wdGlvbnMgZnJvbSB0aGUgdHJhbnNsYXRpb24uXG4gICAgcHJvdGVjdGVkIGxvYWRPcGVyYXRvcnNPcHRpb25zKCk6IHZvaWQge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICAvLyBTZXQgZGVmYXVsdCB2YWxpZGF0b3JzIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpcnN0Q29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuc2V0VmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgdGhpcy5zZWNvbmRDb250cm9sLmRpc2FibGUoKTtcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gdW5kZWZpbmVkIC0gc29tZSBjaGlsZHMgb3ZlcnJpZGUgdGhpcy5cbiAgICBwcm90ZWN0ZWQgZ2V0RGVmYXVsdE9wZXJhdG9yVW5pdCgpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQge1xuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpbml0RmlsdGVyKCkge1xuICAgICAgICAvLyBOb3QgaW1wbGVtZW50ZWQgaW4gdGhlIGJhc2VcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBnZXREZWZhdWx0T3BlcmF0b3IoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3I7XG4gICAgYWJzdHJhY3QgZ2V0RmlsdGVyVmFsdWUoKTogSVBlcFNtYXJ0RmlsdGVyRGF0YVZhbHVlO1xuXG4gICAgY2xlYXJGaWx0ZXIoZW1pdEV2ZW50ID0gdHJ1ZSkge1xuICAgICAgICB0aGlzLl9maWx0ZXIgPSBudWxsO1xuICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgdGhpcy5pbml0RmlsdGVyKCk7XG5cbiAgICAgICAgaWYgKGVtaXRFdmVudCkge1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDbGVhci5lbWl0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhcHBseUZpbHRlcigpIHtcbiAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLmdldEZpbHRlclZhbHVlKCk7XG5cbiAgICAgICAgLy8gSWYgdGhlIGZpbHRlciBpcyBub3QgbnVsbCBkZWNsYXJlIGl0LCBlbHNlIC0gY2xlYXIgaXQuXG4gICAgICAgIGlmIChmaWx0ZXJWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyID0ge1xuICAgICAgICAgICAgICAgIGZpZWxkSWQ6IHRoaXMuZmllbGQuaWQsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3I6IHRoaXMub3BlcmF0b3IsXG4gICAgICAgICAgICAgICAgb3BlcmF0b3JVbml0OiB0aGlzLm9wZXJhdG9yVW5pdCxcbiAgICAgICAgICAgICAgICB2YWx1ZTogZmlsdGVyVmFsdWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgdGhpcy5fZmlsdGVyID0gZmlsdGVyO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJDaGFuZ2UuZW1pdChmaWx0ZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICAvLyBpZiAodGhpcy5mb3JtKSB7XG4gICAgICAgIC8vICAgICB0aGlzLnVwZGF0ZVZhbGlkaXR5KCk7XG4gICAgICAgIC8vIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkLmNvbXBsZXRlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5kZXN0cm95KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyB3cml0ZVZhbHVlKHZhbHVlOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWUpOiB2b2lkIHtcbiAgICAvLyAgICAgaWYgKHZhbHVlKSB7XG4gICAgLy8gICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoXG4gICAgLy8gICAgICAgICAgICAge1xuICAgIC8vICAgICAgICAgICAgICAgICBmaXJzdDogdmFsdWUuZmlyc3QsXG4gICAgLy8gICAgICAgICAgICAgICAgIHNlY29uZDogdmFsdWUuc2Vjb25kIHx8IG51bGwsXG4gICAgLy8gICAgICAgICAgICAgfSxcbiAgICAvLyAgICAgICAgICAgICB7IGVtaXRFdmVudDogZmFsc2UgfVxuICAgIC8vICAgICAgICAgKTtcbiAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgIC8vICAgICB9XG4gICAgLy8gfVxuXG4gICAgLy8gcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKGZuKTtcbiAgICAvLyB9XG5cbiAgICAvLyBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgLy8gICAgIC8qIERvIG5vdGhpbmcgKi9cbiAgICAvLyB9O1xuXG4gICAgLy8gcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgIC8vICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIC8vIH1cblxuICAgIC8vIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyAgICAgaXNEaXNhYmxlZCA/IHRoaXMuZm9ybS5kaXNhYmxlKCkgOiB0aGlzLmZvcm0uZW5hYmxlKCk7XG4gICAgLy8gfVxuXG4gICAgLy8gdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgLy8gICAgIHJldHVybiB0aGlzLmZvcm0udmFsaWQgPyBudWxsIDogeyBQZXBGaWx0ZXJJc05vdFZhbGlkOiB0cnVlIH07XG4gICAgLy8gfVxufVxuIl19
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1maWx0ZXItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9zbWFydC1maWx0ZXJzL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUtMLE1BQU0sR0FXVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBSUgsVUFBVSxHQUNiLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUszQyxPQUFPLEVBR0gsdUJBQXVCLEVBQ3ZCLGlDQUFpQyxFQUNqQywrQkFBK0IsRUFDL0IsMkJBQTJCLEdBQzlCLE1BQU0sWUFBWSxDQUFDO0FBSXBCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUFJeEUsTUFBTSxPQUFnQixtQkFBbUI7SUFxSHJDLFlBQ1ksZ0JBQWtDLEVBQ2xDLFFBQWtCLEVBQ2xCLFFBQWtDLEVBQ2xDLE9BQW9CLEVBQ2xCLFNBQTJCLEVBQzNCLFNBQThCLEVBQzlCLFFBQW1CO1FBTnJCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUEwQjtRQUNsQyxZQUFPLEdBQVAsT0FBTyxDQUFhO1FBQ2xCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGNBQVMsR0FBVCxTQUFTLENBQXFCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQVc7UUF2SHpCLHVCQUFrQixHQUFHLEVBQUUsQ0FBQztRQVloQyx5QkFBb0IsR0FBc0IsRUFBRSxDQUFDO1FBNkJwQyxpQkFBWSxHQUFHLEtB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LElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN0QztJQUNMLENBQUM7O2dIQWhWaUIsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUzttQkFBQyxFQUFFO3dSQVNMLEtBQUs7c0JBRFIsS0FBSztnQkFZRixhQUFhO3NCQURoQixLQUFLO2dCQWVGLE1BQU07c0JBRFQsS0FBSztnQkFVRixVQUFVO3NCQURiLEtBQUs7Z0JBS0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBRVAsWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE91dHB1dCxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBSZW5kZXJlcjIsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgIENvbXBvbmVudEZhY3RvcnksXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEluamVjdG9yLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gICAgUGVwVmFsaWRhdG9yU2VydmljZSxcbiAgICBJUGVwT3B0aW9uXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7XG4gICAgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3IsXG4gICAgSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0LFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyQWRkaXRpb25hbE9wZXJhdG9ycyxcbiAgICBQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzLFxuICAgIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0cyxcbn0gZnJvbSAnLi9vcGVyYXRvcic7XG5pbXBvcnQgeyBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUGVwU21hcnRGaWx0ZXJEYXRhLCBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWUgfSBmcm9tICcuL2ZpbHRlcic7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlckJhc2VGaWVsZCB9IGZyb20gJy4vZmllbGQnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgUGVwRmlsdGVyQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlci1hY3Rpb25zLmNvbXBvbmVudCc7XG5cblxuQERpcmVjdGl2ZSh7fSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlRmlsdGVyQ29tcG9uZW50XG4gICAgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95ZWQ6IFN1YmplY3Q8dm9pZD47XG4gICAgcHJpdmF0ZSBhY3Rpb25zQ29udGFpbmVyUmVmOiBDb21wb25lbnRSZWY8UGVwRmlsdGVyQWN0aW9uc0NvbXBvbmVudD47XG5cbiAgICBwcml2YXRlIF9maWVsZElkV2l0aE5vRG90cyA9ICcnO1xuICAgIHByaXZhdGUgX2ZpZWxkOiBQZXBTbWFydEZpbHRlckJhc2VGaWVsZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWVsZCh2YWx1ZTogUGVwU21hcnRGaWx0ZXJCYXNlRmllbGQpIHtcbiAgICAgICAgdGhpcy5fZmllbGQgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5fZmllbGRJZFdpdGhOb0RvdHMgPSB2YWx1ZSA/IHZhbHVlLmlkLnJlcGxhY2UoL1xcLi9nLCAnXycpIDogJyc7XG4gICAgICAgIHRoaXMuc2V0dXBGb3JtKCk7XG4gICAgfVxuICAgIGdldCBmaWVsZCgpOiBQZXBTbWFydEZpbHRlckJhc2VGaWVsZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWVsZDtcbiAgICB9XG5cbiAgICB2YXJpYWJsZUZpZWxkT3B0aW9uczogQXJyYXk8SVBlcE9wdGlvbj4gPSBbXTtcbiAgICBASW5wdXQoKVxuICAgIHNldCB2YXJpYWJsZUZpZWxkKGxpc3Q6IGFueVtdKSB7XG4gICAgICAgIGlmIChsaXN0Py5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudmFyaWFibGVGaWVsZE9wdGlvbnMgPSBsaXN0Lm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBrZXk6IGl0ZW0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgXG5cbiAgICBwcml2YXRlIF9maWx0ZXI6IElQZXBTbWFydEZpbHRlckRhdGE7XG4gICAgQElucHV0KClcbiAgICBzZXQgZmlsdGVyKHZhbHVlOiBJUGVwU21hcnRGaWx0ZXJEYXRhKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldHVwRmlsdGVyKCk7XG4gICAgfVxuICAgIGdldCBmaWx0ZXIoKTogSVBlcFNtYXJ0RmlsdGVyRGF0YSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9maWx0ZXI7XG4gICAgfVxuICAgIHByb3RlY3RlZCBfcGFyZW50Rm9ybTogRm9ybUdyb3VwO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHBhcmVudEZvcm0oZm9ybTogRm9ybUdyb3VwKSB7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0gPSBmb3JtO1xuICAgICAgICB0aGlzLnVwZGF0ZVBhcmVudEZvcm0oKTtcbiAgICB9XG4gICAgQElucHV0KCkgZW1pdE9uQ2hhbmdlID0gZmFsc2U7XG4gICAgQElucHV0KCkgaW5saW5lID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvd0FjdGlvbkJ1dHRvbnMgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG93QWRkaXRpb25hbE9wZXJhdG9ycyA9IGZhbHNlO1xuXG4gICAgQE91dHB1dCgpIGZpbHRlckNsZWFyOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgZmlsdGVyQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SVBlcFNtYXJ0RmlsdGVyRGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBTbWFydEZpbHRlckRhdGE+KCk7XG5cbiAgICBwcml2YXRlIF9vcGVyYXRvcjogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3I7XG4gICAgc2V0IG9wZXJhdG9yKG9wZXJhdG9yOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcikge1xuICAgICAgICBpZiAob3BlcmF0b3I/LmlkICE9IHRoaXMuX29wZXJhdG9yPy5pZCkge1xuICAgICAgICAgICAgLy8gVmFsaWRhdGUgb3BlcmF0b3JcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVyYXRvcnMuZmluZEluZGV4KChvKSA9PiBvLmlkID09PSBvcGVyYXRvci5pZCk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yID0gdGhpcy5vcGVyYXRvcnNbaW5kZXhdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRvciA9IHRoaXMub3BlcmF0b3JzWzBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb3BlcmF0b3IoKTogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3Ige1xuICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0b3I7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb3BlcmF0b3JVbml0OiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXQ7XG4gICAgc2V0IG9wZXJhdG9yVW5pdChvcGVyYXRvclVuaXQ6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCkge1xuICAgICAgICAvLyBWYWxpZGF0ZSBvcGVyYXRvciB1bml0XG4gICAgICAgIGlmIChvcGVyYXRvclVuaXQpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5vcGVyYXRvclVuaXRzLmZpbmRJbmRleChcbiAgICAgICAgICAgICAgICAob3UpID0+IG91LmlkID09PSBvcGVyYXRvclVuaXQuaWRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yVW5pdCA9IHRoaXMub3BlcmF0b3JVbml0c1tpbmRleF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yVW5pdCA9IHRoaXMub3BlcmF0b3JVbml0c1swXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX29wZXJhdG9yVW5pdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgb3BlcmF0b3JVbml0KCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRvclVuaXQ7XG4gICAgfVxuXG4gICAgZ2V0IGZpcnN0Q29udHJvbEtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmllbGQgPyBgJHt0aGlzLl9maWVsZElkV2l0aE5vRG90c31fZmlyc3RgIDogJ2ZpcnN0JztcbiAgICB9XG4gICAgZ2V0IGZpcnN0Q29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLmdldCh0aGlzLmZpcnN0Q29udHJvbEtleSk7XG4gICAgfVxuICAgIGdldCBzZWNvbmRDb250cm9sS2V5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCA/IGAke3RoaXMuX2ZpZWxkSWRXaXRoTm9Eb3RzfV9zZWNvbmRgIDogJ3NlY29uZCc7XG4gICAgfVxuICAgIGdldCBzZWNvbmRDb250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uZ2V0KHRoaXMuc2Vjb25kQ29udHJvbEtleSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9wZXJhdG9yczogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JbXTtcbiAgICBwcm90ZWN0ZWQgb3BlcmF0b3JVbml0czogSVBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0W107XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgT1BFUkFUT1JTX1RSQU5TTEFUSU9OX1BSRUZJWCA9ICdTTUFSVF9GSUxURVJTLk9QRVJBVE9SUyc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IE9QRVJBVE9SX1VOSVRTX1RSQU5TTEFUSU9OX1BSRUZJWCA9XG4gICAgICAgICdTTUFSVF9GSUxURVJTLk9QRVJBVE9SX1VOSVRTJztcblxuICAgIGZvcm06IEZvcm1Hcm91cDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgYnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCB2YWxpZGF0b3I6IFBlcFZhbGlkYXRvclNlcnZpY2UsXG4gICAgICAgIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3llZCA9IG5ldyBTdWJqZWN0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVBY3Rpb25zQ29tcG9uZW50KCkge1xuICAgICAgICBjb25zdCBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQ+ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgICAgIFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnRcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLmFjdGlvbnNDb250YWluZXJSZWYgPSBmYWN0b3J5LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcbiAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmluc3RhbmNlLmZvcm0gPSB0aGlzLmZvcm07XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5hcHBseUNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5hcHBseUZpbHRlcigpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuYWN0aW9uc0NvbnRhaW5lclJlZi5pbnN0YW5jZS5jbGVhckNsaWNrLnN1YnNjcmliZSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5jbGVhckZpbHRlcigpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLmluc2VydCh0aGlzLmFjdGlvbnNDb250YWluZXJSZWYuaG9zdFZpZXcpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGb3JtKCkge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgZm9ybVZhbHVlW3RoaXMuZmlyc3RDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICBmb3JtVmFsdWVbdGhpcy5zZWNvbmRDb250cm9sS2V5XSA9IFtdO1xuICAgICAgICAvLyB0aGlzLmZvcm0ucGF0Y2hWYWx1ZShmb3JtVmFsdWUpOyAgICAgICAgXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuYnVpbGRlci5ncm91cChmb3JtVmFsdWUpO1xuICAgICAgICAvLyB0aGlzLmZvcm1bdGhpcy5maXJzdENvbnRyb2xLZXldID0gW107XG4gICAgICAgIC8vIHRoaXMuZm9ybVt0aGlzLnNlY29uZENvbnRyb2xLZXldID0gW107XG5cbiAgICAgICAgdGhpcy5zZXR1cE9wZXJhdG9ycygpO1xuXG4gICAgICAgIGlmICh0aGlzLnNob3dBY3Rpb25CdXR0b25zKSB7XG4gICAgICAgICAgICB0aGlzLmNyZWF0ZUFjdGlvbnNDb21wb25lbnQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBPcGVyYXRvcnMoKSB7XG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3JzIGJ5IGNvbXBvbmVudFR5cGUuXG4gICAgICAgIHRoaXMub3BlcmF0b3JzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnMpXG4gICAgICAgICAgICAuZmlsdGVyKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XS5jb21wb25lbnRUeXBlLmluY2x1ZGVzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgLy8gQWRkIGFkZGl0aW9uYWwgb3BlcmF0b3JzXG4gICAgICAgIGlmICh0aGlzLnNob3dBZGRpdGlvbmFsT3BlcmF0b3JzKSB7XG4gICAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcltdID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJBZGRpdGlvbmFsT3BlcmF0b3JzW2tleV0uY29tcG9uZW50VHlwZS5pbmNsdWRlcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlckFkZGl0aW9uYWxPcGVyYXRvcnNba2V5XSk7XG5cbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JzID0gWy4uLnRoaXMub3BlcmF0b3JzLCAuLi5hZGRpdGlvbmFsXTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vYWRkIHZhcmlhYmxlIG9wZXJhdG9yc1xuICAgICAgICBpZiAodGhpcy52YXJpYWJsZUZpZWxkT3B0aW9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZXM6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yW10gPSBPYmplY3Qua2V5cyhQZXBTbWFydEZpbHRlclZhcmlhYmxlT3BlcmF0b3JzKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZpZWxkLmNvbXBvbmVudFR5cGVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5tYXAoKGtleSkgPT4gUGVwU21hcnRGaWx0ZXJWYXJpYWJsZU9wZXJhdG9yc1trZXldKTtcblxuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSBbLi4udGhpcy5vcGVyYXRvcnMsIC4uLnZhcmlhYmxlc107XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGaWx0ZXIgYnkgZnJvbSBmaWVsZC5vcGVyYXRvcnMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvcnMgPSB0aGlzLm9wZXJhdG9ycy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JzLnNvbWUoKG8yKSA9PiBvMS5pZCA9PT0gbzIpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cblxuXG4gICAgICAgIC8vIEdldCB0aGUgb3BlcmF0b3IgdW5pdHMgYnkgY29tcG9uZW50VHlwZS5cbiAgICAgICAgdGhpcy5vcGVyYXRvclVuaXRzID0gT2JqZWN0LmtleXMoUGVwU21hcnRGaWx0ZXJPcGVyYXRvclVuaXRzKVxuICAgICAgICAgICAgLmZpbHRlcigoa2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFBlcFNtYXJ0RmlsdGVyT3BlcmF0b3JVbml0c1trZXldLmNvbXBvbmVudFR5cGUuaW5jbHVkZXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGQuY29tcG9uZW50VHlwZVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLm1hcCgoa2V5KSA9PiBQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdHNba2V5XSk7XG5cbiAgICAgICAgLy8gRmlsdGVyIGJ5IGZyb20gZmllbGQub3BlcmF0b3JzVW5pdHMgaW5wdXQgaWYgZXhpc3QuXG4gICAgICAgIGlmICh0aGlzLmZpZWxkLm9wZXJhdG9yVW5pdHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3JVbml0cyA9IHRoaXMub3BlcmF0b3JVbml0cy5maWx0ZXIoKG8xKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuZmllbGQub3BlcmF0b3JVbml0cy5zb21lKChvMikgPT4gbzEuaWQgPT09IG8yKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIExvYWQgdHJhbnNsYXRpb24gYmVmb3JlIGdldCB0aGUgb3B0aW9ucyBpbiB0aGUgY2hpbGRyZW4uXG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmdldCgnU01BUlRfRklMVEVSUy5USVRMRScpLnN1YnNjcmliZSgocmVzKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxvYWRPcGVyYXRvcnNPcHRpb25zKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBGaWx0ZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLmZpbHRlcikge1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvciA9IHRoaXMuZmlsdGVyLm9wZXJhdG9yO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLmZpbHRlci5vcGVyYXRvclVuaXQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLmZpcnN0Q29udHJvbEtleV0gPSB0aGlzLmZpbHRlci52YWx1ZS5maXJzdDtcbiAgICAgICAgICAgIGZvcm1WYWx1ZVt0aGlzLnNlY29uZENvbnRyb2xLZXldID0gdGhpcy5maWx0ZXIudmFsdWUuc2Vjb25kO1xuICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoZm9ybVZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMub3BlcmF0b3IgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvcigpO1xuICAgICAgICAgICAgdGhpcy5vcGVyYXRvclVuaXQgPSB0aGlzLmdldERlZmF1bHRPcGVyYXRvclVuaXQoKTtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJGaWx0ZXIoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHVwZGF0ZVBhcmVudEZvcm0oKSB7XG4gICAgICAgIHRoaXMuX3BhcmVudEZvcm0uc2V0Q29udHJvbCgnZmllbGRJZCcsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMuZmllbGQuaWQpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdmaWVsZFR5cGUnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLmZpZWxkLnR5cGUpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvcicsIHRoaXMuYnVpbGRlci5jb250cm9sKHRoaXMub3BlcmF0b3IpKTtcbiAgICAgICAgdGhpcy5fcGFyZW50Rm9ybS5zZXRDb250cm9sKCdvcGVyYXRvclVuaXQnLCB0aGlzLmJ1aWxkZXIuY29udHJvbCh0aGlzLm9wZXJhdG9yVW5pdCkpO1xuICAgICAgICB0aGlzLl9wYXJlbnRGb3JtLnNldENvbnRyb2woJ3ZhbHVlcycsIHRoaXMuYnVpbGRlci5ncm91cCh7XG4gICAgICAgICAgICBmaXJzdDogdGhpcy5maXJzdENvbnRyb2wsXG4gICAgICAgICAgICBzZWNvbmQ6IHRoaXMuc2Vjb25kQ29udHJvbFxuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldERlc3Ryb3llcigpIHtcbiAgICAgICAgcmV0dXJuIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVmFsaWRpdHkoKSB7XG4gICAgICAgIHRoaXMuc2V0RmllbGRzU3RhdGVBbmRWYWxpZGF0b3JzKCk7XG5cbiAgICAgICAgdGhpcy5maXJzdENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cbiAgICAvLyBMb2FkIHRoZSBvcGVyYXRvcnMgb3B0aW9ucyBmcm9tIHRoZSB0cmFuc2xhdGlvbi5cbiAgICBwcm90ZWN0ZWQgbG9hZE9wZXJhdG9yc09wdGlvbnMoKTogdm9pZCB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIC8vIFNldCBkZWZhdWx0IHZhbGlkYXRvcnMgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBzZXRGaWVsZHNTdGF0ZUFuZFZhbGlkYXRvcnMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlyc3RDb250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIHRoaXMuc2Vjb25kQ29udHJvbC5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB0aGlzLnNlY29uZENvbnRyb2wuZGlzYWJsZSgpO1xuICAgIH1cblxuICAgIC8vIFJldHVybiB1bmRlZmluZWQgLSBzb21lIGNoaWxkcyBvdmVycmlkZSB0aGlzLlxuICAgIHByb3RlY3RlZCBnZXREZWZhdWx0T3BlcmF0b3JVbml0KCk6IElQZXBTbWFydEZpbHRlck9wZXJhdG9yVW5pdCB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRGaWx0ZXIoKSB7XG4gICAgICAgIC8vIE5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgYmFzZVxuICAgIH1cblxuICAgIGFic3RyYWN0IGdldERlZmF1bHRPcGVyYXRvcigpOiBJUGVwU21hcnRGaWx0ZXJPcGVyYXRvcjtcbiAgICBhYnN0cmFjdCBnZXRGaWx0ZXJWYWx1ZSgpOiBJUGVwU21hcnRGaWx0ZXJEYXRhVmFsdWU7XG5cbiAgICBjbGVhckZpbHRlcihlbWl0RXZlbnQgPSB0cnVlKSB7XG4gICAgICAgIHRoaXMuX2ZpbHRlciA9IG51bGw7XG4gICAgICAgIHRoaXMuZm9ybS5yZXNldCgpO1xuICAgICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcblxuICAgICAgICBpZiAoZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNsZWFyLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFwcGx5RmlsdGVyKCkge1xuICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuZ2V0RmlsdGVyVmFsdWUoKTtcblxuICAgICAgICAvLyBJZiB0aGUgZmlsdGVyIGlzIG5vdCBudWxsIGRlY2xhcmUgaXQsIGVsc2UgLSBjbGVhciBpdC5cbiAgICAgICAgaWYgKGZpbHRlclZhbHVlKSB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XG4gICAgICAgICAgICAgICAgZmllbGRJZDogdGhpcy5maWVsZC5pZCxcbiAgICAgICAgICAgICAgICBvcGVyYXRvcjogdGhpcy5vcGVyYXRvcixcbiAgICAgICAgICAgICAgICBvcGVyYXRvclVuaXQ6IHRoaXMub3BlcmF0b3JVbml0LFxuICAgICAgICAgICAgICAgIHZhbHVlOiBmaWx0ZXJWYWx1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICB0aGlzLl9maWx0ZXIgPSBmaWx0ZXI7XG4gICAgICAgICAgICB0aGlzLmZpbHRlckNoYW5nZS5lbWl0KGZpbHRlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSkge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVWYWxpZGl0eSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIC8vIGlmICh0aGlzLmZvcm0pIHtcbiAgICAgICAgLy8gICAgIHRoaXMudXBkYXRlVmFsaWRpdHkoKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQuY29tcGxldGUoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG93QWN0aW9uQnV0dG9ucykge1xuICAgICAgICAgICAgdGhpcy5hY3Rpb25zQ29udGFpbmVyUmVmLmRlc3Ryb3koKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIHdyaXRlVmFsdWUodmFsdWU6IElQZXBTbWFydEZpbHRlckRhdGFWYWx1ZSk6IHZvaWQge1xuICAgIC8vICAgICBpZiAodmFsdWUpIHtcbiAgICAvLyAgICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZShcbiAgICAvLyAgICAgICAgICAgICB7XG4gICAgLy8gICAgICAgICAgICAgICAgIGZpcnN0OiB2YWx1ZS5maXJzdCxcbiAgICAvLyAgICAgICAgICAgICAgICAgc2Vjb25kOiB2YWx1ZS5zZWNvbmQgfHwgbnVsbCxcbiAgICAvLyAgICAgICAgICAgICB9LFxuICAgIC8vICAgICAgICAgICAgIHsgZW1pdEV2ZW50OiBmYWxzZSB9XG4gICAgLy8gICAgICAgICApO1xuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgdGhpcy5mb3JtLnJlc2V0KCk7XG4gICAgLy8gICAgIH1cbiAgICAvLyB9XG5cbiAgICAvLyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoZm4pO1xuICAgIC8vIH1cblxuICAgIC8vIG9uVG91Y2hlZDogKCkgPT4gdm9pZCA9ICgpID0+IHtcbiAgICAvLyAgICAgLyogRG8gbm90aGluZyAqL1xuICAgIC8vIH07XG5cbiAgICAvLyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgLy8gICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gICAgLy8gfVxuXG4gICAgLy8gc2V0RGlzYWJsZWRTdGF0ZT8oaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vICAgICBpc0Rpc2FibGVkID8gdGhpcy5mb3JtLmRpc2FibGUoKSA6IHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICAvLyB9XG5cbiAgICAvLyB2YWxpZGF0ZShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZm9ybS52YWxpZCA/IG51bGwgOiB7IFBlcEZpbHRlcklzTm90VmFsaWQ6IHRydWUgfTtcbiAgICAvLyB9XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
- import { ReactiveFormsModule } from '@angular/forms';
3
+ import { FormBuilder, ReactiveFormsModule } from '@angular/forms';
4
4
  import { FlexLayoutModule } from '@angular/flex-layout';
5
5
  import { MatCommonModule } from '@angular/material/core';
6
6
  import { MatCheckboxModule } from '@angular/material/checkbox';
@@ -77,7 +77,9 @@ PepSmartFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", v
77
77
  PepDateFilterComponent,
78
78
  PepMultiSelectFilterComponent,
79
79
  PepNumberFilterComponent] });
80
- PepSmartFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSmartFiltersModule, imports: [CommonModule,
80
+ PepSmartFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepSmartFiltersModule, providers: [
81
+ FormBuilder
82
+ ], imports: [CommonModule,
81
83
  ReactiveFormsModule,
82
84
  FlexLayoutModule,
83
85
  // Material modules
@@ -148,6 +150,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
148
150
  PepMultiSelectFilterComponent,
149
151
  PepNumberFilterComponent
150
152
  ],
153
+ providers: [
154
+ FormBuilder
155
+ ]
151
156
  }]
152
157
  }], ctorParameters: function () { return [{ type: i1.PepIconRegistry }]; } });
153
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvc21hcnQtZmlsdGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FB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Q2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHFCQUFxQjtxQkFDeEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsNkJBQTZCO3dCQUM3Qix3QkFBd0I7cUJBQzNCO29CQUNELFlBQVksRUFBRTt3QkFDVix1QkFBdUI7d0JBQ3ZCLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qiw2QkFBNkI7d0JBQzdCLHdCQUF3QjtxQkFDM0I7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGbGV4TGF5b3V0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZmxleC1sYXlvdXQnO1xuXG5pbXBvcnQgeyBNYXRDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBNYXRFeHBhbnNpb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFJhZGlvTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcmFkaW8nO1xuXG5pbXBvcnQgeyBWaXJ0dWFsU2Nyb2xsZXJNb2R1bGUgfSBmcm9tICduZ3gtdmlydHVhbC1zY3JvbGxlcic7XG5cbmltcG9ydCB7IFBlcE5neExpYk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IFBlcENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvY2hlY2tib3gnO1xuaW1wb3J0IHsgUGVwRGF0ZU1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2RhdGUnO1xuaW1wb3J0IHsgUGVwU2VsZWN0TW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2VsZWN0JztcbmltcG9ydCB7IFBlcFRleHRib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi90ZXh0Ym94JztcbmltcG9ydCB7IFBlcFNlYXJjaE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3NlYXJjaCc7XG5pbXBvcnQgeyBQZXBCdXR0b25Nb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9idXR0b24nO1xuaW1wb3J0IHtcbiAgICBQZXBJY29uTW9kdWxlLFxuICAgIFBlcEljb25SZWdpc3RyeSxcbiAgICBwZXBJY29uTnVtYmVyTWludXMsXG4gICAgcGVwSWNvbk51bWJlclBsdXMsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwR3JvdXBCdXR0b25zTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZ3JvdXAtYnV0dG9ucyc7XG5cbi8vIGltcG9ydCB7IEJhc2VGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbW1vbi9tb2RlbC9iYXNlLWZpbHRlci1jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwU21hcnRGaWx0ZXJzQ29tcG9uZW50IH0gZnJvbSAnLi9zbWFydC1maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50IH0gZnJvbSAnLi9jb21tb24vZmlsdGVyLWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcFRleHRGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL3RleHQtZmlsdGVyL3RleHQtZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBCb29sZWFuRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9ib29sZWFuLWZpbHRlci9ib29sZWFuLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwRGF0ZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS1maWx0ZXIvZGF0ZS1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcE11bHRpU2VsZWN0RmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9tdWx0aS1zZWxlY3QtZmlsdGVyL211bHRpLXNlbGVjdC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcE51bWJlckZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWZpbHRlci9udW1iZXItZmlsdGVyLmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgRmxleExheW91dE1vZHVsZSxcbiAgICAgICAgLy8gTWF0ZXJpYWwgbW9kdWxlc1xuICAgICAgICBNYXRDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgICAgICBNYXRDaGlwc01vZHVsZSxcbiAgICAgICAgTWF0RXhwYW5zaW9uTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRSYWRpb01vZHVsZSxcbiAgICAgICAgLy8gRXh0ZXJuYWwgbW9kdWxlc1xuICAgICAgICBWaXJ0dWFsU2Nyb2xsZXJNb2R1bGUsXG4gICAgICAgIC8vIG5neC1saWIgbW9kdWxlc1xuICAgICAgICBQZXBOZ3hMaWJNb2R1bGUsXG4gICAgICAgIFBlcENoZWNrYm94TW9kdWxlLFxuICAgICAgICBQZXBEYXRlTW9kdWxlLFxuICAgICAgICBQZXBTZWxlY3RNb2R1bGUsXG4gICAgICAgIFBlcFRleHRib3hNb2R1bGUsXG4gICAgICAgIFBlcFNlYXJjaE1vZHVsZSxcbiAgICAgICAgUGVwSWNvbk1vZHVsZSxcbiAgICAgICAgUGVwQnV0dG9uTW9kdWxlLFxuICAgICAgICBQZXBHcm91cEJ1dHRvbnNNb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgUGVwU21hcnRGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBQZXBUZXh0RmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBCb29sZWFuRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBEYXRlRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBNdWx0aVNlbGVjdEZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgUGVwTnVtYmVyRmlsdGVyQ29tcG9uZW50XG4gICAgXSxcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgLy8gQmFzZUZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgUGVwU21hcnRGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICBQZXBGaWx0ZXJBY3Rpb25zQ29tcG9uZW50LFxuICAgICAgICBQZXBUZXh0RmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBCb29sZWFuRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBEYXRlRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBNdWx0aVNlbGVjdEZpbHRlckNvbXBvbmVudCxcbiAgICAgICAgUGVwTnVtYmVyRmlsdGVyQ29tcG9uZW50XG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwU21hcnRGaWx0ZXJzTW9kdWxlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcEljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMucGVwSWNvblJlZ2lzdHJ5LnJlZ2lzdGVySWNvbnMoW1xuICAgICAgICAgICAgcGVwSWNvbk51bWJlck1pbnVzLFxuICAgICAgICAgICAgcGVwSWNvbk51bWJlclBsdXMsXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnQtZmlsdGVycy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3NtYXJ0LWZpbHRlcnMvc21hcnQtZmlsdGVycy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFF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QWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixhQUFhO3dCQUNiLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixxQkFBcUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDTCx3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIseUJBQXlCO3dCQUN6QixzQkFBc0I7d0JBQ3RCLDZCQUE2Qjt3QkFDN0Isd0JBQXdCO3FCQUMzQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsdUJBQXVCO3dCQUN2Qix3QkFBd0I7d0JBQ3hCLHlCQUF5Qjt3QkFDekIsc0JBQXNCO3dCQUN0Qix5QkFBeUI7d0JBQ3pCLHNCQUFzQjt3QkFDdEIsNkJBQTZCO3dCQUM3Qix3QkFBd0I7cUJBQzNCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxXQUFXO3FCQUNkO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZsZXhMYXlvdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mbGV4LWxheW91dCc7XG5cbmltcG9ydCB7IE1hdENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdEV4cGFuc2lvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2V4cGFuc2lvbic7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbyc7XG5cbmltcG9ydCB7IFZpcnR1YWxTY3JvbGxlck1vZHVsZSB9IGZyb20gJ25neC12aXJ0dWFsLXNjcm9sbGVyJztcblxuaW1wb3J0IHsgUGVwTmd4TGliTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwQ2hlY2tib3hNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9jaGVja2JveCc7XG5pbXBvcnQgeyBQZXBEYXRlTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvZGF0ZSc7XG5pbXBvcnQgeyBQZXBTZWxlY3RNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9zZWxlY3QnO1xuaW1wb3J0IHsgUGVwVGV4dGJveE1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL3RleHRib3gnO1xuaW1wb3J0IHsgUGVwU2VhcmNoTW9kdWxlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvc2VhcmNoJztcbmltcG9ydCB7IFBlcEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2J1dHRvbic7XG5pbXBvcnQge1xuICAgIFBlcEljb25Nb2R1bGUsXG4gICAgUGVwSWNvblJlZ2lzdHJ5LFxuICAgIHBlcEljb25OdW1iZXJNaW51cyxcbiAgICBwZXBJY29uTnVtYmVyUGx1cyxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWIvaWNvbic7XG5pbXBvcnQgeyBQZXBHcm91cEJ1dHRvbnNNb2R1bGUgfSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYi9ncm91cC1idXR0b25zJztcblxuLy8gaW1wb3J0IHsgQmFzZUZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tbW9uL21vZGVsL2Jhc2UtZmlsdGVyLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBTbWFydEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL3NtYXJ0LWZpbHRlcnMuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL2NvbW1vbi9maWx0ZXItYWN0aW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwVGV4dEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1maWx0ZXIvdGV4dC1maWx0ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFBlcEJvb2xlYW5GaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL2Jvb2xlYW4tZmlsdGVyL2Jvb2xlYW4tZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZXBEYXRlRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwTXVsdGlTZWxlY3RGaWx0ZXJDb21wb25lbnQgfSBmcm9tICcuL211bHRpLXNlbGVjdC1maWx0ZXIvbXVsdGktc2VsZWN0LWZpbHRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwTnVtYmVyRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9udW1iZXItZmlsdGVyL251bWJlci1maWx0ZXIuY29tcG9uZW50JztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBGbGV4TGF5b3V0TW9kdWxlLFxuICAgICAgICAvLyBNYXRlcmlhbCBtb2R1bGVzXG4gICAgICAgIE1hdENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIE1hdENoaXBzTW9kdWxlLFxuICAgICAgICBNYXRFeHBhbnNpb25Nb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIE1hdFJhZGlvTW9kdWxlLFxuICAgICAgICAvLyBFeHRlcm5hbCBtb2R1bGVzXG4gICAgICAgIFZpcnR1YWxTY3JvbGxlck1vZHVsZSxcbiAgICAgICAgLy8gbmd4LWxpYiBtb2R1bGVzXG4gICAgICAgIFBlcE5neExpYk1vZHVsZSxcbiAgICAgICAgUGVwQ2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFBlcERhdGVNb2R1bGUsXG4gICAgICAgIFBlcFNlbGVjdE1vZHVsZSxcbiAgICAgICAgUGVwVGV4dGJveE1vZHVsZSxcbiAgICAgICAgUGVwU2VhcmNoTW9kdWxlLFxuICAgICAgICBQZXBJY29uTW9kdWxlLFxuICAgICAgICBQZXBCdXR0b25Nb2R1bGUsXG4gICAgICAgIFBlcEdyb3VwQnV0dG9uc01vZHVsZVxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBQZXBTbWFydEZpbHRlcnNDb21wb25lbnQsXG4gICAgICAgIFBlcFRleHRGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFBlcEJvb2xlYW5GaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFBlcERhdGVGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFBlcE11bHRpU2VsZWN0RmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBOdW1iZXJGaWx0ZXJDb21wb25lbnRcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICAvLyBCYXNlRmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBTbWFydEZpbHRlcnNDb21wb25lbnQsXG4gICAgICAgIFBlcEZpbHRlckFjdGlvbnNDb21wb25lbnQsXG4gICAgICAgIFBlcFRleHRGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFBlcEJvb2xlYW5GaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFBlcERhdGVGaWx0ZXJDb21wb25lbnQsXG4gICAgICAgIFBlcE11bHRpU2VsZWN0RmlsdGVyQ29tcG9uZW50LFxuICAgICAgICBQZXBOdW1iZXJGaWx0ZXJDb21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBGb3JtQnVpbGRlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGVwU21hcnRGaWx0ZXJzTW9kdWxlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcEljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMucGVwSWNvblJlZ2lzdHJ5LnJlZ2lzdGVySWNvbnMoW1xuICAgICAgICAgICAgcGVwSWNvbk51bWJlck1pbnVzLFxuICAgICAgICAgICAgcGVwSWNvbk51bWJlclBsdXMsXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiJdfQ==