@limble/limble-tree 1.0.0-beta.2 → 1.0.0-beta.4

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 (126) hide show
  1. package/esm2020/lib/components/branch/branch.component.mjs +4 -4
  2. package/esm2020/lib/components/branch/index.mjs +2 -0
  3. package/esm2020/lib/components/dragover-no-change-detect.mjs +39 -0
  4. package/esm2020/lib/components/dropzone/dropzone.component.mjs +2 -2
  5. package/esm2020/lib/components/dropzone/index.mjs +2 -0
  6. package/esm2020/lib/components/host-component.interface.mjs +1 -1
  7. package/esm2020/lib/components/index.mjs +7 -0
  8. package/esm2020/lib/components/node-component.interface.mjs +1 -1
  9. package/esm2020/lib/components/root/index.mjs +2 -0
  10. package/esm2020/lib/components/root/root.component.mjs +3 -3
  11. package/esm2020/lib/core/branch-options.interface.mjs +1 -1
  12. package/esm2020/lib/core/branchable.interface.mjs +2 -0
  13. package/esm2020/lib/core/component-container.interface.mjs +2 -0
  14. package/esm2020/lib/core/configuration/configuration.mjs +1 -1
  15. package/esm2020/lib/core/configuration/index.mjs +3 -0
  16. package/esm2020/lib/core/configuration/tree-options.interface.mjs +1 -1
  17. package/esm2020/lib/core/index.mjs +11 -5
  18. package/esm2020/lib/core/tree-branch/branch-controller.mjs +4 -4
  19. package/esm2020/lib/core/tree-branch/graftable.interface.mjs +2 -0
  20. package/esm2020/lib/core/tree-branch/index.mjs +4 -0
  21. package/esm2020/lib/core/tree-branch/tree-branch.mjs +17 -13
  22. package/esm2020/lib/core/tree-node-base.mjs +3 -4
  23. package/esm2020/lib/core/tree-node.interface.mjs +2 -0
  24. package/esm2020/lib/core/tree-plot.interface.mjs +2 -0
  25. package/esm2020/lib/core/tree-root/index.mjs +3 -0
  26. package/esm2020/lib/core/tree-root/root-controller.mjs +4 -4
  27. package/esm2020/lib/core/tree-root/tree-root.mjs +5 -5
  28. package/esm2020/lib/core/tree-service/index.mjs +2 -0
  29. package/esm2020/lib/core/tree-service/tree.service.mjs +3 -3
  30. package/esm2020/lib/events/drag/drag-end-event.mjs +1 -1
  31. package/esm2020/lib/events/drag/drag-start-event.mjs +1 -1
  32. package/esm2020/lib/events/drag/drop-event.mjs +1 -1
  33. package/esm2020/lib/events/general/destruction-event.mjs +1 -1
  34. package/esm2020/lib/events/index.mjs +3 -2
  35. package/esm2020/lib/events/relational/graft-event.mjs +1 -1
  36. package/esm2020/lib/events/relational/index.mjs +2 -1
  37. package/esm2020/lib/events/relational/prune-event.mjs +1 -1
  38. package/esm2020/lib/events/relational/relational-tree-event.interface.mjs +1 -1
  39. package/esm2020/lib/events/relational/tree-relationship.interface.mjs +2 -0
  40. package/esm2020/lib/events/tree-event.interface.mjs +2 -0
  41. package/esm2020/lib/extras/collapse/collapse.mjs +1 -1
  42. package/esm2020/lib/extras/collapse/index.mjs +2 -1
  43. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.mjs +4 -6
  44. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.module.mjs +4 -5
  45. package/esm2020/lib/extras/drag-and-drop/drag-and-drop.service.mjs +1 -1
  46. package/esm2020/lib/extras/drag-and-drop/drag-state.mjs +2 -2
  47. package/esm2020/lib/extras/drag-and-drop/dropzone-renderer.mjs +6 -8
  48. package/esm2020/lib/extras/drag-and-drop/index.mjs +4 -2
  49. package/esm2020/lib/legacy/legacy-tree.mjs +3 -4
  50. package/esm2020/lib/legacy/limble-tree-legacy.module.mjs +2 -2
  51. package/esm2020/lib/legacy/limble-tree-root/limble-tree-root.component.mjs +2 -2
  52. package/esm2020/public-api.mjs +9 -9
  53. package/esm2020/shared/index.mjs +3 -0
  54. package/fesm2015/limble-limble-tree.mjs +250 -246
  55. package/fesm2015/limble-limble-tree.mjs.map +1 -1
  56. package/fesm2020/limble-limble-tree.mjs +248 -244
  57. package/fesm2020/limble-limble-tree.mjs.map +1 -1
  58. package/lib/components/branch/branch.component.d.ts +4 -4
  59. package/lib/components/branch/index.d.ts +1 -0
  60. package/lib/components/dropzone/index.d.ts +1 -0
  61. package/lib/components/host-component.interface.d.ts +1 -1
  62. package/lib/components/index.d.ts +6 -0
  63. package/lib/components/node-component.interface.d.ts +1 -1
  64. package/lib/components/root/index.d.ts +1 -0
  65. package/lib/components/root/root.component.d.ts +3 -3
  66. package/lib/core/branch-options.interface.d.ts +1 -1
  67. package/lib/core/branchable.interface.d.ts +8 -0
  68. package/lib/core/configuration/configuration.d.ts +1 -1
  69. package/lib/core/configuration/index.d.ts +2 -0
  70. package/lib/core/configuration/tree-options.interface.d.ts +2 -2
  71. package/lib/core/index.d.ts +10 -4
  72. package/lib/core/tree-branch/branch-controller.d.ts +4 -4
  73. package/lib/core/tree-branch/graftable.interface.d.ts +7 -0
  74. package/lib/core/tree-branch/index.d.ts +3 -0
  75. package/lib/core/tree-branch/tree-branch.d.ts +13 -11
  76. package/lib/core/tree-node-base.d.ts +9 -10
  77. package/lib/core/tree-node.interface.d.ts +16 -0
  78. package/lib/core/tree-root/index.d.ts +2 -0
  79. package/lib/core/tree-root/root-controller.d.ts +4 -4
  80. package/lib/core/tree-root/tree-root.d.ts +10 -9
  81. package/lib/core/tree-service/index.d.ts +1 -0
  82. package/lib/core/tree-service/tree.service.d.ts +2 -2
  83. package/lib/events/drag/drag-end-event.d.ts +9 -11
  84. package/lib/events/drag/drag-start-event.d.ts +5 -6
  85. package/lib/events/drag/drop-event.d.ts +6 -7
  86. package/lib/events/general/destruction-event.d.ts +5 -5
  87. package/lib/events/index.d.ts +2 -1
  88. package/lib/events/relational/graft-event.d.ts +7 -6
  89. package/lib/events/relational/index.d.ts +1 -0
  90. package/lib/events/relational/prune-event.d.ts +7 -6
  91. package/lib/events/relational/relational-tree-event.interface.d.ts +5 -4
  92. package/lib/events/relational/tree-relationship.interface.d.ts +6 -0
  93. package/lib/events/tree-event.interface.d.ts +5 -0
  94. package/lib/extras/collapse/collapse.d.ts +1 -1
  95. package/lib/extras/collapse/index.d.ts +1 -0
  96. package/lib/extras/drag-and-drop/drag-and-drop.d.ts +2 -4
  97. package/lib/extras/drag-and-drop/drag-and-drop.module.d.ts +1 -2
  98. package/lib/extras/drag-and-drop/drag-and-drop.service.d.ts +3 -3
  99. package/lib/extras/drag-and-drop/drag-state.d.ts +1 -1
  100. package/lib/extras/drag-and-drop/dropzone-renderer.d.ts +8 -9
  101. package/lib/extras/drag-and-drop/index.d.ts +3 -1
  102. package/package.json +1 -1
  103. package/public-api.d.ts +8 -8
  104. package/shared/index.d.ts +2 -0
  105. package/esm2020/lib/core/relationship.interface.mjs +0 -2
  106. package/esm2020/lib/extras/drag-and-drop/dragover-no-change-detect.mjs +0 -39
  107. package/esm2020/lib/structure/branchable.interface.mjs +0 -2
  108. package/esm2020/lib/structure/component-container.interface.mjs +0 -2
  109. package/esm2020/lib/structure/graftable.interface.mjs +0 -2
  110. package/esm2020/lib/structure/index.mjs +0 -9
  111. package/esm2020/lib/structure/tree-branch-node.interface.mjs +0 -2
  112. package/esm2020/lib/structure/tree-event.interface.mjs +0 -2
  113. package/esm2020/lib/structure/tree-node.interface.mjs +0 -2
  114. package/esm2020/lib/structure/tree-plot.mjs +0 -2
  115. package/esm2020/lib/structure/tree-relationship.interface.mjs +0 -2
  116. package/lib/core/relationship.interface.d.ts +0 -5
  117. package/lib/structure/branchable.interface.d.ts +0 -4
  118. package/lib/structure/graftable.interface.d.ts +0 -6
  119. package/lib/structure/index.d.ts +0 -8
  120. package/lib/structure/tree-branch-node.interface.d.ts +0 -5
  121. package/lib/structure/tree-event.interface.d.ts +0 -5
  122. package/lib/structure/tree-node.interface.d.ts +0 -15
  123. package/lib/structure/tree-relationship.interface.d.ts +0 -7
  124. /package/lib/{extras/drag-and-drop → components}/dragover-no-change-detect.d.ts +0 -0
  125. /package/lib/{structure → core}/component-container.interface.d.ts +0 -0
  126. /package/lib/{structure/tree-plot.d.ts → core/tree-plot.interface.d.ts} +0 -0
@@ -1,9 +1,9 @@
1
1
  import { CommonModule } from "@angular/common";
2
2
  import { Component, EventEmitter, Input, NgZone, Output, ViewChild, ViewChildren, ViewContainerRef } from "@angular/core";
3
3
  import { map, merge } from "rxjs";
4
- import { DropzoneComponent } from "../dropzone/dropzone.component";
5
- import { DragoverNoChangeDetectDirective } from "../../extras/drag-and-drop/dragover-no-change-detect";
6
- import { assert } from "../../../shared/assert";
4
+ import { DropzoneComponent } from "../dropzone";
5
+ import { DragoverNoChangeDetectDirective } from "../dragover-no-change-detect";
6
+ import { assert } from "../../../shared";
7
7
  import * as i0 from "@angular/core";
8
8
  export class BranchComponent {
9
9
  constructor(appRef) {
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
76
76
  }], dropped: [{
77
77
  type: Output
78
78
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9icmFuY2gvYnJhbmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9icmFuY2gvYnJhbmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBR0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUduRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUN2RyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBU2hELE1BQU0sT0FBTyxlQUFlO0lBc0J6QixZQUFvQyxNQUFzQjtRQUF0QixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQWxCMUQsc0JBQWlCLEdBQWlDLFNBQVMsQ0FBQztRQUU1RCxxQkFBZ0IsR0FBaUMsU0FBUyxDQUFDO1FBQzFCLGNBQVMsR0FFekIsU0FBUyxDQUFDO1FBSVIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBQ3ZDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQXFCLENBQUM7UUFDdEQsWUFBTyxHQUFHLElBQUksWUFBWSxFQUF1QixDQUFDO1FBRTlELHNCQUFpQixHQUFZLEtBQUssQ0FB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L0IsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHtcbiAgIEFmdGVyVmlld0luaXQsXG4gICBBcHBsaWNhdGlvblJlZixcbiAgIENvbXBvbmVudCxcbiAgIENvbXBvbmVudFJlZixcbiAgIEV2ZW50RW1pdHRlcixcbiAgIElucHV0LFxuICAgTmdab25lLFxuICAgT25EZXN0cm95LFxuICAgT3V0cHV0LFxuICAgUXVlcnlMaXN0LFxuICAgVHlwZSxcbiAgIFZpZXdDaGlsZCxcbiAgIFZpZXdDaGlsZHJlbixcbiAgIFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IG1hcCwgbWVyZ2UgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRHJvcHpvbmVDb21wb25lbnQgfSBmcm9tIFwiLi4vZHJvcHpvbmUvZHJvcHpvbmUuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBIb3N0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2hvc3QtY29tcG9uZW50LmludGVyZmFjZVwiO1xuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmUgfSBmcm9tIFwiLi4vLi4vZXh0cmFzL2RyYWctYW5kLWRyb3AvZHJhZ292ZXItbm8tY2hhbmdlLWRldGVjdFwiO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9hc3NlcnRcIjtcblxuQENvbXBvbmVudCh7XG4gICBzdGFuZGFsb25lOiB0cnVlLFxuICAgc2VsZWN0b3I6IFwiYnJhbmNoXCIsXG4gICB0ZW1wbGF0ZVVybDogXCIuL2JyYW5jaC5jb21wb25lbnQuaHRtbFwiLFxuICAgc3R5bGVVcmxzOiBbXCIuL2JyYW5jaC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERyb3B6b25lQ29tcG9uZW50LCBEcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBCcmFuY2hDb21wb25lbnQ8VD5cbiAgIGltcGxlbWVudHMgTm9kZUNvbXBvbmVudCwgSG9zdENvbXBvbmVudDxUPiwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gICBAVmlld0NoaWxkKFwiYnJhbmNoZXNDb250YWluZXJcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gICBicmFuY2hlc0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgIEBWaWV3Q2hpbGQoXCJjb250ZW50Q29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICAgY29udGVudENvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgIEBWaWV3Q2hpbGRyZW4oRHJvcHpvbmVDb21wb25lbnQpIGRyb3B6b25lczpcbiAgICAgIHwgUXVlcnlMaXN0PERyb3B6b25lQ29tcG9uZW50PlxuICAgICAgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgIEBJbnB1dCgpIGNvbnRlbnRUb0hvc3Q/OiBUeXBlPFQ+O1xuXG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgY29udGVudENyZWF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XG4gICBAT3V0cHV0KCkgcmVhZG9ubHkgc2hvd0Ryb3B6b25lcyA9IG5ldyBFdmVudEVtaXR0ZXI8XCJ1cHBlclwiIHwgXCJsb3dlclwiPigpO1xuICAgQE91dHB1dCgpIHJlYWRvbmx5IGRyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFwiaW5uZXJcIiB8IFwibGF0ZXJhbFwiPigpO1xuXG4gICBwdWJsaWMgc2hvd0lubmVyRHJvcHpvbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgIHB1YmxpYyBzaG93TGF0ZXJhbERyb3B6b25lOiBib29sZWFuID0gZmFsc2U7XG5cbiAgIHByaXZhdGUgaG9zdGVkQ29udGVudD86IENvbXBvbmVudFJlZjxUPjtcblxuICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZikge31cblxuICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgIGFzc2VydCh0aGlzLmNvbnRlbnRDb250YWluZXIgIT09IHVuZGVmaW5lZCk7XG4gICAgICBhc3NlcnQodGhpcy5jb250ZW50VG9Ib3N0ICE9PSB1bmRlZmluZWQpO1xuICAgICAgdGhpcy5ob3N0ZWRDb250ZW50ID0gdGhpcy5jb250ZW50Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgIHRoaXMuY29udGVudFRvSG9zdFxuICAgICAgKTtcbiAgICAgIHRoaXMuY29udGVudENyZWF0ZWQuZW1pdCh0aGlzLmhvc3RlZENvbnRlbnQuaW5zdGFuY2UpO1xuICAgICAgYXNzZXJ0KHRoaXMuZHJvcHpvbmVzICE9PSB1bmRlZmluZWQpO1xuICAgICAgY29uc3QgaW5uZXIgPSB0aGlzLmRyb3B6b25lcy5nZXQoMCk7XG4gICAgICBjb25zdCBsYXRlcmFsID0gdGhpcy5kcm9wem9uZXMuZ2V0KDEpO1xuICAgICAgYXNzZXJ0KGlubmVyICE9PSB1bmRlZmluZWQgJiYgbGF0ZXJhbCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIG1lcmdlKFxuICAgICAgICAgaW5uZXIuZHJvcHBlZC5waXBlKG1hcCgoKSA9PiBcImlubmVyXCIgYXMgY29uc3QpKSxcbiAgICAgICAgIGxhdGVyYWwuZHJvcHBlZC5waXBlKG1hcCgoKSA9PiBcImxhdGVyYWxcIiBhcyBjb25zdCkpXG4gICAgICApLnN1YnNjcmliZSh0aGlzLmRyb3BwZWQpO1xuICAgICAgdGhpcy5ob3N0ZWRDb250ZW50LmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgIH1cblxuICAgcHVibGljIGdldEhvc3RlZENvbnRlbnQoKTogQ29tcG9uZW50UmVmPFQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiB0aGlzLmhvc3RlZENvbnRlbnQ7XG4gICB9XG5cbiAgIHB1YmxpYyB0cmlnZ2VyQ2hhbmdlRGV0ZWN0aW9uKCk6IHZvaWQge1xuICAgICAgaWYgKCFOZ1pvbmUuaXNJbkFuZ3VsYXJab25lKCkpIHtcbiAgICAgICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgICAgIH1cbiAgIH1cblxuICAgcHJvdGVjdGVkIGRyYWdvdmVySGFuZGxlcihldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICBjb25zdCBlbGVtZW50SGVpZ2h0ID0gKFxuICAgICAgICAgZXZlbnQuY3VycmVudFRhcmdldCBhcyBIVE1MRWxlbWVudFxuICAgICAgKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQ7XG4gICAgICBpZiAoZXZlbnQub2Zmc2V0WSA8IGVsZW1lbnRIZWlnaHQgLyAyKSB7XG4gICAgICAgICB0aGlzLnNob3dEcm9wem9uZXMuZW1pdChcInVwcGVyXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgIHRoaXMuc2hvd0Ryb3B6b25lcy5lbWl0KFwibG93ZXJcIik7XG4gICAgICB9XG4gICB9XG5cbiAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIC8vSSdtIG5vdCAxMDAlIHN1cmUgd2h5LCBidXQgd2UgaGF2ZSB0byByZW1vdmUgYW55IHJlZmVyZW5jZSB0byB0aGVcbiAgICAgIC8vY29tcG9uZW50UmVmIG90aGVyd2lzZSBBbmd1bGFyIHdpbGwgbmV2ZXIgcmVsZWFzZSBpdCBmb3IgZ2FyYmFnZVxuICAgICAgLy9jb2xsZWN0aW9uLlxuICAgICAgdGhpcy5ob3N0ZWRDb250ZW50ID0gdW5kZWZpbmVkO1xuICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRlbnRcIiAoZHJhZ292ZXJOb0NoYW5nZURldGVjdCk9XCJkcmFnb3ZlckhhbmRsZXIoJGV2ZW50KVwiPlxuICAgPGRpdiAjY29udGVudENvbnRhaW5lcj48L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImJyYW5jaGVzLWNvbnRhaW5lclwiPlxuICAgPGRyb3B6b25lIHBsYWNlbWVudD1cImlubmVyXCIgW2hpZGRlbl09XCIhc2hvd0lubmVyRHJvcHpvbmVcIj48L2Ryb3B6b25lPlxuICAgPGRpdiAjYnJhbmNoZXNDb250YWluZXI+PC9kaXY+XG48L2Rpdj5cbjxkcm9wem9uZSBwbGFjZW1lbnQ9XCJsYXRlcmFsXCIgW2hpZGRlbl09XCIhc2hvd0xhdGVyYWxEcm9wem9uZVwiPjwvZHJvcHpvbmU+XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9icmFuY2gvYnJhbmNoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9icmFuY2gvYnJhbmNoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBR0osU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxFQUNaLGdCQUFnQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVN6QyxNQUFNLE9BQU8sZUFBZTtJQXNCekIsWUFBb0MsTUFBc0I7UUFBdEIsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFsQjFELHNCQUFpQixHQUFpQyxTQUFTLENBQUM7UUFFNUQscUJBQWdCLEdBQWlDLFNBQVMsQ0FBQztRQUMxQixjQUFTLEdBRXpCLFNBQVMsQ0FBQztRQUlSLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUN2QyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFxQixDQUFDO1FBQ3RELFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUU5RCxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFDbkMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO0lBSWlCLENBQUM7SUFFdkQsZUFBZTtRQUNuQixNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FDdkQsSUFBSSxDQUFDLGFBQWEsQ0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEtBQUssS0FBSyxTQUFTLElBQUksT0FBTyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELEtBQUssQ0FDRixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBZ0IsQ0FBQyxDQUFDLEVBQy9DLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFrQixDQUFDLENBQUMsQ0FDckQsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVNLGdCQUFnQjtRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDN0IsQ0FBQztJQUVNLHNCQUFzQjtRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFFO1lBQzVCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDckI7SUFDSixDQUFDO0lBRVMsZUFBZSxDQUFDLEtBQWdCO1FBQ3ZDLE1BQU0sYUFBYSxHQUNoQixLQUFLLENBQUMsYUFDUixDQUFDLHFCQUFxQixFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ2pDLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxhQUFhLEdBQUcsQ0FBQyxFQUFFO1lBQ3BDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDSixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUNuQztJQUNKLENBQUM7SUFFTSxXQUFXO1FBQ2YsbUVBQW1FO1FBQ25FLGtFQUFrRTtRQUNsRSxhQUFhO1FBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7SUFDbEMsQ0FBQzs7NkdBcEVTLGVBQWU7aUdBQWYsZUFBZSxvVEFHZSxnQkFBZ0IsK0dBRWpCLGdCQUFnQiw0Q0FFekMsaUJBQWlCLGdEQ3RDbEMsc1dBUUEsZ0dEcUJhLFlBQVksK0JBQUUsaUJBQWlCLGtHQUFFLCtCQUErQjs0RkFFaEUsZUFBZTtrQkFQM0IsU0FBUztpQ0FDSyxJQUFJLFlBQ04sUUFBUSxXQUdULENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLCtCQUErQixDQUFDO3FHQU0zRSxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRzFELGdCQUFnQjtzQkFEZixTQUFTO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUV4QixTQUFTO3NCQUF6QyxZQUFZO3VCQUFDLGlCQUFpQjtnQkFJdEIsYUFBYTtzQkFBckIsS0FBSztnQkFFYSxjQUFjO3NCQUFoQyxNQUFNO2dCQUNZLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1ksT0FBTztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gICB0eXBlIEFmdGVyVmlld0luaXQsXG4gICBBcHBsaWNhdGlvblJlZixcbiAgIENvbXBvbmVudCxcbiAgIHR5cGUgQ29tcG9uZW50UmVmLFxuICAgRXZlbnRFbWl0dGVyLFxuICAgSW5wdXQsXG4gICBOZ1pvbmUsXG4gICB0eXBlIE9uRGVzdHJveSxcbiAgIE91dHB1dCxcbiAgIHR5cGUgUXVlcnlMaXN0LFxuICAgdHlwZSBUeXBlLFxuICAgVmlld0NoaWxkLFxuICAgVmlld0NoaWxkcmVuLFxuICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgbWFwLCBtZXJnZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7IEhvc3RDb21wb25lbnQgfSBmcm9tIFwiLi4vaG9zdC1jb21wb25lbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgdHlwZSB7IE5vZGVDb21wb25lbnQgfSBmcm9tIFwiLi4vbm9kZS1jb21wb25lbnQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBEcm9wem9uZUNvbXBvbmVudCB9IGZyb20gXCIuLi9kcm9wem9uZVwiO1xuaW1wb3J0IHsgRHJhZ292ZXJOb0NoYW5nZURldGVjdERpcmVjdGl2ZSB9IGZyb20gXCIuLi9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0XCI7XG5pbXBvcnQgeyBhc3NlcnQgfSBmcm9tIFwiLi4vLi4vLi4vc2hhcmVkXCI7XG5cbkBDb21wb25lbnQoe1xuICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgIHNlbGVjdG9yOiBcImJyYW5jaFwiLFxuICAgdGVtcGxhdGVVcmw6IFwiLi9icmFuY2guY29tcG9uZW50Lmh0bWxcIixcbiAgIHN0eWxlVXJsczogW1wiLi9icmFuY2guY29tcG9uZW50LnNjc3NcIl0sXG4gICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEcm9wem9uZUNvbXBvbmVudCwgRHJhZ292ZXJOb0NoYW5nZURldGVjdERpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgQnJhbmNoQ29tcG9uZW50PFQ+XG4gICBpbXBsZW1lbnRzIE5vZGVDb21wb25lbnQsIEhvc3RDb21wb25lbnQ8VD4sIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICAgQFZpZXdDaGlsZChcImJyYW5jaGVzQ29udGFpbmVyXCIsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KVxuICAgYnJhbmNoZXNDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICBAVmlld0NoaWxkKFwiY29udGVudENvbnRhaW5lclwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYgfSlcbiAgIGNvbnRlbnRDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gICBAVmlld0NoaWxkcmVuKERyb3B6b25lQ29tcG9uZW50KSBkcm9wem9uZXM6XG4gICAgICB8IFF1ZXJ5TGlzdDxEcm9wem9uZUNvbXBvbmVudD5cbiAgICAgIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG4gICBASW5wdXQoKSBjb250ZW50VG9Ib3N0PzogVHlwZTxUPjtcblxuICAgQE91dHB1dCgpIHJlYWRvbmx5IGNvbnRlbnRDcmVhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICAgQE91dHB1dCgpIHJlYWRvbmx5IHNob3dEcm9wem9uZXMgPSBuZXcgRXZlbnRFbWl0dGVyPFwidXBwZXJcIiB8IFwibG93ZXJcIj4oKTtcbiAgIEBPdXRwdXQoKSByZWFkb25seSBkcm9wcGVkID0gbmV3IEV2ZW50RW1pdHRlcjxcImlubmVyXCIgfCBcImxhdGVyYWxcIj4oKTtcblxuICAgcHVibGljIHNob3dJbm5lckRyb3B6b25lOiBib29sZWFuID0gZmFsc2U7XG4gICBwdWJsaWMgc2hvd0xhdGVyYWxEcm9wem9uZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICBwcml2YXRlIGhvc3RlZENvbnRlbnQ/OiBDb21wb25lbnRSZWY8VD47XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFwcFJlZjogQXBwbGljYXRpb25SZWYpIHt9XG5cbiAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICBhc3NlcnQodGhpcy5jb250ZW50Q29udGFpbmVyICE9PSB1bmRlZmluZWQpO1xuICAgICAgYXNzZXJ0KHRoaXMuY29udGVudFRvSG9zdCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuaG9zdGVkQ29udGVudCA9IHRoaXMuY29udGVudENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgICB0aGlzLmNvbnRlbnRUb0hvc3RcbiAgICAgICk7XG4gICAgICB0aGlzLmNvbnRlbnRDcmVhdGVkLmVtaXQodGhpcy5ob3N0ZWRDb250ZW50Lmluc3RhbmNlKTtcbiAgICAgIGFzc2VydCh0aGlzLmRyb3B6b25lcyAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIGNvbnN0IGlubmVyID0gdGhpcy5kcm9wem9uZXMuZ2V0KDApO1xuICAgICAgY29uc3QgbGF0ZXJhbCA9IHRoaXMuZHJvcHpvbmVzLmdldCgxKTtcbiAgICAgIGFzc2VydChpbm5lciAhPT0gdW5kZWZpbmVkICYmIGxhdGVyYWwgIT09IHVuZGVmaW5lZCk7XG4gICAgICBtZXJnZShcbiAgICAgICAgIGlubmVyLmRyb3BwZWQucGlwZShtYXAoKCkgPT4gXCJpbm5lclwiIGFzIGNvbnN0KSksXG4gICAgICAgICBsYXRlcmFsLmRyb3BwZWQucGlwZShtYXAoKCkgPT4gXCJsYXRlcmFsXCIgYXMgY29uc3QpKVxuICAgICAgKS5zdWJzY3JpYmUodGhpcy5kcm9wcGVkKTtcbiAgICAgIHRoaXMuaG9zdGVkQ29udGVudC5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRIb3N0ZWRDb250ZW50KCk6IENvbXBvbmVudFJlZjxUPiB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5ob3N0ZWRDb250ZW50O1xuICAgfVxuXG4gICBwdWJsaWMgdHJpZ2dlckNoYW5nZURldGVjdGlvbigpOiB2b2lkIHtcbiAgICAgIGlmICghTmdab25lLmlzSW5Bbmd1bGFyWm9uZSgpKSB7XG4gICAgICAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gICAgICB9XG4gICB9XG5cbiAgIHByb3RlY3RlZCBkcmFnb3ZlckhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgY29uc3QgZWxlbWVudEhlaWdodCA9IChcbiAgICAgICAgIGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnRcbiAgICAgICkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0O1xuICAgICAgaWYgKGV2ZW50Lm9mZnNldFkgPCBlbGVtZW50SGVpZ2h0IC8gMikge1xuICAgICAgICAgdGhpcy5zaG93RHJvcHpvbmVzLmVtaXQoXCJ1cHBlclwiKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgICB0aGlzLnNob3dEcm9wem9uZXMuZW1pdChcImxvd2VyXCIpO1xuICAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAvL0knbSBub3QgMTAwJSBzdXJlIHdoeSwgYnV0IHdlIGhhdmUgdG8gcmVtb3ZlIGFueSByZWZlcmVuY2UgdG8gdGhlXG4gICAgICAvL2NvbXBvbmVudFJlZiBvdGhlcndpc2UgQW5ndWxhciB3aWxsIG5ldmVyIHJlbGVhc2UgaXQgZm9yIGdhcmJhZ2VcbiAgICAgIC8vY29sbGVjdGlvbi5cbiAgICAgIHRoaXMuaG9zdGVkQ29udGVudCA9IHVuZGVmaW5lZDtcbiAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250ZW50XCIgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKCRldmVudClcIj5cbiAgIDxkaXYgI2NvbnRlbnRDb250YWluZXI+PC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJicmFuY2hlcy1jb250YWluZXJcIj5cbiAgIDxkcm9wem9uZSBwbGFjZW1lbnQ9XCJpbm5lclwiIFtoaWRkZW5dPVwiIXNob3dJbm5lckRyb3B6b25lXCI+PC9kcm9wem9uZT5cbiAgIDxkaXYgI2JyYW5jaGVzQ29udGFpbmVyPjwvZGl2PlxuPC9kaXY+XG48ZHJvcHpvbmUgcGxhY2VtZW50PVwibGF0ZXJhbFwiIFtoaWRkZW5dPVwiIXNob3dMYXRlcmFsRHJvcHpvbmVcIj48L2Ryb3B6b25lPlxuIl19
@@ -0,0 +1,2 @@
1
+ export * from "./branch.component";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvbXBvbmVudHMvYnJhbmNoL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9icmFuY2guY29tcG9uZW50XCI7XG4iXX0=
@@ -0,0 +1,39 @@
1
+ import { Directive, EventEmitter, Output } from "@angular/core";
2
+ import { fromEvent } from "rxjs";
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * Works just like Angular's built-in `(dragover)` event binding, but is much
6
+ * more performant. It throttles the event to a configurable rate (default once
7
+ * every 25ms) and runs outside of Angular's change detection.
8
+ */
9
+ export class DragoverNoChangeDetectDirective {
10
+ constructor(ngZone, el) {
11
+ this.ngZone = ngZone;
12
+ this.el = el;
13
+ this.dragoverNoChangeDetect = new EventEmitter();
14
+ }
15
+ ngOnInit() {
16
+ this.ngZone.runOutsideAngular(() => {
17
+ this.eventSubscription = fromEvent(this.el.nativeElement, "dragover").subscribe(($event) => {
18
+ this.dragoverNoChangeDetect.emit($event);
19
+ });
20
+ });
21
+ }
22
+ ngOnDestroy() {
23
+ if (this.eventSubscription !== undefined) {
24
+ this.eventSubscription.unsubscribe();
25
+ }
26
+ }
27
+ }
28
+ DragoverNoChangeDetectDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DragoverNoChangeDetectDirective, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
29
+ DragoverNoChangeDetectDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.12", type: DragoverNoChangeDetectDirective, isStandalone: true, selector: "[dragoverNoChangeDetect]", outputs: { dragoverNoChangeDetect: "dragoverNoChangeDetect" }, ngImport: i0 });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: DragoverNoChangeDetectDirective, decorators: [{
31
+ type: Directive,
32
+ args: [{
33
+ standalone: true,
34
+ selector: "[dragoverNoChangeDetect]"
35
+ }]
36
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ElementRef }]; }, propDecorators: { dragoverNoChangeDetect: [{
37
+ type: Output
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ292ZXItbm8tY2hhbmdlLWRldGVjdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9kcmFnb3Zlci1uby1jaGFuZ2UtZGV0ZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSixTQUFTLEVBRVQsWUFBWSxFQUlaLE1BQU0sRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLE1BQU0sQ0FBQzs7QUFFcEQ7Ozs7R0FJRztBQUtILE1BQU0sT0FBTywrQkFBK0I7SUFJekMsWUFDb0IsTUFBYyxFQUNkLEVBQXVCO1FBRHZCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxPQUFFLEdBQUYsRUFBRSxDQUFxQjtRQUV4QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztJQUMvRCxDQUFDO0lBRU0sUUFBUTtRQUNaLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQy9CLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUNyQixVQUFVLENBQ1osQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUM1QyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVNLFdBQVc7UUFDZixJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxTQUFTLEVBQUU7WUFDdkMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3ZDO0lBQ0osQ0FBQzs7NkhBMUJTLCtCQUErQjtpSEFBL0IsK0JBQStCOzRGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3RDO3NIQUVxQixzQkFBc0I7c0JBQXhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgRGlyZWN0aXZlLFxuICAgRWxlbWVudFJlZixcbiAgIEV2ZW50RW1pdHRlcixcbiAgIE5nWm9uZSxcbiAgIHR5cGUgT25EZXN0cm95LFxuICAgdHlwZSBPbkluaXQsXG4gICBPdXRwdXRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGZyb21FdmVudCwgdHlwZSBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuXG4vKipcbiAqIFdvcmtzIGp1c3QgbGlrZSBBbmd1bGFyJ3MgYnVpbHQtaW4gYChkcmFnb3ZlcilgIGV2ZW50IGJpbmRpbmcsIGJ1dCBpcyBtdWNoXG4gKiBtb3JlIHBlcmZvcm1hbnQuIEl0IHRocm90dGxlcyB0aGUgZXZlbnQgdG8gYSBjb25maWd1cmFibGUgcmF0ZSAoZGVmYXVsdCBvbmNlXG4gKiBldmVyeSAyNW1zKSBhbmQgcnVucyBvdXRzaWRlIG9mIEFuZ3VsYXIncyBjaGFuZ2UgZGV0ZWN0aW9uLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICBzZWxlY3RvcjogXCJbZHJhZ292ZXJOb0NoYW5nZURldGVjdF1cIlxufSlcbmV4cG9ydCBjbGFzcyBEcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgQE91dHB1dCgpIHJlYWRvbmx5IGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3Q6IEV2ZW50RW1pdHRlcjxEcmFnRXZlbnQ+O1xuICAgcHJpdmF0ZSBldmVudFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgcHJpdmF0ZSByZWFkb25seSBlbDogRWxlbWVudFJlZjxFbGVtZW50PlxuICAgKSB7XG4gICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcbiAgIH1cblxuICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbiA9IGZyb21FdmVudDxEcmFnRXZlbnQ+KFxuICAgICAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgXCJkcmFnb3ZlclwiXG4gICAgICAgICApLnN1YnNjcmliZSgoJGV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QuZW1pdCgkZXZlbnQpO1xuICAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgIH1cblxuICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuZXZlbnRTdWJzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgdGhpcy5ldmVudFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { CommonModule } from "@angular/common";
2
2
  import { Component, EventEmitter, Input, Output } from "@angular/core";
3
- import { DragoverNoChangeDetectDirective } from "../../extras/drag-and-drop/dragover-no-change-detect";
3
+ import { DragoverNoChangeDetectDirective } from "../dragover-no-change-detect";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common";
6
6
  export class DropzoneComponent {
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
32
32
  }], dropped: [{
33
33
  type: Output
34
34
  }] } });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3B6b25lL2Ryb3B6b25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9kcm9wem9uZS9kcm9wem9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7O0FBU3ZHLE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFTc0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFFakQsV0FBTSxHQUFZLEtBQUssQ0FBQztLQWtCcEM7SUFoQlMsZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFnQjtRQUNwQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsS0FBSyxDQUFDLFlBQTZCLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztJQUM1RCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWdCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OytHQXJCUyxpQkFBaUI7bUdBQWpCLGlCQUFpQix5SUNYOUIsdVBBUUEsc1lEQ2EsWUFBWSw2SEFBRSwrQkFBK0I7NEZBRTdDLGlCQUFpQjtrQkFQN0IsU0FBUztpQ0FDSyxJQUFJLFlBQ04sVUFBVSxXQUdYLENBQUMsWUFBWSxFQUFFLCtCQUErQixDQUFDOzhCQUcvQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNhLE9BQU87c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0RGlyZWN0aXZlIH0gZnJvbSBcIi4uLy4uL2V4dHJhcy9kcmFnLWFuZC1kcm9wL2RyYWdvdmVyLW5vLWNoYW5nZS1kZXRlY3RcIjtcblxuQENvbXBvbmVudCh7XG4gICBzdGFuZGFsb25lOiB0cnVlLFxuICAgc2VsZWN0b3I6IFwiZHJvcHpvbmVcIixcbiAgIHRlbXBsYXRlVXJsOiBcIi4vZHJvcHpvbmUuY29tcG9uZW50Lmh0bWxcIixcbiAgIHN0eWxlVXJsczogW1wiLi9kcm9wem9uZS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIERyb3B6b25lQ29tcG9uZW50IHtcbiAgIEBJbnB1dCgpIHBsYWNlbWVudD86IFwiaW5uZXJcIiB8IFwibGF0ZXJhbFwiO1xuICAgQE91dHB1dCgpIHJlYWRvbmx5IGRyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICAgcHJvdGVjdGVkIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICBwdWJsaWMgZHJhZ2VudGVySGFuZGxlcigpOiB2b2lkIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgIH1cblxuICAgcHVibGljIGRyYWdsZWF2ZUhhbmRsZXIoKTogdm9pZCB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgfVxuXG4gICBwdWJsaWMgZHJhZ292ZXJIYW5kbGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQuZGF0YVRyYW5zZmVyIGFzIERhdGFUcmFuc2ZlcikuZHJvcEVmZmVjdCA9IFwibW92ZVwiO1xuICAgfVxuXG4gICBwdWJsaWMgZHJvcEhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgdGhpcy5kcm9wcGVkLmVtaXQoZXZlbnQpO1xuICAgfVxufVxuIiwiPGRpdlxuICAgY2xhc3M9XCJkcm9wem9uZVwiXG4gICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlIH1cIlxuICAgKGRyYWdlbnRlcik9XCJkcmFnZW50ZXJIYW5kbGVyKClcIlxuICAgKGRyYWdsZWF2ZSk9XCJkcmFnbGVhdmVIYW5kbGVyKClcIlxuICAgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKCRldmVudClcIlxuICAgKGRyb3ApPVwiZHJvcEhhbmRsZXIoJGV2ZW50KVwiXG4+PC9kaXY+XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb21wb25lbnRzL2Ryb3B6b25lL2Ryb3B6b25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9kcm9wem9uZS9kcm9wem9uZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBUy9FLE1BQU0sT0FBTyxpQkFBaUI7SUFQOUI7UUFTc0IsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFhLENBQUM7UUFFakQsV0FBTSxHQUFZLEtBQUssQ0FBQztLQWtCcEM7SUFoQlMsZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLENBQUM7SUFFTSxnQkFBZ0I7UUFDcEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFnQjtRQUNwQyxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsS0FBSyxDQUFDLFlBQTZCLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztJQUM1RCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQWdCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OytHQXJCUyxpQkFBaUI7bUdBQWpCLGlCQUFpQix5SUNYOUIsdVBBUUEsc1lEQ2EsWUFBWSw2SEFBRSwrQkFBK0I7NEZBRTdDLGlCQUFpQjtrQkFQN0IsU0FBUztpQ0FDSyxJQUFJLFlBQ04sVUFBVSxXQUdYLENBQUMsWUFBWSxFQUFFLCtCQUErQixDQUFDOzhCQUcvQyxTQUFTO3NCQUFqQixLQUFLO2dCQUNhLE9BQU87c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBEcmFnb3Zlck5vQ2hhbmdlRGV0ZWN0RGlyZWN0aXZlIH0gZnJvbSBcIi4uL2RyYWdvdmVyLW5vLWNoYW5nZS1kZXRlY3RcIjtcblxuQENvbXBvbmVudCh7XG4gICBzdGFuZGFsb25lOiB0cnVlLFxuICAgc2VsZWN0b3I6IFwiZHJvcHpvbmVcIixcbiAgIHRlbXBsYXRlVXJsOiBcIi4vZHJvcHpvbmUuY29tcG9uZW50Lmh0bWxcIixcbiAgIHN0eWxlVXJsczogW1wiLi9kcm9wem9uZS5jb21wb25lbnQuc2Nzc1wiXSxcbiAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERyYWdvdmVyTm9DaGFuZ2VEZXRlY3REaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIERyb3B6b25lQ29tcG9uZW50IHtcbiAgIEBJbnB1dCgpIHBsYWNlbWVudD86IFwiaW5uZXJcIiB8IFwibGF0ZXJhbFwiO1xuICAgQE91dHB1dCgpIHJlYWRvbmx5IGRyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERyYWdFdmVudD4oKTtcblxuICAgcHJvdGVjdGVkIGFjdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICBwdWJsaWMgZHJhZ2VudGVySGFuZGxlcigpOiB2b2lkIHtcbiAgICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcbiAgIH1cblxuICAgcHVibGljIGRyYWdsZWF2ZUhhbmRsZXIoKTogdm9pZCB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xuICAgfVxuXG4gICBwdWJsaWMgZHJhZ292ZXJIYW5kbGVyKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAoZXZlbnQuZGF0YVRyYW5zZmVyIGFzIERhdGFUcmFuc2ZlcikuZHJvcEVmZmVjdCA9IFwibW92ZVwiO1xuICAgfVxuXG4gICBwdWJsaWMgZHJvcEhhbmRsZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgICAgdGhpcy5kcm9wcGVkLmVtaXQoZXZlbnQpO1xuICAgfVxufVxuIiwiPGRpdlxuICAgY2xhc3M9XCJkcm9wem9uZVwiXG4gICBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlIH1cIlxuICAgKGRyYWdlbnRlcik9XCJkcmFnZW50ZXJIYW5kbGVyKClcIlxuICAgKGRyYWdsZWF2ZSk9XCJkcmFnbGVhdmVIYW5kbGVyKClcIlxuICAgKGRyYWdvdmVyTm9DaGFuZ2VEZXRlY3QpPVwiZHJhZ292ZXJIYW5kbGVyKCRldmVudClcIlxuICAgKGRyb3ApPVwiZHJvcEhhbmRsZXIoJGV2ZW50KVwiXG4+PC9kaXY+XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from "./dropzone.component";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvbXBvbmVudHMvZHJvcHpvbmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2Ryb3B6b25lLmNvbXBvbmVudFwiO1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC1jb21wb25lbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb21wb25lbnRzL2hvc3QtY29tcG9uZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFdmVudEVtaXR0ZXIsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhvc3RDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+IHtcbiAgIGNvbnRlbnRDcmVhdGVkOiBFdmVudEVtaXR0ZXI8VXNlcmxhbmRDb21wb25lbnQ+O1xuICAgY29udGVudFRvSG9zdD86IFR5cGU8VXNlcmxhbmRDb21wb25lbnQ+O1xuICAgZ2V0SG9zdGVkQ29udGVudDogKCkgPT4gQ29tcG9uZW50UmVmPFVzZXJsYW5kQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC1jb21wb25lbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb21wb25lbnRzL2hvc3QtY29tcG9uZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb21wb25lbnRSZWYsIEV2ZW50RW1pdHRlciwgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSG9zdENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD4ge1xuICAgY29udGVudENyZWF0ZWQ6IEV2ZW50RW1pdHRlcjxVc2VybGFuZENvbXBvbmVudD47XG4gICBjb250ZW50VG9Ib3N0PzogVHlwZTxVc2VybGFuZENvbXBvbmVudD47XG4gICBnZXRIb3N0ZWRDb250ZW50OiAoKSA9PiBDb21wb25lbnRSZWY8VXNlcmxhbmRDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export * from "./branch";
2
+ export * from "./root";
3
+ export * from "./dropzone";
4
+ export * from "./host-component.interface";
5
+ export * from "./node-component.interface";
6
+ export * from "./dragover-no-change-detect";
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFDekIsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9icmFuY2hcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Jvb3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Ryb3B6b25lXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob3N0LWNvbXBvbmVudC5pbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL25vZGUtY29tcG9uZW50LmludGVyZmFjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZHJhZ292ZXItbm8tY2hhbmdlLWRldGVjdFwiO1xuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb21wb25lbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb21wb25lbnRzL25vZGUtY29tcG9uZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm9kZUNvbXBvbmVudCB7XG4gICBicmFuY2hlc0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZDtcbiAgIHNob3dJbm5lckRyb3B6b25lOiBib29sZWFuO1xufVxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1jb21wb25lbnQuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb21wb25lbnRzL25vZGUtY29tcG9uZW50LmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBOb2RlQ29tcG9uZW50IHtcbiAgIGJyYW5jaGVzQ29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuICAgc2hvd0lubmVyRHJvcHpvbmU6IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from "./root.component";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvbXBvbmVudHMvcm9vdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vcm9vdC5jb21wb25lbnRcIjtcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { CommonModule } from "@angular/common";
2
2
  import { Component, EventEmitter, Output, ViewChild, ViewContainerRef } from "@angular/core";
3
- import { assert } from "../../../shared/assert";
4
- import { DropzoneComponent } from "../dropzone/dropzone.component";
3
+ import { assert } from "../../../shared";
4
+ import { DropzoneComponent } from "../dropzone";
5
5
  import * as i0 from "@angular/core";
6
6
  export class RootComponent {
7
7
  constructor() {
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
33
33
  }], dropped: [{
34
34
  type: Output
35
35
  }] } });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvbXBvbmVudHMvcm9vdC9yb290LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9yb290L3Jvb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFVbkUsTUFBTSxPQUFPLGFBQWE7SUFQMUI7UUFTRyxzQkFBaUIsR0FBaUMsU0FBUyxDQUFDO1FBQzlCLGFBQVEsR0FDbkMsU0FBUyxDQUFDO1FBRU0sa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pDLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRS9DLHNCQUFpQixHQUFZLEtBQUssQ0FBQztLQU81QztJQUxTLGVBQWU7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pELENBQUM7OzJHQWZTLGFBQWE7K0ZBQWIsYUFBYSxvT0FDaUIsZ0JBQWdCLHdEQUU3QyxpQkFBaUIsZ0RDdkIvQiwrSkFJQSw4RkRjYSxZQUFZLCtCQUFFLGlCQUFpQjs0RkFFL0IsYUFBYTtrQkFQekIsU0FBUztpQ0FDSyxJQUFJLFlBQ04sTUFBTSxXQUdQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDOzhCQUkxQyxpQkFBaUI7c0JBRGhCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTVCLFFBQVE7c0JBQXJDLFNBQVM7dUJBQUMsaUJBQWlCO2dCQUdULGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1ksT0FBTztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7XG4gICBBZnRlclZpZXdJbml0LFxuICAgQ29tcG9uZW50LFxuICAgRXZlbnRFbWl0dGVyLFxuICAgT3V0cHV0LFxuICAgVmlld0NoaWxkLFxuICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9hc3NlcnRcIjtcbmltcG9ydCB7IERyb3B6b25lQ29tcG9uZW50IH0gZnJvbSBcIi4uL2Ryb3B6b25lL2Ryb3B6b25lLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICBzdGFuZGFsb25lOiB0cnVlLFxuICAgc2VsZWN0b3I6IFwicm9vdFwiLFxuICAgdGVtcGxhdGVVcmw6IFwiLi9yb290LmNvbXBvbmVudC5odG1sXCIsXG4gICBzdHlsZVVybHM6IFtcIi4vcm9vdC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERyb3B6b25lQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBSb290Q29tcG9uZW50IGltcGxlbWVudHMgTm9kZUNvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICBAVmlld0NoaWxkKFwiYnJhbmNoZXNDb250YWluZXJcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gICBicmFuY2hlc0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgIEBWaWV3Q2hpbGQoRHJvcHpvbmVDb21wb25lbnQpIGRyb3B6b25lOiBEcm9wem9uZUNvbXBvbmVudCB8IHVuZGVmaW5lZCA9XG4gICAgICB1bmRlZmluZWQ7XG5cbiAgIEBPdXRwdXQoKSByZWFkb25seSBhZnRlclZpZXdJbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgQE91dHB1dCgpIHJlYWRvbmx5IGRyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgIHB1YmxpYyBzaG93SW5uZXJEcm9wem9uZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5hZnRlclZpZXdJbml0LmVtaXQoKTtcbiAgICAgIGFzc2VydCh0aGlzLmRyb3B6b25lICE9PSB1bmRlZmluZWQpO1xuICAgICAgdGhpcy5kcm9wem9uZS5kcm9wcGVkLnN1YnNjcmliZSh0aGlzLmRyb3BwZWQpO1xuICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJyYW5jaGVzLWNvbnRhaW5lclwiPlxuICAgPGRyb3B6b25lIHBsYWNlbWVudD1cImlubmVyXCIgW2hpZGRlbl09XCIhc2hvd0lubmVyRHJvcHpvbmVcIj48L2Ryb3B6b25lPlxuICAgPGRpdiAjYnJhbmNoZXNDb250YWluZXI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvbXBvbmVudHMvcm9vdC9yb290LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29tcG9uZW50cy9yb290L3Jvb3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFFSixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7O0FBVWhELE1BQU0sT0FBTyxhQUFhO0lBUDFCO1FBU0csc0JBQWlCLEdBQWlDLFNBQVMsQ0FBQztRQUM5QixhQUFRLEdBQ25DLFNBQVMsQ0FBQztRQUVNLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUUvQyxzQkFBaUIsR0FBWSxLQUFLLENBQUM7S0FPNUM7SUFMUyxlQUFlO1FBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDOzsyR0FmUyxhQUFhOytGQUFiLGFBQWEsb09BQ2lCLGdCQUFnQix3REFFN0MsaUJBQWlCLGdEQ3ZCL0IsK0pBSUEsOEZEY2EsWUFBWSwrQkFBRSxpQkFBaUI7NEZBRS9CLGFBQWE7a0JBUHpCLFNBQVM7aUNBQ0ssSUFBSSxZQUNOLE1BQU0sV0FHUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQzs4QkFJMUMsaUJBQWlCO3NCQURoQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFO2dCQUU1QixRQUFRO3NCQUFyQyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFHVCxhQUFhO3NCQUEvQixNQUFNO2dCQUNZLE9BQU87c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5pbXBvcnQge1xuICAgdHlwZSBBZnRlclZpZXdJbml0LFxuICAgQ29tcG9uZW50LFxuICAgRXZlbnRFbWl0dGVyLFxuICAgT3V0cHV0LFxuICAgVmlld0NoaWxkLFxuICAgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZFwiO1xuaW1wb3J0IHsgRHJvcHpvbmVDb21wb25lbnQgfSBmcm9tIFwiLi4vZHJvcHpvbmVcIjtcbmltcG9ydCB0eXBlIHsgTm9kZUNvbXBvbmVudCB9IGZyb20gXCIuLi9ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gICBzdGFuZGFsb25lOiB0cnVlLFxuICAgc2VsZWN0b3I6IFwicm9vdFwiLFxuICAgdGVtcGxhdGVVcmw6IFwiLi9yb290LmNvbXBvbmVudC5odG1sXCIsXG4gICBzdHlsZVVybHM6IFtcIi4vcm9vdC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERyb3B6b25lQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBSb290Q29tcG9uZW50IGltcGxlbWVudHMgTm9kZUNvbXBvbmVudCwgQWZ0ZXJWaWV3SW5pdCB7XG4gICBAVmlld0NoaWxkKFwiYnJhbmNoZXNDb250YWluZXJcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pXG4gICBicmFuY2hlc0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgIEBWaWV3Q2hpbGQoRHJvcHpvbmVDb21wb25lbnQpIGRyb3B6b25lOiBEcm9wem9uZUNvbXBvbmVudCB8IHVuZGVmaW5lZCA9XG4gICAgICB1bmRlZmluZWQ7XG5cbiAgIEBPdXRwdXQoKSByZWFkb25seSBhZnRlclZpZXdJbml0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAgQE91dHB1dCgpIHJlYWRvbmx5IGRyb3BwZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgIHB1YmxpYyBzaG93SW5uZXJEcm9wem9uZTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5hZnRlclZpZXdJbml0LmVtaXQoKTtcbiAgICAgIGFzc2VydCh0aGlzLmRyb3B6b25lICE9PSB1bmRlZmluZWQpO1xuICAgICAgdGhpcy5kcm9wem9uZS5kcm9wcGVkLnN1YnNjcmliZSh0aGlzLmRyb3BwZWQpO1xuICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJyYW5jaGVzLWNvbnRhaW5lclwiPlxuICAgPGRyb3B6b25lIHBsYWNlbWVudD1cImlubmVyXCIgW2hpZGRlbl09XCIhc2hvd0lubmVyRHJvcHpvbmVcIj48L2Ryb3B6b25lPlxuICAgPGRpdiAjYnJhbmNoZXNDb250YWluZXI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb3JlL2JyYW5jaC1vcHRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBUeXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCcmFuY2hPcHRpb25zPENvbXBvbmVudD4ge1xuICAgaW5wdXRCaW5kaW5ncz86IHtcbiAgICAgIFtLIGluIGtleW9mIENvbXBvbmVudF0/OiBDb21wb25lbnRbS107XG4gICB9O1xuICAgb3V0cHV0QmluZGluZ3M/OiB7XG4gICAgICBbSyBpbiBrZXlvZiBDb21wb25lbnRdPzogQ29tcG9uZW50W0tdIGV4dGVuZHMgRXZlbnRFbWl0dGVyPGluZmVyIFQ+XG4gICAgICAgICA/ICh2YWx1ZTogVCkgPT4gdm9pZFxuICAgICAgICAgOiBuZXZlcjtcbiAgIH07XG4gICBkZWZhdWx0Q29sbGFwc2VkPzogYm9vbGVhbjtcbiAgIG1ldGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZ1bGxCcmFuY2hPcHRpb25zPENvbXBvbmVudD4gZXh0ZW5kcyBCcmFuY2hPcHRpb25zPENvbXBvbmVudD4ge1xuICAgY29tcG9uZW50OiBUeXBlPENvbXBvbmVudD47XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbGltYmxlLXRyZWUvc3JjL2xpYi9jb3JlL2JyYW5jaC1vcHRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBFdmVudEVtaXR0ZXIsIFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJyYW5jaE9wdGlvbnM8Q29tcG9uZW50PiB7XG4gICBpbnB1dEJpbmRpbmdzPzoge1xuICAgICAgW0sgaW4ga2V5b2YgQ29tcG9uZW50XT86IENvbXBvbmVudFtLXTtcbiAgIH07XG4gICBvdXRwdXRCaW5kaW5ncz86IHtcbiAgICAgIFtLIGluIGtleW9mIENvbXBvbmVudF0/OiBDb21wb25lbnRbS10gZXh0ZW5kcyBFdmVudEVtaXR0ZXI8aW5mZXIgVD5cbiAgICAgICAgID8gKHZhbHVlOiBUKSA9PiB2b2lkXG4gICAgICAgICA6IG5ldmVyO1xuICAgfTtcbiAgIGRlZmF1bHRDb2xsYXBzZWQ/OiBib29sZWFuO1xuICAgbWV0YT86IFJlY29yZDxzdHJpbmcsIGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVsbEJyYW5jaE9wdGlvbnM8Q29tcG9uZW50PiBleHRlbmRzIEJyYW5jaE9wdGlvbnM8Q29tcG9uZW50PiB7XG4gICBjb21wb25lbnQ6IFR5cGU8Q29tcG9uZW50Pjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoYWJsZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvYnJhbmNoYWJsZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVCcmFuY2ggfSBmcm9tIFwiLi90cmVlLWJyYW5jaFwiO1xuaW1wb3J0IHR5cGUgeyBCcmFuY2hPcHRpb25zIH0gZnJvbSBcIi4vYnJhbmNoLW9wdGlvbnMuaW50ZXJmYWNlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnJhbmNoYWJsZTxVc2VybGFuZENvbXBvbmVudD4ge1xuICAgYnJhbmNoZXM6ICgpID0+IEFycmF5PFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+PjtcbiAgIGdldEJyYW5jaDogKGluZGV4OiBudW1iZXIpID0+IFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+IHwgdW5kZWZpbmVkO1xuICAgZ3JvdzogKFxuICAgICAgY29tcG9uZW50OiBUeXBlPFVzZXJsYW5kQ29tcG9uZW50PixcbiAgICAgIG9wdGlvbnM/OiBCcmFuY2hPcHRpb25zPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgKSA9PiBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50Pjtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNvbnRhaW5lci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvY29tcG9uZW50LWNvbnRhaW5lci5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVmlld0NvbnRhaW5lclJlZiwgVmlld1JlZiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tcG9uZW50Q29udGFpbmVyPENvbXBvbmVudD4ge1xuICAgZGV0ZWN0Q2hhbmdlczogKCkgPT4gdm9pZDtcbiAgIGdldEJyYW5jaGVzQ29udGFpbmVyOiAoKSA9PiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkO1xuICAgZ2V0Q29tcG9uZW50SW5zdGFuY2U6ICgpID0+IENvbXBvbmVudDtcbiAgIGdldEhvc3RWaWV3OiAoKSA9PiBWaWV3UmVmO1xuICAgZ2V0TmF0aXZlRWxlbWVudDogKCkgPT4gSFRNTEVsZW1lbnQ7XG59XG4iXX0=
@@ -14,4 +14,4 @@ class Configuration {
14
14
  }
15
15
  }
16
16
  export const config = new Configuration();
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29yZS9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxhQUFhO0lBR2hCO1FBRmlCLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFHcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUksSUFBaUIsRUFBRSxPQUFvQjtRQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFTO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDSDtBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUcmVlUm9vdCB9IGZyb20gXCIuLi90cmVlLXJvb3QvdHJlZS1yb290XCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVPcHRpb25zIH0gZnJvbSBcIi4vdHJlZS1vcHRpb25zLmludGVyZmFjZVwiO1xuXG5jbGFzcyBDb25maWd1cmF0aW9uIHtcbiAgIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnU3RvcmFnZSA9IG5ldyBNYXA8VHJlZVJvb3Q8YW55PiwgVHJlZU9wdGlvbnM+KCk7XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgIHRoaXMuY29uZmlnU3RvcmFnZSA9IG5ldyBNYXAoKTtcbiAgIH1cblxuICAgcHVibGljIHNldENvbmZpZzxUPihyb290OiBUcmVlUm9vdDxUPiwgb3B0aW9uczogVHJlZU9wdGlvbnMpOiB2b2lkIHtcbiAgICAgIHRoaXMuY29uZmlnU3RvcmFnZS5zZXQocm9vdCwgb3B0aW9ucyk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRDb25maWcocm9vdDogYW55KTogVHJlZU9wdGlvbnMgfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU3RvcmFnZS5nZXQocm9vdCk7XG4gICB9XG5cbiAgIHB1YmxpYyBkZWxldGUocm9vdDogYW55KTogdm9pZCB7XG4gICAgICB0aGlzLmNvbmZpZ1N0b3JhZ2UuZGVsZXRlKHJvb3QpO1xuICAgfVxufVxuXG5leHBvcnQgY29uc3QgY29uZmlnID0gbmV3IENvbmZpZ3VyYXRpb24oKTtcbiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29yZS9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxhQUFhO0lBR2hCO1FBRmlCLGtCQUFhLEdBQUcsSUFBSSxHQUFHLEVBQThCLENBQUM7UUFHcEUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFFTSxTQUFTLENBQUksSUFBaUIsRUFBRSxPQUFvQjtRQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxJQUFTO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxJQUFTO1FBQ3BCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7Q0FDSDtBQUVELE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUcmVlUm9vdCB9IGZyb20gXCIuLi90cmVlLXJvb3RcIjtcbmltcG9ydCB0eXBlIHsgVHJlZU9wdGlvbnMgfSBmcm9tIFwiLi90cmVlLW9wdGlvbnMuaW50ZXJmYWNlXCI7XG5cbmNsYXNzIENvbmZpZ3VyYXRpb24ge1xuICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTdG9yYWdlID0gbmV3IE1hcDxUcmVlUm9vdDxhbnk+LCBUcmVlT3B0aW9ucz4oKTtcblxuICAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgICAgdGhpcy5jb25maWdTdG9yYWdlID0gbmV3IE1hcCgpO1xuICAgfVxuXG4gICBwdWJsaWMgc2V0Q29uZmlnPFQ+KHJvb3Q6IFRyZWVSb290PFQ+LCBvcHRpb25zOiBUcmVlT3B0aW9ucyk6IHZvaWQge1xuICAgICAgdGhpcy5jb25maWdTdG9yYWdlLnNldChyb290LCBvcHRpb25zKTtcbiAgIH1cblxuICAgcHVibGljIGdldENvbmZpZyhyb290OiBhbnkpOiBUcmVlT3B0aW9ucyB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWdTdG9yYWdlLmdldChyb290KTtcbiAgIH1cblxuICAgcHVibGljIGRlbGV0ZShyb290OiBhbnkpOiB2b2lkIHtcbiAgICAgIHRoaXMuY29uZmlnU3RvcmFnZS5kZWxldGUocm9vdCk7XG4gICB9XG59XG5cbmV4cG9ydCBjb25zdCBjb25maWcgPSBuZXcgQ29uZmlndXJhdGlvbigpO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from "./configuration";
2
+ export * from "./tree-options.interface";
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvY29uZmlndXJhdGlvbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi90cmVlLW9wdGlvbnMuaW50ZXJmYWNlXCI7XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29yZS9jb25maWd1cmF0aW9uL3RyZWUtb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHJlZUJyYW5jaCB9IGZyb20gXCIuLi90cmVlLWJyYW5jaC90cmVlLWJyYW5jaFwiO1xuaW1wb3J0IHR5cGUgeyBUcmVlUm9vdCB9IGZyb20gXCIuLi90cmVlLXJvb3QvdHJlZS1yb290XCI7XG5cbi8qKiBUaGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBhIHRyZWUsIGFzIGlkZW50aWZpZWQgYnkgYSBUcmVlUm9vdCAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmVlT3B0aW9ucyB7XG4gICBkcmFnQW5kRHJvcD86IHtcbiAgICAgIC8qKlxuICAgICAgICogQSBmdW5jdGlvbiB0aGF0IGRldGVybWluZXMgd2hldGhlciB0byBhbGxvdyBhIG5vZGUgdG8gYmUgZHJhZ2dlZC5cbiAgICAgICAqXG4gICAgICAgKiBAcmVtYXJrc1xuICAgICAgICogUnVucyB3aGVuIGEgZHJhZyBiZWdpbnMsIGJ1dCBiZWZvcmUgdGhlIGJyYW5jaCBpcyBwcnVuZWQgZnJvbSB0aGUgdHJlZS5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gdHJlZUJyYW5jaCAtIFRoZSBub2RlIG9mIHRoZSB0cmVlIHRoYXQgaXMgYWJvdXQgdG8gYmUgZHJhZ2dlZC5cbiAgICAgICAqXG4gICAgICAgKiBAZGVmYXVsdFZhbHVlIEEgZnVuY3Rpb24gdGhhdCBhbHdheXMgcmV0dXJucyB0cnVlLlxuICAgICAgICpcbiAgICAgICAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgbm9kZSBjYW4gYmUgZHJhZ2dlZDsgYGZhbHNlYCBpZiBpdCBjYW5ub3QuXG4gICAgICAgKi9cbiAgICAgIGFsbG93RHJhZ2dpbmc/OiA8VD4odHJlZUJyYW5jaDogVHJlZUJyYW5jaDxUPikgPT4gYm9vbGVhbjtcblxuICAgICAgLyoqXG4gICAgICAgKiBBIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aGV0aGVyIGEgc291cmNlTm9kZSBjYW4gYmUgZHJvcHBlZCBhdCBhXG4gICAgICAgKiBwYXJ0aWN1bGFyIGxvY2F0aW9uLlxuICAgICAgICpcbiAgICAgICAqIEByZW1hcmtzXG4gICAgICAgKiBUaGlzIGZ1bmN0aW9uIHJ1bnMganVzdCBiZWZvcmUgZGlzcGxheWluZyBhIGZhbWlseSBvZiBkcm9wem9uZXMuXG4gICAgICAgKlxuICAgICAgICogQHBhcmFtIHNvdXJjZUJyYW5jaCAtIFRoZSBicmFuY2ggdGhhdCBpcyBiZWluZyBkcmFnZ2VkLlxuICAgICAgICogQHBhcmFtIHByb3Bvc2VkUGFyZW50IC0gVGhlIHByb3Bvc2VkIG5ldyBwYXJlbnQgb2YgdGhlIHNvdXJjZUJyYW5jaC5cbiAgICAgICAqIEBwYXJhbSBwcm9wb3NlZEluZGV4IC0gVGhlIHByb3Bvc2VkIG5ldyBpbmRleCBvZiB0aGUgc291cmNlQnJhbmNoLlxuICAgICAgICpcbiAgICAgICAqIEBkZWZhdWx0VmFsdWUgQSBmdW5jdGlvbiB0aGF0IGFsd2F5cyByZXR1cm5zIHRydWUuXG4gICAgICAgKi9cbiAgICAgIGFsbG93RHJvcD86IDxUPihcbiAgICAgICAgIHNvdXJjZUJyYW5jaDogVHJlZUJyYW5jaDxUPixcbiAgICAgICAgIHByb3Bvc2VkUGFyZW50OiBUcmVlQnJhbmNoPFQ+IHwgVHJlZVJvb3Q8VD4sXG4gICAgICAgICBwcm9wb3NlZEluZGV4OiBudW1iZXJcbiAgICAgICkgPT4gYm9vbGVhbjtcblxuICAgICAgLyoqXG4gICAgICAgKiBBIGZ1bmN0aW9uIHRvIGluZGljYXRlIHdoZXRoZXIgdG8gYWxsb3cgXCJuZXN0aW5nXCIgKHBsYWNpbmcgYSBicmFuY2ggYXNcbiAgICAgICAqIGEgY2hpbGQpIG9mIGEgcGFydGljdWxhciBicmFuY2guXG4gICAgICAgKlxuICAgICAgICogQHJlbWFya3NcbiAgICAgICAqIFRoaXMgZnVuY3Rpb24gcnVucyBqdXN0IGJlZm9yZSBkaXNwbGF5aW5nIGEgZmFtaWx5IG9mIGRyb3B6b25lcy5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gdHJlZUJyYW5jaCAtIFRoZSBub2RlIG9mIHRoZSB0cmVlIHdob3NlIG5lc3RpbmcgY2FwYWJpbGl0eSBpcyBiZWluZ1xuICAgICAgICogY2hlY2tlZC5cbiAgICAgICAqXG4gICAgICAgKiBAZGVmYXVsdFZhbHVlIEEgZnVuY3Rpb24gdGhhdCBhbHdheXMgcmV0dXJucyB0cnVlLlxuICAgICAgICovXG4gICAgICBhbGxvd05lc3Rpbmc/OiA8VD4odHJlZUJyYW5jaDogVHJlZUJyYW5jaDxUPikgPT4gYm9vbGVhbjtcbiAgIH07XG5cbiAgIC8qKlxuICAgICogVGhlIG51bWJlciBvZiBwaXhlbHMgZWFjaCBsZXZlbCBvZiB0aGUgdHJlZSB3aWxsIGJlIGluZGVudGVkIHJlbGF0aXZlIHRvXG4gICAgKiBpdHMgcGFyZW50LlxuICAgICpcbiAgICAqIEBkZWZhdWx0VmFsdWUgMTZcbiAgICAqL1xuICAgaW5kZW50YXRpb24/OiBudW1iZXI7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1vcHRpb25zLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29yZS9jb25maWd1cmF0aW9uL3RyZWUtb3B0aW9ucy5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgVHJlZUJyYW5jaCB9IGZyb20gXCIuLi90cmVlLWJyYW5jaFwiO1xuaW1wb3J0IHR5cGUgeyBUcmVlUm9vdCB9IGZyb20gXCIuLi90cmVlLXJvb3RcIjtcblxuLyoqIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGEgdHJlZSwgYXMgaWRlbnRpZmllZCBieSBhIFRyZWVSb290ICovXG5leHBvcnQgaW50ZXJmYWNlIFRyZWVPcHRpb25zIHtcbiAgIGRyYWdBbmREcm9wPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBBIGZ1bmN0aW9uIHRoYXQgZGV0ZXJtaW5lcyB3aGV0aGVyIHRvIGFsbG93IGEgbm9kZSB0byBiZSBkcmFnZ2VkLlxuICAgICAgICpcbiAgICAgICAqIEByZW1hcmtzXG4gICAgICAgKiBSdW5zIHdoZW4gYSBkcmFnIGJlZ2lucywgYnV0IGJlZm9yZSB0aGUgYnJhbmNoIGlzIHBydW5lZCBmcm9tIHRoZSB0cmVlLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB0cmVlQnJhbmNoIC0gVGhlIG5vZGUgb2YgdGhlIHRyZWUgdGhhdCBpcyBhYm91dCB0byBiZSBkcmFnZ2VkLlxuICAgICAgICpcbiAgICAgICAqIEBkZWZhdWx0VmFsdWUgQSBmdW5jdGlvbiB0aGF0IGFsd2F5cyByZXR1cm5zIHRydWUuXG4gICAgICAgKlxuICAgICAgICogQHJldHVybnMgYHRydWVgIGlmIHRoZSBub2RlIGNhbiBiZSBkcmFnZ2VkOyBgZmFsc2VgIGlmIGl0IGNhbm5vdC5cbiAgICAgICAqL1xuICAgICAgYWxsb3dEcmFnZ2luZz86IDxUPih0cmVlQnJhbmNoOiBUcmVlQnJhbmNoPFQ+KSA9PiBib29sZWFuO1xuXG4gICAgICAvKipcbiAgICAgICAqIEEgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIHdoZXRoZXIgYSBzb3VyY2VOb2RlIGNhbiBiZSBkcm9wcGVkIGF0IGFcbiAgICAgICAqIHBhcnRpY3VsYXIgbG9jYXRpb24uXG4gICAgICAgKlxuICAgICAgICogQHJlbWFya3NcbiAgICAgICAqIFRoaXMgZnVuY3Rpb24gcnVucyBqdXN0IGJlZm9yZSBkaXNwbGF5aW5nIGEgZmFtaWx5IG9mIGRyb3B6b25lcy5cbiAgICAgICAqXG4gICAgICAgKiBAcGFyYW0gc291cmNlQnJhbmNoIC0gVGhlIGJyYW5jaCB0aGF0IGlzIGJlaW5nIGRyYWdnZWQuXG4gICAgICAgKiBAcGFyYW0gcHJvcG9zZWRQYXJlbnQgLSBUaGUgcHJvcG9zZWQgbmV3IHBhcmVudCBvZiB0aGUgc291cmNlQnJhbmNoLlxuICAgICAgICogQHBhcmFtIHByb3Bvc2VkSW5kZXggLSBUaGUgcHJvcG9zZWQgbmV3IGluZGV4IG9mIHRoZSBzb3VyY2VCcmFuY2guXG4gICAgICAgKlxuICAgICAgICogQGRlZmF1bHRWYWx1ZSBBIGZ1bmN0aW9uIHRoYXQgYWx3YXlzIHJldHVybnMgdHJ1ZS5cbiAgICAgICAqL1xuICAgICAgYWxsb3dEcm9wPzogPFQ+KFxuICAgICAgICAgc291cmNlQnJhbmNoOiBUcmVlQnJhbmNoPFQ+LFxuICAgICAgICAgcHJvcG9zZWRQYXJlbnQ6IFRyZWVCcmFuY2g8VD4gfCBUcmVlUm9vdDxUPixcbiAgICAgICAgIHByb3Bvc2VkSW5kZXg6IG51bWJlclxuICAgICAgKSA9PiBib29sZWFuO1xuXG4gICAgICAvKipcbiAgICAgICAqIEEgZnVuY3Rpb24gdG8gaW5kaWNhdGUgd2hldGhlciB0byBhbGxvdyBcIm5lc3RpbmdcIiAocGxhY2luZyBhIGJyYW5jaCBhc1xuICAgICAgICogYSBjaGlsZCkgb2YgYSBwYXJ0aWN1bGFyIGJyYW5jaC5cbiAgICAgICAqXG4gICAgICAgKiBAcmVtYXJrc1xuICAgICAgICogVGhpcyBmdW5jdGlvbiBydW5zIGp1c3QgYmVmb3JlIGRpc3BsYXlpbmcgYSBmYW1pbHkgb2YgZHJvcHpvbmVzLlxuICAgICAgICpcbiAgICAgICAqIEBwYXJhbSB0cmVlQnJhbmNoIC0gVGhlIG5vZGUgb2YgdGhlIHRyZWUgd2hvc2UgbmVzdGluZyBjYXBhYmlsaXR5IGlzIGJlaW5nXG4gICAgICAgKiBjaGVja2VkLlxuICAgICAgICpcbiAgICAgICAqIEBkZWZhdWx0VmFsdWUgQSBmdW5jdGlvbiB0aGF0IGFsd2F5cyByZXR1cm5zIHRydWUuXG4gICAgICAgKi9cbiAgICAgIGFsbG93TmVzdGluZz86IDxUPih0cmVlQnJhbmNoOiBUcmVlQnJhbmNoPFQ+KSA9PiBib29sZWFuO1xuICAgfTtcblxuICAgLyoqXG4gICAgKiBUaGUgbnVtYmVyIG9mIHBpeGVscyBlYWNoIGxldmVsIG9mIHRoZSB0cmVlIHdpbGwgYmUgaW5kZW50ZWQgcmVsYXRpdmUgdG9cbiAgICAqIGl0cyBwYXJlbnQuXG4gICAgKlxuICAgICogQGRlZmF1bHRWYWx1ZSAxNlxuICAgICovXG4gICBpbmRlbnRhdGlvbj86IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,5 +1,11 @@
1
- export * from "./tree-service/tree.service";
2
- export * from "./tree-root/tree-root";
3
- export * from "./tree-branch/tree-branch";
4
- export * from "./configuration/tree-options.interface";
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3Q0FBd0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL3RyZWUtc2VydmljZS90cmVlLnNlcnZpY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyZWUtcm9vdC90cmVlLXJvb3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyZWUtYnJhbmNoL3RyZWUtYnJhbmNoXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb25maWd1cmF0aW9uL3RyZWUtb3B0aW9ucy5pbnRlcmZhY2VcIjtcbiJdfQ==
1
+ export * from "./configuration";
2
+ export * from "./tree-branch";
3
+ export * from "./tree-root";
4
+ export * from "./tree-service";
5
+ export * from "./branch-options.interface";
6
+ export * from "./branchable.interface";
7
+ export * from "./component-container.interface";
8
+ export * from "./tree-node-base";
9
+ export * from "./tree-node.interface";
10
+ export * from "./tree-plot.interface";
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vY29uZmlndXJhdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJlZS1icmFuY2hcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyZWUtcm9vdFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJlZS1zZXJ2aWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9icmFuY2gtb3B0aW9ucy5pbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2JyYW5jaGFibGUuaW50ZXJmYWNlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnQtY29udGFpbmVyLmludGVyZmFjZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdHJlZS1ub2RlLWJhc2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyZWUtbm9kZS5pbnRlcmZhY2VcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyZWUtcGxvdC5pbnRlcmZhY2VcIjtcbiJdfQ==
@@ -1,8 +1,8 @@
1
1
  import { createComponent, EnvironmentInjector } from "@angular/core";
2
- import { assert } from "../../../shared/assert";
2
+ import { assert } from "../../../shared";
3
3
  import { filter } from "rxjs";
4
- import { BranchComponent } from "../../components/branch/branch.component";
5
- import { dropzoneRenderer } from "../../extras/drag-and-drop/dropzone-renderer";
4
+ import { BranchComponent } from "../../components";
5
+ import { dropzoneRenderer } from "../../extras/drag-and-drop";
6
6
  /**
7
7
  * A wrapper around the BranchComponent that helps instantiate it and handles its events.
8
8
  */
@@ -96,4 +96,4 @@ export class BranchController {
96
96
  });
97
97
  }
98
98
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvdHJlZS1icmFuY2gvYnJhbmNoLWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVKLGVBQWUsRUFDZixtQkFBbUIsRUFHckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxNQUFNLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUloRjs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFTMUIsWUFDb0IsVUFBeUMsRUFDMUQsdUJBQXlDO1FBRHhCLGVBQVUsR0FBVixVQUFVLENBQStCO1FBRzFELElBQUksQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FFdkMsZUFBZSxFQUFFO1lBQ2hCLG1CQUFtQixFQUNoQix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1NBQzlELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsYUFBYTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FDbEMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxD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YUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDO2FBQ2xELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLHdCQUF3QixHQUMzQixnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLElBQ0csd0JBQXdCLEVBQUUsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVO2dCQUN4RCx3QkFBd0IsQ0FBQyxTQUFTLEtBQUssT0FBTyxFQUMvQztnQkFDQyxPQUFPO2FBQ1Q7WUFDRCxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVPLG9CQUFvQixDQUN6QixRQUE0QztRQUU1QyxPQUFPLFFBQVEsQ0FBQyxhQUFhO2FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQzthQUNsRCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSx3QkFBd0IsR0FDM0IsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN4QyxJQUNHLHdCQUF3QixFQUFFLFVBQVUsS0FBSyxJQUFJLENBQUMsVUFBVTtnQkFDeEQsd0JBQXdCLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFDL0M7Z0JBQ0MsT0FBTzthQUNUO1lBQ0QsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRCxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICBDb21wb25lbnRSZWYsXG4gICBjcmVhdGVDb21wb25lbnQsXG4gICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgVmlld0NvbnRhaW5lclJlZixcbiAgIFZpZXdSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWQvYXNzZXJ0XCI7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBCcmFuY2hDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9icmFuY2gvYnJhbmNoLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgZHJvcHpvbmVSZW5kZXJlciB9IGZyb20gXCIuLi8uLi9leHRyYXMvZHJhZy1hbmQtZHJvcC9kcm9wem9uZS1yZW5kZXJlclwiO1xuaW1wb3J0IHsgQ29tcG9uZW50Q29udGFpbmVyIH0gZnJvbSBcIi4uLy4uL3N0cnVjdHVyZVwiO1xuaW1wb3J0IHsgVHJlZUJyYW5jaCB9IGZyb20gXCIuL3RyZWUtYnJhbmNoXCI7XG5cbi8qKlxuICogQSB3cmFwcGVyIGFyb3VuZCB0aGUgQnJhbmNoQ29tcG9uZW50IHRoYXQgaGVscHMgaW5zdGFudGlhdGUgaXQgYW5kIGhhbmRsZXMgaXRzIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJyYW5jaENvbnRyb2xsZXI8VXNlcmxhbmRDb21wb25lbnQ+XG4gICBpbXBsZW1lbnRzIENvbXBvbmVudENvbnRhaW5lcjxCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+Plxue1xuICAgcHJpdmF0ZSByZWFkb25seSBicmFuY2hDb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxcbiAgICAgIEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD5cbiAgID47XG4gICBwcml2YXRlIHJlYWRvbmx5IGluc3RhbmNlU3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPjtcbiAgIHByaXZhdGUgcmVhZG9ubHkgb3V0cHV0QmluZGluZ1N1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj47XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZUJyYW5jaDogVHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4sXG4gICAgICBwYXJlbnRCcmFuY2hlc0NvbnRhaW5lcjogVmlld0NvbnRhaW5lclJlZlxuICAgKSB7XG4gICAgICB0aGlzLm91dHB1dEJpbmRpbmdTdWJzY3JpcHRpb25zID0gW107XG4gICAgICB0aGlzLmJyYW5jaENvbXBvbmVudFJlZiA9IGNyZWF0ZUNvbXBvbmVudDxcbiAgICAgICAgIEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD5cbiAgICAgID4oQnJhbmNoQ29tcG9uZW50LCB7XG4gICAgICAgICBlbnZpcm9ubWVudEluamVjdG9yOlxuICAgICAgICAgICAgcGFyZW50QnJhbmNoZXNDb250YWluZXIuaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50SW5qZWN0b3IpXG4gICAgICB9KTtcbiAgICAgIHRoaXMuYnJhbmNoQ29tcG9uZW50UmVmLmluc3RhbmNlLmNvbnRlbnRUb0hvc3QgPVxuICAgICAgICAgdGhpcy50cmVlQnJhbmNoLmJyYW5jaE9wdGlvbnMuY29tcG9uZW50O1xuICAgICAgdGhpcy5pbnN0YW5jZVN1YnNjcmlwdGlvbnMgPSB0aGlzLmdldEluc3RhbmNlU3Vic2NyaXB0aW9ucyhcbiAgICAgICAgIHRoaXMuYnJhbmNoQ29tcG9uZW50UmVmLmluc3RhbmNlXG4gICAgICApO1xuICAgfVxuXG4gICBwdWJsaWMgZGVzdHJveSgpOiB2b2lkIHtcbiAgICAgIHRoaXMuaW5zdGFuY2VTdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4ge1xuICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMub3V0cHV0QmluZGluZ1N1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViKSA9PiB7XG4gICAgICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgIH0pO1xuICAgfVxuXG4gICBwdWJsaWMgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICAgIHRoaXMuYnJhbmNoQ29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgIH1cblxuICAgcHVibGljIGdldEJyYW5jaGVzQ29udGFpbmVyKCk6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoQ29tcG9uZW50UmVmLmluc3RhbmNlLmJyYW5jaGVzQ29udGFpbmVyO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0Q29tcG9uZW50SW5zdGFuY2UoKTogQnJhbmNoQ29tcG9uZW50PFVzZXJsYW5kQ29tcG9uZW50PiB7XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hDb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRIb3N0VmlldygpOiBWaWV3UmVmIHtcbiAgICAgIHJldHVybiB0aGlzLmJyYW5jaENvbXBvbmVudFJlZi5ob3N0VmlldztcbiAgIH1cblxuICAgcHVibGljIGdldE5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoQ29tcG9uZW50UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRVc2VybGFuZENvbXBvbmVudFJlZigpOlxuICAgICAgfCBDb21wb25lbnRSZWY8VXNlcmxhbmRDb21wb25lbnQ+XG4gICAgICB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hDb21wb25lbnRSZWYuaW5zdGFuY2UuZ2V0SG9zdGVkQ29udGVudCgpO1xuICAgfVxuXG4gICBwcml2YXRlIGdldENvbnRlbnRDcmVhdGVkU3ViKFxuICAgICAgaW5zdGFuY2U6IEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD5cbiAgICk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICByZXR1cm4gaW5zdGFuY2UuY29udGVudENyZWF0ZWQuc3Vic2NyaWJlKCh1c2VybGFuZENvbXBvbmVudEluc3RhbmNlKSA9PiB7XG4gICAgICAgICBjb25zdCBjb21wb25lbnQgPSB1c2VybGFuZENvbXBvbmVudEluc3RhbmNlIGFzIGFueTtcbiAgICAgICAgIE9iamVjdC5lbnRyaWVzKFxuICAgICAgICAgICAgdGhpcy50cmVlQnJhbmNoLmJyYW5jaE9wdGlvbnMuaW5wdXRCaW5kaW5ncyA/PyB7fVxuICAgICAgICAgKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIGNvbXBvbmVudFtrZXldID0gdmFsdWU7XG4gICAgICAgICB9KTtcbiAgICAgICAgIE9iamVjdC5lbnRyaWVzKFxuICAgICAgICAgICAgdGhpcy50cmVlQnJhbmNoLmJyYW5jaE9wdGlvbnMub3V0cHV0QmluZGluZ3MgPz8ge31cbiAgICAgICAgICkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm91dHB1dEJpbmRpbmdTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICBjb21wb25lbnRba2V5XS5zdWJzY3JpYmUodmFsdWUpXG4gICAgICAgICAgICApO1xuICAgICAgICAgfSk7XG4gICAgICAgICBjb21wb25lbnQudHJlZUJyYW5jaCA9IHRoaXMudHJlZUJyYW5jaDtcbiAgICAgICAgIGNvbnN0IGRyb3B6b25lcyA9IGluc3RhbmNlLmRyb3B6b25lcztcbiAgICAgICAgIGFzc2VydChkcm9wem9uZXMgIT09IHVuZGVmaW5lZCk7XG4gICAgICAgICBkcm9wem9uZVJlbmRlcmVyLnJlZ2lzdGVyRHJvcHpvbmVzKGRyb3B6b25lcywgdGhpcy50cmVlQnJhbmNoKTtcbiAgICAgIH0pO1xuICAgfVxuXG4gICBwcml2YXRlIGdldEluc3RhbmNlU3Vic2NyaXB0aW9ucyhcbiAgICAgIGluc3RhbmNlOiBCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApOiBBcnJheTxTdWJzY3JpcHRpb24+IHtcbiAgICAgIGNvbnN0IGRyb3BwZWRTdWIgPSBpbnN0YW5jZS5kcm9wcGVkLnN1YnNjcmliZSgocGxhY2VtZW50KSA9PiB7XG4gICAgICAgICBkcm9wem9uZVJlbmRlcmVyLmhhbmRsZURyb3AodGhpcy50cmVlQnJhbmNoLCBwbGFjZW1lbnQpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gW1xuICAgICAgICAgdGhpcy5nZXRDb250ZW50Q3JlYXRlZFN1YihpbnN0YW5jZSksXG4gICAgICAgICB0aGlzLmdldFNob3dMb3dlclpvbmVzU3ViKGluc3RhbmNlKSxcbiAgICAgICAgIHRoaXMuZ2V0U2hvd1VwcGVyWm9uZXNTdWIoaW5zdGFuY2UpLFxuICAgICAgICAgZHJvcHBlZFN1YlxuICAgICAgXTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRTaG93TG93ZXJab25lc1N1YihcbiAgICAgIGluc3RhbmNlOiBCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApOiBTdWJzY3JpcHRpb24ge1xuICAgICAgcmV0dXJuIGluc3RhbmNlLnNob3dEcm9wem9uZXNcbiAgICAgICAgIC5waXBlKGZpbHRlcigoZGlyZWN0aW9uKSA9PiBkaXJlY3Rpb24gPT09IFwibG93ZXJcIikpXG4gICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREcm9wem9uZURpc3BsYXllZCA9XG4gICAgICAgICAgICAgICBkcm9wem9uZVJlbmRlcmVyLmdldEN1cnJlbnREaXNwbGF5KCk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICBjdXJyZW50RHJvcHpvbmVEaXNwbGF5ZWQ/LnRyZWVCcmFuY2ggPT09IHRoaXMudHJlZUJyYW5jaCAmJlxuICAgICAgICAgICAgICAgY3VycmVudERyb3B6b25lRGlzcGxheWVkLmRpcmVjdGlvbiA9PT0gXCJsb3dlclwiXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRyb3B6b25lUmVuZGVyZXIuc2hvd0xvd2VyWm9uZXModGhpcy50cmVlQnJhbmNoKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnRyaWdnZXJDaGFuZ2VEZXRlY3Rpb24oKTtcbiAgICAgICAgIH0pO1xuICAgfVxuXG4gICBwcml2YXRlIGdldFNob3dVcHBlclpvbmVzU3ViKFxuICAgICAgaW5zdGFuY2U6IEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD5cbiAgICk6IFN1YnNjcmlwdGlvbiB7XG4gICAgICByZXR1cm4gaW5zdGFuY2Uuc2hvd0Ryb3B6b25lc1xuICAgICAgICAgLnBpcGUoZmlsdGVyKChkaXJlY3Rpb24pID0+IGRpcmVjdGlvbiA9PT0gXCJ1cHBlclwiKSlcbiAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudERyb3B6b25lRGlzcGxheWVkID1cbiAgICAgICAgICAgICAgIGRyb3B6b25lUmVuZGVyZXIuZ2V0Q3VycmVudERpc3BsYXkoKTtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgIGN1cnJlbnREcm9wem9uZURpc3BsYXllZD8udHJlZUJyYW5jaCA9PT0gdGhpcy50cmVlQnJhbmNoICYmXG4gICAgICAgICAgICAgICBjdXJyZW50RHJvcHpvbmVEaXNwbGF5ZWQuZGlyZWN0aW9uID09PSBcInVwcGVyXCJcbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5zaG93VXBwZXJab25lcyh0aGlzLnRyZWVCcmFuY2gpO1xuICAgICAgICAgICAgaW5zdGFuY2UudHJpZ2dlckNoYW5nZURldGVjdGlvbigpO1xuICAgICAgICAgfSk7XG4gICB9XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhbmNoLWNvbnRyb2xsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvdHJlZS1icmFuY2gvYnJhbmNoLWNvbnRyb2xsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVKLGVBQWUsRUFDZixtQkFBbUIsRUFHckIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxNQUFNLEVBQXFCLE1BQU0sTUFBTSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUk5RDs7R0FFRztBQUNILE1BQU0sT0FBTyxnQkFBZ0I7SUFTMUIsWUFDb0IsVUFBeUMsRUFDMUQsdUJBQXlDO1FBRHhCLGVBQVUsR0FBVixVQUFVLENBQStCO1FBRzFELElBQUksQ0FBQywwQkFBMEIsR0FBRyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGVBQWUsQ0FFdkMsZUFBZSxFQUFFO1lBQ2hCLG1CQUFtQixFQUNoQix1QkFBdUIsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDO1NBQzlELENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsYUFBYTtZQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDM0MsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FDbEMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxD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YUFDekIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxLQUFLLE9BQU8sQ0FBQyxDQUFDO2FBQ2xELFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLHdCQUF3QixHQUMzQixnQkFBZ0IsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLElBQ0csd0JBQXdCLEVBQUUsVUFBVSxLQUFLLElBQUksQ0FBQyxVQUFVO2dCQUN4RCx3QkFBd0IsQ0FBQyxTQUFTLEtBQUssT0FBTyxFQUMvQztnQkFDQyxPQUFPO2FBQ1Q7WUFDRCxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ3JDLENBQUMsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVPLG9CQUFvQixDQUN6QixRQUE0QztRQUU1QyxPQUFPLFFBQVEsQ0FBQyxhQUFhO2FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsS0FBSyxPQUFPLENBQUMsQ0FBQzthQUNsRCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSx3QkFBd0IsR0FDM0IsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN4QyxJQUNHLHdCQUF3QixFQUFFLFVBQVUsS0FBSyxJQUFJLENBQUMsVUFBVTtnQkFDeEQsd0JBQXdCLENBQUMsU0FBUyxLQUFLLE9BQU8sRUFDL0M7Z0JBQ0MsT0FBTzthQUNUO1lBQ0QsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUNqRCxRQUFRLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDSCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICB0eXBlIENvbXBvbmVudFJlZixcbiAgIGNyZWF0ZUNvbXBvbmVudCxcbiAgIEVudmlyb25tZW50SW5qZWN0b3IsXG4gICB0eXBlIFZpZXdDb250YWluZXJSZWYsXG4gICB0eXBlIFZpZXdSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGFzc2VydCB9IGZyb20gXCIuLi8uLi8uLi9zaGFyZWRcIjtcbmltcG9ydCB7IGZpbHRlciwgdHlwZSBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgQnJhbmNoQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IGRyb3B6b25lUmVuZGVyZXIgfSBmcm9tIFwiLi4vLi4vZXh0cmFzL2RyYWctYW5kLWRyb3BcIjtcbmltcG9ydCB0eXBlIHsgQ29tcG9uZW50Q29udGFpbmVyIH0gZnJvbSBcIi4uL2NvbXBvbmVudC1jb250YWluZXIuaW50ZXJmYWNlXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVCcmFuY2ggfSBmcm9tIFwiLi90cmVlLWJyYW5jaFwiO1xuXG4vKipcbiAqIEEgd3JhcHBlciBhcm91bmQgdGhlIEJyYW5jaENvbXBvbmVudCB0aGF0IGhlbHBzIGluc3RhbnRpYXRlIGl0IGFuZCBoYW5kbGVzIGl0cyBldmVudHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCcmFuY2hDb250cm9sbGVyPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgaW1wbGVtZW50cyBDb21wb25lbnRDb250YWluZXI8QnJhbmNoQ29tcG9uZW50PFVzZXJsYW5kQ29tcG9uZW50Pj5cbntcbiAgIHByaXZhdGUgcmVhZG9ubHkgYnJhbmNoQ29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8XG4gICAgICBCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+XG4gICA+O1xuICAgcHJpdmF0ZSByZWFkb25seSBpbnN0YW5jZVN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj47XG4gICBwcml2YXRlIHJlYWRvbmx5IG91dHB1dEJpbmRpbmdTdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+O1xuXG4gICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVCcmFuY2g6IFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+LFxuICAgICAgcGFyZW50QnJhbmNoZXNDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgICkge1xuICAgICAgdGhpcy5vdXRwdXRCaW5kaW5nU3Vic2NyaXB0aW9ucyA9IFtdO1xuICAgICAgdGhpcy5icmFuY2hDb21wb25lbnRSZWYgPSBjcmVhdGVDb21wb25lbnQ8XG4gICAgICAgICBCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+XG4gICAgICA+KEJyYW5jaENvbXBvbmVudCwge1xuICAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjpcbiAgICAgICAgICAgIHBhcmVudEJyYW5jaGVzQ29udGFpbmVyLmluamVjdG9yLmdldChFbnZpcm9ubWVudEluamVjdG9yKVxuICAgICAgfSk7XG4gICAgICB0aGlzLmJyYW5jaENvbXBvbmVudFJlZi5pbnN0YW5jZS5jb250ZW50VG9Ib3N0ID1cbiAgICAgICAgIHRoaXMudHJlZUJyYW5jaC5icmFuY2hPcHRpb25zLmNvbXBvbmVudDtcbiAgICAgIHRoaXMuaW5zdGFuY2VTdWJzY3JpcHRpb25zID0gdGhpcy5nZXRJbnN0YW5jZVN1YnNjcmlwdGlvbnMoXG4gICAgICAgICB0aGlzLmJyYW5jaENvbXBvbmVudFJlZi5pbnN0YW5jZVxuICAgICAgKTtcbiAgIH1cblxuICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICB0aGlzLmluc3RhbmNlU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWIpID0+IHtcbiAgICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLm91dHB1dEJpbmRpbmdTdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YikgPT4ge1xuICAgICAgICAgc3ViLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9KTtcbiAgIH1cblxuICAgcHVibGljIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICB0aGlzLmJyYW5jaENvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXRCcmFuY2hlc0NvbnRhaW5lcigpOiBWaWV3Q29udGFpbmVyUmVmIHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiB0aGlzLmJyYW5jaENvbXBvbmVudFJlZi5pbnN0YW5jZS5icmFuY2hlc0NvbnRhaW5lcjtcbiAgIH1cblxuICAgcHVibGljIGdldENvbXBvbmVudEluc3RhbmNlKCk6IEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD4ge1xuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoQ29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0SG9zdFZpZXcoKTogVmlld1JlZiB7XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hDb21wb25lbnRSZWYuaG9zdFZpZXc7XG4gICB9XG5cbiAgIHB1YmxpYyBnZXROYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgIHJldHVybiB0aGlzLmJyYW5jaENvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgfVxuXG4gICBwdWJsaWMgZ2V0VXNlcmxhbmRDb21wb25lbnRSZWYoKTpcbiAgICAgIHwgQ29tcG9uZW50UmVmPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgICAgfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoQ29tcG9uZW50UmVmLmluc3RhbmNlLmdldEhvc3RlZENvbnRlbnQoKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRDb250ZW50Q3JlYXRlZFN1YihcbiAgICAgIGluc3RhbmNlOiBCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApOiBTdWJzY3JpcHRpb24ge1xuICAgICAgcmV0dXJuIGluc3RhbmNlLmNvbnRlbnRDcmVhdGVkLnN1YnNjcmliZSgodXNlcmxhbmRDb21wb25lbnRJbnN0YW5jZSkgPT4ge1xuICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdXNlcmxhbmRDb21wb25lbnRJbnN0YW5jZSBhcyBhbnk7XG4gICAgICAgICBPYmplY3QuZW50cmllcyhcbiAgICAgICAgICAgIHRoaXMudHJlZUJyYW5jaC5icmFuY2hPcHRpb25zLmlucHV0QmluZGluZ3MgPz8ge31cbiAgICAgICAgICkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICBjb21wb25lbnRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgfSk7XG4gICAgICAgICBPYmplY3QuZW50cmllcyhcbiAgICAgICAgICAgIHRoaXMudHJlZUJyYW5jaC5icmFuY2hPcHRpb25zLm91dHB1dEJpbmRpbmdzID8/IHt9XG4gICAgICAgICApLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5vdXRwdXRCaW5kaW5nU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgICAgY29tcG9uZW50W2tleV0uc3Vic2NyaWJlKHZhbHVlKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgIH0pO1xuICAgICAgICAgY29tcG9uZW50LnRyZWVCcmFuY2ggPSB0aGlzLnRyZWVCcmFuY2g7XG4gICAgICAgICBjb25zdCBkcm9wem9uZXMgPSBpbnN0YW5jZS5kcm9wem9uZXM7XG4gICAgICAgICBhc3NlcnQoZHJvcHpvbmVzICE9PSB1bmRlZmluZWQpO1xuICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5yZWdpc3RlckRyb3B6b25lcyhkcm9wem9uZXMsIHRoaXMudHJlZUJyYW5jaCk7XG4gICAgICB9KTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRJbnN0YW5jZVN1YnNjcmlwdGlvbnMoXG4gICAgICBpbnN0YW5jZTogQnJhbmNoQ29tcG9uZW50PFVzZXJsYW5kQ29tcG9uZW50PlxuICAgKTogQXJyYXk8U3Vic2NyaXB0aW9uPiB7XG4gICAgICBjb25zdCBkcm9wcGVkU3ViID0gaW5zdGFuY2UuZHJvcHBlZC5zdWJzY3JpYmUoKHBsYWNlbWVudCkgPT4ge1xuICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5oYW5kbGVEcm9wKHRoaXMudHJlZUJyYW5jaCwgcGxhY2VtZW50KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIFtcbiAgICAgICAgIHRoaXMuZ2V0Q29udGVudENyZWF0ZWRTdWIoaW5zdGFuY2UpLFxuICAgICAgICAgdGhpcy5nZXRTaG93TG93ZXJab25lc1N1YihpbnN0YW5jZSksXG4gICAgICAgICB0aGlzLmdldFNob3dVcHBlclpvbmVzU3ViKGluc3RhbmNlKSxcbiAgICAgICAgIGRyb3BwZWRTdWJcbiAgICAgIF07XG4gICB9XG5cbiAgIHByaXZhdGUgZ2V0U2hvd0xvd2VyWm9uZXNTdWIoXG4gICAgICBpbnN0YW5jZTogQnJhbmNoQ29tcG9uZW50PFVzZXJsYW5kQ29tcG9uZW50PlxuICAgKTogU3Vic2NyaXB0aW9uIHtcbiAgICAgIHJldHVybiBpbnN0YW5jZS5zaG93RHJvcHpvbmVzXG4gICAgICAgICAucGlwZShmaWx0ZXIoKGRpcmVjdGlvbikgPT4gZGlyZWN0aW9uID09PSBcImxvd2VyXCIpKVxuICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50RHJvcHpvbmVEaXNwbGF5ZWQgPVxuICAgICAgICAgICAgICAgZHJvcHpvbmVSZW5kZXJlci5nZXRDdXJyZW50RGlzcGxheSgpO1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgY3VycmVudERyb3B6b25lRGlzcGxheWVkPy50cmVlQnJhbmNoID09PSB0aGlzLnRyZWVCcmFuY2ggJiZcbiAgICAgICAgICAgICAgIGN1cnJlbnREcm9wem9uZURpc3BsYXllZC5kaXJlY3Rpb24gPT09IFwibG93ZXJcIlxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkcm9wem9uZVJlbmRlcmVyLnNob3dMb3dlclpvbmVzKHRoaXMudHJlZUJyYW5jaCk7XG4gICAgICAgICAgICBpbnN0YW5jZS50cmlnZ2VyQ2hhbmdlRGV0ZWN0aW9uKCk7XG4gICAgICAgICB9KTtcbiAgIH1cblxuICAgcHJpdmF0ZSBnZXRTaG93VXBwZXJab25lc1N1YihcbiAgICAgIGluc3RhbmNlOiBCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApOiBTdWJzY3JpcHRpb24ge1xuICAgICAgcmV0dXJuIGluc3RhbmNlLnNob3dEcm9wem9uZXNcbiAgICAgICAgIC5waXBlKGZpbHRlcigoZGlyZWN0aW9uKSA9PiBkaXJlY3Rpb24gPT09IFwidXBwZXJcIikpXG4gICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnREcm9wem9uZURpc3BsYXllZCA9XG4gICAgICAgICAgICAgICBkcm9wem9uZVJlbmRlcmVyLmdldEN1cnJlbnREaXNwbGF5KCk7XG4gICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICBjdXJyZW50RHJvcHpvbmVEaXNwbGF5ZWQ/LnRyZWVCcmFuY2ggPT09IHRoaXMudHJlZUJyYW5jaCAmJlxuICAgICAgICAgICAgICAgY3VycmVudERyb3B6b25lRGlzcGxheWVkLmRpcmVjdGlvbiA9PT0gXCJ1cHBlclwiXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRyb3B6b25lUmVuZGVyZXIuc2hvd1VwcGVyWm9uZXModGhpcy50cmVlQnJhbmNoKTtcbiAgICAgICAgICAgIGluc3RhbmNlLnRyaWdnZXJDaGFuZ2VEZXRlY3Rpb24oKTtcbiAgICAgICAgIH0pO1xuICAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhZnRhYmxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpbWJsZS10cmVlL3NyYy9saWIvY29yZS90cmVlLWJyYW5jaC9ncmFmdGFibGUuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRyZWVOb2RlIH0gZnJvbSBcIi4uL3RyZWUtbm9kZS5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBHcmFmdGFibGU8VXNlcmxhbmRDb21wb25lbnQ+IHtcbiAgIGdyYWZ0VG86IChuZXdQYXJlbnQ6IFRyZWVOb2RlPFVzZXJsYW5kQ29tcG9uZW50PiwgaW5kZXg/OiBudW1iZXIpID0+IG51bWJlcjtcbiAgIGluZGV4OiAoKSA9PiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICBwYXJlbnQ6ICgpID0+IFRyZWVOb2RlPFVzZXJsYW5kQ29tcG9uZW50PiB8IHVuZGVmaW5lZDtcbiAgIHBydW5lOiAoKSA9PiB2b2lkO1xufVxuIl19
@@ -0,0 +1,4 @@
1
+ export * from "./branch-controller";
2
+ export * from "./tree-branch";
3
+ export * from "./graftable.interface";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvdHJlZS1icmFuY2gvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYnJhbmNoLWNvbnRyb2xsZXJcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3RyZWUtYnJhbmNoXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ncmFmdGFibGUuaW50ZXJmYWNlXCI7XG4iXX0=
@@ -1,12 +1,12 @@
1
- import { assert } from "../../../shared/assert";
2
- import { TreeNodeBase } from "../tree-node-base";
1
+ import { assert } from "../../../shared";
3
2
  import { TreeError } from "../../errors";
4
- import { dropzoneRenderer } from "../../extras/drag-and-drop/dropzone-renderer";
5
- import { config } from "../configuration/configuration";
6
- import { TreeRoot } from "..";
7
- import { treeCollapser } from "../../extras/collapse/collapse";
8
- import { DestructionEvent, GraftEvent, PruneEvent } from "../../events";
3
+ import { dropzoneRenderer } from "../../extras/drag-and-drop";
4
+ import { TreeRoot } from "../tree-root";
5
+ import { TreeNodeBase } from "../tree-node-base";
6
+ import { config } from "../configuration";
9
7
  import { BranchController } from "./branch-controller";
8
+ import { treeCollapser } from "../../extras/collapse";
9
+ import { DestructionEvent, GraftEvent, PruneEvent } from "../../events";
10
10
  /** Represents a standard node in a tree. Renders a BranchComponent.
11
11
  *
12
12
  * @remarks
@@ -25,7 +25,6 @@ export class TreeBranch {
25
25
  assert(parentBranchesContainer !== undefined);
26
26
  this.branchController = new BranchController(this, parentBranchesContainer);
27
27
  const hostView = this.branchController.getHostView();
28
- this.setIndentation(parent);
29
28
  if (parent instanceof TreeBranch &&
30
29
  parent.branchOptions.defaultCollapsed === true) {
31
30
  treeCollapser.storePrecollapsedNode(parent, this);
@@ -39,8 +38,9 @@ export class TreeBranch {
39
38
  child: this,
40
39
  index: this._parent.branches().length
41
40
  }));
42
- this.detectChanges();
41
+ this.setIndentation();
43
42
  }
43
+ this.detectChanges();
44
44
  }
45
45
  /** @returns All child branches as an array of TreeBranch instances, in order. */
46
46
  branches() {
@@ -409,10 +409,14 @@ export class TreeBranch {
409
409
  this.detachedView.reattach();
410
410
  container.insert(this.detachedView, index);
411
411
  this.detachedView = null;
412
+ this.setIndentation();
412
413
  }
413
- setIndentation(parent) {
414
- const root = parent.root();
415
- assert(root !== undefined);
414
+ setIndentation() {
415
+ assert(this._parent !== undefined);
416
+ const root = this._parent.root();
417
+ if (root === undefined) {
418
+ return;
419
+ }
416
420
  const options = config.getConfig(root);
417
421
  const branchesContainerEl = this.branchController
418
422
  .getNativeElement()
@@ -422,4 +426,4 @@ export class TreeBranch {
422
426
  branchesContainerEl.style.marginLeft = `${options?.indentation ?? 16}px`;
423
427
  }
424
428
  }
425
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1icmFuY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvdHJlZS1icmFuY2gvdHJlZS1icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBVWhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBS3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQU94RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBZXBCLFlBQ0csTUFBOEQsRUFDOUMsYUFBbUQ7UUFBbkQsa0JBQWEsR0FBYixhQUFhLENBQXNDO1FBUjlELGlCQUFZLEdBQW1CLElBQUksQ0FBQztRQVV6QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkMsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM5RCxNQUFNLENBQUMsdUJBQXVCLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksZ0JBQWdCLENBQ3pDLElBQUksRUFDSix1QkFBdUIs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QyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsQ0FBQztRQUNuQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDdEQsTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO0lBRU8sY0FBYyxDQUNuQixNQUE4RDtRQUU5RCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQjthQUM3QyxnQkFBZ0IsRUFBRTthQUNsQixzQkFBc0IsQ0FBQyxvQkFBb0IsQ0FBQzthQUM1QyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDWixNQUFNLENBQUMsbUJBQW1CLFlBQVksV0FBVyxDQUFDLENBQUM7UUFDbkQsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxHQUFHLE9BQU8sRUFBRSxXQUFXLElBQUksRUFBRSxJQUFJLENBQUM7SUFDNUUsQ0FBQztDQUNIIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0IH0gZnJvbSBcIi4uLy4uLy4uL3NoYXJlZC9hc3NlcnRcIjtcbmltcG9ydCB0eXBlIHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gICBDb21wb25lbnRSZWYsXG4gICBUeXBlLFxuICAgVmlld0NvbnRhaW5lclJlZixcbiAgIFZpZXdSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEJyYW5jaENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2JyYW5jaC9icmFuY2guY29tcG9uZW50XCI7XG5pbXBvcnQgdHlwZSB7IE5vZGVDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9ub2RlLWNvbXBvbmVudC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFRyZWVOb2RlQmFzZSB9IGZyb20gXCIuLi90cmVlLW5vZGUtYmFzZVwiO1xuaW1wb3J0IHsgVHJlZUVycm9yIH0gZnJvbSBcIi4uLy4uL2Vycm9yc1wiO1xuaW1wb3J0IHR5cGUge1xuICAgQnJhbmNoT3B0aW9ucyxcbiAgIEZ1bGxCcmFuY2hPcHRpb25zXG59IGZyb20gXCIuLi9icmFuY2gtb3B0aW9ucy5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IGRyb3B6b25lUmVuZGVyZXIgfSBmcm9tIFwiLi4vLi4vZXh0cmFzL2RyYWctYW5kLWRyb3AvZHJvcHpvbmUtcmVuZGVyZXJcIjtcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCIuLi9jb25maWd1cmF0aW9uL2NvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB7IFRyZWVSb290IH0gZnJvbSBcIi4uXCI7XG5pbXBvcnQgeyB0cmVlQ29sbGFwc2VyIH0gZnJvbSBcIi4uLy4uL2V4dHJhcy9jb2xsYXBzZS9jb2xsYXBzZVwiO1xuaW1wb3J0IHsgRGVzdHJ1Y3Rpb25FdmVudCwgR3JhZnRFdmVudCwgUHJ1bmVFdmVudCB9IGZyb20gXCIuLi8uLi9ldmVudHNcIjtcbmltcG9ydCB0eXBlIHtcbiAgIFRyZWVOb2RlLFxuICAgVHJlZVBsb3QsXG4gICBUcmVlRXZlbnQsXG4gICBUcmVlQnJhbmNoTm9kZVxufSBmcm9tIFwiLi4vLi4vc3RydWN0dXJlXCI7XG5pbXBvcnQgeyBCcmFuY2hDb250cm9sbGVyIH0gZnJvbSBcIi4vYnJhbmNoLWNvbnRyb2xsZXJcIjtcblxuLyoqIFJlcHJlc2VudHMgYSBzdGFuZGFyZCBub2RlIGluIGEgdHJlZS4gUmVuZGVycyBhIEJyYW5jaENvbXBvbmVudC5cbiAqXG4gKiBAcmVtYXJrc1xuICogVGhpcyBjbGFzcyByZW5kZXJzIGEgYnJhbmNoIGNvbXBvbmVudCwgd2hpY2ggZG9lcyB0aGUgZm9sbG93aW5nOlxuICogMS4gUmVuZGVycyBhIGNvbXBvbmVudCBwcm92aWRlZCBieSB0aGUgdXNlclxuICogMi4gUHJvdmlkZXMgYSBjb250YWluZXIgaW4gd2hpY2ggY2hpbGQgYnJhbmNoZXMgbWF5IGJlIHJlbmRlcmVkXG4gKiAzLiBDb250YWlucyB0d28gRHJvcHpvbmVzOiBvbmUgZm9yIGRyb3BwaW5nIGJyYW5jaGVzIGJlbG93IHRoaXMgYnJhbmNoIChhcyBhXG4gKiBzaWJsaW5nKSwgYW5kIG9uZSBmb3IgZHJvcHBpbmcgYnJhbmNoZXMgYXMgYSBmaXJzdCBjaGlsZCBvZiB0aGlzIGJyYW5jaC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+XG4gICBpbXBsZW1lbnRzXG4gICAgICBUcmVlQnJhbmNoTm9kZTxcbiAgICAgICAgIEJyYW5jaENvbXBvbmVudDxVc2VybGFuZENvbXBvbmVudD4sXG4gICAgICAgICBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PixcbiAgICAgICAgIE5vZGVDb21wb25lbnRcbiAgICAgID5cbntcbiAgIHByaXZhdGUgcmVhZG9ubHkgYnJhbmNoQ29udHJvbGxlcjogQnJhbmNoQ29udHJvbGxlcjxVc2VybGFuZENvbXBvbmVudD47XG4gICBwcml2YXRlIGRldGFjaGVkVmlldzogVmlld1JlZiB8IG51bGwgPSBudWxsO1xuICAgcHJpdmF0ZSBfcGFyZW50OlxuICAgICAgfCBUcmVlTm9kZTxUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PiwgTm9kZUNvbXBvbmVudD5cbiAgICAgIHwgdW5kZWZpbmVkO1xuICAgcHJpdmF0ZSByZWFkb25seSB0cmVlTm9kZUJhc2U6IFRyZWVOb2RlQmFzZTxVc2VybGFuZENvbXBvbmVudD47XG5cbiAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgIHBhcmVudDogVHJlZU5vZGU8VHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4sIE5vZGVDb21wb25lbnQ+LFxuICAgICAgcHVibGljIHJlYWRvbmx5IGJyYW5jaE9wdGlvbnM6IEZ1bGxCcmFuY2hPcHRpb25zPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgKSB7XG4gICAgICB0aGlzLnRyZWVOb2RlQmFzZSA9IG5ldyBUcmVlTm9kZUJhc2UoKTtcbiAgICAgIGNvbnN0IHBhcmVudEJyYW5jaGVzQ29udGFpbmVyID0gcGFyZW50LmdldEJyYW5jaGVzQ29udGFpbmVyKCk7XG4gICAgICBhc3NlcnQocGFyZW50QnJhbmNoZXNDb250YWluZXIgIT09IHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmJyYW5jaENvbnRyb2xsZXIgPSBuZXcgQnJhbmNoQ29udHJvbGxlcihcbiAgICAgICAgIHRoaXMsXG4gICAgICAgICBwYXJlbnRCcmFuY2hlc0NvbnRhaW5lclxuICAgICAgKTtcbiAgICAgIGNvbnN0IGhvc3RWaWV3ID0gdGhpcy5icmFuY2hDb250cm9sbGVyLmdldEhvc3RWaWV3KCk7XG4gICAgICB0aGlzLnNldEluZGVudGF0aW9uKHBhcmVudCk7XG4gICAgICBpZiAoXG4gICAgICAgICBwYXJlbnQgaW5zdGFuY2VvZiBUcmVlQnJhbmNoICYmXG4gICAgICAgICBwYXJlbnQuYnJhbmNoT3B0aW9ucy5kZWZhdWx0Q29sbGFwc2VkID09PSB0cnVlXG4gICAgICApIHtcbiAgICAgICAgIHRyZWVDb2xsYXBzZXIuc3RvcmVQcmVjb2xsYXBzZWROb2RlKHBhcmVudCwgdGhpcyk7XG4gICAgICAgICB0aGlzLmRldGFjaGVkVmlldyA9IGhvc3RWaWV3O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgIHBhcmVudEJyYW5jaGVzQ29udGFpbmVyLmluc2VydChob3N0Vmlldyk7XG4gICAgICAgICB0aGlzLl9wYXJlbnQgPSBwYXJlbnQ7XG4gICAgICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgICAgbmV3IEdyYWZ0RXZlbnQodGhpcywge1xuICAgICAgICAgICAgICAgcGFyZW50OiB0aGlzLl9wYXJlbnQsXG4gICAgICAgICAgICAgICBjaGlsZDogdGhpcyxcbiAgICAgICAgICAgICAgIGluZGV4OiB0aGlzLl9wYXJlbnQuYnJhbmNoZXMoKS5sZW5ndGhcbiAgICAgICAgICAgIH0pXG4gICAgICAgICApO1xuICAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBBbGwgY2hpbGQgYnJhbmNoZXMgYXMgYW4gYXJyYXkgb2YgVHJlZUJyYW5jaCBpbnN0YW5jZXMsIGluIG9yZGVyLiAqL1xuICAgcHVibGljIGJyYW5jaGVzKCk6IEFycmF5PFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+PiB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UuYnJhbmNoZXMoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBSZWN1cnNpdmVseSBkZXN0cm95cyBhbGwgZGVzY2VuZGFudCBicmFuY2hlcywgYXMgd2VsbCBhcyBpdHNlbGYuIFRoaXNcbiAgICAqIHJlbGVhc2VzIGFsbCByZXNvdXJjZXMgaGVsZCBvciBjb25zdW1lZCBieSB0aGlzIGJyYW5jaCBhbmQgaXRzIGRlc2NlbmRhbnRzLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBJdCBpcyBpbXBvcnRhbnQgdG8gY2FsbCB0aGlzIG1ldGhvZCB3aGVuIGEgYnJhbmNoIGlzIGRpc2NhcmRlZCwgb3RoZXJ3aXNlXG4gICAgKiB0aGUgYnJhbmNoIHdpbGwgcmVtYWluIGluIG1lbW9yeSBhbmQgY29udGludWUgdG8gY29uc3VtZSByZXNvdXJjZXMuXG4gICAgKi9cbiAgIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcIkNhbm5vdCBkZXN0cm95IGEgZGVzdHJveWVkIHRyZWUgYnJhbmNoXCIpO1xuICAgICAgfVxuICAgICAgdGhpcy5wcnVuZSgpO1xuICAgICAgdHJlZUNvbGxhcHNlci5leHBhbmQodGhpcyk7XG4gICAgICBkcm9wem9uZVJlbmRlcmVyLmNsZWFyVHJlZUZyb21SZWdpc3RyeSh0aGlzKTtcbiAgICAgIHRoaXMuYnJhbmNoQ29udHJvbGxlci5nZXRIb3N0VmlldygpLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuYnJhbmNoQ29udHJvbGxlci5kZXN0cm95KCk7XG4gICAgICB0aGlzLmRpc3BhdGNoKG5ldyBEZXN0cnVjdGlvbkV2ZW50KHRoaXMpKTtcbiAgIH1cblxuICAgLyoqIFJ1biBBbmd1bGFyIGNoYW5nZSBkZXRlY3Rpb24gb24gdGhpcyBicmFuY2ggKi9cbiAgIHB1YmxpYyBkZXRlY3RDaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgdGhpcy5icmFuY2hDb250cm9sbGVyLmRldGVjdENoYW5nZXMoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBFbWl0cyB0aGUgc3BlY2lmaWVkIFRyZWVFdmVudC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogQ2F1dGlvbjogSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIG1hbnVhbGx5IGVtaXQgVHJlZUV2ZW50cyB0aGF0IGFyZSBhbHJlYWR5XG4gICAgKiBwcm92aWRlZCBieSB0aGUgbGlicmFyeS4gRm9yIGV4YW1wbGUsIGl0IGlzIG5vdCByZWNvbW1lbmRlZCB0byBlbWl0IGFcbiAgICAqIGBHcmFmdEV2ZW50YCwgYERlc3RydWN0aW9uRXZlbnRgLCBldGMuIFRoZXNlIGV2ZW50cyBtYXkgYmUgdXNlZCBieSB0aGUgdHJlZSxcbiAgICAqIGFuZCBlbWl0dGluZyB0aGVtIG1hbnVhbGx5IG1heSBjYXVzZSB1bmV4cGVjdGVkIGJlaGF2aW9yLiBJbnN0ZWFkLCB3ZVxuICAgICogcmVjb21tZW5kIGltcGxlbWVudGluZyB0aGUgVHJlZUV2ZW50IGludGVyZmFjZSB3aXRoIHlvdXIgb3duIGN1c3RvbSBldmVudHNcbiAgICAqIGFuZCBkaXNwYXRjaGluZyB0aG9zZS5cbiAgICAqXG4gICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgVHJlZUV2ZW50IHRoYXQgd2lsbCBiZSBlbWl0dGVkLlxuICAgICovXG4gICBwdWJsaWMgZGlzcGF0Y2goZXZlbnQ6IFRyZWVFdmVudCk6IHZvaWQge1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UuZGlzcGF0Y2goZXZlbnQpO1xuICAgICAgdGhpcy5fcGFyZW50Py5kaXNwYXRjaChldmVudCk7XG4gICB9XG5cbiAgIC8qKlxuICAgICogQHJldHVybnNcbiAgICAqIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBUcmVlRXZlbnRzIHdoZW5ldmVyIGFuIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICAqIGluIHRoaXMgYnJhbmNoIG9yIGFueSBvZiBpdHMgZGVzY2VuZGFudCBicmFuY2hlcy5cbiAgICAqL1xuICAgcHVibGljIGV2ZW50cygpOiBPYnNlcnZhYmxlPFRyZWVFdmVudD4ge1xuICAgICAgcmV0dXJuIHRoaXMudHJlZU5vZGVCYXNlLmV2ZW50cygpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEBwYXJhbSBpbmRleCAtIFRoZSBpbmRleCBvZiB0aGUgY2hpbGQgYnJhbmNoIHRvIHJldHJpZXZlLlxuICAgICpcbiAgICAqIEByZXR1cm5zXG4gICAgKiBUaGUgY2hpbGQgYnJhbmNoIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXgsIG9yIHVuZGVmaW5lZCBpZiB0aGVyZSBpc1xuICAgICogbm8gY2hpbGQgYnJhbmNoIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguXG4gICAgKi9cbiAgIHB1YmxpYyBnZXRCcmFuY2goaW5kZXg6IG51bWJlcik6IFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+IHwgdW5kZWZpbmVkIHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5nZXRCcmFuY2goaW5kZXgpO1xuICAgfVxuXG4gICAvKiogQHJldHVybnMgVGhlIFZpZXdDb250YWluZXJSZWYgaW4gd2hpY2ggY2hpbGQgYnJhbmNoZXMgYXJlIHJlbmRlcmVkICovXG4gICBwdWJsaWMgZ2V0QnJhbmNoZXNDb250YWluZXIoKTogVmlld0NvbnRhaW5lclJlZiB8IHVuZGVmaW5lZCB7XG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFxuICAgICAgICAgICAgXCJDYW5ub3QgZ2V0IGJyYW5jaGVzIGNvbnRhaW5lciBmcm9tIGEgZGVzdHJveWVkIHRyZWUgYnJhbmNoXCJcbiAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hDb250cm9sbGVyLmdldEJyYW5jaGVzQ29udGFpbmVyKCk7XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBUaGUgaW5zdGFuY2Ugb2YgQnJhbmNoQ29tcG9uZW50IHRoYXQgaXMgcmVuZGVyZWQgYnkgdGhpcyBjbGFzcy4gKi9cbiAgIHB1YmxpYyBnZXRDb21wb25lbnRJbnN0YW5jZSgpOiBCcmFuY2hDb21wb25lbnQ8VXNlcmxhbmRDb21wb25lbnQ+IHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcIkNhbm5vdCBnZXQgY29tcG9uZW50IGluc3RhbmNlIGZyb20gYSBkZXN0cm95ZWQgdHJlZSBicmFuY2hcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmJyYW5jaENvbnRyb2xsZXIuZ2V0Q29tcG9uZW50SW5zdGFuY2UoKTtcbiAgIH1cblxuICAgLyoqIEByZXR1cm5zIFRoZSBIb3N0IFZpZXcgaW4gd2hpY2ggdGhlIEJyYW5jaENvbXBvbmVudCBpcyByZW5kZXJlZCAqL1xuICAgcHVibGljIGdldEhvc3RWaWV3KCk6IFZpZXdSZWYge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcbiAgICAgICAgICAgIFwiQ2Fubm90IGdldCBjb21wb25lbnQgaG9zdCB2aWV3IGZyb20gYSBkZXN0cm95ZWQgdHJlZSBicmFuY2hcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmJyYW5jaENvbnRyb2xsZXIuZ2V0SG9zdFZpZXcoKTtcbiAgIH1cblxuICAgLyoqIEByZXR1cm5zIFRoZSBCcmFuY2hDb21wb25lbnQgYXMgYSBuYXRpdmUgSFRNTCBFbGVtZW50ICovXG4gICBwdWJsaWMgZ2V0TmF0aXZlRWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFxuICAgICAgICAgICAgXCJDYW5ub3QgZ2V0IG5hdGl2ZSBlbGVtZW50IGZyb20gYSBkZXN0cm95ZWQgdHJlZSBicmFuY2hcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmJyYW5jaENvbnRyb2xsZXIuZ2V0TmF0aXZlRWxlbWVudCgpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEByZXR1cm5zXG4gICAgKiBBIENvbXBvbmVudFJlZiBjb250YWluaW5nIHRoZSBpbnN0YW5jZSBvZiB0aGUgdXNlci1wcm92aWRlZFxuICAgICogY29tcG9uZW50IHdoaWNoIGlzIHJlbmRlcmVkIGJ5IHRoaXMgYnJhbmNoLlxuICAgICovXG4gICBwdWJsaWMgZ2V0VXNlcmxhbmRDb21wb25lbnRSZWYoKTpcbiAgICAgIHwgQ29tcG9uZW50UmVmPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgICAgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcbiAgICAgICAgICAgIFwiQ2Fubm90IGdldCB1c2VybGFuZCBjb21wb25lbnQgZnJvbSBhIGRlc3Ryb3llZCB0cmVlIGJyYW5jaFwiXG4gICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoQ29udHJvbGxlci5nZXRVc2VybGFuZENvbXBvbmVudFJlZigpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEF0dGFjaGVzIGEgYnJhbmNoIHRvIGEgbmV3IHBhcmVudCBub2RlLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBJZiBub3QgYWxyZWFkeSBwcnVuZWQsIHRoaXMgbWV0aG9kIHBydW5lcyAocmVtb3ZlcykgdGhpcyBicmFuY2ggZnJvbSBpdHNcbiAgICAqIGN1cnJlbnQgcG9zaXRpb24gaW4gdGhlIHRyZWU7IHRoZW4gZ3JhZnRzIChyZWF0dGFjaGVzKSBpdCBhcyBhIGNoaWxkIG9mIHRoZVxuICAgICogc3BlY2lmaWVkIHBhcmVudCBicmFuY2ggYXQgdGhlIHNwZWNpZmllZCBpbmRleC4gSWYgbm8gaW5kZXggaXMgc3BlY2lmaWVkLFxuICAgICogdGhlIGJyYW5jaCBpcyBhcHBlbmRlZCBhcyB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgcGFyZW50LiBUaGlzIGNhdXNlcyB0aGlzXG4gICAgKiBicmFuY2gncyBhc3NvY2lhdGVkIEJyYW5jaENvbXBvbmVudCB0byBiZSByZS1yZW5kZXJlZCBpbiB0aGUgRE9NIGF0IHRoZVxuICAgICogbmV3IGxvY2F0aW9uLlxuICAgICpcbiAgICAqIEBwYXJhbSBuZXdQYXJlbnQgLSBUaGUgbmV3IHBhcmVudCBicmFuY2ggdW50byB3aGljaCB0aGlzIGJyYW5jaCB3aWxsIGJlIGdyYWZ0ZWQuXG4gICAgKiBAcGFyYW0gaW5kZXggLSBUaGUgaW5kZXggYXQgd2hpY2ggdGhpcyBicmFuY2ggd2lsbCBiZSBncmFmdGVkLiBJZiBub3Qgc3BlY2lmaWVkLFxuICAgICogdGhpcyBicmFuY2ggd2lsbCBiZSBhcHBlbmRlZCBhcyB0aGUgbGFzdCBjaGlsZCBvZiB0aGUgbmV3IHBhcmVudC5cbiAgICAqXG4gICAgKiBAcmV0dXJucyBUaGUgaW5kZXggYXQgd2hpY2ggdGhpcyBicmFuY2ggd2FzIGdyYWZ0ZWQuXG4gICAgKi9cbiAgIHB1YmxpYyBncmFmdFRvKFxuICAgICAgbmV3UGFyZW50OiBUcmVlTm9kZTxUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PiwgTm9kZUNvbXBvbmVudD4sXG4gICAgICBpbmRleD86IG51bWJlclxuICAgKTogbnVtYmVyIHtcbiAgICAgIHRoaXMuY2hlY2tHcmFmdExvY2F0aW9uVmFsaWRpdHkobmV3UGFyZW50LCBpbmRleCk7XG4gICAgICBjb25zdCBvd25JbmRleCA9IHRoaXMuaW5kZXgoKTtcbiAgICAgIGlmIChvd25JbmRleCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICB0aGlzLnBydW5lKCk7XG4gICAgICB9XG4gICAgICB0aGlzLl9wYXJlbnQgPSBuZXdQYXJlbnQ7XG4gICAgICBjb25zdCBuZXdJbmRleCA9IGluZGV4ID8/IG5ld1BhcmVudC5icmFuY2hlcygpLmxlbmd0aDtcbiAgICAgIHRoaXMucmVhdHRhY2hWaWV3KG5ld0luZGV4KTtcbiAgICAgIHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICBuZXcgR3JhZnRFdmVudCh0aGlzLCB7XG4gICAgICAgICAgICBwYXJlbnQ6IG5ld1BhcmVudCxcbiAgICAgICAgICAgIGNoaWxkOiB0aGlzLFxuICAgICAgICAgICAgaW5kZXg6IG5ld0luZGV4XG4gICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHJldHVybiBuZXdJbmRleDtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBBcHBlbmRzIGEgbmV3IGNoaWxkIGJyYW5jaCB0byB0aGlzIGJyYW5jaC4gVGhlIGNoaWxkIGJyYW5jaCB3aWxsIHJlbmRlclxuICAgICogdGhlIHNwZWNpZmllZCBjb21wb25lbnQgYWNjb3JkaW5nIHRvIHRoZSAob3B0aW9uYWwpIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyLlxuICAgICpcbiAgICAqIEBwYXJhbSBjb21wb25lbnQgLSBUaGUgY29tcG9uZW50IHRvIHJlbmRlciBpbiB0aGUgbmV3IGNoaWxkIGJyYW5jaC5cbiAgICAqIEBwYXJhbSBvcHRpb25zIC0gQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgbmV3IGNoaWxkIGJyYW5jaC5cbiAgICAqXG4gICAgKiBAcmV0dXJuc1xuICAgICogVGhlIG5ld2x5LWNyZWF0ZWQgY2hpbGQgYnJhbmNoLlxuICAgICovXG4gICBwdWJsaWMgZ3JvdyhcbiAgICAgIGNvbXBvbmVudDogVHlwZTxVc2VybGFuZENvbXBvbmVudD4sXG4gICAgICBvcHRpb25zPzogQnJhbmNoT3B0aW9uczxVc2VybGFuZENvbXBvbmVudD5cbiAgICk6IFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+IHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXCJDYW5ub3QgZ3JvdyBhIGJyYW5jaCBvbiBhIGRlc3Ryb3llZCB0cmVlIGJyYW5jaFwiKTtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgICByZXR1cm4gbmV3IFRyZWVCcmFuY2godGhpcywgeyBjb21wb25lbnQsIC4uLm9wdGlvbnMgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcjogdW5rbm93bikge1xuICAgICAgICAgdGhpcy5oYW5kbGVVc2VybGFuZEVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgIH1cblxuICAgLyoqXG4gICAgKiBEZXRlcm1pbmVzIHRoaXMgYnJhbmNoJ3MgaW5kZXggaW4gcmVsYXRpb24gdG8gaXRzIHNpYmxpbmcgYnJhbmNoZXMuXG4gICAgKlxuICAgICogQHJlbWFya3NcbiAgICAqIEZvciBleGFtcGxlLCBpZiBpdCBpcyB0aGUgZmlyc3QgY2hpbGQgb2YgaXRzIHBhcmVudCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm5cbiAgICAqIDAuIElmIGl0IGlzIHRoZSBzZWNvbmQgY2hpbGQgb2YgaXRzIHBhcmVudCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gMS5cbiAgICAqXG4gICAgKiBJZiB0aGlzIGJyYW5jaCBoYXMgbm8gcGFyZW50LCAoZWcsIGlmIHRoaXMgYnJhbmNoIGhhcyBiZWVuIHBydW5lZCkgdGhpc1xuICAgICogbWV0aG9kIHdpbGwgcmV0dXJuIHVuZGVmaW5lZC5cbiAgICAqXG4gICAgKiBAcmV0dXJuc1xuICAgICogVGhlIGluZGV4IG9mIHRoaXMgYnJhbmNoIGluIHJlbGF0aW9uIHRvIGl0cyBzaWJsaW5nIGJyYW5jaGVzLCBvciB1bmRlZmluZWQuXG4gICAgKi9cbiAgIHB1YmxpYyBpbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKCF0aGlzLl9wYXJlbnQpIHtcbiAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuX3BhcmVudFxuICAgICAgICAgLmJyYW5jaGVzKClcbiAgICAgICAgIC5maW5kSW5kZXgoKGJyYW5jaCkgPT4gYnJhbmNoID09PSB0aGlzKTtcbiAgICAgIGFzc2VydChpbmRleCA+PSAwKTtcbiAgICAgIHJldHVybiBpbmRleDtcbiAgIH1cblxuICAgLyoqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgYnJhbmNoIGlzIGRlc3Ryb3llZCwgYGZhbHNlYCBvdGhlcndpc2UgKi9cbiAgIHB1YmxpYyBpc0Rlc3Ryb3llZCgpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5pc0Rlc3Ryb3llZCgpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEByZXR1cm5zXG4gICAgKiBUaGUgZGF0YSB0aGF0IHdhcyBwYXNzZWQgaW50byB0aGUgYGJyYW5jaE9wdGlvbnNgJyBgbWV0YWAgcHJvcGVydHlcbiAgICAqIGF0IGNvbnN0cnVjdGlvbi5cbiAgICAqL1xuICAgcHVibGljIG1ldGEoKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hPcHRpb25zLm1ldGEgPz8ge307XG4gICB9XG5cbiAgIC8qKlxuICAgICogQHJldHVybnNcbiAgICAqIFRoaXMgYnJhbmNoJ3MgcGFyZW50IG5vZGUgKHdoaWNoIG1heSBiZSBhIFRyZWVCcmFuY2ggb3IgVHJlZVJvb3QpLlxuICAgICogSWYgdGhpcyBicmFuY2ggaGFzIG5vIHBhcmVudCwgKGVnLCBpZiB0aGlzIGJyYW5jaCBoYXMgYmVlbiBwcnVuZWQpIHRoaXNcbiAgICAqIG1ldGhvZCB3aWxsIHJldHVybiB1bmRlZmluZWQuXG4gICAgKi9cbiAgIHB1YmxpYyBwYXJlbnQoKTpcbiAgICAgIHwgVHJlZU5vZGU8VHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4sIE5vZGVDb21wb25lbnQ+XG4gICAgICB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICAgfVxuXG4gICAvKipcbiAgICAqIFByb3ZpZGVzIGEgbW9kZWwgZGVzY3JpYmluZyB0aGlzIGJyYW5jaCdzIGRlc2NlbmRhbnRzLlxuICAgICpcbiAgICAqIEByZXR1cm5zXG4gICAgKiBBIG11bHRpLWRpbWVuc2lvbmFsIE1hcCB3aGljaCBkZXNjcmliZXMgdGhlIHNoYXBlIG9mIHRoaXMgYnJhbmNoJ3NcbiAgICAqIGRlc2NlbmRhbnRzLlxuICAgICpcbiAgICAqIEBleGFtcGxlXG4gICAgKiBBIGJyYW5jaCB3aXRoIG5vIGNoaWxkcmVuIHdpbGwgcmV0dXJuIGFuIGVtcHR5IE1hcC4gQSBicmFuY2ggd2l0aFxuICAgICogYSBzaW5nbGUgY2hpbGQgd2lsbCByZXR1cm4gYSBNYXAgd2l0aCBhIHNpbmdsZSBlbnRyeSwgd2hlcmUgdGhlIGtleSBpcyB0aGUgaW5kZXhcbiAgICAqIG9mIHRoZSBicmFuY2ggKHplcm8pIGFuZCB0aGUgdmFsdWUgaXMgYW4gZW1wdHkgTWFwLiBBIFRyZWUgbGlrZSB0aGlzOlxuICAgICpcbiAgICAqIGBgYFxuICAgICogICAgICAgICAtLS1CcmFuY2gtLS0tLS0tQnJhbmNoXG4gICAgKiAgICAgICAgL1xuICAgICogQnJhbmNoLS0tLS0tLUJyYW5jaFxuICAgICogICAgICAgIFxcXG4gICAgKiAgICAgICAgIC0tLUJyYW5jaFxuICAgICogYGBgXG4gICAgKiBXaWxsIHJldHVybiBhIE1hcCBvZiBtYXRjaGluZyBzaGFwZTpcbiAgICAqIGBgYFxuICAgICogTWFwIHtcbiAgICAqICAgIDA6IE1hcCB7IDA6IE1hcCB7fX0sXG4gICAgKiAgICAxOiBNYXAge30sXG4gICAgKiAgICAyOiBNYXAge31cbiAgICAqIH1cbiAgICAqIGBgYFxuICAgICovXG4gICBwdWJsaWMgcGxvdCgpOiBUcmVlUGxvdCB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UucGxvdCgpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIENhbGN1bGF0ZXMgdGhlIGJyYW5jaCdzIHBvc2l0aW9uIGluIHRoZSB0cmVlIHJlbGF0aXZlIHRvIHRoZSBSb290LlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBUaGUgcG9zaXRpb24gaXMgZGVzY3JpYmVkIGFzIGFuIGFycmF5IG9mIG51bWJlcnMsIHdoZXJlIGVhY2ggbnVtYmVyXG4gICAgKiByZXByZXNlbnRzIHRoZSBpbmRleCBvZiB0aGUgYnJhbmNoIGF0IHRoYXQgbGV2ZWwgb2YgdGhlIHRyZWUuXG4gICAgKlxuICAgICogRm9yIGV4YW1wbGUsIGlmIHRoaXMgYnJhbmNoIGlzIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgUm9vdCwgdGhpcyBtZXRob2RcbiAgICAqIHdpbGwgcmV0dXJuIFswXS4gSWYgdGhpcyBicmFuY2ggaXMgdGhlIHNlY29uZCBjaGlsZCBvZiB0aGUgZmlyc3QgY2hpbGRcbiAgICAqIG9mIHRoZSBSb290LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBbMCwgMV0uXG4gICAgKlxuICAgICogSWYgdGhlIGJyYW5jaCBpcyBub3QgcmVsYXRlZCB0byBhIFRyZWVSb290LCAoc3VjaCBhcyB3aGVuIGl0IGhhcyBiZWVuXG4gICAgKiBwcnVuZWQsKSB0aGlzIG1ldGhvZCB3aWxsIHRocm93IGFuIGVycm9yLlxuICAgICpcbiAgICAqIEByZXR1cm5zXG4gICAgKiBBbiBhcnJheSBvZiBudW1iZXJzIHdoaWNoIGRlc2NyaWJlIHRoZSBicmFuY2gncyBwb3NpdGlvbiBpbiB0aGUgdHJlZVxuICAgICogcmVsYXRpdmUgdG8gdGhlIFJvb3QuXG4gICAgKi9cbiAgIHB1YmxpYyBwb3NpdGlvbigpOiBBcnJheTxudW1iZXI+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcImJyYW5jaCBoYXMgbm8gcGFyZW50LiBQb3NpdGlvbiBjYW5ub3QgYmUgZGV0ZXJtaW5lZC5cIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBUcmVlQnJhbmNoKSB7XG4gICAgICAgICBjb25zdCBwYXJlbnRQb3NpdGlvbiA9IHRoaXMuX3BhcmVudC5wb3NpdGlvbigpO1xuICAgICAgICAgcmV0dXJuIFsuLi5wYXJlbnRQb3NpdGlvbiwgaW5kZXhdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtpbmRleF07XG4gICB9XG5cbiAgIC8qKlxuICAgICogUmVtb3ZlcyBhIGJyYW5jaCBmcm9tIGl0cyB0cmVlIHdpdGhvdXQgZGVzdHJveWluZyBpdC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogUmVtb3ZlcyB0aGlzIGJyYW5jaCBmcm9tIGl0cyBwYXJlbnQgYW5kIGRldGFjaGVzIGl0cyBhc3NvY2lhdGVkXG4gICAgKiBCcmFuY2hDb21wb25lbnQgZnJvbSB0aGUgRE9NLiBUaGlzIHB1dHMgdGhlIGJyYW5jaCBpbiBhIFwicHJ1bmVkXCIgc3RhdGUsXG4gICAgKiB3aGljaCBtYXkgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiBvdGhlciBtZXRob2RzLlxuICAgICpcbiAgICAqIEEgcHJ1bmVkIGJyYW5jaCBjYW4gYmUgcmVhdHRhY2hlZCB0byBhbnkgb3RoZXIgbm9kZSB1c2luZyB0aGUgYGdyYWZ0VG9gIG1ldGhvZC5cbiAgICAqXG4gICAgKiBAcmV0dXJuc1xuICAgICogSXRzZWxmLCBvciB1bmRlZmluZWQgaWYgaXQgaXMgYWxyZWFkeSBpbiBhIHBydW5lZCBzdGF0ZS5cbiAgICAqL1xuICAgcHVibGljIHBydW5lKCk6IHRoaXMgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcIkNhbm5vdCBwcnVuZSBhIGRlc3Ryb3llZCB0cmVlIGJyYW5jaFwiKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudDtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgcGFyZW50ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHBhcmVudC5nZXRCcmFuY2hlc0NvbnRhaW5lcigpO1xuICAgICAgYXNzZXJ0KGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuZGV0YWNoZWRWaWV3ID0gY29udGFpbmVyLmRldGFjaChpbmRleCk7XG4gICAgICBhc3NlcnQodGhpcy5kZXRhY2hlZFZpZXcgIT09IG51bGwpO1xuICAgICAgdGhpcy5kZXRhY2hlZFZpZXcuZGV0YWNoKCk7XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgbmV3IFBydW5lRXZlbnQodGhpcywge1xuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnQsXG4gICAgICAgICAgICBjaGlsZDogdGhpcyxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLl9wYXJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdGhpcztcbiAgIH1cblxuICAgLyoqXG4gICAgKiBHZXQgdGhlIHJvb3Qgb2YgdGhlIHRyZWUgdG8gd2hpY2ggdGhpcyBCcmFuY2ggaXMgYXR0YWNoZWQuXG4gICAgKlxuICAgICogQHJldHVybnNcbiAgICAqIFRoZSBUcmVlUm9vdCBvZiB0aGUgdHJlZSB0aGlzIGJyYW5jaCBpcyBpbi4gSWYgdGhpcyBicmFuY2ggaXNcbiAgICAqIGRvZXMgbm90IGhhdmUgYSByb290IChzdWNoIGFzIHdoZW4gaXQgaGFzIGJlZW4gcHJ1bmVkKSB0aGlzIG1ldGhvZCB3aWxsXG4gICAgKiByZXR1cm4gdW5kZWZpbmVkLlxuICAgICovXG4gICBwdWJsaWMgcm9vdCgpOiBUcmVlUm9vdDxVc2VybGFuZENvbXBvbmVudD4gfCB1bmRlZmluZWQge1xuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQoKTtcbiAgICAgIGlmIChwYXJlbnQgaW5zdGFuY2VvZiBUcmVlQnJhbmNoKSB7XG4gICAgICAgICByZXR1cm4gcGFyZW50LnJvb3QoKTtcbiAgICAgIH1cbiAgICAgIGFzc2VydChwYXJlbnQgaW5zdGFuY2VvZiBUcmVlUm9vdCB8fCBwYXJlbnQgPT09IHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgfVxuXG4gICAvKipcbiAgICAqIFRyYXZlcnNlcyB0aGlzIGJyYW5jaCdzIGRlc2NlbmRhbnRzIGluIGRlcHRoLWZpcnN0IHByZS1vcmRlciwgZXhlY3V0aW5nXG4gICAgKiB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBub2RlLiBUcmF2ZXJzYWwgaW5jbHVkZXMgdGhpcyBicmFuY2guXG4gICAgKlxuICAgICogQHBhcmFtIGNhbGxiYWNrIC0gQSBmdW5jdGlvbiB0byBleGVjdXRlIG9uIGVhY2ggbm9kZS5cbiAgICAqL1xuICAgcHVibGljIHRyYXZlcnNlKFxuICAgICAgY2FsbGJhY2s6IChcbiAgICAgICAgIG5vZGU6IFRyZWVOb2RlPFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+LCBOb2RlQ29tcG9uZW50PlxuICAgICAgKSA9PiB2b2lkXG4gICApOiB2b2lkIHtcbiAgICAgIGNhbGxiYWNrKHRoaXMpO1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UudHJhdmVyc2UoY2FsbGJhY2spO1xuICAgfVxuXG4gICBwcml2YXRlIGNoZWNrR3JhZnRMb2NhdGlvblZhbGlkaXR5KFxuICAgICAgbmV3UGFyZW50OiBUcmVlTm9kZTxUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PiwgTm9kZUNvbXBvbmVudD4sXG4gICAgICBpbmRleD86IG51bWJlclxuICAgKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFwiQ2Fubm90IGdyYWZ0IGEgZGVzdHJveWVkIHRyZWUgYnJhbmNoXCIpO1xuICAgICAgfVxuICAgICAgaWYgKG5ld1BhcmVudC5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFwiQ2Fubm90IGdyYWZ0IHRvIGEgZGVzdHJveWVkIHRyZWUgYnJhbmNoXCIpO1xuICAgICAgfVxuICAgICAgaWYgKFxuICAgICAgICAgdHlwZW9mIGluZGV4ID09PSBcIm51bWJlclwiICYmXG4gICAgICAgICB0aGlzLmluZGV4SXNPdXRPZlJhbmdlKG5ld1BhcmVudCwgaW5kZXgpXG4gICAgICApIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBgQ2Fubm90IGdyYWZ0IGJyYW5jaCBhdCBpbmRleCAke2luZGV4fSBvZiB0aGUgcGFyZW50LiBPdXQgb2YgcmFuZ2UuYFxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudHJhdmVyc2UoKG5vZGUpID0+IHtcbiAgICAgICAgIGlmIChub2RlID09PSBuZXdQYXJlbnQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICAgICBcIkNhbm5vdCBncmFmdCBhIGJyYW5jaCB0byBpdHNlbGYgb3IgYW55IG9mIGl0cyBvd24gZGVzY2VuZGFudHNcIlxuICAgICAgICAgICAgKTtcbiAgICAgICAgIH1cbiAgICAgIH0pO1xuICAgfVxuXG4gICBwcml2YXRlIGhhbmRsZVVzZXJsYW5kRXJyb3IoZXJyb3I6IHVua25vd24pOiBuZXZlciB7XG4gICAgICAvLyBXaGVuIGFuIGVycm9yIG9jY3VycyBpbiBhIHVzZXJsYW5kIGNvbXBvbmVudCBkdXJpbmcgYSB0cmVlIG9wZXJhdGlvbixcbiAgICAgIC8vIGl0IGNhbiBjYXVzZSB1bmRlZmluZWQsIGJpemFycmUgYmVoYXZpb3IgaW4gdGhlIHRyZWUuIFRvIHByZXZlbnQgdGhpcyxcbiAgICAgIC8vIHdlIGRlc3Ryb3kgdGhlIHRyZWUgYW5kIHRocm93IGFuIGVycm9yIGluc3RlYWQuIFRoaXMgaGVscHMgcHJvdGVjdFxuICAgICAgLy8gdGhlIGVuZC11c2VyJ3MgZGF0YSBmcm9tIGNvcnJ1cHRpb24uXG4gICAgICB0aGlzLmZ1cnRoZXN0QW5jZXN0b3IoKS5kZXN0cm95KCk7XG4gICAgICB0aGlzLnRyZWVOb2RlQmFzZS5oYW5kbGVVc2VybGFuZEVycm9yKGVycm9yKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBpbmRleElzT3V0T2ZSYW5nZShcbiAgICAgIHBhcmVudDogVHJlZU5vZGU8VHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4sIE5vZGVDb21wb25lbnQ+LFxuICAgICAgaW5kZXg6IG51bWJlclxuICAgKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gaW5kZXggPCAwIHx8IGluZGV4ID4gcGFyZW50LmJyYW5jaGVzKCkubGVuZ3RoO1xuICAgfVxuXG4gICBwcml2YXRlIGZ1cnRoZXN0QW5jZXN0b3IoKTogVHJlZU5vZGU8XG4gICAgICBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PixcbiAgICAgIE5vZGVDb21wb25lbnRcbiAgID4ge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby10aGlzLWFsaWFzIC0tIFRoaXMgY29kZSBpcyBmb3IgYW4gaXRlcmF0aW9uLCBub3QgdG8gbWFrZSBgdGhpc2AgYXZhaWxhYmxlIGluIG90aGVyIHNjb3BlcyAod2hpY2ggaXMgd2hhdCB0aGUgcnVsZSBpcyBpbnRlbmRlZCB0byBwcm90ZWN0IGFnYWluc3QpLlxuICAgICAgbGV0IG5vZGU6IFRyZWVOb2RlPFRyZWVCcmFuY2g8VXNlcmxhbmRDb21wb25lbnQ+LCBOb2RlQ29tcG9uZW50PiA9IHRoaXM7XG4gICAgICB3aGlsZSAobm9kZSBpbnN0YW5jZW9mIFRyZWVCcmFuY2gpIHtcbiAgICAgICAgIGNvbnN0IHBhcmVudCA9IG5vZGUucGFyZW50KCk7XG4gICAgICAgICBpZiAocGFyZW50ID09PSB1bmRlZmluZWQpIGJyZWFrO1xuICAgICAgICAgbm9kZSA9IHBhcmVudDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBub2RlO1xuICAgfVxuXG4gICBwcml2YXRlIHJlYXR0YWNoVmlldyhpbmRleD86IG51bWJlcik6IHZvaWQge1xuICAgICAgYXNzZXJ0KHRoaXMuX3BhcmVudCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIGFzc2VydCh0aGlzLmRldGFjaGVkVmlldyAhPT0gbnVsbCk7XG4gICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLl9wYXJlbnQuZ2V0QnJhbmNoZXNDb250YWluZXIoKTtcbiAgICAgIGFzc2VydChjb250YWluZXIgIT09IHVuZGVmaW5lZCk7XG4gICAgICB0aGlzLmRldGFjaGVkVmlldy5yZWF0dGFjaCgpO1xuICAgICAgY29udGFpbmVyLmluc2VydCh0aGlzLmRldGFjaGVkVmlldywgaW5kZXgpO1xuICAgICAgdGhpcy5kZXRhY2hlZFZpZXcgPSBudWxsO1xuICAgfVxuXG4gICBwcml2YXRlIHNldEluZGVudGF0aW9uKFxuICAgICAgcGFyZW50OiBUcmVlTm9kZTxUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PiwgTm9kZUNvbXBvbmVudD5cbiAgICk6IHZvaWQge1xuICAgICAgY29uc3Qgcm9vdCA9IHBhcmVudC5yb290KCk7XG4gICAgICBhc3NlcnQocm9vdCAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIGNvbnN0IG9wdGlvbnMgPSBjb25maWcuZ2V0Q29uZmlnKHJvb3QpO1xuICAgICAgY29uc3QgYnJhbmNoZXNDb250YWluZXJFbCA9IHRoaXMuYnJhbmNoQ29udHJvbGxlclxuICAgICAgICAgLmdldE5hdGl2ZUVsZW1lbnQoKVxuICAgICAgICAgLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJicmFuY2hlcy1jb250YWluZXJcIilcbiAgICAgICAgIC5pdGVtKDApO1xuICAgICAgYXNzZXJ0KGJyYW5jaGVzQ29udGFpbmVyRWwgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCk7XG4gICAgICBicmFuY2hlc0NvbnRhaW5lckVsLnN0eWxlLm1hcmdpbkxlZnQgPSBgJHtvcHRpb25zPy5pbmRlbnRhdGlvbiA/PyAxNn1weGA7XG4gICB9XG59XG4iXX0=
429
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1icmFuY2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9saW1ibGUtdHJlZS9zcmMvbGliL2NvcmUvdHJlZS1icmFuY2gvdHJlZS1icmFuY2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBU3pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUd4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSzFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0osZ0JBQWdCLEVBQ2hCLFVBQVUsRUFDVixVQUFVLEVBRVosTUFBTSxjQUFjLENBQUM7QUFFdEI7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQVFwQixZQUNHLE1BQW1DLEVBQ25CLGFBQW1EO1FBQW5ELGtCQUFhLEdBQWIsYUFBYSxDQUFzQztRQU45RCxpQkFBWSxHQUFtQixJQUFJLENBQUM7UUFRekMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLE1BQU0sdUJBQXVCLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDOUQsTUFBTSxDQUFDLHVCQUF1QixLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLGdCQUFnQixDQUN6QyxJQUFJLEVBQ0osdUJBQXVC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YXJlZFwiO1xuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB0eXBlIHtcbiAgIENvbXBvbmVudFJlZixcbiAgIFR5cGUsXG4gICBWaWV3Q29udGFpbmVyUmVmLFxuICAgVmlld1JlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQnJhbmNoQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHNcIjtcbmltcG9ydCB7IFRyZWVFcnJvciB9IGZyb20gXCIuLi8uLi9lcnJvcnNcIjtcbmltcG9ydCB7IGRyb3B6b25lUmVuZGVyZXIgfSBmcm9tIFwiLi4vLi4vZXh0cmFzL2RyYWctYW5kLWRyb3BcIjtcbmltcG9ydCB7IFRyZWVSb290IH0gZnJvbSBcIi4uL3RyZWUtcm9vdFwiO1xuaW1wb3J0IHR5cGUgeyBUcmVlTm9kZSB9IGZyb20gXCIuLi90cmVlLW5vZGUuaW50ZXJmYWNlXCI7XG5pbXBvcnQgdHlwZSB7IFRyZWVQbG90IH0gZnJvbSBcIi4uL3RyZWUtcGxvdC5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFRyZWVOb2RlQmFzZSB9IGZyb20gXCIuLi90cmVlLW5vZGUtYmFzZVwiO1xuaW1wb3J0IHsgY29uZmlnIH0gZnJvbSBcIi4uL2NvbmZpZ3VyYXRpb25cIjtcbmltcG9ydCB0eXBlIHtcbiAgIEJyYW5jaE9wdGlvbnMsXG4gICBGdWxsQnJhbmNoT3B0aW9uc1xufSBmcm9tIFwiLi4vYnJhbmNoLW9wdGlvbnMuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBCcmFuY2hDb250cm9sbGVyIH0gZnJvbSBcIi4vYnJhbmNoLWNvbnRyb2xsZXJcIjtcbmltcG9ydCB0eXBlIHsgR3JhZnRhYmxlIH0gZnJvbSBcIi4vZ3JhZnRhYmxlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgdHJlZUNvbGxhcHNlciB9IGZyb20gXCIuLi8uLi9leHRyYXMvY29sbGFwc2VcIjtcbmltcG9ydCB7XG4gICBEZXN0cnVjdGlvbkV2ZW50LFxuICAgR3JhZnRFdmVudCxcbiAgIFBydW5lRXZlbnQsXG4gICB0eXBlIFRyZWVFdmVudFxufSBmcm9tIFwiLi4vLi4vZXZlbnRzXCI7XG5cbi8qKiBSZXByZXNlbnRzIGEgc3RhbmRhcmQgbm9kZSBpbiBhIHRyZWUuIFJlbmRlcnMgYSBCcmFuY2hDb21wb25lbnQuXG4gKlxuICogQHJlbWFya3NcbiAqIFRoaXMgY2xhc3MgcmVuZGVycyBhIGJyYW5jaCBjb21wb25lbnQsIHdoaWNoIGRvZXMgdGhlIGZvbGxvd2luZzpcbiAqIDEuIFJlbmRlcnMgYSBjb21wb25lbnQgcHJvdmlkZWQgYnkgdGhlIHVzZXJcbiAqIDIuIFByb3ZpZGVzIGEgY29udGFpbmVyIGluIHdoaWNoIGNoaWxkIGJyYW5jaGVzIG1heSBiZSByZW5kZXJlZFxuICogMy4gQ29udGFpbnMgdHdvIERyb3B6b25lczogb25lIGZvciBkcm9wcGluZyBicmFuY2hlcyBiZWxvdyB0aGlzIGJyYW5jaCAoYXMgYVxuICogc2libGluZyksIGFuZCBvbmUgZm9yIGRyb3BwaW5nIGJyYW5jaGVzIGFzIGEgZmlyc3QgY2hpbGQgb2YgdGhpcyBicmFuY2guXG4gKi9cbmV4cG9ydCBjbGFzcyBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PlxuICAgaW1wbGVtZW50cyBUcmVlTm9kZTxVc2VybGFuZENvbXBvbmVudD4sIEdyYWZ0YWJsZTxVc2VybGFuZENvbXBvbmVudD5cbntcbiAgIHByaXZhdGUgcmVhZG9ubHkgYnJhbmNoQ29udHJvbGxlcjogQnJhbmNoQ29udHJvbGxlcjxVc2VybGFuZENvbXBvbmVudD47XG4gICBwcml2YXRlIGRldGFjaGVkVmlldzogVmlld1JlZiB8IG51bGwgPSBudWxsO1xuICAgcHJpdmF0ZSBfcGFyZW50OiBUcmVlTm9kZTxVc2VybGFuZENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG4gICBwcml2YXRlIHJlYWRvbmx5IHRyZWVOb2RlQmFzZTogVHJlZU5vZGVCYXNlPFVzZXJsYW5kQ29tcG9uZW50PjtcblxuICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgcGFyZW50OiBUcmVlTm9kZTxVc2VybGFuZENvbXBvbmVudD4sXG4gICAgICBwdWJsaWMgcmVhZG9ubHkgYnJhbmNoT3B0aW9uczogRnVsbEJyYW5jaE9wdGlvbnM8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApIHtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlID0gbmV3IFRyZWVOb2RlQmFzZSgpO1xuICAgICAgY29uc3QgcGFyZW50QnJhbmNoZXNDb250YWluZXIgPSBwYXJlbnQuZ2V0QnJhbmNoZXNDb250YWluZXIoKTtcbiAgICAgIGFzc2VydChwYXJlbnRCcmFuY2hlc0NvbnRhaW5lciAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuYnJhbmNoQ29udHJvbGxlciA9IG5ldyBCcmFuY2hDb250cm9sbGVyKFxuICAgICAgICAgdGhpcyxcbiAgICAgICAgIHBhcmVudEJyYW5jaGVzQ29udGFpbmVyXG4gICAgICApO1xuICAgICAgY29uc3QgaG9zdFZpZXcgPSB0aGlzLmJyYW5jaENvbnRyb2xsZXIuZ2V0SG9zdFZpZXcoKTtcbiAgICAgIGlmIChcbiAgICAgICAgIHBhcmVudCBpbnN0YW5jZW9mIFRyZWVCcmFuY2ggJiZcbiAgICAgICAgIHBhcmVudC5icmFuY2hPcHRpb25zLmRlZmF1bHRDb2xsYXBzZWQgPT09IHRydWVcbiAgICAgICkge1xuICAgICAgICAgdHJlZUNvbGxhcHNlci5zdG9yZVByZWNvbGxhcHNlZE5vZGUocGFyZW50LCB0aGlzKTtcbiAgICAgICAgIHRoaXMuZGV0YWNoZWRWaWV3ID0gaG9zdFZpZXc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAgcGFyZW50QnJhbmNoZXNDb250YWluZXIuaW5zZXJ0KGhvc3RWaWV3KTtcbiAgICAgICAgIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcbiAgICAgICAgIHRoaXMuZGlzcGF0Y2goXG4gICAgICAgICAgICBuZXcgR3JhZnRFdmVudCh0aGlzLCB7XG4gICAgICAgICAgICAgICBwYXJlbnQ6IHRoaXMuX3BhcmVudCxcbiAgICAgICAgICAgICAgIGNoaWxkOiB0aGlzLFxuICAgICAgICAgICAgICAgaW5kZXg6IHRoaXMuX3BhcmVudC5icmFuY2hlcygpLmxlbmd0aFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICk7XG4gICAgICAgICB0aGlzLnNldEluZGVudGF0aW9uKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRldGVjdENoYW5nZXMoKTtcbiAgIH1cblxuICAgLyoqIEByZXR1cm5zIEFsbCBjaGlsZCBicmFuY2hlcyBhcyBhbiBhcnJheSBvZiBUcmVlQnJhbmNoIGluc3RhbmNlcywgaW4gb3JkZXIuICovXG4gICBwdWJsaWMgYnJhbmNoZXMoKTogQXJyYXk8VHJlZUJyYW5jaDxVc2VybGFuZENvbXBvbmVudD4+IHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5icmFuY2hlcygpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIFJlY3Vyc2l2ZWx5IGRlc3Ryb3lzIGFsbCBkZXNjZW5kYW50IGJyYW5jaGVzLCBhcyB3ZWxsIGFzIGl0c2VsZi4gVGhpc1xuICAgICogcmVsZWFzZXMgYWxsIHJlc291cmNlcyBoZWxkIG9yIGNvbnN1bWVkIGJ5IHRoaXMgYnJhbmNoIGFuZCBpdHMgZGVzY2VuZGFudHMuXG4gICAgKlxuICAgICogQHJlbWFya3NcbiAgICAqIEl0IGlzIGltcG9ydGFudCB0byBjYWxsIHRoaXMgbWV0aG9kIHdoZW4gYSBicmFuY2ggaXMgZGlzY2FyZGVkLCBvdGhlcndpc2VcbiAgICAqIHRoZSBicmFuY2ggd2lsbCByZW1haW4gaW4gbWVtb3J5IGFuZCBjb250aW51ZSB0byBjb25zdW1lIHJlc291cmNlcy5cbiAgICAqL1xuICAgcHVibGljIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFwiQ2Fubm90IGRlc3Ryb3kgYSBkZXN0cm95ZWQgdHJlZSBicmFuY2hcIik7XG4gICAgICB9XG4gICAgICB0aGlzLnBydW5lKCk7XG4gICAgICB0cmVlQ29sbGFwc2VyLmV4cGFuZCh0aGlzKTtcbiAgICAgIGRyb3B6b25lUmVuZGVyZXIuY2xlYXJUcmVlRnJvbVJlZ2lzdHJ5KHRoaXMpO1xuICAgICAgdGhpcy5icmFuY2hDb250cm9sbGVyLmdldEhvc3RWaWV3KCkuZGVzdHJveSgpO1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UuZGVzdHJveSgpO1xuICAgICAgdGhpcy5icmFuY2hDb250cm9sbGVyLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuZGlzcGF0Y2gobmV3IERlc3RydWN0aW9uRXZlbnQodGhpcykpO1xuICAgfVxuXG4gICAvKiogUnVuIEFuZ3VsYXIgY2hhbmdlIGRldGVjdGlvbiBvbiB0aGlzIGJyYW5jaCAqL1xuICAgcHVibGljIGRldGVjdENoYW5nZXMoKTogdm9pZCB7XG4gICAgICB0aGlzLmJyYW5jaENvbnRyb2xsZXIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIEVtaXRzIHRoZSBzcGVjaWZpZWQgVHJlZUV2ZW50LlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBDYXV0aW9uOiBJdCBpcyBub3QgcmVjb21tZW5kZWQgdG8gbWFudWFsbHkgZW1pdCBUcmVlRXZlbnRzIHRoYXQgYXJlIGFscmVhZHlcbiAgICAqIHByb3ZpZGVkIGJ5IHRoZSBsaWJyYXJ5LiBGb3IgZXhhbXBsZSwgaXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIGVtaXQgYVxuICAgICogYEdyYWZ0RXZlbnRgLCBgRGVzdHJ1Y3Rpb25FdmVudGAsIGV0Yy4gVGhlc2UgZXZlbnRzIG1heSBiZSB1c2VkIGJ5IHRoZSB0cmVlLFxuICAgICogYW5kIGVtaXR0aW5nIHRoZW0gbWFudWFsbHkgbWF5IGNhdXNlIHVuZXhwZWN0ZWQgYmVoYXZpb3IuIEluc3RlYWQsIHdlXG4gICAgKiByZWNvbW1lbmQgaW1wbGVtZW50aW5nIHRoZSBUcmVlRXZlbnQgaW50ZXJmYWNlIHdpdGggeW91ciBvd24gY3VzdG9tIGV2ZW50c1xuICAgICogYW5kIGRpc3BhdGNoaW5nIHRob3NlLlxuICAgICpcbiAgICAqIEBwYXJhbSBldmVudCAtIFRoZSBUcmVlRXZlbnQgdGhhdCB3aWxsIGJlIGVtaXR0ZWQuXG4gICAgKi9cbiAgIHB1YmxpYyBkaXNwYXRjaChldmVudDogVHJlZUV2ZW50PFVzZXJsYW5kQ29tcG9uZW50Pik6IHZvaWQge1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UuZGlzcGF0Y2goZXZlbnQpO1xuICAgICAgdGhpcy5fcGFyZW50Py5kaXNwYXRjaChldmVudCk7XG4gICB9XG5cbiAgIC8qKlxuICAgICogQHJldHVybnNcbiAgICAqIEFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBUcmVlRXZlbnRzIHdoZW5ldmVyIGFuIGV2ZW50IGlzIGRpc3BhdGNoZWRcbiAgICAqIGluIHRoaXMgYnJhbmNoIG9yIGFueSBvZiBpdHMgZGVzY2VuZGFudCBicmFuY2hlcy5cbiAgICAqL1xuICAgcHVibGljIGV2ZW50cygpOiBPYnNlcnZhYmxlPFRyZWVFdmVudDxVc2VybGFuZENvbXBvbmVudD4+IHtcbiAgICAgIHJldHVybiB0aGlzLnRyZWVOb2RlQmFzZS5ldmVudHMoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBAcGFyYW0gaW5kZXggLSBUaGUgaW5kZXggb2YgdGhlIGNoaWxkIGJyYW5jaCB0byByZXRyaWV2ZS5cbiAgICAqXG4gICAgKiBAcmV0dXJuc1xuICAgICogVGhlIGNoaWxkIGJyYW5jaCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LCBvciB1bmRlZmluZWQgaWYgdGhlcmUgaXNcbiAgICAqIG5vIGNoaWxkIGJyYW5jaCBhdCB0aGUgc3BlY2lmaWVkIGluZGV4LlxuICAgICovXG4gICBwdWJsaWMgZ2V0QnJhbmNoKGluZGV4OiBudW1iZXIpOiBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PiB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UuZ2V0QnJhbmNoKGluZGV4KTtcbiAgIH1cblxuICAgLyoqIEByZXR1cm5zIFRoZSBWaWV3Q29udGFpbmVyUmVmIGluIHdoaWNoIGNoaWxkIGJyYW5jaGVzIGFyZSByZW5kZXJlZCAqL1xuICAgcHVibGljIGdldEJyYW5jaGVzQ29udGFpbmVyKCk6IFZpZXdDb250YWluZXJSZWYgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcbiAgICAgICAgICAgIFwiQ2Fubm90IGdldCBicmFuY2hlcyBjb250YWluZXIgZnJvbSBhIGRlc3Ryb3llZCB0cmVlIGJyYW5jaFwiXG4gICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoQ29udHJvbGxlci5nZXRCcmFuY2hlc0NvbnRhaW5lcigpO1xuICAgfVxuXG4gICAvKiogQHJldHVybnMgVGhlIGluc3RhbmNlIG9mIEJyYW5jaENvbXBvbmVudCB0aGF0IGlzIHJlbmRlcmVkIGJ5IHRoaXMgY2xhc3MuICovXG4gICBwdWJsaWMgZ2V0Q29tcG9uZW50SW5zdGFuY2UoKTogQnJhbmNoQ29tcG9uZW50PFVzZXJsYW5kQ29tcG9uZW50PiB7XG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFxuICAgICAgICAgICAgXCJDYW5ub3QgZ2V0IGNvbXBvbmVudCBpbnN0YW5jZSBmcm9tIGEgZGVzdHJveWVkIHRyZWUgYnJhbmNoXCJcbiAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hDb250cm9sbGVyLmdldENvbXBvbmVudEluc3RhbmNlKCk7XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBUaGUgSG9zdCBWaWV3IGluIHdoaWNoIHRoZSBCcmFuY2hDb21wb25lbnQgaXMgcmVuZGVyZWQgKi9cbiAgIHB1YmxpYyBnZXRIb3N0VmlldygpOiBWaWV3UmVmIHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcIkNhbm5vdCBnZXQgY29tcG9uZW50IGhvc3QgdmlldyBmcm9tIGEgZGVzdHJveWVkIHRyZWUgYnJhbmNoXCJcbiAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hDb250cm9sbGVyLmdldEhvc3RWaWV3KCk7XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBUaGUgQnJhbmNoQ29tcG9uZW50IGFzIGEgbmF0aXZlIEhUTUwgRWxlbWVudCAqL1xuICAgcHVibGljIGdldE5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcbiAgICAgICAgICAgIFwiQ2Fubm90IGdldCBuYXRpdmUgZWxlbWVudCBmcm9tIGEgZGVzdHJveWVkIHRyZWUgYnJhbmNoXCJcbiAgICAgICAgICk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5icmFuY2hDb250cm9sbGVyLmdldE5hdGl2ZUVsZW1lbnQoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBAcmV0dXJuc1xuICAgICogQSBDb21wb25lbnRSZWYgY29udGFpbmluZyB0aGUgaW5zdGFuY2Ugb2YgdGhlIHVzZXItcHJvdmlkZWRcbiAgICAqIGNvbXBvbmVudCB3aGljaCBpcyByZW5kZXJlZCBieSB0aGlzIGJyYW5jaC5cbiAgICAqL1xuICAgcHVibGljIGdldFVzZXJsYW5kQ29tcG9uZW50UmVmKCk6XG4gICAgICB8IENvbXBvbmVudFJlZjxVc2VybGFuZENvbXBvbmVudD5cbiAgICAgIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICh0aGlzLmlzRGVzdHJveWVkKCkpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcIkNhbm5vdCBnZXQgdXNlcmxhbmQgY29tcG9uZW50IGZyb20gYSBkZXN0cm95ZWQgdHJlZSBicmFuY2hcIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmJyYW5jaENvbnRyb2xsZXIuZ2V0VXNlcmxhbmRDb21wb25lbnRSZWYoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBBdHRhY2hlcyBhIGJyYW5jaCB0byBhIG5ldyBwYXJlbnQgbm9kZS5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogSWYgbm90IGFscmVhZHkgcHJ1bmVkLCB0aGlzIG1ldGhvZCBwcnVuZXMgKHJlbW92ZXMpIHRoaXMgYnJhbmNoIGZyb20gaXRzXG4gICAgKiBjdXJyZW50IHBvc2l0aW9uIGluIHRoZSB0cmVlOyB0aGVuIGdyYWZ0cyAocmVhdHRhY2hlcykgaXQgYXMgYSBjaGlsZCBvZiB0aGVcbiAgICAqIHNwZWNpZmllZCBwYXJlbnQgYnJhbmNoIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXguIElmIG5vIGluZGV4IGlzIHNwZWNpZmllZCxcbiAgICAqIHRoZSBicmFuY2ggaXMgYXBwZW5kZWQgYXMgdGhlIGxhc3QgY2hpbGQgb2YgdGhlIHBhcmVudC4gVGhpcyBjYXVzZXMgdGhpc1xuICAgICogYnJhbmNoJ3MgYXNzb2NpYXRlZCBCcmFuY2hDb21wb25lbnQgdG8gYmUgcmUtcmVuZGVyZWQgaW4gdGhlIERPTSBhdCB0aGVcbiAgICAqIG5ldyBsb2NhdGlvbi5cbiAgICAqXG4gICAgKiBAcGFyYW0gbmV3UGFyZW50IC0gVGhlIG5ldyBwYXJlbnQgYnJhbmNoIHVudG8gd2hpY2ggdGhpcyBicmFuY2ggd2lsbCBiZSBncmFmdGVkLlxuICAgICogQHBhcmFtIGluZGV4IC0gVGhlIGluZGV4IGF0IHdoaWNoIHRoaXMgYnJhbmNoIHdpbGwgYmUgZ3JhZnRlZC4gSWYgbm90IHNwZWNpZmllZCxcbiAgICAqIHRoaXMgYnJhbmNoIHdpbGwgYmUgYXBwZW5kZWQgYXMgdGhlIGxhc3QgY2hpbGQgb2YgdGhlIG5ldyBwYXJlbnQuXG4gICAgKlxuICAgICogQHJldHVybnMgVGhlIGluZGV4IGF0IHdoaWNoIHRoaXMgYnJhbmNoIHdhcyBncmFmdGVkLlxuICAgICovXG4gICBwdWJsaWMgZ3JhZnRUbyhcbiAgICAgIG5ld1BhcmVudDogVHJlZU5vZGU8VXNlcmxhbmRDb21wb25lbnQ+LFxuICAgICAgaW5kZXg/OiBudW1iZXJcbiAgICk6IG51bWJlciB7XG4gICAgICB0aGlzLmNoZWNrR3JhZnRMb2NhdGlvblZhbGlkaXR5KG5ld1BhcmVudCwgaW5kZXgpO1xuICAgICAgY29uc3Qgb3duSW5kZXggPSB0aGlzLmluZGV4KCk7XG4gICAgICBpZiAob3duSW5kZXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgdGhpcy5wcnVuZSgpO1xuICAgICAgfVxuICAgICAgdGhpcy5fcGFyZW50ID0gbmV3UGFyZW50O1xuICAgICAgY29uc3QgbmV3SW5kZXggPSBpbmRleCA/PyBuZXdQYXJlbnQuYnJhbmNoZXMoKS5sZW5ndGg7XG4gICAgICB0aGlzLnJlYXR0YWNoVmlldyhuZXdJbmRleCk7XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgbmV3IEdyYWZ0RXZlbnQodGhpcywge1xuICAgICAgICAgICAgcGFyZW50OiBuZXdQYXJlbnQsXG4gICAgICAgICAgICBjaGlsZDogdGhpcyxcbiAgICAgICAgICAgIGluZGV4OiBuZXdJbmRleFxuICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICByZXR1cm4gbmV3SW5kZXg7XG4gICB9XG5cbiAgIC8qKlxuICAgICogQXBwZW5kcyBhIG5ldyBjaGlsZCBicmFuY2ggdG8gdGhpcyBicmFuY2guIFRoZSBjaGlsZCBicmFuY2ggd2lsbCByZW5kZXJcbiAgICAqIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50IGFjY29yZGluZyB0byB0aGUgKG9wdGlvbmFsKSBjb25maWd1cmF0aW9uIHBhcmFtZXRlci5cbiAgICAqXG4gICAgKiBAcGFyYW0gY29tcG9uZW50IC0gVGhlIGNvbXBvbmVudCB0byByZW5kZXIgaW4gdGhlIG5ldyBjaGlsZCBicmFuY2guXG4gICAgKiBAcGFyYW0gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG5ldyBjaGlsZCBicmFuY2guXG4gICAgKlxuICAgICogQHJldHVybnNcbiAgICAqIFRoZSBuZXdseS1jcmVhdGVkIGNoaWxkIGJyYW5jaC5cbiAgICAqL1xuICAgcHVibGljIGdyb3coXG4gICAgICBjb21wb25lbnQ6IFR5cGU8VXNlcmxhbmRDb21wb25lbnQ+LFxuICAgICAgb3B0aW9ucz86IEJyYW5jaE9wdGlvbnM8VXNlcmxhbmRDb21wb25lbnQ+XG4gICApOiBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PiB7XG4gICAgICBpZiAodGhpcy5pc0Rlc3Ryb3llZCgpKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFwiQ2Fubm90IGdyb3cgYSBicmFuY2ggb24gYSBkZXN0cm95ZWQgdHJlZSBicmFuY2hcIik7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICAgcmV0dXJuIG5ldyBUcmVlQnJhbmNoKHRoaXMsIHsgY29tcG9uZW50LCAuLi5vcHRpb25zIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgIHRoaXMuaGFuZGxlVXNlcmxhbmRFcnJvcihlcnJvcik7XG4gICAgICB9XG4gICB9XG5cbiAgIC8qKlxuICAgICogRGV0ZXJtaW5lcyB0aGlzIGJyYW5jaCdzIGluZGV4IGluIHJlbGF0aW9uIHRvIGl0cyBzaWJsaW5nIGJyYW5jaGVzLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBGb3IgZXhhbXBsZSwgaWYgaXQgaXMgdGhlIGZpcnN0IGNoaWxkIG9mIGl0cyBwYXJlbnQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuXG4gICAgKiAwLiBJZiBpdCBpcyB0aGUgc2Vjb25kIGNoaWxkIG9mIGl0cyBwYXJlbnQsIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuIDEuXG4gICAgKlxuICAgICogSWYgdGhpcyBicmFuY2ggaGFzIG5vIHBhcmVudCwgKGVnLCBpZiB0aGlzIGJyYW5jaCBoYXMgYmVlbiBwcnVuZWQpIHRoaXNcbiAgICAqIG1ldGhvZCB3aWxsIHJldHVybiB1bmRlZmluZWQuXG4gICAgKlxuICAgICogQHJldHVybnNcbiAgICAqIFRoZSBpbmRleCBvZiB0aGlzIGJyYW5jaCBpbiByZWxhdGlvbiB0byBpdHMgc2libGluZyBicmFuY2hlcywgb3IgdW5kZWZpbmVkLlxuICAgICovXG4gICBwdWJsaWMgaW5kZXgoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmICghdGhpcy5fcGFyZW50KSB7XG4gICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfVxuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLl9wYXJlbnRcbiAgICAgICAgIC5icmFuY2hlcygpXG4gICAgICAgICAuZmluZEluZGV4KChicmFuY2gpID0+IGJyYW5jaCA9PT0gdGhpcyk7XG4gICAgICBhc3NlcnQoaW5kZXggPj0gMCk7XG4gICAgICByZXR1cm4gaW5kZXg7XG4gICB9XG5cbiAgIC8qKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIGJyYW5jaCBpcyBkZXN0cm95ZWQsIGBmYWxzZWAgb3RoZXJ3aXNlICovXG4gICBwdWJsaWMgaXNEZXN0cm95ZWQoKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UuaXNEZXN0cm95ZWQoKTtcbiAgIH1cblxuICAgLyoqXG4gICAgKiBAcmV0dXJuc1xuICAgICogVGhlIGRhdGEgdGhhdCB3YXMgcGFzc2VkIGludG8gdGhlIGBicmFuY2hPcHRpb25zYCcgYG1ldGFgIHByb3BlcnR5XG4gICAgKiBhdCBjb25zdHJ1Y3Rpb24uXG4gICAgKi9cbiAgIHB1YmxpYyBtZXRhKCk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICAgICAgcmV0dXJuIHRoaXMuYnJhbmNoT3B0aW9ucy5tZXRhID8/IHt9O1xuICAgfVxuXG4gICAvKipcbiAgICAqIEByZXR1cm5zXG4gICAgKiBUaGlzIGJyYW5jaCdzIHBhcmVudCBub2RlICh3aGljaCBtYXkgYmUgYSBUcmVlQnJhbmNoIG9yIFRyZWVSb290KS5cbiAgICAqIElmIHRoaXMgYnJhbmNoIGhhcyBubyBwYXJlbnQsIChlZywgaWYgdGhpcyBicmFuY2ggaGFzIGJlZW4gcHJ1bmVkKSB0aGlzXG4gICAgKiBtZXRob2Qgd2lsbCByZXR1cm4gdW5kZWZpbmVkLlxuICAgICovXG4gICBwdWJsaWMgcGFyZW50KCk6IFRyZWVOb2RlPFVzZXJsYW5kQ29tcG9uZW50PiB8IHVuZGVmaW5lZCB7XG4gICAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICAgfVxuXG4gICAvKipcbiAgICAqIFByb3ZpZGVzIGEgbW9kZWwgZGVzY3JpYmluZyB0aGlzIGJyYW5jaCdzIGRlc2NlbmRhbnRzLlxuICAgICpcbiAgICAqIEByZXR1cm5zXG4gICAgKiBBIG11bHRpLWRpbWVuc2lvbmFsIE1hcCB3aGljaCBkZXNjcmliZXMgdGhlIHNoYXBlIG9mIHRoaXMgYnJhbmNoJ3NcbiAgICAqIGRlc2NlbmRhbnRzLlxuICAgICpcbiAgICAqIEBleGFtcGxlXG4gICAgKiBBIGJyYW5jaCB3aXRoIG5vIGNoaWxkcmVuIHdpbGwgcmV0dXJuIGFuIGVtcHR5IE1hcC4gQSBicmFuY2ggd2l0aFxuICAgICogYSBzaW5nbGUgY2hpbGQgd2lsbCByZXR1cm4gYSBNYXAgd2l0aCBhIHNpbmdsZSBlbnRyeSwgd2hlcmUgdGhlIGtleSBpcyB0aGUgaW5kZXhcbiAgICAqIG9mIHRoZSBicmFuY2ggKHplcm8pIGFuZCB0aGUgdmFsdWUgaXMgYW4gZW1wdHkgTWFwLiBBIFRyZWUgbGlrZSB0aGlzOlxuICAgICpcbiAgICAqIGBgYFxuICAgICogICAgICAgICAtLS1CcmFuY2gtLS0tLS0tQnJhbmNoXG4gICAgKiAgICAgICAgL1xuICAgICogQnJhbmNoLS0tLS0tLUJyYW5jaFxuICAgICogICAgICAgIFxcXG4gICAgKiAgICAgICAgIC0tLUJyYW5jaFxuICAgICogYGBgXG4gICAgKiBXaWxsIHJldHVybiBhIE1hcCBvZiBtYXRjaGluZyBzaGFwZTpcbiAgICAqIGBgYFxuICAgICogTWFwIHtcbiAgICAqICAgIDA6IE1hcCB7IDA6IE1hcCB7fX0sXG4gICAgKiAgICAxOiBNYXAge30sXG4gICAgKiAgICAyOiBNYXAge31cbiAgICAqIH1cbiAgICAqIGBgYFxuICAgICovXG4gICBwdWJsaWMgcGxvdCgpOiBUcmVlUGxvdCB7XG4gICAgICByZXR1cm4gdGhpcy50cmVlTm9kZUJhc2UucGxvdCgpO1xuICAgfVxuXG4gICAvKipcbiAgICAqIENhbGN1bGF0ZXMgdGhlIGJyYW5jaCdzIHBvc2l0aW9uIGluIHRoZSB0cmVlIHJlbGF0aXZlIHRvIHRoZSBSb290LlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBUaGUgcG9zaXRpb24gaXMgZGVzY3JpYmVkIGFzIGFuIGFycmF5IG9mIG51bWJlcnMsIHdoZXJlIGVhY2ggbnVtYmVyXG4gICAgKiByZXByZXNlbnRzIHRoZSBpbmRleCBvZiB0aGUgYnJhbmNoIGF0IHRoYXQgbGV2ZWwgb2YgdGhlIHRyZWUuXG4gICAgKlxuICAgICogRm9yIGV4YW1wbGUsIGlmIHRoaXMgYnJhbmNoIGlzIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgUm9vdCwgdGhpcyBtZXRob2RcbiAgICAqIHdpbGwgcmV0dXJuIFswXS4gSWYgdGhpcyBicmFuY2ggaXMgdGhlIHNlY29uZCBjaGlsZCBvZiB0aGUgZmlyc3QgY2hpbGRcbiAgICAqIG9mIHRoZSBSb290LCB0aGlzIG1ldGhvZCB3aWxsIHJldHVybiBbMCwgMV0uXG4gICAgKlxuICAgICogSWYgdGhlIGJyYW5jaCBpcyBub3QgcmVsYXRlZCB0byBhIFRyZWVSb290LCAoc3VjaCBhcyB3aGVuIGl0IGhhcyBiZWVuXG4gICAgKiBwcnVuZWQsKSB0aGlzIG1ldGhvZCB3aWxsIHRocm93IGFuIGVycm9yLlxuICAgICpcbiAgICAqIEByZXR1cm5zXG4gICAgKiBBbiBhcnJheSBvZiBudW1iZXJzIHdoaWNoIGRlc2NyaWJlIHRoZSBicmFuY2gncyBwb3NpdGlvbiBpbiB0aGUgdHJlZVxuICAgICogcmVsYXRpdmUgdG8gdGhlIFJvb3QuXG4gICAgKi9cbiAgIHB1YmxpYyBwb3NpdGlvbigpOiBBcnJheTxudW1iZXI+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgIHRocm93IG5ldyBUcmVlRXJyb3IoXG4gICAgICAgICAgICBcImJyYW5jaCBoYXMgbm8gcGFyZW50LiBQb3NpdGlvbiBjYW5ub3QgYmUgZGV0ZXJtaW5lZC5cIlxuICAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9wYXJlbnQgaW5zdGFuY2VvZiBUcmVlQnJhbmNoKSB7XG4gICAgICAgICBjb25zdCBwYXJlbnRQb3NpdGlvbiA9IHRoaXMuX3BhcmVudC5wb3NpdGlvbigpO1xuICAgICAgICAgcmV0dXJuIFsuLi5wYXJlbnRQb3NpdGlvbiwgaW5kZXhdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFtpbmRleF07XG4gICB9XG5cbiAgIC8qKlxuICAgICogUmVtb3ZlcyBhIGJyYW5jaCBmcm9tIGl0cyB0cmVlIHdpdGhvdXQgZGVzdHJveWluZyBpdC5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogUmVtb3ZlcyB0aGlzIGJyYW5jaCBmcm9tIGl0cyBwYXJlbnQgYW5kIGRldGFjaGVzIGl0cyBhc3NvY2lhdGVkXG4gICAgKiBCcmFuY2hDb21wb25lbnQgZnJvbSB0aGUgRE9NLiBUaGlzIHB1dHMgdGhlIGJyYW5jaCBpbiBhIFwicHJ1bmVkXCIgc3RhdGUsXG4gICAgKiB3aGljaCBtYXkgYWZmZWN0IHRoZSBiZWhhdmlvciBvZiBvdGhlciBtZXRob2RzLlxuICAgICpcbiAgICAqIEEgcHJ1bmVkIGJyYW5jaCBjYW4gYmUgcmVhdHRhY2hlZCB0byBhbnkgb3RoZXIgbm9kZSB1c2luZyB0aGUgYGdyYWZ0VG9gIG1ldGhvZC5cbiAgICAqXG4gICAgKiBAcmV0dXJuc1xuICAgICogSXRzZWxmLCBvciB1bmRlZmluZWQgaWYgaXQgaXMgYWxyZWFkeSBpbiBhIHBydW5lZCBzdGF0ZS5cbiAgICAqL1xuICAgcHVibGljIHBydW5lKCk6IHRoaXMgfCB1bmRlZmluZWQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcIkNhbm5vdCBwcnVuZSBhIGRlc3Ryb3llZCB0cmVlIGJyYW5jaFwiKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3BhcmVudDtcbiAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5pbmRleCgpO1xuICAgICAgaWYgKGluZGV4ID09PSB1bmRlZmluZWQgfHwgcGFyZW50ID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHBhcmVudC5nZXRCcmFuY2hlc0NvbnRhaW5lcigpO1xuICAgICAgYXNzZXJ0KGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuZGV0YWNoZWRWaWV3ID0gY29udGFpbmVyLmRldGFjaChpbmRleCk7XG4gICAgICBhc3NlcnQodGhpcy5kZXRhY2hlZFZpZXcgIT09IG51bGwpO1xuICAgICAgdGhpcy5kZXRhY2hlZFZpZXcuZGV0YWNoKCk7XG4gICAgICB0aGlzLmRpc3BhdGNoKFxuICAgICAgICAgbmV3IFBydW5lRXZlbnQodGhpcywge1xuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnQsXG4gICAgICAgICAgICBjaGlsZDogdGhpcyxcbiAgICAgICAgICAgIGluZGV4OiBpbmRleFxuICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLl9wYXJlbnQgPSB1bmRlZmluZWQ7XG4gICAgICByZXR1cm4gdGhpcztcbiAgIH1cblxuICAgLyoqXG4gICAgKiBHZXQgdGhlIHJvb3Qgb2YgdGhlIHRyZWUgdG8gd2hpY2ggdGhpcyBCcmFuY2ggaXMgYXR0YWNoZWQuXG4gICAgKlxuICAgICogQHJldHVybnNcbiAgICAqIFRoZSBUcmVlUm9vdCBvZiB0aGUgdHJlZSB0aGlzIGJyYW5jaCBpcyBpbi4gSWYgdGhpcyBicmFuY2ggaXNcbiAgICAqIGRvZXMgbm90IGhhdmUgYSByb290IChzdWNoIGFzIHdoZW4gaXQgaGFzIGJlZW4gcHJ1bmVkKSB0aGlzIG1ldGhvZCB3aWxsXG4gICAgKiByZXR1cm4gdW5kZWZpbmVkLlxuICAgICovXG4gICBwdWJsaWMgcm9vdCgpOiBUcmVlUm9vdDxVc2VybGFuZENvbXBvbmVudD4gfCB1bmRlZmluZWQge1xuICAgICAgY29uc3QgcGFyZW50ID0gdGhpcy5wYXJlbnQoKTtcbiAgICAgIGlmIChwYXJlbnQgaW5zdGFuY2VvZiBUcmVlQnJhbmNoKSB7XG4gICAgICAgICByZXR1cm4gcGFyZW50LnJvb3QoKTtcbiAgICAgIH1cbiAgICAgIGFzc2VydChwYXJlbnQgaW5zdGFuY2VvZiBUcmVlUm9vdCB8fCBwYXJlbnQgPT09IHVuZGVmaW5lZCk7XG4gICAgICByZXR1cm4gcGFyZW50O1xuICAgfVxuXG4gICAvKipcbiAgICAqIFRyYXZlcnNlcyB0aGlzIGJyYW5jaCdzIGRlc2NlbmRhbnRzIGluIGRlcHRoLWZpcnN0IHByZS1vcmRlciwgZXhlY3V0aW5nXG4gICAgKiB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZnVuY3Rpb24gb24gZWFjaCBub2RlLiBUcmF2ZXJzYWwgaW5jbHVkZXMgdGhpcyBicmFuY2guXG4gICAgKlxuICAgICogQHBhcmFtIGNhbGxiYWNrIC0gQSBmdW5jdGlvbiB0byBleGVjdXRlIG9uIGVhY2ggbm9kZS5cbiAgICAqL1xuICAgcHVibGljIHRyYXZlcnNlKFxuICAgICAgY2FsbGJhY2s6IChub2RlOiBUcmVlQnJhbmNoPFVzZXJsYW5kQ29tcG9uZW50PikgPT4gdm9pZFxuICAgKTogdm9pZCB7XG4gICAgICBjYWxsYmFjayh0aGlzKTtcbiAgICAgIHRoaXMudHJlZU5vZGVCYXNlLnRyYXZlcnNlKGNhbGxiYWNrKTtcbiAgIH1cblxuICAgcHJpdmF0ZSBjaGVja0dyYWZ0TG9jYXRpb25WYWxpZGl0eShcbiAgICAgIG5ld1BhcmVudDogVHJlZU5vZGU8VXNlcmxhbmRDb21wb25lbnQ+LFxuICAgICAgaW5kZXg/OiBudW1iZXJcbiAgICk6IHZvaWQge1xuICAgICAgaWYgKHRoaXMuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcIkNhbm5vdCBncmFmdCBhIGRlc3Ryb3llZCB0cmVlIGJyYW5jaFwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChuZXdQYXJlbnQuaXNEZXN0cm95ZWQoKSkge1xuICAgICAgICAgdGhyb3cgbmV3IFRyZWVFcnJvcihcIkNhbm5vdCBncmFmdCB0byBhIGRlc3Ryb3llZCB0cmVlIGJyYW5jaFwiKTtcbiAgICAgIH1cbiAgICAgIGlmIChcbiAgICAgICAgIHR5cGVvZiBpbmRleCA9PT0gXCJudW1iZXJcIiAmJlxuICAgICAgICAgdGhpcy5pbmRleElzT3V0T2ZSYW5nZShuZXdQYXJlbnQsIGluZGV4KVxuICAgICAgKSB7XG4gICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFxuICAgICAgICAgICAgYENhbm5vdCBncmFmdCBicmFuY2ggYXQgaW5kZXggJHtpbmRleH0gb2YgdGhlIHBhcmVudC4gT3V0IG9mIHJhbmdlLmBcbiAgICAgICAgICk7XG4gICAgICB9XG4gICAgICB0aGlzLnRyYXZlcnNlKChub2RlKSA9PiB7XG4gICAgICAgICBpZiAobm9kZSA9PT0gbmV3UGFyZW50KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVHJlZUVycm9yKFxuICAgICAgICAgICAgICAgXCJDYW5ub3QgZ3JhZnQgYSBicmFuY2ggdG8gaXRzZWxmIG9yIGFueSBvZiBpdHMgb3duIGRlc2NlbmRhbnRzXCJcbiAgICAgICAgICAgICk7XG4gICAgICAgICB9XG4gICAgICB9KTtcbiAgIH1cblxuICAgcHJpdmF0ZSBoYW5kbGVVc2VybGFuZEVycm9yKGVycm9yOiB1bmtub3duKTogbmV2ZXIge1xuICAgICAgLy8gV2hlbiBhbiBlcnJvciBvY2N1cnMgaW4gYSB1c2VybGFuZCBjb21wb25lbnQgZHVyaW5nIGEgdHJlZSBvcGVyYXRpb24sXG4gICAgICAvLyBpdCBjYW4gY2F1c2UgdW5kZWZpbmVkLCBiaXphcnJlIGJlaGF2aW9yIGluIHRoZSB0cmVlLiBUbyBwcmV2ZW50IHRoaXMsXG4gICAgICAvLyB3ZSBkZXN0cm95IHRoZSB0cmVlIGFuZCB0aHJvdyBhbiBlcnJvciBpbnN0ZWFkLiBUaGlzIGhlbHBzIHByb3RlY3RcbiAgICAgIC8vIHRoZSBlbmQtdXNlcidzIGRhdGEgZnJvbSBjb3JydXB0aW9uLlxuICAgICAgdGhpcy5mdXJ0aGVzdEFuY2VzdG9yKCkuZGVzdHJveSgpO1xuICAgICAgdGhpcy50cmVlTm9kZUJhc2UuaGFuZGxlVXNlcmxhbmRFcnJvcihlcnJvcik7XG4gICB9XG5cbiAgIHByaXZhdGUgaW5kZXhJc091dE9mUmFuZ2UoXG4gICAgICBwYXJlbnQ6IFRyZWVOb2RlPFVzZXJsYW5kQ29tcG9uZW50PixcbiAgICAgIGluZGV4OiBudW1iZXJcbiAgICk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGluZGV4IDwgMCB8fCBpbmRleCA+IHBhcmVudC5icmFuY2hlcygpLmxlbmd0aDtcbiAgIH1cblxuICAgcHJpdmF0ZSBmdXJ0aGVzdEFuY2VzdG9yKCk6IFRyZWVOb2RlPFVzZXJsYW5kQ29tcG9uZW50PiB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXRoaXMtYWxpYXMgLS0gVGhpcyBjb2RlIGlzIGZvciBhbiBpdGVyYXRpb24sIG5vdCB0byBtYWtlIGB0aGlzYCBhdmFpbGFibGUgaW4gb3RoZXIgc2NvcGVzICh3aGljaCBpcyB3aGF0IHRoZSBydWxlIGlzIGludGVuZGVkIHRvIHByb3RlY3QgYWdhaW5zdCkuXG4gICAgICBsZXQgbm9kZTogVHJlZU5vZGU8VXNlcmxhbmRDb21wb25lbnQ+ID0gdGhpcztcbiAgICAgIHdoaWxlIChub2RlIGluc3RhbmNlb2YgVHJlZUJyYW5jaCkge1xuICAgICAgICAgY29uc3QgcGFyZW50ID0gbm9kZS5wYXJlbnQoKTtcbiAgICAgICAgIGlmIChwYXJlbnQgPT09IHVuZGVmaW5lZCkgYnJlYWs7XG4gICAgICAgICBub2RlID0gcGFyZW50O1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5vZGU7XG4gICB9XG5cbiAgIHByaXZhdGUgcmVhdHRhY2hWaWV3KGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgICBhc3NlcnQodGhpcy5fcGFyZW50ICE9PSB1bmRlZmluZWQpO1xuICAgICAgYXNzZXJ0KHRoaXMuZGV0YWNoZWRWaWV3ICE9PSBudWxsKTtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuX3BhcmVudC5nZXRCcmFuY2hlc0NvbnRhaW5lcigpO1xuICAgICAgYXNzZXJ0KGNvbnRhaW5lciAhPT0gdW5kZWZpbmVkKTtcbiAgICAgIHRoaXMuZGV0YWNoZWRWaWV3LnJlYXR0YWNoKCk7XG4gICAgICBjb250YWluZXIuaW5zZXJ0KHRoaXMuZGV0YWNoZWRWaWV3LCBpbmRleCk7XG4gICAgICB0aGlzLmRldGFjaGVkVmlldyA9IG51bGw7XG4gICAgICB0aGlzLnNldEluZGVudGF0aW9uKCk7XG4gICB9XG5cbiAgIHByaXZhdGUgc2V0SW5kZW50YXRpb24oKTogdm9pZCB7XG4gICAgICBhc3NlcnQodGhpcy5fcGFyZW50ICE9PSB1bmRlZmluZWQpO1xuICAgICAgY29uc3Qgcm9vdCA9IHRoaXMuX3BhcmVudC5yb290KCk7XG4gICAgICBpZiAocm9vdCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjb25zdCBvcHRpb25zID0gY29uZmlnLmdldENvbmZpZyhyb290KTtcbiAgICAgIGNvbnN0IGJyYW5jaGVzQ29udGFpbmVyRWwgPSB0aGlzLmJyYW5jaENvbnRyb2xsZXJcbiAgICAgICAgIC5nZXROYXRpdmVFbGVtZW50KClcbiAgICAgICAgIC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiYnJhbmNoZXMtY29udGFpbmVyXCIpXG4gICAgICAgICAuaXRlbSgwKTtcbiAgICAgIGFzc2VydChicmFuY2hlc0NvbnRhaW5lckVsIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpO1xuICAgICAgYnJhbmNoZXNDb250YWluZXJFbC5zdHlsZS5tYXJnaW5MZWZ0ID0gYCR7b3B0aW9ucz8uaW5kZW50YXRpb24gPz8gMTZ9cHhgO1xuICAgfVxufVxuIl19