@plait/draw 0.56.2 → 0.58.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 (146) hide show
  1. package/constants/draw.d.ts +1 -0
  2. package/constants/geometry.d.ts +82 -2
  3. package/constants/index.d.ts +1 -0
  4. package/constants/pointer.d.ts +4 -2
  5. package/engines/flowchart/display.d.ts +4 -0
  6. package/engines/index.d.ts +3 -3
  7. package/engines/table/table.d.ts +16 -0
  8. package/engines/uml/actor.d.ts +2 -0
  9. package/engines/uml/combined-fragment.d.ts +3 -0
  10. package/engines/uml/container.d.ts +2 -0
  11. package/engines/uml/package.d.ts +3 -0
  12. package/esm2022/constants/draw.mjs +2 -0
  13. package/esm2022/constants/geometry.mjs +71 -5
  14. package/esm2022/constants/index.mjs +2 -1
  15. package/esm2022/constants/pointer.mjs +9 -3
  16. package/esm2022/engines/basic-shapes/cloud.mjs +1 -1
  17. package/esm2022/engines/basic-shapes/comment.mjs +1 -1
  18. package/esm2022/engines/basic-shapes/diamond.mjs +2 -2
  19. package/esm2022/engines/basic-shapes/parallelogram.mjs +2 -2
  20. package/esm2022/engines/basic-shapes/pentagon.mjs +1 -1
  21. package/esm2022/engines/basic-shapes/round-comment.mjs +2 -2
  22. package/esm2022/engines/basic-shapes/star.mjs +1 -1
  23. package/esm2022/engines/basic-shapes/trapezoid.mjs +2 -2
  24. package/esm2022/engines/basic-shapes/triangle.mjs +2 -2
  25. package/esm2022/engines/flowchart/database.mjs +2 -2
  26. package/esm2022/engines/flowchart/display.mjs +74 -0
  27. package/esm2022/engines/flowchart/document.mjs +1 -1
  28. package/esm2022/engines/flowchart/hard-disk.mjs +2 -2
  29. package/esm2022/engines/flowchart/internal-storage.mjs +2 -2
  30. package/esm2022/engines/flowchart/manual-input.mjs +2 -2
  31. package/esm2022/engines/flowchart/manual-loop.mjs +2 -2
  32. package/esm2022/engines/flowchart/merge.mjs +1 -1
  33. package/esm2022/engines/flowchart/multi-document.mjs +1 -1
  34. package/esm2022/engines/flowchart/note-curly-left.mjs +2 -2
  35. package/esm2022/engines/flowchart/note-curly-right.mjs +2 -2
  36. package/esm2022/engines/flowchart/note-square.mjs +1 -1
  37. package/esm2022/engines/flowchart/off-page.mjs +2 -2
  38. package/esm2022/engines/flowchart/or.mjs +1 -8
  39. package/esm2022/engines/flowchart/predefined-process.mjs +1 -1
  40. package/esm2022/engines/flowchart/summing-junction.mjs +1 -8
  41. package/esm2022/engines/index.mjs +20 -5
  42. package/esm2022/engines/table/table.mjs +72 -0
  43. package/esm2022/engines/uml/actor.mjs +102 -0
  44. package/esm2022/engines/uml/combined-fragment.mjs +66 -0
  45. package/esm2022/engines/uml/container.mjs +44 -0
  46. package/esm2022/engines/uml/package.mjs +75 -0
  47. package/esm2022/generators/geometry-shape.generator.mjs +3 -3
  48. package/esm2022/generators/index.mjs +7 -0
  49. package/esm2022/generators/line-active.generator.mjs +3 -3
  50. package/esm2022/generators/line-auto-complete.generator.mjs +1 -1
  51. package/esm2022/generators/single-text.generator.mjs +16 -0
  52. package/esm2022/generators/table.generator.mjs +20 -0
  53. package/esm2022/generators/text.generator.mjs +134 -0
  54. package/esm2022/geometry.component.mjs +64 -77
  55. package/esm2022/image.component.mjs +11 -28
  56. package/esm2022/interfaces/element.mjs +2 -1
  57. package/esm2022/interfaces/engine.mjs +2 -0
  58. package/esm2022/interfaces/geometry.mjs +24 -1
  59. package/esm2022/interfaces/image.mjs +1 -1
  60. package/esm2022/interfaces/index.mjs +27 -4
  61. package/esm2022/interfaces/line.mjs +1 -1
  62. package/esm2022/interfaces/table.mjs +9 -0
  63. package/esm2022/line.component.mjs +9 -26
  64. package/esm2022/plugins/with-draw-fragment.mjs +3 -1
  65. package/esm2022/plugins/with-draw-hotkey.mjs +12 -3
  66. package/esm2022/plugins/with-draw-resize.mjs +1 -1
  67. package/esm2022/plugins/with-draw.mjs +7 -2
  68. package/esm2022/plugins/with-geometry-create.mjs +2 -1
  69. package/esm2022/plugins/with-geometry-resize.mjs +1 -1
  70. package/esm2022/plugins/with-line-auto-complete-reaction.mjs +2 -2
  71. package/esm2022/plugins/with-line-bound-reaction.mjs +3 -4
  72. package/esm2022/plugins/with-line-create.mjs +3 -3
  73. package/esm2022/plugins/with-line-resize.mjs +3 -3
  74. package/esm2022/plugins/with-swimlane-create.mjs +132 -0
  75. package/esm2022/plugins/with-swimlane.mjs +21 -0
  76. package/esm2022/plugins/with-table-resize.mjs +130 -0
  77. package/esm2022/plugins/with-table.mjs +60 -0
  78. package/esm2022/public-api.mjs +2 -1
  79. package/esm2022/table.component.mjs +136 -0
  80. package/esm2022/transforms/geometry-text.mjs +6 -3
  81. package/esm2022/transforms/geometry.mjs +3 -2
  82. package/esm2022/transforms/index.mjs +11 -2
  83. package/esm2022/transforms/multi-text-geometry-text.mjs +15 -0
  84. package/esm2022/transforms/swimlane.mjs +97 -0
  85. package/esm2022/transforms/table-text.mjs +44 -0
  86. package/esm2022/utils/clipboard.mjs +15 -2
  87. package/esm2022/utils/common.mjs +130 -0
  88. package/esm2022/utils/geometry.mjs +49 -63
  89. package/esm2022/utils/hit.mjs +47 -18
  90. package/esm2022/utils/index.mjs +4 -1
  91. package/esm2022/utils/line/elbow.mjs +2 -2
  92. package/esm2022/utils/line/line-arrow.mjs +2 -2
  93. package/esm2022/utils/line/line-basic.mjs +4 -4
  94. package/esm2022/utils/line/line-common.mjs +2 -2
  95. package/esm2022/utils/memorize.mjs +7 -1
  96. package/esm2022/utils/multi-text-geometry.mjs +61 -0
  97. package/esm2022/utils/position/geometry.mjs +2 -40
  98. package/esm2022/utils/selected.mjs +14 -1
  99. package/esm2022/utils/shape.mjs +5 -2
  100. package/esm2022/utils/snap-resizing.mjs +7 -7
  101. package/esm2022/utils/style/stroke.mjs +4 -10
  102. package/esm2022/utils/swimlane.mjs +120 -0
  103. package/esm2022/utils/table.mjs +124 -0
  104. package/fesm2022/plait-draw.mjs +4556 -2877
  105. package/fesm2022/plait-draw.mjs.map +1 -1
  106. package/generators/index.d.ts +6 -0
  107. package/generators/line-auto-complete.generator.d.ts +2 -2
  108. package/generators/single-text.generator.d.ts +11 -0
  109. package/generators/table.generator.d.ts +9 -0
  110. package/generators/text.generator.d.ts +43 -0
  111. package/geometry.component.d.ts +12 -17
  112. package/image.component.d.ts +6 -11
  113. package/interfaces/element.d.ts +2 -1
  114. package/interfaces/engine.d.ts +16 -0
  115. package/interfaces/geometry.d.ts +42 -18
  116. package/interfaces/image.d.ts +4 -2
  117. package/interfaces/index.d.ts +12 -3
  118. package/interfaces/line.d.ts +4 -5
  119. package/interfaces/table.d.ts +40 -0
  120. package/line.component.d.ts +5 -10
  121. package/package.json +1 -1
  122. package/plugins/with-swimlane-create.d.ts +8 -0
  123. package/plugins/with-swimlane.d.ts +2 -0
  124. package/plugins/with-table-resize.d.ts +2 -0
  125. package/plugins/with-table.d.ts +6 -0
  126. package/public-api.d.ts +1 -0
  127. package/table.component.d.ts +21 -0
  128. package/transforms/geometry.d.ts +2 -2
  129. package/transforms/index.d.ts +8 -2
  130. package/transforms/multi-text-geometry-text.d.ts +4 -0
  131. package/transforms/swimlane.d.ts +6 -0
  132. package/transforms/table-text.d.ts +4 -0
  133. package/utils/clipboard.d.ts +2 -0
  134. package/utils/common.d.ts +27 -0
  135. package/utils/geometry.d.ts +34 -15
  136. package/utils/hit.d.ts +4 -2
  137. package/utils/index.d.ts +3 -0
  138. package/utils/line/line-common.d.ts +3 -3
  139. package/utils/memorize.d.ts +3 -1
  140. package/utils/multi-text-geometry.d.ts +14 -0
  141. package/utils/position/geometry.d.ts +8 -21
  142. package/utils/selected.d.ts +4 -0
  143. package/utils/shape.d.ts +2 -2
  144. package/utils/style/stroke.d.ts +4 -5
  145. package/utils/swimlane.d.ts +52 -0
  146. package/utils/table.d.ts +26 -0
@@ -1,10 +1,10 @@
1
1
  import { getElementById, RectangleClient, Direction, hasValidAngle, rotatePointsByElement } from '@plait/core';
2
2
  import { getDirectionFactor, rotateVectorAnti90, getDirectionByVector, getOppositeDirection, getDirectionByPointOfRectangle, getSourceAndTargetOuterRectangle, getNextPoint, rotateVector } from '@plait/common';
3
3
  import { BasicShapes, LineHandleKey, LineMarkerType, PlaitLine } from '../../interfaces';
4
- import { getStrokeWidthByElement } from '../style/stroke';
5
4
  import { getEngine } from '../../engines';
6
5
  import { getElementShape } from '../shape';
7
6
  import { getSourceAndTargetRectangle } from './elbow';
7
+ import { getStrokeWidthByElement } from '../common';
8
8
  export const getLineHandleRefPair = (board, element) => {
9
9
  const strokeWidth = getStrokeWidthByElement(element);
10
10
  const sourceBoundElement = element.source.boundId ? getElementById(board, element.source.boundId) : undefined;
@@ -120,4 +120,4 @@ export const getElbowLineRouteOptions = (board, element, handleRefPair) => {
120
120
  targetOuterRectangle
121
121
  };
122
122
  };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9saW5lL2xpbmUtY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxjQUFjLEVBQ2QsZUFBZSxFQUVmLFNBQVMsRUFFVCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsOEJBQThCLEVBQzlCLGdDQUFnQyxFQUNoQyxZQUFZLEVBQ1osWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFvQyxjQUFjLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFJLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQWtCLEVBQXFCLEVBQUU7SUFDN0YsTUFBTSxXQUFXLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDckQsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFnQixLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzdILE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FB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QzFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDbEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQWtCLEVBQUUsYUFBaUMsRUFBRSxFQUFFO0lBQ2pILGFBQWEsR0FBRyxhQUFhLElBQUksb0JBQW9CLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLE1BQU0sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLEdBQUcsMkJBQTJCLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN4RyxNQUFNLEVBQUUsb0JBQW9CLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxnQ0FBZ0MsQ0FBQyxlQUFlLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDMUgsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDL0MsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDL0MsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hHLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN4RyxPQUFPO1FBQ0gsV0FBVztRQUNYLGVBQWU7UUFDZixlQUFlO1FBQ2Ysb0JBQW9CO1FBQ3BCLFdBQVc7UUFDWCxlQUFlO1FBQ2YsZUFBZTtRQUNmLG9CQUFvQjtLQUN2QixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBQb2ludCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIGdldEVsZW1lbnRCeUlkLFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBQb2ludE9mUmVjdGFuZ2xlLFxuICAgIERpcmVjdGlvbixcbiAgICBWZWN0b3IsXG4gICAgaGFzVmFsaWRBbmdsZSxcbiAgICByb3RhdGVQb2ludHNCeUVsZW1lbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHtcbiAgICBnZXREaXJlY3Rpb25GYWN0b3IsXG4gICAgcm90YXRlVmVjdG9yQW50aTkwLFxuICAgIGdldERpcmVjdGlvbkJ5VmVjdG9yLFxuICAgIGdldE9wcG9zaXRlRGlyZWN0aW9uLFxuICAgIGdldERpcmVjdGlvbkJ5UG9pbnRPZlJlY3RhbmdsZSxcbiAgICBnZXRTb3VyY2VBbmRUYXJnZXRPdXRlclJlY3RhbmdsZSxcbiAgICBnZXROZXh0UG9pbnQsXG4gICAgcm90YXRlVmVjdG9yXG59IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgQmFzaWNTaGFwZXMsIExpbmVIYW5kbGVLZXksIExpbmVIYW5kbGVSZWYsIExpbmVIYW5kbGVSZWZQYWlyLCBMaW5lTWFya2VyVHlwZSwgUGxhaXRHZW9tZXRyeSwgUGxhaXRMaW5lIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudCB9IGZyb20gJy4uL3N0eWxlL3N0cm9rZSc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi8uLi9lbmdpbmVzJztcbmltcG9ydCB7IGdldEVsZW1lbnRTaGFwZSB9IGZyb20gJy4uL3NoYXBlJztcbmltcG9ydCB7IGdldFNvdXJjZUFuZFRhcmdldFJlY3RhbmdsZSB9IGZyb20gJy4vZWxib3cnO1xuXG5leHBvcnQgY29uc3QgZ2V0TGluZUhhbmRsZVJlZlBhaXIgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0TGluZSk6IExpbmVIYW5kbGVSZWZQYWlyID0+IHtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHNvdXJjZUJvdW5kRWxlbWVudCA9IGVsZW1lbnQuc291cmNlLmJvdW5kSWQgPyBnZXRFbGVtZW50QnlJZDxQbGFpdEdlb21ldHJ5Pihib2FyZCwgZWxlbWVudC5zb3VyY2UuYm91bmRJZCkgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgdGFyZ2V0Qm91bmRFbGVtZW50ID0gZWxlbWVudC50YXJnZXQuYm91bmRJZCA/IGdldEVsZW1lbnRCeUlkPFBsYWl0R2VvbWV0cnk+KGJvYXJkLCBlbGVtZW50LnRhcmdldC5ib3VuZElkKSA6IHVuZGVmaW5lZDtcbiAgICBsZXQgc291cmNlUG9pbnQgPSBzb3VyY2VCb3VuZEVsZW1lbnQgPyBnZXRDb25uZWN0aW9uUG9pbnQoc291cmNlQm91bmRFbGVtZW50LCBlbGVtZW50LnNvdXJjZS5jb25uZWN0aW9uISkgOiBlbGVtZW50LnBvaW50c1swXTtcbiAgICBsZXQgdGFyZ2V0UG9pbnQgPSB0YXJnZXRCb3VuZEVsZW1lbnRcbiAgICAgICAgPyBnZXRDb25uZWN0aW9uUG9pbnQodGFyZ2V0Qm91bmRFbGVtZW50LCBlbGVtZW50LnRhcmdldC5jb25uZWN0aW9uISlcbiAgICAgICAgOiBlbGVtZW50LnBvaW50c1tlbGVtZW50LnBvaW50cy5sZW5ndGggLSAxXTtcbiAgICBsZXQgc291cmNlRGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uQnlWZWN0b3IoW3RhcmdldFBvaW50WzBdIC0gc291cmNlUG9pbnRbMF0sIHRhcmdldFBvaW50WzFdIC0gc291cmNlUG9pbnRbMV1dKSB8fCBEaXJlY3Rpb24ucmlnaHQ7XG4gICAgbGV0IHRhcmdldERpcmVjdGlvbiA9IGdldE9wcG9zaXRlRGlyZWN0aW9uKHNvdXJjZURpcmVjdGlvbik7XG4gICAgY29uc3Qgc291cmNlRmFjdG9yID0gZ2V0RGlyZWN0aW9uRmFjdG9yKHNvdXJjZURpcmVjdGlvbik7XG4gICAgY29uc3QgdGFyZ2V0RmFjdG9yID0gZ2V0RGlyZWN0aW9uRmFjdG9yKHRhcmdldERpcmVjdGlvbik7XG4gICAgY29uc3Qgc291cmNlSGFuZGxlUmVmOiBMaW5lSGFuZGxlUmVmID0ge1xuICAgICAgICBrZXk6IExpbmVIYW5kbGVLZXkuc291cmNlLFxuICAgICAgICBwb2ludDogc291cmNlUG9pbnQsXG4gICAgICAgIGRpcmVjdGlvbjogc291cmNlRGlyZWN0aW9uLFxuICAgICAgICB2ZWN0b3I6IFtzb3VyY2VGYWN0b3IueCwgc291cmNlRmFjdG9yLnldXG4gICAgfTtcbiAgICBjb25zdCB0YXJnZXRIYW5kbGVSZWY6IExpbmVIYW5kbGVSZWYgPSB7XG4gICAgICAgIGtleTogTGluZUhhbmRsZUtleS50YXJnZXQsXG4gICAgICAgIHBvaW50OiB0YXJnZXRQb2ludCxcbiAgICAgICAgZGlyZWN0aW9uOiB0YXJnZXREaXJlY3Rpb24sXG4gICAgICAgIHZlY3RvcjogW3RhcmdldEZhY3Rvci54LCB0YXJnZXRGYWN0b3IueV1cbiAgICB9O1xuICAgIGlmIChzb3VyY2VCb3VuZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbk9mZnNldCA9IFBsYWl0TGluZS5pc1NvdXJjZU1hcmtPclRhcmdldE1hcmsoZWxlbWVudCwgTGluZU1hcmtlclR5cGUubm9uZSwgTGluZUhhbmRsZUtleS5zb3VyY2UpID8gMCA6IHN0cm9rZVdpZHRoO1xuICAgICAgICBjb25zdCBzb3VyY2VWZWN0b3IgPSBnZXRWZWN0b3JCeUNvbm5lY3Rpb24oc291cmNlQm91bmRFbGVtZW50LCBlbGVtZW50LnNvdXJjZS5jb25uZWN0aW9uISk7XG4gICAgICAgIHNvdXJjZUhhbmRsZVJlZi52ZWN0b3IgPSBzb3VyY2VWZWN0b3I7XG4gICAgICAgIHNvdXJjZUhhbmRsZVJlZi5ib3VuZEVsZW1lbnQgPSBzb3VyY2VCb3VuZEVsZW1lbnQ7XG4gICAgICAgIGlmIChoYXNWYWxpZEFuZ2xlKHNvdXJjZUJvdW5kRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbkJ5VmVjdG9yKHJvdGF0ZVZlY3Rvcihzb3VyY2VWZWN0b3IsIHNvdXJjZUJvdW5kRWxlbWVudC5hbmdsZSkpO1xuICAgICAgICAgICAgc291cmNlRGlyZWN0aW9uID0gZGlyZWN0aW9uID8gZGlyZWN0aW9uIDogc291cmNlRGlyZWN0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uQnlWZWN0b3Ioc291cmNlVmVjdG9yKTtcbiAgICAgICAgICAgIHNvdXJjZURpcmVjdGlvbiA9IGRpcmVjdGlvbiA/IGRpcmVjdGlvbiA6IHNvdXJjZURpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBzb3VyY2VIYW5kbGVSZWYuZGlyZWN0aW9uID0gc291cmNlRGlyZWN0aW9uO1xuICAgICAgICBzb3VyY2VQb2ludCA9IGdldENvbm5lY3Rpb25Qb2ludChzb3VyY2VCb3VuZEVsZW1lbnQsIGVsZW1lbnQuc291cmNlLmNvbm5lY3Rpb24hLCBzb3VyY2VEaXJlY3Rpb24sIGNvbm5lY3Rpb25PZmZzZXQpO1xuICAgICAgICBzb3VyY2VIYW5kbGVSZWYucG9pbnQgPSByb3RhdGVQb2ludHNCeUVsZW1lbnQoc291cmNlUG9pbnQsIHNvdXJjZUJvdW5kRWxlbWVudCkgfHwgc291cmNlUG9pbnQ7XG4gICAgfVxuICAgIGlmICh0YXJnZXRCb3VuZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbk9mZnNldCA9IFBsYWl0TGluZS5pc1NvdXJjZU1hcmtPclRhcmdldE1hcmsoZWxlbWVudCwgTGluZU1hcmtlclR5cGUubm9uZSwgTGluZUhhbmRsZUtleS50YXJnZXQpID8gMCA6IHN0cm9rZVdpZHRoO1xuICAgICAgICBjb25zdCB0YXJnZXRWZWN0b3IgPSBnZXRWZWN0b3JCeUNvbm5lY3Rpb24odGFyZ2V0Qm91bmRFbGVtZW50LCBlbGVtZW50LnRhcmdldC5jb25uZWN0aW9uISk7XG4gICAgICAgIHRhcmdldEhhbmRsZVJlZi52ZWN0b3IgPSB0YXJnZXRWZWN0b3I7XG4gICAgICAgIHRhcmdldEhhbmRsZVJlZi5ib3VuZEVsZW1lbnQgPSB0YXJnZXRCb3VuZEVsZW1lbnQ7XG4gICAgICAgIGlmIChoYXNWYWxpZEFuZ2xlKHRhcmdldEJvdW5kRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbkJ5VmVjdG9yKHJvdGF0ZVZlY3Rvcih0YXJnZXRWZWN0b3IsIHRhcmdldEJvdW5kRWxlbWVudC5hbmdsZSkpO1xuICAgICAgICAgICAgdGFyZ2V0RGlyZWN0aW9uID0gZGlyZWN0aW9uID8gZGlyZWN0aW9uIDogdGFyZ2V0RGlyZWN0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uQnlWZWN0b3IodGFyZ2V0VmVjdG9yKTtcbiAgICAgICAgICAgIHRhcmdldERpcmVjdGlvbiA9IGRpcmVjdGlvbiA/IGRpcmVjdGlvbiA6IHRhcmdldERpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICB0YXJnZXRIYW5kbGVSZWYuZGlyZWN0aW9uID0gdGFyZ2V0RGlyZWN0aW9uO1xuICAgICAgICB0YXJnZXRQb2ludCA9IGdldENvbm5lY3Rpb25Qb2ludCh0YXJnZXRCb3VuZEVsZW1lbnQsIGVsZW1lbnQudGFyZ2V0LmNvbm5lY3Rpb24hLCB0YXJnZXREaXJlY3Rpb24sIGNvbm5lY3Rpb25PZmZzZXQpO1xuICAgICAgICB0YXJnZXRIYW5kbGVSZWYucG9pbnQgPSByb3RhdGVQb2ludHNCeUVsZW1lbnQodGFyZ2V0UG9pbnQsIHRhcmdldEJvdW5kRWxlbWVudCkgfHwgdGFyZ2V0UG9pbnQ7XG4gICAgfVxuICAgIHJldHVybiB7IHNvdXJjZTogc291cmNlSGFuZGxlUmVmLCB0YXJnZXQ6IHRhcmdldEhhbmRsZVJlZiB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENvbm5lY3Rpb25Qb2ludCA9IChnZW9tZXRyeTogUGxhaXRHZW9tZXRyeSwgY29ubmVjdGlvbjogUG9pbnQsIGRpcmVjdGlvbj86IERpcmVjdGlvbiwgZGVsdGE/OiBudW1iZXIpOiBQb2ludCA9PiB7XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGdlb21ldHJ5LnBvaW50cyk7XG4gICAgaWYgKGRpcmVjdGlvbiAmJiBkZWx0YSkge1xuICAgICAgICBjb25zdCBkaXJlY3Rpb25GYWN0b3IgPSBnZXREaXJlY3Rpb25GYWN0b3IoZGlyZWN0aW9uKTtcbiAgICAgICAgY29uc3QgcG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgY29ubmVjdGlvbik7XG4gICAgICAgIHJldHVybiBbcG9pbnRbMF0gKyBkaXJlY3Rpb25GYWN0b3IueCAqIGRlbHRhLCBwb2ludFsxXSArIGRpcmVjdGlvbkZhY3Rvci55ICogZGVsdGFdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuZ2V0Q29ubmVjdGlvblBvaW50KHJlY3RhbmdsZSwgY29ubmVjdGlvbik7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IGdldFZlY3RvckJ5Q29ubmVjdGlvbiA9IChib3VuZEVsZW1lbnQ6IFBsYWl0R2VvbWV0cnksIGNvbm5lY3Rpb246IFBvaW50T2ZSZWN0YW5nbGUpOiBWZWN0b3IgPT4ge1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhib3VuZEVsZW1lbnQucG9pbnRzKTtcbiAgICBjb25zdCBzaGFwZSA9IGdldEVsZW1lbnRTaGFwZShib3VuZEVsZW1lbnQpO1xuICAgIGNvbnN0IGVuZ2luZSA9IGdldEVuZ2luZShzaGFwZSk7XG4gICAgbGV0IHZlY3RvcjogVmVjdG9yID0gWzAsIDBdO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbkJ5UG9pbnRPZlJlY3RhbmdsZShjb25uZWN0aW9uKTtcbiAgICBpZiAoZGlyZWN0aW9uICYmIGJvdW5kRWxlbWVudC5zaGFwZSAhPT0gQmFzaWNTaGFwZXMuZWxsaXBzZSkge1xuICAgICAgICBjb25zdCBmYWN0b3IgPSBnZXREaXJlY3Rpb25GYWN0b3IoZGlyZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIFtmYWN0b3IueCwgZmFjdG9yLnldO1xuICAgIH1cbiAgICBpZiAoZW5naW5lLmdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludCkge1xuICAgICAgICBjb25zdCBlZGdlID0gZW5naW5lLmdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIGNvbm5lY3Rpb24pO1xuICAgICAgICBpZiAoZWRnZSkge1xuICAgICAgICAgICAgY29uc3QgbGluZVZlY3RvciA9IFtlZGdlWzFdWzBdIC0gZWRnZVswXVswXSwgZWRnZVsxXVsxXSAtIGVkZ2VbMF1bMV1dIGFzIFZlY3RvcjtcbiAgICAgICAgICAgIHJldHVybiByb3RhdGVWZWN0b3JBbnRpOTAobGluZVZlY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuZ2luZS5nZXRUYW5nZW50VmVjdG9yQnlDb25uZWN0aW9uUG9pbnQpIHtcbiAgICAgICAgY29uc3QgbGluZVZlY3RvciA9IGVuZ2luZS5nZXRUYW5nZW50VmVjdG9yQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBjb25uZWN0aW9uKTtcbiAgICAgICAgaWYgKGxpbmVWZWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiByb3RhdGVWZWN0b3JBbnRpOTAobGluZVZlY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZlY3Rvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGJvd0xpbmVSb3V0ZU9wdGlvbnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0TGluZSwgaGFuZGxlUmVmUGFpcj86IExpbmVIYW5kbGVSZWZQYWlyKSA9PiB7XG4gICAgaGFuZGxlUmVmUGFpciA9IGhhbmRsZVJlZlBhaXIgPz8gZ2V0TGluZUhhbmRsZVJlZlBhaXIoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgc291cmNlUmVjdGFuZ2xlLCB0YXJnZXRSZWN0YW5nbGUgfSA9IGdldFNvdXJjZUFuZFRhcmdldFJlY3RhbmdsZShib2FyZCwgZWxlbWVudCwgaGFuZGxlUmVmUGFpcik7XG4gICAgY29uc3QgeyBzb3VyY2VPdXRlclJlY3RhbmdsZSwgdGFyZ2V0T3V0ZXJSZWN0YW5nbGUgfSA9IGdldFNvdXJjZUFuZFRhcmdldE91dGVyUmVjdGFuZ2xlKHNvdXJjZVJlY3RhbmdsZSwgdGFyZ2V0UmVjdGFuZ2xlKTtcbiAgICBjb25zdCBzb3VyY2VQb2ludCA9IGhhbmRsZVJlZlBhaXIuc291cmNlLnBvaW50O1xuICAgIGNvbnN0IHRhcmdldFBvaW50ID0gaGFuZGxlUmVmUGFpci50YXJnZXQucG9pbnQ7XG4gICAgY29uc3QgbmV4dFNvdXJjZVBvaW50ID0gZ2V0TmV4dFBvaW50KHNvdXJjZVBvaW50LCBzb3VyY2VPdXRlclJlY3RhbmdsZSwgaGFuZGxlUmVmUGFpci5zb3VyY2UuZGlyZWN0aW9uKTtcbiAgICBjb25zdCBuZXh0VGFyZ2V0UG9pbnQgPSBnZXROZXh0UG9pbnQodGFyZ2V0UG9pbnQsIHRhcmdldE91dGVyUmVjdGFuZ2xlLCBoYW5kbGVSZWZQYWlyLnRhcmdldC5kaXJlY3Rpb24pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZVBvaW50LFxuICAgICAgICBuZXh0U291cmNlUG9pbnQsXG4gICAgICAgIHNvdXJjZVJlY3RhbmdsZSxcbiAgICAgICAgc291cmNlT3V0ZXJSZWN0YW5nbGUsXG4gICAgICAgIHRhcmdldFBvaW50LFxuICAgICAgICBuZXh0VGFyZ2V0UG9pbnQsXG4gICAgICAgIHRhcmdldFJlY3RhbmdsZSxcbiAgICAgICAgdGFyZ2V0T3V0ZXJSZWN0YW5nbGVcbiAgICB9O1xufTtcbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jb21tb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9saW5lL2xpbmUtY29tbW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxjQUFjLEVBQ2QsZUFBZSxFQUVmLFNBQVMsRUFFVCxhQUFhLEVBQ2IscUJBQXFCLEVBQ3hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsa0JBQWtCLEVBQ2xCLG9CQUFvQixFQUNwQixvQkFBb0IsRUFDcEIsOEJBQThCLEVBQzlCLGdDQUFnQyxFQUNoQyxZQUFZLEVBQ1osWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFvQyxjQUFjLEVBQWlCLFNBQVMsRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUM3SixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ3RELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBa0IsRUFBcUIsRUFBRTtJQUM3RixNQUFNLFdBQVcsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyRCxNQUFNLGtCQUFrQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQW9CLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDakksTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFD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MUMsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBa0IsRUFBRSxhQUFpQyxFQUFFLEVBQUU7SUFDakgsYUFBYSxHQUFHLGFBQWEsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdEUsTUFBTSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsR0FBRywyQkFBMkIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3hHLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLGdDQUFnQyxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUMxSCxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMvQyxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMvQyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsV0FBVyxFQUFFLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDeEcsTUFBTSxlQUFlLEdBQUcsWUFBWSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3hHLE9BQU87UUFDSCxXQUFXO1FBQ1gsZUFBZTtRQUNmLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsV0FBVztRQUNYLGVBQWU7UUFDZixlQUFlO1FBQ2Ysb0JBQW9CO0tBQ3ZCLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFBvaW50LFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgZ2V0RWxlbWVudEJ5SWQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIFBvaW50T2ZSZWN0YW5nbGUsXG4gICAgRGlyZWN0aW9uLFxuICAgIFZlY3RvcixcbiAgICBoYXNWYWxpZEFuZ2xlLFxuICAgIHJvdGF0ZVBvaW50c0J5RWxlbWVudFxufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQge1xuICAgIGdldERpcmVjdGlvbkZhY3RvcixcbiAgICByb3RhdGVWZWN0b3JBbnRpOTAsXG4gICAgZ2V0RGlyZWN0aW9uQnlWZWN0b3IsXG4gICAgZ2V0T3Bwb3NpdGVEaXJlY3Rpb24sXG4gICAgZ2V0RGlyZWN0aW9uQnlQb2ludE9mUmVjdGFuZ2xlLFxuICAgIGdldFNvdXJjZUFuZFRhcmdldE91dGVyUmVjdGFuZ2xlLFxuICAgIGdldE5leHRQb2ludCxcbiAgICByb3RhdGVWZWN0b3Jcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQgeyBCYXNpY1NoYXBlcywgTGluZUhhbmRsZUtleSwgTGluZUhhbmRsZVJlZiwgTGluZUhhbmRsZVJlZlBhaXIsIExpbmVNYXJrZXJUeXBlLCBQbGFpdEdlb21ldHJ5LCBQbGFpdExpbmUsIFBsYWl0U2hhcGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRFbmdpbmUgfSBmcm9tICcuLi8uLi9lbmdpbmVzJztcbmltcG9ydCB7IGdldEVsZW1lbnRTaGFwZSB9IGZyb20gJy4uL3NoYXBlJztcbmltcG9ydCB7IGdldFNvdXJjZUFuZFRhcmdldFJlY3RhbmdsZSB9IGZyb20gJy4vZWxib3cnO1xuaW1wb3J0IHsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQgfSBmcm9tICcuLi9jb21tb24nO1xuXG5leHBvcnQgY29uc3QgZ2V0TGluZUhhbmRsZVJlZlBhaXIgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0TGluZSk6IExpbmVIYW5kbGVSZWZQYWlyID0+IHtcbiAgICBjb25zdCBzdHJva2VXaWR0aCA9IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50KGVsZW1lbnQpO1xuICAgIGNvbnN0IHNvdXJjZUJvdW5kRWxlbWVudCA9IGVsZW1lbnQuc291cmNlLmJvdW5kSWQgPyBnZXRFbGVtZW50QnlJZDxQbGFpdFNoYXBlRWxlbWVudD4oYm9hcmQsIGVsZW1lbnQuc291cmNlLmJvdW5kSWQpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHRhcmdldEJvdW5kRWxlbWVudCA9IGVsZW1lbnQudGFyZ2V0LmJvdW5kSWQgPyBnZXRFbGVtZW50QnlJZDxQbGFpdFNoYXBlRWxlbWVudD4oYm9hcmQsIGVsZW1lbnQudGFyZ2V0LmJvdW5kSWQpIDogdW5kZWZpbmVkO1xuICAgIGxldCBzb3VyY2VQb2ludCA9IHNvdXJjZUJvdW5kRWxlbWVudCA/IGdldENvbm5lY3Rpb25Qb2ludChzb3VyY2VCb3VuZEVsZW1lbnQsIGVsZW1lbnQuc291cmNlLmNvbm5lY3Rpb24hKSA6IGVsZW1lbnQucG9pbnRzWzBdO1xuICAgIGxldCB0YXJnZXRQb2ludCA9IHRhcmdldEJvdW5kRWxlbWVudFxuICAgICAgICA/IGdldENvbm5lY3Rpb25Qb2ludCh0YXJnZXRCb3VuZEVsZW1lbnQsIGVsZW1lbnQudGFyZ2V0LmNvbm5lY3Rpb24hKVxuICAgICAgICA6IGVsZW1lbnQucG9pbnRzW2VsZW1lbnQucG9pbnRzLmxlbmd0aCAtIDFdO1xuICAgIGxldCBzb3VyY2VEaXJlY3Rpb24gPSBnZXREaXJlY3Rpb25CeVZlY3RvcihbdGFyZ2V0UG9pbnRbMF0gLSBzb3VyY2VQb2ludFswXSwgdGFyZ2V0UG9pbnRbMV0gLSBzb3VyY2VQb2ludFsxXV0pIHx8IERpcmVjdGlvbi5yaWdodDtcbiAgICBsZXQgdGFyZ2V0RGlyZWN0aW9uID0gZ2V0T3Bwb3NpdGVEaXJlY3Rpb24oc291cmNlRGlyZWN0aW9uKTtcbiAgICBjb25zdCBzb3VyY2VGYWN0b3IgPSBnZXREaXJlY3Rpb25GYWN0b3Ioc291cmNlRGlyZWN0aW9uKTtcbiAgICBjb25zdCB0YXJnZXRGYWN0b3IgPSBnZXREaXJlY3Rpb25GYWN0b3IodGFyZ2V0RGlyZWN0aW9uKTtcbiAgICBjb25zdCBzb3VyY2VIYW5kbGVSZWY6IExpbmVIYW5kbGVSZWYgPSB7XG4gICAgICAgIGtleTogTGluZUhhbmRsZUtleS5zb3VyY2UsXG4gICAgICAgIHBvaW50OiBzb3VyY2VQb2ludCxcbiAgICAgICAgZGlyZWN0aW9uOiBzb3VyY2VEaXJlY3Rpb24sXG4gICAgICAgIHZlY3RvcjogW3NvdXJjZUZhY3Rvci54LCBzb3VyY2VGYWN0b3IueV1cbiAgICB9O1xuICAgIGNvbnN0IHRhcmdldEhhbmRsZVJlZjogTGluZUhhbmRsZVJlZiA9IHtcbiAgICAgICAga2V5OiBMaW5lSGFuZGxlS2V5LnRhcmdldCxcbiAgICAgICAgcG9pbnQ6IHRhcmdldFBvaW50LFxuICAgICAgICBkaXJlY3Rpb246IHRhcmdldERpcmVjdGlvbixcbiAgICAgICAgdmVjdG9yOiBbdGFyZ2V0RmFjdG9yLngsIHRhcmdldEZhY3Rvci55XVxuICAgIH07XG4gICAgaWYgKHNvdXJjZUJvdW5kRWxlbWVudCkge1xuICAgICAgICBjb25zdCBjb25uZWN0aW9uT2Zmc2V0ID0gUGxhaXRMaW5lLmlzU291cmNlTWFya09yVGFyZ2V0TWFyayhlbGVtZW50LCBMaW5lTWFya2VyVHlwZS5ub25lLCBMaW5lSGFuZGxlS2V5LnNvdXJjZSkgPyAwIDogc3Ryb2tlV2lkdGg7XG4gICAgICAgIGNvbnN0IHNvdXJjZVZlY3RvciA9IGdldFZlY3RvckJ5Q29ubmVjdGlvbihzb3VyY2VCb3VuZEVsZW1lbnQsIGVsZW1lbnQuc291cmNlLmNvbm5lY3Rpb24hKTtcbiAgICAgICAgc291cmNlSGFuZGxlUmVmLnZlY3RvciA9IHNvdXJjZVZlY3RvcjtcbiAgICAgICAgc291cmNlSGFuZGxlUmVmLmJvdW5kRWxlbWVudCA9IHNvdXJjZUJvdW5kRWxlbWVudDtcbiAgICAgICAgaWYgKGhhc1ZhbGlkQW5nbGUoc291cmNlQm91bmRFbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uQnlWZWN0b3Iocm90YXRlVmVjdG9yKHNvdXJjZVZlY3Rvciwgc291cmNlQm91bmRFbGVtZW50LmFuZ2xlISkpO1xuICAgICAgICAgICAgc291cmNlRGlyZWN0aW9uID0gZGlyZWN0aW9uID8gZGlyZWN0aW9uIDogc291cmNlRGlyZWN0aW9uO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgZGlyZWN0aW9uID0gZ2V0RGlyZWN0aW9uQnlWZWN0b3Ioc291cmNlVmVjdG9yKTtcbiAgICAgICAgICAgIHNvdXJjZURpcmVjdGlvbiA9IGRpcmVjdGlvbiA/IGRpcmVjdGlvbiA6IHNvdXJjZURpcmVjdGlvbjtcbiAgICAgICAgfVxuICAgICAgICBzb3VyY2VIYW5kbGVSZWYuZGlyZWN0aW9uID0gc291cmNlRGlyZWN0aW9uO1xuICAgICAgICBzb3VyY2VQb2ludCA9IGdldENvbm5lY3Rpb25Qb2ludChzb3VyY2VCb3VuZEVsZW1lbnQsIGVsZW1lbnQuc291cmNlLmNvbm5lY3Rpb24hLCBzb3VyY2VEaXJlY3Rpb24sIGNvbm5lY3Rpb25PZmZzZXQpO1xuICAgICAgICBzb3VyY2VIYW5kbGVSZWYucG9pbnQgPSByb3RhdGVQb2ludHNCeUVsZW1lbnQoc291cmNlUG9pbnQsIHNvdXJjZUJvdW5kRWxlbWVudCkgfHwgc291cmNlUG9pbnQ7XG4gICAgfVxuICAgIGlmICh0YXJnZXRCb3VuZEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgY29ubmVjdGlvbk9mZnNldCA9IFBsYWl0TGluZS5pc1NvdXJjZU1hcmtPclRhcmdldE1hcmsoZWxlbWVudCwgTGluZU1hcmtlclR5cGUubm9uZSwgTGluZUhhbmRsZUtleS50YXJnZXQpID8gMCA6IHN0cm9rZVdpZHRoO1xuICAgICAgICBjb25zdCB0YXJnZXRWZWN0b3IgPSBnZXRWZWN0b3JCeUNvbm5lY3Rpb24odGFyZ2V0Qm91bmRFbGVtZW50LCBlbGVtZW50LnRhcmdldC5jb25uZWN0aW9uISk7XG4gICAgICAgIHRhcmdldEhhbmRsZVJlZi52ZWN0b3IgPSB0YXJnZXRWZWN0b3I7XG4gICAgICAgIHRhcmdldEhhbmRsZVJlZi5ib3VuZEVsZW1lbnQgPSB0YXJnZXRCb3VuZEVsZW1lbnQ7XG4gICAgICAgIGlmIChoYXNWYWxpZEFuZ2xlKHRhcmdldEJvdW5kRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbkJ5VmVjdG9yKHJvdGF0ZVZlY3Rvcih0YXJnZXRWZWN0b3IsIHRhcmdldEJvdW5kRWxlbWVudC5hbmdsZSEpKTtcbiAgICAgICAgICAgIHRhcmdldERpcmVjdGlvbiA9IGRpcmVjdGlvbiA/IGRpcmVjdGlvbiA6IHRhcmdldERpcmVjdGlvbjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbkJ5VmVjdG9yKHRhcmdldFZlY3Rvcik7XG4gICAgICAgICAgICB0YXJnZXREaXJlY3Rpb24gPSBkaXJlY3Rpb24gPyBkaXJlY3Rpb24gOiB0YXJnZXREaXJlY3Rpb247XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0SGFuZGxlUmVmLmRpcmVjdGlvbiA9IHRhcmdldERpcmVjdGlvbjtcbiAgICAgICAgdGFyZ2V0UG9pbnQgPSBnZXRDb25uZWN0aW9uUG9pbnQodGFyZ2V0Qm91bmRFbGVtZW50LCBlbGVtZW50LnRhcmdldC5jb25uZWN0aW9uISwgdGFyZ2V0RGlyZWN0aW9uLCBjb25uZWN0aW9uT2Zmc2V0KTtcbiAgICAgICAgdGFyZ2V0SGFuZGxlUmVmLnBvaW50ID0gcm90YXRlUG9pbnRzQnlFbGVtZW50KHRhcmdldFBvaW50LCB0YXJnZXRCb3VuZEVsZW1lbnQpIHx8IHRhcmdldFBvaW50O1xuICAgIH1cbiAgICByZXR1cm4geyBzb3VyY2U6IHNvdXJjZUhhbmRsZVJlZiwgdGFyZ2V0OiB0YXJnZXRIYW5kbGVSZWYgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRDb25uZWN0aW9uUG9pbnQgPSAoZ2VvbWV0cnk6IFBsYWl0U2hhcGVFbGVtZW50LCBjb25uZWN0aW9uOiBQb2ludCwgZGlyZWN0aW9uPzogRGlyZWN0aW9uLCBkZWx0YT86IG51bWJlcik6IFBvaW50ID0+IHtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoZ2VvbWV0cnkucG9pbnRzKTtcbiAgICBpZiAoZGlyZWN0aW9uICYmIGRlbHRhKSB7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbkZhY3RvciA9IGdldERpcmVjdGlvbkZhY3RvcihkaXJlY3Rpb24pO1xuICAgICAgICBjb25zdCBwb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBjb25uZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIFtwb2ludFswXSArIGRpcmVjdGlvbkZhY3Rvci54ICogZGVsdGEsIHBvaW50WzFdICsgZGlyZWN0aW9uRmFjdG9yLnkgKiBkZWx0YV07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFJlY3RhbmdsZUNsaWVudC5nZXRDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBjb25uZWN0aW9uKTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0VmVjdG9yQnlDb25uZWN0aW9uID0gKGJvdW5kRWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQsIGNvbm5lY3Rpb246IFBvaW50T2ZSZWN0YW5nbGUpOiBWZWN0b3IgPT4ge1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhib3VuZEVsZW1lbnQucG9pbnRzKTtcbiAgICBjb25zdCBzaGFwZSA9IGdldEVsZW1lbnRTaGFwZShib3VuZEVsZW1lbnQpO1xuICAgIGNvbnN0IGVuZ2luZSA9IGdldEVuZ2luZShzaGFwZSk7XG4gICAgbGV0IHZlY3RvcjogVmVjdG9yID0gWzAsIDBdO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IGdldERpcmVjdGlvbkJ5UG9pbnRPZlJlY3RhbmdsZShjb25uZWN0aW9uKTtcbiAgICBpZiAoZGlyZWN0aW9uICYmIGJvdW5kRWxlbWVudC5zaGFwZSAhPT0gQmFzaWNTaGFwZXMuZWxsaXBzZSkge1xuICAgICAgICBjb25zdCBmYWN0b3IgPSBnZXREaXJlY3Rpb25GYWN0b3IoZGlyZWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIFtmYWN0b3IueCwgZmFjdG9yLnldO1xuICAgIH1cbiAgICBpZiAoZW5naW5lLmdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludCkge1xuICAgICAgICBjb25zdCBlZGdlID0gZW5naW5lLmdldEVkZ2VCeUNvbm5lY3Rpb25Qb2ludChyZWN0YW5nbGUsIGNvbm5lY3Rpb24pO1xuICAgICAgICBpZiAoZWRnZSkge1xuICAgICAgICAgICAgY29uc3QgbGluZVZlY3RvciA9IFtlZGdlWzFdWzBdIC0gZWRnZVswXVswXSwgZWRnZVsxXVsxXSAtIGVkZ2VbMF1bMV1dIGFzIFZlY3RvcjtcbiAgICAgICAgICAgIHJldHVybiByb3RhdGVWZWN0b3JBbnRpOTAobGluZVZlY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVuZ2luZS5nZXRUYW5nZW50VmVjdG9yQnlDb25uZWN0aW9uUG9pbnQpIHtcbiAgICAgICAgY29uc3QgbGluZVZlY3RvciA9IGVuZ2luZS5nZXRUYW5nZW50VmVjdG9yQnlDb25uZWN0aW9uUG9pbnQocmVjdGFuZ2xlLCBjb25uZWN0aW9uKTtcbiAgICAgICAgaWYgKGxpbmVWZWN0b3IpIHtcbiAgICAgICAgICAgIHJldHVybiByb3RhdGVWZWN0b3JBbnRpOTAobGluZVZlY3Rvcik7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZlY3Rvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRFbGJvd0xpbmVSb3V0ZU9wdGlvbnMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0TGluZSwgaGFuZGxlUmVmUGFpcj86IExpbmVIYW5kbGVSZWZQYWlyKSA9PiB7XG4gICAgaGFuZGxlUmVmUGFpciA9IGhhbmRsZVJlZlBhaXIgPz8gZ2V0TGluZUhhbmRsZVJlZlBhaXIoYm9hcmQsIGVsZW1lbnQpO1xuICAgIGNvbnN0IHsgc291cmNlUmVjdGFuZ2xlLCB0YXJnZXRSZWN0YW5nbGUgfSA9IGdldFNvdXJjZUFuZFRhcmdldFJlY3RhbmdsZShib2FyZCwgZWxlbWVudCwgaGFuZGxlUmVmUGFpcik7XG4gICAgY29uc3QgeyBzb3VyY2VPdXRlclJlY3RhbmdsZSwgdGFyZ2V0T3V0ZXJSZWN0YW5nbGUgfSA9IGdldFNvdXJjZUFuZFRhcmdldE91dGVyUmVjdGFuZ2xlKHNvdXJjZVJlY3RhbmdsZSwgdGFyZ2V0UmVjdGFuZ2xlKTtcbiAgICBjb25zdCBzb3VyY2VQb2ludCA9IGhhbmRsZVJlZlBhaXIuc291cmNlLnBvaW50O1xuICAgIGNvbnN0IHRhcmdldFBvaW50ID0gaGFuZGxlUmVmUGFpci50YXJnZXQucG9pbnQ7XG4gICAgY29uc3QgbmV4dFNvdXJjZVBvaW50ID0gZ2V0TmV4dFBvaW50KHNvdXJjZVBvaW50LCBzb3VyY2VPdXRlclJlY3RhbmdsZSwgaGFuZGxlUmVmUGFpci5zb3VyY2UuZGlyZWN0aW9uKTtcbiAgICBjb25zdCBuZXh0VGFyZ2V0UG9pbnQgPSBnZXROZXh0UG9pbnQodGFyZ2V0UG9pbnQsIHRhcmdldE91dGVyUmVjdGFuZ2xlLCBoYW5kbGVSZWZQYWlyLnRhcmdldC5kaXJlY3Rpb24pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHNvdXJjZVBvaW50LFxuICAgICAgICBuZXh0U291cmNlUG9pbnQsXG4gICAgICAgIHNvdXJjZVJlY3RhbmdsZSxcbiAgICAgICAgc291cmNlT3V0ZXJSZWN0YW5nbGUsXG4gICAgICAgIHRhcmdldFBvaW50LFxuICAgICAgICBuZXh0VGFyZ2V0UG9pbnQsXG4gICAgICAgIHRhcmdldFJlY3RhbmdsZSxcbiAgICAgICAgdGFyZ2V0T3V0ZXJSZWN0YW5nbGVcbiAgICB9O1xufTtcbiJdfQ==
@@ -21,6 +21,9 @@ export const getMemorizeKey = (element) => {
21
21
  key = MemorizeKey.line;
22
22
  break;
23
23
  }
24
+ case PlaitDrawElement.isUML(element): {
25
+ key = MemorizeKey.UML;
26
+ }
24
27
  }
25
28
  return key;
26
29
  };
@@ -34,6 +37,9 @@ export const getMemorizedLatestByPointer = (pointer) => {
34
37
  if (PlaitDrawElement.isBasicShape({ shape: pointer })) {
35
38
  memorizeKey = pointer === BasicShapes.text ? MemorizeKey.text : MemorizeKey.basicShape;
36
39
  }
40
+ else if (PlaitDrawElement.isUML({ shape: pointer })) {
41
+ memorizeKey = MemorizeKey.UML;
42
+ }
37
43
  else {
38
44
  memorizeKey = MemorizeKey.flowchart;
39
45
  }
@@ -85,4 +91,4 @@ export const memorizeLatestShape = (board, shape) => {
85
91
  export const getMemorizedLatestShape = (board) => {
86
92
  return memorizedShape.get(board);
87
93
  };
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3JpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9tZW1vcml6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFrQixXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLGNBQWMsR0FBMEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDcEQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNYLEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUM3QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM1QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztJQUNMLENBQUM7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QUMsRUFBRSxDQUFDO0lBQzNFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekMsSUFBSSxLQUFLLEtBQUssV0FBVyxDQUFDLElBQUksSUFBSSxVQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakQsT0FBTztJQUNYLENBQUM7SUFDRCxJQUFJLFVBQVUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7U0FBTSxDQUFDO1FBQ0osSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLGdCQUFnQixFQUFFLENBQUM7WUFDckMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLENBQUM7SUFDTCxDQUFDO0lBQ0QsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QixjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN6RCxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDckMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgQmFzaWNTaGFwZXMsIEdlb21ldHJ5U2hhcGVzLCBNZW1vcml6ZUtleSwgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgZ2V0TWVtb3JpemVkTGF0ZXN0LCBtZW1vcml6ZUxhdGVzdCB9IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgRHJhd1BvaW50ZXJUeXBlIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IEJhc2VPcGVyYXRpb24sIEJhc2VTZXROb2RlT3BlcmF0aW9uLCBOb2RlIH0gZnJvbSAnc2xhdGUnO1xuXG5jb25zdCBTSEFQRV9NQVhfTEVOR1RIID0gNjtcbmNvbnN0IG1lbW9yaXplZFNoYXBlOiBXZWFrTWFwPFBsYWl0Qm9hcmQsIEdlb21ldHJ5U2hhcGVzW10+ID0gbmV3IFdlYWtNYXAoKTtcblxuZXhwb3J0IGNvbnN0IGdldE1lbW9yaXplS2V5ID0gKGVsZW1lbnQ6IFBsYWl0RWxlbWVudCkgPT4ge1xuICAgIGxldCBrZXkgPSAnJztcbiAgICBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgY2FzZSBQbGFpdERyYXdFbGVtZW50LmlzVGV4dChlbGVtZW50KToge1xuICAgICAgICAgICAga2V5ID0gTWVtb3JpemVLZXkudGV4dDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGxhaXREcmF3RWxlbWVudC5pc0Jhc2ljU2hhcGUoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmJhc2ljU2hhcGU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBsYWl0RHJhd0VsZW1lbnQuaXNGbG93Y2hhcnQoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmZsb3djaGFydDtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgUGxhaXREcmF3RWxlbWVudC5pc0xpbmUoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LmxpbmU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ga2V5O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExpbmVNZW1vcml6ZWRMYXRlc3QgPSAoKSA9PiB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IGdldE1lbW9yaXplZExhdGVzdChNZW1vcml6ZUtleS5saW5lKTtcbiAgICBkZWxldGUgcHJvcGVydGllcz8udGV4dDtcbiAgICByZXR1cm4geyAuLi5wcm9wZXJ0aWVzIH0gfHwge307XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVtb3JpemVkTGF0ZXN0QnlQb2ludGVyID0gKHBvaW50ZXI6IERyYXdQb2ludGVyVHlwZSkgPT4ge1xuICAgIGxldCBtZW1vcml6ZUtleSA9ICcnO1xuICAgIGlmIChQbGFpdERyYXdFbGVtZW50LmlzQmFzaWNTaGFwZSh7IHNoYXBlOiBwb2ludGVyIH0pKSB7XG4gICAgICAgIG1lbW9yaXplS2V5ID0gcG9pbnRlciA9PT0gQmFzaWNTaGFwZXMudGV4dCA/IE1lbW9yaXplS2V5LnRleHQgOiBNZW1vcml6ZUtleS5iYXNpY1NoYXBlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIG1lbW9yaXplS2V5ID0gTWVtb3JpemVLZXkuZmxvd2NoYXJ0O1xuICAgIH1cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0geyAuLi5nZXRNZW1vcml6ZWRMYXRlc3QobWVtb3JpemVLZXkpIH0gfHwge307XG4gICAgY29uc3QgdGV4dFByb3BlcnRpZXMgPSB7IC4uLnByb3BlcnRpZXMudGV4dCB9IHx8IHt9O1xuICAgIGRlbGV0ZSBwcm9wZXJ0aWVzLnRleHQ7XG4gICAgcmV0dXJuIHsgdGV4dFByb3BlcnRpZXMsIGdlb21ldHJ5UHJvcGVydGllczogcHJvcGVydGllcyB9O1xufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9yaXplTGF0ZXN0VGV4dCA9IChlbGVtZW50OiBQbGFpdERyYXdFbGVtZW50LCBvcGVyYXRpb25zOiBCYXNlT3BlcmF0aW9uW10pID0+IHtcbiAgICBjb25zdCBtZW1vcml6ZUtleSA9IGdldE1lbW9yaXplS2V5KGVsZW1lbnQpO1xuICAgIGxldCB0ZXh0TWVtb3J5ID0gZ2V0TWVtb3JpemVkTGF0ZXN0KG1lbW9yaXplS2V5KT8udGV4dCB8fCB7fTtcbiAgICBjb25zdCBzZXROb2RlT3BlcmF0aW9uID0gb3BlcmF0aW9ucy5maW5kKG9wZXJhdGlvbiA9PiBvcGVyYXRpb24udHlwZSA9PT0gJ3NldF9ub2RlJyk7XG4gICAgaWYgKHNldE5vZGVPcGVyYXRpb24pIHtcbiAgICAgICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBuZXdQcm9wZXJ0aWVzIH0gPSBzZXROb2RlT3BlcmF0aW9uIGFzIEJhc2VTZXROb2RlT3BlcmF0aW9uO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBuZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IG5ld1Byb3BlcnRpZXNba2V5IGFzIGtleW9mIFBhcnRpYWw8Tm9kZT5dO1xuICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkZWxldGUgdGV4dE1lbW9yeVtrZXldO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0ZXh0TWVtb3J5W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICBpZiAoIW5ld1Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0ZXh0TWVtb3J5W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgbWVtb3JpemVMYXRlc3QobWVtb3JpemVLZXksICd0ZXh0JywgdGV4dE1lbW9yeSk7XG4gICAgfVxufTtcblxuZXhwb3J0IGNvbnN0IG1lbW9yaXplTGF0ZXN0U2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNoYXBlOiBHZW9tZXRyeVNoYXBlcykgPT4ge1xuICAgIGNvbnN0IHNoYXBlcyA9IG1lbW9yaXplZFNoYXBlLmhhcyhib2FyZCkgPyBtZW1vcml6ZWRTaGFwZS5nZXQoYm9hcmQpISA6IFtdO1xuICAgIGNvbnN0IHNoYXBlSW5kZXggPSBzaGFwZXMuaW5kZXhPZihzaGFwZSk7XG4gICAgaWYgKHNoYXBlID09PSBCYXNpY1NoYXBlcy50ZXh0IHx8IHNoYXBlSW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoc2hhcGVJbmRleCAhPT0gLTEpIHtcbiAgICAgICAgc2hhcGVzLnNwbGljZShzaGFwZUluZGV4LCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoc2hhcGVzLmxlbmd0aCA9PT0gU0hBUEVfTUFYX0xFTkdUSCkge1xuICAgICAgICAgICAgc2hhcGVzLnBvcCgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHNoYXBlcy51bnNoaWZ0KHNoYXBlKTtcbiAgICBtZW1vcml6ZWRTaGFwZS5zZXQoYm9hcmQsIHNoYXBlcyk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0TWVtb3JpemVkTGF0ZXN0U2hhcGUgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gbWVtb3JpemVkU2hhcGUuZ2V0KGJvYXJkKTtcbn07XG4iXX0=
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtb3JpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9tZW1vcml6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFrQixXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUluRSxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQztBQUMzQixNQUFNLGNBQWMsR0FBMEMsSUFBSSxPQUFPLEVBQUUsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDcEQsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQ2IsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNYLEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxQyxHQUFHLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUM3QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxHQUFHLEdBQUcsV0FBVyxDQUFDLFNBQVMsQ0FBQztZQUM1QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQyxHQUFHLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztZQUN2QixNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUss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TUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsS0FBcUIsRUFBRSxFQUFFO0lBQzVFLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUMzRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLElBQUksS0FBSyxLQUFLLFdBQVcsQ0FBQyxJQUFJLElBQUksVUFBVSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pELE9BQU87SUFDWCxDQUFDO0lBQ0QsSUFBSSxVQUFVLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO1NBQU0sQ0FBQztRQUNKLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqQixDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsY0FBYyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdEMsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDekQsT0FBTyxjQUFjLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCB9IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7IEJhc2ljU2hhcGVzLCBHZW9tZXRyeVNoYXBlcywgTWVtb3JpemVLZXksIFBsYWl0RHJhd0VsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGdldE1lbW9yaXplZExhdGVzdCwgbWVtb3JpemVMYXRlc3QgfSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IERyYXdQb2ludGVyVHlwZSB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBCYXNlT3BlcmF0aW9uLCBCYXNlU2V0Tm9kZU9wZXJhdGlvbiwgTm9kZSB9IGZyb20gJ3NsYXRlJztcblxuY29uc3QgU0hBUEVfTUFYX0xFTkdUSCA9IDY7XG5jb25zdCBtZW1vcml6ZWRTaGFwZTogV2Vha01hcDxQbGFpdEJvYXJkLCBHZW9tZXRyeVNoYXBlc1tdPiA9IG5ldyBXZWFrTWFwKCk7XG5cbmV4cG9ydCBjb25zdCBnZXRNZW1vcml6ZUtleSA9IChlbGVtZW50OiBQbGFpdEVsZW1lbnQpID0+IHtcbiAgICBsZXQga2V5ID0gJyc7XG4gICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgIGNhc2UgUGxhaXREcmF3RWxlbWVudC5pc1RleHQoZWxlbWVudCk6IHtcbiAgICAgICAgICAgIGtleSA9IE1lbW9yaXplS2V5LnRleHQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBsYWl0RHJhd0VsZW1lbnQuaXNCYXNpY1NoYXBlKGVsZW1lbnQpOiB7XG4gICAgICAgICAgICBrZXkgPSBNZW1vcml6ZUtleS5iYXNpY1NoYXBlO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQbGFpdERyYXdFbGVtZW50LmlzRmxvd2NoYXJ0KGVsZW1lbnQpOiB7XG4gICAgICAgICAgICBrZXkgPSBNZW1vcml6ZUtleS5mbG93Y2hhcnQ7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIFBsYWl0RHJhd0VsZW1lbnQuaXNMaW5lKGVsZW1lbnQpOiB7XG4gICAgICAgICAgICBrZXkgPSBNZW1vcml6ZUtleS5saW5lO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBQbGFpdERyYXdFbGVtZW50LmlzVU1MKGVsZW1lbnQpOiB7XG4gICAgICAgICAgICBrZXkgPSBNZW1vcml6ZUtleS5VTUw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGtleTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRMaW5lTWVtb3JpemVkTGF0ZXN0ID0gKCkgPT4ge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBnZXRNZW1vcml6ZWRMYXRlc3QoTWVtb3JpemVLZXkubGluZSk7XG4gICAgZGVsZXRlIHByb3BlcnRpZXM/LnRleHQ7XG4gICAgcmV0dXJuIHsgLi4ucHJvcGVydGllcyB9IHx8IHt9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldE1lbW9yaXplZExhdGVzdEJ5UG9pbnRlciA9IChwb2ludGVyOiBEcmF3UG9pbnRlclR5cGUpID0+IHtcbiAgICBsZXQgbWVtb3JpemVLZXkgPSAnJztcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0Jhc2ljU2hhcGUoeyBzaGFwZTogcG9pbnRlciB9KSkge1xuICAgICAgICBtZW1vcml6ZUtleSA9IHBvaW50ZXIgPT09IEJhc2ljU2hhcGVzLnRleHQgPyBNZW1vcml6ZUtleS50ZXh0IDogTWVtb3JpemVLZXkuYmFzaWNTaGFwZTtcbiAgICB9IGVsc2UgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNVTUwoeyBzaGFwZTogcG9pbnRlciB9KSkge1xuICAgICAgICBtZW1vcml6ZUtleSA9IE1lbW9yaXplS2V5LlVNTDtcbiAgICB9IGVsc2Uge1xuICAgICAgICBtZW1vcml6ZUtleSA9IE1lbW9yaXplS2V5LmZsb3djaGFydDtcbiAgICB9XG4gICAgY29uc3QgcHJvcGVydGllcyA9IHsgLi4uZ2V0TWVtb3JpemVkTGF0ZXN0KG1lbW9yaXplS2V5KSB9IHx8IHt9O1xuICAgIGNvbnN0IHRleHRQcm9wZXJ0aWVzID0geyAuLi5wcm9wZXJ0aWVzLnRleHQgfSB8fCB7fTtcbiAgICBkZWxldGUgcHJvcGVydGllcy50ZXh0O1xuICAgIHJldHVybiB7IHRleHRQcm9wZXJ0aWVzLCBnZW9tZXRyeVByb3BlcnRpZXM6IHByb3BlcnRpZXMgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBtZW1vcml6ZUxhdGVzdFRleHQgPSA8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RHJhd0VsZW1lbnQ+KGVsZW1lbnQ6IFQsIG9wZXJhdGlvbnM6IEJhc2VPcGVyYXRpb25bXSkgPT4ge1xuICAgIGNvbnN0IG1lbW9yaXplS2V5ID0gZ2V0TWVtb3JpemVLZXkoZWxlbWVudCk7XG4gICAgbGV0IHRleHRNZW1vcnkgPSBnZXRNZW1vcml6ZWRMYXRlc3QobWVtb3JpemVLZXkpPy50ZXh0IHx8IHt9O1xuICAgIGNvbnN0IHNldE5vZGVPcGVyYXRpb24gPSBvcGVyYXRpb25zLmZpbmQob3BlcmF0aW9uID0+IG9wZXJhdGlvbi50eXBlID09PSAnc2V0X25vZGUnKTtcbiAgICBpZiAoc2V0Tm9kZU9wZXJhdGlvbikge1xuICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMsIG5ld1Byb3BlcnRpZXMgfSA9IHNldE5vZGVPcGVyYXRpb24gYXMgQmFzZVNldE5vZGVPcGVyYXRpb247XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIG5ld1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gbmV3UHJvcGVydGllc1trZXkgYXMga2V5b2YgUGFydGlhbDxOb2RlPl07XG4gICAgICAgICAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSB0ZXh0TWVtb3J5W2tleV07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRleHRNZW1vcnlba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgIGlmICghbmV3UHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIHRleHRNZW1vcnlba2V5XTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBtZW1vcml6ZUxhdGVzdChtZW1vcml6ZUtleSwgJ3RleHQnLCB0ZXh0TWVtb3J5KTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgbWVtb3JpemVMYXRlc3RTaGFwZSA9IChib2FyZDogUGxhaXRCb2FyZCwgc2hhcGU6IEdlb21ldHJ5U2hhcGVzKSA9PiB7XG4gICAgY29uc3Qgc2hhcGVzID0gbWVtb3JpemVkU2hhcGUuaGFzKGJvYXJkKSA/IG1lbW9yaXplZFNoYXBlLmdldChib2FyZCkhIDogW107XG4gICAgY29uc3Qgc2hhcGVJbmRleCA9IHNoYXBlcy5pbmRleE9mKHNoYXBlKTtcbiAgICBpZiAoc2hhcGUgPT09IEJhc2ljU2hhcGVzLnRleHQgfHwgc2hhcGVJbmRleCA9PT0gMCkge1xuICAgICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzaGFwZUluZGV4ICE9PSAtMSkge1xuICAgICAgICBzaGFwZXMuc3BsaWNlKHNoYXBlSW5kZXgsIDEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzaGFwZXMubGVuZ3RoID09PSBTSEFQRV9NQVhfTEVOR1RIKSB7XG4gICAgICAgICAgICBzaGFwZXMucG9wKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgc2hhcGVzLnVuc2hpZnQoc2hhcGUpO1xuICAgIG1lbW9yaXplZFNoYXBlLnNldChib2FyZCwgc2hhcGVzKTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNZW1vcml6ZWRMYXRlc3RTaGFwZSA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIHJldHVybiBtZW1vcml6ZWRTaGFwZS5nZXQoYm9hcmQpO1xufTtcbiJdfQ==
@@ -0,0 +1,61 @@
1
+ import { RectangleClient, idCreator } from '@plait/core';
2
+ import { UMLSymbols } from '../interfaces/geometry';
3
+ import { Alignment, buildText } from '@plait/text';
4
+ import { DefaultTextProperty, MultipleTextGeometryTextKeys } from '../constants';
5
+ import { getEngine } from '../engines';
6
+ import { getMemorizedLatestByPointer } from './memorize';
7
+ import { getDefaultGeometryProperty } from './geometry';
8
+ export const isMultipleTextShape = (shape) => {
9
+ return [UMLSymbols.package, UMLSymbols.combinedFragment].includes(shape);
10
+ };
11
+ export const isMultipleTextGeometry = (geometry) => {
12
+ return !!geometry.texts;
13
+ };
14
+ export const getMultipleTextGeometryTextKeys = (shape) => {
15
+ return MultipleTextGeometryTextKeys[shape];
16
+ };
17
+ export const createMultipleTextGeometryElement = (shape, points, options = {}) => {
18
+ const id = idCreator();
19
+ const drawShapeTexts = buildDefaultTextsByShape(shape, id);
20
+ return {
21
+ id,
22
+ type: 'geometry',
23
+ shape,
24
+ angle: 0,
25
+ opacity: 1,
26
+ texts: drawShapeTexts,
27
+ points,
28
+ ...options
29
+ };
30
+ };
31
+ export const buildDefaultTextsByShape = (shape, elementId) => {
32
+ const memorizedLatest = getMemorizedLatestByPointer(shape);
33
+ const textProperties = { ...memorizedLatest.textProperties };
34
+ const alignment = textProperties?.align;
35
+ const textHeight = textProperties?.textHeight || DefaultTextProperty.height;
36
+ delete textProperties?.align;
37
+ delete textProperties?.textHeight;
38
+ const defaultTexts = getDefaultGeometryProperty(shape)?.texts || [];
39
+ const textKeys = getMultipleTextGeometryTextKeys(shape);
40
+ return (textKeys || []).map((textKey) => {
41
+ const text = defaultTexts?.find((item) => item?.key === textKey);
42
+ return {
43
+ key: textKey,
44
+ text: buildText(text?.text || '', alignment || text?.align || Alignment.center, textProperties),
45
+ textHeight: textHeight
46
+ };
47
+ });
48
+ };
49
+ export const getHitText = (element, point) => {
50
+ const engine = getEngine(element.shape);
51
+ const rectangle = RectangleClient.getRectangleByPoints([point, point]);
52
+ let hitText;
53
+ if (engine.getTextRectangle) {
54
+ hitText = element.texts.find(text => {
55
+ const textRectangle = engine.getTextRectangle(element, { key: text.key });
56
+ return RectangleClient.isHit(rectangle, textRectangle);
57
+ });
58
+ }
59
+ return hitText;
60
+ };
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGV4dC1nZW9tZXRyeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3V0aWxzL211bHRpLXRleHQtZ2VvbWV0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFTLGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEUsT0FBTyxFQUVILFVBQVUsRUFJYixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV6RCxPQUFPLEVBQXdCLDBCQUEwQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTlFLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBcUIsRUFBRSxFQUFFO0lBQ3pELE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFtQixDQUFDLENBQUM7QUFDM0YsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxRQUE2QixFQUF5QyxFQUFFO0lBQzNHLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sK0JBQStCLEdBQUcsQ0FBQyxLQUFxQixFQUFFLEVBQUU7SUFDckUsT0FBTyw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBRyxDQUM3QyxLQUFxQixFQUNyQixNQUFzQixFQUN0QixVQUFnQyxFQUFFLEVBQ1QsRUFBRTtJQUMzQixNQUFNLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztJQUN2QixNQUFNLGNBQWMsR0FBeUIsd0JBQXdCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLE9BQU87UUFDSCxFQUFFO1FBQ0YsSUFBSSxFQUFFLFVBQVU7UUFDaEIsS0FBSztRQUNMLEtBQUssRUFBRSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUM7UUFDVixLQUFLLEVBQUUsY0FBYztRQUNyQixNQUFNO1FBQ04sR0FBRyxPQUFPO0tBQ2IsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsS0FBcUIsRUFBRSxTQUFpQixFQUFFLEVBQUU7SUFDakYsTUFBTSxlQUFlLEdBQUcsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsTUFBTSxjQUFjLEdBQUcsRUFBRSxHQUFHLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUM3RCxNQUFNLFNBQVMsR0FBRyxjQUFjLEVBQUUsS0FBSyxDQUFDO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLGNBQWMsRUFBRSxVQUFVLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDO0lBQzVFLE9BQU8sY0FBYyxFQUFFLEtBQUssQ0FBQztJQUM3QixPQUFPLGNBQWMsRUFBRSxVQUFVLENBQUM7SUFDbEMsTUFBTSxZQUFZLEdBQUksMEJBQTBCLENBQUMsS0FBSyxDQUFTLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FBQztJQUM3RSxNQUFNLFFBQVEsR0FBRywrQkFBK0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4RCxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQWUsRUFBRSxFQUFFO1FBQzVDLE1BQU0sSUFBSSxHQUFHLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1FBQ2xGLE9BQU87WUFDSCxHQUFHLEVBQUUsT0FBTztZQUNaLElBQUksRUFBRSxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksSUFBSSxFQUFFLEVBQUUsU0FBUyxJQUFJLElBQUksRUFBRSxLQUFLLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUM7WUFDL0YsVUFBVSxFQUFFLFVBQVU7U0FDekIsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsT0FBa0MsRUFBRSxLQUFZLEVBQUUsRUFBRTtJQUMzRSxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQTRCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN2RSxJQUFJLE9BQU8sQ0FBQztJQUNaLElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDMUIsT0FBTyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ2hDLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxnQkFBaUIsQ0FBQyxPQUFPLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDM0UsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMzRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50LCBpZENyZWF0b3IgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQge1xuICAgIEdlb21ldHJ5U2hhcGVzLFxuICAgIFVNTFN5bWJvbHMsXG4gICAgUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSxcbiAgICBNdWx0aXBsZVRleHRHZW9tZXRyeUNvbW1vblRleHRLZXlzLFxuICAgIFBsYWl0Q29tbW9uR2VvbWV0cnlcbn0gZnJvbSAnLi4vaW50ZXJmYWNlcy9nZW9tZXRyeSc7XG5pbXBvcnQgeyBBbGlnbm1lbnQsIGJ1aWxkVGV4dCB9IGZyb20gJ0BwbGFpdC90ZXh0JztcbmltcG9ydCB7IERlZmF1bHRUZXh0UHJvcGVydHksIE11bHRpcGxlVGV4dEdlb21ldHJ5VGV4dEtleXMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZ2V0RW5naW5lIH0gZnJvbSAnLi4vZW5naW5lcyc7XG5pbXBvcnQgeyBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIgfSBmcm9tICcuL21lbW9yaXplJztcbmltcG9ydCB7IFBsYWl0RHJhd1NoYXBlVGV4dCB9IGZyb20gJy4uL2dlbmVyYXRvcnMvdGV4dC5nZW5lcmF0b3InO1xuaW1wb3J0IHsgR2VvbWV0cnlTdHlsZU9wdGlvbnMsIGdldERlZmF1bHRHZW9tZXRyeVByb3BlcnR5IH0gZnJvbSAnLi9nZW9tZXRyeSc7XG5cbmV4cG9ydCBjb25zdCBpc011bHRpcGxlVGV4dFNoYXBlID0gKHNoYXBlOiBHZW9tZXRyeVNoYXBlcykgPT4ge1xuICAgIHJldHVybiBbVU1MU3ltYm9scy5wYWNrYWdlLCBVTUxTeW1ib2xzLmNvbWJpbmVkRnJhZ21lbnRdLmluY2x1ZGVzKHNoYXBlIGFzIFVNTFN5bWJvbHMpO1xufTtcblxuZXhwb3J0IGNvbnN0IGlzTXVsdGlwbGVUZXh0R2VvbWV0cnkgPSAoZ2VvbWV0cnk6IFBsYWl0Q29tbW9uR2VvbWV0cnkpOiBnZW9tZXRyeSBpcyBQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5ID0+IHtcbiAgICByZXR1cm4gISFnZW9tZXRyeS50ZXh0cztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRNdWx0aXBsZVRleHRHZW9tZXRyeVRleHRLZXlzID0gKHNoYXBlOiBHZW9tZXRyeVNoYXBlcykgPT4ge1xuICAgIHJldHVybiBNdWx0aXBsZVRleHRHZW9tZXRyeVRleHRLZXlzW3NoYXBlXTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVNdWx0aXBsZVRleHRHZW9tZXRyeUVsZW1lbnQgPSAoXG4gICAgc2hhcGU6IEdlb21ldHJ5U2hhcGVzLFxuICAgIHBvaW50czogW1BvaW50LCBQb2ludF0sXG4gICAgb3B0aW9uczogR2VvbWV0cnlTdHlsZU9wdGlvbnMgPSB7fVxuKTogUGxhaXRNdWx0aXBsZVRleHRHZW9tZXRyeSA9PiB7XG4gICAgY29uc3QgaWQgPSBpZENyZWF0b3IoKTtcbiAgICBjb25zdCBkcmF3U2hhcGVUZXh0czogUGxhaXREcmF3U2hhcGVUZXh0W10gPSBidWlsZERlZmF1bHRUZXh0c0J5U2hhcGUoc2hhcGUsIGlkKTtcbiAgICByZXR1cm4ge1xuICAgICAgICBpZCxcbiAgICAgICAgdHlwZTogJ2dlb21ldHJ5JyxcbiAgICAgICAgc2hhcGUsXG4gICAgICAgIGFuZ2xlOiAwLFxuICAgICAgICBvcGFjaXR5OiAxLFxuICAgICAgICB0ZXh0czogZHJhd1NoYXBlVGV4dHMsXG4gICAgICAgIHBvaW50cyxcbiAgICAgICAgLi4ub3B0aW9uc1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGREZWZhdWx0VGV4dHNCeVNoYXBlID0gKHNoYXBlOiBHZW9tZXRyeVNoYXBlcywgZWxlbWVudElkOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBtZW1vcml6ZWRMYXRlc3QgPSBnZXRNZW1vcml6ZWRMYXRlc3RCeVBvaW50ZXIoc2hhcGUpO1xuICAgIGNvbnN0IHRleHRQcm9wZXJ0aWVzID0geyAuLi5tZW1vcml6ZWRMYXRlc3QudGV4dFByb3BlcnRpZXMgfTtcbiAgICBjb25zdCBhbGlnbm1lbnQgPSB0ZXh0UHJvcGVydGllcz8uYWxpZ247XG4gICAgY29uc3QgdGV4dEhlaWdodCA9IHRleHRQcm9wZXJ0aWVzPy50ZXh0SGVpZ2h0IHx8IERlZmF1bHRUZXh0UHJvcGVydHkuaGVpZ2h0O1xuICAgIGRlbGV0ZSB0ZXh0UHJvcGVydGllcz8uYWxpZ247XG4gICAgZGVsZXRlIHRleHRQcm9wZXJ0aWVzPy50ZXh0SGVpZ2h0O1xuICAgIGNvbnN0IGRlZmF1bHRUZXh0cyA9IChnZXREZWZhdWx0R2VvbWV0cnlQcm9wZXJ0eShzaGFwZSkgYXMgYW55KT8udGV4dHMgfHwgW107XG4gICAgY29uc3QgdGV4dEtleXMgPSBnZXRNdWx0aXBsZVRleHRHZW9tZXRyeVRleHRLZXlzKHNoYXBlKTtcbiAgICByZXR1cm4gKHRleHRLZXlzIHx8IFtdKS5tYXAoKHRleHRLZXk6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCB0ZXh0ID0gZGVmYXVsdFRleHRzPy5maW5kKChpdGVtOiB7IGtleTogc3RyaW5nIH0pID0+IGl0ZW0/LmtleSA9PT0gdGV4dEtleSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6IHRleHRLZXksXG4gICAgICAgICAgICB0ZXh0OiBidWlsZFRleHQodGV4dD8udGV4dCB8fCAnJywgYWxpZ25tZW50IHx8IHRleHQ/LmFsaWduIHx8IEFsaWdubWVudC5jZW50ZXIsIHRleHRQcm9wZXJ0aWVzKSxcbiAgICAgICAgICAgIHRleHRIZWlnaHQ6IHRleHRIZWlnaHRcbiAgICAgICAgfTtcbiAgICB9KTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRUZXh0ID0gKGVsZW1lbnQ6IFBsYWl0TXVsdGlwbGVUZXh0R2VvbWV0cnksIHBvaW50OiBQb2ludCkgPT4ge1xuICAgIGNvbnN0IGVuZ2luZSA9IGdldEVuZ2luZTxQbGFpdE11bHRpcGxlVGV4dEdlb21ldHJ5PihlbGVtZW50LnNoYXBlKTtcbiAgICBjb25zdCByZWN0YW5nbGUgPSBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoW3BvaW50LCBwb2ludF0pO1xuICAgIGxldCBoaXRUZXh0O1xuICAgIGlmIChlbmdpbmUuZ2V0VGV4dFJlY3RhbmdsZSkge1xuICAgICAgICBoaXRUZXh0ID0gZWxlbWVudC50ZXh0cy5maW5kKHRleHQgPT4ge1xuICAgICAgICAgICAgY29uc3QgdGV4dFJlY3RhbmdsZSA9IGVuZ2luZS5nZXRUZXh0UmVjdGFuZ2xlIShlbGVtZW50LCB7IGtleTogdGV4dC5rZXkgfSk7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KHJlY3RhbmdsZSwgdGV4dFJlY3RhbmdsZSk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaGl0VGV4dDtcbn07XG4iXX0=
@@ -1,10 +1,5 @@
1
- import { PlaitBoard, RectangleClient, depthFirstRecursion, getIsRecursionFunc, rotatePoints, rotateAntiPointsByElement } from '@plait/core';
1
+ import { RectangleClient, rotatePoints } from '@plait/core';
2
2
  import { RESIZE_HANDLE_DIAMETER, getRectangleResizeHandleRefs, getRotatedResizeCursorClassByAngle, ROTATE_HANDLE_SIZE, ROTATE_HANDLE_DISTANCE_TO_ELEMENT } from '@plait/common';
3
- import { PlaitDrawElement } from '../../interfaces';
4
- import { isHitEdgeOfShape, isInsideOfShape } from '../hit';
5
- import { LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER } from '../../constants/geometry';
6
- import { getNearestPoint } from '../geometry';
7
- import { getHitConnectorPoint } from '../line/line-basic';
8
3
  export const getHitRectangleResizeHandleRef = (board, rectangle, point, angle = 0) => {
9
4
  const centerPoint = RectangleClient.getCenterPoint(rectangle);
10
5
  const resizeHandleRefs = getRectangleResizeHandleRefs(rectangle, RESIZE_HANDLE_DIAMETER);
@@ -24,39 +19,6 @@ export const getHitRectangleResizeHandleRef = (board, rectangle, point, angle =
24
19
  });
25
20
  }
26
21
  };
27
- export const getSnappingGeometry = (board, point) => {
28
- let hitElement = getHitGeometry(board, point);
29
- if (hitElement) {
30
- const ref = getSnappingRef(board, hitElement, point);
31
- if (ref.isHitConnector || ref.isHitEdge) {
32
- return hitElement;
33
- }
34
- }
35
- return null;
36
- };
37
- export const getSnappingRef = (board, hitElement, point) => {
38
- const rotatedPoint = rotateAntiPointsByElement(point, hitElement) || point;
39
- const connectorPoint = getHitConnectorPoint(rotatedPoint, hitElement);
40
- const edgePoint = getNearestPoint(hitElement, rotatedPoint);
41
- const isHitEdge = isHitEdgeOfShape(board, hitElement, rotatedPoint, LINE_SNAPPING_BUFFER);
42
- return { isHitEdge, isHitConnector: !!connectorPoint, connectorPoint, edgePoint };
43
- };
44
- export const getHitGeometry = (board, point, offset = LINE_HIT_GEOMETRY_BUFFER) => {
45
- let hitShape = null;
46
- traverseDrawShapes(board, (element) => {
47
- if (hitShape === null && isInsideOfShape(board, element, rotateAntiPointsByElement(point, element) || point, offset * 2)) {
48
- hitShape = element;
49
- }
50
- });
51
- return hitShape;
52
- };
53
- export const traverseDrawShapes = (board, callback) => {
54
- depthFirstRecursion(board, node => {
55
- if (!PlaitBoard.isBoard(node) && PlaitDrawElement.isShapeElement(node)) {
56
- callback(node);
57
- }
58
- }, getIsRecursionFunc(board), true);
59
- };
60
22
  export const getRotateHandleRectangle = (rectangle) => {
61
23
  return {
62
24
  x: rectangle.x - ROTATE_HANDLE_DISTANCE_TO_ELEMENT - ROTATE_HANDLE_SIZE,
@@ -65,4 +27,4 @@ export const getRotateHandleRectangle = (rectangle) => {
65
27
  height: ROTATE_HANDLE_SIZE
66
28
  };
67
29
  };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9wb3NpdGlvbi9nZW9tZXRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsVUFBVSxFQUVWLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsa0JBQWtCLEVBQ2xCLFlBQVksRUFDWix5QkFBeUIsRUFDNUIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUNILHNCQUFzQixFQUN0Qiw0QkFBNEIsRUFDNUIsa0NBQWtDLEVBQ2xDLGtCQUFrQixFQUNsQixpQ0FBaUMsRUFDcEMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFvQyxNQUFNLGtCQUFrQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRCxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsU0FBMEIsRUFBRSxLQUFZLEVBQUUsUUFBZ0IsQ0FBQyxFQUFFLEVBQUU7SUFDN0gsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RCxNQUFNLGdCQUFnQixHQUFHLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pGLElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxD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Q3BHLG1CQUFtQixDQUNmLEtBQUssRUFDTCxJQUFJLENBQUMsRUFBRTtRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3JFLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQixDQUFDO0lBQ0wsQ0FBQyxFQUNELGtCQUFrQixDQUFDLEtBQUssQ0FBQyxFQUN6QixJQUFJLENBQ1AsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsU0FBMEIsRUFBRSxFQUFFO0lBQ25FLE9BQU87UUFDSCxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxpQ0FBaUMsR0FBRyxrQkFBa0I7UUFDdkUsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sR0FBRyxpQ0FBaUM7UUFDckUsS0FBSyxFQUFFLGtCQUFrQjtRQUN6QixNQUFNLEVBQUUsa0JBQWtCO0tBQzdCLENBQUM7QUFDTixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFuY2VzdG9yLFxuICAgIFBsYWl0Qm9hcmQsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGRlcHRoRmlyc3RSZWN1cnNpb24sXG4gICAgZ2V0SXNSZWN1cnNpb25GdW5jLFxuICAgIHJvdGF0ZVBvaW50cyxcbiAgICByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50XG59IGZyb20gJ0BwbGFpdC9jb3JlJztcbmltcG9ydCB7XG4gICAgUkVTSVpFX0hBTkRMRV9ESUFNRVRFUixcbiAgICBnZXRSZWN0YW5nbGVSZXNpemVIYW5kbGVSZWZzLFxuICAgIGdldFJvdGF0ZWRSZXNpemVDdXJzb3JDbGFzc0J5QW5nbGUsXG4gICAgUk9UQVRFX0hBTkRMRV9TSVpFLFxuICAgIFJPVEFURV9IQU5ETEVfRElTVEFOQ0VfVE9fRUxFTUVOVFxufSBmcm9tICdAcGxhaXQvY29tbW9uJztcbmltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQsIFBsYWl0R2VvbWV0cnksIFBsYWl0U2hhcGVFbGVtZW50IH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBpc0hpdEVkZ2VPZlNoYXBlLCBpc0luc2lkZU9mU2hhcGUgfSBmcm9tICcuLi9oaXQnO1xuaW1wb3J0IHsgTElORV9ISVRfR0VPTUVUUllfQlVGRkVSLCBMSU5FX1NOQVBQSU5HX0JVRkZFUiB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9nZW9tZXRyeSc7XG5pbXBvcnQgeyBnZXROZWFyZXN0UG9pbnQgfSBmcm9tICcuLi9nZW9tZXRyeSc7XG5pbXBvcnQgeyBnZXRIaXRDb25uZWN0b3JQb2ludCB9IGZyb20gJy4uL2xpbmUvbGluZS1iYXNpYyc7XG5cbmV4cG9ydCBjb25zdCBnZXRIaXRSZWN0YW5nbGVSZXNpemVIYW5kbGVSZWYgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBwb2ludDogUG9pbnQsIGFuZ2xlOiBudW1iZXIgPSAwKSA9PiB7XG4gICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQocmVjdGFuZ2xlKTtcbiAgICBjb25zdCByZXNpemVIYW5kbGVSZWZzID0gZ2V0UmVjdGFuZ2xlUmVzaXplSGFuZGxlUmVmcyhyZWN0YW5nbGUsIFJFU0laRV9IQU5ETEVfRElBTUVURVIpO1xuICAgIGlmIChhbmdsZSkge1xuICAgICAgICBjb25zdCByb3RhdGVkUG9pbnQgPSByb3RhdGVQb2ludHMoW3BvaW50XSwgY2VudGVyUG9pbnQsIC1hbmdsZSlbMF07XG4gICAgICAgIGxldCByZXN1bHQgPSByZXNpemVIYW5kbGVSZWZzLmZpbmQocmVzaXplSGFuZGxlUmVmID0+IHtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtyb3RhdGVkUG9pbnQsIHJvdGF0ZWRQb2ludF0pLCByZXNpemVIYW5kbGVSZWYucmVjdGFuZ2xlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5jdXJzb3JDbGFzcyA9IGdldFJvdGF0ZWRSZXNpemVDdXJzb3JDbGFzc0J5QW5nbGUocmVzdWx0LmN1cnNvckNsYXNzLCBhbmdsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzaXplSGFuZGxlUmVmcy5maW5kKHJlc2l6ZUhhbmRsZVJlZiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSksIHJlc2l6ZUhhbmRsZVJlZi5yZWN0YW5nbGUpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U25hcHBpbmdHZW9tZXRyeSA9IChib2FyZDogUGxhaXRCb2FyZCwgcG9pbnQ6IFBvaW50KTogUGxhaXRHZW9tZXRyeSB8IG51bGwgPT4ge1xuICAgIGxldCBoaXRFbGVtZW50OiBQbGFpdFNoYXBlRWxlbWVudCB8IG51bGwgPSBnZXRIaXRHZW9tZXRyeShib2FyZCwgcG9pbnQpO1xuICAgIGlmIChoaXRFbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IHJlZiA9IGdldFNuYXBwaW5nUmVmKGJvYXJkLCBoaXRFbGVtZW50LCBwb2ludCk7XG4gICAgICAgIGlmIChyZWYuaXNIaXRDb25uZWN0b3IgfHwgcmVmLmlzSGl0RWRnZSkge1xuICAgICAgICAgICAgcmV0dXJuIGhpdEVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U25hcHBpbmdSZWYgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGhpdEVsZW1lbnQ6IFBsYWl0U2hhcGVFbGVtZW50LCBwb2ludDogUG9pbnQpID0+IHtcbiAgICBjb25zdCByb3RhdGVkUG9pbnQgPSByb3RhdGVBbnRpUG9pbnRzQnlFbGVtZW50KHBvaW50LCBoaXRFbGVtZW50KSB8fCBwb2ludDtcbiAgICBjb25zdCBjb25uZWN0b3JQb2ludCA9IGdldEhpdENvbm5lY3RvclBvaW50KHJvdGF0ZWRQb2ludCwgaGl0RWxlbWVudCk7XG4gICAgY29uc3QgZWRnZVBvaW50ID0gZ2V0TmVhcmVzdFBvaW50KGhpdEVsZW1lbnQsIHJvdGF0ZWRQb2ludCk7XG4gICAgY29uc3QgaXNIaXRFZGdlID0gaXNIaXRFZGdlT2ZTaGFwZShib2FyZCwgaGl0RWxlbWVudCwgcm90YXRlZFBvaW50LCBMSU5FX1NOQVBQSU5HX0JVRkZFUik7XG4gICAgcmV0dXJuIHsgaXNIaXRFZGdlLCBpc0hpdENvbm5lY3RvcjogISFjb25uZWN0b3JQb2ludCwgY29ubmVjdG9yUG9pbnQsIGVkZ2VQb2ludCB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGdldEhpdEdlb21ldHJ5ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBwb2ludDogUG9pbnQsIG9mZnNldCA9IExJTkVfSElUX0dFT01FVFJZX0JVRkZFUik6IFBsYWl0R2VvbWV0cnkgfCBudWxsID0+IHtcbiAgICBsZXQgaGl0U2hhcGU6IFBsYWl0U2hhcGVFbGVtZW50IHwgbnVsbCA9IG51bGw7XG4gICAgdHJhdmVyc2VEcmF3U2hhcGVzKGJvYXJkLCAoZWxlbWVudDogUGxhaXRTaGFwZUVsZW1lbnQpID0+IHtcbiAgICAgICAgaWYgKGhpdFNoYXBlID09PSBudWxsICYmIGlzSW5zaWRlT2ZTaGFwZShib2FyZCwgZWxlbWVudCwgcm90YXRlQW50aVBvaW50c0J5RWxlbWVudChwb2ludCwgZWxlbWVudCkgfHwgcG9pbnQsIG9mZnNldCAqIDIpKSB7XG4gICAgICAgICAgICBoaXRTaGFwZSA9IGVsZW1lbnQ7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gaGl0U2hhcGU7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhdmVyc2VEcmF3U2hhcGVzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBjYWxsYmFjazogKGVsZW1lbnQ6IFBsYWl0U2hhcGVFbGVtZW50KSA9PiB2b2lkKSA9PiB7XG4gICAgZGVwdGhGaXJzdFJlY3Vyc2lvbjxBbmNlc3Rvcj4oXG4gICAgICAgIGJvYXJkLFxuICAgICAgICBub2RlID0+IHtcbiAgICAgICAgICAgIGlmICghUGxhaXRCb2FyZC5pc0JvYXJkKG5vZGUpICYmIFBsYWl0RHJhd0VsZW1lbnQuaXNTaGFwZUVsZW1lbnQobm9kZSkpIHtcbiAgICAgICAgICAgICAgICBjYWxsYmFjayhub2RlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZ2V0SXNSZWN1cnNpb25GdW5jKGJvYXJkKSxcbiAgICAgICAgdHJ1ZVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Um90YXRlSGFuZGxlUmVjdGFuZ2xlID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogcmVjdGFuZ2xlLnggLSBST1RBVEVfSEFORExFX0RJU1RBTkNFX1RPX0VMRU1FTlQgLSBST1RBVEVfSEFORExFX1NJWkUsXG4gICAgICAgIHk6IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCArIFJPVEFURV9IQU5ETEVfRElTVEFOQ0VfVE9fRUxFTUVOVCxcbiAgICAgICAgd2lkdGg6IFJPVEFURV9IQU5ETEVfU0laRSxcbiAgICAgICAgaGVpZ2h0OiBST1RBVEVfSEFORExFX1NJWkVcbiAgICB9O1xufTtcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VvbWV0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9wb3NpdGlvbi9nZW9tZXRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBSUgsZUFBZSxFQUdmLFlBQVksRUFHZixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ0gsc0JBQXNCLEVBQ3RCLDRCQUE0QixFQUM1QixrQ0FBa0MsRUFDbEMsa0JBQWtCLEVBQ2xCLGlDQUFpQyxFQUVwQyxNQUFNLGVBQWUsQ0FBQztBQWN2QixNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUMxQyxLQUFpQixFQUNqQixTQUEwQixFQUMxQixLQUFZLEVBQ1osUUFBZ0IsQ0FBQyxFQUNVLEVBQUU7SUFDN0IsTUFBTSxXQUFXLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5RCxNQUFNLGdCQUFnQixHQUFHLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3pGLElBQUksS0FBSyxFQUFFLENBQUM7UUFDUixNQUFNLFlBQVksR0FBRyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuRSxJQUFJLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDakQsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoSSxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLENBQUMsV0FBVyxHQUFHLGtDQUFrQyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkYsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDM0MsT0FBTyxlQUFlLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsSCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLFNBQTBCLEVBQUUsRUFBRTtJQUNuRSxPQUFPO1FBQ0gsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsaUNBQWlDLEdBQUcsa0JBQWtCO1FBQ3ZFLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEdBQUcsaUNBQWlDO1FBQ3JFLEtBQUssRUFBRSxrQkFBa0I7UUFDekIsTUFBTSxFQUFFLGtCQUFrQjtLQUM3QixDQUFDO0FBQ04sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBbmNlc3RvcixcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBvaW50LFxuICAgIFJlY3RhbmdsZUNsaWVudCxcbiAgICBkZXB0aEZpcnN0UmVjdXJzaW9uLFxuICAgIGdldElzUmVjdXJzaW9uRnVuYyxcbiAgICByb3RhdGVQb2ludHMsXG4gICAgcm90YXRlQW50aVBvaW50c0J5RWxlbWVudCxcbiAgICBSZXNpemVDdXJzb3JDbGFzc1xufSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQge1xuICAgIFJFU0laRV9IQU5ETEVfRElBTUVURVIsXG4gICAgZ2V0UmVjdGFuZ2xlUmVzaXplSGFuZGxlUmVmcyxcbiAgICBnZXRSb3RhdGVkUmVzaXplQ3Vyc29yQ2xhc3NCeUFuZ2xlLFxuICAgIFJPVEFURV9IQU5ETEVfU0laRSxcbiAgICBST1RBVEVfSEFORExFX0RJU1RBTkNFX1RPX0VMRU1FTlQsXG4gICAgUmVzaXplSGFuZGxlXG59IGZyb20gJ0BwbGFpdC9jb21tb24nO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRHZW9tZXRyeSwgUGxhaXRTaGFwZUVsZW1lbnQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IGlzSGl0RWRnZU9mU2hhcGUsIGlzSW5zaWRlT2ZTaGFwZSB9IGZyb20gJy4uL2hpdCc7XG5pbXBvcnQgeyBMSU5FX0hJVF9HRU9NRVRSWV9CVUZGRVIsIExJTkVfU05BUFBJTkdfQlVGRkVSIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2dlb21ldHJ5JztcbmltcG9ydCB7IGdldE5lYXJlc3RQb2ludCB9IGZyb20gJy4uL2dlb21ldHJ5JztcbmltcG9ydCB7IGdldEhpdENvbm5lY3RvclBvaW50IH0gZnJvbSAnLi4vbGluZS9saW5lLWJhc2ljJztcbmltcG9ydCB7IGdldEhpdFNoYXBlIH0gZnJvbSAnLi4vY29tbW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVIYW5kbGVSZWYge1xuICAgIHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50O1xuICAgIGhhbmRsZTogUmVzaXplSGFuZGxlO1xuICAgIGN1cnNvckNsYXNzOiBSZXNpemVDdXJzb3JDbGFzcztcbn1cblxuZXhwb3J0IGNvbnN0IGdldEhpdFJlY3RhbmdsZVJlc2l6ZUhhbmRsZVJlZiA9IChcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByZWN0YW5nbGU6IFJlY3RhbmdsZUNsaWVudCxcbiAgICBwb2ludDogUG9pbnQsXG4gICAgYW5nbGU6IG51bWJlciA9IDBcbik6IFJlc2l6ZUhhbmRsZVJlZiB8IHVuZGVmaW5lZCA9PiB7XG4gICAgY29uc3QgY2VudGVyUG9pbnQgPSBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQocmVjdGFuZ2xlKTtcbiAgICBjb25zdCByZXNpemVIYW5kbGVSZWZzID0gZ2V0UmVjdGFuZ2xlUmVzaXplSGFuZGxlUmVmcyhyZWN0YW5nbGUsIFJFU0laRV9IQU5ETEVfRElBTUVURVIpO1xuICAgIGlmIChhbmdsZSkge1xuICAgICAgICBjb25zdCByb3RhdGVkUG9pbnQgPSByb3RhdGVQb2ludHMoW3BvaW50XSwgY2VudGVyUG9pbnQsIC1hbmdsZSlbMF07XG4gICAgICAgIGxldCByZXN1bHQgPSByZXNpemVIYW5kbGVSZWZzLmZpbmQocmVzaXplSGFuZGxlUmVmID0+IHtcbiAgICAgICAgICAgIHJldHVybiBSZWN0YW5nbGVDbGllbnQuaXNIaXQoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKFtyb3RhdGVkUG9pbnQsIHJvdGF0ZWRQb2ludF0pLCByZXNpemVIYW5kbGVSZWYucmVjdGFuZ2xlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5jdXJzb3JDbGFzcyA9IGdldFJvdGF0ZWRSZXNpemVDdXJzb3JDbGFzc0J5QW5nbGUocmVzdWx0LmN1cnNvckNsYXNzLCBhbmdsZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzaXplSGFuZGxlUmVmcy5maW5kKHJlc2l6ZUhhbmRsZVJlZiA9PiB7XG4gICAgICAgICAgICByZXR1cm4gUmVjdGFuZ2xlQ2xpZW50LmlzSGl0KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhbcG9pbnQsIHBvaW50XSksIHJlc2l6ZUhhbmRsZVJlZi5yZWN0YW5nbGUpO1xuICAgICAgICB9KTtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Um90YXRlSGFuZGxlUmVjdGFuZ2xlID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgeDogcmVjdGFuZ2xlLnggLSBST1RBVEVfSEFORExFX0RJU1RBTkNFX1RPX0VMRU1FTlQgLSBST1RBVEVfSEFORExFX1NJWkUsXG4gICAgICAgIHk6IHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodCArIFJPVEFURV9IQU5ETEVfRElTVEFOQ0VfVE9fRUxFTUVOVCxcbiAgICAgICAgd2lkdGg6IFJPVEFURV9IQU5ETEVfU0laRSxcbiAgICAgICAgaGVpZ2h0OiBST1RBVEVfSEFORExFX1NJWkVcbiAgICB9O1xufTtcbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { getSelectedElements } from '@plait/core';
2
2
  import { PlaitDrawElement } from '../interfaces';
3
+ import { PlaitTableElement } from '../interfaces/table';
3
4
  export const getSelectedDrawElements = (board, elements) => {
4
5
  const selectedElements = elements?.length ? elements : getSelectedElements(board);
5
6
  return selectedElements.filter(value => PlaitDrawElement.isDrawElement(value));
@@ -16,4 +17,16 @@ export const getSelectedImageElements = (board) => {
16
17
  const selectedElements = getSelectedElements(board).filter(value => PlaitDrawElement.isImage(value));
17
18
  return selectedElements;
18
19
  };
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9zZWxlY3RlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFHM0UsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXlCLEVBQUUsRUFBRTtJQUNwRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQXVCLENBQUM7QUFDekcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDN0QsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQW9CLENBQUM7SUFDM0gsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN6RCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztJQUNuSCxPQUFPLGdCQUFnQixDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzFELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFpQixDQUFDO0lBQ3JILE9BQU8sZ0JBQWdCLENBQUM7QUFDNUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRHZW9tZXRyeSwgUGxhaXRMaW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdEltYWdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbWFnZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZERyYXdFbGVtZW50cyA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM/OiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBlbGVtZW50cz8ubGVuZ3RoID8gZWxlbWVudHMgOiBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKTtcbiAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50cy5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0RyYXdFbGVtZW50KHZhbHVlKSkgYXMgUGxhaXREcmF3RWxlbWVudFtdO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkR2VvbWV0cnlFbGVtZW50cyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0dlb21ldHJ5KHZhbHVlKSkgYXMgUGxhaXRHZW9tZXRyeVtdO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkTGluZUVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpLmZpbHRlcih2YWx1ZSA9PiBQbGFpdERyYXdFbGVtZW50LmlzTGluZSh2YWx1ZSkpIGFzIFBsYWl0TGluZVtdO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFNlbGVjdGVkSW1hZ2VFbGVtZW50cyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHZhbHVlKSkgYXMgUGxhaXRJbWFnZVtdO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzO1xufTtcbiJdfQ==
20
+ export const isSingleSelectSwimlane = (board) => {
21
+ const selectedElements = getSelectedElements(board);
22
+ return selectedElements && selectedElements.length === 1 && PlaitDrawElement.isSwimlane(selectedElements[0]);
23
+ };
24
+ export const isSingleSelectTable = (board) => {
25
+ const selectedElements = getSelectedElements(board);
26
+ return selectedElements && selectedElements.length === 1 && PlaitTableElement.isTable(selectedElements[0]);
27
+ };
28
+ export const getSelectedTableElements = (board, elements) => {
29
+ const selectedElements = elements?.length ? elements : getSelectedElements(board);
30
+ return selectedElements.filter(value => PlaitTableElement.isTable(value));
31
+ };
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9zZWxlY3RlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTRCLG1CQUFtQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFjLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXlCLEVBQUUsRUFBRTtJQUNwRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQXVCLENBQUM7QUFDekcsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDN0QsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQW9CLENBQUM7SUFDM0gsT0FBTyxnQkFBZ0IsQ0FBQztBQUM1QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUN6RCxNQUFNLGdCQUFnQixHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBZ0IsQ0FBQztJQUNuSCxPQUFPLGdCQUFnQixDQUFDO0FBQzVCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQzFELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFpQixDQUFDO0lBQ3JILE9BQU8sZ0JBQWdCLENBQUM7QUFDNUIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxPQUFPLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDakgsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7SUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNwRCxPQUFPLGdCQUFnQixJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDL0csQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXlCLEVBQUUsRUFBRTtJQUNyRixNQUFNLGdCQUFnQixHQUFHLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEYsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQWlCLENBQUM7QUFDOUYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXRCb2FyZCwgUGxhaXRFbGVtZW50LCBnZXRTZWxlY3RlZEVsZW1lbnRzIH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRHZW9tZXRyeSwgUGxhaXRMaW5lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBQbGFpdEltYWdlIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9pbWFnZSc7XG5pbXBvcnQgeyBQbGFpdFRhYmxlLCBQbGFpdFRhYmxlRWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMvdGFibGUnO1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWREcmF3RWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzPzogUGxhaXRFbGVtZW50W10pID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZWxlbWVudHM/Lmxlbmd0aCA/IGVsZW1lbnRzIDogZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCk7XG4gICAgcmV0dXJuIHNlbGVjdGVkRWxlbWVudHMuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNEcmF3RWxlbWVudCh2YWx1ZSkpIGFzIFBsYWl0RHJhd0VsZW1lbnRbXTtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZEdlb21ldHJ5RWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNHZW9tZXRyeSh2YWx1ZSkpIGFzIFBsYWl0R2VvbWV0cnlbXTtcbiAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZExpbmVFbGVtZW50cyA9IChib2FyZDogUGxhaXRCb2FyZCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGVkRWxlbWVudHMgPSBnZXRTZWxlY3RlZEVsZW1lbnRzKGJvYXJkKS5maWx0ZXIodmFsdWUgPT4gUGxhaXREcmF3RWxlbWVudC5pc0xpbmUodmFsdWUpKSBhcyBQbGFpdExpbmVbXTtcbiAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRTZWxlY3RlZEltYWdlRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnRzID0gZ2V0U2VsZWN0ZWRFbGVtZW50cyhib2FyZCkuZmlsdGVyKHZhbHVlID0+IFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZSh2YWx1ZSkpIGFzIFBsYWl0SW1hZ2VbXTtcbiAgICByZXR1cm4gc2VsZWN0ZWRFbGVtZW50cztcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NpbmdsZVNlbGVjdFN3aW1sYW5lID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzICYmIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmIFBsYWl0RHJhd0VsZW1lbnQuaXNTd2ltbGFuZShzZWxlY3RlZEVsZW1lbnRzWzBdKTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc1NpbmdsZVNlbGVjdFRhYmxlID0gKGJvYXJkOiBQbGFpdEJvYXJkKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzICYmIHNlbGVjdGVkRWxlbWVudHMubGVuZ3RoID09PSAxICYmIFBsYWl0VGFibGVFbGVtZW50LmlzVGFibGUoc2VsZWN0ZWRFbGVtZW50c1swXSk7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2VsZWN0ZWRUYWJsZUVsZW1lbnRzID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50cz86IFBsYWl0RWxlbWVudFtdKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50cyA9IGVsZW1lbnRzPy5sZW5ndGggPyBlbGVtZW50cyA6IGdldFNlbGVjdGVkRWxlbWVudHMoYm9hcmQpO1xuICAgIHJldHVybiBzZWxlY3RlZEVsZW1lbnRzLmZpbHRlcih2YWx1ZSA9PiBQbGFpdFRhYmxlRWxlbWVudC5pc1RhYmxlKHZhbHVlKSkgYXMgUGxhaXRUYWJsZVtdO1xufTtcbiJdfQ==
@@ -1,8 +1,11 @@
1
- import { BasicShapes, PlaitDrawElement } from '../interfaces';
1
+ import { BasicShapes, PlaitDrawElement, TableSymbols } from '../interfaces';
2
2
  export const getElementShape = (value) => {
3
3
  if (PlaitDrawElement.isImage(value)) {
4
4
  return BasicShapes.rectangle;
5
5
  }
6
+ if (PlaitDrawElement.isTable(value)) {
7
+ return TableSymbols.table;
8
+ }
6
9
  return value.shape;
7
10
  };
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9zaGFwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVqRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxLQUF3QixFQUFFLEVBQUU7SUFDeEQsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNsQyxPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUM7SUFDakMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQztBQUN2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCYXNpY1NoYXBlcywgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRTaGFwZUVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzJztcblxuZXhwb3J0IGNvbnN0IGdldEVsZW1lbnRTaGFwZSA9ICh2YWx1ZTogUGxhaXRTaGFwZUVsZW1lbnQpID0+IHtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc0ltYWdlKHZhbHVlKSkge1xuICAgICAgICByZXR1cm4gQmFzaWNTaGFwZXMucmVjdGFuZ2xlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUuc2hhcGU7XG59O1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hhcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9kcmF3L3NyYy91dGlscy9zaGFwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFxQixZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBd0IsRUFBRSxFQUFFO0lBQ3hELElBQUksZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEMsT0FBTyxXQUFXLENBQUMsU0FBUyxDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sWUFBWSxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2ljU2hhcGVzLCBQbGFpdERyYXdFbGVtZW50LCBQbGFpdFNoYXBlRWxlbWVudCwgVGFibGVTeW1ib2xzIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjb25zdCBnZXRFbGVtZW50U2hhcGUgPSAodmFsdWU6IFBsYWl0U2hhcGVFbGVtZW50KSA9PiB7XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNJbWFnZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIEJhc2ljU2hhcGVzLnJlY3RhbmdsZTtcbiAgICB9XG4gICAgaWYgKFBsYWl0RHJhd0VsZW1lbnQuaXNUYWJsZSh2YWx1ZSkpIHtcbiAgICAgICAgcmV0dXJuIFRhYmxlU3ltYm9scy50YWJsZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLnNoYXBlO1xufTtcbiJdfQ==
@@ -22,8 +22,8 @@ export function getSnapResizingRefOptions(board, resizeRef, resizeState, resizeO
22
22
  const points = resizeOriginPoint.map(p => {
23
23
  return movePointByZoomAndOriginPoint(p, originPoint, xZoom, yZoom);
24
24
  });
25
- const activeRectangle = getRectangleByAngle(RectangleClient.getRectangleByPoints(points), getSelectionAngle(activeElements)) ||
26
- RectangleClient.getRectangleByPoints(points);
25
+ const rectangle = RectangleClient.getRectangleByPoints(points);
26
+ const activeRectangle = getRectangleByAngle(rectangle, getSelectionAngle(activeElements));
27
27
  const resizeHandlePoint = movePointByZoomAndOriginPoint(handlePoint, originPoint, xZoom, yZoom);
28
28
  const [x, y] = getUnitVectorByPointAndPoint(originPoint, resizeHandlePoint);
29
29
  return {
@@ -151,8 +151,8 @@ function getIsometricLinePoints(rectangle, isHorizontal) {
151
151
  }
152
152
  function drawResizingPointSnapLines(board, activePoints, snapRectangles, resizeSnapOptions, angle) {
153
153
  debugGenerator.isDebug() && debugGenerator.clear();
154
- const activeRectangle = getRectangleByAngle(RectangleClient.getRectangleByPoints(activePoints), angle) ||
155
- RectangleClient.getRectangleByPoints(activePoints);
154
+ const rectangle = RectangleClient.getRectangleByPoints(activePoints);
155
+ const activeRectangle = getRectangleByAngle(rectangle, angle);
156
156
  const { isAspectRatio, directionFactors } = resizeSnapOptions;
157
157
  const drawHorizontal = directionFactors[0] !== 0 || isAspectRatio;
158
158
  const drawVertical = directionFactors[1] !== 0 || isAspectRatio;
@@ -163,8 +163,8 @@ function drawIsometricSnapLines(board, activePoints, snapRectangles, resizeSnapO
163
163
  let heightIsometricPoints = [];
164
164
  const drawHorizontalLine = resizeSnapOptions.directionFactors[0] !== 0 || resizeSnapOptions.isAspectRatio;
165
165
  const drawVerticalLine = resizeSnapOptions.directionFactors[1] !== 0 || resizeSnapOptions.isAspectRatio;
166
- const activeRectangle = getRectangleByAngle(RectangleClient.getRectangleByPoints(activePoints), angle) ||
167
- RectangleClient.getRectangleByPoints(activePoints);
166
+ const rectangle = RectangleClient.getRectangleByPoints(activePoints);
167
+ const activeRectangle = getRectangleByAngle(rectangle, angle);
168
168
  for (let snapRectangle of snapRectangles) {
169
169
  if (activeRectangle.width === snapRectangle.width && drawHorizontalLine) {
170
170
  widthIsometricPoints.push(getIsometricLinePoints(snapRectangle, true));
@@ -182,4 +182,4 @@ function drawIsometricSnapLines(board, activePoints, snapRectangles, resizeSnapO
182
182
  const isometricLines = [...widthIsometricPoints, ...heightIsometricPoints];
183
183
  return drawSolidLines(board, isometricLines);
184
184
  }
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1yZXNpemluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3V0aWxzL3NuYXAtcmVzaXppbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFDNUIsc0JBQXNCLEVBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLSCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUd0QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0YsTUFBTSxRQUFRLEdBQUcsZ0NBQWdDLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBb0I3RCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFFekIsTUFBTSxVQUFVLHlCQUF5QixDQUNyQyxLQUFpQixFQUNqQixTQUEyRCxFQUMzRCxXQUF3QixFQUN4QiwrQkFHQyxFQUNELGFBQXNCLEVBQ3RCLFlBQXFCO0lBRXJCLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsK0JBQStCLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQW1CLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTVHLElBQUks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QWEsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN2QyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3RFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNuRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxHQUFHLHFCQUFxQixDQUFDLENBQUM7SUFDM0UsT0FBTyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFJlc2l6ZVJlZixcbiAgICBSZXNpemVTdGF0ZSxcbiAgICBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCxcbiAgICBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50LFxuICAgIHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemVcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGlvbkZhY3RvcnMsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGNyZWF0ZURlYnVnR2VuZXJhdG9yLFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0aW9uQW5nbGUsXG4gICAgZ2V0UmVjdGFuZ2xlQnlBbmdsZSxcbiAgICBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLFxuICAgIFNuYXBEZWx0YSxcbiAgICBTbmFwUmVmLFxuICAgIGdldFNuYXBSZWN0YW5nbGVzLFxuICAgIFNOQVBfVE9MRVJBTkNFLFxuICAgIGRyYXdTb2xpZExpbmVzLFxuICAgIGRyYXdQb2ludFNuYXBMaW5lcyxcbiAgICBnZXRUcmlwbGVBeGlzLFxuICAgIGdldE1pblBvaW50RGVsdGFcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UmVzaXplWm9vbSwgbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtZHJhdy1yZXNpemUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBkZWJ1Z0tleSA9ICdkZWJ1ZzpwbGFpdDpwb2ludC1mb3ItZ2VvbWV0cnknO1xuZXhwb3J0IGNvbnN0IGRlYnVnR2VuZXJhdG9yID0gY3JlYXRlRGVidWdHZW5lcmF0b3IoZGVidWdLZXkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBSZWYgZXh0ZW5kcyBTbmFwUmVmIHtcbiAgICB4Wm9vbTogbnVtYmVyO1xuICAgIHlab29tOiBudW1iZXI7XG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBPcHRpb25zIHtcbiAgICByZXNpemVQb2ludHM6IFBvaW50W107XG4gICAgYWN0aXZlUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZGlyZWN0aW9uRmFjdG9yczogRGlyZWN0aW9uRmFjdG9ycztcbiAgICBpc0Zyb21Db3JuZXI6IGJvb2xlYW47XG4gICAgaXNBc3BlY3RSYXRpbzogYm9vbGVhbjtcbiAgICByZXNpemVPcmlnaW5Qb2ludD86IFBvaW50W107XG4gICAgb3JpZ2luUG9pbnQ/OiBQb2ludDtcbiAgICBoYW5kbGVQb2ludD86IFBvaW50O1xuICAgIGlzQ3JlYXRlPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRVFVQUxfU1BBQ0lORyA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U25hcFJlc2l6aW5nUmVmT3B0aW9ucyhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByZXNpemVSZWY6IFJlc2l6ZVJlZjxQbGFpdERyYXdFbGVtZW50IHwgUGxhaXREcmF3RWxlbWVudFtdPixcbiAgICByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUsXG4gICAgcmVzaXplT3JpZ2luUG9pbnRBbmRIYW5kbGVQb2ludDoge1xuICAgICAgICBvcmlnaW5Qb2ludDogUG9pbnQ7XG4gICAgICAgIGhhbmRsZVBvaW50OiBQb2ludDtcbiAgICB9LFxuICAgIGlzQXNwZWN0UmF0aW86IGJvb2xlYW4sXG4gICAgaXNGcm9tQ29ybmVyOiBib29sZWFuXG4pOiBSZXNpemVTbmFwT3B0aW9ucyB7XG4gICAgY29uc3QgeyBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQgfSA9IHJlc2l6ZU9yaWdpblBvaW50QW5kSGFuZGxlUG9pbnQ7XG4gICAgY29uc3QgcmVzaXplUG9pbnRzOiBbUG9pbnQsIFBvaW50XSA9IFtyZXNpemVTdGF0ZS5zdGFydFBvaW50LCByZXNpemVTdGF0ZS5lbmRQb2ludF07XG4gICAgY29uc3QgeyB4Wm9vbSwgeVpvb20gfSA9IGdldFJlc2l6ZVpvb20ocmVzaXplUG9pbnRzLCBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQsIGlzRnJvbUNvcm5lciwgaXNBc3BlY3RSYXRpbyk7XG5cbiAgICBsZXQgYWN0aXZlRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdO1xuICAgIGxldCByZXNpemVPcmlnaW5Qb2ludDogUG9pbnRbXSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc2l6ZVJlZi5lbGVtZW50KSkge1xuICAgICAgICBhY3RpdmVFbGVtZW50cyA9IHJlc2l6ZVJlZi5lbGVtZW50O1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCByZXNpemVSZWYuZWxlbWVudCwgZmFsc2UpO1xuICAgICAgICByZXNpemVPcmlnaW5Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhY3RpdmVFbGVtZW50cyA9IFtyZXNpemVSZWYuZWxlbWVudF07XG4gICAgICAgIHJlc2l6ZU9yaWdpblBvaW50ID0gcmVzaXplUmVmLmVsZW1lbnQucG9pbnRzO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50cyA9IHJlc2l6ZU9yaWdpblBvaW50Lm1hcChwID0+IHtcbiAgICAgICAgcmV0dXJuIG1vdmVQb2ludEJ5Wm9vbUFuZE9yaWdpblBvaW50KHAsIG9yaWdpblBvaW50LCB4Wm9vbSwgeVpvb20pO1xuICAgIH0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9XG4gICAgICAgIGdldFJlY3RhbmdsZUJ5QW5nbGUoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHBvaW50cyksIGdldFNlbGVjdGlvbkFuZ2xlKGFjdGl2ZUVsZW1lbnRzKSkgfHxcbiAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHBvaW50cyk7XG4gICAgY29uc3QgcmVzaXplSGFuZGxlUG9pbnQgPSBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChoYW5kbGVQb2ludCwgb3JpZ2luUG9pbnQsIHhab29tLCB5Wm9vbSk7XG4gICAgY29uc3QgW3gsIHldID0gZ2V0VW5pdFZlY3RvckJ5UG9pbnRBbmRQb2ludChvcmlnaW5Qb2ludCwgcmVzaXplSGFuZGxlUG9pbnQpO1xuICAgIHJldHVybiB7XG4gICAgICAgIHJlc2l6ZVBvaW50cyxcbiAgICAgICAgcmVzaXplT3JpZ2luUG9pbnQsXG4gICAgICAgIGFjdGl2ZVJlY3RhbmdsZSxcbiAgICAgICAgb3JpZ2luUG9pbnQsXG4gICAgICAgIGhhbmRsZVBvaW50LFxuICAgICAgICBkaXJlY3Rpb25GYWN0b3JzOiBbZ2V0RGlyZWN0aW9uRmFjdG9yQnlEaXJlY3Rpb25Db21wb25lbnQoeCksIGdldERpcmVjdGlvbkZhY3RvckJ5RGlyZWN0aW9uQ29tcG9uZW50KHkpXSxcbiAgICAgICAgaXNBc3BlY3RSYXRpbyxcbiAgICAgICAgaXNGcm9tQ29ybmVyXG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNuYXBSZXNpemluZ1JlZihib2FyZDogUGxhaXRCb2FyZCwgYWN0aXZlRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdLCByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMpOiBSZXNpemVTbmFwUmVmIHtcbiAgICBjb25zdCBzbmFwRyA9IGNyZWF0ZUcoKTtcbiAgICBjb25zdCBzbmFwUmVjdGFuZ2xlcyA9IGdldFNuYXBSZWN0YW5nbGVzKGJvYXJkLCBhY3RpdmVFbGVtZW50cyk7XG4gICAgbGV0IHNuYXBMaW5lRGVsdGEgPSBnZXRJc29tZXRyaWNMaW5lRGVsdGEoc25hcFJlY3RhbmdsZXMsIHJlc2l6ZVNuYXBPcHRpb25zKTtcbiAgICBpZiAoc25hcExpbmVEZWx0YS5kZWx0YVggPT09IDAgJiYgc25hcExpbmVEZWx0YS5kZWx0YVkgPT09IDApIHtcbiAgICAgICAgc25hcExpbmVEZWx0YSA9IGdldFNuYXBQb2ludERlbHRhKHNuYXBSZWN0YW5nbGVzLCByZXNpemVTbmFwT3B0aW9ucyk7XG4gICAgfVxuICAgIGNvbnN0IGFuZ2xlID0gZ2V0U2VsZWN0aW9uQW5nbGUoYWN0aXZlRWxlbWVudHMpO1xuICAgIGNvbnN0IGFjdGl2ZVBvaW50QW5kWm9vbSA9IGdldEFjdGl2ZVBvaW50QW5kWm9vbShzbmFwTGluZURlbHRhLCByZXNpemVTbmFwT3B0aW9ucywgYW5nbGUpO1xuICAgIGNvbnN0IGlzb21ldHJpY0xpbmVzRyA9IGRyYXdJc29tZXRyaWNTbmFwTGluZXMoYm9hcmQsIGFjdGl2ZVBvaW50QW5kWm9vbS5hY3RpdmVQb2ludHMsIHNuYXBSZWN0YW5nbGVzLCByZXNpemVTbmFwT3B0aW9ucywgYW5nbGUpO1xuICAgIGNvbnN0IHBvaW50TGluZXNHID0gZHJhd1Jlc2l6aW5nUG9pbnRTbmFwTGluZXMoYm9hcmQsIGFjdGl2ZVBvaW50QW5kWm9vbS5hY3RpdmVQb2ludHMsIHNuYXBSZWN0YW5nbGVzLCByZXNpemVTbmFwT3B0aW9ucywgYW5nbGUpO1xuICAgIHNuYXBHLmFwcGVuZChpc29tZXRyaWNMaW5lc0csIHBvaW50TGluZXNHKTtcbiAgICByZXR1cm4geyAuLi5hY3RpdmVQb2ludEFuZFpvb20sIC4uLnNuYXBMaW5lRGVsdGEsIHNuYXBHIH07XG59XG5cbmZ1bmN0aW9uIGdldFNuYXBQb2ludERlbHRhKHNuYXBSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSwgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zKSB7XG4gICAgbGV0IHBvaW50TGluZURlbHRhOiBTbmFwRGVsdGEgPSB7XG4gICAgICAgIGRlbHRhWDogMCxcbiAgICAgICAgZGVsdGFZOiAwXG4gICAgfTtcbiAgICBjb25zdCB7IGlzQXNwZWN0UmF0aW8sIGFjdGl2ZVJlY3RhbmdsZSwgZGlyZWN0aW9uRmFjdG9ycyB9ID0gcmVzaXplU25hcE9wdGlvbnM7XG4gICAgY29uc3QgZHJhd0hvcml6b250YWwgPSBkaXJlY3Rpb25GYWN0b3JzWzBdICE9PSAwIHx8IGlzQXNwZWN0UmF0aW87XG4gICAgY29uc3QgZHJhd1ZlcnRpY2FsID0gZGlyZWN0aW9uRmFjdG9yc1sxXSAhPT0gMCB8fCBpc0FzcGVjdFJhdGlvO1xuXG4gICAgaWYgKGRyYXdIb3Jpem9udGFsKSB7XG4gICAgICAgIGNvbnN0IHhTbmFwQXhpcyA9IGdldFRyaXBsZUF4aXMoYWN0aXZlUmVjdGFuZ2xlLCB0cnVlKTtcbiAgICAgICAgY29uc3QgcG9pbnRYID0gZGlyZWN0aW9uRmFjdG9yc1swXSA9PT0gLTEgPyB4U25hcEF4aXNbMF0gOiB4U25hcEF4aXNbMl07XG4gICAgICAgIGNvbnN0IGRlbHRhWCA9IGdldE1pblBvaW50RGVsdGEoc25hcFJlY3RhbmdsZXMsIHBvaW50WCwgdHJ1ZSk7XG4gICAgICAgIGlmIChNYXRoLmFicyhkZWx0YVgpIDwgU05BUF9UT0xFUkFOQ0UpIHtcbiAgICAgICAgICAgIHBvaW50TGluZURlbHRhLmRlbHRhWCA9IGRlbHRhWDtcbiAgICAgICAgICAgIGlmIChwb2ludExpbmVEZWx0YS5kZWx0YVggIT09IDAgJiYgaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgICAgIHBvaW50TGluZURlbHRhLmRlbHRhWSA9IHBvaW50TGluZURlbHRhLmRlbHRhWCAvIChhY3RpdmVSZWN0YW5nbGUud2lkdGggLyBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9pbnRMaW5lRGVsdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZHJhd1ZlcnRpY2FsKSB7XG4gICAgICAgIGNvbnN0IHlTbmFwQXhpcyA9IGdldFRyaXBsZUF4aXMoYWN0aXZlUmVjdGFuZ2xlLCBmYWxzZSk7XG4gICAgICAgIGNvbnN0IHBvaW50WSA9IGRpcmVjdGlvbkZhY3RvcnNbMV0gPT09IC0xID8geVNuYXBBeGlzWzBdIDogeVNuYXBBeGlzWzJdO1xuICAgICAgICBjb25zdCBkZWx0YVkgPSBnZXRNaW5Qb2ludERlbHRhKHNuYXBSZWN0YW5nbGVzLCBwb2ludFksIGZhbHNlKTtcbiAgICAgICAgaWYgKE1hdGguYWJzKGRlbHRhWSkgPCBTTkFQX1RPTEVSQU5DRSkge1xuICAgICAgICAgICAgcG9pbnRMaW5lRGVsdGEuZGVsdGFZID0gZGVsdGFZO1xuICAgICAgICAgICAgaWYgKHBvaW50TGluZURlbHRhLmRlbHRhWSAhPT0gMCAmJiBpc0FzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgICAgICAgcG9pbnRMaW5lRGVsdGEuZGVsdGFYID0gcG9pbnRMaW5lRGVsdGEuZGVsdGFZICogKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCAvIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb2ludExpbmVEZWx0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBwb2ludExpbmVEZWx0YTtcbn1cblxuZnVuY3Rpb24gZ2V0QWN0aXZlUG9pbnRBbmRab29tKHJlc2l6ZVNuYXBEZWx0YTogU25hcERlbHRhLCByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMsIGFuZ2xlOiBudW1iZXIpIHtcbiAgICBjb25zdCB7IGRlbHRhWCwgZGVsdGFZIH0gPSByZXNpemVTbmFwRGVsdGE7XG4gICAgY29uc3QgeyByZXNpemVQb2ludHMsIGlzQ3JlYXRlIH0gPSByZXNpemVTbmFwT3B0aW9ucztcbiAgICBjb25zdCBuZXdSZXNpemVQb2ludHM6IFtQb2ludCwgUG9pbnRdID0gW3Jlc2l6ZVBvaW50c1swXSwgW3Jlc2l6ZVBvaW50c1sxXVswXSArIGRlbHRhWCwgcmVzaXplUG9pbnRzWzFdWzFdICsgZGVsdGFZXV07XG4gICAgbGV0IGFjdGl2ZVBvaW50cyA9IG5ld1Jlc2l6ZVBvaW50cztcbiAgICBsZXQgeFpvb20gPSAwO1xuICAgIGxldCB5Wm9vbSA9IDA7XG4gICAgaWYgKCFpc0NyZWF0ZSkge1xuICAgICAgICBjb25zdCB7IG9yaWdpblBvaW50LCBoYW5kbGVQb2ludCwgaXNGcm9tQ29ybmVyLCBpc0FzcGVjdFJhdGlvLCByZXNpemVPcmlnaW5Qb2ludCB9ID0gcmVzaXplU25hcE9wdGlvbnM7XG4gICAgICAgIGNvbnN0IHJlc2l6ZVpvb20gPSBnZXRSZXNpemVab29tKG5ld1Jlc2l6ZVBvaW50cywgb3JpZ2luUG9pbnQhLCBoYW5kbGVQb2ludCEsIGlzRnJvbUNvcm5lciwgaXNBc3BlY3RSYXRpbyk7XG4gICAgICAgIHhab29tID0gcmVzaXplWm9vbS54Wm9vbTtcbiAgICAgICAgeVpvb20gPSByZXNpemVab29tLnlab29tO1xuICAgICAgICBhY3RpdmVQb2ludHMgPSByZXNpemVPcmlnaW5Qb2ludCEubWFwKHAgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIG1vdmVQb2ludEJ5Wm9vbUFuZE9yaWdpblBvaW50KHAsIG9yaWdpblBvaW50ISwgeFpvb20sIHlab29tKTtcbiAgICAgICAgfSkgYXMgW1BvaW50LCBQb2ludF07XG4gICAgICAgIGlmIChhbmdsZSkge1xuICAgICAgICAgICAgYWN0aXZlUG9pbnRzID0gcmVzZXRQb2ludHNBZnRlclJlc2l6ZShcbiAgICAgICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMocmVzaXplT3JpZ2luUG9pbnQhKSxcbiAgICAgICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoYWN0aXZlUG9pbnRzKSxcbiAgICAgICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHJlc2l6ZU9yaWdpblBvaW50ISkpLFxuICAgICAgICAgICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRDZW50ZXJQb2ludChSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoYWN0aXZlUG9pbnRzKSksXG4gICAgICAgICAgICAgICAgYW5nbGVcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgICB4Wm9vbSxcbiAgICAgICAgeVpvb20sXG4gICAgICAgIGFjdGl2ZVBvaW50c1xuICAgIH07XG59XG5cbmZ1bmN0aW9uIGdldElzb21ldHJpY0xpbmVEZWx0YShzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sIHJlc2l6ZVNuYXBPcHRpb25zOiBSZXNpemVTbmFwT3B0aW9ucykge1xuICAgIGxldCBpc29tZXRyaWNMaW5lRGVsdGE6IFNuYXBEZWx0YSA9IHtcbiAgICAgICAgZGVsdGFYOiAwLFxuICAgICAgICBkZWx0YVk6IDBcbiAgICB9O1xuICAgIGNvbnN0IHsgaXNBc3BlY3RSYXRpbywgYWN0aXZlUmVjdGFuZ2xlIH0gPSByZXNpemVTbmFwT3B0aW9ucztcbiAgICBjb25zdCB3aWR0aFNuYXBSZWN0YW5nbGUgPSBzbmFwUmVjdGFuZ2xlcy5maW5kKGl0ZW0gPT4gTWF0aC5hYnMoaXRlbS53aWR0aCAtIGFjdGl2ZVJlY3RhbmdsZS53aWR0aCkgPCBTTkFQX1RPTEVSQU5DRSk7XG4gICAgaWYgKHdpZHRoU25hcFJlY3RhbmdsZSkge1xuICAgICAgICBjb25zdCBkZWx0YVdpZHRoID0gd2lkdGhTbmFwUmVjdGFuZ2xlLndpZHRoIC0gYWN0aXZlUmVjdGFuZ2xlLndpZHRoO1xuICAgICAgICBpc29tZXRyaWNMaW5lRGVsdGEuZGVsdGFYID0gZGVsdGFXaWR0aCAqIHJlc2l6ZVNuYXBPcHRpb25zLmRpcmVjdGlvbkZhY3RvcnNbMF07XG4gICAgICAgIGlmIChpc0FzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgICBjb25zdCBkZWx0YUhlaWdodCA9IGRlbHRhV2lkdGggLyAoYWN0aXZlUmVjdGFuZ2xlLndpZHRoIC8gYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgICAgICBpc29tZXRyaWNMaW5lRGVsdGEuZGVsdGFZID0gZGVsdGFIZWlnaHQgKiByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzFdO1xuICAgICAgICAgICAgcmV0dXJuIGlzb21ldHJpY0xpbmVEZWx0YTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCBoZWlnaHRTbmFwUmVjdGFuZ2xlID0gc25hcFJlY3RhbmdsZXMuZmluZChpdGVtID0+IE1hdGguYWJzKGl0ZW0uaGVpZ2h0IC0gYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCkgPCBTTkFQX1RPTEVSQU5DRSk7XG4gICAgaWYgKGhlaWdodFNuYXBSZWN0YW5nbGUpIHtcbiAgICAgICAgY29uc3QgZGVsdGFIZWlnaHQgPSBoZWlnaHRTbmFwUmVjdGFuZ2xlLmhlaWdodCAtIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQ7XG4gICAgICAgIGlzb21ldHJpY0xpbmVEZWx0YS5kZWx0YVkgPSBkZWx0YUhlaWdodCAqIHJlc2l6ZVNuYXBPcHRpb25zLmRpcmVjdGlvbkZhY3RvcnNbMV07XG4gICAgICAgIGlmIChpc0FzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgICBjb25zdCBkZWx0YVdpZHRoID0gZGVsdGFIZWlnaHQgKiAoYWN0aXZlUmVjdGFuZ2xlLndpZHRoIC8gYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgICAgICBpc29tZXRyaWNMaW5lRGVsdGEuZGVsdGFYID0gZGVsdGFXaWR0aCAqIHJlc2l6ZVNuYXBPcHRpb25zLmRpcmVjdGlvbkZhY3RvcnNbMF07XG4gICAgICAgICAgICByZXR1cm4gaXNvbWV0cmljTGluZURlbHRhO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBpc29tZXRyaWNMaW5lRGVsdGE7XG59XG5cbmZ1bmN0aW9uIGdldElzb21ldHJpY0xpbmVQb2ludHMocmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIGlzSG9yaXpvbnRhbDogYm9vbGVhbik6IFBvaW50W10ge1xuICAgIHJldHVybiBpc0hvcml6b250YWxcbiAgICAgICAgPyBbXG4gICAgICAgICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgLSBFUVVBTF9TUEFDSU5HXSxcbiAgICAgICAgICAgICAgW3JlY3RhbmdsZS54ICsgcmVjdGFuZ2xlLndpZHRoLCByZWN0YW5nbGUueSAtIEVRVUFMX1NQQUNJTkddXG4gICAgICAgICAgXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgICAgW3JlY3RhbmdsZS54IC0gRVFVQUxfU1BBQ0lORywgcmVjdGFuZ2xlLnldLFxuICAgICAgICAgICAgICBbcmVjdGFuZ2xlLnggLSBFUVVBTF9TUEFDSU5HLCByZWN0YW5nbGUueSArIHJlY3RhbmdsZS5oZWlnaHRdXG4gICAgICAgICAgXTtcbn1cblxuZnVuY3Rpb24gZHJhd1Jlc2l6aW5nUG9pbnRTbmFwTGluZXMoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdLFxuICAgIHNuYXBSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSxcbiAgICByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMsXG4gICAgYW5nbGU6IG51bWJlclxuKSB7XG4gICAgZGVidWdHZW5lcmF0b3IuaXNEZWJ1ZygpICYmIGRlYnVnR2VuZXJhdG9yLmNsZWFyKCk7XG4gICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID1cbiAgICAgICAgZ2V0UmVjdGFuZ2xlQnlBbmdsZShSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoYWN0aXZlUG9pbnRzKSwgYW5nbGUpIHx8XG4gICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhY3RpdmVQb2ludHMpO1xuXG4gICAgY29uc3QgeyBpc0FzcGVjdFJhdGlvLCBkaXJlY3Rpb25GYWN0b3JzIH0gPSByZXNpemVTbmFwT3B0aW9ucztcbiAgICBjb25zdCBkcmF3SG9yaXpvbnRhbCA9IGRpcmVjdGlvbkZhY3RvcnNbMF0gIT09IDAgfHwgaXNBc3BlY3RSYXRpbztcbiAgICBjb25zdCBkcmF3VmVydGljYWwgPSBkaXJlY3Rpb25GYWN0b3JzWzFdICE9PSAwIHx8IGlzQXNwZWN0UmF0aW87XG4gICAgcmV0dXJuIGRyYXdQb2ludFNuYXBMaW5lcyhib2FyZCwgYWN0aXZlUmVjdGFuZ2xlLCBzbmFwUmVjdGFuZ2xlcywgZHJhd0hvcml6b250YWwsIGRyYXdWZXJ0aWNhbCk7XG59XG5cbmZ1bmN0aW9uIGRyYXdJc29tZXRyaWNTbmFwTGluZXMoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdLFxuICAgIHNuYXBSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSxcbiAgICByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMsXG4gICAgYW5nbGU6IG51bWJlclxuKSB7XG4gICAgbGV0IHdpZHRoSXNvbWV0cmljUG9pbnRzID0gW107XG4gICAgbGV0IGhlaWdodElzb21ldHJpY1BvaW50cyA9IFtdO1xuXG4gICAgY29uc3QgZHJhd0hvcml6b250YWxMaW5lID0gcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1swXSAhPT0gMCB8fCByZXNpemVTbmFwT3B0aW9ucy5pc0FzcGVjdFJhdGlvO1xuICAgIGNvbnN0IGRyYXdWZXJ0aWNhbExpbmUgPSByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzFdICE9PSAwIHx8IHJlc2l6ZVNuYXBPcHRpb25zLmlzQXNwZWN0UmF0aW87XG4gICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID1cbiAgICAgICAgZ2V0UmVjdGFuZ2xlQnlBbmdsZShSZWN0YW5nbGVDbGllbnQuZ2V0UmVjdGFuZ2xlQnlQb2ludHMoYWN0aXZlUG9pbnRzKSwgYW5nbGUpIHx8XG4gICAgICAgIFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhY3RpdmVQb2ludHMpO1xuICAgIGZvciAobGV0IHNuYXBSZWN0YW5nbGUgb2Ygc25hcFJlY3RhbmdsZXMpIHtcbiAgICAgICAgaWYgKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCA9PT0gc25hcFJlY3RhbmdsZS53aWR0aCAmJiBkcmF3SG9yaXpvbnRhbExpbmUpIHtcbiAgICAgICAgICAgIHdpZHRoSXNvbWV0cmljUG9pbnRzLnB1c2goZ2V0SXNvbWV0cmljTGluZVBvaW50cyhzbmFwUmVjdGFuZ2xlLCB0cnVlKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQgPT09IHNuYXBSZWN0YW5nbGUuaGVpZ2h0ICYmIGRyYXdWZXJ0aWNhbExpbmUpIHtcbiAgICAgICAgICAgIGhlaWdodElzb21ldHJpY1BvaW50cy5wdXNoKGdldElzb21ldHJpY0xpbmVQb2ludHMoc25hcFJlY3RhbmdsZSwgZmFsc2UpKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAod2lkdGhJc29tZXRyaWNQb2ludHMubGVuZ3RoICYmIGRyYXdIb3Jpem9udGFsTGluZSkge1xuICAgICAgICB3aWR0aElzb21ldHJpY1BvaW50cy5wdXNoKGdldElzb21ldHJpY0xpbmVQb2ludHMoYWN0aXZlUmVjdGFuZ2xlLCB0cnVlKSk7XG4gICAgfVxuICAgIGlmIChoZWlnaHRJc29tZXRyaWNQb2ludHMubGVuZ3RoICYmIGRyYXdWZXJ0aWNhbExpbmUpIHtcbiAgICAgICAgaGVpZ2h0SXNvbWV0cmljUG9pbnRzLnB1c2goZ2V0SXNvbWV0cmljTGluZVBvaW50cyhhY3RpdmVSZWN0YW5nbGUsIGZhbHNlKSk7XG4gICAgfVxuXG4gICAgY29uc3QgaXNvbWV0cmljTGluZXMgPSBbLi4ud2lkdGhJc29tZXRyaWNQb2ludHMsIC4uLmhlaWdodElzb21ldHJpY1BvaW50c107XG4gICAgcmV0dXJuIGRyYXdTb2xpZExpbmVzKGJvYXJkLCBpc29tZXRyaWNMaW5lcyk7XG59XG5cbiJdfQ==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcC1yZXNpemluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2RyYXcvc3JjL3V0aWxzL3NuYXAtcmVzaXppbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILHNDQUFzQyxFQUN0Qyw0QkFBNEIsRUFDNUIsc0JBQXNCLEVBQ3pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFLSCxlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLE9BQU8sRUFDUCxpQkFBaUIsRUFDakIsbUJBQW1CLEVBQ25CLHNCQUFzQixFQUd0QixpQkFBaUIsRUFDakIsY0FBYyxFQUNkLGNBQWMsRUFDZCxrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGdCQUFnQixFQUNuQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsYUFBYSxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFHM0YsTUFBTSxRQUFRLEdBQUcsZ0NBQWdDLENBQUM7QUFDbEQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBb0I3RCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7QUFFekIsTUFBTSxVQUFVLHlCQUF5QixDQUNyQyxLQUFpQixFQUNqQixTQUEyRCxFQUMzRCxXQUF3QixFQUN4QiwrQkFHQyxFQUNELGFBQXNCLEVBQ3RCLFlBQXFCO0lBRXJCLE1BQU0sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLEdBQUcsK0JBQStCLENBQUM7SUFDckUsTUFBTSxZQUFZLEdBQW1CLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEYsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRTVHLElBQUksY0FBOEIsQ0FBQztJQUNuQyxJQUFJLGlCQUFpQixHQUFZLEVBQUUsQ0FBQztJQUNwQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsY0FBYyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUM7UUFDbkMsTUFBTSxTQUFTLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUUsaUJBQWlCLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3RCxDQUFDO1NBQU0sQ0FBQztRQUNKLGNBQWMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyQyxpQkFBaUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQ3JDLE9BQU8sNkJBQTZCLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdkUsQ0FBQyxDQUFtQixDQUFDO0lBQ3JCLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMvRCxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUMxRixNQUFNLGlCQUFpQixHQUFHLDZCQUE2QixDQUFDLFdBQVcsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2hHLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsNEJBQTRCLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDNUUsT0FBTztRQUNILFlBQVk7UUFDWixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLFdBQVc7UUFDWCxXQUFXO1FBQ1gsZ0JBQWdCLEVBQUUsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLENBQUMsRUFBRSxzQ0FBc0MsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RyxhQUFhO1FBQ2IsWUFBWTtLQUNmLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWlCLEVBQUUsY0FBOEIsRUFBRSxpQkFBb0M7SUFDdEgsTUFBTSxLQUFLLEdBQUcsT0FBTyxFQUFFLENBQUM7SUFDeEIsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQ2hFLElBQUksYUFBYSxHQUFHLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQzdFLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUMzRCxhQUFhLEdBQUcsaUJBQWlCLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLGlCQUFpQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sa0JBQWtCLEdBQUcscUJBQXFCLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzFGLE1BQU0sZUFBZSxHQUFHLHNCQUFzQixDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pJLE1BQU0sV0FBVyxHQUFHLDBCQUEwQixDQUFDLEtBQUssRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pJLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLE9BQU8sRUFBRSxHQUFHLGtCQUFrQixFQUFFLEdBQUcsYUFBYSxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQzlELENBQUM7QUFFRCxTQUFTLGlCQUFpQixDQUFDLGNBQWlDLEVBQUUsaUJBQW9DO0lBQzlGLElBQUksY0FBYyxHQUFjO1FBQzVCLE1BQU0sRUFBRSxDQUFDO1FBQ1QsTUFBTSxFQUFFLENBQUM7S0FDWixDQUFDO0lBQ0YsTUFBTSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztJQUMvRSxNQUFNLGNBQWMsR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksYUFBYSxDQUFDO0lBQ2xFLE1BQU0sWUFBWSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUM7SUFFaEUsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUNqQixNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxNQUFNLE1BQU0sR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxjQUFjLEVBQUUsQ0FBQztZQUNwQyxjQUFjLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUMvQixJQUFJLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUMvQyxjQUFjLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDakcsT0FBTyxjQUFjLENBQUM7WUFDMUIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNmLE1BQU0sU0FBUyxHQUFHLGFBQWEsQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sTUFBTSxHQUFHLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0QsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGNBQWMsRUFBRSxDQUFDO1lBQ3BDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBQy9CLElBQUksY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQy9DLGNBQWMsQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqRyxPQUFPLGNBQWMsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLGNBQWMsQ0FBQztBQUMxQixDQUFDO0FBRUQsU0FBUyxxQkFBcUIsQ0FBQyxlQUEwQixFQUFFLGlCQUFvQyxFQUFFLEtBQWE7SUFDMUcsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxlQUFlLENBQUM7SUFDM0MsTUFBTSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsR0FBRyxpQkFBaUIsQ0FBQztJQUNyRCxNQUFNLGVBQWUsR0FBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3RILElBQUksWUFBWSxHQUFHLGVBQWUsQ0FBQztJQUNuQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDWixNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLENBQUM7UUFDdkcsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLGVBQWUsRUFBRSxXQUFZLEVBQUUsV0FBWSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQztRQUMzRyxLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUN6QixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztRQUN6QixZQUFZLEdBQUcsaUJBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3RDLE9BQU8sNkJBQTZCLENBQUMsQ0FBQyxFQUFFLFdBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEUsQ0FBQyxDQUFtQixDQUFDO1FBQ3JCLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixZQUFZLEdBQUcsc0JBQXNCLENBQ2pDLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxpQkFBa0IsQ0FBQyxFQUN4RCxlQUFlLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLEVBQ2xELGVBQWUsQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLG9CQUFvQixDQUFDLGlCQUFrQixDQUFDLENBQUMsRUFDeEYsZUFBZSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUMsRUFDbEYsS0FBSyxDQUNSLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDSCxLQUFLO1FBQ0wsS0FBSztRQUNMLFlBQVk7S0FDZixDQUFDO0FBQ04sQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsY0FBaUMsRUFBRSxpQkFBb0M7SUFDbEcsSUFBSSxrQkFBa0IsR0FBYztRQUNoQyxNQUFNLEVBQUUsQ0FBQztRQUNULE1BQU0sRUFBRSxDQUFDO0tBQ1osQ0FBQztJQUNGLE1BQU0sRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFFLEdBQUcsaUJBQWlCLENBQUM7SUFDN0QsTUFBTSxrQkFBa0IsR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQztJQUN0SCxJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFDckIsTUFBTSxVQUFVLEdBQUcsa0JBQWtCLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFDcEUsa0JBQWtCLENBQUMsTUFBTSxHQUFHLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2hCLE1BQU0sV0FBVyxHQUFHLFVBQVUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xGLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxXQUFXLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEYsT0FBTyxrQkFBa0IsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQztJQUNELE1BQU0sbUJBQW1CLEdBQUcsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLEdBQUcsY0FBYyxDQUFDLENBQUM7SUFDekgsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO1FBQ3RCLE1BQU0sV0FBVyxHQUFHLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDO1FBQ3hFLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxXQUFXLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixNQUFNLFVBQVUsR0FBRyxXQUFXLEdBQUcsQ0FBQyxlQUFlLENBQUMsS0FBSyxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNsRixrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsVUFBVSxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sa0JBQWtCLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLGtCQUFrQixDQUFDO0FBQzlCLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLFNBQTBCLEVBQUUsWUFBcUI7SUFDN0UsT0FBTyxZQUFZO1FBQ2YsQ0FBQyxDQUFDO1lBQ0ksQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDO1lBQzFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLEdBQUcsYUFBYSxDQUFDO1NBQy9EO1FBQ0gsQ0FBQyxDQUFDO1lBQ0ksQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQzFDLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1NBQ2hFLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBUywwQkFBMEIsQ0FDL0IsS0FBaUIsRUFDakIsWUFBcUIsRUFDckIsY0FBaUMsRUFDakMsaUJBQW9DLEVBQ3BDLEtBQWE7SUFFYixjQUFjLENBQUMsT0FBTyxFQUFFLElBQUksY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ25ELE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRSxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUQsTUFBTSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGlCQUFpQixDQUFDO0lBQzlELE1BQU0sY0FBYyxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUM7SUFDbEUsTUFBTSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQztJQUNoRSxPQUFPLGtCQUFrQixDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUNwRyxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FDM0IsS0FBaUIsRUFDakIsWUFBcUIsRUFDckIsY0FBaUMsRUFDakMsaUJBQW9DLEVBQ3BDLEtBQWE7SUFFYixJQUFJLG9CQUFvQixHQUFHLEVBQUUsQ0FBQztJQUM5QixJQUFJLHFCQUFxQixHQUFHLEVBQUUsQ0FBQztJQUUvQixNQUFNLGtCQUFrQixHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7SUFDMUcsTUFBTSxnQkFBZ0IsR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsYUFBYSxDQUFDO0lBQ3hHLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRSxNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDOUQsS0FBSyxJQUFJLGFBQWEsSUFBSSxjQUFjLEVBQUUsQ0FBQztRQUN2QyxJQUFJLGVBQWUsQ0FBQyxLQUFLLEtBQUssYUFBYSxDQUFDLEtBQUssSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3RFLG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBQ0QsSUFBSSxlQUFlLENBQUMsTUFBTSxLQUFLLGFBQWEsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUN0RSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0UsQ0FBQztJQUNMLENBQUM7SUFDRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3BELG9CQUFvQixDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsSUFBSSxxQkFBcUIsQ0FBQyxNQUFNLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUNuRCxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVELE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBRyxvQkFBb0IsRUFBRSxHQUFHLHFCQUFxQixDQUFDLENBQUM7SUFDM0UsT0FBTyxjQUFjLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ2pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIFJlc2l6ZVJlZixcbiAgICBSZXNpemVTdGF0ZSxcbiAgICBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCxcbiAgICBnZXRVbml0VmVjdG9yQnlQb2ludEFuZFBvaW50LFxuICAgIHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemVcbn0gZnJvbSAnQHBsYWl0L2NvbW1vbic7XG5pbXBvcnQge1xuICAgIERpcmVjdGlvbkZhY3RvcnMsXG4gICAgUGxhaXRCb2FyZCxcbiAgICBQbGFpdEVsZW1lbnQsXG4gICAgUG9pbnQsXG4gICAgUmVjdGFuZ2xlQ2xpZW50LFxuICAgIGNyZWF0ZURlYnVnR2VuZXJhdG9yLFxuICAgIGNyZWF0ZUcsXG4gICAgZ2V0U2VsZWN0aW9uQW5nbGUsXG4gICAgZ2V0UmVjdGFuZ2xlQnlBbmdsZSxcbiAgICBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzLFxuICAgIFNuYXBEZWx0YSxcbiAgICBTbmFwUmVmLFxuICAgIGdldFNuYXBSZWN0YW5nbGVzLFxuICAgIFNOQVBfVE9MRVJBTkNFLFxuICAgIGRyYXdTb2xpZExpbmVzLFxuICAgIGRyYXdQb2ludFNuYXBMaW5lcyxcbiAgICBnZXRUcmlwbGVBeGlzLFxuICAgIGdldE1pblBvaW50RGVsdGFcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UmVzaXplWm9vbSwgbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQgfSBmcm9tICcuLi9wbHVnaW5zL3dpdGgtZHJhdy1yZXNpemUnO1xuaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5jb25zdCBkZWJ1Z0tleSA9ICdkZWJ1ZzpwbGFpdDpwb2ludC1mb3ItZ2VvbWV0cnknO1xuZXhwb3J0IGNvbnN0IGRlYnVnR2VuZXJhdG9yID0gY3JlYXRlRGVidWdHZW5lcmF0b3IoZGVidWdLZXkpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBSZWYgZXh0ZW5kcyBTbmFwUmVmIHtcbiAgICB4Wm9vbTogbnVtYmVyO1xuICAgIHlab29tOiBudW1iZXI7XG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlc2l6ZVNuYXBPcHRpb25zIHtcbiAgICByZXNpemVQb2ludHM6IFBvaW50W107XG4gICAgYWN0aXZlUmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQ7XG4gICAgZGlyZWN0aW9uRmFjdG9yczogRGlyZWN0aW9uRmFjdG9ycztcbiAgICBpc0Zyb21Db3JuZXI6IGJvb2xlYW47XG4gICAgaXNBc3BlY3RSYXRpbzogYm9vbGVhbjtcbiAgICByZXNpemVPcmlnaW5Qb2ludD86IFBvaW50W107XG4gICAgb3JpZ2luUG9pbnQ/OiBQb2ludDtcbiAgICBoYW5kbGVQb2ludD86IFBvaW50O1xuICAgIGlzQ3JlYXRlPzogYm9vbGVhbjtcbn1cblxuY29uc3QgRVFVQUxfU1BBQ0lORyA9IDEwO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U25hcFJlc2l6aW5nUmVmT3B0aW9ucyhcbiAgICBib2FyZDogUGxhaXRCb2FyZCxcbiAgICByZXNpemVSZWY6IFJlc2l6ZVJlZjxQbGFpdERyYXdFbGVtZW50IHwgUGxhaXREcmF3RWxlbWVudFtdPixcbiAgICByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUsXG4gICAgcmVzaXplT3JpZ2luUG9pbnRBbmRIYW5kbGVQb2ludDoge1xuICAgICAgICBvcmlnaW5Qb2ludDogUG9pbnQ7XG4gICAgICAgIGhhbmRsZVBvaW50OiBQb2ludDtcbiAgICB9LFxuICAgIGlzQXNwZWN0UmF0aW86IGJvb2xlYW4sXG4gICAgaXNGcm9tQ29ybmVyOiBib29sZWFuXG4pOiBSZXNpemVTbmFwT3B0aW9ucyB7XG4gICAgY29uc3QgeyBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQgfSA9IHJlc2l6ZU9yaWdpblBvaW50QW5kSGFuZGxlUG9pbnQ7XG4gICAgY29uc3QgcmVzaXplUG9pbnRzOiBbUG9pbnQsIFBvaW50XSA9IFtyZXNpemVTdGF0ZS5zdGFydFBvaW50LCByZXNpemVTdGF0ZS5lbmRQb2ludF07XG4gICAgY29uc3QgeyB4Wm9vbSwgeVpvb20gfSA9IGdldFJlc2l6ZVpvb20ocmVzaXplUG9pbnRzLCBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQsIGlzRnJvbUNvcm5lciwgaXNBc3BlY3RSYXRpbyk7XG5cbiAgICBsZXQgYWN0aXZlRWxlbWVudHM6IFBsYWl0RWxlbWVudFtdO1xuICAgIGxldCByZXNpemVPcmlnaW5Qb2ludDogUG9pbnRbXSA9IFtdO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJlc2l6ZVJlZi5lbGVtZW50KSkge1xuICAgICAgICBhY3RpdmVFbGVtZW50cyA9IHJlc2l6ZVJlZi5lbGVtZW50O1xuICAgICAgICBjb25zdCByZWN0YW5nbGUgPSBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzKGJvYXJkLCByZXNpemVSZWYuZWxlbWVudCwgZmFsc2UpO1xuICAgICAgICByZXNpemVPcmlnaW5Qb2ludCA9IFJlY3RhbmdsZUNsaWVudC5nZXRQb2ludHMocmVjdGFuZ2xlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBhY3RpdmVFbGVtZW50cyA9IFtyZXNpemVSZWYuZWxlbWVudF07XG4gICAgICAgIHJlc2l6ZU9yaWdpblBvaW50ID0gcmVzaXplUmVmLmVsZW1lbnQucG9pbnRzO1xuICAgIH1cblxuICAgIGNvbnN0IHBvaW50cyA9IHJlc2l6ZU9yaWdpblBvaW50Lm1hcChwID0+IHtcbiAgICAgICAgcmV0dXJuIG1vdmVQb2ludEJ5Wm9vbUFuZE9yaWdpblBvaW50KHAsIG9yaWdpblBvaW50LCB4Wm9vbSwgeVpvb20pO1xuICAgIH0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhwb2ludHMpO1xuICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5QW5nbGUocmVjdGFuZ2xlLCBnZXRTZWxlY3Rpb25BbmdsZShhY3RpdmVFbGVtZW50cykpO1xuICAgIGNvbnN0IHJlc2l6ZUhhbmRsZVBvaW50ID0gbW92ZVBvaW50Qnlab29tQW5kT3JpZ2luUG9pbnQoaGFuZGxlUG9pbnQsIG9yaWdpblBvaW50LCB4Wm9vbSwgeVpvb20pO1xuICAgIGNvbnN0IFt4LCB5XSA9IGdldFVuaXRWZWN0b3JCeVBvaW50QW5kUG9pbnQob3JpZ2luUG9pbnQsIHJlc2l6ZUhhbmRsZVBvaW50KTtcbiAgICByZXR1cm4ge1xuICAgICAgICByZXNpemVQb2ludHMsXG4gICAgICAgIHJlc2l6ZU9yaWdpblBvaW50LFxuICAgICAgICBhY3RpdmVSZWN0YW5nbGUsXG4gICAgICAgIG9yaWdpblBvaW50LFxuICAgICAgICBoYW5kbGVQb2ludCxcbiAgICAgICAgZGlyZWN0aW9uRmFjdG9yczogW2dldERpcmVjdGlvbkZhY3RvckJ5RGlyZWN0aW9uQ29tcG9uZW50KHgpLCBnZXREaXJlY3Rpb25GYWN0b3JCeURpcmVjdGlvbkNvbXBvbmVudCh5KV0sXG4gICAgICAgIGlzQXNwZWN0UmF0aW8sXG4gICAgICAgIGlzRnJvbUNvcm5lclxuICAgIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTbmFwUmVzaXppbmdSZWYoYm9hcmQ6IFBsYWl0Qm9hcmQsIGFjdGl2ZUVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSwgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zKTogUmVzaXplU25hcFJlZiB7XG4gICAgY29uc3Qgc25hcEcgPSBjcmVhdGVHKCk7XG4gICAgY29uc3Qgc25hcFJlY3RhbmdsZXMgPSBnZXRTbmFwUmVjdGFuZ2xlcyhib2FyZCwgYWN0aXZlRWxlbWVudHMpO1xuICAgIGxldCBzbmFwTGluZURlbHRhID0gZ2V0SXNvbWV0cmljTGluZURlbHRhKHNuYXBSZWN0YW5nbGVzLCByZXNpemVTbmFwT3B0aW9ucyk7XG4gICAgaWYgKHNuYXBMaW5lRGVsdGEuZGVsdGFYID09PSAwICYmIHNuYXBMaW5lRGVsdGEuZGVsdGFZID09PSAwKSB7XG4gICAgICAgIHNuYXBMaW5lRGVsdGEgPSBnZXRTbmFwUG9pbnREZWx0YShzbmFwUmVjdGFuZ2xlcywgcmVzaXplU25hcE9wdGlvbnMpO1xuICAgIH1cbiAgICBjb25zdCBhbmdsZSA9IGdldFNlbGVjdGlvbkFuZ2xlKGFjdGl2ZUVsZW1lbnRzKTtcbiAgICBjb25zdCBhY3RpdmVQb2ludEFuZFpvb20gPSBnZXRBY3RpdmVQb2ludEFuZFpvb20oc25hcExpbmVEZWx0YSwgcmVzaXplU25hcE9wdGlvbnMsIGFuZ2xlKTtcbiAgICBjb25zdCBpc29tZXRyaWNMaW5lc0cgPSBkcmF3SXNvbWV0cmljU25hcExpbmVzKGJvYXJkLCBhY3RpdmVQb2ludEFuZFpvb20uYWN0aXZlUG9pbnRzLCBzbmFwUmVjdGFuZ2xlcywgcmVzaXplU25hcE9wdGlvbnMsIGFuZ2xlKTtcbiAgICBjb25zdCBwb2ludExpbmVzRyA9IGRyYXdSZXNpemluZ1BvaW50U25hcExpbmVzKGJvYXJkLCBhY3RpdmVQb2ludEFuZFpvb20uYWN0aXZlUG9pbnRzLCBzbmFwUmVjdGFuZ2xlcywgcmVzaXplU25hcE9wdGlvbnMsIGFuZ2xlKTtcbiAgICBzbmFwRy5hcHBlbmQoaXNvbWV0cmljTGluZXNHLCBwb2ludExpbmVzRyk7XG4gICAgcmV0dXJuIHsgLi4uYWN0aXZlUG9pbnRBbmRab29tLCAuLi5zbmFwTGluZURlbHRhLCBzbmFwRyB9O1xufVxuXG5mdW5jdGlvbiBnZXRTbmFwUG9pbnREZWx0YShzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sIHJlc2l6ZVNuYXBPcHRpb25zOiBSZXNpemVTbmFwT3B0aW9ucykge1xuICAgIGxldCBwb2ludExpbmVEZWx0YTogU25hcERlbHRhID0ge1xuICAgICAgICBkZWx0YVg6IDAsXG4gICAgICAgIGRlbHRhWTogMFxuICAgIH07XG4gICAgY29uc3QgeyBpc0FzcGVjdFJhdGlvLCBhY3RpdmVSZWN0YW5nbGUsIGRpcmVjdGlvbkZhY3RvcnMgfSA9IHJlc2l6ZVNuYXBPcHRpb25zO1xuICAgIGNvbnN0IGRyYXdIb3Jpem9udGFsID0gZGlyZWN0aW9uRmFjdG9yc1swXSAhPT0gMCB8fCBpc0FzcGVjdFJhdGlvO1xuICAgIGNvbnN0IGRyYXdWZXJ0aWNhbCA9IGRpcmVjdGlvbkZhY3RvcnNbMV0gIT09IDAgfHwgaXNBc3BlY3RSYXRpbztcblxuICAgIGlmIChkcmF3SG9yaXpvbnRhbCkge1xuICAgICAgICBjb25zdCB4U25hcEF4aXMgPSBnZXRUcmlwbGVBeGlzKGFjdGl2ZVJlY3RhbmdsZSwgdHJ1ZSk7XG4gICAgICAgIGNvbnN0IHBvaW50WCA9IGRpcmVjdGlvbkZhY3RvcnNbMF0gPT09IC0xID8geFNuYXBBeGlzWzBdIDogeFNuYXBBeGlzWzJdO1xuICAgICAgICBjb25zdCBkZWx0YVggPSBnZXRNaW5Qb2ludERlbHRhKHNuYXBSZWN0YW5nbGVzLCBwb2ludFgsIHRydWUpO1xuICAgICAgICBpZiAoTWF0aC5hYnMoZGVsdGFYKSA8IFNOQVBfVE9MRVJBTkNFKSB7XG4gICAgICAgICAgICBwb2ludExpbmVEZWx0YS5kZWx0YVggPSBkZWx0YVg7XG4gICAgICAgICAgICBpZiAocG9pbnRMaW5lRGVsdGEuZGVsdGFYICE9PSAwICYmIGlzQXNwZWN0UmF0aW8pIHtcbiAgICAgICAgICAgICAgICBwb2ludExpbmVEZWx0YS5kZWx0YVkgPSBwb2ludExpbmVEZWx0YS5kZWx0YVggLyAoYWN0aXZlUmVjdGFuZ2xlLndpZHRoIC8gYWN0aXZlUmVjdGFuZ2xlLmhlaWdodCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBvaW50TGluZURlbHRhO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGRyYXdWZXJ0aWNhbCkge1xuICAgICAgICBjb25zdCB5U25hcEF4aXMgPSBnZXRUcmlwbGVBeGlzKGFjdGl2ZVJlY3RhbmdsZSwgZmFsc2UpO1xuICAgICAgICBjb25zdCBwb2ludFkgPSBkaXJlY3Rpb25GYWN0b3JzWzFdID09PSAtMSA/IHlTbmFwQXhpc1swXSA6IHlTbmFwQXhpc1syXTtcbiAgICAgICAgY29uc3QgZGVsdGFZID0gZ2V0TWluUG9pbnREZWx0YShzbmFwUmVjdGFuZ2xlcywgcG9pbnRZLCBmYWxzZSk7XG4gICAgICAgIGlmIChNYXRoLmFicyhkZWx0YVkpIDwgU05BUF9UT0xFUkFOQ0UpIHtcbiAgICAgICAgICAgIHBvaW50TGluZURlbHRhLmRlbHRhWSA9IGRlbHRhWTtcbiAgICAgICAgICAgIGlmIChwb2ludExpbmVEZWx0YS5kZWx0YVkgIT09IDAgJiYgaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgICAgIHBvaW50TGluZURlbHRhLmRlbHRhWCA9IHBvaW50TGluZURlbHRhLmRlbHRhWSAqIChhY3RpdmVSZWN0YW5nbGUud2lkdGggLyBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9pbnRMaW5lRGVsdGE7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gcG9pbnRMaW5lRGVsdGE7XG59XG5cbmZ1bmN0aW9uIGdldEFjdGl2ZVBvaW50QW5kWm9vbShyZXNpemVTbmFwRGVsdGE6IFNuYXBEZWx0YSwgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zLCBhbmdsZTogbnVtYmVyKSB7XG4gICAgY29uc3QgeyBkZWx0YVgsIGRlbHRhWSB9ID0gcmVzaXplU25hcERlbHRhO1xuICAgIGNvbnN0IHsgcmVzaXplUG9pbnRzLCBpc0NyZWF0ZSB9ID0gcmVzaXplU25hcE9wdGlvbnM7XG4gICAgY29uc3QgbmV3UmVzaXplUG9pbnRzOiBbUG9pbnQsIFBvaW50XSA9IFtyZXNpemVQb2ludHNbMF0sIFtyZXNpemVQb2ludHNbMV1bMF0gKyBkZWx0YVgsIHJlc2l6ZVBvaW50c1sxXVsxXSArIGRlbHRhWV1dO1xuICAgIGxldCBhY3RpdmVQb2ludHMgPSBuZXdSZXNpemVQb2ludHM7XG4gICAgbGV0IHhab29tID0gMDtcbiAgICBsZXQgeVpvb20gPSAwO1xuICAgIGlmICghaXNDcmVhdGUpIHtcbiAgICAgICAgY29uc3QgeyBvcmlnaW5Qb2ludCwgaGFuZGxlUG9pbnQsIGlzRnJvbUNvcm5lciwgaXNBc3BlY3RSYXRpbywgcmVzaXplT3JpZ2luUG9pbnQgfSA9IHJlc2l6ZVNuYXBPcHRpb25zO1xuICAgICAgICBjb25zdCByZXNpemVab29tID0gZ2V0UmVzaXplWm9vbShuZXdSZXNpemVQb2ludHMsIG9yaWdpblBvaW50ISwgaGFuZGxlUG9pbnQhLCBpc0Zyb21Db3JuZXIsIGlzQXNwZWN0UmF0aW8pO1xuICAgICAgICB4Wm9vbSA9IHJlc2l6ZVpvb20ueFpvb207XG4gICAgICAgIHlab29tID0gcmVzaXplWm9vbS55Wm9vbTtcbiAgICAgICAgYWN0aXZlUG9pbnRzID0gcmVzaXplT3JpZ2luUG9pbnQhLm1hcChwID0+IHtcbiAgICAgICAgICAgIHJldHVybiBtb3ZlUG9pbnRCeVpvb21BbmRPcmlnaW5Qb2ludChwLCBvcmlnaW5Qb2ludCEsIHhab29tLCB5Wm9vbSk7XG4gICAgICAgIH0pIGFzIFtQb2ludCwgUG9pbnRdO1xuICAgICAgICBpZiAoYW5nbGUpIHtcbiAgICAgICAgICAgIGFjdGl2ZVBvaW50cyA9IHJlc2V0UG9pbnRzQWZ0ZXJSZXNpemUoXG4gICAgICAgICAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKHJlc2l6ZU9yaWdpblBvaW50ISksXG4gICAgICAgICAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGFjdGl2ZVBvaW50cyksXG4gICAgICAgICAgICAgICAgUmVjdGFuZ2xlQ2xpZW50LmdldENlbnRlclBvaW50KFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhyZXNpemVPcmlnaW5Qb2ludCEpKSxcbiAgICAgICAgICAgICAgICBSZWN0YW5nbGVDbGllbnQuZ2V0Q2VudGVyUG9pbnQoUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGFjdGl2ZVBvaW50cykpLFxuICAgICAgICAgICAgICAgIGFuZ2xlXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgICAgeFpvb20sXG4gICAgICAgIHlab29tLFxuICAgICAgICBhY3RpdmVQb2ludHNcbiAgICB9O1xufVxuXG5mdW5jdGlvbiBnZXRJc29tZXRyaWNMaW5lRGVsdGEoc25hcFJlY3RhbmdsZXM6IFJlY3RhbmdsZUNsaWVudFtdLCByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMpIHtcbiAgICBsZXQgaXNvbWV0cmljTGluZURlbHRhOiBTbmFwRGVsdGEgPSB7XG4gICAgICAgIGRlbHRhWDogMCxcbiAgICAgICAgZGVsdGFZOiAwXG4gICAgfTtcbiAgICBjb25zdCB7IGlzQXNwZWN0UmF0aW8sIGFjdGl2ZVJlY3RhbmdsZSB9ID0gcmVzaXplU25hcE9wdGlvbnM7XG4gICAgY29uc3Qgd2lkdGhTbmFwUmVjdGFuZ2xlID0gc25hcFJlY3RhbmdsZXMuZmluZChpdGVtID0+IE1hdGguYWJzKGl0ZW0ud2lkdGggLSBhY3RpdmVSZWN0YW5nbGUud2lkdGgpIDwgU05BUF9UT0xFUkFOQ0UpO1xuICAgIGlmICh3aWR0aFNuYXBSZWN0YW5nbGUpIHtcbiAgICAgICAgY29uc3QgZGVsdGFXaWR0aCA9IHdpZHRoU25hcFJlY3RhbmdsZS53aWR0aCAtIGFjdGl2ZVJlY3RhbmdsZS53aWR0aDtcbiAgICAgICAgaXNvbWV0cmljTGluZURlbHRhLmRlbHRhWCA9IGRlbHRhV2lkdGggKiByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzBdO1xuICAgICAgICBpZiAoaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgY29uc3QgZGVsdGFIZWlnaHQgPSBkZWx0YVdpZHRoIC8gKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCAvIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICAgICAgaXNvbWV0cmljTGluZURlbHRhLmRlbHRhWSA9IGRlbHRhSGVpZ2h0ICogcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1sxXTtcbiAgICAgICAgICAgIHJldHVybiBpc29tZXRyaWNMaW5lRGVsdGE7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY29uc3QgaGVpZ2h0U25hcFJlY3RhbmdsZSA9IHNuYXBSZWN0YW5nbGVzLmZpbmQoaXRlbSA9PiBNYXRoLmFicyhpdGVtLmhlaWdodCAtIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpIDwgU05BUF9UT0xFUkFOQ0UpO1xuICAgIGlmIChoZWlnaHRTbmFwUmVjdGFuZ2xlKSB7XG4gICAgICAgIGNvbnN0IGRlbHRhSGVpZ2h0ID0gaGVpZ2h0U25hcFJlY3RhbmdsZS5oZWlnaHQgLSBhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0O1xuICAgICAgICBpc29tZXRyaWNMaW5lRGVsdGEuZGVsdGFZID0gZGVsdGFIZWlnaHQgKiByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzFdO1xuICAgICAgICBpZiAoaXNBc3BlY3RSYXRpbykge1xuICAgICAgICAgICAgY29uc3QgZGVsdGFXaWR0aCA9IGRlbHRhSGVpZ2h0ICogKGFjdGl2ZVJlY3RhbmdsZS53aWR0aCAvIGFjdGl2ZVJlY3RhbmdsZS5oZWlnaHQpO1xuICAgICAgICAgICAgaXNvbWV0cmljTGluZURlbHRhLmRlbHRhWCA9IGRlbHRhV2lkdGggKiByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzBdO1xuICAgICAgICAgICAgcmV0dXJuIGlzb21ldHJpY0xpbmVEZWx0YTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNvbWV0cmljTGluZURlbHRhO1xufVxuXG5mdW5jdGlvbiBnZXRJc29tZXRyaWNMaW5lUG9pbnRzKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBpc0hvcml6b250YWw6IGJvb2xlYW4pOiBQb2ludFtdIHtcbiAgICByZXR1cm4gaXNIb3Jpem9udGFsXG4gICAgICAgID8gW1xuICAgICAgICAgICAgICBbcmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55IC0gRVFVQUxfU1BBQ0lOR10sXG4gICAgICAgICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnkgLSBFUVVBTF9TUEFDSU5HXVxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXG4gICAgICAgICAgICAgIFtyZWN0YW5nbGUueCAtIEVRVUFMX1NQQUNJTkcsIHJlY3RhbmdsZS55XSxcbiAgICAgICAgICAgICAgW3JlY3RhbmdsZS54IC0gRVFVQUxfU1BBQ0lORywgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XVxuICAgICAgICAgIF07XG59XG5cbmZ1bmN0aW9uIGRyYXdSZXNpemluZ1BvaW50U25hcExpbmVzKFxuICAgIGJvYXJkOiBQbGFpdEJvYXJkLFxuICAgIGFjdGl2ZVBvaW50czogUG9pbnRbXSxcbiAgICBzbmFwUmVjdGFuZ2xlczogUmVjdGFuZ2xlQ2xpZW50W10sXG4gICAgcmVzaXplU25hcE9wdGlvbnM6IFJlc2l6ZVNuYXBPcHRpb25zLFxuICAgIGFuZ2xlOiBudW1iZXJcbikge1xuICAgIGRlYnVnR2VuZXJhdG9yLmlzRGVidWcoKSAmJiBkZWJ1Z0dlbmVyYXRvci5jbGVhcigpO1xuICAgIGNvbnN0IHJlY3RhbmdsZSA9IFJlY3RhbmdsZUNsaWVudC5nZXRSZWN0YW5nbGVCeVBvaW50cyhhY3RpdmVQb2ludHMpO1xuICAgIGNvbnN0IGFjdGl2ZVJlY3RhbmdsZSA9IGdldFJlY3RhbmdsZUJ5QW5nbGUocmVjdGFuZ2xlLCBhbmdsZSk7XG4gICAgY29uc3QgeyBpc0FzcGVjdFJhdGlvLCBkaXJlY3Rpb25GYWN0b3JzIH0gPSByZXNpemVTbmFwT3B0aW9ucztcbiAgICBjb25zdCBkcmF3SG9yaXpvbnRhbCA9IGRpcmVjdGlvbkZhY3RvcnNbMF0gIT09IDAgfHwgaXNBc3BlY3RSYXRpbztcbiAgICBjb25zdCBkcmF3VmVydGljYWwgPSBkaXJlY3Rpb25GYWN0b3JzWzFdICE9PSAwIHx8IGlzQXNwZWN0UmF0aW87XG4gICAgcmV0dXJuIGRyYXdQb2ludFNuYXBMaW5lcyhib2FyZCwgYWN0aXZlUmVjdGFuZ2xlLCBzbmFwUmVjdGFuZ2xlcywgZHJhd0hvcml6b250YWwsIGRyYXdWZXJ0aWNhbCk7XG59XG5cbmZ1bmN0aW9uIGRyYXdJc29tZXRyaWNTbmFwTGluZXMoXG4gICAgYm9hcmQ6IFBsYWl0Qm9hcmQsXG4gICAgYWN0aXZlUG9pbnRzOiBQb2ludFtdLFxuICAgIHNuYXBSZWN0YW5nbGVzOiBSZWN0YW5nbGVDbGllbnRbXSxcbiAgICByZXNpemVTbmFwT3B0aW9uczogUmVzaXplU25hcE9wdGlvbnMsXG4gICAgYW5nbGU6IG51bWJlclxuKSB7XG4gICAgbGV0IHdpZHRoSXNvbWV0cmljUG9pbnRzID0gW107XG4gICAgbGV0IGhlaWdodElzb21ldHJpY1BvaW50cyA9IFtdO1xuXG4gICAgY29uc3QgZHJhd0hvcml6b250YWxMaW5lID0gcmVzaXplU25hcE9wdGlvbnMuZGlyZWN0aW9uRmFjdG9yc1swXSAhPT0gMCB8fCByZXNpemVTbmFwT3B0aW9ucy5pc0FzcGVjdFJhdGlvO1xuICAgIGNvbnN0IGRyYXdWZXJ0aWNhbExpbmUgPSByZXNpemVTbmFwT3B0aW9ucy5kaXJlY3Rpb25GYWN0b3JzWzFdICE9PSAwIHx8IHJlc2l6ZVNuYXBPcHRpb25zLmlzQXNwZWN0UmF0aW87XG4gICAgY29uc3QgcmVjdGFuZ2xlID0gUmVjdGFuZ2xlQ2xpZW50LmdldFJlY3RhbmdsZUJ5UG9pbnRzKGFjdGl2ZVBvaW50cyk7XG4gICAgY29uc3QgYWN0aXZlUmVjdGFuZ2xlID0gZ2V0UmVjdGFuZ2xlQnlBbmdsZShyZWN0YW5nbGUsIGFuZ2xlKTtcbiAgICBmb3IgKGxldCBzbmFwUmVjdGFuZ2xlIG9mIHNuYXBSZWN0YW5nbGVzKSB7XG4gICAgICAgIGlmIChhY3RpdmVSZWN0YW5nbGUud2lkdGggPT09IHNuYXBSZWN0YW5nbGUud2lkdGggJiYgZHJhd0hvcml6b250YWxMaW5lKSB7XG4gICAgICAgICAgICB3aWR0aElzb21ldHJpY1BvaW50cy5wdXNoKGdldElzb21ldHJpY0xpbmVQb2ludHMoc25hcFJlY3RhbmdsZSwgdHJ1ZSkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3RpdmVSZWN0YW5nbGUuaGVpZ2h0ID09PSBzbmFwUmVjdGFuZ2xlLmhlaWdodCAmJiBkcmF3VmVydGljYWxMaW5lKSB7XG4gICAgICAgICAgICBoZWlnaHRJc29tZXRyaWNQb2ludHMucHVzaChnZXRJc29tZXRyaWNMaW5lUG9pbnRzKHNuYXBSZWN0YW5nbGUsIGZhbHNlKSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdpZHRoSXNvbWV0cmljUG9pbnRzLmxlbmd0aCAmJiBkcmF3SG9yaXpvbnRhbExpbmUpIHtcbiAgICAgICAgd2lkdGhJc29tZXRyaWNQb2ludHMucHVzaChnZXRJc29tZXRyaWNMaW5lUG9pbnRzKGFjdGl2ZVJlY3RhbmdsZSwgdHJ1ZSkpO1xuICAgIH1cbiAgICBpZiAoaGVpZ2h0SXNvbWV0cmljUG9pbnRzLmxlbmd0aCAmJiBkcmF3VmVydGljYWxMaW5lKSB7XG4gICAgICAgIGhlaWdodElzb21ldHJpY1BvaW50cy5wdXNoKGdldElzb21ldHJpY0xpbmVQb2ludHMoYWN0aXZlUmVjdGFuZ2xlLCBmYWxzZSkpO1xuICAgIH1cblxuICAgIGNvbnN0IGlzb21ldHJpY0xpbmVzID0gWy4uLndpZHRoSXNvbWV0cmljUG9pbnRzLCAuLi5oZWlnaHRJc29tZXRyaWNQb2ludHNdO1xuICAgIHJldHVybiBkcmF3U29saWRMaW5lcyhib2FyZCwgaXNvbWV0cmljTGluZXMpO1xufVxuIl19
@@ -1,13 +1,7 @@
1
1
  import { PlaitDrawElement, StrokeStyle } from '../../interfaces';
2
- import { DefaultGeometryStyle } from '../../constants';
2
+ import { DefaultDrawStyle } from '../../constants';
3
3
  import { getDrawDefaultStrokeColor, getFlowchartDefaultFill } from '../geometry';
4
- export const getStrokeWidthByElement = (element) => {
5
- if (PlaitDrawElement.isText(element)) {
6
- return 0;
7
- }
8
- const strokeWidth = element.strokeWidth || DefaultGeometryStyle.strokeWidth;
9
- return strokeWidth;
10
- };
4
+ import { getStrokeWidthByElement } from '../common';
11
5
  export const getStrokeColorByElement = (board, element) => {
12
6
  const defaultColor = getDrawDefaultStrokeColor(board.theme.themeColorMode);
13
7
  const strokeColor = element.strokeColor || defaultColor;
@@ -16,7 +10,7 @@ export const getStrokeColorByElement = (board, element) => {
16
10
  export const getFillByElement = (board, element) => {
17
11
  const defaultFill = PlaitDrawElement.isFlowchart(element)
18
12
  ? getFlowchartDefaultFill(board.theme.themeColorMode)
19
- : DefaultGeometryStyle.fill;
13
+ : DefaultDrawStyle.fill;
20
14
  const fill = element.fill || defaultFill;
21
15
  return fill;
22
16
  };
@@ -33,4 +27,4 @@ export const getLineDashByElement = (element) => {
33
27
  export const getStrokeStyleByElement = (element) => {
34
28
  return element.strokeStyle || StrokeStyle.solid;
35
29
  };
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Ryb2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvc3R5bGUvc3Ryb2tlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWpGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQzFFLElBQUksZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBQ0QsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxvQkFBb0IsQ0FBQyxXQUFXLENBQUM7SUFDNUUsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQWtDLEVBQUUsRUFBRTtJQUM3RixNQUFNLFlBQVksR0FBRyx5QkFBeUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNFLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxXQUFXLElBQUksWUFBWSxDQUFDO0lBQ3hELE9BQU8sV0FBVyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsS0FBaUIsRUFBRSxPQUFrQyxFQUFFLEVBQUU7SUFDdEYsTUFBTSxXQUFXLEdBQUcsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQztRQUNyRCxDQUFDLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDckQsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQztJQUNoQyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLFdBQVcsQ0FBQztJQUN6QyxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE9BQWtDLEVBQUUsRUFBRTtJQUN2RSxRQUFRLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQixLQUFLLFdBQVcsQ0FBQyxNQUFNO1lBQ25CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckQsS0FBSyxXQUFXLENBQUMsTUFBTTtZQUNuQixPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3JEO1lBQ0ksT0FBTyxTQUFTLENBQUM7SUFDekIsQ0FBQztBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQzFFLE9BQU8sT0FBTyxDQUFDLFdBQVcsSUFBSSxXQUFXLENBQUMsS0FBSyxDQUFDO0FBQ3BELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0RHJhd0VsZW1lbnQsIFBsYWl0R2VvbWV0cnksIFBsYWl0TGluZSwgU3Ryb2tlU3R5bGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IERlZmF1bHRHZW9tZXRyeVN0eWxlIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXREcmF3RGVmYXVsdFN0cm9rZUNvbG9yLCBnZXRGbG93Y2hhcnREZWZhdWx0RmlsbCB9IGZyb20gJy4uL2dlb21ldHJ5JztcblxuZXhwb3J0IGNvbnN0IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50ID0gKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkgfCBQbGFpdExpbmUpID0+IHtcbiAgICBpZiAoUGxhaXREcmF3RWxlbWVudC5pc1RleHQoZWxlbWVudCkpIHtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGNvbnN0IHN0cm9rZVdpZHRoID0gZWxlbWVudC5zdHJva2VXaWR0aCB8fCBEZWZhdWx0R2VvbWV0cnlTdHlsZS5zdHJva2VXaWR0aDtcbiAgICByZXR1cm4gc3Ryb2tlV2lkdGg7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Ryb2tlQ29sb3JCeUVsZW1lbnQgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkgfCBQbGFpdExpbmUpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0Q29sb3IgPSBnZXREcmF3RGVmYXVsdFN0cm9rZUNvbG9yKGJvYXJkLnRoZW1lLnRoZW1lQ29sb3JNb2RlKTtcbiAgICBjb25zdCBzdHJva2VDb2xvciA9IGVsZW1lbnQuc3Ryb2tlQ29sb3IgfHwgZGVmYXVsdENvbG9yO1xuICAgIHJldHVybiBzdHJva2VDb2xvcjtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaWxsQnlFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEdlb21ldHJ5IHwgUGxhaXRMaW5lKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdEZpbGwgPSBQbGFpdERyYXdFbGVtZW50LmlzRmxvd2NoYXJ0KGVsZW1lbnQpXG4gICAgICAgID8gZ2V0Rmxvd2NoYXJ0RGVmYXVsdEZpbGwoYm9hcmQudGhlbWUudGhlbWVDb2xvck1vZGUpXG4gICAgICAgIDogRGVmYXVsdEdlb21ldHJ5U3R5bGUuZmlsbDtcbiAgICBjb25zdCBmaWxsID0gZWxlbWVudC5maWxsIHx8IGRlZmF1bHRGaWxsO1xuICAgIHJldHVybiBmaWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExpbmVEYXNoQnlFbGVtZW50ID0gKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkgfCBQbGFpdExpbmUpID0+IHtcbiAgICBzd2l0Y2ggKGVsZW1lbnQuc3Ryb2tlU3R5bGUpIHtcbiAgICAgICAgY2FzZSBTdHJva2VTdHlsZS5kYXNoZWQ6XG4gICAgICAgICAgICByZXR1cm4gWzgsIDggKyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KV07XG4gICAgICAgIGNhc2UgU3Ryb2tlU3R5bGUuZG90dGVkOlxuICAgICAgICAgICAgcmV0dXJuIFswLCA0ICsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCldO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Ryb2tlU3R5bGVCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRHZW9tZXRyeSB8IFBsYWl0TGluZSkgPT4ge1xuICAgIHJldHVybiBlbGVtZW50LnN0cm9rZVN0eWxlIHx8IFN0cm9rZVN0eWxlLnNvbGlkO1xufTtcbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Ryb2tlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZHJhdy9zcmMvdXRpbHMvc3R5bGUvc3Ryb2tlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBNEIsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFbkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQWlCLEVBQUUsT0FBa0MsRUFBRSxFQUFFO0lBQzdGLE1BQU0sWUFBWSxHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0UsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLFdBQVcsSUFBSSxZQUFZLENBQUM7SUFDeEQsT0FBTyxXQUFXLENBQUM7QUFDdkIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLE9BQWtDLEVBQUUsRUFBRTtJQUN0RixNQUFNLFdBQVcsR0FBRyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ3JELENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztRQUNyRCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO0lBQzVCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLElBQUksV0FBVyxDQUFDO0lBQ3pDLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsT0FBa0MsRUFBRSxFQUFFO0lBQ3ZFLFFBQVEsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzFCLEtBQUssV0FBVyxDQUFDLE1BQU07WUFDbkIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUNyRCxLQUFLLFdBQVcsQ0FBQyxNQUFNO1lBQ25CLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDckQ7WUFDSSxPQUFPLFNBQVMsQ0FBQztJQUN6QixDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxPQUFxQixFQUFFLEVBQUU7SUFDN0QsT0FBTyxPQUFPLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxLQUFLLENBQUM7QUFDcEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhaXREcmF3RWxlbWVudCwgUGxhaXRHZW9tZXRyeSwgUGxhaXRMaW5lLCBTdHJva2VTdHlsZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgRGVmYXVsdERyYXdTdHlsZSB9IGZyb20gJy4uLy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBnZXREcmF3RGVmYXVsdFN0cm9rZUNvbG9yLCBnZXRGbG93Y2hhcnREZWZhdWx0RmlsbCB9IGZyb20gJy4uL2dlb21ldHJ5JztcbmltcG9ydCB7IGdldFN0cm9rZVdpZHRoQnlFbGVtZW50IH0gZnJvbSAnLi4vY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IGdldFN0cm9rZUNvbG9yQnlFbGVtZW50ID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBlbGVtZW50OiBQbGFpdEdlb21ldHJ5IHwgUGxhaXRMaW5lKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdENvbG9yID0gZ2V0RHJhd0RlZmF1bHRTdHJva2VDb2xvcihib2FyZC50aGVtZS50aGVtZUNvbG9yTW9kZSk7XG4gICAgY29uc3Qgc3Ryb2tlQ29sb3IgPSBlbGVtZW50LnN0cm9rZUNvbG9yIHx8IGRlZmF1bHRDb2xvcjtcbiAgICByZXR1cm4gc3Ryb2tlQ29sb3I7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0RmlsbEJ5RWxlbWVudCA9IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudDogUGxhaXRHZW9tZXRyeSB8IFBsYWl0TGluZSkgPT4ge1xuICAgIGNvbnN0IGRlZmF1bHRGaWxsID0gUGxhaXREcmF3RWxlbWVudC5pc0Zsb3djaGFydChlbGVtZW50KVxuICAgICAgICA/IGdldEZsb3djaGFydERlZmF1bHRGaWxsKGJvYXJkLnRoZW1lLnRoZW1lQ29sb3JNb2RlKVxuICAgICAgICA6IERlZmF1bHREcmF3U3R5bGUuZmlsbDtcbiAgICBjb25zdCBmaWxsID0gZWxlbWVudC5maWxsIHx8IGRlZmF1bHRGaWxsO1xuICAgIHJldHVybiBmaWxsO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldExpbmVEYXNoQnlFbGVtZW50ID0gKGVsZW1lbnQ6IFBsYWl0R2VvbWV0cnkgfCBQbGFpdExpbmUpID0+IHtcbiAgICBzd2l0Y2ggKGVsZW1lbnQuc3Ryb2tlU3R5bGUpIHtcbiAgICAgICAgY2FzZSBTdHJva2VTdHlsZS5kYXNoZWQ6XG4gICAgICAgICAgICByZXR1cm4gWzgsIDggKyBnZXRTdHJva2VXaWR0aEJ5RWxlbWVudChlbGVtZW50KV07XG4gICAgICAgIGNhc2UgU3Ryb2tlU3R5bGUuZG90dGVkOlxuICAgICAgICAgICAgcmV0dXJuIFswLCA0ICsgZ2V0U3Ryb2tlV2lkdGhCeUVsZW1lbnQoZWxlbWVudCldO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3Ryb2tlU3R5bGVCeUVsZW1lbnQgPSAoZWxlbWVudDogUGxhaXRFbGVtZW50KSA9PiB7XG4gICAgcmV0dXJuIGVsZW1lbnQuc3Ryb2tlU3R5bGUgfHwgU3Ryb2tlU3R5bGUuc29saWQ7XG59O1xuIl19