@plait/draw 0.70.0 → 0.72.0

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 (83) hide show
  1. package/arrow-line.component.d.ts +1 -1
  2. package/constants/default.d.ts +1 -0
  3. package/constants/geometry.d.ts +5 -5
  4. package/constants/index.d.ts +1 -0
  5. package/constants/pointer.d.ts +3 -3
  6. package/engines/table/table.d.ts +2 -2
  7. package/engines/uml/combined-fragment.d.ts +2 -2
  8. package/engines/uml/package.d.ts +2 -2
  9. package/esm2022/arrow-line.component.mjs +13 -13
  10. package/esm2022/constants/default.mjs +2 -0
  11. package/esm2022/constants/geometry.mjs +8 -8
  12. package/esm2022/constants/index.mjs +2 -1
  13. package/esm2022/constants/pointer.mjs +4 -4
  14. package/esm2022/engines/table/table.mjs +3 -3
  15. package/esm2022/engines/uml/combined-fragment.mjs +5 -5
  16. package/esm2022/engines/uml/package.mjs +5 -5
  17. package/esm2022/generators/geometry-shape.generator.mjs +6 -5
  18. package/esm2022/generators/single-text.generator.mjs +3 -3
  19. package/esm2022/generators/table.generator.mjs +6 -5
  20. package/esm2022/generators/text.generator.mjs +25 -21
  21. package/esm2022/geometry.component.mjs +4 -5
  22. package/esm2022/interfaces/arrow-line.mjs +1 -1
  23. package/esm2022/interfaces/element.mjs +1 -7
  24. package/esm2022/interfaces/geometry.mjs +6 -6
  25. package/esm2022/interfaces/index.mjs +13 -1
  26. package/esm2022/interfaces/options.mjs +2 -0
  27. package/esm2022/interfaces/vector-line.mjs +5 -5
  28. package/esm2022/plugins/with-arrow-line-text.mjs +2 -2
  29. package/esm2022/plugins/with-draw-fragment.mjs +8 -12
  30. package/esm2022/plugins/with-draw-hotkey.mjs +3 -3
  31. package/esm2022/plugins/with-draw-resize.mjs +11 -6
  32. package/esm2022/plugins/with-draw-rotate.mjs +3 -2
  33. package/esm2022/plugins/with-draw.mjs +10 -11
  34. package/esm2022/plugins/with-vector-line-create.mjs +123 -0
  35. package/esm2022/plugins/with-vector-line-resize.mjs +3 -3
  36. package/esm2022/table.component.mjs +8 -9
  37. package/esm2022/transforms/index.mjs +3 -3
  38. package/esm2022/transforms/multi-text-geometry-text.mjs +3 -3
  39. package/esm2022/utils/arrow-line/arrow-line-basic.mjs +6 -5
  40. package/esm2022/utils/clipboard.mjs +6 -17
  41. package/esm2022/utils/common.mjs +15 -8
  42. package/esm2022/utils/geometry.mjs +3 -3
  43. package/esm2022/utils/hit.mjs +21 -19
  44. package/esm2022/utils/index.mjs +2 -1
  45. package/esm2022/utils/multi-text-geometry.mjs +3 -3
  46. package/esm2022/utils/selected.mjs +9 -1
  47. package/esm2022/utils/snap-resizing.mjs +1 -1
  48. package/esm2022/utils/style/stroke.mjs +7 -17
  49. package/esm2022/utils/table.mjs +2 -2
  50. package/esm2022/utils/vector-line.mjs +6 -10
  51. package/esm2022/vector-line.component.mjs +2 -4
  52. package/fesm2022/plait-draw.mjs +259 -318
  53. package/fesm2022/plait-draw.mjs.map +1 -1
  54. package/generators/single-text.generator.d.ts +2 -2
  55. package/generators/text.generator.d.ts +11 -11
  56. package/interfaces/arrow-line.d.ts +1 -1
  57. package/interfaces/element.d.ts +0 -5
  58. package/interfaces/geometry.d.ts +11 -10
  59. package/interfaces/index.d.ts +4 -1
  60. package/interfaces/options.d.ts +4 -0
  61. package/interfaces/vector-line.d.ts +4 -4
  62. package/package.json +1 -1
  63. package/plugins/with-vector-line-create.d.ts +2 -0
  64. package/styles/styles.scss +1 -1
  65. package/table.component.d.ts +2 -2
  66. package/transforms/common.d.ts +1 -1
  67. package/transforms/geometry.d.ts +1 -1
  68. package/transforms/index.d.ts +3 -3
  69. package/transforms/multi-text-geometry-text.d.ts +2 -2
  70. package/utils/clipboard.d.ts +10 -3
  71. package/utils/common.d.ts +5 -3
  72. package/utils/geometry.d.ts +6 -6
  73. package/utils/hit.d.ts +8 -4
  74. package/utils/index.d.ts +1 -0
  75. package/utils/multi-text-geometry.d.ts +6 -10
  76. package/utils/selected.d.ts +3 -1
  77. package/utils/snap-resizing.d.ts +2 -2
  78. package/utils/style/stroke.d.ts +1 -2
  79. package/utils/vector-line.d.ts +0 -1
  80. package/esm2022/plugins/with-geometry-resize.mjs +0 -70
  81. package/esm2022/plugins/with-vector-pen-create.mjs +0 -123
  82. package/plugins/with-geometry-resize.d.ts +0 -2
  83. package/plugins/with-vector-pen-create.d.ts +0 -2
@@ -16,7 +16,7 @@ export declare class ArrowLineComponent extends CommonElementFlavour<PlaitArrowL
16
16
  initialize(): void;
17
17
  getBoundedElements(): BoundedElements;
18
18
  onContextChanged(value: PlaitPluginElementContext<PlaitArrowLine, PlaitBoard>, previous: PlaitPluginElementContext<PlaitArrowLine, PlaitBoard>): void;
19
- initializeTextManagesByElement(): void;
19
+ initializeTextManages(): void;
20
20
  drawText(): void;
21
21
  createTextManage(text: ArrowLineText, index: number): TextManage;
22
22
  updateText(previousTexts: ArrowLineText[], currentTexts: ArrowLineText[]): void;
@@ -0,0 +1 @@
1
+ export declare const WithDrawPluginKey = "plait-draw-plugin-key";
@@ -1,4 +1,4 @@
1
- import { GeometryShapes, MultipleTextGeometryCommonTextKeys, UMLSymbols } from '../interfaces';
1
+ import { GeometryShapes, GeometryCommonTextKeys, UMLSymbols } from '../interfaces';
2
2
  import { Alignment } from '@plait/common';
3
3
  export declare const ShapeDefaultSpace: {
4
4
  rectangleAndText: number;
@@ -99,7 +99,7 @@ export declare const DefaultPackageProperty: {
99
99
  width: number;
100
100
  height: number;
101
101
  texts: {
102
- key: MultipleTextGeometryCommonTextKeys;
102
+ id: GeometryCommonTextKeys;
103
103
  text: string;
104
104
  align: Alignment;
105
105
  }[];
@@ -140,7 +140,7 @@ export declare const DefaultCombinedFragmentProperty: {
140
140
  width: number;
141
141
  height: number;
142
142
  texts: {
143
- key: MultipleTextGeometryCommonTextKeys;
143
+ id: GeometryCommonTextKeys;
144
144
  text: string;
145
145
  align: Alignment;
146
146
  }[];
@@ -284,7 +284,7 @@ export declare const DefaultUMLPropertyMap: {
284
284
  width: number;
285
285
  height: number;
286
286
  texts: {
287
- key: MultipleTextGeometryCommonTextKeys;
287
+ id: GeometryCommonTextKeys;
288
288
  text: string;
289
289
  align: Alignment;
290
290
  }[];
@@ -293,7 +293,7 @@ export declare const DefaultUMLPropertyMap: {
293
293
  width: number;
294
294
  height: number;
295
295
  texts: {
296
- key: MultipleTextGeometryCommonTextKeys;
296
+ id: GeometryCommonTextKeys;
297
297
  text: string;
298
298
  align: Alignment;
299
299
  }[];
@@ -1,3 +1,4 @@
1
+ export * from './default';
1
2
  export * from './geometry';
2
3
  export * from './pointer';
3
4
  export * from './image';
@@ -1,9 +1,9 @@
1
- import { BasicShapes, FlowchartSymbols, ArrowLineShape, SwimlaneDrawSymbols, TableSymbols, UMLSymbols, VectorPenPointerType } from '../interfaces';
2
- export type DrawPointerType = BasicShapes | ArrowLineShape | FlowchartSymbols | SwimlaneDrawSymbols | TableSymbols | UMLSymbols | VectorPenPointerType;
1
+ import { BasicShapes, FlowchartSymbols, ArrowLineShape, SwimlaneDrawSymbols, TableSymbols, UMLSymbols, VectorLinePointerType } from '../interfaces';
2
+ export type DrawPointerType = BasicShapes | ArrowLineShape | FlowchartSymbols | SwimlaneDrawSymbols | TableSymbols | UMLSymbols | VectorLinePointerType;
3
3
  export declare const getGeometryPointers: () => string[];
4
4
  export declare const getSwimlanePointers: () => string[];
5
5
  export declare const getBasicPointers: () => string[];
6
6
  export declare const getFlowchartPointers: () => string[];
7
7
  export declare const getUMLPointers: () => string[];
8
8
  export declare const getArrowLinePointers: () => string[];
9
- export declare const getVectorPenPointers: () => string[];
9
+ export declare const getVectorLinePointers: () => string[];
@@ -1,7 +1,7 @@
1
1
  import { ShapeEngine } from '../../interfaces';
2
- import { PlaitDrawShapeText } from '../../generators/text.generator';
2
+ import { DrawTextInfo } from '../../generators/text.generator';
3
3
  import { PlaitTable, PlaitTableCellWithPoints, PlaitTableDrawOptions } from '../../interfaces/table';
4
- export declare const TableEngine: ShapeEngine<PlaitTable, PlaitTableDrawOptions, PlaitDrawShapeText>;
4
+ export declare const TableEngine: ShapeEngine<PlaitTable, PlaitTableDrawOptions, DrawTextInfo>;
5
5
  export declare function getVerticalTextRectangle(cell: PlaitTableCellWithPoints): {
6
6
  width: number;
7
7
  height: number;
@@ -1,3 +1,3 @@
1
1
  import { PlaitMultipleTextGeometry, ShapeEngine } from '../../interfaces';
2
- import { PlaitDrawShapeText } from '../../generators/text.generator';
3
- export declare const CombinedFragmentEngine: ShapeEngine<PlaitMultipleTextGeometry, {}, PlaitDrawShapeText>;
2
+ import { DrawTextInfo } from '../../generators/text.generator';
3
+ export declare const CombinedFragmentEngine: ShapeEngine<PlaitMultipleTextGeometry, {}, DrawTextInfo>;
@@ -1,3 +1,3 @@
1
1
  import { PlaitMultipleTextGeometry, ShapeEngine } from '../../interfaces';
2
- import { PlaitDrawShapeText } from '../../generators/text.generator';
3
- export declare const PackageEngine: ShapeEngine<PlaitMultipleTextGeometry, {}, PlaitDrawShapeText>;
2
+ import { DrawTextInfo } from '../../generators/text.generator';
3
+ export declare const PackageEngine: ShapeEngine<PlaitMultipleTextGeometry, {}, DrawTextInfo>;
@@ -17,7 +17,7 @@ export class ArrowLineComponent extends CommonElementFlavour {
17
17
  initializeGenerator() {
18
18
  this.shapeGenerator = new ArrowLineShapeGenerator(this.board);
19
19
  this.activeGenerator = new LineActiveGenerator(this.board);
20
- this.initializeTextManagesByElement();
20
+ this.initializeTextManages();
21
21
  }
22
22
  initialize() {
23
23
  this.initializeGenerator();
@@ -49,13 +49,11 @@ export class ArrowLineComponent extends CommonElementFlavour {
49
49
  return boundedElements;
50
50
  }
51
51
  onContextChanged(value, previous) {
52
- this.initializeWeakMap();
53
52
  const boundedElements = this.getBoundedElements();
54
53
  const isBoundedElementsChanged = boundedElements.source !== this.boundedElements.source || boundedElements.target !== this.boundedElements.target;
55
54
  this.boundedElements = boundedElements;
56
- const isChangeTheme = this.board.operations.find(op => op.type === 'set_theme');
57
55
  const linePoints = getArrowLinePoints(this.board, this.element);
58
- if (value.element !== previous.element || isChangeTheme) {
56
+ if (value.element !== previous.element || value.hasThemeChanged) {
59
57
  this.shapeGenerator.processDrawing(this.element, this.getElementG());
60
58
  this.activeGenerator.processDrawing(this.element, PlaitBoard.getElementActiveHost(this.board), {
61
59
  selected: this.selected,
@@ -83,19 +81,21 @@ export class ArrowLineComponent extends CommonElementFlavour {
83
81
  return;
84
82
  }
85
83
  }
86
- initializeTextManagesByElement() {
84
+ initializeTextManages() {
87
85
  if (this.element.texts?.length) {
88
86
  const textManages = [];
89
87
  this.element.texts.forEach((text, index) => {
90
88
  const manage = this.createTextManage(text, index);
91
89
  textManages.push(manage);
92
90
  });
93
- this.initializeTextManages(textManages);
91
+ this.getRef().initializeTextManage(textManages);
94
92
  }
95
93
  }
96
94
  drawText() {
97
95
  if (this.element.texts?.length) {
98
- this.getTextManages().forEach((manage, index) => {
96
+ this.getRef()
97
+ .getTextManages()
98
+ .forEach((manage, index) => {
99
99
  manage.draw(this.element.texts[index].text);
100
100
  this.getElementG().append(manage.g);
101
101
  });
@@ -129,7 +129,7 @@ export class ArrowLineComponent extends CommonElementFlavour {
129
129
  return;
130
130
  const previousTextsLength = previousTexts.length;
131
131
  const currentTextsLength = currentTexts.length;
132
- const textManages = this.getTextManages();
132
+ const textManages = this.getRef().getTextManages();
133
133
  if (currentTextsLength === previousTextsLength) {
134
134
  for (let i = 0; i < previousTextsLength; i++) {
135
135
  if (previousTexts[i].text !== currentTexts[i].text) {
@@ -138,13 +138,13 @@ export class ArrowLineComponent extends CommonElementFlavour {
138
138
  }
139
139
  }
140
140
  else {
141
- this.destroyTextManages();
142
- this.initializeTextManagesByElement();
141
+ this.getRef().destroyTextManage();
142
+ this.initializeTextManages();
143
143
  this.drawText();
144
144
  }
145
145
  }
146
146
  updateTextRectangle() {
147
- const textManages = this.getTextManages();
147
+ const textManages = this.getRef().getTextManages();
148
148
  textManages.forEach(manage => {
149
149
  manage.updateRectangle();
150
150
  });
@@ -152,7 +152,7 @@ export class ArrowLineComponent extends CommonElementFlavour {
152
152
  destroy() {
153
153
  super.destroy();
154
154
  this.activeGenerator.destroy();
155
- this.destroyTextManages();
155
+ this.getRef().destroyTextManage();
156
156
  }
157
157
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9hcnJvdy1saW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQyxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFPN0MsTUFBTSxRQUFRLEdBQUcsMEJBQTBCLENBQUM7QUFDNUMsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFdEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG9CQUFnRDtJQVFwRjtRQUNJLEtBQUssRUFBRSxDQUFDO1FBSFosb0JBQWUsR0FBb0IsRUFBRSxDQUFDO0lBSXRDLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJ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QUMxQyxXQUFXLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pCLE1BQU0sQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxPQUFPO1FBQ0gsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dCwgT25Db250ZXh0Q2hhbmdlZCwgZ2V0RWxlbWVudEJ5SWQsIGNyZWF0ZURlYnVnR2VuZXJhdG9yLCBQbGFpdE5vZGUgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBBcnJvd0xpbmVUZXh0LCBQbGFpdEFycm93TGluZSwgUGxhaXRHZW9tZXRyeSB9IGZyb20gJy4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMaW5lQWN0aXZlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL2xpbmUtYWN0aXZlLmdlbmVyYXRvcic7XG5pbXBvcnQgeyBEcmF3VHJhbnNmb3JtcyB9IGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyBHZW9tZXRyeVRocmVzaG9sZCwgTUlOX1RFWFRfV0lEVEggfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBDb21tb25FbGVtZW50Rmxhdm91ciwgVGV4dE1hbmFnZSwgVGV4dE1hbmFnZUNoYW5nZURhdGEgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IGdldEFycm93TGluZVRleHRSZWN0YW5nbGUgfSBmcm9tICcuL3V0aWxzL2Fycm93LWxpbmUvYXJyb3ctbGluZS1iYXNpYyc7XG5pbXBvcnQgeyBtZW1vcml6ZUxhdGVzdFRleHQgfSBmcm9tICcuL3V0aWxzL21lbW9yaXplJztcbmltcG9ydCB7IEFycm93TGluZVNoYXBlR2VuZXJhdG9yIH0gZnJvbSAnLi9nZW5lcmF0b3JzL2Fycm93LWxpbmUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IGdldEFycm93TGluZVBvaW50cyB9IGZyb20gJy4vdXRpbHMnO1xuXG5pbnRlcmZhY2UgQm91bmRlZEVsZW1lbnRzIHtcbiAgICBzb3VyY2U/OiBQbGFpdEdlb21ldHJ5O1xuICAgIHRhcmdldD86IFBsYWl0R2VvbWV0cnk7XG59XG5cbmNvbnN0IGRlYnVnS2V5ID0gJ2RlYnVnOnBsYWl0OmxpbmUtdHVybmluZyc7XG5jb25zdCBkZWJ1Z0dlbmVyYXRvciA9IGNyZWF0ZURlYnVnR2VuZXJhdG9yKGRlYnVnS2V5KTtcblxuZXhwb3J0IGNsYXNzIEFycm93TGluZUNvbXBvbmVudCBleHRlbmRzIENvbW1vbkVsZW1lbnRGbGF2b3VyPFBsYWl0QXJyb3dMaW5lLCBQbGFpdEJvYXJkPlxuICAgIGltcGxlbWVudHMgT25Db250ZXh0Q2hhbmdlZDxQbGFpdEFycm93TGluZSwgUGxhaXRCb2FyZD4ge1xuICAgIHNoYXBlR2VuZXJhdG9yITogQXJyb3dMaW5lU2hhcGVHZW5lcmF0b3I7XG5cbiAgICBhY3RpdmVHZW5lcmF0b3IhOiBMaW5lQWN0aXZlR2VuZXJhdG9yO1xuXG4gICAgYm91bmRlZEVsZW1lbnRzOiBCb3VuZGVkRWxlbWVudHMgPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIGluaXRpYWxpemVHZW5lcmF0b3IoKSB7XG4gICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IgPSBuZXcgQXJyb3dMaW5lU2hhcGVHZW5lcmF0b3IodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yID0gbmV3IExpbmVBY3RpdmVHZW5lcmF0b3IodGhpcy5ib2FyZCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2VzQnlFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplR2VuZXJhdG9yKCk7XG4gICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCB0aGlzLmdldEVsZW1lbnRHKCkpO1xuICAgICAgICBjb25zdCBsaW5lUG9pbnRzID0gZ2V0QXJyb3dMaW5lUG9pbnRzKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICAgICAgICBsaW5lUG9pbnRzXG4gICAgICAgIH0pO1xuICAgICAgICBzdXBlci5pbml0aWFsaXplKCk7XG4gICAgICAgIHRoaXMuYm91bmRlZEVsZW1lbnRzID0gdGhpcy5nZXRCb3VuZGVkRWxlbWVudHMoKTtcbiAgICAgICAgdGhpcy5kcmF3VGV4dCgpO1xuXG4gICAgICAgIGRlYnVnR2VuZXJhdG9yLmlzRGVidWcoKSAmJiBkZWJ1Z0dlbmVyYXRvci5kcmF3Q2lyY2xlcyh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQucG9pbnRzLnNsaWNlKDEsIC0xKSwgNCwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgZ2V0Qm91bmRlZEVsZW1lbnRzKCkge1xuICAgICAgICBjb25zdCBib3VuZGVkRWxlbWVudHM6IEJvdW5kZWRFbGVtZW50cyA9IHt9O1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50LnNvdXJjZS5ib3VuZElkKSB7XG4gICAgICAgICAgICBjb25zdCBib3VuZEVsZW1lbnQgPSBnZXRFbGVtZW50QnlJZDxQbGFpdEdlb21ldHJ5Pih0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQuc291cmNlLmJvdW5kSWQpO1xuICAgICAgICAgICAgaWYgKGJvdW5kRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGJvdW5kZWRFbGVtZW50cy5zb3VyY2UgPSBib3VuZEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC50YXJnZXQuYm91bmRJZCkge1xuICAgICAgICAgICAgY29uc3QgYm91bmRFbGVtZW50ID0gZ2V0RWxlbWVudEJ5SWQ8UGxhaXRHZW9tZXRyeT4odGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50LnRhcmdldC5ib3VuZElkKTtcbiAgICAgICAgICAgIGlmIChib3VuZEVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBib3VuZGVkRWxlbWVudHMudGFyZ2V0ID0gYm91bmRFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBib3VuZGVkRWxlbWVudHM7XG4gICAgfVxuXG4gICAgb25Db250ZXh0Q2hhbmdlZChcbiAgICAgICAgdmFsdWU6IFBsYWl0UGx1Z2luRWxlbWVudENvbnRleHQ8UGxhaXRBcnJvd0xpbmUsIFBsYWl0Qm9hcmQ+LFxuICAgICAgICBwcmV2aW91czogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEFycm93TGluZSwgUGxhaXRCb2FyZD5cbiAgICApIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplV2Vha01hcCgpO1xuICAgICAgICBjb25zdCBib3VuZGVkRWxlbWVudHMgPSB0aGlzLmdldEJvdW5kZWRFbGVtZW50cygpO1xuICAgICAgICBjb25zdCBpc0JvdW5kZWRFbGVtZW50c0NoYW5nZWQgPVxuICAgICAgICAgICAgYm91bmRlZEVsZW1lbnRzLnNvdXJjZSAhPT0gdGhpcy5ib3VuZGVkRWxlbWVudHMuc291cmNlIHx8IGJvdW5kZWRFbGVtZW50cy50YXJnZXQgIT09IHRoaXMuYm91bmRlZEVsZW1lbnRzLnRhcmdldDtcbiAgICAgICAgdGhpcy5ib3VuZGVkRWxlbWVudHMgPSBib3VuZGVkRWxlbWVudHM7XG4gICAgICAgIGNvbnN0IGlzQ2hhbmdlVGhlbWUgPSB0aGlzLmJvYXJkLm9wZXJhdGlvbnMuZmluZChvcCA9PiBvcC50eXBlID09PSAnc2V0X3RoZW1lJyk7XG4gICAgICAgIGNvbnN0IGxpbmVQb2ludHMgPSBnZXRBcnJvd0xpbmVQb2ludHModGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgaWYgKHZhbHVlLmVsZW1lbnQgIT09IHByZXZpb3VzLmVsZW1lbnQgfHwgaXNDaGFuZ2VUaGVtZSkge1xuICAgICAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBsaW5lUG9pbnRzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dChwcmV2aW91cy5lbGVtZW50LnRleHRzLCB2YWx1ZS5lbGVtZW50LnRleHRzKTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dFJlY3RhbmdsZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgbmVlZFVwZGF0ZSA9IHZhbHVlLnNlbGVjdGVkICE9PSBwcmV2aW91cy5zZWxlY3RlZCB8fCB0aGlzLmFjdGl2ZUdlbmVyYXRvci5uZWVkVXBkYXRlKCk7XG4gICAgICAgICAgICBpZiAobmVlZFVwZGF0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICAgICAgbGluZVBvaW50c1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpc0JvdW5kZWRFbGVtZW50c0NoYW5nZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2hhcGVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCB0aGlzLmdldEVsZW1lbnRHKCkpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgICAgbGluZVBvaW50c1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRleHRSZWN0YW5nbGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGluaXRpYWxpemVUZXh0TWFuYWdlc0J5RWxlbWVudCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC50ZXh0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCB0ZXh0TWFuYWdlczogVGV4dE1hbmFnZVtdID0gW107XG4gICAgICAgICAgICB0aGlzLmVsZW1lbnQudGV4dHMuZm9yRWFjaCgodGV4dDogQXJyb3dMaW5lVGV4dCwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG1hbmFnZSA9IHRoaXMuY3JlYXRlVGV4dE1hbmFnZSh0ZXh0LCBpbmRleCk7XG4gICAgICAgICAgICAgICAgdGV4dE1hbmFnZXMucHVzaChtYW5hZ2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVUZXh0TWFuYWdlcyh0ZXh0TWFuYWdlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkcmF3VGV4dCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudC50ZXh0cz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLmdldFRleHRNYW5hZ2VzKCkuZm9yRWFjaCgobWFuYWdlLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIG1hbmFnZS5kcmF3KHRoaXMuZWxlbWVudC50ZXh0cyFbaW5kZXhdLnRleHQpO1xuICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudEcoKS5hcHBlbmQobWFuYWdlLmcpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjcmVhdGVUZXh0TWFuYWdlKHRleHQ6IEFycm93TGluZVRleHQsIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUZXh0TWFuYWdlKHRoaXMuYm9hcmQsIHtcbiAgICAgICAgICAgIGdldFJlY3RhbmdsZTogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRBcnJvd0xpbmVUZXh0UmVjdGFuZ2xlKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCBhcyBQbGFpdEFycm93TGluZSwgaW5kZXgpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uQ2hhbmdlOiAodGV4dE1hbmFnZUNoYW5nZURhdGE6IFRleHRNYW5hZ2VDaGFuZ2VEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFBsYWl0Qm9hcmQuZmluZFBhdGgodGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgICAgICAgICBjb25zdCBub2RlID0gUGxhaXROb2RlLmdldCh0aGlzLmJvYXJkLCBwYXRoKSBhcyBQbGFpdEFycm93TGluZTtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0cyA9IFsuLi5ub2RlLnRleHRzXTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdXaWR0aCA9IHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoIDwgTUlOX1RFWFRfV0lEVEggPyBNSU5fVEVYVF9XSURUSCA6IHRleHRNYW5hZ2VDaGFuZ2VEYXRhLndpZHRoO1xuICAgICAgICAgICAgICAgIHRleHRzLnNwbGljZShpbmRleCwgMSwge1xuICAgICAgICAgICAgICAgICAgICB0ZXh0OiB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5uZXdUZXh0ID8gdGV4dE1hbmFnZUNoYW5nZURhdGEubmV3VGV4dCA6IHRoaXMuZWxlbWVudC50ZXh0c1tpbmRleF0udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHRoaXMuZWxlbWVudC50ZXh0c1tpbmRleF0ucG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiBuZXdXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5oZWlnaHRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBEcmF3VHJhbnNmb3Jtcy5zZXRBcnJvd0xpbmVUZXh0cyh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQgYXMgUGxhaXRBcnJvd0xpbmUsIHRleHRzKTtcbiAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5vcGVyYXRpb25zICYmIG1lbW9yaXplTGF0ZXN0VGV4dCh0aGlzLmVsZW1lbnQsIHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm9wZXJhdGlvbnMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGdldE1heFdpZHRoOiAoKSA9PiBHZW9tZXRyeVRocmVzaG9sZC5kZWZhdWx0VGV4dE1heFdpZHRoLFxuICAgICAgICAgICAgdGV4dFBsdWdpbnM6IFtdXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVRleHQocHJldmlvdXNUZXh0czogQXJyb3dMaW5lVGV4dFtdLCBjdXJyZW50VGV4dHM6IEFycm93TGluZVRleHRbXSkge1xuICAgICAgICBpZiAocHJldmlvdXNUZXh0cyA9PT0gY3VycmVudFRleHRzKSByZXR1cm47XG4gICAgICAgIGNvbnN0IHByZXZpb3VzVGV4dHNMZW5ndGggPSBwcmV2aW91c1RleHRzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgY3VycmVudFRleHRzTGVuZ3RoID0gY3VycmVudFRleHRzLmxlbmd0aDtcbiAgICAgICAgY29uc3QgdGV4dE1hbmFnZXMgPSB0aGlzLmdldFRleHRNYW5hZ2VzKCk7XG4gICAgICAgIGlmIChjdXJyZW50VGV4dHNMZW5ndGggPT09IHByZXZpb3VzVGV4dHNMZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJldmlvdXNUZXh0c0xlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzVGV4dHNbaV0udGV4dCAhPT0gY3VycmVudFRleHRzW2ldLnRleHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dE1hbmFnZXNbaV0udXBkYXRlVGV4dChjdXJyZW50VGV4dHNbaV0udGV4dCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kZXN0cm95VGV4dE1hbmFnZXMoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2VzQnlFbGVtZW50KCk7XG4gICAgICAgICAgICB0aGlzLmRyYXdUZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0UmVjdGFuZ2xlKCkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlcyA9IHRoaXMuZ2V0VGV4dE1hbmFnZXMoKTtcbiAgICAgICAgdGV4dE1hbmFnZXMuZm9yRWFjaChtYW5hZ2UgPT4ge1xuICAgICAgICAgICAgbWFuYWdlLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5kZXN0cm95VGV4dE1hbmFnZXMoKTtcbiAgICB9XG59XG4iXX0=
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyb3ctbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9hcnJvdy1saW5lLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUErQyxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXZJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxFQUF3QixNQUFNLGVBQWUsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFPN0MsTUFBTSxRQUFRLEdBQUcsMEJBQTBCLENBQUM7QUFDNUMsTUFBTSxjQUFjLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFdEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLG9CQUFnRDtJQVFwRjtRQUNJLEtBQUssRUFBRSxDQUFDO1FBSFosb0JBQWUsR0FBb0IsRUFBRSxDQUFDO0lBSXRDLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksdUJBQXVCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxJQUFJ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RUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU87UUFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0LCBPbkNvbnRleHRDaGFuZ2VkLCBnZXRFbGVtZW50QnlJZCwgY3JlYXRlRGVidWdHZW5lcmF0b3IsIFBsYWl0Tm9kZSB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEFycm93TGluZVRleHQsIFBsYWl0QXJyb3dMaW5lLCBQbGFpdEdlb21ldHJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IExpbmVBY3RpdmVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvbGluZS1hY3RpdmUuZ2VuZXJhdG9yJztcbmltcG9ydCB7IERyYXdUcmFuc2Zvcm1zIH0gZnJvbSAnLi90cmFuc2Zvcm1zJztcbmltcG9ydCB7IEdlb21ldHJ5VGhyZXNob2xkLCBNSU5fVEVYVF9XSURUSCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IENvbW1vbkVsZW1lbnRGbGF2b3VyLCBUZXh0TWFuYWdlLCBUZXh0TWFuYWdlQ2hhbmdlRGF0YSB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgZ2V0QXJyb3dMaW5lVGV4dFJlY3RhbmdsZSB9IGZyb20gJy4vdXRpbHMvYXJyb3ctbGluZS9hcnJvdy1saW5lLWJhc2ljJztcbmltcG9ydCB7IG1lbW9yaXplTGF0ZXN0VGV4dCB9IGZyb20gJy4vdXRpbHMvbWVtb3JpemUnO1xuaW1wb3J0IHsgQXJyb3dMaW5lU2hhcGVHZW5lcmF0b3IgfSBmcm9tICcuL2dlbmVyYXRvcnMvYXJyb3ctbGluZS5nZW5lcmF0b3InO1xuaW1wb3J0IHsgZ2V0QXJyb3dMaW5lUG9pbnRzIH0gZnJvbSAnLi91dGlscyc7XG5cbmludGVyZmFjZSBCb3VuZGVkRWxlbWVudHMge1xuICAgIHNvdXJjZT86IFBsYWl0R2VvbWV0cnk7XG4gICAgdGFyZ2V0PzogUGxhaXRHZW9tZXRyeTtcbn1cblxuY29uc3QgZGVidWdLZXkgPSAnZGVidWc6cGxhaXQ6bGluZS10dXJuaW5nJztcbmNvbnN0IGRlYnVnR2VuZXJhdG9yID0gY3JlYXRlRGVidWdHZW5lcmF0b3IoZGVidWdLZXkpO1xuXG5leHBvcnQgY2xhc3MgQXJyb3dMaW5lQ29tcG9uZW50IGV4dGVuZHMgQ29tbW9uRWxlbWVudEZsYXZvdXI8UGxhaXRBcnJvd0xpbmUsIFBsYWl0Qm9hcmQ+XG4gICAgaW1wbGVtZW50cyBPbkNvbnRleHRDaGFuZ2VkPFBsYWl0QXJyb3dMaW5lLCBQbGFpdEJvYXJkPiB7XG4gICAgc2hhcGVHZW5lcmF0b3IhOiBBcnJvd0xpbmVTaGFwZUdlbmVyYXRvcjtcblxuICAgIGFjdGl2ZUdlbmVyYXRvciE6IExpbmVBY3RpdmVHZW5lcmF0b3I7XG5cbiAgICBib3VuZGVkRWxlbWVudHM6IEJvdW5kZWRFbGVtZW50cyA9IHt9O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZUdlbmVyYXRvcigpIHtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvciA9IG5ldyBBcnJvd0xpbmVTaGFwZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IgPSBuZXcgTGluZUFjdGl2ZUdlbmVyYXRvcih0aGlzLmJvYXJkKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplVGV4dE1hbmFnZXMoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVHZW5lcmF0b3IoKTtcbiAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgIGNvbnN0IGxpbmVQb2ludHMgPSBnZXRBcnJvd0xpbmVQb2ludHModGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgICAgIGxpbmVQb2ludHNcbiAgICAgICAgfSk7XG4gICAgICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICAgICAgdGhpcy5ib3VuZGVkRWxlbWVudHMgPSB0aGlzLmdldEJvdW5kZWRFbGVtZW50cygpO1xuICAgICAgICB0aGlzLmRyYXdUZXh0KCk7XG5cbiAgICAgICAgZGVidWdHZW5lcmF0b3IuaXNEZWJ1ZygpICYmIGRlYnVnR2VuZXJhdG9yLmRyYXdDaXJjbGVzKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudC5wb2ludHMuc2xpY2UoMSwgLTEpLCA0LCB0cnVlKTtcbiAgICB9XG5cbiAgICBnZXRCb3VuZGVkRWxlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IGJvdW5kZWRFbGVtZW50czogQm91bmRlZEVsZW1lbnRzID0ge307XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnQuc291cmNlLmJvdW5kSWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJvdW5kRWxlbWVudCA9IGdldEVsZW1lbnRCeUlkPFBsYWl0R2VvbWV0cnk+KHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudC5zb3VyY2UuYm91bmRJZCk7XG4gICAgICAgICAgICBpZiAoYm91bmRFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgYm91bmRlZEVsZW1lbnRzLnNvdXJjZSA9IGJvdW5kRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5lbGVtZW50LnRhcmdldC5ib3VuZElkKSB7XG4gICAgICAgICAgICBjb25zdCBib3VuZEVsZW1lbnQgPSBnZXRFbGVtZW50QnlJZDxQbGFpdEdlb21ldHJ5Pih0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQudGFyZ2V0LmJvdW5kSWQpO1xuICAgICAgICAgICAgaWYgKGJvdW5kRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGJvdW5kZWRFbGVtZW50cy50YXJnZXQgPSBib3VuZEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGJvdW5kZWRFbGVtZW50cztcbiAgICB9XG5cbiAgICBvbkNvbnRleHRDaGFuZ2VkKFxuICAgICAgICB2YWx1ZTogUGxhaXRQbHVnaW5FbGVtZW50Q29udGV4dDxQbGFpdEFycm93TGluZSwgUGxhaXRCb2FyZD4sXG4gICAgICAgIHByZXZpb3VzOiBQbGFpdFBsdWdpbkVsZW1lbnRDb250ZXh0PFBsYWl0QXJyb3dMaW5lLCBQbGFpdEJvYXJkPlxuICAgICkge1xuICAgICAgICBjb25zdCBib3VuZGVkRWxlbWVudHMgPSB0aGlzLmdldEJvdW5kZWRFbGVtZW50cygpO1xuICAgICAgICBjb25zdCBpc0JvdW5kZWRFbGVtZW50c0NoYW5nZWQgPVxuICAgICAgICAgICAgYm91bmRlZEVsZW1lbnRzLnNvdXJjZSAhPT0gdGhpcy5ib3VuZGVkRWxlbWVudHMuc291cmNlIHx8IGJvdW5kZWRFbGVtZW50cy50YXJnZXQgIT09IHRoaXMuYm91bmRlZEVsZW1lbnRzLnRhcmdldDtcbiAgICAgICAgdGhpcy5ib3VuZGVkRWxlbWVudHMgPSBib3VuZGVkRWxlbWVudHM7XG4gICAgICAgIGNvbnN0IGxpbmVQb2ludHMgPSBnZXRBcnJvd0xpbmVQb2ludHModGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50KTtcbiAgICAgICAgaWYgKHZhbHVlLmVsZW1lbnQgIT09IHByZXZpb3VzLmVsZW1lbnQgfHwgdmFsdWUuaGFzVGhlbWVDaGFuZ2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNoYXBlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgdGhpcy5nZXRFbGVtZW50RygpKTtcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLnByb2Nlc3NEcmF3aW5nKHRoaXMuZWxlbWVudCwgUGxhaXRCb2FyZC5nZXRFbGVtZW50QWN0aXZlSG9zdCh0aGlzLmJvYXJkKSwge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICAgICAgICAgIGxpbmVQb2ludHNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0KHByZXZpb3VzLmVsZW1lbnQudGV4dHMsIHZhbHVlLmVsZW1lbnQudGV4dHMpO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVUZXh0UmVjdGFuZ2xlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBuZWVkVXBkYXRlID0gdmFsdWUuc2VsZWN0ZWQgIT09IHByZXZpb3VzLnNlbGVjdGVkIHx8IHRoaXMuYWN0aXZlR2VuZXJhdG9yLm5lZWRVcGRhdGUoKTtcbiAgICAgICAgICAgIGlmIChuZWVkVXBkYXRlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hY3RpdmVHZW5lcmF0b3IucHJvY2Vzc0RyYXdpbmcodGhpcy5lbGVtZW50LCBQbGFpdEJvYXJkLmdldEVsZW1lbnRBY3RpdmVIb3N0KHRoaXMuYm9hcmQpLCB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgICAgICAgICAgICAgICBsaW5lUG9pbnRzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzQm91bmRlZEVsZW1lbnRzQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zaGFwZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIHRoaXMuZ2V0RWxlbWVudEcoKSk7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZUdlbmVyYXRvci5wcm9jZXNzRHJhd2luZyh0aGlzLmVsZW1lbnQsIFBsYWl0Qm9hcmQuZ2V0RWxlbWVudEFjdGl2ZUhvc3QodGhpcy5ib2FyZCksIHtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICBsaW5lUG9pbnRzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlVGV4dFJlY3RhbmdsZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5pdGlhbGl6ZVRleHRNYW5hZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50LnRleHRzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IHRleHRNYW5hZ2VzOiBUZXh0TWFuYWdlW10gPSBbXTtcbiAgICAgICAgICAgIHRoaXMuZWxlbWVudC50ZXh0cy5mb3JFYWNoKCh0ZXh0OiBBcnJvd0xpbmVUZXh0LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWFuYWdlID0gdGhpcy5jcmVhdGVUZXh0TWFuYWdlKHRleHQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICB0ZXh0TWFuYWdlcy5wdXNoKG1hbmFnZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVmKCkuaW5pdGlhbGl6ZVRleHRNYW5hZ2UodGV4dE1hbmFnZXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZHJhd1RleHQoKSB7XG4gICAgICAgIGlmICh0aGlzLmVsZW1lbnQudGV4dHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5nZXRSZWYoKVxuICAgICAgICAgICAgICAgIC5nZXRUZXh0TWFuYWdlcygpXG4gICAgICAgICAgICAgICAgLmZvckVhY2goKG1hbmFnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbWFuYWdlLmRyYXcodGhpcy5lbGVtZW50LnRleHRzIVtpbmRleF0udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0RWxlbWVudEcoKS5hcHBlbmQobWFuYWdlLmcpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY3JlYXRlVGV4dE1hbmFnZSh0ZXh0OiBBcnJvd0xpbmVUZXh0LCBpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgVGV4dE1hbmFnZSh0aGlzLmJvYXJkLCB7XG4gICAgICAgICAgICBnZXRSZWN0YW5nbGU6ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0QXJyb3dMaW5lVGV4dFJlY3RhbmdsZSh0aGlzLmJvYXJkLCB0aGlzLmVsZW1lbnQgYXMgUGxhaXRBcnJvd0xpbmUsIGluZGV4KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKHRleHRNYW5hZ2VDaGFuZ2VEYXRhOiBUZXh0TWFuYWdlQ2hhbmdlRGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBQbGFpdEJvYXJkLmZpbmRQYXRoKHRoaXMuYm9hcmQsIHRoaXMuZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9kZSA9IFBsYWl0Tm9kZS5nZXQodGhpcy5ib2FyZCwgcGF0aCkgYXMgUGxhaXRBcnJvd0xpbmU7XG4gICAgICAgICAgICAgICAgY29uc3QgdGV4dHMgPSBbLi4ubm9kZS50ZXh0c107XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3V2lkdGggPSB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS53aWR0aCA8IE1JTl9URVhUX1dJRFRIID8gTUlOX1RFWFRfV0lEVEggOiB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS53aWR0aDtcbiAgICAgICAgICAgICAgICB0ZXh0cy5zcGxpY2UoaW5kZXgsIDEsIHtcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdGV4dE1hbmFnZUNoYW5nZURhdGEubmV3VGV4dCA/IHRleHRNYW5hZ2VDaGFuZ2VEYXRhLm5ld1RleHQgOiB0aGlzLmVsZW1lbnQudGV4dHNbaW5kZXhdLnRleHQsXG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiB0aGlzLmVsZW1lbnQudGV4dHNbaW5kZXhdLnBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogbmV3V2lkdGgsXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogdGV4dE1hbmFnZUNoYW5nZURhdGEuaGVpZ2h0XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgRHJhd1RyYW5zZm9ybXMuc2V0QXJyb3dMaW5lVGV4dHModGhpcy5ib2FyZCwgdGhpcy5lbGVtZW50IGFzIFBsYWl0QXJyb3dMaW5lLCB0ZXh0cyk7XG4gICAgICAgICAgICAgICAgdGV4dE1hbmFnZUNoYW5nZURhdGEub3BlcmF0aW9ucyAmJiBtZW1vcml6ZUxhdGVzdFRleHQodGhpcy5lbGVtZW50LCB0ZXh0TWFuYWdlQ2hhbmdlRGF0YS5vcGVyYXRpb25zKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBnZXRNYXhXaWR0aDogKCkgPT4gR2VvbWV0cnlUaHJlc2hvbGQuZGVmYXVsdFRleHRNYXhXaWR0aCxcbiAgICAgICAgICAgIHRleHRQbHVnaW5zOiBbXVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0KHByZXZpb3VzVGV4dHM6IEFycm93TGluZVRleHRbXSwgY3VycmVudFRleHRzOiBBcnJvd0xpbmVUZXh0W10pIHtcbiAgICAgICAgaWYgKHByZXZpb3VzVGV4dHMgPT09IGN1cnJlbnRUZXh0cykgcmV0dXJuO1xuICAgICAgICBjb25zdCBwcmV2aW91c1RleHRzTGVuZ3RoID0gcHJldmlvdXNUZXh0cy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUZXh0c0xlbmd0aCA9IGN1cnJlbnRUZXh0cy5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHRleHRNYW5hZ2VzID0gdGhpcy5nZXRSZWYoKS5nZXRUZXh0TWFuYWdlcygpO1xuICAgICAgICBpZiAoY3VycmVudFRleHRzTGVuZ3RoID09PSBwcmV2aW91c1RleHRzTGVuZ3RoKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByZXZpb3VzVGV4dHNMZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGlmIChwcmV2aW91c1RleHRzW2ldLnRleHQgIT09IGN1cnJlbnRUZXh0c1tpXS50ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRleHRNYW5hZ2VzW2ldLnVwZGF0ZVRleHQoY3VycmVudFRleHRzW2ldLnRleHQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0UmVmKCkuZGVzdHJveVRleHRNYW5hZ2UoKTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZVRleHRNYW5hZ2VzKCk7XG4gICAgICAgICAgICB0aGlzLmRyYXdUZXh0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVUZXh0UmVjdGFuZ2xlKCkge1xuICAgICAgICBjb25zdCB0ZXh0TWFuYWdlcyA9IHRoaXMuZ2V0UmVmKCkuZ2V0VGV4dE1hbmFnZXMoKTtcbiAgICAgICAgdGV4dE1hbmFnZXMuZm9yRWFjaChtYW5hZ2UgPT4ge1xuICAgICAgICAgICAgbWFuYWdlLnVwZGF0ZVJlY3RhbmdsZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMuYWN0aXZlR2VuZXJhdG9yLmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy5nZXRSZWYoKS5kZXN0cm95VGV4dE1hbmFnZSgpO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export const WithDrawPluginKey = 'plait-draw-plugin-key';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9kZWZhdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFdpdGhEcmF3UGx1Z2luS2V5ID0gJ3BsYWl0LWRyYXctcGx1Z2luLWtleSc7XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { ACTIVE_STROKE_WIDTH, DEFAULT_COLOR } from '@plait/core';
2
- import { BasicShapes, FlowchartSymbols, MultipleTextGeometryCommonTextKeys, UMLSymbols } from '../interfaces';
2
+ import { BasicShapes, FlowchartSymbols, GeometryCommonTextKeys, UMLSymbols } from '../interfaces';
3
3
  import { Alignment, DEFAULT_FILL } from '@plait/common';
4
4
  export const ShapeDefaultSpace = {
5
5
  rectangleAndText: 4
@@ -101,12 +101,12 @@ export const DefaultPackageProperty = {
101
101
  height: 150,
102
102
  texts: [
103
103
  {
104
- key: MultipleTextGeometryCommonTextKeys.name,
104
+ id: GeometryCommonTextKeys.name,
105
105
  text: '包名',
106
106
  align: Alignment.left
107
107
  },
108
108
  {
109
- key: MultipleTextGeometryCommonTextKeys.content,
109
+ id: GeometryCommonTextKeys.content,
110
110
  text: '',
111
111
  align: Alignment.left
112
112
  }
@@ -149,12 +149,12 @@ export const DefaultCombinedFragmentProperty = {
149
149
  height: 280,
150
150
  texts: [
151
151
  {
152
- key: MultipleTextGeometryCommonTextKeys.name,
152
+ id: GeometryCommonTextKeys.name,
153
153
  text: 'Opt | Alt | Loop',
154
154
  align: Alignment.left
155
155
  },
156
156
  {
157
- key: MultipleTextGeometryCommonTextKeys.content,
157
+ id: GeometryCommonTextKeys.content,
158
158
  text: '[Condition]',
159
159
  align: Alignment.left
160
160
  }
@@ -244,8 +244,8 @@ export const DefaultUMLPropertyMap = {
244
244
  [UMLSymbols.requiredInterface]: DefaultRequiredInterfaceProperty
245
245
  };
246
246
  export const MultipleTextGeometryTextKeys = {
247
- [UMLSymbols.package]: Object.keys(MultipleTextGeometryCommonTextKeys),
248
- [UMLSymbols.combinedFragment]: Object.keys(MultipleTextGeometryCommonTextKeys)
247
+ [UMLSymbols.package]: Object.keys(GeometryCommonTextKeys),
248
+ [UMLSymbols.combinedFragment]: Object.keys(GeometryCommonTextKeys)
249
249
  };
250
250
  export const LINE_HIT_GEOMETRY_BUFFER = 10;
251
251
  export const LINE_SNAPPING_BUFFER = 6;
@@ -269,4 +269,4 @@ export const GEOMETRY_NOT_CLOSED = [
269
269
  UMLSymbols.requiredInterface,
270
270
  UMLSymbols.deletion
271
271
  ];
272
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFrQixrQ0FBa0MsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDNUIsV0FBVyxFQUFFLENBQUM7SUFDZCxhQUFhLEVBQUUsQ0FBQztJQUNoQixXQUFXLEVBQUUsTUFBTTtJQUNuQixJQUFJLEVBQUUsWUFBWTtDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDbEMsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQyxvQkFBb0IsRUFBRSxtQkFBbUI7Q0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3JDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxXQUFXLEVBQUUsYUFBYTtJQUMxQixXQUFXLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUc7SUFDeEMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN0QyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1B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QUFVO0lBQzNCLFVBQVUsQ0FBQyxpQkFBaUI7SUFDNUIsVUFBVSxDQUFDLFFBQVE7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUNUSVZFX1NUUk9LRV9XSURUSCwgREVGQVVMVF9DT0xPUiB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEJhc2ljU2hhcGVzLCBGbG93Y2hhcnRTeW1ib2xzLCBHZW9tZXRyeVNoYXBlcywgTXVsdGlwbGVUZXh0R2VvbWV0cnlDb21tb25UZXh0S2V5cywgVU1MU3ltYm9scyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBERUZBVUxUX0ZJTEwgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFNoYXBlRGVmYXVsdFNwYWNlID0ge1xuICAgIHJlY3RhbmdsZUFuZFRleHQ6IDRcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RHJhd1N0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIGRlZmF1bHRSYWRpdXM6IDQsXG4gICAgc3Ryb2tlQ29sb3I6ICcjMDAwJyxcbiAgICBmaWxsOiBERUZBVUxUX0ZJTExcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RHJhd0FjdGl2ZVN0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIHNlbGVjdGlvblN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRIXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEJhc2ljU2hhcGVQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTAwLFxuICAgIGhlaWdodDogMTAwLFxuICAgIHN0cm9rZUNvbG9yOiBERUZBVUxUX0NPTE9SLFxuICAgIHN0cm9rZVdpZHRoOiAyXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFBlbnRhZ29uQXJyb3dQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogNTBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0VHdvV2F5QXJyb3dQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTM4LFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QXJyb3dQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTAwLFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q2xvdWRQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogMTAwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFRleHRQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMzYsXG4gICAgaGVpZ2h0OiAyMCxcbiAgICB0ZXh0OiAn5paH5pysJ1xufTtcblxuZXhwb3J0IGNvbnN0IEdlb21ldHJ5VGhyZXNob2xkID0ge1xuICAgIGRlZmF1bHRUZXh0TWF4V2lkdGg6IDM0ICogMTRcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q29ubmVjdG9yUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDQ0LFxuICAgIGhlaWdodDogNDRcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDEyMCxcbiAgICBoZWlnaHQ6IDYwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdERhdGFCYXNlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDcwLFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0SW50ZXJuYWxTdG9yYWdlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDgwLFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RGVjaXNpb25Qcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTQwLFxuICAgIGhlaWdodDogNzBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RGF0YVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjQsXG4gICAgaGVpZ2h0OiA2MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHREb2N1bWVudFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiA3MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHROb3RlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDE2MCxcbiAgICBoZWlnaHQ6IDEwMFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRNdWx0aURvY3VtZW50UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDEyMCxcbiAgICBoZWlnaHQ6IDgwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE1hbnVhbElucHV0UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDExNyxcbiAgICBoZWlnaHQ6IDU5XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE1lcmdlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDQ3LFxuICAgIGhlaWdodDogMzNcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QWN0b3JQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogNjgsXG4gICAgaGVpZ2h0OiAxMDBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q29udGFpbmVyUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDMwMCxcbiAgICBoZWlnaHQ6IDI0MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRQYWNrYWdlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDIxMCxcbiAgICBoZWlnaHQ6IDE1MCxcbiAgICB0ZXh0czogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IE11bHRpcGxlVGV4dEdlb21ldHJ5Q29tbW9uVGV4dEtleXMubmFtZSxcbiAgICAgICAgICAgIHRleHQ6ICfljIXlkI0nLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5sZWZ0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGtleTogTXVsdGlwbGVUZXh0R2VvbWV0cnlDb21tb25UZXh0S2V5cy5jb250ZW50LFxuICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmxlZnRcbiAgICAgICAgfVxuICAgIF1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QWN0aXZhdGlvblByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxOCxcbiAgICBoZWlnaHQ6IDgwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE9iamVjdFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiA2MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRDb21wb25lbnRCb3hQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMjAwLFxuICAgIGhlaWdodDogMTUwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdERlbGV0aW9uUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDQwLFxuICAgIGhlaWdodDogNDBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0UG9ydFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAyMCxcbiAgICBoZWlnaHQ6IDIwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFJlcXVpcmVkSW50ZXJmYWNlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDcwLFxuICAgIGhlaWdodDogNTZcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QXNzZW1ibHlQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogNTZcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0UHJvdmlkZWRJbnRlcmZhY2VQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogNzAsXG4gICAgaGVpZ2h0OiAzNFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRDb21iaW5lZEZyYWdtZW50UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDQwMCxcbiAgICBoZWlnaHQ6IDI4MCxcbiAgICB0ZXh0czogW1xuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IE11bHRpcGxlVGV4dEdlb21ldHJ5Q29tbW9uVGV4dEtleXMubmFtZSxcbiAgICAgICAgICAgIHRleHQ6ICdPcHQgfCBBbHQgfCBMb29wJyxcbiAgICAgICAgICAgIGFsaWduOiBBbGlnbm1lbnQubGVmdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IE11bHRpcGxlVGV4dEdlb21ldHJ5Q29tbW9uVGV4dEtleXMuY29udGVudCxcbiAgICAgICAgICAgIHRleHQ6ICdbQ29uZGl0aW9uXScsXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmxlZnRcbiAgICAgICAgfVxuICAgIF1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q2xhc3NQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMjMwLFxuICAgIGhlaWdodDogMTgwLFxuICAgIHRleHRzOiBbXG4gICAgICAgIHsgdGV4dDogJ0NsYXNzJywgYWxpZ246IEFsaWdubWVudC5jZW50ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJysgYXR0cmlidXRlMTp0eXBlICBkZWZhdWx0VmFsdWVcXG4rIGF0dHJpYnV0ZTI6dHlwZVxcbi0gYXR0cmlidXRlMzp0eXBlJyxcbiAgICAgICAgICAgIGFsaWduOiBBbGlnbm1lbnQubGVmdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnKyBvcGVyYXRpb24xKHBhcmFtcyk6cmV0dXJuVHlwZVxcbi0gb3BlcmF0aW9uMihwYXJhbXMpXFxuLSBvcGVyYXRpb24zKCknLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5sZWZ0XG4gICAgICAgIH1cbiAgICBdXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEludGVyZmFjZVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAyMzAsXG4gICAgaGVpZ2h0OiAxNDAsXG4gICAgdGV4dHM6IFtcbiAgICAgICAgeyB0ZXh0OiAnPDxpbnRlcmZhY2U+PlxcbkludGVyZmFjZScsIGFsaWduOiBBbGlnbm1lbnQuY2VudGVyIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICcrIG9wZXJhdGlvbjEocGFyYW1zKTpyZXR1cm5UeXBlXFxuLSBvcGVyYXRpb24yKHBhcmFtcylcXG4tIG9wZXJhdGlvbjMoKScsXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmxlZnRcbiAgICAgICAgfVxuICAgIF1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QmFzaWNTaGFwZVByb3BlcnR5TWFwOiBSZWNvcmQ8c3RyaW5nLCB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0+ID0ge1xuICAgIFtCYXNpY1NoYXBlcy5wZW50YWdvbkFycm93XTogRGVmYXVsdFBlbnRhZ29uQXJyb3dQcm9wZXJ0eSxcbiAgICBbQmFzaWNTaGFwZXMucHJvY2Vzc0Fycm93XTogRGVmYXVsdFBlbnRhZ29uQXJyb3dQcm9wZXJ0eSxcbiAgICBbQmFzaWNTaGFwZXMuY2xvdWRdOiBEZWZhdWx0Q2xvdWRQcm9wZXJ0eSxcbiAgICBbQmFzaWNTaGFwZXMudHdvV2F5QXJyb3ddOiBEZWZhdWx0VHdvV2F5QXJyb3dQcm9wZXJ0eSxcbiAgICBbQmFzaWNTaGFwZXMubGVmdEFycm93XTogRGVmYXVsdEFycm93UHJvcGVydHksXG4gICAgW0Jhc2ljU2hhcGVzLnJpZ2h0QXJyb3ddOiBEZWZhdWx0QXJyb3dQcm9wZXJ0eVxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eU1hcCA9IHtcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5jb25uZWN0b3JdOiBEZWZhdWx0Q29ubmVjdG9yUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJvY2Vzc106IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kZWNpc2lvbl06IERlZmF1bHREZWNpc2lvblByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRhdGFdOiBEZWZhdWx0RGF0YVByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnRlcm1pbmFsXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1hbnVhbElucHV0XTogRGVmYXVsdE1hbnVhbElucHV0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlcGFyYXRpb25dOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubWFudWFsTG9vcF06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tZXJnZV06IERlZmF1bHRNZXJnZVByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlbGF5XTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnN0b3JlZERhdGFdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub3JdOiBEZWZhdWx0Q29ubmVjdG9yUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3VtbWluZ0p1bmN0aW9uXTogRGVmYXVsdENvbm5lY3RvclByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLnByZWRlZmluZWRQcm9jZXNzXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm9mZlBhZ2VdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZG9jdW1lbnRdOiBEZWZhdWx0RG9jdW1lbnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tdWx0aURvY3VtZW50XTogRGVmYXVsdE11bHRpRG9jdW1lbnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kYXRhYmFzZV06IERlZmF1bHREYXRhQmFzZVByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmhhcmREaXNrXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmludGVybmFsU3RvcmFnZV06IERlZmF1bHRJbnRlcm5hbFN0b3JhZ2VQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5ub3RlQ3VybHlMZWZ0XTogRGVmYXVsdE5vdGVQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5ub3RlQ3VybHlSaWdodF06IERlZmF1bHROb3RlUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubm90ZVNxdWFyZV06IERlZmF1bHROb3RlUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGlzcGxheV06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eVxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRVTUxQcm9wZXJ0eU1hcCA9IHtcbiAgICBbVU1MU3ltYm9scy5hY3Rvcl06IERlZmF1bHRBY3RvclByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLnVzZUNhc2VdOiBEZWZhdWx0RG9jdW1lbnRQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5jb250YWluZXJdOiBEZWZhdWx0Q29udGFpbmVyUHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMubm90ZV06IERlZmF1bHRPYmplY3RQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5wYWNrYWdlXTogRGVmYXVsdFBhY2thZ2VQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5jb21iaW5lZEZyYWdtZW50XTogRGVmYXVsdENvbWJpbmVkRnJhZ21lbnRQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5jbGFzc106IERlZmF1bHRDbGFzc1Byb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmludGVyZmFjZV06IERlZmF1bHRJbnRlcmZhY2VQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5hY3RpdmF0aW9uXTogRGVmYXVsdEFjdGl2YXRpb25Qcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5vYmplY3RdOiBEZWZhdWx0T2JqZWN0UHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMuZGVsZXRpb25dOiBEZWZhdWx0RGVsZXRpb25Qcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5hY3Rpdml0eUNsYXNzXTogRGVmYXVsdE9iamVjdFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLnNpbXBsZUNsYXNzXTogRGVmYXVsdE9iamVjdFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmNvbXBvbmVudF06IERlZmF1bHRNdWx0aURvY3VtZW50UHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMudGVtcGxhdGVdOiBEZWZhdWx0TXVsdGlEb2N1bWVudFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmNvbXBvbmVudEJveF06IERlZmF1bHRDb21wb25lbnRCb3hQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5wb3J0XTogRGVmYXVsdFBvcnRQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5icmFuY2hNZXJnZV06IERlZmF1bHREZWxldGlvblByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmFzc2VtYmx5XTogRGVmYXVsdEFzc2VtYmx5UHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMucHJvdmlkZWRJbnRlcmZhY2VdOiBEZWZhdWx0UHJvdmlkZWRJbnRlcmZhY2VQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5yZXF1aXJlZEludGVyZmFjZV06IERlZmF1bHRSZXF1aXJlZEludGVyZmFjZVByb3BlcnR5XG59O1xuXG5leHBvcnQgY29uc3QgTXVsdGlwbGVUZXh0R2VvbWV0cnlUZXh0S2V5czogeyBba2V5IGluIEdlb21ldHJ5U2hhcGVzXT86IHN0cmluZ1tdIH0gPSB7XG4gICAgW1VNTFN5bWJvbHMucGFja2FnZV06IE9iamVjdC5rZXlzKE11bHRpcGxlVGV4dEdlb21ldHJ5Q29tbW9uVGV4dEtleXMpLFxuICAgIFtVTUxTeW1ib2xzLmNvbWJpbmVkRnJhZ21lbnRdOiBPYmplY3Qua2V5cyhNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzKVxufTtcblxuZXhwb3J0IGNvbnN0IExJTkVfSElUX0dFT01FVFJZX0JVRkZFUiA9IDEwO1xuXG5leHBvcnQgY29uc3QgTElORV9TTkFQUElOR19CVUZGRVIgPSA2O1xuXG5leHBvcnQgY29uc3QgTElORV9TTkFQUElOR19DT05ORUNUT1JfQlVGRkVSID0gODtcblxuZXhwb3J0IGNvbnN0IEdFT01FVFJZX1dJVEhPVVRfVEVYVCA9IFtcbiAgICBGbG93Y2hhcnRTeW1ib2xzLm9yLFxuICAgIEZsb3djaGFydFN5bWJvbHMuc3VtbWluZ0p1bmN0aW9uLFxuICAgIFVNTFN5bWJvbHMuYWN0aXZhdGlvbixcbiAgICBVTUxTeW1ib2xzLmRlbGV0aW9uLFxuICAgIFVNTFN5bWJvbHMucG9ydCxcbiAgICBVTUxTeW1ib2xzLmJyYW5jaE1lcmdlLFxuICAgIFVNTFN5bWJvbHMuYXNzZW1ibHksXG4gICAgVU1MU3ltYm9scy5wcm92aWRlZEludGVyZmFjZSxcbiAgICBVTUxTeW1ib2xzLnJlcXVpcmVkSW50ZXJmYWNlXG5dIGFzIEdlb21ldHJ5U2hhcGVzW107XG5cbmV4cG9ydCBjb25zdCBHRU9NRVRSWV9XSVRIX01VTFRJUExFX1RFWFQgPSBbVU1MU3ltYm9scy5wYWNrYWdlLCBVTUxTeW1ib2xzLmNvbWJpbmVkRnJhZ21lbnRdO1xuXG5leHBvcnQgY29uc3QgR0VPTUVUUllfTk9UX0NMT1NFRCA9IFtcbiAgICBGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseUxlZnQsXG4gICAgRmxvd2NoYXJ0U3ltYm9scy5ub3RlQ3VybHlSaWdodCxcbiAgICBGbG93Y2hhcnRTeW1ib2xzLm5vdGVTcXVhcmUsXG4gICAgVU1MU3ltYm9scy5yZXF1aXJlZEludGVyZmFjZSxcbiAgICBVTUxTeW1ib2xzLmRlbGV0aW9uXG5dIGFzIEdlb21ldHJ5U2hhcGVzW107XG4iXX0=
272
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNqRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFrQixzQkFBc0IsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsZ0JBQWdCLEVBQUUsQ0FBQztDQUN0QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDNUIsV0FBVyxFQUFFLENBQUM7SUFDZCxhQUFhLEVBQUUsQ0FBQztJQUNoQixXQUFXLEVBQUUsTUFBTTtJQUNuQixJQUFJLEVBQUUsWUFBWTtDQUNyQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDbEMsV0FBVyxFQUFFLG1CQUFtQjtJQUNoQyxvQkFBb0IsRUFBRSxtQkFBbUI7Q0FDNUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFHO0lBQ3JDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxXQUFXLEVBQUUsYUFBYTtJQUMxQixXQUFXLEVBQUUsQ0FBQztDQUNqQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQUc7SUFDeEMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRztJQUN0QyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2hDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDaEMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztDQUNkLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0lBQ1YsSUFBSSxFQUFFLElBQUk7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUc7SUFDN0IsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLEVBQUU7Q0FDL0IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3BDLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNuQyxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFHO0lBQzFDLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHO0lBQ25DLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDL0IsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztDQUNkLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUN4QyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHO0lBQ3RDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDaEMsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNoQyxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxHQUFHO0NBQ2QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3BDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7Q0FDZCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDbEMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLEtBQUssRUFBRTtRQUNIO1lBQ0ksRUFBRSxFQUFFLHNCQUFzQixDQUFDLElBQUk7WUFDL0IsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7U0FDeEI7UUFDRDtZQUNJLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxPQUFPO1lBQ2xDLElBQUksRUFBRSxFQUFFO1lBQ1IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJO1NBQ3hCO0tBQ0o7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7SUFDckMsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNqQyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3ZDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7Q0FDZCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkMsS0FBSyxFQUFFLEVBQUU7SUFDVCxNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRztJQUMvQixLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHO0lBQzVDLEtBQUssRUFBRSxFQUFFO0lBQ1QsTUFBTSxFQUFFLEVBQUU7Q0FDYixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDbkMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsRUFBRTtDQUNiLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRztJQUM1QyxLQUFLLEVBQUUsRUFBRTtJQUNULE1BQU0sRUFBRSxFQUFFO0NBQ2IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHO0lBQzNDLEtBQUssRUFBRSxHQUFHO0lBQ1YsTUFBTSxFQUFFLEdBQUc7SUFDWCxLQUFLLEVBQUU7UUFDSDtZQUNJLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxJQUFJO1lBQy9CLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJO1NBQ3hCO1FBQ0Q7WUFDSSxFQUFFLEVBQUUsc0JBQXNCLENBQUMsT0FBTztZQUNsQyxJQUFJLEVBQUUsYUFBYTtZQUNuQixLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7U0FDeEI7S0FDSjtDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRztJQUNoQyxLQUFLLEVBQUUsR0FBRztJQUNWLE1BQU0sRUFBRSxHQUFHO0lBQ1gsS0FBSyxFQUFFO1FBQ0gsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFO1FBQzFDO1lBQ0ksSUFBSSxFQUFFLHVFQUF1RTtZQUM3RSxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7U0FDeEI7UUFDRDtZQUNJLElBQUksRUFBRSx1RUFBdUU7WUFDN0UsS0FBSyxFQUFFLFNBQVMsQ0FBQyxJQUFJO1NBQ3hCO0tBQ0o7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUc7SUFDcEMsS0FBSyxFQUFFLEdBQUc7SUFDVixNQUFNLEVBQUUsR0FBRztJQUNYLEtBQUssRUFBRTtRQUNILEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSxTQUFTLENBQUMsTUFBTSxFQUFFO1FBQzdEO1lBQ0ksSUFBSSxFQUFFLHVFQUF1RTtZQUM3RSxLQUFLLEVBQUUsU0FBUyxDQUFDLElBQUk7U0FDeEI7S0FDSjtDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBc0Q7SUFDM0YsQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEVBQUUsNEJBQTRCO0lBQ3pELENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxFQUFFLDRCQUE0QjtJQUN4RCxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxvQkFBb0I7SUFDekMsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLEVBQUUsMEJBQTBCO0lBQ3JELENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFLG9CQUFvQjtJQUM3QyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRSxvQkFBb0I7Q0FDakQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHO0lBQ3ZDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsd0JBQXdCO0lBQ3RELENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsd0JBQXdCO0lBQ3BELENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsdUJBQXVCO0lBQ3BELENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsbUJBQW1CO0lBQzVDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsd0JBQXdCO0lBQ3JELENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQUUsMEJBQTBCO0lBQzFELENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQUUsd0JBQXdCO0lBQ3hELENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsd0JBQXdCO0lBQ3ZELENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQW9CO0lBQzlDLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEVBQUUsd0JBQXdCO0lBQ2xELENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsd0JBQXdCO0lBQ3ZELENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEVBQUUsd0JBQXdCO0lBQy9DLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLEVBQUUsd0JBQXdCO0lBQzVELENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsRUFBRSx3QkFBd0I7SUFDOUQsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSx3QkFBd0I7SUFDcEQsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSx1QkFBdUI7SUFDcEQsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSw0QkFBNEI7SUFDOUQsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSx1QkFBdUI7SUFDcEQsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSx3QkFBd0I7SUFDckQsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsRUFBRSw4QkFBOEI7SUFDbEUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxtQkFBbUI7SUFDckQsQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxtQkFBbUI7SUFDdEQsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxtQkFBbUI7SUFDbEQsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSx3QkFBd0I7Q0FDdkQsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ2pDLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLG9CQUFvQjtJQUN4QyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSx1QkFBdUI7SUFDN0MsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsd0JBQXdCO0lBQ2hELENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLHFCQUFxQjtJQUN4QyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxzQkFBc0I7SUFDNUMsQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsRUFBRSwrQkFBK0I7SUFDOUQsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQW9CO0lBQ3hDLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLHdCQUF3QjtJQUNoRCxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSx5QkFBeUI7SUFDbEQsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUscUJBQXFCO0lBQzFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLHVCQUF1QjtJQUM5QyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsRUFBRSxxQkFBcUI7SUFDakQsQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUscUJBQXFCO0lBQy9DLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLDRCQUE0QjtJQUNwRCxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSw0QkFBNEI7SUFDbkQsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEVBQUUsMkJBQTJCO0lBQ3RELENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQjtJQUN0QyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSx1QkFBdUI7SUFDakQsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsdUJBQXVCO0lBQzlDLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsZ0NBQWdDO0lBQ2hFLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsZ0NBQWdDO0NBQ25FLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBMkM7SUFDaEYsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQztJQUN6RCxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUM7Q0FDckUsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEVBQUUsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLENBQUM7QUFFdEMsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FBQyxDQUFDO0FBRWhELE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHO0lBQ2pDLGdCQUFnQixDQUFDLEVBQUU7SUFDbkIsZ0JBQWdCLENBQUMsZUFBZTtJQUNoQyxVQUFVLENBQUMsVUFBVTtJQUNyQixVQUFVLENBQUMsUUFBUTtJQUNuQixVQUFVLENBQUMsSUFBSTtJQUNmLFVBQVUsQ0FBQyxXQUFXO0lBQ3RCLFVBQVUsQ0FBQyxRQUFRO0lBQ25CLFVBQVUsQ0FBQyxpQkFBaUI7SUFDNUIsVUFBVSxDQUFDLGlCQUFpQjtDQUNYLENBQUM7QUFFdEIsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRTdGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQy9CLGdCQUFnQixDQUFDLGFBQWE7SUFDOUIsZ0JBQWdCLENBQUMsY0FBYztJQUMvQixnQkFBZ0IsQ0FBQyxVQUFVO0lBQzNCLFVBQVUsQ0FBQyxpQkFBaUI7SUFDNUIsVUFBVSxDQUFDLFFBQVE7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUNUSVZFX1NUUk9LRV9XSURUSCwgREVGQVVMVF9DT0xPUiB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEJhc2ljU2hhcGVzLCBGbG93Y2hhcnRTeW1ib2xzLCBHZW9tZXRyeVNoYXBlcywgR2VvbWV0cnlDb21tb25UZXh0S2V5cywgVU1MU3ltYm9scyB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBERUZBVUxUX0ZJTEwgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFNoYXBlRGVmYXVsdFNwYWNlID0ge1xuICAgIHJlY3RhbmdsZUFuZFRleHQ6IDRcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RHJhd1N0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiAyLFxuICAgIGRlZmF1bHRSYWRpdXM6IDQsXG4gICAgc3Ryb2tlQ29sb3I6ICcjMDAwJyxcbiAgICBmaWxsOiBERUZBVUxUX0ZJTExcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RHJhd0FjdGl2ZVN0eWxlID0ge1xuICAgIHN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRILFxuICAgIHNlbGVjdGlvblN0cm9rZVdpZHRoOiBBQ1RJVkVfU1RST0tFX1dJRFRIXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEJhc2ljU2hhcGVQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTAwLFxuICAgIGhlaWdodDogMTAwLFxuICAgIHN0cm9rZUNvbG9yOiBERUZBVUxUX0NPTE9SLFxuICAgIHN0cm9rZVdpZHRoOiAyXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFBlbnRhZ29uQXJyb3dQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogNTBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0VHdvV2F5QXJyb3dQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTM4LFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QXJyb3dQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTAwLFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q2xvdWRQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogMTAwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFRleHRQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMzYsXG4gICAgaGVpZ2h0OiAyMCxcbiAgICB0ZXh0OiAn5paH5pysJ1xufTtcblxuZXhwb3J0IGNvbnN0IEdlb21ldHJ5VGhyZXNob2xkID0ge1xuICAgIGRlZmF1bHRUZXh0TWF4V2lkdGg6IDM0ICogMTRcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q29ubmVjdG9yUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDQ0LFxuICAgIGhlaWdodDogNDRcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDEyMCxcbiAgICBoZWlnaHQ6IDYwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdERhdGFCYXNlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDcwLFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0SW50ZXJuYWxTdG9yYWdlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDgwLFxuICAgIGhlaWdodDogODBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RGVjaXNpb25Qcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTQwLFxuICAgIGhlaWdodDogNzBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0RGF0YVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjQsXG4gICAgaGVpZ2h0OiA2MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHREb2N1bWVudFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAxMjAsXG4gICAgaGVpZ2h0OiA3MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHROb3RlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDE2MCxcbiAgICBoZWlnaHQ6IDEwMFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRNdWx0aURvY3VtZW50UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDEyMCxcbiAgICBoZWlnaHQ6IDgwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE1hbnVhbElucHV0UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDExNyxcbiAgICBoZWlnaHQ6IDU5XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdE1lcmdlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDQ3LFxuICAgIGhlaWdodDogMzNcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0QWN0b3JQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogNjgsXG4gICAgaGVpZ2h0OiAxMDBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q29udGFpbmVyUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDMwMCxcbiAgICBoZWlnaHQ6IDI0MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRQYWNrYWdlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDIxMCxcbiAgICBoZWlnaHQ6IDE1MCxcbiAgICB0ZXh0czogW1xuICAgICAgICB7XG4gICAgICAgICAgICBpZDogR2VvbWV0cnlDb21tb25UZXh0S2V5cy5uYW1lLFxuICAgICAgICAgICAgdGV4dDogJ+WMheWQjScsXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmxlZnRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IEdlb21ldHJ5Q29tbW9uVGV4dEtleXMuY29udGVudCxcbiAgICAgICAgICAgIHRleHQ6ICcnLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5sZWZ0XG4gICAgICAgIH1cbiAgICBdXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEFjdGl2YXRpb25Qcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTgsXG4gICAgaGVpZ2h0OiA4MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRPYmplY3RQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMTIwLFxuICAgIGhlaWdodDogNjBcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q29tcG9uZW50Qm94UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDIwMCxcbiAgICBoZWlnaHQ6IDE1MFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHREZWxldGlvblByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiA0MCxcbiAgICBoZWlnaHQ6IDQwXG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFBvcnRQcm9wZXJ0eSA9IHtcbiAgICB3aWR0aDogMjAsXG4gICAgaGVpZ2h0OiAyMFxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRSZXF1aXJlZEludGVyZmFjZVByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiA3MCxcbiAgICBoZWlnaHQ6IDU2XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEFzc2VtYmx5UHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDEyMCxcbiAgICBoZWlnaHQ6IDU2XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFByb3ZpZGVkSW50ZXJmYWNlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDcwLFxuICAgIGhlaWdodDogMzRcbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0Q29tYmluZWRGcmFnbWVudFByb3BlcnR5ID0ge1xuICAgIHdpZHRoOiA0MDAsXG4gICAgaGVpZ2h0OiAyODAsXG4gICAgdGV4dHM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgaWQ6IEdlb21ldHJ5Q29tbW9uVGV4dEtleXMubmFtZSxcbiAgICAgICAgICAgIHRleHQ6ICdPcHQgfCBBbHQgfCBMb29wJyxcbiAgICAgICAgICAgIGFsaWduOiBBbGlnbm1lbnQubGVmdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBpZDogR2VvbWV0cnlDb21tb25UZXh0S2V5cy5jb250ZW50LFxuICAgICAgICAgICAgdGV4dDogJ1tDb25kaXRpb25dJyxcbiAgICAgICAgICAgIGFsaWduOiBBbGlnbm1lbnQubGVmdFxuICAgICAgICB9XG4gICAgXVxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRDbGFzc1Byb3BlcnR5ID0ge1xuICAgIHdpZHRoOiAyMzAsXG4gICAgaGVpZ2h0OiAxODAsXG4gICAgdGV4dHM6IFtcbiAgICAgICAgeyB0ZXh0OiAnQ2xhc3MnLCBhbGlnbjogQWxpZ25tZW50LmNlbnRlciB9LFxuICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAnKyBhdHRyaWJ1dGUxOnR5cGUgIGRlZmF1bHRWYWx1ZVxcbisgYXR0cmlidXRlMjp0eXBlXFxuLSBhdHRyaWJ1dGUzOnR5cGUnLFxuICAgICAgICAgICAgYWxpZ246IEFsaWdubWVudC5sZWZ0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICcrIG9wZXJhdGlvbjEocGFyYW1zKTpyZXR1cm5UeXBlXFxuLSBvcGVyYXRpb24yKHBhcmFtcylcXG4tIG9wZXJhdGlvbjMoKScsXG4gICAgICAgICAgICBhbGlnbjogQWxpZ25tZW50LmxlZnRcbiAgICAgICAgfVxuICAgIF1cbn07XG5cbmV4cG9ydCBjb25zdCBEZWZhdWx0SW50ZXJmYWNlUHJvcGVydHkgPSB7XG4gICAgd2lkdGg6IDIzMCxcbiAgICBoZWlnaHQ6IDE0MCxcbiAgICB0ZXh0czogW1xuICAgICAgICB7IHRleHQ6ICc8PGludGVyZmFjZT4+XFxuSW50ZXJmYWNlJywgYWxpZ246IEFsaWdubWVudC5jZW50ZXIgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJysgb3BlcmF0aW9uMShwYXJhbXMpOnJldHVyblR5cGVcXG4tIG9wZXJhdGlvbjIocGFyYW1zKVxcbi0gb3BlcmF0aW9uMygpJyxcbiAgICAgICAgICAgIGFsaWduOiBBbGlnbm1lbnQubGVmdFxuICAgICAgICB9XG4gICAgXVxufTtcblxuZXhwb3J0IGNvbnN0IERlZmF1bHRCYXNpY1NoYXBlUHJvcGVydHlNYXA6IFJlY29yZDxzdHJpbmcsIHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfT4gPSB7XG4gICAgW0Jhc2ljU2hhcGVzLnBlbnRhZ29uQXJyb3ddOiBEZWZhdWx0UGVudGFnb25BcnJvd1Byb3BlcnR5LFxuICAgIFtCYXNpY1NoYXBlcy5wcm9jZXNzQXJyb3ddOiBEZWZhdWx0UGVudGFnb25BcnJvd1Byb3BlcnR5LFxuICAgIFtCYXNpY1NoYXBlcy5jbG91ZF06IERlZmF1bHRDbG91ZFByb3BlcnR5LFxuICAgIFtCYXNpY1NoYXBlcy50d29XYXlBcnJvd106IERlZmF1bHRUd29XYXlBcnJvd1Byb3BlcnR5LFxuICAgIFtCYXNpY1NoYXBlcy5sZWZ0QXJyb3ddOiBEZWZhdWx0QXJyb3dQcm9wZXJ0eSxcbiAgICBbQmFzaWNTaGFwZXMucmlnaHRBcnJvd106IERlZmF1bHRBcnJvd1Byb3BlcnR5XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdEZsb3djaGFydFByb3BlcnR5TWFwID0ge1xuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmNvbm5lY3Rvcl06IERlZmF1bHRDb25uZWN0b3JQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcm9jZXNzXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRlY2lzaW9uXTogRGVmYXVsdERlY2lzaW9uUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGF0YV06IERlZmF1bHREYXRhUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMudGVybWluYWxdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMubWFudWFsSW5wdXRdOiBEZWZhdWx0TWFudWFsSW5wdXRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5wcmVwYXJhdGlvbl06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5tYW51YWxMb29wXTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm1lcmdlXTogRGVmYXVsdE1lcmdlUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuZGVsYXldOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuc3RvcmVkRGF0YV06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5vcl06IERlZmF1bHRDb25uZWN0b3JQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5zdW1taW5nSnVuY3Rpb25dOiBEZWZhdWx0Q29ubmVjdG9yUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMucHJlZGVmaW5lZFByb2Nlc3NdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMub2ZmUGFnZV06IERlZmF1bHRGbG93Y2hhcnRQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kb2N1bWVudF06IERlZmF1bHREb2N1bWVudFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm11bHRpRG9jdW1lbnRdOiBEZWZhdWx0TXVsdGlEb2N1bWVudFByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLmRhdGFiYXNlXTogRGVmYXVsdERhdGFCYXNlUHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuaGFyZERpc2tdOiBEZWZhdWx0Rmxvd2NoYXJ0UHJvcGVydHksXG4gICAgW0Zsb3djaGFydFN5bWJvbHMuaW50ZXJuYWxTdG9yYWdlXTogRGVmYXVsdEludGVybmFsU3RvcmFnZVByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseUxlZnRdOiBEZWZhdWx0Tm90ZVByb3BlcnR5LFxuICAgIFtGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseVJpZ2h0XTogRGVmYXVsdE5vdGVQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5ub3RlU3F1YXJlXTogRGVmYXVsdE5vdGVQcm9wZXJ0eSxcbiAgICBbRmxvd2NoYXJ0U3ltYm9scy5kaXNwbGF5XTogRGVmYXVsdEZsb3djaGFydFByb3BlcnR5XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdFVNTFByb3BlcnR5TWFwID0ge1xuICAgIFtVTUxTeW1ib2xzLmFjdG9yXTogRGVmYXVsdEFjdG9yUHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMudXNlQ2FzZV06IERlZmF1bHREb2N1bWVudFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmNvbnRhaW5lcl06IERlZmF1bHRDb250YWluZXJQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5ub3RlXTogRGVmYXVsdE9iamVjdFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLnBhY2thZ2VdOiBEZWZhdWx0UGFja2FnZVByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmNvbWJpbmVkRnJhZ21lbnRdOiBEZWZhdWx0Q29tYmluZWRGcmFnbWVudFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmNsYXNzXTogRGVmYXVsdENsYXNzUHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMuaW50ZXJmYWNlXTogRGVmYXVsdEludGVyZmFjZVByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmFjdGl2YXRpb25dOiBEZWZhdWx0QWN0aXZhdGlvblByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLm9iamVjdF06IERlZmF1bHRPYmplY3RQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5kZWxldGlvbl06IERlZmF1bHREZWxldGlvblByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmFjdGl2aXR5Q2xhc3NdOiBEZWZhdWx0T2JqZWN0UHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMuc2ltcGxlQ2xhc3NdOiBEZWZhdWx0T2JqZWN0UHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMuY29tcG9uZW50XTogRGVmYXVsdE11bHRpRG9jdW1lbnRQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy50ZW1wbGF0ZV06IERlZmF1bHRNdWx0aURvY3VtZW50UHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMuY29tcG9uZW50Qm94XTogRGVmYXVsdENvbXBvbmVudEJveFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLnBvcnRdOiBEZWZhdWx0UG9ydFByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLmJyYW5jaE1lcmdlXTogRGVmYXVsdERlbGV0aW9uUHJvcGVydHksXG4gICAgW1VNTFN5bWJvbHMuYXNzZW1ibHldOiBEZWZhdWx0QXNzZW1ibHlQcm9wZXJ0eSxcbiAgICBbVU1MU3ltYm9scy5wcm92aWRlZEludGVyZmFjZV06IERlZmF1bHRQcm92aWRlZEludGVyZmFjZVByb3BlcnR5LFxuICAgIFtVTUxTeW1ib2xzLnJlcXVpcmVkSW50ZXJmYWNlXTogRGVmYXVsdFJlcXVpcmVkSW50ZXJmYWNlUHJvcGVydHlcbn07XG5cbmV4cG9ydCBjb25zdCBNdWx0aXBsZVRleHRHZW9tZXRyeVRleHRLZXlzOiB7IFtrZXkgaW4gR2VvbWV0cnlTaGFwZXNdPzogc3RyaW5nW10gfSA9IHtcbiAgICBbVU1MU3ltYm9scy5wYWNrYWdlXTogT2JqZWN0LmtleXMoR2VvbWV0cnlDb21tb25UZXh0S2V5cyksXG4gICAgW1VNTFN5bWJvbHMuY29tYmluZWRGcmFnbWVudF06IE9iamVjdC5rZXlzKEdlb21ldHJ5Q29tbW9uVGV4dEtleXMpXG59O1xuXG5leHBvcnQgY29uc3QgTElORV9ISVRfR0VPTUVUUllfQlVGRkVSID0gMTA7XG5cbmV4cG9ydCBjb25zdCBMSU5FX1NOQVBQSU5HX0JVRkZFUiA9IDY7XG5cbmV4cG9ydCBjb25zdCBMSU5FX1NOQVBQSU5HX0NPTk5FQ1RPUl9CVUZGRVIgPSA4O1xuXG5leHBvcnQgY29uc3QgR0VPTUVUUllfV0lUSE9VVF9URVhUID0gW1xuICAgIEZsb3djaGFydFN5bWJvbHMub3IsXG4gICAgRmxvd2NoYXJ0U3ltYm9scy5zdW1taW5nSnVuY3Rpb24sXG4gICAgVU1MU3ltYm9scy5hY3RpdmF0aW9uLFxuICAgIFVNTFN5bWJvbHMuZGVsZXRpb24sXG4gICAgVU1MU3ltYm9scy5wb3J0LFxuICAgIFVNTFN5bWJvbHMuYnJhbmNoTWVyZ2UsXG4gICAgVU1MU3ltYm9scy5hc3NlbWJseSxcbiAgICBVTUxTeW1ib2xzLnByb3ZpZGVkSW50ZXJmYWNlLFxuICAgIFVNTFN5bWJvbHMucmVxdWlyZWRJbnRlcmZhY2Vcbl0gYXMgR2VvbWV0cnlTaGFwZXNbXTtcblxuZXhwb3J0IGNvbnN0IEdFT01FVFJZX1dJVEhfTVVMVElQTEVfVEVYVCA9IFtVTUxTeW1ib2xzLnBhY2thZ2UsIFVNTFN5bWJvbHMuY29tYmluZWRGcmFnbWVudF07XG5cbmV4cG9ydCBjb25zdCBHRU9NRVRSWV9OT1RfQ0xPU0VEID0gW1xuICAgIEZsb3djaGFydFN5bWJvbHMubm90ZUN1cmx5TGVmdCxcbiAgICBGbG93Y2hhcnRTeW1ib2xzLm5vdGVDdXJseVJpZ2h0LFxuICAgIEZsb3djaGFydFN5bWJvbHMubm90ZVNxdWFyZSxcbiAgICBVTUxTeW1ib2xzLnJlcXVpcmVkSW50ZXJmYWNlLFxuICAgIFVNTFN5bWJvbHMuZGVsZXRpb25cbl0gYXMgR2VvbWV0cnlTaGFwZXNbXTtcbiJdfQ==
@@ -1,7 +1,8 @@
1
+ export * from './default';
1
2
  export * from './geometry';
2
3
  export * from './pointer';
3
4
  export * from './image';
4
5
  export * from './theme';
5
6
  export * from './swimlane';
6
7
  export * from './text';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlb21ldHJ5JztcbmV4cG9ydCAqIGZyb20gJy4vcG9pbnRlcic7XG5leHBvcnQgKiBmcm9tICcuL2ltYWdlJztcbmV4cG9ydCAqIGZyb20gJy4vdGhlbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zd2ltbGFuZSc7XG5leHBvcnQgKiBmcm9tICcuL3RleHQnO1xuIl19
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9jb25zdGFudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RlZmF1bHQnO1xuZXhwb3J0ICogZnJvbSAnLi9nZW9tZXRyeSc7XG5leHBvcnQgKiBmcm9tICcuL3BvaW50ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZSc7XG5leHBvcnQgKiBmcm9tICcuL3RoZW1lJztcbmV4cG9ydCAqIGZyb20gJy4vc3dpbWxhbmUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0JztcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { BasicShapes, FlowchartSymbols, ArrowLineShape, SwimlaneDrawSymbols, UMLSymbols, VectorPenPointerType } from '../interfaces';
1
+ import { BasicShapes, FlowchartSymbols, ArrowLineShape, SwimlaneDrawSymbols, UMLSymbols, VectorLinePointerType } from '../interfaces';
2
2
  export const getGeometryPointers = () => {
3
3
  return [...Object.keys(BasicShapes), ...Object.keys(FlowchartSymbols), ...Object.keys(UMLSymbols)];
4
4
  };
@@ -17,7 +17,7 @@ export const getUMLPointers = () => {
17
17
  export const getArrowLinePointers = () => {
18
18
  return Object.keys(ArrowLineShape);
19
19
  };
20
- export const getVectorPenPointers = () => {
21
- return Object.keys(VectorPenPointerType);
20
+ export const getVectorLinePointers = () => {
21
+ return Object.keys(VectorLinePointerType);
22
22
  };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9wb2ludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxtQkFBbUIsRUFFbkIsVUFBVSxFQUNWLG9CQUFvQixFQUN2QixNQUFNLGVBQWUsQ0FBQztBQVd2QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7SUFDcEMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7SUFDcEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDckMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDckMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7QUFDN0MsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCYXNpY1NoYXBlcyxcbiAgICBGbG93Y2hhcnRTeW1ib2xzLFxuICAgIEFycm93TGluZVNoYXBlLFxuICAgIFN3aW1sYW5lRHJhd1N5bWJvbHMsXG4gICAgVGFibGVTeW1ib2xzLFxuICAgIFVNTFN5bWJvbHMsXG4gICAgVmVjdG9yUGVuUG9pbnRlclR5cGVcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCB0eXBlIERyYXdQb2ludGVyVHlwZSA9XG4gICAgfCBCYXNpY1NoYXBlc1xuICAgIHwgQXJyb3dMaW5lU2hhcGVcbiAgICB8IEZsb3djaGFydFN5bWJvbHNcbiAgICB8IFN3aW1sYW5lRHJhd1N5bWJvbHNcbiAgICB8IFRhYmxlU3ltYm9sc1xuICAgIHwgVU1MU3ltYm9sc1xuICAgIHwgVmVjdG9yUGVuUG9pbnRlclR5cGU7XG5cbmV4cG9ydCBjb25zdCBnZXRHZW9tZXRyeVBvaW50ZXJzID0gKCkgPT4ge1xuICAgIHJldHVybiBbLi4uT2JqZWN0LmtleXMoQmFzaWNTaGFwZXMpLCAuLi5PYmplY3Qua2V5cyhGbG93Y2hhcnRTeW1ib2xzKSwgLi4uT2JqZWN0LmtleXMoVU1MU3ltYm9scyldO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN3aW1sYW5lUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKFN3aW1sYW5lRHJhd1N5bWJvbHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEJhc2ljUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKEJhc2ljU2hhcGVzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGbG93Y2hhcnRQb2ludGVycyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoRmxvd2NoYXJ0U3ltYm9scyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VU1MUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKFVNTFN5bWJvbHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEFycm93TGluZVBvaW50ZXJzID0gKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhBcnJvd0xpbmVTaGFwZSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VmVjdG9yUGVuUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKFZlY3RvclBlblBvaW50ZXJUeXBlKTtcbn07XG4iXX0=
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL2NvbnN0YW50cy9wb2ludGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxXQUFXLEVBQ1gsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxtQkFBbUIsRUFFbkIsVUFBVSxFQUNWLHFCQUFxQixFQUN4QixNQUFNLGVBQWUsQ0FBQztBQVd2QixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7SUFDcEMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUN2RyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxHQUFHLEVBQUU7SUFDcEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsR0FBRyxFQUFFO0lBQ2pDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxHQUFHLEVBQUU7SUFDckMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDekMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtJQUMvQixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7QUFDbkMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxFQUFFO0lBQ3JDLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUN2QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxHQUFHLEVBQUU7SUFDdEMsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFDOUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBCYXNpY1NoYXBlcyxcbiAgICBGbG93Y2hhcnRTeW1ib2xzLFxuICAgIEFycm93TGluZVNoYXBlLFxuICAgIFN3aW1sYW5lRHJhd1N5bWJvbHMsXG4gICAgVGFibGVTeW1ib2xzLFxuICAgIFVNTFN5bWJvbHMsXG4gICAgVmVjdG9yTGluZVBvaW50ZXJUeXBlXG59IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgdHlwZSBEcmF3UG9pbnRlclR5cGUgPVxuICAgIHwgQmFzaWNTaGFwZXNcbiAgICB8IEFycm93TGluZVNoYXBlXG4gICAgfCBGbG93Y2hhcnRTeW1ib2xzXG4gICAgfCBTd2ltbGFuZURyYXdTeW1ib2xzXG4gICAgfCBUYWJsZVN5bWJvbHNcbiAgICB8IFVNTFN5bWJvbHNcbiAgICB8IFZlY3RvckxpbmVQb2ludGVyVHlwZTtcblxuZXhwb3J0IGNvbnN0IGdldEdlb21ldHJ5UG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIFsuLi5PYmplY3Qua2V5cyhCYXNpY1NoYXBlcyksIC4uLk9iamVjdC5rZXlzKEZsb3djaGFydFN5bWJvbHMpLCAuLi5PYmplY3Qua2V5cyhVTUxTeW1ib2xzKV07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3dpbWxhbmVQb2ludGVycyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoU3dpbWxhbmVEcmF3U3ltYm9scyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QmFzaWNQb2ludGVycyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoQmFzaWNTaGFwZXMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEZsb3djaGFydFBvaW50ZXJzID0gKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhGbG93Y2hhcnRTeW1ib2xzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVTUxQb2ludGVycyA9ICgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoVU1MU3ltYm9scyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0QXJyb3dMaW5lUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKEFycm93TGluZVNoYXBlKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRWZWN0b3JMaW5lUG9pbnRlcnMgPSAoKSA9PiB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKFZlY3RvckxpbmVQb2ludGVyVHlwZSk7XG59O1xuIl19
@@ -51,8 +51,8 @@ export const TableEngine = {
51
51
  },
52
52
  getTextRectangle(element, options) {
53
53
  try {
54
- if (options && options.key) {
55
- const cell = getCellWithPoints(options?.board, element, options.key);
54
+ if (options && options.id) {
55
+ const cell = getCellWithPoints(options?.board, element, options.id);
56
56
  if (cell) {
57
57
  if (PlaitTableElement.isVerticalText(cell)) {
58
58
  return getVerticalTextRectangle(cell);
@@ -98,4 +98,4 @@ export function getHorizontalTextRectangle(cell) {
98
98
  y: cellRectangle.y + (cellRectangle.height - height) / 2
99
99
  };
100
100
  }
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFTLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFFLE9BQU8sRUFBK0QsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUF1RTtJQUMzRixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLFlBQXFCLEVBQUUsT0FBK0I7UUFDdEcsTUFBTSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixDQUFDLENBQUM7WUFDcEYsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUMxQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztnQkFDMUUsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsTUFBTSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUM7Z0JBQzVFLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO2dCQUMxQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUN0QixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxDQUFDO29CQUNyRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO29CQUMxQyxNQUFNLGFBQWEsR0FBRyxhQUFhLENBQy9CLEtBQUssRUFDTDt3QkFDSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLG1CQUFtQjt3QkFDMUIsQ0FBQyxFQUFFLENBQUMsR0FBRyxtQkFBbUI7d0JBQzFCLEtBQUssRUFBRSxLQUFLLEdBQUcsbUJBQW1CLEdBQUcsQ0FBQzt3QkFDdEMsTUFBTSxFQUFFLE1BQU0sR0FBRyxtQkFBbUIsR0FBRyxDQUFDO3FCQUMzQyxFQUNELEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsQ0FBQyxFQUFFLENBQzFELENBQUM7b0JBQ0YsTUFBTSxlQUFlLEdBQUcsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDNUYsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxLQUFLLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDO29CQUM5RixDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztnQkFDL0QsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUNELGFBQWEsQ0FBQyxTQUEwQixFQUFFLEtBQVk7UUFDbEQsTUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUUsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCO1FBQ3RDLE9BQU8sZUFBZSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBQ0QsZUFBZSxDQUFDLFNBQTBCLEVBQUUsS0FBWTtRQUNwRCxPQUFPLDRDQUE0QyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM5RyxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsU0FBMEI7UUFDekMsT0FBTyxlQUFlLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELGdCQUFnQixDQUFDLE9BQW1CLEVBQUUsT0FBNEI7UUFDOUQsSUFBSSxDQUFDO1lBQ0QsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUN6QixNQUFNLElBQUksR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLEVBQUUsS0FBTSxFQUFFLE9BQU8sRUFBRSxPQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ3ZFLElBQUksSUFBSSxFQUFFLENBQUM7b0JBQ1AsSUFBSSxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQzt3QkFDekMsT0FBTyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDMUMsQ0FBQzt5QkFBTSxDQUFDO3dCQUNKLE9BQU8sMEJBQTBCLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQzVDLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNiLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztRQUNELE9BQU87WUFDSCxDQUFDLEVBQUUsQ0FBQztZQUNKLENBQUMsRUFBRSxDQUFDO1lBQ0osS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsQ0FBQztTQUNaLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxJQUE4QjtJQUNuRSxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sV0FBVyxHQUFHLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sS0FBSyxHQUFHLGFBQWEsQ0FBQyxNQUFNLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDOUYsT0FBTztRQUNILEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTTtRQUNOLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ3hELENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0tBQzNELENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQThCO0lBQ3JFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUM3RixPQUFPO1FBQ0gsTUFBTTtRQUNOLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztRQUNyRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgUG9pbnQsIGNyZWF0ZUcsIGRyYXdMaW5lLCBzZXRTdHJva2VMaW5lY2FwLCBkcmF3UmVjdGFuZ2xlLCBBQ1RJVkVfU1RST0tFX1dJRFRIIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0Q2VsbHNXaXRoUG9pbnRzLCBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdERyYXdTaGFwZVRleHQgfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBsYWl0VGFibGUsIFBsYWl0VGFibGVDZWxsV2l0aFBvaW50cywgUGxhaXRUYWJsZURyYXdPcHRpb25zLCBQbGFpdFRhYmxlRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZSwgZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMgfSBmcm9tICcuLi9iYXNpYy1zaGFwZXMvcm91bmQtcmVjdGFuZ2xlJztcblxuZXhwb3J0IGNvbnN0IFRhYmxlRW5naW5lOiBTaGFwZUVuZ2luZTxQbGFpdFRhYmxlLCBQbGFpdFRhYmxlRHJhd09wdGlvbnMsIFBsYWl0RHJhd1NoYXBlVGV4dD4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHJvdWdoT3B0aW9uczogT3B0aW9ucywgb3B0aW9ucz86IFBsYWl0VGFibGVEcmF3T3B0aW9ucykge1xuICAgICAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRDZWxscyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCwgeyAuLi5vcHRpb25zPy5lbGVtZW50IH0gYXMgUGxhaXRUYWJsZSk7XG4gICAgICAgICAgICBpZiAocG9pbnRDZWxscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVUb3BCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCArIHdpZHRoLCB5XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJsZUxlZnRCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgZy5hcHBlbmQodGFibGVUb3BCb3JkZXIsIHRhYmxlTGVmdEJvcmRlcik7XG4gICAgICAgICAgICAgICAgcG9pbnRDZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbC5wb2ludHMhKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0YW5nbGUgPSBkcmF3UmVjdGFuZ2xlKFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogeCArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogeSArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoIC0gQUNUSVZFX1NUUk9LRV9XSURUSCAqIDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQgLSBBQ1RJVkVfU1RST0tFX1dJRFRIICogMlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgZmlsbDogY2VsbC5maWxsLCBmaWxsU3R5bGU6ICdzb2xpZCcsIHN0cm9rZVdpZHRoOiAwIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbFJpZ2h0Qm9yZGVyID0gZHJhd0xpbmUocnMsIFt4ICsgd2lkdGgsIHldLCBbeCArIHdpZHRoLCB5ICsgaGVpZ2h0XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbEJvdHRvbUJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCwgeSArIGhlaWdodF0sIFt4ICsgd2lkdGgsIHkgKyBoZWlnaHRdLCByb3VnaE9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBnLmFwcGVuZChjZWxsUmVjdGFuZ2xlLCBjZWxsUmlnaHRCb3JkZXIsIGNlbGxCb3R0b21Cb3JkZXIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNldFN0cm9rZUxpbmVjYXAoZywgJ3JvdW5kJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZztcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludCwgcmVjdGFuZ2xlLCBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRUYWJsZSwgb3B0aW9ucz86IFBsYWl0RHJhd1NoYXBlVGV4dCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5rZXkpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjZWxsID0gZ2V0Q2VsbFdpdGhQb2ludHMob3B0aW9ucz8uYm9hcmQhLCBlbGVtZW50LCBvcHRpb25zIS5rZXkpO1xuICAgICAgICAgICAgICAgIGlmIChjZWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChQbGFpdFRhYmxlRWxlbWVudC5pc1ZlcnRpY2FsVGV4dChjZWxsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdldFZlcnRpY2FsVGV4dFJlY3RhbmdsZShjZWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRIb3Jpem9udGFsVGV4dFJlY3RhbmdsZShjZWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgeTogMCxcbiAgICAgICAgICAgIHdpZHRoOiAwLFxuICAgICAgICAgICAgaGVpZ2h0OiAwXG4gICAgICAgIH07XG4gICAgfVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFZlcnRpY2FsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aDogd2lkdGggPiAwID8gd2lkdGggOiAwLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHg6IGNlbGxSZWN0YW5nbGUueCAtIHdpZHRoIC8gMiArIGNlbGxSZWN0YW5nbGUud2lkdGggLyAyLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIb3Jpem9udGFsVGV4dFJlY3RhbmdsZShjZWxsOiBQbGFpdFRhYmxlQ2VsbFdpdGhQb2ludHMpIHtcbiAgICBjb25zdCBjZWxsUmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGNlbGwucG9pbnRzKTtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGNlbGwpO1xuICAgIGNvbnN0IGhlaWdodCA9IGNlbGwudGV4dEhlaWdodCB8fCAwO1xuICAgIGNvbnN0IHdpZHRoID0gY2VsbFJlY3RhbmdsZS53aWR0aCAtIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKiAyIC0gc3Ryb2tlV2lkdGggKiAyO1xuICAgIHJldHVybiB7XG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgeDogY2VsbFJlY3RhbmdsZS54ICsgU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCArIHN0cm9rZVdpZHRoLFxuICAgICAgICB5OiBjZWxsUmVjdGFuZ2xlLnkgKyAoY2VsbFJlY3RhbmdsZS5oZWlnaHQgLSBoZWlnaHQpIC8gMlxuICAgIH07XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy9lbmdpbmVzL3RhYmxlL3RhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFTLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzFFLE9BQU8sRUFBK0QsaUJBQWlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDRDQUE0QyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFeEgsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFpRTtJQUNyRixJQUFJLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLFlBQXFCLEVBQUUsT0FBK0I7UUFDdEcsTUFBTSxDQUFDLEdBQUcsT0FBTyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0QsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFnQixDQUFDLENBQUM7WUFDcEYsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDYixNQUFNLEVBQUUsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN6QyxNQUFNLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsU0FBUyxDQUFDO2dCQUMxQyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMs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LENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTTtRQUNOLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxDQUFDO1FBQ3hELENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO0tBQzNELENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLElBQThCO0lBQ3JFLE1BQU0sYUFBYSxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEUsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxDQUFDLENBQUM7SUFDcEMsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsV0FBVyxHQUFHLENBQUMsQ0FBQztJQUM3RixPQUFPO1FBQ0gsTUFBTTtRQUNOLEtBQUssRUFBRSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLEdBQUcsV0FBVztRQUNyRSxDQUFDLEVBQUUsYUFBYSxDQUFDLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQztLQUMzRCxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFJlY3RhbmdsZUNsaWVudCwgUG9pbnQsIGNyZWF0ZUcsIGRyYXdMaW5lLCBzZXRTdHJva2VMaW5lY2FwLCBkcmF3UmVjdGFuZ2xlLCBBQ1RJVkVfU1RST0tFX1dJRFRIIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuaW1wb3J0IHsgZ2V0Q2VsbHNXaXRoUG9pbnRzLCBnZXRDZWxsV2l0aFBvaW50cyB9IGZyb20gJy4uLy4uL3V0aWxzL3RhYmxlJztcbmltcG9ydCB7IFNoYXBlRW5naW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBEcmF3VGV4dEluZm8gfSBmcm9tICcuLi8uLi9nZW5lcmF0b3JzL3RleHQuZ2VuZXJhdG9yJztcbmltcG9ydCB7IFBsYWl0VGFibGUsIFBsYWl0VGFibGVDZWxsV2l0aFBvaW50cywgUGxhaXRUYWJsZURyYXdPcHRpb25zLCBQbGFpdFRhYmxlRWxlbWVudCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvdGFibGUnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi8uLi91dGlscyc7XG5pbXBvcnQgeyBTaGFwZURlZmF1bHRTcGFjZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZSwgZ2V0Um91bmRSZWN0YW5nbGVSYWRpdXMgfSBmcm9tICcuLi9iYXNpYy1zaGFwZXMvcm91bmQtcmVjdGFuZ2xlJztcblxuZXhwb3J0IGNvbnN0IFRhYmxlRW5naW5lOiBTaGFwZUVuZ2luZTxQbGFpdFRhYmxlLCBQbGFpdFRhYmxlRHJhd09wdGlvbnMsIERyYXdUZXh0SW5mbz4gPSB7XG4gICAgZHJhdyhib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHJvdWdoT3B0aW9uczogT3B0aW9ucywgb3B0aW9ucz86IFBsYWl0VGFibGVEcmF3T3B0aW9ucykge1xuICAgICAgICBjb25zdCBnID0gY3JlYXRlRygpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgcG9pbnRDZWxscyA9IGdldENlbGxzV2l0aFBvaW50cyhib2FyZCwgeyAuLi5vcHRpb25zPy5lbGVtZW50IH0gYXMgUGxhaXRUYWJsZSk7XG4gICAgICAgICAgICBpZiAocG9pbnRDZWxscykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJzID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgY29uc3QgdGFibGVUb3BCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCArIHdpZHRoLCB5XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICBjb25zdCB0YWJsZUxlZnRCb3JkZXIgPSBkcmF3TGluZShycywgW3gsIHldLCBbeCwgeSArIGhlaWdodF0sIHJvdWdoT3B0aW9ucyk7XG4gICAgICAgICAgICAgICAgZy5hcHBlbmQodGFibGVUb3BCb3JkZXIsIHRhYmxlTGVmdEJvcmRlcik7XG4gICAgICAgICAgICAgICAgcG9pbnRDZWxscy5mb3JFYWNoKGNlbGwgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoY2VsbC5wb2ludHMhKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0gPSByZWN0YW5nbGU7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNlbGxSZWN0YW5nbGUgPSBkcmF3UmVjdGFuZ2xlKFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9hcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeDogeCArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgeTogeSArIEFDVElWRV9TVFJPS0VfV0lEVEgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoIC0gQUNUSVZFX1NUUk9LRV9XSURUSCAqIDIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQgLSBBQ1RJVkVfU1RST0tFX1dJRFRIICogMlxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHsgZmlsbDogY2VsbC5maWxsLCBmaWxsU3R5bGU6ICdzb2xpZCcsIHN0cm9rZVdpZHRoOiAwIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbFJpZ2h0Qm9yZGVyID0gZHJhd0xpbmUocnMsIFt4ICsgd2lkdGgsIHldLCBbeCArIHdpZHRoLCB5ICsgaGVpZ2h0XSwgcm91Z2hPcHRpb25zKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2VsbEJvdHRvbUJvcmRlciA9IGRyYXdMaW5lKHJzLCBbeCwgeSArIGhlaWdodF0sIFt4ICsgd2lkdGgsIHkgKyBoZWlnaHRdLCByb3VnaE9wdGlvbnMpO1xuICAgICAgICAgICAgICAgICAgICBnLmFwcGVuZChjZWxsUmVjdGFuZ2xlLCBjZWxsUmlnaHRCb3JkZXIsIGNlbGxCb3R0b21Cb3JkZXIpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHNldFN0cm9rZUxpbmVjYXAoZywgJ3JvdW5kJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZztcbiAgICB9LFxuICAgIGlzSW5zaWRlUG9pbnQocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIHBvaW50OiBQb2ludCkge1xuICAgICAgICBjb25zdCByYW5nZVJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSk7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQocmVjdGFuZ2xlLCByYW5nZVJlY3RhbmdsZSk7XG4gICAgfSxcbiAgICBnZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQpIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb3JuZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldE5lYXJlc3RQb2ludChyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCwgcG9pbnQ6IFBvaW50KSB7XG4gICAgICAgIHJldHVybiBnZXROZWFyZXN0UG9pbnRCZXR3ZWVuUG9pbnRBbmRSb3VuZFJlY3RhbmdsZShwb2ludCwgcmVjdGFuZ2xlLCBnZXRSb3VuZFJlY3RhbmdsZVJhZGl1cyhyZWN0YW5nbGUpKTtcbiAgICB9LFxuICAgIGdldENvbm5lY3RvclBvaW50cyhyZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCkge1xuICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmdldEVkZ2VDZW50ZXJQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9LFxuICAgIGdldFRleHRSZWN0YW5nbGUoZWxlbWVudDogUGxhaXRUYWJsZSwgb3B0aW9ucz86IERyYXdUZXh0SW5mbykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5pZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNlbGwgPSBnZXRDZWxsV2l0aFBvaW50cyhvcHRpb25zPy5ib2FyZCEsIGVsZW1lbnQsIG9wdGlvbnMhLmlkKTtcbiAgICAgICAgICAgICAgICBpZiAoY2VsbCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoUGxhaXRUYWJsZUVsZW1lbnQuaXNWZXJ0aWNhbFRleHQoY2VsbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRWZXJ0aWNhbFRleHRSZWN0YW5nbGUoY2VsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0SG9yaXpvbnRhbFRleHRSZWN0YW5nbGUoY2VsbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogMCxcbiAgICAgICAgICAgIHk6IDAsXG4gICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgIGhlaWdodDogMFxuICAgICAgICB9O1xuICAgIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRWZXJ0aWNhbFRleHRSZWN0YW5nbGUoY2VsbDogUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzKSB7XG4gICAgY29uc3QgY2VsbFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsLnBvaW50cyk7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChjZWxsKTtcbiAgICBjb25zdCBoZWlnaHQgPSBjZWxsLnRleHRIZWlnaHQgfHwgMDtcbiAgICBjb25zdCB3aWR0aCA9IGNlbGxSZWN0YW5nbGUuaGVpZ2h0IC0gU2hhcGVEZWZhdWx0U3BhY2UucmVjdGFuZ2xlQW5kVGV4dCAqIDIgLSBzdHJva2VXaWR0aCAqIDI7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgd2lkdGg6IHdpZHRoID4gMCA/IHdpZHRoIDogMCxcbiAgICAgICAgaGVpZ2h0LFxuICAgICAgICB4OiBjZWxsUmVjdGFuZ2xlLnggLSB3aWR0aCAvIDIgKyBjZWxsUmVjdGFuZ2xlLndpZHRoIC8gMixcbiAgICAgICAgeTogY2VsbFJlY3RhbmdsZS55ICsgKGNlbGxSZWN0YW5nbGUuaGVpZ2h0IC0gaGVpZ2h0KSAvIDJcbiAgICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SG9yaXpvbnRhbFRleHRSZWN0YW5nbGUoY2VsbDogUGxhaXRUYWJsZUNlbGxXaXRoUG9pbnRzKSB7XG4gICAgY29uc3QgY2VsbFJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhjZWxsLnBvaW50cyk7XG4gICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChjZWxsKTtcbiAgICBjb25zdCBoZWlnaHQgPSBjZWxsLnRleHRIZWlnaHQgfHwgMDtcbiAgICBjb25zdCB3aWR0aCA9IGNlbGxSZWN0YW5nbGUud2lkdGggLSBTaGFwZURlZmF1bHRTcGFjZS5yZWN0YW5nbGVBbmRUZXh0ICogMiAtIHN0cm9rZVdpZHRoICogMjtcbiAgICByZXR1cm4ge1xuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHdpZHRoOiB3aWR0aCA+IDAgPyB3aWR0aCA6IDAsXG4gICAgICAgIHg6IGNlbGxSZWN0YW5nbGUueCArIFNoYXBlRGVmYXVsdFNwYWNlLnJlY3RhbmdsZUFuZFRleHQgKyBzdHJva2VXaWR0aCxcbiAgICAgICAgeTogY2VsbFJlY3RhbmdsZS55ICsgKGNlbGxSZWN0YW5nbGUuaGVpZ2h0IC0gaGVpZ2h0KSAvIDJcbiAgICB9O1xufVxuIl19