@worktile/theia 14.3.10 → 14.3.11

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 (48) hide show
  1. package/editor.module.d.ts +3 -2
  2. package/esm2020/components/column-resize/column-resize.directive.mjs +4 -4
  3. package/esm2020/editor.module.mjs +4 -4
  4. package/esm2020/plugins/code/code.component.mjs +3 -6
  5. package/esm2020/plugins/table/components/insert-mark/insert-mark.component.mjs +5 -3
  6. package/esm2020/plugins/table/components/row/row.component.mjs +23 -17
  7. package/esm2020/plugins/table/components/table.component.mjs +188 -23
  8. package/esm2020/plugins/table/components/td/td.component.mjs +4 -35
  9. package/esm2020/plugins/table/components/toolbar/table-options.component.mjs +24 -9
  10. package/esm2020/plugins/table/components/toolbar/table-toolbar.component.mjs +38 -28
  11. package/esm2020/plugins/table/table.editor.mjs +6 -5
  12. package/esm2020/plugins/table/table.pipe.mjs +19 -3
  13. package/esm2020/plugins/table/table.plugin.mjs +2 -1
  14. package/esm2020/plugins/table/table.service.mjs +5 -7
  15. package/esm2020/plugins/table/table.store.mjs +46 -67
  16. package/esm2020/plugins/table/table.types.mjs +9 -4
  17. package/esm2020/plugins/table/transforms/insert-column.mjs +6 -2
  18. package/esm2020/plugins/table/utils/add-columns.mjs +16 -2
  19. package/esm2020/plugins/table/utils/create-table.mjs +5 -3
  20. package/esm2020/plugins/table/utils/is-selection-in-table.mjs +30 -8
  21. package/esm2020/plugins/table/utils/set-menu-cell-invisibility.mjs +9 -9
  22. package/esm2020/plugins/table/utils/table-position.mjs +1 -1
  23. package/esm2020/services/context.service.mjs +28 -4
  24. package/esm2020/services/table-contextmenu.service.mjs +8 -2
  25. package/esm2020/utils/copy-node.mjs +28 -13
  26. package/esm2020/utils/refocus.mjs +7 -7
  27. package/fesm2015/worktile-theia.mjs +501 -249
  28. package/fesm2015/worktile-theia.mjs.map +1 -1
  29. package/fesm2020/worktile-theia.mjs +489 -250
  30. package/fesm2020/worktile-theia.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/plugins/table/components/row/row.component.d.ts +5 -3
  33. package/plugins/table/components/table.component.d.ts +19 -4
  34. package/plugins/table/components/table.component.scss +168 -59
  35. package/plugins/table/components/td/td.component.d.ts +0 -3
  36. package/plugins/table/components/toolbar/table-toolbar.component.d.ts +9 -5
  37. package/plugins/table/table.editor.d.ts +2 -2
  38. package/plugins/table/table.pipe.d.ts +5 -0
  39. package/plugins/table/table.service.d.ts +2 -2
  40. package/plugins/table/table.store.d.ts +3 -3
  41. package/plugins/table/table.types.d.ts +7 -2
  42. package/plugins/table/utils/add-columns.d.ts +1 -1
  43. package/plugins/table/utils/is-selection-in-table.d.ts +2 -1
  44. package/plugins/table/utils/set-menu-cell-invisibility.d.ts +1 -1
  45. package/plugins/table/utils/table-position.d.ts +2 -2
  46. package/services/context.service.d.ts +7 -2
  47. package/utils/copy-node.d.ts +3 -1
  48. package/utils/refocus.d.ts +1 -2
@@ -7,7 +7,7 @@ import { calculateCellSpan, getLeftCellDict } from '../plugins/table/utils/merge
7
7
  import { getSelectCellNode } from '../plugins/table/utils/get-select-cell-node';
8
8
  import { TheContextMenuComponent } from '../components/contextmenu/contextmenu.component';
9
9
  import { BackgroundColors, SpecialBackgroundColor, TableHeaderBackgroundColor } from '../constants';
10
- import { refocus } from '../utils';
10
+ import { refocus, reSelection } from '../utils';
11
11
  import * as i0 from "@angular/core";
12
12
  import * as i1 from "./color-select.service";
13
13
  import * as i2 from "../plugins/table/table.store";
@@ -241,6 +241,9 @@ export class TheTableContextMenuService {
241
241
  },
242
242
  activeHandle: (menuEvent, entity) => {
243
243
  if (entity.activeHandle) {
244
+ if (!this.editor.selection) {
245
+ reSelection(this.editor);
246
+ }
244
247
  entity.activeHandle(menuEvent);
245
248
  }
246
249
  },
@@ -249,6 +252,9 @@ export class TheTableContextMenuService {
249
252
  this.tableStore.clearDangerousCells();
250
253
  }
251
254
  if (entity.deactivateHandle) {
255
+ if (!this.editor.selection) {
256
+ reSelection(this.editor);
257
+ }
252
258
  entity.deactivateHandle(menuEvent);
253
259
  }
254
260
  }
@@ -278,4 +284,4 @@ TheTableContextMenuService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12
278
284
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TheTableContextMenuService, decorators: [{
279
285
  type: Injectable
280
286
  }], ctorParameters: function () { return [{ type: i1.TheColorSelectService }, { type: i2.TableStore }, { type: i3.ThyPopover }, { type: i0.NgZone }, { type: i4.TheContextService }]; } });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udGV4dG1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9zZXJ2aWNlcy90YWJsZS1jb250ZXh0bWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVBQWMsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7Ozs7QUFHbkMsTUFBTSxPQUFPLDBCQUEwQjtJQWVuQyxZQUNZLGtCQUF5QyxFQUN6QyxVQUFzQixFQUN0QixVQUFzQixFQUN0QixNQUFjLEVBQ2QsaUJBQW9DO1FBSnBDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBdUI7UUFDekMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBR2hELGlCQUFZLEdBQWlCO1lBQ3pCO2dCQUNJLEdBQUcsRUFBRSxrQkFBa0I7Z0JBQ3ZCLElBQUksRUFBRSxlQUFlO2dCQUNyQixPQUFPLEVBQUUsSUFBSTtnQkFDYixJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUUsYUFBYTtnQkFDekIsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxHQUFHLEVBQUUsR0FBRSxDQUFDO2dCQUN0QixZQUFZLEVBQUUsQ0FBQyxLQUFpQixFQUFFLEVBQUU7b0JBQ2hDLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFO3dCQUMzQyxPQUFPO3FCQUNWO29CQUNELE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN6RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQ3JDLEtBQUssQ0FBQyxNQUFxQixFQUMzQixJQUFJLENBQUMsZUFBZSxFQUNwQixnQkFBZ0IsRUFDaEI7d0JBQ0ksa0JBQWtCLEVBQUUsQ0FBQzt3QkFDckIsVUFBVSxFQUFFLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFO3dCQUNwQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO3FCQUMvRSxFQUNELENBQUMsUUFBbUIsRUFBRSxFQUFFO3dCQUNwQixJQUFJLENBQUMsUUFBUSxLQUFLLDBCQUEwQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxLQUFLLHNCQUFzQixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7NEJBQzdHLElBQUksQ0FBQyxVQUFVLENBQUMsK0JBQStCLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ3pEOzZCQUFNOzRCQUNILElBQUksQ0FBQyxVQUFVLENBQUMsK0JBQStCLENBQUMsUUFBUSxDQUFDLENBQUM7eUJBQzdEO3dCQUNELElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3RDLENBQUMsRUFDRCxVQUFVLEVBQ1YsQ0FBQyxDQUNKLENBQUM7Z0JBQ04sQ0FBQztnQkFDRCxnQkFBZ0IsRUFBRSxDQUFDLEtBQWlCLEVBQUUsRUFBRTtvQkFDcEMsSUFBSSxLQUFLLENBQUMsYUFBYSxZQUFZLFdBQVcsRUFBRTt3QkFDNUMsSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsd0JBQXdCLENBQUMsRUFBRTs0QkFDbEUsT0FBTzt5QkFDVjtxQkFDSjtvQkFDRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsRUFBRTt3QkFDM0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLENBQUM7cUJBQzlDO2dCQUNMLENBQUM7YUFDSjtZQUVEO2dCQUNJLEdBQUcsRUFBRSxlQUFlLENBQUMsWUFBWTtnQkFDakMsSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixVQUFVLEVBQUUsR0FBRztnQkFDZixZQUFZLEVBQUUsQ0FBQyxJQUFnQixFQUFFLEVBQUU7b0JBQy9CLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDekQsV0FBVyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQy9ELElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xDLENBQUM7YUFDSjtZQUNEO2dCQUNJLEdBQUcsRUFBRSxlQUFlLENBQUMsY0FBYztnQkFDbkMsSUFBSSxFQUFFLHdCQUF3QjtnQkFDOUIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixVQUFVLEVBQUUsR0FBRztnQkFDZixZQUFZLEVBQUUsQ0FBQyxJQUFnQixFQUFFLEVBQUU7b0JBQy9CLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzlELFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO29CQUMvRCxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNsQyxDQUFDO2FBQ0o7WUFDRDtnQkFDSSxHQUFHLEVBQUUsZUFBZSxDQUFDLGlCQUFpQjtnQkFDdEMsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLGFBQWEsRUFBRSxJQUFJO2dCQUNuQixVQUFVLEVBQUUsR0FBRztnQkFDZixZQUFZLEVBQUUsQ0FBQyxJQUFnQixFQUFFLEVBQUU7b0JBQy9CLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDekQsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xDLENBQUM7YUFDSjtZQUNEO2dCQUNJLEdBQUcsRUFBRSxlQUFlLENBQUMsa0JBQWtCO2dCQUN2QyxJQUFJLEVBQUUsNEJBQTRCO2dCQUNsQyxPQUFPLEVBQUUsSUFBSTtnQkFDYixJQUFJLEVBQUUsT0FBTztnQkFDYixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLFVBQVUsRUFBRSxHQUFHO2dCQUNmLFlBQVksRUFBRSxDQUFDLElBQWdCLEVBQUUsRUFBRTtvQkFDL0IsTUFBTSxFQUFFLGNBQWMsRUFBRSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDOUQsV0FBVyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsY0FBYyxDQUFDLENBQUM7b0JBQ2xFLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2xDLENBQUM7YUFDSjtZQUVEO2dCQUNJLEdBQUcsRUFBRSxpQkFBaUI7Z0JBQ3RCLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxRQUFRO2dCQUNkLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFO29CQUNmLElBQUksQ0FBQyxVQUFVLENBQUMseUJBQXlCLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdEMsQ0FBQzthQUNKO1lBQ0Q7Z0JBQ0ksR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLElBQUksRUFBRSxPQUFPO2dCQUNiLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFO29CQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDM0MsQ0FBQzthQUNKO1lBQ0Q7Z0JBQ0ksR0FBRyxFQUFFLGFBQWE7Z0JBQ2xCLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFO29CQUNmLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzNCLENBQUM7YUFDSjtZQUNEO2dCQUNJLEdBQUcsRUFBRSx1QkFBdUI7Z0JBQzVCLElBQUksRUFBRSxtQkFBbUI7Z0JBQ3pCLElBQUksRUFBRSxPQUFPO2dCQUNiLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFO29CQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztvQkFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO29CQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ3pDLENBQUM7Z0JBQ0QsWUFBWSxFQUFFLEdBQUcsRUFBRTtvQkFDZixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLENBQUM7Z0JBQ3ZDLENBQUM7YUFDSjtZQUNEO2dCQUNJLEdBQUcsRUFBRSwwQkFBMEI7Z0JBQy9CLElBQUksRUFBRSxzQkFBc0I7Z0JBQzVCLE9BQU8sRUFBRSxJQUFJO2dCQUNiLElBQUksRUFBRSxPQUFPO2dCQUNiLFVBQVUsRUFBRSxJQUFJO2dCQUNoQixZQUFZLEVBQUUsR0FBRyxFQUFFO29CQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMxQyxDQUFDO2dCQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7b0JBQ2YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMxQyxDQUFDO2FBQ0o7WUFDRDtnQkFDSSxHQUFHLEVBQUUsY0FBYztnQkFDbkIsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE1BQU07Z0JBQ1osVUFBVSxFQUFFLElBQUk7Z0JBQ2hCLFlBQVksRUFBRSxHQUFHLEVBQUU7b0JBQ2YsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztnQkFDMUMsQ0FBQztnQkFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO29CQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDeEMsQ0FBQzthQUNKO1NBQ0osQ0FBQztJQTlLQyxDQUFDO0lBbEJKLElBQUksUUFBUTtRQUNSLE9BQU8sSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyw4QkFBOEIsRUFBRSxDQUFDO0lBQzVELENBQUM7SUF3TEQsZUFBZTtRQUNYLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQzVDLE1BQU0sZUFBZSxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDOUQsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTlFLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUM7SUFDM0QsQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQU8sR0FBRyxJQUFJO1FBQ2pDLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3RCxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0MsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQztRQUNqRixNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDO1FBRWpGLE9BQU8sRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFpQjtRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7WUFDakIsTUFBTSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBQ2pHLE1BQU0sU0FBUyxHQUFHLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxDQUFDO1lBQzNGLE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzVDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDN0IsUUFBUSxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUNkLEtBQUssa0JBQWtCO3dCQUNuQixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsOEJBQThCLEVBQUUsQ0FBQzt3QkFDeEUsTUFBTTtvQkFDVixLQUFLLGVBQWUsQ0FBQyxZQUFZLENBQUM7b0JBQ2xDLEtBQUssZUFBZSxDQUFDLGNBQWM7d0JBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO3dCQUNqQixNQUFNO29CQUNWLEtBQUssZUFBZSxDQUFDLGlCQUFpQixDQUFDO29CQUN2QyxLQUFLLGVBQWUsQ0FBQyxrQkFBa0I7d0JBQ25DLElBQUksQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDO3dCQUNqQixNQUFNO2lCQUNiO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLHVCQUF1QixFQUFFO2dCQUN6RCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQXFCO2dCQUNuQyxZQUFZLEVBQUU7b0JBQ1YsWUFBWSxFQUFFLElBQUksQ0FBQyxZQUFZO29CQUMvQixZQUFZLEVBQUUsQ0FBQyxNQUFrQixFQUFFLEVBQUU7d0JBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsRUFBRTs0QkFDeEIsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDeEI7d0JBQ0QsTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDaEMsQ0FBQztvQkFDRCxZQUFZLEVBQUUsQ0FBQyxTQUFxQixFQUFFLE1BQWtCLEVBQUUsRUFBRTt3QkFDeEQsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFOzRCQUNyQixNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO3lCQUNsQztvQkFDTCxDQUFDO29CQUNELGdCQUFnQixFQUFFLENBQUMsU0FBcUIsRUFBRSxNQUFrQixFQUFFLEVBQUU7d0JBQzVELElBQUksTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFOzRCQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixFQUFFLENBQUM7eUJBQ3pDO3dCQUNELElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFFOzRCQUN6QixNQUFNLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7eUJBQ3RDO29CQUNMLENBQUM7aUJBQ0o7Z0JBQ0QsY0FBYyxFQUFFO29CQUNaLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2YsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUNiO2dCQUNELFdBQVcsRUFBRSxLQUFLO2dCQUNsQixTQUFTLEVBQUUsWUFBWTtnQkFDdkIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxDQUFDLGdCQUFnQjtnQkFDdEUsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixnQkFBZ0IsRUFBRSxLQUFLO2FBQzFCLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGdCQUFnQjtRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQzs7dUhBeFJRLDBCQUEwQjsySEFBMUIsMEJBQTBCOzJGQUExQiwwQkFBMEI7a0JBRHRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeVBvcG92ZXJSZWYsIFRoeVBvcG92ZXIgfSBmcm9tICduZ3gtdGV0aHlzL3BvcG92ZXInO1xuaW1wb3J0IHsgVGhlQ29sb3JTZWxlY3RTZXJ2aWNlIH0gZnJvbSAnLi9jb2xvci1zZWxlY3Quc2VydmljZSc7XG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS90YWJsZS5zdG9yZSc7XG5pbXBvcnQgeyBUYWJsZUVkaXRvciB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdGFibGUuZWRpdG9yJztcbmltcG9ydCB7IHNwbGl0Q2VsbCB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdXRpbHMvc3BsaXQtY2VsbCc7XG5pbXBvcnQgeyBzZXRDZWxsTWVudVZpc2liaWxpdHkgfSBmcm9tICcuLi9wbHVnaW5zL3RhYmxlL3V0aWxzL3NldC1tZW51LWNlbGwtaW52aXNpYmlsaXR5JztcbmltcG9ydCB7IE1lbnVFbnRpdHksIFRhYmxlSW5zZXJ0VHlwZSB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdGFibGUudHlwZXMnO1xuaW1wb3J0IHsgY2FsY3VsYXRlQ2VsbFNwYW4sIGdldExlZnRDZWxsRGljdCB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdXRpbHMvbWVyZ2UtY2VsbCc7XG5pbXBvcnQgeyBnZXRTZWxlY3RDZWxsTm9kZSB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdXRpbHMvZ2V0LXNlbGVjdC1jZWxsLW5vZGUnO1xuaW1wb3J0IHsgVGhlQ29udGV4dE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbnRleHRtZW51L2NvbnRleHRtZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaGVDb250ZXh0U2VydmljZSB9IGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IEJhY2tncm91bmRDb2xvcnMsIENvbG9yVHlwZSwgU3BlY2lhbEJhY2tncm91bmRDb2xvciwgVGFibGVIZWFkZXJCYWNrZ3JvdW5kQ29sb3IgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgcmVmb2N1cyB9IGZyb20gJy4uL3V0aWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZVRhYmxlQ29udGV4dE1lbnVTZXJ2aWNlIHtcbiAgICBtZW51UmVmOiBUaHlQb3BvdmVyUmVmPFRoZUNvbnRleHRNZW51Q29tcG9uZW50PjtcblxuICAgIGdldCBpc09wZW5lZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVudVJlZiAmJiB0aGlzLm1lbnVSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgfVxuXG4gICAgZ2V0IGVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGVTdG9yZSAmJiB0aGlzLnRhYmxlU3RvcmUuZWRpdG9yO1xuICAgIH1cblxuICAgIGdldCBiYWNrZ3JvdW5kQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlU3RvcmUuZ2V0U2VsZWN0ZWRDZWxsQmFja2dyb3VuZENvbG9yKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29sb3JTZWxlY3RTZXJ2aWNlOiBUaGVDb2xvclNlbGVjdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGFibGVTdG9yZTogVGFibGVTdG9yZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHRoZUNvbnRleHRTZXJ2aWNlOiBUaGVDb250ZXh0U2VydmljZVxuICAgICkge31cblxuICAgIG1lbnVFbnRpdGllczogTWVudUVudGl0eVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgICAgICAgICAgIGljb246ICdiYWNrZ3JvdW5kLXR0JyxcbiAgICAgICAgICAgIGRpdmlkZXI6IHRydWUsXG4gICAgICAgICAgICBuYW1lOiAn5Y2V5YWD5qC86IOM5pmvJyxcbiAgICAgICAgICAgIGV4dGVuZEljb246ICdhbmdsZS1yaWdodCcsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7fSxcbiAgICAgICAgICAgIGFjdGl2ZUhhbmRsZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sb3JTZWxlY3RTZXJ2aWNlLmlzT3BlbkNvbG9yU2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNIZWFkZXIgPSBUYWJsZUVkaXRvci5pc0FjdGl2ZUhlYWRlcih0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlbGVjdFNlcnZpY2UudG9nZ2xlQ29sb3JTZWxlY3QoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgIEJhY2tncm91bmRDb2xvcnMsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlclJvd0NvbG9yTnVtYmVyczogNyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd09wdGlvbnM6IHsgMTogJyNiYmInLCAyOiAnI2JiYicgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWxDb2xvcjogaXNIZWFkZXIgPyBUYWJsZUhlYWRlckJhY2tncm91bmRDb2xvciA6IFNwZWNpYWxCYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKG5ld0NvbG9yOiBDb2xvclR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobmV3Q29sb3IgPT09IFRhYmxlSGVhZGVyQmFja2dyb3VuZENvbG9yICYmIGlzSGVhZGVyKSB8fCAobmV3Q29sb3IgPT09IFNwZWNpYWxCYWNrZ3JvdW5kQ29sb3IgJiYgIWlzSGVhZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5zZXRTZWxlY3RlZENlbGxzQmFja2dyb3VuZENvbG9yKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2V0U2VsZWN0ZWRDZWxsc0JhY2tncm91bmRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2VsZWN0Rmlyc3RDZWxsKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICdyaWdodFRvcCcsXG4gICAgICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlYWN0aXZhdGVIYW5kbGU6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjb2xvci1zZWxlY3QtY29udGFpbmVyJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2xvclNlbGVjdFNlcnZpY2UuaXNPcGVuQ29sb3JTZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlbGVjdFNlcnZpY2UuY2xvc2VDb2xvclNlbGVjdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRSb3dzVXAsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LXJvd3MtdG9wJyxcbiAgICAgICAgICAgIG5hbWU6ICflkJHkuIrmj5LlhaXooYwnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGlzSW5wdXROdW1iZXI6IHRydWUsXG4gICAgICAgICAgICBuYW1lU3VmZml4OiAn6KGMJyxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKGl0ZW06IE1lbnVFbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFJvd0luZGV4IH0gPSB0aGlzLmdldFRhcmdldFJvd09yQ29sSW5kZXgoKTtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5pbnNlcnRSb3codGhpcy5lZGl0b3IsIGl0ZW0uY291bnQsIHRhcmdldFJvd0luZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2hhbmdlQ2VsbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Um93c0Rvd24sXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LXJvd3MtZG93bicsXG4gICAgICAgICAgICBuYW1lOiAn5ZCR5LiL5o+S5YWl6KGMJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpc0lucHV0TnVtYmVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJ+ihjCcsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChpdGVtOiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRSb3dJbmRleCB9ID0gdGhpcy5nZXRUYXJnZXRSb3dPckNvbEluZGV4KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5pbnNlcnRSb3codGhpcy5lZGl0b3IsIGl0ZW0uY291bnQsIHRhcmdldFJvd0luZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2hhbmdlQ2VsbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Q29sdW1uc0xlZnQsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LWNvbHVtbnMtbGVmdCcsXG4gICAgICAgICAgICBuYW1lOiAn5ZCR5bem5o+S5YWl5YiXJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpc0lucHV0TnVtYmVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJ+WIlycsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChpdGVtOiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRDb2xJbmRleCB9ID0gdGhpcy5nZXRUYXJnZXRSb3dPckNvbEluZGV4KCk7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuaW5zZXJ0Q29sdW1uKHRoaXMuZWRpdG9yLCBpdGVtLmNvdW50LCB0YXJnZXRDb2xJbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNoYW5nZUNlbGxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVGFibGVJbnNlcnRUeXBlLmluc2VydENvbHVtbnNSaWdodCxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS1pbnNlcnQtY29sdW1ucy1yaWdodCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZTogJ+WQkeWPs+aPkuWFpeWIlycsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgaXNJbnB1dE51bWJlcjogdHJ1ZSxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICfliJcnLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoaXRlbTogTWVudUVudGl0eSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0Q29sSW5kZXggfSA9IHRoaXMuZ2V0VGFyZ2V0Um93T3JDb2xJbmRleChmYWxzZSk7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuaW5zZXJ0Q29sdW1uKHRoaXMuZWRpdG9yLCBpdGVtLmNvdW50LCB0YXJnZXRDb2xJbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNoYW5nZUNlbGxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnY2xlYXItc2VsZWN0aW9uJyxcbiAgICAgICAgICAgIGljb246ICdzd2VlcCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZTogJ+a4heepuumAieS4reWMuuWfnycsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyU2VsZWN0ZWRDZWxsc0NvbnRlbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2VsZWN0Rmlyc3RDZWxsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ21lcmdlLWNlbGxzJyxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS1tZXJnZS1jZWxscycsXG4gICAgICAgICAgICBuYW1lOiAn5ZCI5bm25Y2V5YWD5qC8JyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUubWVyZ2VDZWxsKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnc3BsaXQtY2VsbHMnLFxuICAgICAgICAgICAgaWNvbjogJ3RhYmxlLXVubWVyZ2UtY2VsbHMnLFxuICAgICAgICAgICAgbmFtZTogJ+aLhuWIhuWNleWFg+agvCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNwbGl0Q2VsbCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2RlbGV0ZS1zZWxlY3Rpb24tcm93cycsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtZGVsZXRlLXJvd3MnLFxuICAgICAgICAgICAgbmFtZTogJ+WIoOmZpOaJgOWcqOihjCcsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLnJlbW92ZURhbmdlcm91c1Jvd3MoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2xlYXJEYW5nZXJvdXNDZWxscygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhclNlbGVjdGVkQ2VsbHMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhY3RpdmVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2V0RGFuZ2Vyb3VzUm93cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdkZWxldGUtc2VsZWN0aW9uLWNvbHVtbnMnLFxuICAgICAgICAgICAgaWNvbjogJ3RhYmxlLWRlbGV0ZS1jb2x1bW5zJyxcbiAgICAgICAgICAgIGRpdmlkZXI6IHRydWUsXG4gICAgICAgICAgICBuYW1lOiAn5Yig6Zmk5omA5Zyo5YiXJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUucmVtb3ZlRGFuZ2Vyb3VzQ29sdW1ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhckRhbmdlcm91c0NlbGxzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWN0aXZlSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLnNldERhbmdlcm91c0NvbHVtbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnZGVsZXRlLXRhYmxlJyxcbiAgICAgICAgICAgIGljb246ICd0cmFzaCcsXG4gICAgICAgICAgICBuYW1lOiAn5Yig6Zmk6KGo5qC8JyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5yZW1vdmVUYWJsZSh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyRGFuZ2Vyb3VzQ2VsbHMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhY3RpdmVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2V0RGFuZ2Vyb3VzVGFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBnZXRTZWxlY3RlZENlbGwoKSB7XG4gICAgICAgIGNvbnN0IGNlbGxzID0gdGhpcy50YWJsZVN0b3JlLnNlbGVjdGVkQ2VsbHM7XG4gICAgICAgIGNvbnN0IHNlbGVjdENlbGxOb2RlcyA9IGdldFNlbGVjdENlbGxOb2RlKHRoaXMuZWRpdG9yLCBjZWxscyk7XG4gICAgICAgIGNvbnN0IGxlZnRDZWxsRGljdCA9IGdldExlZnRDZWxsRGljdChzZWxlY3RDZWxsTm9kZXMpO1xuICAgICAgICBjb25zdCB7IHJvd3NwYW4sIGNvbHNwYW4gfSA9IGNhbGN1bGF0ZUNlbGxTcGFuKHNlbGVjdENlbGxOb2RlcywgbGVmdENlbGxEaWN0KTtcblxuICAgICAgICByZXR1cm4geyByb3c6IHJvd3NwYW4sIGNvbDogY29sc3Bhbiwgc2VsZWN0Q2VsbE5vZGVzIH07XG4gICAgfVxuXG4gICAgZ2V0VGFyZ2V0Um93T3JDb2xJbmRleChpc0Zyb250ID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB7IHJvdywgY29sLCBzZWxlY3RDZWxsTm9kZXMgfSA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsKCk7XG4gICAgICAgIGNvbnN0IGZpcnN0U2VsZWN0Q2VsbCA9IHNlbGVjdENlbGxOb2Rlc1swXTtcbiAgICAgICAgY29uc3QgdGFyZ2V0Um93SW5kZXggPSBpc0Zyb250ID8gZmlyc3RTZWxlY3RDZWxsLnJvdyA6IHJvdyArIGZpcnN0U2VsZWN0Q2VsbC5yb3c7XG4gICAgICAgIGNvbnN0IHRhcmdldENvbEluZGV4ID0gaXNGcm9udCA/IGZpcnN0U2VsZWN0Q2VsbC5jb2wgOiBjb2wgKyBmaXJzdFNlbGVjdENlbGwuY29sO1xuXG4gICAgICAgIHJldHVybiB7IHRhcmdldFJvd0luZGV4LCB0YXJnZXRDb2xJbmRleCB9O1xuICAgIH1cblxuICAgIG9wZW5NZW51TGlzdChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3RlZENlbGxzLCBpc0Z1bGxzY3JlZW4sIHNlbGVjdGVkUm93c0luZGV4LCBzZWxlY3RlZENvbHVtbnNJbmRleCB9ID0gdGhpcy50YWJsZVN0b3JlO1xuICAgICAgICAgICAgY29uc3QgdGFibGVJbmZvID0geyBzZWxlY3RlZENlbGxzLCBpc0Z1bGxzY3JlZW4sIHNlbGVjdGVkUm93c0luZGV4LCBzZWxlY3RlZENvbHVtbnNJbmRleCB9O1xuICAgICAgICAgICAgY29uc3QgeyByb3csIGNvbCB9ID0gdGhpcy5nZXRTZWxlY3RlZENlbGwoKTtcbiAgICAgICAgICAgIHNldENlbGxNZW51VmlzaWJpbGl0eSh0aGlzLmVkaXRvciwgdGhpcy5tZW51RW50aXRpZXMsIHRhYmxlSW5mbyk7XG5cbiAgICAgICAgICAgIHRoaXMubWVudUVudGl0aWVzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChpdGVtLmtleSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdiYWNrZ3JvdW5kLWNvbG9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uYmFja2dyb3VuZENvbG9yID0gdGhpcy50YWJsZVN0b3JlLmdldFNlbGVjdGVkQ2VsbEJhY2tncm91bmRDb2xvcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVGFibGVJbnNlcnRUeXBlLmluc2VydFJvd3NVcDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Um93c0Rvd246XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvdW50ID0gcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVGFibGVJbnNlcnRUeXBlLmluc2VydENvbHVtbnNMZWZ0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRDb2x1bW5zUmlnaHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvdW50ID0gY29sO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm1lbnVSZWYgPSB0aGlzLnRoeVBvcG92ZXIub3BlbihUaGVDb250ZXh0TWVudUNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIG9yaWdpbjogZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICBtZW51RW50aXRpZXM6IHRoaXMubWVudUVudGl0aWVzLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmb2N1cyh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHkuYWN0aW9uSGFuZGxlKGVudGl0eSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUhhbmRsZTogKG1lbnVFdmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50aXR5LmFjdGl2ZUhhbmRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eS5hY3RpdmVIYW5kbGUobWVudUV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZGVhY3RpdmF0ZUhhbmRsZTogKG1lbnVFdmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50aXR5LmtleS5pbmRleE9mKCdkZWxldGUnKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyRGFuZ2Vyb3VzQ2VsbHMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRpdHkuZGVhY3RpdmF0ZUhhbmRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eS5kZWFjdGl2YXRlSGFuZGxlKG1lbnVFdmVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIG9yaWdpblBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgICAgICAgIHg6IGV2ZW50LnggKyAzMCxcbiAgICAgICAgICAgICAgICAgICAgeTogZXZlbnQueVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2JvdHRvbUxlZnQnLFxuICAgICAgICAgICAgICAgIHZpZXdDb250YWluZXJSZWY6IHRoaXMudGhlQ29udGV4dFNlcnZpY2UuZ2V0T3B0aW9ucygpLnZpZXdDb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgbWFudWFsQ2xvc3VyZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBpbnNpZGVDbG9zYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgYmFja2Ryb3BDbG9zYWJsZTogZmFsc2VcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjbG9zZUNvbnRleHRNZW51KCkge1xuICAgICAgICBpZiAodGhpcy5pc09wZW5lZCkge1xuICAgICAgICAgICAgdGhpcy5tZW51UmVmLmNsb3NlKCk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5tZW51UmVmLmFmdGVyQ2xvc2VkKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
287
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29udGV4dG1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy9zZXJ2aWNlcy90YWJsZS1jb250ZXh0bWVudS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMxRixPQUFPLEVBQWMsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBRTFGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBYSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRyxPQUFPLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7Ozs7O0FBR2hELE1BQU0sT0FBTywwQkFBMEI7SUFlbkMsWUFDWSxrQkFBeUMsRUFDekMsVUFBc0IsRUFDdEIsVUFBc0IsRUFDdEIsTUFBYyxFQUNkLGlCQUFvQztRQUpwQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXVCO1FBQ3pDLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUdoRCxpQkFBWSxHQUFpQjtZQUN6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QUFFLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBRTtvQkFDZixDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQ2I7Z0JBQ0QsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLFNBQVMsRUFBRSxZQUFZO2dCQUN2QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLENBQUMsZ0JBQWdCO2dCQUN0RSxhQUFhLEVBQUUsSUFBSTtnQkFDbkIsY0FBYyxFQUFFLEtBQUs7Z0JBQ3JCLGdCQUFnQixFQUFFLEtBQUs7YUFDMUIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDckM7SUFDTCxDQUFDOzt1SEE5UlEsMEJBQTBCOzJIQUExQiwwQkFBMEI7MkZBQTFCLDBCQUEwQjtrQkFEdEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGh5UG9wb3ZlclJlZiwgVGh5UG9wb3ZlciB9IGZyb20gJ25neC10ZXRoeXMvcG9wb3Zlcic7XG5pbXBvcnQgeyBUaGVDb2xvclNlbGVjdFNlcnZpY2UgfSBmcm9tICcuL2NvbG9yLXNlbGVjdC5zZXJ2aWNlJztcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi9wbHVnaW5zL3RhYmxlL3RhYmxlLnN0b3JlJztcbmltcG9ydCB7IFRhYmxlRWRpdG9yIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS90YWJsZS5lZGl0b3InO1xuaW1wb3J0IHsgc3BsaXRDZWxsIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS91dGlscy9zcGxpdC1jZWxsJztcbmltcG9ydCB7IHNldENlbGxNZW51VmlzaWJpbGl0eSB9IGZyb20gJy4uL3BsdWdpbnMvdGFibGUvdXRpbHMvc2V0LW1lbnUtY2VsbC1pbnZpc2liaWxpdHknO1xuaW1wb3J0IHsgTWVudUVudGl0eSwgVGFibGVJbnNlcnRUeXBlIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS90YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBjYWxjdWxhdGVDZWxsU3BhbiwgZ2V0TGVmdENlbGxEaWN0IH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS91dGlscy9tZXJnZS1jZWxsJztcbmltcG9ydCB7IGdldFNlbGVjdENlbGxOb2RlIH0gZnJvbSAnLi4vcGx1Z2lucy90YWJsZS91dGlscy9nZXQtc2VsZWN0LWNlbGwtbm9kZSc7XG5pbXBvcnQgeyBUaGVDb250ZXh0TWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29udGV4dG1lbnUvY29udGV4dG1lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IFRoZUNvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFja2dyb3VuZENvbG9ycywgQ29sb3JUeXBlLCBTcGVjaWFsQmFja2dyb3VuZENvbG9yLCBUYWJsZUhlYWRlckJhY2tncm91bmRDb2xvciB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyByZWZvY3VzLCByZVNlbGVjdGlvbiB9IGZyb20gJy4uL3V0aWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZVRhYmxlQ29udGV4dE1lbnVTZXJ2aWNlIHtcbiAgICBtZW51UmVmOiBUaHlQb3BvdmVyUmVmPFRoZUNvbnRleHRNZW51Q29tcG9uZW50PjtcblxuICAgIGdldCBpc09wZW5lZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubWVudVJlZiAmJiB0aGlzLm1lbnVSZWYuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgfVxuXG4gICAgZ2V0IGVkaXRvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGFibGVTdG9yZSAmJiB0aGlzLnRhYmxlU3RvcmUuZWRpdG9yO1xuICAgIH1cblxuICAgIGdldCBiYWNrZ3JvdW5kQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRhYmxlU3RvcmUuZ2V0U2VsZWN0ZWRDZWxsQmFja2dyb3VuZENvbG9yKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29sb3JTZWxlY3RTZXJ2aWNlOiBUaGVDb2xvclNlbGVjdFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdGFibGVTdG9yZTogVGFibGVTdG9yZSxcbiAgICAgICAgcHJpdmF0ZSB0aHlQb3BvdmVyOiBUaHlQb3BvdmVyLFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHRoZUNvbnRleHRTZXJ2aWNlOiBUaGVDb250ZXh0U2VydmljZVxuICAgICkge31cblxuICAgIG1lbnVFbnRpdGllczogTWVudUVudGl0eVtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgICAgICAgICAgIGljb246ICdiYWNrZ3JvdW5kLXR0JyxcbiAgICAgICAgICAgIGRpdmlkZXI6IHRydWUsXG4gICAgICAgICAgICBuYW1lOiAn5Y2V5YWD5qC86IOM5pmvJyxcbiAgICAgICAgICAgIGV4dGVuZEljb246ICdhbmdsZS1yaWdodCcsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7fSxcbiAgICAgICAgICAgIGFjdGl2ZUhhbmRsZTogKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sb3JTZWxlY3RTZXJ2aWNlLmlzT3BlbkNvbG9yU2VsZWN0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY29uc3QgaXNIZWFkZXIgPSBUYWJsZUVkaXRvci5pc0FjdGl2ZUhlYWRlcih0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlbGVjdFNlcnZpY2UudG9nZ2xlQ29sb3JTZWxlY3QoXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICAgICAgICAgICAgICAgIEJhY2tncm91bmRDb2xvcnMsXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBlclJvd0NvbG9yTnVtYmVyczogNyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd09wdGlvbnM6IHsgMTogJyNiYmInLCAyOiAnI2JiYicgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWxDb2xvcjogaXNIZWFkZXIgPyBUYWJsZUhlYWRlckJhY2tncm91bmRDb2xvciA6IFNwZWNpYWxCYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgKG5ld0NvbG9yOiBDb2xvclR5cGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgobmV3Q29sb3IgPT09IFRhYmxlSGVhZGVyQmFja2dyb3VuZENvbG9yICYmIGlzSGVhZGVyKSB8fCAobmV3Q29sb3IgPT09IFNwZWNpYWxCYWNrZ3JvdW5kQ29sb3IgJiYgIWlzSGVhZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5zZXRTZWxlY3RlZENlbGxzQmFja2dyb3VuZENvbG9yKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2V0U2VsZWN0ZWRDZWxsc0JhY2tncm91bmRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2VsZWN0Rmlyc3RDZWxsKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICdyaWdodFRvcCcsXG4gICAgICAgICAgICAgICAgICAgIDBcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlYWN0aXZhdGVIYW5kbGU6IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5yZWxhdGVkVGFyZ2V0IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnJlbGF0ZWRUYXJnZXQuY2xhc3NMaXN0LmNvbnRhaW5zKCdjb2xvci1zZWxlY3QtY29udGFpbmVyJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2xvclNlbGVjdFNlcnZpY2UuaXNPcGVuQ29sb3JTZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb2xvclNlbGVjdFNlcnZpY2UuY2xvc2VDb2xvclNlbGVjdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRSb3dzVXAsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LXJvd3MtdG9wJyxcbiAgICAgICAgICAgIG5hbWU6ICflkJHkuIrmj5LlhaXooYwnLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGlzSW5wdXROdW1iZXI6IHRydWUsXG4gICAgICAgICAgICBuYW1lU3VmZml4OiAn6KGMJyxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKGl0ZW06IE1lbnVFbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHRhcmdldFJvd0luZGV4IH0gPSB0aGlzLmdldFRhcmdldFJvd09yQ29sSW5kZXgoKTtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5pbnNlcnRSb3codGhpcy5lZGl0b3IsIGl0ZW0uY291bnQsIHRhcmdldFJvd0luZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2hhbmdlQ2VsbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Um93c0Rvd24sXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LXJvd3MtZG93bicsXG4gICAgICAgICAgICBuYW1lOiAn5ZCR5LiL5o+S5YWl6KGMJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpc0lucHV0TnVtYmVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJ+ihjCcsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChpdGVtOiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRSb3dJbmRleCB9ID0gdGhpcy5nZXRUYXJnZXRSb3dPckNvbEluZGV4KGZhbHNlKTtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5pbnNlcnRSb3codGhpcy5lZGl0b3IsIGl0ZW0uY291bnQsIHRhcmdldFJvd0luZGV4KTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2hhbmdlQ2VsbHMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Q29sdW1uc0xlZnQsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtaW5zZXJ0LWNvbHVtbnMtbGVmdCcsXG4gICAgICAgICAgICBuYW1lOiAn5ZCR5bem5o+S5YWl5YiXJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBpc0lucHV0TnVtYmVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZVN1ZmZpeDogJ+WIlycsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChpdGVtOiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB0YXJnZXRDb2xJbmRleCB9ID0gdGhpcy5nZXRUYXJnZXRSb3dPckNvbEluZGV4KCk7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuaW5zZXJ0Q29sdW1uKHRoaXMuZWRpdG9yLCBpdGVtLmNvdW50LCB0YXJnZXRDb2xJbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNoYW5nZUNlbGxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogVGFibGVJbnNlcnRUeXBlLmluc2VydENvbHVtbnNSaWdodCxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS1pbnNlcnQtY29sdW1ucy1yaWdodCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZTogJ+WQkeWPs+aPkuWFpeWIlycsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgaXNJbnB1dE51bWJlcjogdHJ1ZSxcbiAgICAgICAgICAgIG5hbWVTdWZmaXg6ICfliJcnLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoaXRlbTogTWVudUVudGl0eSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHsgdGFyZ2V0Q29sSW5kZXggfSA9IHRoaXMuZ2V0VGFyZ2V0Um93T3JDb2xJbmRleChmYWxzZSk7XG4gICAgICAgICAgICAgICAgVGFibGVFZGl0b3IuaW5zZXJ0Q29sdW1uKHRoaXMuZWRpdG9yLCBpdGVtLmNvdW50LCB0YXJnZXRDb2xJbmRleCk7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNoYW5nZUNlbGxzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnY2xlYXItc2VsZWN0aW9uJyxcbiAgICAgICAgICAgIGljb246ICdzd2VlcCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgbmFtZTogJ+a4heepuumAieS4reWMuuWfnycsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyU2VsZWN0ZWRDZWxsc0NvbnRlbnQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2VsZWN0Rmlyc3RDZWxsKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ21lcmdlLWNlbGxzJyxcbiAgICAgICAgICAgIGljb246ICd0YWJsZS1tZXJnZS1jZWxscycsXG4gICAgICAgICAgICBuYW1lOiAn5ZCI5bm25Y2V5YWD5qC8JyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUubWVyZ2VDZWxsKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnc3BsaXQtY2VsbHMnLFxuICAgICAgICAgICAgaWNvbjogJ3RhYmxlLXVubWVyZ2UtY2VsbHMnLFxuICAgICAgICAgICAgbmFtZTogJ+aLhuWIhuWNleWFg+agvCcsXG4gICAgICAgICAgICBkaXZpZGVyOiB0cnVlLFxuICAgICAgICAgICAgdmlzaWJpbGl0eTogdHJ1ZSxcbiAgICAgICAgICAgIGFjdGlvbkhhbmRsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHNwbGl0Q2VsbCh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogJ2RlbGV0ZS1zZWxlY3Rpb24tcm93cycsXG4gICAgICAgICAgICBpY29uOiAndGFibGUtZGVsZXRlLXJvd3MnLFxuICAgICAgICAgICAgbmFtZTogJ+WIoOmZpOaJgOWcqOihjCcsXG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB0cnVlLFxuICAgICAgICAgICAgYWN0aW9uSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLnJlbW92ZURhbmdlcm91c1Jvd3MoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2xlYXJEYW5nZXJvdXNDZWxscygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhclNlbGVjdGVkQ2VsbHMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhY3RpdmVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2V0RGFuZ2Vyb3VzUm93cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6ICdkZWxldGUtc2VsZWN0aW9uLWNvbHVtbnMnLFxuICAgICAgICAgICAgaWNvbjogJ3RhYmxlLWRlbGV0ZS1jb2x1bW5zJyxcbiAgICAgICAgICAgIGRpdmlkZXI6IHRydWUsXG4gICAgICAgICAgICBuYW1lOiAn5Yig6Zmk5omA5Zyo5YiXJyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUucmVtb3ZlRGFuZ2Vyb3VzQ29sdW1ucygpO1xuICAgICAgICAgICAgICAgIHRoaXMudGFibGVTdG9yZS5jbGVhckRhbmdlcm91c0NlbGxzKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgYWN0aXZlSGFuZGxlOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLnNldERhbmdlcm91c0NvbHVtbnMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAga2V5OiAnZGVsZXRlLXRhYmxlJyxcbiAgICAgICAgICAgIGljb246ICd0cmFzaCcsXG4gICAgICAgICAgICBuYW1lOiAn5Yig6Zmk6KGo5qC8JyxcbiAgICAgICAgICAgIHZpc2liaWxpdHk6IHRydWUsXG4gICAgICAgICAgICBhY3Rpb25IYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICBUYWJsZUVkaXRvci5yZW1vdmVUYWJsZSh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZVN0b3JlLmNsZWFyRGFuZ2Vyb3VzQ2VsbHMoKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBhY3RpdmVIYW5kbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuc2V0RGFuZ2Vyb3VzVGFibGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIF07XG5cbiAgICBnZXRTZWxlY3RlZENlbGwoKSB7XG4gICAgICAgIGNvbnN0IGNlbGxzID0gdGhpcy50YWJsZVN0b3JlLnNlbGVjdGVkQ2VsbHM7XG4gICAgICAgIGNvbnN0IHNlbGVjdENlbGxOb2RlcyA9IGdldFNlbGVjdENlbGxOb2RlKHRoaXMuZWRpdG9yLCBjZWxscyk7XG4gICAgICAgIGNvbnN0IGxlZnRDZWxsRGljdCA9IGdldExlZnRDZWxsRGljdChzZWxlY3RDZWxsTm9kZXMpO1xuICAgICAgICBjb25zdCB7IHJvd3NwYW4sIGNvbHNwYW4gfSA9IGNhbGN1bGF0ZUNlbGxTcGFuKHNlbGVjdENlbGxOb2RlcywgbGVmdENlbGxEaWN0KTtcblxuICAgICAgICByZXR1cm4geyByb3c6IHJvd3NwYW4sIGNvbDogY29sc3Bhbiwgc2VsZWN0Q2VsbE5vZGVzIH07XG4gICAgfVxuXG4gICAgZ2V0VGFyZ2V0Um93T3JDb2xJbmRleChpc0Zyb250ID0gdHJ1ZSkge1xuICAgICAgICBjb25zdCB7IHJvdywgY29sLCBzZWxlY3RDZWxsTm9kZXMgfSA9IHRoaXMuZ2V0U2VsZWN0ZWRDZWxsKCk7XG4gICAgICAgIGNvbnN0IGZpcnN0U2VsZWN0Q2VsbCA9IHNlbGVjdENlbGxOb2Rlc1swXTtcbiAgICAgICAgY29uc3QgdGFyZ2V0Um93SW5kZXggPSBpc0Zyb250ID8gZmlyc3RTZWxlY3RDZWxsLnJvdyA6IHJvdyArIGZpcnN0U2VsZWN0Q2VsbC5yb3c7XG4gICAgICAgIGNvbnN0IHRhcmdldENvbEluZGV4ID0gaXNGcm9udCA/IGZpcnN0U2VsZWN0Q2VsbC5jb2wgOiBjb2wgKyBmaXJzdFNlbGVjdENlbGwuY29sO1xuXG4gICAgICAgIHJldHVybiB7IHRhcmdldFJvd0luZGV4LCB0YXJnZXRDb2xJbmRleCB9O1xuICAgIH1cblxuICAgIG9wZW5NZW51TGlzdChldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgeyBzZWxlY3RlZENlbGxzLCBpc0Z1bGxzY3JlZW4sIHNlbGVjdGVkUm93c0luZGV4LCBzZWxlY3RlZENvbHVtbnNJbmRleCB9ID0gdGhpcy50YWJsZVN0b3JlO1xuICAgICAgICAgICAgY29uc3QgdGFibGVJbmZvID0geyBzZWxlY3RlZENlbGxzLCBpc0Z1bGxzY3JlZW4sIHNlbGVjdGVkUm93c0luZGV4LCBzZWxlY3RlZENvbHVtbnNJbmRleCB9O1xuICAgICAgICAgICAgY29uc3QgeyByb3csIGNvbCB9ID0gdGhpcy5nZXRTZWxlY3RlZENlbGwoKTtcbiAgICAgICAgICAgIHNldENlbGxNZW51VmlzaWJpbGl0eSh0aGlzLmVkaXRvciwgdGhpcy5tZW51RW50aXRpZXMsIHRhYmxlSW5mbyk7XG5cbiAgICAgICAgICAgIHRoaXMubWVudUVudGl0aWVzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChpdGVtLmtleSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdiYWNrZ3JvdW5kLWNvbG9yJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uYmFja2dyb3VuZENvbG9yID0gdGhpcy50YWJsZVN0b3JlLmdldFNlbGVjdGVkQ2VsbEJhY2tncm91bmRDb2xvcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVGFibGVJbnNlcnRUeXBlLmluc2VydFJvd3NVcDpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBUYWJsZUluc2VydFR5cGUuaW5zZXJ0Um93c0Rvd246XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvdW50ID0gcm93O1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVGFibGVJbnNlcnRUeXBlLmluc2VydENvbHVtbnNMZWZ0OlxuICAgICAgICAgICAgICAgICAgICBjYXNlIFRhYmxlSW5zZXJ0VHlwZS5pbnNlcnRDb2x1bW5zUmlnaHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmNvdW50ID0gY29sO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLm1lbnVSZWYgPSB0aGlzLnRoeVBvcG92ZXIub3BlbihUaGVDb250ZXh0TWVudUNvbXBvbmVudCwge1xuICAgICAgICAgICAgICAgIG9yaWdpbjogZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50LFxuICAgICAgICAgICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgICAgICAgICAgICBtZW51RW50aXRpZXM6IHRoaXMubWVudUVudGl0aWVzLFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb25IYW5kbGU6IChlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmb2N1cyh0aGlzLmVkaXRvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHkuYWN0aW9uSGFuZGxlKGVudGl0eSk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUhhbmRsZTogKG1lbnVFdmVudDogTW91c2VFdmVudCwgZW50aXR5OiBNZW51RW50aXR5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW50aXR5LmFjdGl2ZUhhbmRsZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5lZGl0b3Iuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlU2VsZWN0aW9uKHRoaXMuZWRpdG9yKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5LmFjdGl2ZUhhbmRsZShtZW51RXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkZWFjdGl2YXRlSGFuZGxlOiAobWVudUV2ZW50OiBNb3VzZUV2ZW50LCBlbnRpdHk6IE1lbnVFbnRpdHkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbnRpdHkua2V5LmluZGV4T2YoJ2RlbGV0ZScpID49IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlU3RvcmUuY2xlYXJEYW5nZXJvdXNDZWxscygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVudGl0eS5kZWFjdGl2YXRlSGFuZGxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmVkaXRvci5zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVTZWxlY3Rpb24odGhpcy5lZGl0b3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRpdHkuZGVhY3RpdmF0ZUhhbmRsZShtZW51RXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBvcmlnaW5Qb3NpdGlvbjoge1xuICAgICAgICAgICAgICAgICAgICB4OiBldmVudC54ICsgMzAsXG4gICAgICAgICAgICAgICAgICAgIHk6IGV2ZW50LnlcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdib3R0b21MZWZ0JyxcbiAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnRoZUNvbnRleHRTZXJ2aWNlLmdldE9wdGlvbnMoKS52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgICAgICAgICAgIG1hbnVhbENsb3N1cmU6IHRydWUsXG4gICAgICAgICAgICAgICAgaW5zaWRlQ2xvc2FibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGJhY2tkcm9wQ2xvc2FibGU6IGZhbHNlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgY2xvc2VDb250ZXh0TWVudSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuZWQpIHtcbiAgICAgICAgICAgIHRoaXMubWVudVJlZi5jbG9zZSgpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVudVJlZi5hZnRlckNsb3NlZCgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,17 +1,32 @@
1
1
  import { Transforms } from 'slate';
2
2
  import { AngularEditor, IS_SAFARI } from 'slate-angular';
3
- export function copyNode(editor, element) {
4
- const path = AngularEditor.findPath(editor, element);
5
- AngularEditor.focus(editor);
6
- Transforms.select(editor, path);
7
- const selection = window.getSelection();
8
- if (IS_SAFARI && selection) {
9
- const currentElement = AngularEditor.toDOMNode(editor, element);
10
- const range = document.createRange();
11
- selection.removeAllRanges();
12
- range.selectNode(currentElement);
13
- selection.addRange(range);
3
+ export function copyNode(editor, element, thyNotifyService, codeMirrorEditor) {
4
+ let codePoint;
5
+ if (codeMirrorEditor) {
6
+ codePoint = codeMirrorEditor.getCursor();
7
+ const path = AngularEditor.findPath(editor, element);
8
+ AngularEditor.focus(editor);
9
+ Transforms.select(editor, path);
10
+ }
11
+ if (IS_SAFARI) {
12
+ copyNodeForSafari(editor, element);
13
+ }
14
+ document.execCommand('copy') ? thyNotifyService.success('复制成功') : thyNotifyService.error('复制失败');
15
+ if (IS_SAFARI) {
16
+ window.getSelection().removeAllRanges();
14
17
  }
15
- return document.execCommand('copy') ? true : false;
18
+ if (codeMirrorEditor) {
19
+ codeMirrorEditor.setCursor(codePoint);
20
+ codeMirrorEditor.focus();
21
+ codeMirrorEditor.refresh();
22
+ }
23
+ }
24
+ export function copyNodeForSafari(editor, element) {
25
+ const selection = window.getSelection();
26
+ const currentElement = AngularEditor.toDOMNode(editor, element);
27
+ const range = document.createRange();
28
+ selection.removeAllRanges();
29
+ range.selectNode(currentElement);
30
+ selection.addRange(range);
16
31
  }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2NvcHktbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW1CLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxNQUFNLFVBQVUsUUFBUSxDQUFDLE1BQWMsRUFBRSxPQUFnQjtJQUNyRCxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVCLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWhDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUV4QyxJQUFJLFNBQVMsSUFBSSxTQUFTLEVBQUU7UUFDeEIsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDaEUsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXJDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1QixLQUFLLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7S0FDN0I7SUFFRCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3IsIEVsZW1lbnQsIFRyYW5zZm9ybXMgfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yLCBJU19TQUZBUkkgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNvcHlOb2RlKGVkaXRvcjogRWRpdG9yLCBlbGVtZW50OiBFbGVtZW50KSB7XG4gICAgY29uc3QgcGF0aCA9IEFuZ3VsYXJFZGl0b3IuZmluZFBhdGgoZWRpdG9yLCBlbGVtZW50KTtcbiAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKGVkaXRvcik7XG4gICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBwYXRoKTtcblxuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcblxuICAgIGlmIChJU19TQUZBUkkgJiYgc2VsZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBlbGVtZW50KTtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuXG4gICAgICAgIHNlbGVjdGlvbi5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgICAgcmFuZ2Uuc2VsZWN0Tm9kZShjdXJyZW50RWxlbWVudCk7XG4gICAgICAgIHNlbGVjdGlvbi5hZGRSYW5nZShyYW5nZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5JykgPyB0cnVlIDogZmFsc2U7XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS1ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3JjL3V0aWxzL2NvcHktbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQW1CLFVBQVUsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxNQUFNLFVBQVUsUUFBUSxDQUNwQixNQUFjLEVBQ2QsT0FBZ0IsRUFDaEIsZ0JBQW1DLEVBQ25DLGdCQUFnRDtJQUVoRCxJQUFJLFNBQThCLENBQUM7SUFFbkMsSUFBSSxnQkFBZ0IsRUFBRTtRQUNsQixTQUFTLEdBQUcsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDckQsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM1QixVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNuQztJQUVELElBQUksU0FBUyxFQUFFO1FBQ1gsaUJBQWlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0tBQ3RDO0lBRUQsUUFBUSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFakcsSUFBSSxTQUFTLEVBQUU7UUFDWCxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLENBQUM7S0FDM0M7SUFFRCxJQUFJLGdCQUFnQixFQUFFO1FBQ2xCLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN0QyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QixnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztLQUM5QjtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsTUFBYyxFQUFFLE9BQWdCO0lBQzlELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QyxNQUFNLGNBQWMsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNoRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7SUFFckMsU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQzVCLEtBQUssQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDakMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGh5Tm90aWZ5U2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvbm90aWZ5JztcbmltcG9ydCB7IEVkaXRvciwgRWxlbWVudCwgVHJhbnNmb3JtcyB9IGZyb20gJ3NsYXRlJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IsIElTX1NBRkFSSSB9IGZyb20gJ3NsYXRlLWFuZ3VsYXInO1xuXG5leHBvcnQgZnVuY3Rpb24gY29weU5vZGUoXG4gICAgZWRpdG9yOiBFZGl0b3IsXG4gICAgZWxlbWVudDogRWxlbWVudCxcbiAgICB0aHlOb3RpZnlTZXJ2aWNlPzogVGh5Tm90aWZ5U2VydmljZSxcbiAgICBjb2RlTWlycm9yRWRpdG9yPzogQ29kZU1pcnJvci5FZGl0b3JGcm9tVGV4dEFyZWFcbikge1xuICAgIGxldCBjb2RlUG9pbnQ6IENvZGVNaXJyb3IuUG9zaXRpb247XG5cbiAgICBpZiAoY29kZU1pcnJvckVkaXRvcikge1xuICAgICAgICBjb2RlUG9pbnQgPSBjb2RlTWlycm9yRWRpdG9yLmdldEN1cnNvcigpO1xuICAgICAgICBjb25zdCBwYXRoID0gQW5ndWxhckVkaXRvci5maW5kUGF0aChlZGl0b3IsIGVsZW1lbnQpO1xuICAgICAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKGVkaXRvcik7XG4gICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgcGF0aCk7XG4gICAgfVxuXG4gICAgaWYgKElTX1NBRkFSSSkge1xuICAgICAgICBjb3B5Tm9kZUZvclNhZmFyaShlZGl0b3IsIGVsZW1lbnQpO1xuICAgIH1cblxuICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdjb3B5JykgPyB0aHlOb3RpZnlTZXJ2aWNlLnN1Y2Nlc3MoJ+WkjeWItuaIkOWKnycpIDogdGh5Tm90aWZ5U2VydmljZS5lcnJvcign5aSN5Yi25aSx6LSlJyk7XG5cbiAgICBpZiAoSVNfU0FGQVJJKSB7XG4gICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICB9XG5cbiAgICBpZiAoY29kZU1pcnJvckVkaXRvcikge1xuICAgICAgICBjb2RlTWlycm9yRWRpdG9yLnNldEN1cnNvcihjb2RlUG9pbnQpO1xuICAgICAgICBjb2RlTWlycm9yRWRpdG9yLmZvY3VzKCk7XG4gICAgICAgIGNvZGVNaXJyb3JFZGl0b3IucmVmcmVzaCgpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvcHlOb2RlRm9yU2FmYXJpKGVkaXRvcjogRWRpdG9yLCBlbGVtZW50OiBFbGVtZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgIGNvbnN0IGN1cnJlbnRFbGVtZW50ID0gQW5ndWxhckVkaXRvci50b0RPTU5vZGUoZWRpdG9yLCBlbGVtZW50KTtcbiAgICBjb25zdCByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG5cbiAgICBzZWxlY3Rpb24ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgcmFuZ2Uuc2VsZWN0Tm9kZShjdXJyZW50RWxlbWVudCk7XG4gICAgc2VsZWN0aW9uLmFkZFJhbmdlKHJhbmdlKTtcbn1cbiJdfQ==
@@ -1,9 +1,9 @@
1
1
  import { Editor, Transforms, Path } from 'slate';
2
+ import { HistoryEditor } from 'slate-history';
2
3
  import { AngularEditor } from 'slate-angular';
3
- import * as TheQueries from '../queries';
4
4
  import { THE_EDITOR_PREVIOUS_SELECTION } from '../utils';
5
- import { HistoryEditor } from 'slate-history';
6
- export const refocus = (editor) => {
5
+ import * as TheQueries from '../queries';
6
+ export const reSelection = (editor) => {
7
7
  let previousRange = THE_EDITOR_PREVIOUS_SELECTION.get(editor);
8
8
  let path = [0];
9
9
  let focusNode = TheQueries.getNode(editor, path);
@@ -25,9 +25,6 @@ export const refocus = (editor) => {
25
25
  }
26
26
  }
27
27
  }
28
- setRefocusSelection(editor, focusNode, focusPath);
29
- };
30
- export const setRefocusSelection = (editor, focusNode, focusPath) => {
31
28
  if (focusNode) {
32
29
  HistoryEditor.withoutMerging(editor, () => {
33
30
  const isBlockCard = editor.isBlockCard(focusNode);
@@ -41,6 +38,9 @@ export const setRefocusSelection = (editor, focusNode, focusPath) => {
41
38
  }
42
39
  });
43
40
  }
41
+ };
42
+ export const refocus = (editor) => {
43
+ reSelection(editor);
44
44
  AngularEditor.focus(editor);
45
45
  };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmb2N1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy91dGlscy9yZWZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxNQUFNLEVBQUUsVUFBVSxFQUFRLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxDQUFDLE1BQWlCLEVBQUUsRUFBRTtJQUN6QyxJQUFJLGFBQWEsR0FBRyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsSUFBSSxJQUFJLEdBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxJQUFJLFNBQVMsR0FBYSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLGFBQWEsRUFBRTtRQUNmLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBQzlDLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUNsQixJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3QyxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hDO2FBQU07WUFDSCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEQsSUFBSSxZQUFZLEVBQUU7Z0JBQ2QsU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxTQUFTLEdBQUcsWUFBWSxDQUFDO2FBQzVCO1NBQ0o7S0FDSjtJQUNELG1CQUFtQixDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxNQUFpQixFQUFFLFNBQWUsRUFBRSxTQUFtQixFQUFFLEVBQUU7SUFDM0YsSUFBSSxTQUFTLEVBQUU7UUFDWCxhQUFhLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDdEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNsRCxJQUFJLFdBQVcsRUFBRTtnQkFDYixNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDaEMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQzthQUMxRTtpQkFBTTtnQkFDSCxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQzthQUN4QztRQUNMLENBQUMsQ0FBQyxDQUFDO0tBQ047SUFDRCxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uLCBFZGl0b3IsIFRyYW5zZm9ybXMsIE5vZGUsIFBhdGggfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IEFuZ3VsYXJFZGl0b3IgfSBmcm9tICdzbGF0ZS1hbmd1bGFyJztcbmltcG9ydCAqIGFzIFRoZVF1ZXJpZXMgZnJvbSAnLi4vcXVlcmllcyc7XG5pbXBvcnQgeyBUSEVfRURJVE9SX1BSRVZJT1VTX1NFTEVDVElPTiB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5JztcblxuZXhwb3J0IGNvbnN0IHJlZm9jdXMgPSAoZWRpdG9yOiBUaGVFZGl0b3IpID0+IHtcbiAgICBsZXQgcHJldmlvdXNSYW5nZSA9IFRIRV9FRElUT1JfUFJFVklPVVNfU0VMRUNUSU9OLmdldChlZGl0b3IpO1xuICAgIGxldCBwYXRoOiBQYXRoID0gWzBdO1xuICAgIGxldCBmb2N1c05vZGUgPSBUaGVRdWVyaWVzLmdldE5vZGUoZWRpdG9yLCBwYXRoKTtcbiAgICBsZXQgZm9jdXNQYXRoOiBMb2NhdGlvbiA9IEVkaXRvci5zdGFydChlZGl0b3IsIHBhdGgpO1xuICAgIGlmIChwcmV2aW91c1JhbmdlKSB7XG4gICAgICAgIGNvbnN0IHsgc2VsZWN0aW9uLCByYW5nZVJlZiB9ID0gcHJldmlvdXNSYW5nZTtcbiAgICAgICAgaWYgKHJhbmdlUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHBhdGggPSBFZGl0b3IucGF0aChlZGl0b3IsIHJhbmdlUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgZm9jdXNOb2RlID0gVGhlUXVlcmllcy5nZXROb2RlKGVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICBmb2N1c1BhdGggPSByYW5nZVJlZi51bnJlZigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNQYXRoID0gRWRpdG9yLnBhdGgoZWRpdG9yLCBzZWxlY3Rpb24pO1xuICAgICAgICAgICAgcGF0aCA9IFBhdGgucHJldmlvdXMoW3ByZXZpb3VzUGF0aFswXV0pO1xuICAgICAgICAgICAgY29uc3QgcHJldmlvdXNOb2RlID0gVGhlUXVlcmllcy5nZXROb2RlKGVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICBpZiAocHJldmlvdXNOb2RlKSB7XG4gICAgICAgICAgICAgICAgZm9jdXNQYXRoID0gRWRpdG9yLmVuZChlZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgICAgIGZvY3VzTm9kZSA9IHByZXZpb3VzTm9kZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBzZXRSZWZvY3VzU2VsZWN0aW9uKGVkaXRvciwgZm9jdXNOb2RlLCBmb2N1c1BhdGgpO1xufTtcblxuZXhwb3J0IGNvbnN0IHNldFJlZm9jdXNTZWxlY3Rpb24gPSAoZWRpdG9yOiBUaGVFZGl0b3IsIGZvY3VzTm9kZTogTm9kZSwgZm9jdXNQYXRoOiBMb2NhdGlvbikgPT4ge1xuICAgIGlmIChmb2N1c05vZGUpIHtcbiAgICAgICAgSGlzdG9yeUVkaXRvci53aXRob3V0TWVyZ2luZyhlZGl0b3IsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzQmxvY2tDYXJkID0gZWRpdG9yLmlzQmxvY2tDYXJkKGZvY3VzTm9kZSk7XG4gICAgICAgICAgICBpZiAoaXNCbG9ja0NhcmQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gRWRpdG9yLnBhdGgoZWRpdG9yLCBmb2N1c1BhdGgpLnNsaWNlKDAsIDEpO1xuICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2VsZWN0KGVkaXRvciwgcGF0aCk7XG4gICAgICAgICAgICAgICAgQW5ndWxhckVkaXRvci5tb3ZlQmxvY2tDYXJkQ3Vyc29yKGVkaXRvciwgcGF0aCwgeyBkaXJlY3Rpb246ICdsZWZ0JyB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBmb2N1c1BhdGgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgQW5ndWxhckVkaXRvci5mb2N1cyhlZGl0b3IpO1xufTtcbiJdfQ==
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmb2N1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3NyYy91dGlscy9yZWZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxNQUFNLEVBQUUsVUFBVSxFQUFRLElBQUksRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pELE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFDO0FBRXpDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLE1BQWlCLEVBQUUsRUFBRTtJQUM3QyxJQUFJLGFBQWEsR0FBRyw2QkFBNkIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDOUQsSUFBSSxJQUFJLEdBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyQixJQUFJLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqRCxJQUFJLFNBQVMsR0FBYSxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRCxJQUFJLGFBQWEsRUFBRTtRQUNmLE1BQU0sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEdBQUcsYUFBYSxDQUFDO1FBQzlDLElBQUksUUFBUSxDQUFDLE9BQU8sRUFBRTtZQUNsQixJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLFNBQVMsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM3QyxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ2hDO2FBQU07WUFDSCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUFJLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdEQsSUFBSSxZQUFZLEVBQUU7Z0JBQ2QsU0FBUyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNyQyxTQUFTLEdBQUcsWUFBWSxDQUFDO2FBQzVCO1NBQ0o7S0FDSjtJQUNELElBQUksU0FBUyxFQUFFO1FBQ1gsYUFBYSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ3RDLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbEQsSUFBSSxXQUFXLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDeEQsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7YUFDMUU7aUJBQU07Z0JBQ0gsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDeEM7UUFDTCxDQUFDLENBQUMsQ0FBQztLQUNOO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBaUIsRUFBRSxFQUFFO0lBQ3pDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNwQixhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uLCBFZGl0b3IsIFRyYW5zZm9ybXMsIE5vZGUsIFBhdGggfSBmcm9tICdzbGF0ZSc7XG5pbXBvcnQgeyBIaXN0b3J5RWRpdG9yIH0gZnJvbSAnc2xhdGUtaGlzdG9yeSc7XG5pbXBvcnQgeyBBbmd1bGFyRWRpdG9yIH0gZnJvbSAnc2xhdGUtYW5ndWxhcic7XG5pbXBvcnQgeyBUaGVFZGl0b3IgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IFRIRV9FRElUT1JfUFJFVklPVVNfU0VMRUNUSU9OIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0ICogYXMgVGhlUXVlcmllcyBmcm9tICcuLi9xdWVyaWVzJztcblxuZXhwb3J0IGNvbnN0IHJlU2VsZWN0aW9uID0gKGVkaXRvcjogVGhlRWRpdG9yKSA9PiB7XG4gICAgbGV0IHByZXZpb3VzUmFuZ2UgPSBUSEVfRURJVE9SX1BSRVZJT1VTX1NFTEVDVElPTi5nZXQoZWRpdG9yKTtcbiAgICBsZXQgcGF0aDogUGF0aCA9IFswXTtcbiAgICBsZXQgZm9jdXNOb2RlID0gVGhlUXVlcmllcy5nZXROb2RlKGVkaXRvciwgcGF0aCk7XG4gICAgbGV0IGZvY3VzUGF0aDogTG9jYXRpb24gPSBFZGl0b3Iuc3RhcnQoZWRpdG9yLCBwYXRoKTtcbiAgICBpZiAocHJldmlvdXNSYW5nZSkge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvbiwgcmFuZ2VSZWYgfSA9IHByZXZpb3VzUmFuZ2U7XG4gICAgICAgIGlmIChyYW5nZVJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBwYXRoID0gRWRpdG9yLnBhdGgoZWRpdG9yLCByYW5nZVJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIGZvY3VzTm9kZSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZShlZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgZm9jdXNQYXRoID0gcmFuZ2VSZWYudW5yZWYoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzUGF0aCA9IEVkaXRvci5wYXRoKGVkaXRvciwgc2VsZWN0aW9uKTtcbiAgICAgICAgICAgIHBhdGggPSBQYXRoLnByZXZpb3VzKFtwcmV2aW91c1BhdGhbMF1dKTtcbiAgICAgICAgICAgIGNvbnN0IHByZXZpb3VzTm9kZSA9IFRoZVF1ZXJpZXMuZ2V0Tm9kZShlZGl0b3IsIHBhdGgpO1xuICAgICAgICAgICAgaWYgKHByZXZpb3VzTm9kZSkge1xuICAgICAgICAgICAgICAgIGZvY3VzUGF0aCA9IEVkaXRvci5lbmQoZWRpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgICAgICBmb2N1c05vZGUgPSBwcmV2aW91c05vZGU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZvY3VzTm9kZSkge1xuICAgICAgICBIaXN0b3J5RWRpdG9yLndpdGhvdXRNZXJnaW5nKGVkaXRvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNCbG9ja0NhcmQgPSBlZGl0b3IuaXNCbG9ja0NhcmQoZm9jdXNOb2RlKTtcbiAgICAgICAgICAgIGlmIChpc0Jsb2NrQ2FyZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBFZGl0b3IucGF0aChlZGl0b3IsIGZvY3VzUGF0aCkuc2xpY2UoMCwgMSk7XG4gICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZWxlY3QoZWRpdG9yLCBwYXRoKTtcbiAgICAgICAgICAgICAgICBBbmd1bGFyRWRpdG9yLm1vdmVCbG9ja0NhcmRDdXJzb3IoZWRpdG9yLCBwYXRoLCB7IGRpcmVjdGlvbjogJ2xlZnQnIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNlbGVjdChlZGl0b3IsIGZvY3VzUGF0aCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCByZWZvY3VzID0gKGVkaXRvcjogVGhlRWRpdG9yKSA9PiB7XG4gICAgcmVTZWxlY3Rpb24oZWRpdG9yKTtcbiAgICBBbmd1bGFyRWRpdG9yLmZvY3VzKGVkaXRvcik7XG59O1xuIl19