@coolon/angular-ui-powerups 16.1.0-aplpha.88 → 16.1.0-aplpha.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/assets/activities/input-activities.scss +2 -10
  2. package/assets/form.scss +27 -62
  3. package/assets/table.scss +24 -13
  4. package/assets/tabs.scss +6 -2
  5. package/esm2022/lib/animations/slide-animations.mjs +1 -6
  6. package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
  7. package/esm2022/lib/components/commands/command/command.component.mjs +10 -24
  8. package/esm2022/lib/components/commands/command-face/command-face.component.mjs +3 -11
  9. package/esm2022/lib/components/commands/command-face.mjs +11 -11
  10. package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
  11. package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +4 -6
  12. package/esm2022/lib/components/components.module.mjs +8 -22
  13. package/esm2022/lib/components/disposable-component.mjs +37 -19
  14. package/esm2022/lib/components/exports.mjs +2 -6
  15. package/esm2022/lib/components/forms/abstract-input.component.mjs +12 -55
  16. package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +2 -2
  17. package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +3 -3
  18. package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +2 -2
  19. package/esm2022/lib/components/forms/number-input/number-input.component.mjs +10 -49
  20. package/esm2022/lib/components/forms/password-input/password-input.component.mjs +3 -40
  21. package/esm2022/lib/components/forms/select-input/select-input.component.mjs +10 -11
  22. package/esm2022/lib/components/forms/string-input/string-input.component.mjs +9 -21
  23. package/esm2022/lib/components/icon/icon.component.mjs +4 -7
  24. package/esm2022/lib/components/resize-aware.component.mjs +24 -61
  25. package/esm2022/lib/components/switch-case/switch-case.component.mjs +7 -5
  26. package/esm2022/lib/components/tables/abstract-table-model.mjs +25 -42
  27. package/esm2022/lib/components/tables/abstract-table.component.mjs +5 -19
  28. package/esm2022/lib/components/tables/column/column-list-model.mjs +44 -0
  29. package/esm2022/lib/components/tables/column/column-model.mjs +3 -13
  30. package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
  31. package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
  32. package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
  33. package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
  34. package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
  35. package/esm2022/lib/components/tables/column/selection-column-model.mjs +3 -3
  36. package/esm2022/lib/components/tables/editor/edit-session.mjs +2 -4
  37. package/esm2022/lib/components/tables/filter/table-filter-model.mjs +2 -4
  38. package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +2 -16
  39. package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
  40. package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +41 -132
  41. package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +2 -7
  42. package/esm2022/lib/components/tables/table/table.component.mjs +68 -19
  43. package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +4 -5
  44. package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
  45. package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +4 -7
  46. package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +3 -3
  47. package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
  48. package/esm2022/lib/directives/directives.module.mjs +1 -1
  49. package/esm2022/lib/directives/exports.mjs +1 -2
  50. package/esm2022/lib/directives/highlight.pipe.mjs +2 -2
  51. package/esm2022/lib/interaction/activity.mjs +4 -3
  52. package/esm2022/lib/interaction/alert.mjs +2 -2
  53. package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +4 -8
  54. package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +9 -7
  55. package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +11 -28
  56. package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
  57. package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
  58. package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +2 -2
  59. package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +3 -3
  60. package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
  61. package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +1 -3
  62. package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +4 -8
  63. package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
  64. package/esm2022/lib/interaction/exports.mjs +1 -2
  65. package/esm2022/lib/interaction/interaction.module.mjs +9 -7
  66. package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +4 -3
  67. package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +9 -7
  68. package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
  69. package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
  70. package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
  71. package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +6 -3
  72. package/esm2022/lib/place/place-component.mjs +7 -7
  73. package/esm2022/lib/place/place-definition.mjs +3 -3
  74. package/esm2022/lib/place/place-history.mjs +2 -2
  75. package/esm2022/lib/place/place.decorator.mjs +2 -2
  76. package/esm2022/lib/place/place.module.mjs +5 -1
  77. package/esm2022/lib/place/route/formatter.mjs +2 -2
  78. package/esm2022/lib/place/route/parameter-decorators.mjs +50 -54
  79. package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
  80. package/esm2022/lib/place/url-snapshot.mjs +3 -3
  81. package/esm2022/lib/place/visit-segment.mjs +2 -2
  82. package/esm2022/lib/place/visit.mjs +2 -2
  83. package/fesm2022/coolon-angular-ui-powerups.mjs +488 -1078
  84. package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
  85. package/lib/animations/slide-animations.d.ts +0 -1
  86. package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
  87. package/lib/components/commands/command/command.component.d.ts +1 -2
  88. package/lib/components/commands/command-face/command-face.component.d.ts +0 -2
  89. package/lib/components/commands/command-face.d.ts +7 -5
  90. package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
  91. package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
  92. package/lib/components/components.module.d.ts +53 -55
  93. package/lib/components/disposable-component.d.ts +8 -11
  94. package/lib/components/exports.d.ts +1 -5
  95. package/lib/components/forms/abstract-input.component.d.ts +5 -13
  96. package/lib/components/forms/number-input/number-input.component.d.ts +4 -8
  97. package/lib/components/forms/password-input/password-input.component.d.ts +1 -7
  98. package/lib/components/forms/select-input/select-input.component.d.ts +3 -4
  99. package/lib/components/forms/string-input/string-input.component.d.ts +1 -3
  100. package/lib/components/resize-aware.component.d.ts +5 -24
  101. package/lib/components/switch-case/switch-case.component.d.ts +3 -2
  102. package/lib/components/tables/abstract-table-model.d.ts +5 -10
  103. package/lib/components/tables/abstract-table.component.d.ts +2 -3
  104. package/lib/components/tables/column/column-list-model.d.ts +13 -0
  105. package/lib/components/tables/column/column-model.d.ts +1 -5
  106. package/lib/components/tables/column/custom-template-column-model.d.ts +1 -2
  107. package/lib/components/tables/column/custom-value-column-model.d.ts +1 -2
  108. package/lib/components/tables/column/editor-controls-column-model.d.ts +1 -2
  109. package/lib/components/tables/column/list-propery-column-model.d.ts +1 -2
  110. package/lib/components/tables/column/property-column-model.d.ts +1 -2
  111. package/lib/components/tables/column/selection-column-model.d.ts +1 -2
  112. package/lib/components/tables/filter/text-search-predicate.d.ts +0 -9
  113. package/lib/components/tables/renderer/table-body/table-body.component.d.ts +16 -35
  114. package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +1 -2
  115. package/lib/components/tables/table/table.component.d.ts +10 -5
  116. package/lib/components/tables/tree-table/tree-label-column-model.d.ts +1 -2
  117. package/lib/components/tables/tree-table/tree-table-component.d.ts +0 -3
  118. package/lib/directives/exports.d.ts +0 -1
  119. package/lib/interaction/activity.d.ts +2 -2
  120. package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +0 -1
  121. package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +3 -1
  122. package/lib/interaction/components/activity-container/activity-container.component.d.ts +3 -7
  123. package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
  124. package/lib/interaction/components/editors/edit-context.d.ts +1 -1
  125. package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +1 -1
  126. package/lib/interaction/exports.d.ts +0 -1
  127. package/lib/interaction/interaction.module.d.ts +28 -28
  128. package/lib/place/components/place-outlet/place-outlet.component.d.ts +4 -3
  129. package/lib/place/place-component.d.ts +4 -4
  130. package/lib/place/place.module.d.ts +5 -4
  131. package/package.json +5 -7
  132. package/esm2022/lib/components/forms/form-field.mjs +0 -2
  133. package/esm2022/lib/components/forms/search-input/search-input.component.mjs +0 -33
  134. package/esm2022/lib/components/loadable-component.mjs +0 -49
  135. package/esm2022/lib/components/tables/column/column-manager.mjs +0 -81
  136. package/esm2022/lib/components/tables/column/column-order-manager.mjs +0 -19
  137. package/esm2022/lib/directives/resize-observer.directive.mjs +0 -40
  138. package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +0 -129
  139. package/lib/components/forms/form-field.d.ts +0 -5
  140. package/lib/components/forms/search-input/search-input.component.d.ts +0 -10
  141. package/lib/components/loadable-component.d.ts +0 -17
  142. package/lib/components/tables/column/column-manager.d.ts +0 -19
  143. package/lib/components/tables/column/column-order-manager.d.ts +0 -20
  144. package/lib/directives/resize-observer.directive.d.ts +0 -16
  145. package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +0 -53
@@ -1,8 +1,8 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { assert } from '@coolon/pectin';
3
3
  import { lang, Opts } from '@coolon/typescript-utilities';
4
- import { Memoize } from 'fast-typescript-memoize';
5
- import { isEmpty, isNil, join } from 'lodash-es';
4
+ import { Memoize } from '@typescript-plus/fast-memoize-decorator';
5
+ import { isEmpty, isNil, join } from 'lodash';
6
6
  import { ParameterDefinition } from './route/parameter-definition';
7
7
  export class PlaceDefinition {
8
8
  component;
@@ -210,4 +210,4 @@ __decorate([
210
210
  __metadata("design:paramtypes", [Object]),
211
211
  __metadata("design:returntype", Array)
212
212
  ], PlaceDefinition.prototype, "getVisitParameterDefs", null);
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFFaEQsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBRS9DLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE1BQU0sT0FBTyxlQUFlO0lBSUw7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRiLE9BQU8sQ0FBa0I7SUFFakMsWUFBcUIsU0FBd0MsRUFDeEMsSUFBWSxFQUNaLFlBQXFCLEVBQ3JCLElBQVMsRUFDVCxJQUF5QixFQUN6QixlQUEyQyxFQUMzQyxRQUEyQixFQUMzQixvQkFBNkI7UUFQN0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FB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YUFBYSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixVQUFVLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDakk7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsY0FBNkM7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUUsQ0FBQztDQUVGO0FBbExDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7dURBR1Q7QUFpQ0Q7SUFEQyxPQUFPLEVBQUU7OztvQ0FDZ0IsbUJBQW1COzZEQUU1QztBQUdEO0lBREMsT0FBTyxFQUFFOzs7OzREQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7NERBWVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhcmFtTWFwfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHthc3NlcnQsIENvbnN0cnVjdGFibGUsIFByZWRpY2F0ZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nLCBPcHRzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnZmFzdC10eXBlc2NyaXB0LW1lbW9pemUnO1xuXG5pbXBvcnQge2lzRW1wdHksIGlzTmlsLCBqb2lufSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtQbGFjZUNvbXBvbmVudH0gZnJvbSAnLi9wbGFjZS1jb21wb25lbnQnO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3JvdXRlL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5leHBvcnQgY2xhc3MgUGxhY2VEZWZpbml0aW9uIHsgLy9pbXBsZW1lbnRzIFZpc2l0YWJsZVRyZWU8UGxhY2VEZWZpbml0aW9uPiAge1xuXG4gIHByaXZhdGUgX3BhcmVudDogUGxhY2VEZWZpbml0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IGNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHBhdGg6IHN0cmluZyxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgYXV0aGVudGljYXRlOiBib29sZWFuLFxuICAgICAgICAgICAgICByZWFkb25seSByb2xlOiBhbnksXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJvdXRlUGFyYW1ldGVyczogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGNoaWxkcmVuOiBQbGFjZURlZmluaXRpb25bXSxcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcmVkaXJlY3RUb0ZpcnN0Q2hpbGQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goaXQgPT4gaXQuc2V0UGFyZW50KHRoaXMpKTtcblxuICB9XG5cbiAgQE1lbW9pemUoKVxuICBhbmNlc3RvcnMoKTogUGxhY2VEZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLnBhcmVudCA/IHRoaXMucGFyZW50LmFuY2VzdG9ycygpLmNvbmNhdChbdGhpcy5wYXJlbnRdKSA6IFtdO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBhbmNlc3RvcnNBbmRTZWxmKCk6IFBsYWNlRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5hbmNlc3RvcnMoKS5jb25jYXQodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UGFyZW50KHBhcmVudDogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgYXNzZXJ0LmlzTmlsKHRoaXMuX3BhcmVudCk7XG4gICAgdGhpcy5fcGFyZW50ID0gcGFyZW50O1xuICB9XG5cbiAgZ2V0IHBhcmVudCgpOiBQbGFjZURlZmluaXRpb24ge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gIH1cblxuICBpc1Jvb3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLl9wYXJlbnRcbiAgfVxuXG4gIGhhc1BhcmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMucGFyZW50XG4gIH1cblxuICBoYXNDaGlsZHJlbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIWlzRW1wdHkodGhpcy5jaGlsZHJlbik7XG4gIH1cblxuICBmaW5kQ2hpbGQocHJlZGljYXRlOiBQcmVkaWNhdGU8UGxhY2VEZWZpbml0aW9uPik6IFBsYWNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY2hpbGRyZW4uZmluZChwcmVkaWNhdGUpO1xuICB9XG5cblxuICBoYXNSb3V0ZUlkKCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVQYXJhbWV0ZXJzLmZpbmQocCA9PiBwLmlzUm91dGVJZCk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFJvdXRlUGFyYW1ldGVyRGVmcyhpbmNsdWRlUm91dGVJZCA9IGZhbHNlKTogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7aW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWV9KTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0VmlzaXRQYXJhbWV0ZXJEZWZzKGluY2x1ZGU/OiBQbGFjZURlZmluaXRpb24uUGFyYW1ldGVyT3B0aW9ucyk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICBjb25zdCBvcHRzID0gT3B0cy5nZXQoaW5jbHVkZSk7XG4gICAgLy8gaW5jbHVkZXNcbiAgICBjb25zdCBpbmNsdWRlUm91dGVJZCA9ICFpbmNsdWRlIHx8IG9wdHMuZ2V0T3B0aW9uYWwoJ2luY2x1ZGVSb3V0ZUlkJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIGNvbnN0IGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzJywgZmFsc2UpO1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maWx0ZXIocCA9PiB7XG4gICAgICByZXR1cm4gKGluY2x1ZGVSb3V0ZUlkICYmIHAuaXNSb3V0ZUlkKVxuICAgICAgICB8fCAoaW5jbHVkZVJvdXRlUGFyYW1ldGVycyAmJiBwLmlzUm91dGVQYXJhbWV0ZXIgJiYgIXAuaXNSb3V0ZUlkKSAvLyByb3V0ZSBpZCBpcyBpbmNsdWRlZCBpbiB0aGUgbGluZSBhYm92ZVxuICAgICAgICB8fCAoaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycyAmJiAhcC5pc1JvdXRlUGFyYW1ldGVyKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBsYWNlRGF0YTxUPihrZXk6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgIHJldHVybiB0aGlzLmRhdGEgP1xuICAgICAgaXNOaWwodGhpcy5kYXRhW2tleV0pID8gZGVmYXVsdFZhbHVlIDogdGhpcy5kYXRhW2tleV0gOlxuICAgICAgZGVmYXVsdFZhbHVlO1xuICB9XG5cbiAgc2VhcmNoUGxhY2VEYXRhPFQ+KGtleXM6IHN0cmluZ1tdLCBkZWZhdWx0VmFsdWU/OiBUKTogVCB7XG4gICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgY29uc3QgZm91bmQgPSBrZXlzLmZpbmQoa2V5ID0+ICFpc05pbCh0aGlzLmRhdGFba2V5XSkpO1xuICAgICAgcmV0dXJuIGZvdW5kID8gdGhpcy5kYXRhW2ZvdW5kXSA6IGRlZmF1bHRWYWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBnZXRSb3V0ZUlkRnJvbSh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgY29uc3Qgcm91dGVJZFBhcmFtZXRlckRlZiA9IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpO1xuICAgIHJldHVybiByb3V0ZUlkUGFyYW1ldGVyRGVmID8gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUocm91dGVJZFBhcmFtZXRlckRlZikgOiBudWxsO1xuICB9XG5cbiAgZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdDogVmlzaXRTZWdtZW50KTogYW55IHtcbiAgICAvLyBOb3RlOiBSb3V0ZUlkcyBhcmUgYWx3YXlzIHByZXNlbnQgaW4gdGhlIHVybCBhbmQgYXJlIGp1c3QgZW1wdHkgc3RyaW5ncyB3aGVuIG5vdCBkZWZpbmVkLiAgVGhpcyBpc1xuICAgIC8vIG1hbmRhdGVkIGJ5IHRoZSBmYWN0IHRoYXQgcmVkaXJlY3RzIGZyb20gPHBhdGg+IHRvIDxwYXRoPi86aWQgYWx3YXlzIGluY2x1ZGUgdGhlIGlkIHBhcmFtZXRlciBhc1xuICAgIC8vIGFuIGVtcHR5IHN0cmluZy5cbiAgICByZXR1cm4gdmlzaXQuaGFzUm91dGVJZCgpID8gdGhpcy5nZXRSb3V0ZUlkUGFyYW1ldGVyRGVmKCkudXJsRm9ybWF0LmZvcm1hdCh2aXNpdC5nZXRSb3V0ZUlkKCkpIDogXCJcIjtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIGdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXRTZWdtZW50LCBpbmNsdWRlUm91dGVJZCA9IGZhbHNlKTogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZCwgaW5jbHVkZVJvdXRlUGFyYW1ldGVyczogdHJ1ZVxuICAgIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUoZGVmKTtcbiAgICAgIGlmICghZGVmLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgYXNzZXJ0LmlzQXJyYXkodmFsdWUpO1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZS5tYXAodiA9PiBkZWYudXJsRm9ybWF0LmZvcm1hdCh2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgYXNzZXJ0LmlzRmFsc2V5KEFycmF5LmlzQXJyYXkodmFsdWUpKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gZGVmLnVybEZvcm1hdC5mb3JtYXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGdldE5vblJvdXRlUGFyYW1ldGVycyh2aXNpdDogVmlzaXRTZWdtZW50KTogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBbcDogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7aW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogdHJ1ZX0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gdmlzaXQuZ2V0UGFyYW1ldGVyVmFsdWUoZGVmKTtcbiAgICAgIGlmICghZGVmLmlzRW1wdHlWYWx1ZSh2YWx1ZSkpIHtcbiAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBwYXJzZVJvdXRlUGFyYW1zKHBhcmFtczogUGFyYW1NYXApOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgICBjb25zdCByZXN1bHQ6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZDogdHJ1ZSxcbiAgICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUsXG4gICAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiBmYWxzZVxuICAgIH0pLmZvckVhY2goZGVmID0+IHtcbiAgICAgIC8vIHBhcmFtcyB3aWxsIHJldHVybiBudWxsIGZvciBub24gZXhpc3RlbnQgbmFtZXNcbiAgICAgIGlmIChwYXJhbXMuaGFzKGRlZi5uYW1lKSkge1xuICAgICAgICBpZiAoZGVmLmlzQXJyYXkpIHtcbiAgICAgICAgICAvLyBjb25zdCB2YWx1ZXMgPSBwYXJhbXMuZ2V0QWxsKGRlZi5uYW1lKTsgLy8gVE9ETzogRUVFSyBnZXRBbGwgaXMgcmV0dXJuaW5nIFtcIjEsMiwzLDRcIl0gd2hlbiB3ZSBnYXZlIGl0IFtcIjFcIixcIjJcIixcIjNcIixcIjRcIl0uXG4gICAgICAgICAgY29uc3QgdmFsdWVzID0gcGFyYW1zLmdldChkZWYubmFtZSkuc3BsaXQoJywnKS5tYXAocyA9PiBzLnRyaW0oKSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IHZhbHVlcy5tYXAodiA9PiBkZWYudXJsRm9ybWF0LnBhcnNlKHYpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtcy5nZXQoZGVmLm5hbWUpO1xuICAgICAgICAgIGlmIChkZWYuaXNSb3V0ZUlkKSB7IC8vIFRPRE86IE1vdmUgdGhpcyB0byBwYXJhbWV0ZXIgZGVmIHNvIGl0J3MgYSBzdHJhdGVneSBwYXR0ZXJuXG4gICAgICAgICAgICAvLyBiZWNhdXNlIG91ciBpZCByb3V0ZXMgcmVkaXJlY3QgaWYgdGhlIGlkIGlzbid0IHByZXNlbnQgd2UgYWx3YXlzIGhhdmUgYSBpZFxuICAgICAgICAgICAgLy8gcGFyYW1ldGVyIGluIG91ciBwYXJhbXMuICBUaGlzIHdpbGwgYnVnZ2VyIG91ciByZW1lbWJlciBhbmQgZGVmYXVsdHZhbHVlIHNhbml0aXNhdGlvblxuICAgICAgICAgICAgLy8gYXMgaXQnbGwgc2VlIHRoYXQgdGhlIGlkIGlzIHByZXNlbnQgKGV2ZW50IHRob3VnaHQgaXRzIGEgYmxhbmsgc3RyaW5nKS5cbiAgICAgICAgICAgIGlmICghaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQucGFyc2UodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gZGVmLnVybEZvcm1hdC5wYXJzZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHZhbGlkYXRlUm91dGVQYXJhbWV0ZXJzKHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIGNvbnN0IGRlZnMgPSB0aGlzLmdldFZpc2l0UGFyYW1ldGVyRGVmcyh7XG4gICAgICBpbmNsdWRlUm91dGVJZDogdHJ1ZSxcbiAgICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWUsXG4gICAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzOiB0cnVlXG4gICAgfSkucmVkdWNlKChyZXN1bHQsIGRlZikgPT4ge1xuICAgICAgcmV0dXJuIHsuLi5yZXN1bHQsIFtkZWYubmFtZV06IGRlZn1cbiAgICB9LCB7fSk7XG5cbiAgICBPYmplY3Qua2V5cyhwYXJhbXMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IGRlZnNba2V5XTtcbiAgICAgIGlmICghcGFyYW1ldGVyRGVmKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBQYXJhbWV0ZXIgJHtrZXl9IGlzIG5vdCB2YWxpZC4gIE11c3QgYmUgb25lIG9mICR7am9pbihPYmplY3Qua2V5cyhkZWZzKSl9YClcbiAgICAgIH1cblxuICAgICAgaWYgKCEhcGFyYW1zW2tleV0gJiYgKEFycmF5LmlzQXJyYXkocGFyYW1zW2tleV0pICE9PSBwYXJhbWV0ZXJEZWYuaXNBcnJheSkpIHtcbiAgICAgICAgbGFuZy5pbGxlZ2FsU3RhdGUoYFBhcmFtZXRlciAke2tleX0gJHtwYXJhbWV0ZXJEZWYuaXNBcnJheSA/IFwibXVzdCBiZSBhbiBhcnJheVwiIDogXCJtdXN0IG5vdCBiZSBhbiBhcnJheVwifS4gIEdvdCAke3BhcmFtc1trZXldfWApXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGhhc0FuY2VzdG9yKHBsYWNlQ29tcG9uZW50OiBDb25zdHJ1Y3RhYmxlPFBsYWNlQ29tcG9uZW50Pikge1xuICAgIHJldHVybiB0aGlzLmFuY2VzdG9ycygpLmZpbmQoYSA9PiBhLmNvbXBvbmVudCA9PT0gcGxhY2VDb21wb25lbnQpICE9IG51bGw7XG4gIH1cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlRGVmaW5pdGlvbiB7XG4gIGV4cG9ydCBpbnRlcmZhY2UgUGFyYW1ldGVyT3B0aW9ucyB7XG4gICAgaW5jbHVkZVJvdXRlSWQ/OiBib29sZWFuO1xuICAgIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM/OiBib29sZWFuO1xuICAgIGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnM/OiBib29sZWFuO1xuICB9XG59XG4iXX0=
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtZGVmaW5pdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWRlZmluaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBQyxNQUFNLEVBQTJCLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEUsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFFaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBRTVDLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2pFLE1BQU0sT0FBTyxlQUFlO0lBSUw7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQVRiLE9BQU8sQ0FBa0I7SUFFakMsWUFBcUIsU0FBd0MsRUFDeEMsSUFBWSxFQUNaLFlBQXFCLEVBQ3JCLElBQVMsRUFDVCxJQUF5QixFQUN6QixlQUEyQyxFQUMzQyxRQUEyQixFQUMzQixvQkFBNkI7UUFQN0IsY0FBUyxHQUFULFNBQVMsQ0FBK0I7UUFDeEMsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLGlCQUFZLEdBQVosWUFBWSxDQUFTO1FBQ3JCLFNBQUksR0FBSixJQUFJLENBQUs7UUFDVCxTQUFJLEdBQUosSUFBSSxDQUFxQjtRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBNEI7UUFDM0MsYUFBUSxHQUFSLFFBQVEsQ0FBbUI7UUFDM0IseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFTO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FB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YUFBYSxHQUFHLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixVQUFVLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUE7YUFDakk7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsY0FBNkM7UUFDdkQsT0FBTyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsS0FBSyxjQUFjLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDNUUsQ0FBQztDQUVGO0FBbExDO0lBREMsT0FBTyxFQUFFOzs7O2dEQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7dURBR1Q7QUFpQ0Q7SUFEQyxPQUFPLEVBQUU7OztvQ0FDZ0IsbUJBQW1COzZEQUU1QztBQUdEO0lBREMsT0FBTyxFQUFFOzs7OzREQUdUO0FBR0Q7SUFEQyxPQUFPLEVBQUU7Ozs7NERBWVQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhcmFtTWFwfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHthc3NlcnQsIENvbnN0cnVjdGFibGUsIFByZWRpY2F0ZX0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtsYW5nLCBPcHRzfSBmcm9tICdAY29vbG9uL3R5cGVzY3JpcHQtdXRpbGl0aWVzJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yJztcblxuaW1wb3J0IHtpc0VtcHR5LCBpc05pbCwgam9pbn0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGFyYW1ldGVyRGVmaW5pdGlvbn0gZnJvbSAnLi9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuZXhwb3J0IGNsYXNzIFBsYWNlRGVmaW5pdGlvbiB7IC8vaW1wbGVtZW50cyBWaXNpdGFibGVUcmVlPFBsYWNlRGVmaW5pdGlvbj4gIHtcblxuICBwcml2YXRlIF9wYXJlbnQ6IFBsYWNlRGVmaW5pdGlvbjtcblxuICBjb25zdHJ1Y3RvcihyZWFkb25seSBjb21wb25lbnQ6IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+LFxuICAgICAgICAgICAgICByZWFkb25seSBwYXRoOiBzdHJpbmcsXG4gICAgICAgICAgICAgIHJlYWRvbmx5IGF1dGhlbnRpY2F0ZTogYm9vbGVhbixcbiAgICAgICAgICAgICAgcmVhZG9ubHkgcm9sZTogYW55LFxuICAgICAgICAgICAgICByZWFkb25seSBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgICAgICAgICAgICByZWFkb25seSByb3V0ZVBhcmFtZXRlcnM6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdLFxuICAgICAgICAgICAgICByZWFkb25seSBjaGlsZHJlbjogUGxhY2VEZWZpbml0aW9uW10sXG4gICAgICAgICAgICAgIHJlYWRvbmx5IHJlZGlyZWN0VG9GaXJzdENoaWxkOiBib29sZWFuKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKGl0ID0+IGl0LnNldFBhcmVudCh0aGlzKSk7XG5cbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgYW5jZXN0b3JzKCk6IFBsYWNlRGVmaW5pdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnQgPyB0aGlzLnBhcmVudC5hbmNlc3RvcnMoKS5jb25jYXQoW3RoaXMucGFyZW50XSkgOiBbXTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgYW5jZXN0b3JzQW5kU2VsZigpOiBQbGFjZURlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuYW5jZXN0b3JzKCkuY29uY2F0KHRoaXMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldFBhcmVudChwYXJlbnQ6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIGFzc2VydC5pc05pbCh0aGlzLl9wYXJlbnQpO1xuICAgIHRoaXMuX3BhcmVudCA9IHBhcmVudDtcbiAgfVxuXG4gIGdldCBwYXJlbnQoKTogUGxhY2VEZWZpbml0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fcGFyZW50O1xuICB9XG5cbiAgaXNSb290KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5fcGFyZW50XG4gIH1cblxuICBoYXNQYXJlbnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLnBhcmVudFxuICB9XG5cbiAgaGFzQ2hpbGRyZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFpc0VtcHR5KHRoaXMuY2hpbGRyZW4pO1xuICB9XG5cbiAgZmluZENoaWxkKHByZWRpY2F0ZTogUHJlZGljYXRlPFBsYWNlRGVmaW5pdGlvbj4pOiBQbGFjZURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNoaWxkcmVuLmZpbmQocHJlZGljYXRlKTtcbiAgfVxuXG5cbiAgaGFzUm91dGVJZCgpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnJvdXRlUGFyYW1ldGVycy5maW5kKHAgPT4gcC5pc1JvdXRlSWQpO1xuICB9XG5cbiAgQE1lbW9pemUoKVxuICBnZXRSb3V0ZVBhcmFtZXRlckRlZnMoaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IFBhcmFtZXRlckRlZmluaXRpb248YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe2luY2x1ZGVSb3V0ZUlkLCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlfSk7XG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIGdldFZpc2l0UGFyYW1ldGVyRGVmcyhpbmNsdWRlPzogUGxhY2VEZWZpbml0aW9uLlBhcmFtZXRlck9wdGlvbnMpOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT5bXSB7XG4gICAgY29uc3Qgb3B0cyA9IE9wdHMuZ2V0KGluY2x1ZGUpO1xuICAgIC8vIGluY2x1ZGVzXG4gICAgY29uc3QgaW5jbHVkZVJvdXRlSWQgPSAhaW5jbHVkZSB8fCBvcHRzLmdldE9wdGlvbmFsKCdpbmNsdWRlUm91dGVJZCcsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZVJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICBjb25zdCBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzID0gIWluY2x1ZGUgfHwgb3B0cy5nZXRPcHRpb25hbCgnaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVycycsIGZhbHNlKTtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZVBhcmFtZXRlcnMuZmlsdGVyKHAgPT4ge1xuICAgICAgcmV0dXJuIChpbmNsdWRlUm91dGVJZCAmJiBwLmlzUm91dGVJZClcbiAgICAgICAgfHwgKGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnMgJiYgcC5pc1JvdXRlUGFyYW1ldGVyICYmICFwLmlzUm91dGVJZCkgLy8gcm91dGUgaWQgaXMgaW5jbHVkZWQgaW4gdGhlIGxpbmUgYWJvdmVcbiAgICAgICAgfHwgKGluY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnMgJiYgIXAuaXNSb3V0ZVBhcmFtZXRlcik7XG4gICAgfSk7XG4gIH1cblxuICBnZXRQbGFjZURhdGE8VD4oa2V5OiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IFQpOiBUIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhID9cbiAgICAgIGlzTmlsKHRoaXMuZGF0YVtrZXldKSA/IGRlZmF1bHRWYWx1ZSA6IHRoaXMuZGF0YVtrZXldIDpcbiAgICAgIGRlZmF1bHRWYWx1ZTtcbiAgfVxuXG4gIHNlYXJjaFBsYWNlRGF0YTxUPihrZXlzOiBzdHJpbmdbXSwgZGVmYXVsdFZhbHVlPzogVCk6IFQge1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIGNvbnN0IGZvdW5kID0ga2V5cy5maW5kKGtleSA9PiAhaXNOaWwodGhpcy5kYXRhW2tleV0pKTtcbiAgICAgIHJldHVybiBmb3VuZCA/IHRoaXMuZGF0YVtmb3VuZF0gOiBkZWZhdWx0VmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0Um91dGVJZEZyb20odmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgIGNvbnN0IHJvdXRlSWRQYXJhbWV0ZXJEZWYgPSB0aGlzLmdldFJvdXRlSWRQYXJhbWV0ZXJEZWYoKTtcbiAgICByZXR1cm4gcm91dGVJZFBhcmFtZXRlckRlZiA/IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHJvdXRlSWRQYXJhbWV0ZXJEZWYpIDogbnVsbDtcbiAgfVxuXG4gIGdldEZvcm1hdHRlZFJvdXRlSWQodmlzaXQ6IFZpc2l0U2VnbWVudCk6IGFueSB7XG4gICAgLy8gTm90ZTogUm91dGVJZHMgYXJlIGFsd2F5cyBwcmVzZW50IGluIHRoZSB1cmwgYW5kIGFyZSBqdXN0IGVtcHR5IHN0cmluZ3Mgd2hlbiBub3QgZGVmaW5lZC4gIFRoaXMgaXNcbiAgICAvLyBtYW5kYXRlZCBieSB0aGUgZmFjdCB0aGF0IHJlZGlyZWN0cyBmcm9tIDxwYXRoPiB0byA8cGF0aD4vOmlkIGFsd2F5cyBpbmNsdWRlIHRoZSBpZCBwYXJhbWV0ZXIgYXNcbiAgICAvLyBhbiBlbXB0eSBzdHJpbmcuXG4gICAgcmV0dXJuIHZpc2l0Lmhhc1JvdXRlSWQoKSA/IHRoaXMuZ2V0Um91dGVJZFBhcmFtZXRlckRlZigpLnVybEZvcm1hdC5mb3JtYXQodmlzaXQuZ2V0Um91dGVJZCgpKSA6IFwiXCI7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBnZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0U2VnbWVudCwgaW5jbHVkZVJvdXRlSWQgPSBmYWxzZSk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQsIGluY2x1ZGVSb3V0ZVBhcmFtZXRlcnM6IHRydWVcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKGRlZik7XG4gICAgICBpZiAoIWRlZi5pc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIGlmIChkZWYuaXNBcnJheSkge1xuICAgICAgICAgIGFzc2VydC5pc0FycmF5KHZhbHVlKTtcbiAgICAgICAgICByZXN1bHRbZGVmLm5hbWVdID0gdmFsdWUubWFwKHYgPT4gZGVmLnVybEZvcm1hdC5mb3JtYXQodikpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGFzc2VydC5pc0ZhbHNleShBcnJheS5pc0FycmF5KHZhbHVlKSk7XG4gICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQuZm9ybWF0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBnZXROb25Sb3V0ZVBhcmFtZXRlcnModmlzaXQ6IFZpc2l0U2VnbWVudCk6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXN1bHQ6IHsgW3A6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe2luY2x1ZGVOb25Sb3V0ZVBhcmFtZXRlcnM6IHRydWV9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHZpc2l0LmdldFBhcmFtZXRlclZhbHVlKGRlZik7XG4gICAgICBpZiAoIWRlZi5pc0VtcHR5VmFsdWUodmFsdWUpKSB7XG4gICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcGFyc2VSb3V0ZVBhcmFtcyhwYXJhbXM6IFBhcmFtTWFwKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gICAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gICAgdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQ6IHRydWUsXG4gICAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogZmFsc2VcbiAgICB9KS5mb3JFYWNoKGRlZiA9PiB7XG4gICAgICAvLyBwYXJhbXMgd2lsbCByZXR1cm4gbnVsbCBmb3Igbm9uIGV4aXN0ZW50IG5hbWVzXG4gICAgICBpZiAocGFyYW1zLmhhcyhkZWYubmFtZSkpIHtcbiAgICAgICAgaWYgKGRlZi5pc0FycmF5KSB7XG4gICAgICAgICAgLy8gY29uc3QgdmFsdWVzID0gcGFyYW1zLmdldEFsbChkZWYubmFtZSk7IC8vIFRPRE86IEVFRUsgZ2V0QWxsIGlzIHJldHVybmluZyBbXCIxLDIsMyw0XCJdIHdoZW4gd2UgZ2F2ZSBpdCBbXCIxXCIsXCIyXCIsXCIzXCIsXCI0XCJdLlxuICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IHBhcmFtcy5nZXQoZGVmLm5hbWUpLnNwbGl0KCcsJykubWFwKHMgPT4gcy50cmltKCkpO1xuICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSB2YWx1ZXMubWFwKHYgPT4gZGVmLnVybEZvcm1hdC5wYXJzZSh2KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXMuZ2V0KGRlZi5uYW1lKTtcbiAgICAgICAgICBpZiAoZGVmLmlzUm91dGVJZCkgeyAvLyBUT0RPOiBNb3ZlIHRoaXMgdG8gcGFyYW1ldGVyIGRlZiBzbyBpdCdzIGEgc3RyYXRlZ3kgcGF0dGVyblxuICAgICAgICAgICAgLy8gYmVjYXVzZSBvdXIgaWQgcm91dGVzIHJlZGlyZWN0IGlmIHRoZSBpZCBpc24ndCBwcmVzZW50IHdlIGFsd2F5cyBoYXZlIGEgaWRcbiAgICAgICAgICAgIC8vIHBhcmFtZXRlciBpbiBvdXIgcGFyYW1zLiAgVGhpcyB3aWxsIGJ1Z2dlciBvdXIgcmVtZW1iZXIgYW5kIGRlZmF1bHR2YWx1ZSBzYW5pdGlzYXRpb25cbiAgICAgICAgICAgIC8vIGFzIGl0J2xsIHNlZSB0aGF0IHRoZSBpZCBpcyBwcmVzZW50IChldmVudCB0aG91Z2h0IGl0cyBhIGJsYW5rIHN0cmluZykuXG4gICAgICAgICAgICBpZiAoIWlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgICAgIHJlc3VsdFtkZWYubmFtZV0gPSBkZWYudXJsRm9ybWF0LnBhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0W2RlZi5uYW1lXSA9IGRlZi51cmxGb3JtYXQucGFyc2UodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB2YWxpZGF0ZVJvdXRlUGFyYW1ldGVycyhwYXJhbXM6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICBjb25zdCBkZWZzID0gdGhpcy5nZXRWaXNpdFBhcmFtZXRlckRlZnMoe1xuICAgICAgaW5jbHVkZVJvdXRlSWQ6IHRydWUsXG4gICAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzOiB0cnVlLFxuICAgICAgaW5jbHVkZU5vblJvdXRlUGFyYW1ldGVyczogdHJ1ZVxuICAgIH0pLnJlZHVjZSgocmVzdWx0LCBkZWYpID0+IHtcbiAgICAgIHJldHVybiB7Li4ucmVzdWx0LCBbZGVmLm5hbWVdOiBkZWZ9XG4gICAgfSwge30pO1xuXG4gICAgT2JqZWN0LmtleXMocGFyYW1zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBkZWZzW2tleV07XG4gICAgICBpZiAoIXBhcmFtZXRlckRlZikge1xuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgUGFyYW1ldGVyICR7a2V5fSBpcyBub3QgdmFsaWQuICBNdXN0IGJlIG9uZSBvZiAke2pvaW4oT2JqZWN0LmtleXMoZGVmcykpfWApXG4gICAgICB9XG5cbiAgICAgIGlmICghIXBhcmFtc1trZXldICYmIChBcnJheS5pc0FycmF5KHBhcmFtc1trZXldKSAhPT0gcGFyYW1ldGVyRGVmLmlzQXJyYXkpKSB7XG4gICAgICAgIGxhbmcuaWxsZWdhbFN0YXRlKGBQYXJhbWV0ZXIgJHtrZXl9ICR7cGFyYW1ldGVyRGVmLmlzQXJyYXkgPyBcIm11c3QgYmUgYW4gYXJyYXlcIiA6IFwibXVzdCBub3QgYmUgYW4gYXJyYXlcIn0uICBHb3QgJHtwYXJhbXNba2V5XX1gKVxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBoYXNBbmNlc3RvcihwbGFjZUNvbXBvbmVudDogQ29uc3RydWN0YWJsZTxQbGFjZUNvbXBvbmVudD4pIHtcbiAgICByZXR1cm4gdGhpcy5hbmNlc3RvcnMoKS5maW5kKGEgPT4gYS5jb21wb25lbnQgPT09IHBsYWNlQ29tcG9uZW50KSAhPSBudWxsO1xuICB9XG5cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZURlZmluaXRpb24ge1xuICBleHBvcnQgaW50ZXJmYWNlIFBhcmFtZXRlck9wdGlvbnMge1xuICAgIGluY2x1ZGVSb3V0ZUlkPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgICBpbmNsdWRlTm9uUm91dGVQYXJhbWV0ZXJzPzogYm9vbGVhbjtcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { assert } from '@coolon/pectin';
3
- import { first } from 'lodash-es';
3
+ import { first } from 'lodash';
4
4
  import * as i0 from "@angular/core";
5
5
  /**
6
6
  * TODO: this should be updated to store the last x visists rathern than a map of places to visit segments.
@@ -143,4 +143,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
143
143
  //
144
144
  // }
145
145
  })(PlaceHistory || (PlaceHistory = {}));
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQzs7QUFLaEM7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBRWYsZUFBZSxDQUEyQjtJQUMxQyxlQUFlLENBQTJCO0lBRTFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQUM3QyxpQkFBaUIsR0FBVyxDQUFDLENBQUM7SUFDL0MsdUJBQXVCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLE1BQWE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFtQjtRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBeUI7UUFDekMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxX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bUI7SUFDbkIsTUFBTTtJQUNOLEVBQUU7SUFDRiwwQkFBMEI7SUFDMUIsb0VBQW9FO0lBQ3BFLE1BQU07SUFDTixFQUFFO0lBQ0YsY0FBYztJQUNkLG9DQUFvQztJQUNwQyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixjQUFjO0lBQ2QseUVBQXlFO0lBQ3pFLG1HQUFtRztJQUNuRyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixNQUFNO0lBQ04sRUFBRTtJQUNGLGlFQUFpRTtJQUNqRSxtQ0FBbUM7SUFDbkMsbUJBQW1CO0lBQ25CLE1BQU07SUFDTixFQUFFO0lBQ0YsbUNBQW1DO0lBQ25DLGtFQUFrRTtJQUNsRSxNQUFNO0lBQ04sRUFBRTtJQUNGLHdDQUF3QztJQUN4QywyRUFBMkU7SUFDM0UsTUFBTTtJQUNOLEVBQUU7SUFDRixJQUFJO0FBRU4sQ0FBQyxFQW5GZ0IsWUFBWSxLQUFaLFlBQVksUUFtRjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbmltcG9ydCB7Zmlyc3R9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXR9IGZyb20gXCIuL3Zpc2l0XCI7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuLyoqXG4gKiBUT0RPOiB0aGlzIHNob3VsZCBiZSB1cGRhdGVkIHRvIHN0b3JlIHRoZSBsYXN0IHggdmlzaXN0cyByYXRoZXJuIHRoYW4gYSBtYXAgb2YgcGxhY2VzIHRvIHZpc2l0IHNlZ21lbnRzLlxuICogICAgICAgVGhpcyB3b3VsZCBhbGxvdyBpdCB0byByZXR1cm4gc2VnbWVudHMgdGhhdCBhcmUgcmVsZXZlbnQgdG8gYSBwYXJ0aWN1bGFyIHBhcmVudCBwYXRoLiBDdXJyZW50bHlcbiAqICAgICAgIGl0IGp1c3QgcmV0dXJucyB0aGUgbGFzdCBzZWdtZW50IHNvIGl0IGNhbiByZXR1cm4gY2hpbGQgaWRzIHRoYXQgZG9uJ3QgYmVsb25nIHRvIHRoZSBjdXJyZW50IHBhcmVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VIaXN0b3J5IHtcblxuICBwcml2YXRlIF9hY3RpdmVTZWdtZW50czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuICBwcml2YXRlIF9wcmV2aW91c1Zpc2l0czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuXG4gIHByaXZhdGUgX2FyY2hpdmUgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VIaXN0b3J5RGVwdGg6IG51bWJlciA9IDQ7XG4gIG5vdGlmeU5hdmlnYXRpb25TdGFydGVkKCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmVTZWdtZW50cykge1xuICAgICAgdGhpcy5hcmNoaXZlU2VnbWVudHModGhpcy5fYWN0aXZlU2VnbWVudHMudmlzaXRTZWdtZW50cyk7XG4gICAgICB0aGlzLl9wcmV2aW91c1Zpc2l0cyA9IHRoaXMuX2FjdGl2ZVNlZ21lbnRzO1xuICAgIH1cbiAgfVxuXG4gIG5vdGlmeU5hdmlnYXRpb25GaW5pc2hlZCh2aXNpdHM6IFZpc2l0KSB7XG4gICAgdGhpcy5fYWN0aXZlU2VnbWVudHMgPSBuZXcgUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkKHZpc2l0cy5zZWdtZW50cylcbiAgfVxuXG4gIHVwZGF0ZVZpc2l0U2VnbWVudCh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuX2FjdGl2ZVNlZ21lbnRzKTtcbiAgICB0aGlzLl9hY3RpdmVTZWdtZW50cy51cGRhdGUodmlzaXQpO1xuICB9XG5cbiAgbGFzdFZpc2l0SW5jbHVkZWQocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3ByZXZpb3VzVmlzaXRzPy5nZXRWaXNpdEZvcihwbGFjZURlZik7XG4gIH1cblxuICBnZXRNb3N0UmVjZW50VmlzaXRTZWdtZW50Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gZmlyc3QodGhpcy5nZXRTZWdtZW50SGlzdG9yeUZvcihwbGFjZURlZikpO1xuICB9XG5cbiAgZ2V0U2VnbWVudEhpc3RvcnlGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IFZpc2l0U2VnbWVudFtdIHtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuX2FyY2hpdmUuZ2V0KHBsYWNlRGVmKTtcbiAgICBpZiAoIWhpc3RvcnkpIHtcbiAgICAgIGhpc3RvcnkgPSBbXTtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeShwbGFjZURlZiwgaGlzdG9yeSk7XG4gICAgfVxuICAgIHJldHVybiBoaXN0b3J5O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRIaXN0b3J5KHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24sIGhpc3Rvcnk6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdGhpcy5fYXJjaGl2ZS5zZXQocGxhY2VEZWYsIGhpc3RvcnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFyY2hpdmVTZWdtZW50cyh2aXNpdHM6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdmlzaXRzLmZvckVhY2goc3RhdGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHRoaXMuZ2V0U2VnbWVudEhpc3RvcnlGb3Ioc3RhdGUucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBmaXJzdChoaXN0b3J5KTtcbiAgICAgIGlmICghcHJldmlvdXNTdGF0ZSB8fCBzdGF0ZS5oYXNDaGFuZ2VkRnJvbShwcmV2aW91c1N0YXRlKSkge1xuICAgICAgICBoaXN0b3J5LnVuc2hpZnQoc3RhdGUpOyAvLyBMSUZPXG4gICAgICAgIHRoaXMuc2V0SGlzdG9yeShzdGF0ZS5wbGFjZURlZmluaXRpb24sIGhpc3Rvcnkuc2xpY2UoMCwgdGhpcy5wbGFjZUhpc3RvcnlEZXB0aCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlSGlzdG9yeSB7XG5cbiAgZXhwb3J0IGNsYXNzIFZpc2l0UmVjb3JkIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlzaXRTZWdtZW50czogVmlzaXRTZWdtZW50W10pIHtcbiAgICB9XG5cbiAgICB1cGRhdGUodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgICAgdGhpcy52aXNpdFNlZ21lbnRzID0gdGhpcy52aXNpdFNlZ21lbnRzXG4gICAgICAgIC5maWx0ZXIodiA9PiB2LnBsYWNlRGVmaW5pdGlvbiAhPT0gdmlzaXQucGxhY2VEZWZpbml0aW9uKSAvLyBrZWVwIGFsbCB0aGF0IGFyZSBub3QgbWVcbiAgICAgICAgLmNvbmNhdCh2aXNpdCk7IC8vIGFuZCBhZGQgbWUgdG8gdGhlIGVuZFxuICAgIH1cblxuICAgIGdldFZpc2l0Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBWaXNpdFNlZ21lbnQgfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMudmlzaXRTZWdtZW50cy5maW5kKHYgPT4gdi5wbGFjZURlZmluaXRpb24gPT09IHBsYWNlRGVmKTtcbiAgICB9XG4gIH1cblxuICAvLyBleHBvcnQgY2xhc3MgUXVlcnkge1xuICAvLyAgIHByaXZhdGUgX2hpc3Rvcnk6IFZpc2l0LlN0YXRlW107XG4gIC8vICAgcHJpdmF0ZSBfcGxhY2VzOiBQbGFjZVtdO1xuICAvLyAgIHByaXZhdGUgX3ByZWRpY2F0ZTogKHZpc2l0OiBhbnkpID0+IGJvb2xlYW47XG4gIC8vICAgcHJpdmF0ZSBfbGltaXQ6IG51bWJlcjtcbiAgLy9cbiAgLy8gICBjb25zdHJ1Y3RvcihoaXN0b3J5LCBsaW1pdCA9IGhpc3RvcnkubGVuZ3RoKSB7XG4gIC8vICAgICB0aGlzLl9oaXN0b3J5ID0gaGlzdG9yeTtcbiAgLy8gICAgIHRoaXMuX3BsYWNlcyA9IFtdO1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gKHZpc2l0ID0+IHRydWUpO1xuICAvLyAgICAgdGhpcy5fbGltaXQgPSBsaW1pdDtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgdG8oLi4ucGxhY2VzOlBsYWNlW10pOnRoaXMge1xuICAvLyAgICAgdGhpcy5fcGxhY2VzID0gcGxhY2VzO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIHdpdGgocGFyYW1ldGVyczogeyBbcGFyYW1ldGVyOiBzdHJpbmddOiBhbnkgfSk6IHRoaXMge1xuICAvLyAgICAgdGhpcy5tYXRjaGluZyhzdGF0ZSA9PiB7XG4gIC8vICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hWYWx1ZSA9IHBhcmFtZXRlcnNba2V5XTtcbiAgLy8gICAgICAgICBjb25zdCB2aXNpdFZhbHVlID0gc3RhdGUuZ2V0KGtleSk7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IG1hdGNoVmFsdWUgPT09ICcqJyA/ICFpc05pbCh2aXNpdFZhbHVlKSA6IHZpc2l0VmFsdWUgPT0gbWF0Y2hWYWx1ZTtcbiAgLy8gICAgICAgICAvLyBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYG1hdGNoZWQ9JHttYXRjaGVkfWAsIHBhcmFtZXRlcnMsIHZpc2l0VmFsdWUpO1xuICAvLyAgICAgICAgIHJldHVybiBhY2MgJiYgbWF0Y2hlZDtcbiAgLy8gICAgICAgfSwgdHJ1ZSk7XG4gIC8vICAgICB9KTtcbiAgLy8gICAgIHJldHVybiB0aGlzO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsYXN0KCk6IFZpc2l0LlN0YXRlIHtcbiAgLy8gICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSlcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgYWxsVGhhdE1hdGNoKCk6IFZpc2l0LlN0YXRlW10ge1xuICAvLyAgICAgcmV0dXJuIGZpbHRlcih0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSkuc2xpY2UoLXRoaXMuX2xpbWl0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgbW9zdFJlY2VudFZhbHVlT2Y8VD1hbnk+KHBhcmFtOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCA9IG51bGwpOiBUIHtcbiAgLy8gICAgIGNvbnN0IGxhc3RTdGF0ZVdpdGhQYXJhbSA9IGZpbmRMYXN0KHRoaXMuYWxsVGhhdE1hdGNoKCksIHN0YXRlID0+ICFpc05pbChzdGF0ZS5nZXQocGFyYW0pKSk7XG4gIC8vICAgICByZXR1cm4gaXNOaWwobGFzdFN0YXRlV2l0aFBhcmFtKSA/IGRlZmF1bHRWYWx1ZSA6IGxhc3RTdGF0ZVdpdGhQYXJhbS5nZXQocGFyYW0pO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsaW1pdChsaW1pdDogbnVtYmVyKTogdGhpcyB7XG4gIC8vICAgICB0aGlzLl9saW1pdCA9IGxpbWl0O1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIG1hdGNoaW5nKHByZWRpY2F0ZTogKHZpc2l0OiBWaXNpdC5TdGF0ZSkgPT4gYm9vbGVhbik6IHRoaXMge1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gcHJlZGljYXRlO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIF9tYXRjaGVzKHZpc2l0OiBWaXNpdC5TdGF0ZSkge1xuICAvLyAgICAgcmV0dXJuIHRoaXMuX2lzUGxhY2VNYXRjaCh2aXNpdCkgJiYgdGhpcy5fcHJlZGljYXRlKHZpc2l0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgX2lzUGxhY2VNYXRjaCh2aXNpdDogVmlzaXQuU3RhdGUpIHtcbiAgLy8gICAgIHJldHVybiB0aGlzLl9wbGFjZXMubGVuZ3RoIDwgMSB8fCB0aGlzLl9wbGFjZXMuaW5jbHVkZXModmlzaXQucGxhY2UpXG4gIC8vICAgfVxuICAvL1xuICAvLyB9XG5cbn1cbiJdfQ==
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UtaGlzdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci11aS1wb3dlcnVwcy9zcmMvbGliL3BsYWNlL3BsYWNlLWhpc3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQzs7QUFLN0I7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxZQUFZO0lBRWYsZUFBZSxDQUEyQjtJQUMxQyxlQUFlLENBQTJCO0lBRTFDLFFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztJQUM3QyxpQkFBaUIsR0FBVyxDQUFDLENBQUM7SUFDL0MsdUJBQXVCO1FBQ3JCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELHdCQUF3QixDQUFDLE1BQWE7UUFDcEMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLFlBQVksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3RFLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFtQjtRQUNwQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBeUI7UUFDekMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxX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bUI7SUFDbkIsTUFBTTtJQUNOLEVBQUU7SUFDRiwwQkFBMEI7SUFDMUIsb0VBQW9FO0lBQ3BFLE1BQU07SUFDTixFQUFFO0lBQ0YsY0FBYztJQUNkLG9DQUFvQztJQUNwQyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixjQUFjO0lBQ2QseUVBQXlFO0lBQ3pFLG1HQUFtRztJQUNuRyx1RkFBdUY7SUFDdkYsTUFBTTtJQUNOLEVBQUU7SUFDRixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLG1CQUFtQjtJQUNuQixNQUFNO0lBQ04sRUFBRTtJQUNGLGlFQUFpRTtJQUNqRSxtQ0FBbUM7SUFDbkMsbUJBQW1CO0lBQ25CLE1BQU07SUFDTixFQUFFO0lBQ0YsbUNBQW1DO0lBQ25DLGtFQUFrRTtJQUNsRSxNQUFNO0lBQ04sRUFBRTtJQUNGLHdDQUF3QztJQUN4QywyRUFBMkU7SUFDM0UsTUFBTTtJQUNOLEVBQUU7SUFDRixJQUFJO0FBRU4sQ0FBQyxFQW5GZ0IsWUFBWSxLQUFaLFlBQVksUUFtRjVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7YXNzZXJ0fSBmcm9tICdAY29vbG9uL3BlY3Rpbic7XG5cbmltcG9ydCB7Zmlyc3R9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXR9IGZyb20gXCIuL3Zpc2l0XCI7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuLyoqXG4gKiBUT0RPOiB0aGlzIHNob3VsZCBiZSB1cGRhdGVkIHRvIHN0b3JlIHRoZSBsYXN0IHggdmlzaXN0cyByYXRoZXJuIHRoYW4gYSBtYXAgb2YgcGxhY2VzIHRvIHZpc2l0IHNlZ21lbnRzLlxuICogICAgICAgVGhpcyB3b3VsZCBhbGxvdyBpdCB0byByZXR1cm4gc2VnbWVudHMgdGhhdCBhcmUgcmVsZXZlbnQgdG8gYSBwYXJ0aWN1bGFyIHBhcmVudCBwYXRoLiBDdXJyZW50bHlcbiAqICAgICAgIGl0IGp1c3QgcmV0dXJucyB0aGUgbGFzdCBzZWdtZW50IHNvIGl0IGNhbiByZXR1cm4gY2hpbGQgaWRzIHRoYXQgZG9uJ3QgYmVsb25nIHRvIHRoZSBjdXJyZW50IHBhcmVudC5cbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VIaXN0b3J5IHtcblxuICBwcml2YXRlIF9hY3RpdmVTZWdtZW50czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuICBwcml2YXRlIF9wcmV2aW91c1Zpc2l0czogUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkO1xuXG4gIHByaXZhdGUgX2FyY2hpdmUgPSBuZXcgTWFwPFBsYWNlRGVmaW5pdGlvbiwgVmlzaXRTZWdtZW50W10+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2VIaXN0b3J5RGVwdGg6IG51bWJlciA9IDQ7XG4gIG5vdGlmeU5hdmlnYXRpb25TdGFydGVkKCkge1xuICAgIGlmICh0aGlzLl9hY3RpdmVTZWdtZW50cykge1xuICAgICAgdGhpcy5hcmNoaXZlU2VnbWVudHModGhpcy5fYWN0aXZlU2VnbWVudHMudmlzaXRTZWdtZW50cyk7XG4gICAgICB0aGlzLl9wcmV2aW91c1Zpc2l0cyA9IHRoaXMuX2FjdGl2ZVNlZ21lbnRzO1xuICAgIH1cbiAgfVxuXG4gIG5vdGlmeU5hdmlnYXRpb25GaW5pc2hlZCh2aXNpdHM6IFZpc2l0KSB7XG4gICAgdGhpcy5fYWN0aXZlU2VnbWVudHMgPSBuZXcgUGxhY2VIaXN0b3J5LlZpc2l0UmVjb3JkKHZpc2l0cy5zZWdtZW50cylcbiAgfVxuXG4gIHVwZGF0ZVZpc2l0U2VnbWVudCh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgYXNzZXJ0LmlzVHJ1dGh5KHRoaXMuX2FjdGl2ZVNlZ21lbnRzKTtcbiAgICB0aGlzLl9hY3RpdmVTZWdtZW50cy51cGRhdGUodmlzaXQpO1xuICB9XG5cbiAgbGFzdFZpc2l0SW5jbHVkZWQocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3ByZXZpb3VzVmlzaXRzPy5nZXRWaXNpdEZvcihwbGFjZURlZik7XG4gIH1cblxuICBnZXRNb3N0UmVjZW50VmlzaXRTZWdtZW50Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gZmlyc3QodGhpcy5nZXRTZWdtZW50SGlzdG9yeUZvcihwbGFjZURlZikpO1xuICB9XG5cbiAgZ2V0U2VnbWVudEhpc3RvcnlGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbik6IFZpc2l0U2VnbWVudFtdIHtcbiAgICBsZXQgaGlzdG9yeSA9IHRoaXMuX2FyY2hpdmUuZ2V0KHBsYWNlRGVmKTtcbiAgICBpZiAoIWhpc3RvcnkpIHtcbiAgICAgIGhpc3RvcnkgPSBbXTtcbiAgICAgIHRoaXMuc2V0SGlzdG9yeShwbGFjZURlZiwgaGlzdG9yeSk7XG4gICAgfVxuICAgIHJldHVybiBoaXN0b3J5O1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRIaXN0b3J5KHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24sIGhpc3Rvcnk6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdGhpcy5fYXJjaGl2ZS5zZXQocGxhY2VEZWYsIGhpc3RvcnkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFyY2hpdmVTZWdtZW50cyh2aXNpdHM6IFZpc2l0U2VnbWVudFtdKSB7XG4gICAgdmlzaXRzLmZvckVhY2goc3RhdGUgPT4ge1xuICAgICAgY29uc3QgaGlzdG9yeSA9IHRoaXMuZ2V0U2VnbWVudEhpc3RvcnlGb3Ioc3RhdGUucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgIGNvbnN0IHByZXZpb3VzU3RhdGUgPSBmaXJzdChoaXN0b3J5KTtcbiAgICAgIGlmICghcHJldmlvdXNTdGF0ZSB8fCBzdGF0ZS5oYXNDaGFuZ2VkRnJvbShwcmV2aW91c1N0YXRlKSkge1xuICAgICAgICBoaXN0b3J5LnVuc2hpZnQoc3RhdGUpOyAvLyBMSUZPXG4gICAgICAgIHRoaXMuc2V0SGlzdG9yeShzdGF0ZS5wbGFjZURlZmluaXRpb24sIGhpc3Rvcnkuc2xpY2UoMCwgdGhpcy5wbGFjZUhpc3RvcnlEZXB0aCkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cblxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFBsYWNlSGlzdG9yeSB7XG5cbiAgZXhwb3J0IGNsYXNzIFZpc2l0UmVjb3JkIHtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdmlzaXRTZWdtZW50czogVmlzaXRTZWdtZW50W10pIHtcbiAgICB9XG5cbiAgICB1cGRhdGUodmlzaXQ6IFZpc2l0U2VnbWVudCkge1xuICAgICAgdGhpcy52aXNpdFNlZ21lbnRzID0gdGhpcy52aXNpdFNlZ21lbnRzXG4gICAgICAgIC5maWx0ZXIodiA9PiB2LnBsYWNlRGVmaW5pdGlvbiAhPT0gdmlzaXQucGxhY2VEZWZpbml0aW9uKSAvLyBrZWVwIGFsbCB0aGF0IGFyZSBub3QgbWVcbiAgICAgICAgLmNvbmNhdCh2aXNpdCk7IC8vIGFuZCBhZGQgbWUgdG8gdGhlIGVuZFxuICAgIH1cblxuICAgIGdldFZpc2l0Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pOiBWaXNpdFNlZ21lbnQgfCB1bmRlZmluZWQge1xuICAgICAgcmV0dXJuIHRoaXMudmlzaXRTZWdtZW50cy5maW5kKHYgPT4gdi5wbGFjZURlZmluaXRpb24gPT09IHBsYWNlRGVmKTtcbiAgICB9XG4gIH1cblxuICAvLyBleHBvcnQgY2xhc3MgUXVlcnkge1xuICAvLyAgIHByaXZhdGUgX2hpc3Rvcnk6IFZpc2l0LlN0YXRlW107XG4gIC8vICAgcHJpdmF0ZSBfcGxhY2VzOiBQbGFjZVtdO1xuICAvLyAgIHByaXZhdGUgX3ByZWRpY2F0ZTogKHZpc2l0OiBhbnkpID0+IGJvb2xlYW47XG4gIC8vICAgcHJpdmF0ZSBfbGltaXQ6IG51bWJlcjtcbiAgLy9cbiAgLy8gICBjb25zdHJ1Y3RvcihoaXN0b3J5LCBsaW1pdCA9IGhpc3RvcnkubGVuZ3RoKSB7XG4gIC8vICAgICB0aGlzLl9oaXN0b3J5ID0gaGlzdG9yeTtcbiAgLy8gICAgIHRoaXMuX3BsYWNlcyA9IFtdO1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gKHZpc2l0ID0+IHRydWUpO1xuICAvLyAgICAgdGhpcy5fbGltaXQgPSBsaW1pdDtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgdG8oLi4ucGxhY2VzOlBsYWNlW10pOnRoaXMge1xuICAvLyAgICAgdGhpcy5fcGxhY2VzID0gcGxhY2VzO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIHdpdGgocGFyYW1ldGVyczogeyBbcGFyYW1ldGVyOiBzdHJpbmddOiBhbnkgfSk6IHRoaXMge1xuICAvLyAgICAgdGhpcy5tYXRjaGluZyhzdGF0ZSA9PiB7XG4gIC8vICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhwYXJhbWV0ZXJzKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hWYWx1ZSA9IHBhcmFtZXRlcnNba2V5XTtcbiAgLy8gICAgICAgICBjb25zdCB2aXNpdFZhbHVlID0gc3RhdGUuZ2V0KGtleSk7XG4gIC8vICAgICAgICAgY29uc3QgbWF0Y2hlZCA9IG1hdGNoVmFsdWUgPT09ICcqJyA/ICFpc05pbCh2aXNpdFZhbHVlKSA6IHZpc2l0VmFsdWUgPT0gbWF0Y2hWYWx1ZTtcbiAgLy8gICAgICAgICAvLyBMb2dnZXIuZ2V0KHRoaXMpLmluZm8oYG1hdGNoZWQ9JHttYXRjaGVkfWAsIHBhcmFtZXRlcnMsIHZpc2l0VmFsdWUpO1xuICAvLyAgICAgICAgIHJldHVybiBhY2MgJiYgbWF0Y2hlZDtcbiAgLy8gICAgICAgfSwgdHJ1ZSk7XG4gIC8vICAgICB9KTtcbiAgLy8gICAgIHJldHVybiB0aGlzO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsYXN0KCk6IFZpc2l0LlN0YXRlIHtcbiAgLy8gICAgIHJldHVybiBmaW5kTGFzdCh0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSlcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgYWxsVGhhdE1hdGNoKCk6IFZpc2l0LlN0YXRlW10ge1xuICAvLyAgICAgcmV0dXJuIGZpbHRlcih0aGlzLl9oaXN0b3J5LCB2aXNpdCA9PiB0aGlzLl9tYXRjaGVzKHZpc2l0KSkuc2xpY2UoLXRoaXMuX2xpbWl0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgLy8gQHRyYWNlXG4gIC8vICAgbW9zdFJlY2VudFZhbHVlT2Y8VD1hbnk+KHBhcmFtOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogVCA9IG51bGwpOiBUIHtcbiAgLy8gICAgIGNvbnN0IGxhc3RTdGF0ZVdpdGhQYXJhbSA9IGZpbmRMYXN0KHRoaXMuYWxsVGhhdE1hdGNoKCksIHN0YXRlID0+ICFpc05pbChzdGF0ZS5nZXQocGFyYW0pKSk7XG4gIC8vICAgICByZXR1cm4gaXNOaWwobGFzdFN0YXRlV2l0aFBhcmFtKSA/IGRlZmF1bHRWYWx1ZSA6IGxhc3RTdGF0ZVdpdGhQYXJhbS5nZXQocGFyYW0pO1xuICAvLyAgIH1cbiAgLy9cbiAgLy8gICBsaW1pdChsaW1pdDogbnVtYmVyKTogdGhpcyB7XG4gIC8vICAgICB0aGlzLl9saW1pdCA9IGxpbWl0O1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIG1hdGNoaW5nKHByZWRpY2F0ZTogKHZpc2l0OiBWaXNpdC5TdGF0ZSkgPT4gYm9vbGVhbik6IHRoaXMge1xuICAvLyAgICAgdGhpcy5fcHJlZGljYXRlID0gcHJlZGljYXRlO1xuICAvLyAgICAgcmV0dXJuIHRoaXM7XG4gIC8vICAgfVxuICAvL1xuICAvLyAgIF9tYXRjaGVzKHZpc2l0OiBWaXNpdC5TdGF0ZSkge1xuICAvLyAgICAgcmV0dXJuIHRoaXMuX2lzUGxhY2VNYXRjaCh2aXNpdCkgJiYgdGhpcy5fcHJlZGljYXRlKHZpc2l0KTtcbiAgLy8gICB9XG4gIC8vXG4gIC8vICAgX2lzUGxhY2VNYXRjaCh2aXNpdDogVmlzaXQuU3RhdGUpIHtcbiAgLy8gICAgIHJldHVybiB0aGlzLl9wbGFjZXMubGVuZ3RoIDwgMSB8fCB0aGlzLl9wbGFjZXMuaW5jbHVkZXModmlzaXQucGxhY2UpXG4gIC8vICAgfVxuICAvL1xuICAvLyB9XG5cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { lang } from '@coolon/pectin';
2
- import { isNil } from 'lodash-es';
2
+ import { isNil } from 'lodash';
3
3
  import { PlaceComponent } from './place-component';
4
4
  import { PlaceDefinition } from './place-definition';
5
5
  export function Place(options) {
@@ -15,4 +15,4 @@ export function Place(options) {
15
15
  }
16
16
  };
17
17
  }
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUNoQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBc0I7SUFDMUMsT0FBTyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtRQUNwQyxJQUFJLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0RCxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksZUFBZSxDQUN6RCxNQUFNLEVBQ04sT0FBTyxDQUFDLElBQUksRUFDWixLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQ3pELE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssRUFDN0IsT0FBTyxDQUFDLElBQUksRUFDWixjQUFjLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQ3pDLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxLQUFLLENBQ3RDLENBQUMsQ0FBQztZQUVILElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLDJFQUEyRSxDQUFDLENBQUE7YUFDeEc7U0FFRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0seURBQXlELENBQUMsQ0FBQztTQUN2RjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdGFibGUsIGxhbmd9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHtpc05pbH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGxhY2VEZWZpbml0aW9ufSBmcm9tICcuL3BsYWNlLWRlZmluaXRpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gUGxhY2Uob3B0aW9uczogUGxhY2UuT3B0aW9ucykge1xuICByZXR1cm4gKHRhcmdldDogQ29uc3RydWN0YWJsZTxhbnk+KSA9PiB7XG4gICAgaWYgKFBsYWNlQ29tcG9uZW50LmlzUGxhY2VDb21wb25lbnRDb25zdHJ1Y3Rvcih0YXJnZXQpKSB7XG4gICAgICBQbGFjZUNvbXBvbmVudC5pbmplY3REZWZpbml0aW9uKHRhcmdldCwgbmV3IFBsYWNlRGVmaW5pdGlvbihcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBvcHRpb25zLnBhdGgsXG4gICAgICAgIGlzTmlsKG9wdGlvbnMuYXV0aGVudGljYXRlKSA/IHRydWUgOiBvcHRpb25zLmF1dGhlbnRpY2F0ZSxcbiAgICAgICAgb3B0aW9ucy5yb2xlID8/IG9wdGlvbnMucm9sZXMsXG4gICAgICAgIG9wdGlvbnMuZGF0YSxcbiAgICAgICAgUGxhY2VDb21wb25lbnQuZ2V0Um91dGVQYXJhbWV0ZXJzKHRhcmdldCksXG4gICAgICAgIChvcHRpb25zLmNoaWxkcmVuIHx8IFtdKS5tYXAoYyA9PiBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKGMpKSxcbiAgICAgICAgb3B0aW9ucy5yZWRpcmVjdFRvRmlyc3RDaGlsZCA/PyBmYWxzZVxuICAgICAgKSk7XG5cbiAgICAgIGlmIChvcHRpb25zLnJvbGVzKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgJHt0YXJnZXQubmFtZX0gQFBsYWNlKHtyb2xlczogc3RyaW5nW119KSBpcyBkZXByZWNhdGVkLiAgVXNlIEBQbGFjZSh7cm9sZTphbnl9KSBpbnN0ZWFkYClcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgJHt0YXJnZXR9IG11c3QgZXh0ZW5kIFBsYWNlQ29tcG9uZW50IHRvIHVzZSB0aGUgQFBsYWNlIGRlY29yYXRvcmApO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZSB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZGF0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH07IC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICBhdXRoZW50aWNhdGU/OiBib29sZWFuOyAvLyBkZWZhdWx0cyB0byB0cnVlXG4gICAgcm9sZT86IGFueTsgLy8gZGVmYXVsdHMgdG8gZW1wdHkgYXJyYXlcblxuICAgIC8qKlxuICAgICAqICBAZGVwcmVjYXRlZCB1c2UgI3JvbGUgaW5zdGVhZFxuICAgICAqL1xuICAgIHJvbGVzPzogc3RyaW5nW107IC8vIGRlZmF1bHRzIHRvIGVtcHR5IGFycmF5XG5cbiAgICBjaGlsZHJlbj86IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+W107XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlICNyZWRpcmVjdFRvRmlyc3RDaGlsZCBpbnN0ZWFkIGFzIGl0IGhhbmRsZXMgY2hpbGQgYXV0aG9yaXNhdGlvbiBjaGVja3MgYXV0b21hdGljYWxseVxuICAgICAqL1xuICAgIGRlZmF1bHRDaGlsZD86IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+O1xuICAgIHJlZGlyZWN0VG9GaXJzdENoaWxkPzogYm9vbGVhbjtcbiAgfVxuXG59XG5cbiJdfQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UuZGVjb3JhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UuZGVjb3JhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUM3QixPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sVUFBVSxLQUFLLENBQUMsT0FBc0I7SUFDMUMsT0FBTyxDQUFDLE1BQTBCLEVBQUUsRUFBRTtRQUNwQyxJQUFJLGNBQWMsQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN0RCxjQUFjLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksZUFBZSxDQUN6RCxNQUFNLEVBQ04sT0FBTyxDQUFDLElBQUksRUFDWixLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQ3pELE9BQU8sQ0FBQyxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUssRUFDN0IsT0FBTyxDQUFDLElBQUksRUFDWixjQUFjLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEVBQ3pDLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2xFLE9BQU8sQ0FBQyxvQkFBb0IsSUFBSSxLQUFLLENBQ3RDLENBQUMsQ0FBQztZQUVILElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtnQkFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLDJFQUEyRSxDQUFDLENBQUE7YUFDeEc7U0FFRjthQUFNO1lBQ0wsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLE1BQU0seURBQXlELENBQUMsQ0FBQztTQUN2RjtJQUNILENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbnN0cnVjdGFibGUsIGxhbmd9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcblxuaW1wb3J0IHtpc05pbH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7UGxhY2VDb21wb25lbnR9IGZyb20gJy4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7UGxhY2VEZWZpbml0aW9ufSBmcm9tICcuL3BsYWNlLWRlZmluaXRpb24nO1xuXG5leHBvcnQgZnVuY3Rpb24gUGxhY2Uob3B0aW9uczogUGxhY2UuT3B0aW9ucykge1xuICByZXR1cm4gKHRhcmdldDogQ29uc3RydWN0YWJsZTxhbnk+KSA9PiB7XG4gICAgaWYgKFBsYWNlQ29tcG9uZW50LmlzUGxhY2VDb21wb25lbnRDb25zdHJ1Y3Rvcih0YXJnZXQpKSB7XG4gICAgICBQbGFjZUNvbXBvbmVudC5pbmplY3REZWZpbml0aW9uKHRhcmdldCwgbmV3IFBsYWNlRGVmaW5pdGlvbihcbiAgICAgICAgdGFyZ2V0LFxuICAgICAgICBvcHRpb25zLnBhdGgsXG4gICAgICAgIGlzTmlsKG9wdGlvbnMuYXV0aGVudGljYXRlKSA/IHRydWUgOiBvcHRpb25zLmF1dGhlbnRpY2F0ZSxcbiAgICAgICAgb3B0aW9ucy5yb2xlID8/IG9wdGlvbnMucm9sZXMsXG4gICAgICAgIG9wdGlvbnMuZGF0YSxcbiAgICAgICAgUGxhY2VDb21wb25lbnQuZ2V0Um91dGVQYXJhbWV0ZXJzKHRhcmdldCksXG4gICAgICAgIChvcHRpb25zLmNoaWxkcmVuIHx8IFtdKS5tYXAoYyA9PiBQbGFjZUNvbXBvbmVudC5nZXREZWZpbml0aW9uKGMpKSxcbiAgICAgICAgb3B0aW9ucy5yZWRpcmVjdFRvRmlyc3RDaGlsZCA/PyBmYWxzZVxuICAgICAgKSk7XG5cbiAgICAgIGlmIChvcHRpb25zLnJvbGVzKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgJHt0YXJnZXQubmFtZX0gQFBsYWNlKHtyb2xlczogc3RyaW5nW119KSBpcyBkZXByZWNhdGVkLiAgVXNlIEBQbGFjZSh7cm9sZTphbnl9KSBpbnN0ZWFkYClcbiAgICAgIH1cblxuICAgIH0gZWxzZSB7XG4gICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgJHt0YXJnZXR9IG11c3QgZXh0ZW5kIFBsYWNlQ29tcG9uZW50IHRvIHVzZSB0aGUgQFBsYWNlIGRlY29yYXRvcmApO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQbGFjZSB7XG5cbiAgZXhwb3J0IGludGVyZmFjZSBPcHRpb25zIHtcbiAgICBwYXRoOiBzdHJpbmc7XG4gICAgZGF0YT86IHsgW2tleTogc3RyaW5nXTogYW55IH07IC8vIGRlZmF1bHRzIHRvIHRydWVcbiAgICBhdXRoZW50aWNhdGU/OiBib29sZWFuOyAvLyBkZWZhdWx0cyB0byB0cnVlXG4gICAgcm9sZT86IGFueTsgLy8gZGVmYXVsdHMgdG8gZW1wdHkgYXJyYXlcblxuICAgIC8qKlxuICAgICAqICBAZGVwcmVjYXRlZCB1c2UgI3JvbGUgaW5zdGVhZFxuICAgICAqL1xuICAgIHJvbGVzPzogc3RyaW5nW107IC8vIGRlZmF1bHRzIHRvIGVtcHR5IGFycmF5XG5cbiAgICBjaGlsZHJlbj86IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+W107XG4gICAgLyoqXG4gICAgICogQGRlcHJlY2F0ZWQgdXNlICNyZWRpcmVjdFRvRmlyc3RDaGlsZCBpbnN0ZWFkIGFzIGl0IGhhbmRsZXMgY2hpbGQgYXV0aG9yaXNhdGlvbiBjaGVja3MgYXV0b21hdGljYWxseVxuICAgICAqL1xuICAgIGRlZmF1bHRDaGlsZD86IENvbnN0cnVjdGFibGU8UGxhY2VDb21wb25lbnQ+O1xuICAgIHJlZGlyZWN0VG9GaXJzdENoaWxkPzogYm9vbGVhbjtcbiAgfVxuXG59XG5cbiJdfQ==
@@ -1,6 +1,7 @@
1
1
  import { PortalModule } from '@angular/cdk/portal';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { NgModule } from '@angular/core';
4
+ import { FlexModule } from '@angular/flex-layout';
4
5
  import { MatCardModule } from "@angular/material/card";
5
6
  import { MatIconModule } from '@angular/material/icon';
6
7
  import { MatListModule } from '@angular/material/list';
@@ -34,6 +35,7 @@ export class PlaceModule {
34
35
  MatTooltipModule,
35
36
  MatIconModule,
36
37
  DirectivesModule,
38
+ FlexModule,
37
39
  ComponentsModule,
38
40
  PortalModule,
39
41
  MatCardModule], exports: [PlaceOutletComponent,
@@ -50,6 +52,7 @@ export class PlaceModule {
50
52
  MatTooltipModule,
51
53
  MatIconModule,
52
54
  DirectivesModule,
55
+ FlexModule,
53
56
  ComponentsModule,
54
57
  PortalModule,
55
58
  MatCardModule] });
@@ -67,6 +70,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
67
70
  MatTooltipModule,
68
71
  MatIconModule,
69
72
  DirectivesModule,
73
+ FlexModule,
70
74
  ComponentsModule,
71
75
  PortalModule,
72
76
  MatCardModule
@@ -91,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
91
95
  ]
92
96
  }]
93
97
  }] });
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ2xHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQzNGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQ3RGLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG9FQUFvRSxDQUFDO0FBQ2hILE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLHdFQUF3RSxDQUFDOztBQXFDdEgsTUFBTSxPQUFPLFdBQVc7dUdBQVgsV0FBVzt3R0FBWCxXQUFXLGlCQWxCaEIsb0JBQW9CO1lBQ3BCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsNEJBQTRCO1lBQzVCLGdDQUFnQztZQUNoQyw0QkFBNEIsYUFuQjVCLFlBQVk7WUFDWix1QkFBdUI7WUFDdkIsd0JBQXdCO1lBQ3hCLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osYUFBYSxhQVdiLG9CQUFvQjtZQUNwQiw4QkFBOEI7WUFDOUIscUJBQXFCO1lBQ3JCLDRCQUE0QjtZQUM1QixnQ0FBZ0M7d0dBTTNCLFdBQVcsWUFoQ2hCLFlBQVk7WUFDWix1QkFBdUI7WUFDdkIsd0JBQXdCO1lBQ3hCLFlBQVk7WUFDWixhQUFhO1lBQ2IsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osYUFBYTs7MkZBcUJSLFdBQVc7a0JBbEN2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osYUFBYTtxQkFDaEI7b0JBQ0QsWUFBWSxFQUFFO3dCQUNWLG9CQUFvQjt3QkFDcEIsOEJBQThCO3dCQUM5QixxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUNoQyw0QkFBNEI7cUJBQy9CO29CQUNELE9BQU8sRUFBRTt3QkFDTCxvQkFBb0I7d0JBQ3BCLDhCQUE4Qjt3QkFDOUIscUJBQXFCO3dCQUNyQiw0QkFBNEI7d0JBQzVCLGdDQUFnQztxQkFDbkM7b0JBQ0QsU0FBUyxFQUFFO29CQUNYLHVFQUF1RTtxQkFDdEU7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BvcnRhbE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRDYXJkTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHtNYXRJY29uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7TWF0TGlzdE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGlzdCc7XG5pbXBvcnQge01hdFByb2dyZXNzU3Bpbm5lck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQge01hdFRhYnNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuaW1wb3J0IHtNYXRUb29sdGlwTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7QnJvd3NlckFuaW1hdGlvbnNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge1JvdXRlck1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Q29tcG9uZW50c01vZHVsZX0gZnJvbSAnLi4vY29tcG9uZW50cy9leHBvcnRzJztcbmltcG9ydCB7RGlyZWN0aXZlc01vZHVsZX0gZnJvbSAnLi4vZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZSc7XG5pbXBvcnQge0Fic3RyYWN0UGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvYWJzdHJhY3QtcGxhY2UtbmF2aWdhdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtMaXN0UGxhY2VOYXZDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9saXN0LXBsYWNlLW5hdi9saXN0LXBsYWNlLW5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHtOb3RBdXRob3Jpc2VkTm90aWNlQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvbm90LWF1dGhvcmlzZWQtbm90aWNlL25vdC1hdXRob3Jpc2VkLW5vdGljZS5jb21wb25lbnQnO1xuaW1wb3J0IHtQbGFjZU91dGxldENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3BsYWNlLW91dGxldC9wbGFjZS1vdXRsZXQuY29tcG9uZW50JztcbmltcG9ydCB7U2lkZVBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3NpZGUtcGxhY2UtbmF2aWdhdGlvbi9zaWRlLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7VGFiYmVkUGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24vdGFiYmVkLXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcblxuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBSb3V0ZXJNb2R1bGUsXG4gICAgICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgICAgIE1hdExpc3RNb2R1bGUsXG4gICAgICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgICAgIE1hdEljb25Nb2R1bGUsXG4gICAgICAgIERpcmVjdGl2ZXNNb2R1bGUsXG4gICAgICAgIENvbXBvbmVudHNNb2R1bGUsXG4gICAgICAgIFBvcnRhbE1vZHVsZSxcbiAgICAgICAgTWF0Q2FyZE1vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFBsYWNlT3V0bGV0Q29tcG9uZW50LFxuICAgICAgICBUYWJiZWRQbGFjZU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgICAgIExpc3RQbGFjZU5hdkNvbXBvbmVudCxcbiAgICAgICAgU2lkZVBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgQWJzdHJhY3RQbGFjZU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgICAgIE5vdEF1dGhvcmlzZWROb3RpY2VDb21wb25lbnRcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgUGxhY2VPdXRsZXRDb21wb25lbnQsXG4gICAgICAgIFRhYmJlZFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgTGlzdFBsYWNlTmF2Q29tcG9uZW50LFxuICAgICAgICBTaWRlUGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgICAgICBBYnN0cmFjdFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudFxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgLy8ge3Byb3ZpZGU6IEFVUF9QTEFDRV9DT05GSUcsIHVzZVZhbHVlOiB7YW5pbWF0aW9uRHVyYXRpb246IFwiMjAwMG1zXCJ9fVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUGxhY2VNb2R1bGUge1xuXG59XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhY2UubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvcGxhY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDNUUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUMzRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNoSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNoSCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQzs7QUFzQ3RILE1BQU0sT0FBTyxXQUFXO3VHQUFYLFdBQVc7d0dBQVgsV0FBVyxpQkFsQmhCLG9CQUFvQjtZQUNwQiw4QkFBOEI7WUFDOUIscUJBQXFCO1lBQ3JCLDRCQUE0QjtZQUM1QixnQ0FBZ0M7WUFDaEMsNEJBQTRCLGFBcEI1QixZQUFZO1lBQ1osdUJBQXVCO1lBQ3ZCLHdCQUF3QjtZQUN4QixZQUFZO1lBQ1osYUFBYTtZQUNiLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsYUFBYTtZQUNiLGdCQUFnQjtZQUNoQixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixhQUFhLGFBV2Isb0JBQW9CO1lBQ3BCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsNEJBQTRCO1lBQzVCLGdDQUFnQzt3R0FNM0IsV0FBVyxZQWpDaEIsWUFBWTtZQUNaLHVCQUF1QjtZQUN2Qix3QkFBd0I7WUFDeEIsWUFBWTtZQUNaLGFBQWE7WUFDYixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixnQkFBZ0I7WUFDaEIsVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osYUFBYTs7MkZBcUJSLFdBQVc7a0JBbkN2QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3dCQUN4QixZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixhQUFhO3FCQUNoQjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1Ysb0JBQW9CO3dCQUNwQiw4QkFBOEI7d0JBQzlCLHFCQUFxQjt3QkFDckIsNEJBQTRCO3dCQUM1QixnQ0FBZ0M7d0JBQ2hDLDRCQUE0QjtxQkFDL0I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG9CQUFvQjt3QkFDcEIsOEJBQThCO3dCQUM5QixxQkFBcUI7d0JBQ3JCLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3FCQUNuQztvQkFDRCxTQUFTLEVBQUU7b0JBQ1gsdUVBQXVFO3FCQUN0RTtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UG9ydGFsTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0ZsZXhNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2ZsZXgtbGF5b3V0JztcbmltcG9ydCB7TWF0Q2FyZE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2NhcmRcIjtcbmltcG9ydCB7TWF0SWNvbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQge01hdExpc3RNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHtNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHtNYXRUYWJzTW9kdWxlfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJzJztcbmltcG9ydCB7TWF0VG9vbHRpcE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQge0Jyb3dzZXJBbmltYXRpb25zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0NvbXBvbmVudHNNb2R1bGV9IGZyb20gJy4uL2NvbXBvbmVudHMvZXhwb3J0cyc7XG5pbXBvcnQge0RpcmVjdGl2ZXNNb2R1bGV9IGZyb20gJy4uL2RpcmVjdGl2ZXMvZGlyZWN0aXZlcy5tb2R1bGUnO1xuaW1wb3J0IHtBYnN0cmFjdFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2Fic3RyYWN0LXBsYWNlLW5hdmlnYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7TGlzdFBsYWNlTmF2Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvbGlzdC1wbGFjZS1uYXYvbGlzdC1wbGFjZS1uYXYuY29tcG9uZW50JztcbmltcG9ydCB7Tm90QXV0aG9yaXNlZE5vdGljZUNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL25vdC1hdXRob3Jpc2VkLW5vdGljZS9ub3QtYXV0aG9yaXNlZC1ub3RpY2UuY29tcG9uZW50JztcbmltcG9ydCB7UGxhY2VPdXRsZXRDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9wbGFjZS1vdXRsZXQvcGxhY2Utb3V0bGV0LmNvbXBvbmVudCc7XG5pbXBvcnQge1NpZGVQbGFjZU5hdmlnYXRpb25Db21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9zaWRlLXBsYWNlLW5hdmlnYXRpb24vc2lkZS1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQge1RhYmJlZFBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uL3RhYmJlZC1wbGFjZS1uYXZpZ2F0aW9uLmNvbXBvbmVudCc7XG5cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXG4gICAgICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICAgICAgUm91dGVyTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBNYXRMaXN0TW9kdWxlLFxuICAgICAgICBNYXRUb29sdGlwTW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICBEaXJlY3RpdmVzTW9kdWxlLFxuICAgICAgICBGbGV4TW9kdWxlLFxuICAgICAgICBDb21wb25lbnRzTW9kdWxlLFxuICAgICAgICBQb3J0YWxNb2R1bGUsXG4gICAgICAgIE1hdENhcmRNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBQbGFjZU91dGxldENvbXBvbmVudCxcbiAgICAgICAgVGFiYmVkUGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgICAgICBMaXN0UGxhY2VOYXZDb21wb25lbnQsXG4gICAgICAgIFNpZGVQbGFjZU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgICAgIEFic3RyYWN0UGxhY2VOYXZpZ2F0aW9uQ29tcG9uZW50LFxuICAgICAgICBOb3RBdXRob3Jpc2VkTm90aWNlQ29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFBsYWNlT3V0bGV0Q29tcG9uZW50LFxuICAgICAgICBUYWJiZWRQbGFjZU5hdmlnYXRpb25Db21wb25lbnQsXG4gICAgICAgIExpc3RQbGFjZU5hdkNvbXBvbmVudCxcbiAgICAgICAgU2lkZVBsYWNlTmF2aWdhdGlvbkNvbXBvbmVudCxcbiAgICAgICAgQWJzdHJhY3RQbGFjZU5hdmlnYXRpb25Db21wb25lbnRcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgIC8vIHtwcm92aWRlOiBBVVBfUExBQ0VfQ09ORklHLCB1c2VWYWx1ZToge2FuaW1hdGlvbkR1cmF0aW9uOiBcIjIwMDBtc1wifX1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFBsYWNlTW9kdWxlIHtcblxufVxuIl19
@@ -1,4 +1,4 @@
1
- import { isNaN as _isNaN, isNumber } from 'lodash-es';
1
+ import { isNaN as _isNaN, isNumber } from 'lodash';
2
2
  export var Formatter;
3
3
  (function (Formatter) {
4
4
  class StringType {
@@ -30,4 +30,4 @@ export var Formatter;
30
30
  Formatter.NUMBER = new NumberType();
31
31
  Formatter.BOOLEAN = new BooleanType();
32
32
  })(Formatter || (Formatter = {}));
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2Uvcm91dGUvZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLElBQUksTUFBTSxFQUFFLFFBQVEsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQVFwRCxNQUFNLEtBQVcsU0FBUyxDQW9DekI7QUFwQ0QsV0FBaUIsU0FBUztJQUV4QixNQUFNLFVBQVU7UUFDZCxNQUFNLENBQUMsS0FBYTtZQUNsQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxLQUFLLENBQUMsS0FBYTtZQUNqQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FDRjtJQUVELE1BQU0sVUFBVTtRQUNkLE1BQU0sQ0FBQyxLQUFhO1lBQ2xCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUQsQ0FBQztRQUVELEtBQUssQ0FBQyxLQUFhO1lBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3hDLENBQUM7S0FDRjtJQUVELE1BQU0sV0FBVztRQUNmLE1BQU0sQ0FBQyxLQUFjO1lBQ25CLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQWE7WUFDakIsT0FBTyxLQUFLLEtBQUssTUFBTSxDQUFDO1FBQzFCLENBQUM7S0FDRjtJQUVZLGdCQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUMxQixnQkFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDMUIsaUJBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQzNDLENBQUMsRUFwQ2dCLFNBQVMsS0FBVCxTQUFTLFFBb0N6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNOYU4gYXMgX2lzTmFOLCBpc051bWJlcn0gZnJvbSAnbG9kYXNoLWVzJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZXI8VD4ge1xuICBmb3JtYXQodmFsdWU6IFQpOiBzdHJpbmc7XG5cbiAgcGFyc2UodmFsdWU6IHN0cmluZyk6IFQ7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRm9ybWF0dGVyIHtcblxuICBjbGFzcyBTdHJpbmdUeXBlIGltcGxlbWVudHMgRm9ybWF0dGVyPHN0cmluZz4ge1xuICAgIGZvcm1hdCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwYXJzZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBjbGFzcyBOdW1iZXJUeXBlIGltcGxlbWVudHMgRm9ybWF0dGVyPG51bWJlcj4ge1xuICAgIGZvcm1hdCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBpc051bWJlcih2YWx1ZSkgJiYgIWlzTmFOKHZhbHVlKSA/IGAke3ZhbHVlfWAgOiBudWxsO1xuICAgIH1cblxuICAgIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgY29uc3QgcGFyc2VkID0gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgcmV0dXJuIF9pc05hTihwYXJzZWQpID8gbnVsbCA6IHBhcnNlZDtcbiAgICB9XG4gIH1cblxuICBjbGFzcyBCb29sZWFuVHlwZSBpbXBsZW1lbnRzIEZvcm1hdHRlcjxib29sZWFuPiB7XG4gICAgZm9ybWF0KHZhbHVlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgfVxuXG4gICAgcGFyc2UodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNvbnN0IFNUUklORyA9IG5ldyBTdHJpbmdUeXBlKCk7XG4gIGV4cG9ydCBjb25zdCBOVU1CRVIgPSBuZXcgTnVtYmVyVHlwZSgpO1xuICBleHBvcnQgY29uc3QgQk9PTEVBTiA9IG5ldyBCb29sZWFuVHlwZSgpO1xufVxuIl19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2Uvcm91dGUvZm9ybWF0dGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxLQUFLLElBQUksTUFBTSxFQUFFLFFBQVEsRUFBQyxNQUFNLFFBQVEsQ0FBQztBQVFqRCxNQUFNLEtBQVcsU0FBUyxDQW9DekI7QUFwQ0QsV0FBaUIsU0FBUztJQUV4QixNQUFNLFVBQVU7UUFDZCxNQUFNLENBQUMsS0FBYTtZQUNsQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxLQUFLLENBQUMsS0FBYTtZQUNqQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7S0FDRjtJQUVELE1BQU0sVUFBVTtRQUNkLE1BQU0sQ0FBQyxLQUFhO1lBQ2xCLE9BQU8sUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDOUQsQ0FBQztRQUVELEtBQUssQ0FBQyxLQUFhO1lBQ2pCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3hDLENBQUM7S0FDRjtJQUVELE1BQU0sV0FBVztRQUNmLE1BQU0sQ0FBQyxLQUFjO1lBQ25CLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNsQyxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQWE7WUFDakIsT0FBTyxLQUFLLEtBQUssTUFBTSxDQUFDO1FBQzFCLENBQUM7S0FDRjtJQUVZLGdCQUFNLEdBQUcsSUFBSSxVQUFVLEVBQUUsQ0FBQztJQUMxQixnQkFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7SUFDMUIsaUJBQU8sR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO0FBQzNDLENBQUMsRUFwQ2dCLFNBQVMsS0FBVCxTQUFTLFFBb0N6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7aXNOYU4gYXMgX2lzTmFOLCBpc051bWJlcn0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZXI8VD4ge1xuICBmb3JtYXQodmFsdWU6IFQpOiBzdHJpbmc7XG5cbiAgcGFyc2UodmFsdWU6IHN0cmluZyk6IFQ7XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgRm9ybWF0dGVyIHtcblxuICBjbGFzcyBTdHJpbmdUeXBlIGltcGxlbWVudHMgRm9ybWF0dGVyPHN0cmluZz4ge1xuICAgIGZvcm1hdCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwYXJzZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBjbGFzcyBOdW1iZXJUeXBlIGltcGxlbWVudHMgRm9ybWF0dGVyPG51bWJlcj4ge1xuICAgIGZvcm1hdCh2YWx1ZTogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBpc051bWJlcih2YWx1ZSkgJiYgIWlzTmFOKHZhbHVlKSA/IGAke3ZhbHVlfWAgOiBudWxsO1xuICAgIH1cblxuICAgIHBhcnNlKHZhbHVlOiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgY29uc3QgcGFyc2VkID0gTnVtYmVyLnBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgcmV0dXJuIF9pc05hTihwYXJzZWQpID8gbnVsbCA6IHBhcnNlZDtcbiAgICB9XG4gIH1cblxuICBjbGFzcyBCb29sZWFuVHlwZSBpbXBsZW1lbnRzIEZvcm1hdHRlcjxib29sZWFuPiB7XG4gICAgZm9ybWF0KHZhbHVlOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB2YWx1ZSA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgfVxuXG4gICAgcGFyc2UodmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSAndHJ1ZSc7XG4gICAgfVxuICB9XG5cbiAgZXhwb3J0IGNvbnN0IFNUUklORyA9IG5ldyBTdHJpbmdUeXBlKCk7XG4gIGV4cG9ydCBjb25zdCBOVU1CRVIgPSBuZXcgTnVtYmVyVHlwZSgpO1xuICBleHBvcnQgY29uc3QgQk9PTEVBTiA9IG5ldyBCb29sZWFuVHlwZSgpO1xufVxuIl19
@@ -1,74 +1,70 @@
1
+ import { Binding, DebugContext, Functions } from '@coolon/pectin';
1
2
  import { Klass, Opts } from '@coolon/typescript-utilities';
2
3
  import { ROUTE_PARAMETER_LIST_KEY } from '../place-component';
3
4
  import { ParameterDefinition } from './parameter-definition';
4
- // function installMechanics<M extends HasValue<any>>(parameterDef: ParameterDefinition<any>, prototype: object, propertyKey: string | symbol, tagPrefix: string) {
5
- //
6
- // Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
7
- //
8
- // function getMechanics(instance: M, propertyName: string | symbol) {
9
- // const key = `__mechanics_${propertyName.toString()}`;
10
- // if (!instance[key]) {
11
- // const backingModel = parameterDef.createBackingModel();
12
- // instance[key] = {
13
- // backingModel: backingModel,
14
- // binding: null as Binding<any, any>
15
- // };
16
- // const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
17
- // DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
18
- // }
19
- // return instance[key];
20
- // }
21
- //
22
- // Object.defineProperty(prototype, propertyKey, {
23
- // get: function() {
24
- // return getMechanics(this, propertyKey).backingModel;
25
- // },
26
- // set: function(userModel: M) {
27
- // const mechanics = getMechanics(this, propertyKey);
28
- // // This handles the scenario where we want to push an existing value model (such as a form model)
29
- // // to and from the route.
30
- // if (mechanics.binding) {
31
- // mechanics.binding.dispose();
32
- // }
33
- // if (userModel) {
34
- // mechanics.binding = new Binding(mechanics.backingModel, userModel, {
35
- // toLeft: Functions.identity,
36
- // toRight: Functions.identity
37
- // });
38
- // if (parameterDef.isEmptyValue(userModel.value)) {
39
- // // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
40
- // mechanics.binding.writeRight(); // push the visit into the user model;
41
- // } else {
42
- // if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
43
- // console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
44
- // }
45
- // mechanics.binding.writeLeft(); // push the user model into the visit
46
- // }
47
- // }
48
- // }
49
- // });
50
- // }
5
+ function installMechanics(parameterDef, prototype, propertyKey, tagPrefix) {
6
+ Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
7
+ function getMechanics(instance, propertyName) {
8
+ const key = `__mechanics_${propertyName.toString()}`;
9
+ if (!instance[key]) {
10
+ const backingModel = parameterDef.createBackingModel();
11
+ instance[key] = {
12
+ backingModel: backingModel,
13
+ binding: null
14
+ };
15
+ const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
16
+ DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
17
+ }
18
+ return instance[key];
19
+ }
20
+ Object.defineProperty(prototype, propertyKey, {
21
+ get: function () {
22
+ return getMechanics(this, propertyKey).backingModel;
23
+ },
24
+ set: function (userModel) {
25
+ const mechanics = getMechanics(this, propertyKey);
26
+ // This handles the scenario where we want to push an existing value model (such as a form model)
27
+ // to and from the route.
28
+ if (mechanics.binding) {
29
+ mechanics.binding.dispose();
30
+ }
31
+ if (userModel) {
32
+ mechanics.binding = new Binding(mechanics.backingModel, userModel, {
33
+ toLeft: Functions.identity,
34
+ toRight: Functions.identity
35
+ });
36
+ if (parameterDef.isEmptyValue(userModel.value)) {
37
+ // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
38
+ mechanics.binding.writeRight(); // push the visit into the user model;
39
+ }
40
+ else {
41
+ if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
42
+ console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
43
+ }
44
+ mechanics.binding.writeLeft(); // push the user model into the visit
45
+ }
46
+ }
47
+ }
48
+ });
49
+ }
51
50
  export function RouteId(formatter, options) {
52
51
  return (prototype, propertyKey) => {
53
52
  const parameterDef = new ParameterDefinition.RouteId(propertyKey.toString(), options, formatter);
54
- // installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
55
- Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
53
+ installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
56
54
  };
57
55
  }
58
56
  export function VisitParameter(options) {
59
57
  const opts = Opts.get(options);
60
58
  return (prototype, propertyKey) => {
61
59
  const parameterDef = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
62
- Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
63
- // installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
60
+ installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
64
61
  };
65
62
  }
66
63
  export function VisitParameterList(options) {
67
64
  const opts = Opts.get(options);
68
65
  return (prototype, propertyKey) => {
69
66
  const parameterDef = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
70
- Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
71
- // installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
67
+ installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
72
68
  };
73
69
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFVQSxPQUFPLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXpELE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTVELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBK0IzRCxtS0FBbUs7QUFDbkssRUFBRTtBQUNGLHVGQUF1RjtBQUN2RixFQUFFO0FBQ0Ysd0VBQXdFO0FBQ3hFLDREQUE0RDtBQUM1RCw0QkFBNEI7QUFDNUIsZ0VBQWdFO0FBQ2hFLDBCQUEwQjtBQUMxQixzQ0FBc0M7QUFDdEMsNkNBQTZDO0FBQzdDLFdBQVc7QUFDWCw2RkFBNkY7QUFDN0YsdUVBQXVFO0FBQ3ZFLFFBQVE7QUFDUiw0QkFBNEI7QUFDNUIsTUFBTTtBQUNOLEVBQUU7QUFDRixvREFBb0Q7QUFDcEQsd0JBQXdCO0FBQ3hCLDZEQUE2RDtBQUM3RCxTQUFTO0FBQ1Qsb0NBQW9DO0FBQ3BDLDJEQUEyRDtBQUMzRCwwR0FBMEc7QUFDMUcsa0NBQWtDO0FBQ2xDLGlDQUFpQztBQUNqQyx1Q0FBdUM7QUFDdkMsVUFBVTtBQUNWLHlCQUF5QjtBQUN6QiwrRUFBK0U7QUFDL0Usd0NBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxjQUFjO0FBQ2QsNERBQTREO0FBQzVELHFHQUFxRztBQUNyRyxtRkFBbUY7QUFDbkYsbUJBQW1CO0FBQ25CLDRFQUE0RTtBQUM1RSwrSkFBK0o7QUFDL0osY0FBYztBQUNkLGlGQUFpRjtBQUNqRixZQUFZO0FBQ1osVUFBVTtBQUNWLFFBQVE7QUFDUixRQUFRO0FBQ1IsSUFBSTtBQUVKLE1BQU0sVUFBVSxPQUFPLENBQTRCLFNBQXVCLEVBQUUsT0FBMkI7SUFDckcsT0FBTyxDQUFDLFNBQWlCLEVBQUUsV0FBNEIsRUFBRSxFQUFFO1FBQ3pELE1BQU0sWUFBWSxHQUFHLElBQUksbUJBQW1CLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDakcsc0VBQXNFO1FBQ3RFLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxjQUFjLENBQUksT0FBa0M7SUFDbEUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixPQUFPLENBQUMsU0FBaUIsRUFBRSxXQUE0QixFQUFFLEVBQUU7UUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25JLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEYsNkVBQTZFO0lBQy9FLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUksT0FBc0M7SUFDMUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQixPQUFPLENBQUMsU0FBaUIsRUFBRSxXQUE0QixFQUFFLEVBQUU7UUFDekQsTUFBTSxZQUFZLEdBQUcsSUFBSSxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25JLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsb0JBQW9CLENBQUMsd0JBQXdCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDbEYsaUZBQWlGO0lBQ25GLENBQUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCaW5kaW5nLCBDYW5Qcm94eSxcbiAgQ29uc3RydWN0YWJsZSxcbiAgRGVidWdDb250ZXh0LCBEZWxlZ2F0aW5nVmFsdWVNb2RlbCxcbiAgRnVuY3Rpb25zLFxuICBIYXNWYWx1ZSxcbiAgbGFuZyxcbiAgTXV0YWJsZVZhbHVlTW9kZWwsXG4gIFByb3hpZnksIFByb3hpZnlNZWNoYW5pY3MsIFZhbHVlTW9kZWxcbn0gZnJvbSAnQGNvb2xvbi9wZWN0aW4nO1xuaW1wb3J0IHtLbGFzcywgT3B0c30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5pbXBvcnQge2lzTmlsfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5pbXBvcnQge1JPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWX0gZnJvbSAnLi4vcGxhY2UtY29tcG9uZW50JztcbmltcG9ydCB7Rm9ybWF0dGVyfSBmcm9tICcuL2Zvcm1hdHRlcic7XG5pbXBvcnQge1BhcmFtZXRlckRlZmluaXRpb259IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuaW1wb3J0IHtQYXJhbWV0ZXJTYW5pdGlzZXJ9IGZyb20gJy4vcGFyYW1ldGVyLXNhbml0aXNlcic7XG5cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZUlkT3B0aW9uczxUPiB7XG4gIGFzPzogc3RyaW5nO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIHJlbWVtYmVyPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogVDtcbiAgc2FuaXRpc2VyPzogQ29uc3RydWN0YWJsZTxQYXJhbWV0ZXJTYW5pdGlzZXI8VD4+IHwgUGFyYW1ldGVyU2FuaXRpc2VyPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlUGFyYW1ldGVyT3B0aW9uczxUPiB7XG4gIGFzPzogc3RyaW5nO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIHJlbWVtYmVyPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogVDtcbiAgc3RvcmVJblVybD86IEZvcm1hdHRlcjxUPlxuICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj4gfCBQYXJhbWV0ZXJTYW5pdGlzZXI8VD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVMaXN0UGFyYW1ldGVyT3B0aW9uczxUPiB7XG4gIGFzPzogc3RyaW5nO1xuICBvcHRpb25hbD86IGJvb2xlYW47XG4gIHJlbWVtYmVyPzogYm9vbGVhbjtcbiAgZGVmYXVsdFZhbHVlPzogVFtdO1xuICBzdG9yZUluVXJsPzogRm9ybWF0dGVyPFQ+XG4gIHNhbml0aXNlcj86IENvbnN0cnVjdGFibGU8UGFyYW1ldGVyU2FuaXRpc2VyPFRbXT4+IHwgUGFyYW1ldGVyU2FuaXRpc2VyPFRbXT47XG59XG5cblxuLy8gZnVuY3Rpb24gaW5zdGFsbE1lY2hhbmljczxNIGV4dGVuZHMgSGFzVmFsdWU8YW55Pj4ocGFyYW1ldGVyRGVmOiBQYXJhbWV0ZXJEZWZpbml0aW9uPGFueT4sIHByb3RvdHlwZTogb2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sLCB0YWdQcmVmaXg6IHN0cmluZykge1xuLy9cbi8vICAgS2xhc3MuZ2V0KHByb3RvdHlwZSkuYWRkVG9Pd25NZXRhZGF0YUxpc3QoUk9VVEVfUEFSQU1FVEVSX0xJU1RfS0VZLCBwYXJhbWV0ZXJEZWYpO1xuLy9cbi8vICAgZnVuY3Rpb24gZ2V0TWVjaGFuaWNzKGluc3RhbmNlOiBNLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyB8IHN5bWJvbCkge1xuLy8gICAgIGNvbnN0IGtleSA9IGBfX21lY2hhbmljc18ke3Byb3BlcnR5TmFtZS50b1N0cmluZygpfWA7XG4vLyAgICAgaWYgKCFpbnN0YW5jZVtrZXldKSB7XG4vLyAgICAgICBjb25zdCBiYWNraW5nTW9kZWwgPSBwYXJhbWV0ZXJEZWYuY3JlYXRlQmFja2luZ01vZGVsKCk7XG4vLyAgICAgICBpbnN0YW5jZVtrZXldID0ge1xuLy8gICAgICAgICBiYWNraW5nTW9kZWw6IGJhY2tpbmdNb2RlbCxcbi8vICAgICAgICAgYmluZGluZzogbnVsbCBhcyBCaW5kaW5nPGFueSwgYW55PlxuLy8gICAgICAgfTtcbi8vICAgICAgIGNvbnN0IHRhZyA9IGAke3RhZ1ByZWZpeH0oJHtwcm90b3R5cGUuY29uc3RydWN0b3IubmFtZX0uJHtwcm9wZXJ0eUtleS50b1N0cmluZygpfSlgO1xuLy8gICAgICAgRGVidWdDb250ZXh0LmdldE9yQ3JlYXRlKGluc3RhbmNlW2tleV0uYmFja2luZ01vZGVsKS50YWcodGFnKTtcbi8vICAgICB9XG4vLyAgICAgcmV0dXJuIGluc3RhbmNlW2tleV07XG4vLyAgIH1cbi8vXG4vLyAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm90b3R5cGUsIHByb3BlcnR5S2V5LCB7XG4vLyAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbi8vICAgICAgIHJldHVybiBnZXRNZWNoYW5pY3ModGhpcywgcHJvcGVydHlLZXkpLmJhY2tpbmdNb2RlbDtcbi8vICAgICB9LFxuLy8gICAgIHNldDogZnVuY3Rpb24odXNlck1vZGVsOiBNKSB7XG4vLyAgICAgICBjb25zdCBtZWNoYW5pY3MgPSBnZXRNZWNoYW5pY3ModGhpcywgcHJvcGVydHlLZXkpO1xuLy8gICAgICAgLy8gVGhpcyBoYW5kbGVzIHRoZSBzY2VuYXJpbyB3aGVyZSB3ZSB3YW50IHRvIHB1c2ggYW4gZXhpc3RpbmcgdmFsdWUgbW9kZWwgKHN1Y2ggYXMgYSBmb3JtIG1vZGVsKVxuLy8gICAgICAgLy8gdG8gYW5kIGZyb20gdGhlIHJvdXRlLlxuLy8gICAgICAgaWYgKG1lY2hhbmljcy5iaW5kaW5nKSB7XG4vLyAgICAgICAgIG1lY2hhbmljcy5iaW5kaW5nLmRpc3Bvc2UoKTtcbi8vICAgICAgIH1cbi8vICAgICAgIGlmICh1c2VyTW9kZWwpIHtcbi8vICAgICAgICAgbWVjaGFuaWNzLmJpbmRpbmcgPSBuZXcgQmluZGluZyhtZWNoYW5pY3MuYmFja2luZ01vZGVsLCB1c2VyTW9kZWwsIHtcbi8vICAgICAgICAgICB0b0xlZnQ6IEZ1bmN0aW9ucy5pZGVudGl0eSxcbi8vICAgICAgICAgICB0b1JpZ2h0OiBGdW5jdGlvbnMuaWRlbnRpdHlcbi8vICAgICAgICAgfSk7XG4vLyAgICAgICAgIGlmIChwYXJhbWV0ZXJEZWYuaXNFbXB0eVZhbHVlKHVzZXJNb2RlbC52YWx1ZSkpIHtcbi8vICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhgUHVzaCB2aXNpdCB0byBtb2RlbCBmb3IgJHt0YWd9YCwge3ZhbHVlOiBtZWNoYW5pY3MuYmFja2luZ01vZGVsLnZhbHVlfSk7XG4vLyAgICAgICAgICAgbWVjaGFuaWNzLmJpbmRpbmcud3JpdGVSaWdodCgpOyAvLyBwdXNoIHRoZSB2aXNpdCBpbnRvIHRoZSB1c2VyIG1vZGVsO1xuLy8gICAgICAgICB9IGVsc2Uge1xuLy8gICAgICAgICAgIGlmICghcGFyYW1ldGVyRGVmLmlzRW1wdHlWYWx1ZShtZWNoYW5pY3MuYmFja2luZ01vZGVsLnZhbHVlKSkge1xuLy8gICAgICAgICAgICAgY29uc29sZS53YXJuKCdBc3NpZ25pbmcgYSB2aXNpdCBtb2RlbCB3aXRoIGFuIGV4aXN0aW5nIHZhbHVlIHRvIGEgdmlzaXQgcGFyYW1ldGVyIHdpdGggYW4gZXhpc3RpbmcgdmFsdWUuICBWaXNpdCBwYXJhbWV0ZXIgd2lsbCBiZSBvdmVycmlkZGVuJyk7XG4vLyAgICAgICAgICAgfVxuLy8gICAgICAgICAgIG1lY2hhbmljcy5iaW5kaW5nLndyaXRlTGVmdCgpOyAvLyBwdXNoIHRoZSB1c2VyIG1vZGVsIGludG8gdGhlIHZpc2l0XG4vLyAgICAgICAgIH1cbi8vICAgICAgIH1cbi8vICAgICB9XG4vLyAgIH0pO1xuLy8gfVxuXG5leHBvcnQgZnVuY3Rpb24gUm91dGVJZDxUIGV4dGVuZHMgc3RyaW5nIHwgbnVtYmVyPihmb3JtYXR0ZXI6IEZvcm1hdHRlcjxUPiwgb3B0aW9ucz86IFJvdXRlSWRPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICByZXR1cm4gKHByb3RvdHlwZTogb2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nIHwgc3ltYm9sKSA9PiB7XG4gICAgY29uc3QgcGFyYW1ldGVyRGVmID0gbmV3IFBhcmFtZXRlckRlZmluaXRpb24uUm91dGVJZChwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBmb3JtYXR0ZXIpO1xuICAgIC8vIGluc3RhbGxNZWNoYW5pY3MocGFyYW1ldGVyRGVmLCBwcm90b3R5cGUsIHByb3BlcnR5S2V5LCAnQFJvdXRlSWQnKTtcbiAgICBLbGFzcy5nZXQocHJvdG90eXBlKS5hZGRUb093bk1ldGFkYXRhTGlzdChST1VURV9QQVJBTUVURVJfTElTVF9LRVksIHBhcmFtZXRlckRlZik7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXNpdFBhcmFtZXRlcjxUPihvcHRpb25zPzogUm91dGVQYXJhbWV0ZXJPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIHJldHVybiAocHJvdG90eXBlOiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBuZXcgUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcihwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBvcHRzLmdldE9wdGlvbmFsKCdzdG9yZUluVXJsJywgbnVsbCkpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSwgcGFyYW1ldGVyRGVmKTtcbiAgICAvLyBpbnN0YWxsTWVjaGFuaWNzKHBhcmFtZXRlckRlZiwgcHJvdG90eXBlLCBwcm9wZXJ0eUtleSwgJ0BWaXNpdFBhcmFtZXRlcicpO1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVmlzaXRQYXJhbWV0ZXJMaXN0PEU+KG9wdGlvbnM/OiBSb3V0ZUxpc3RQYXJhbWV0ZXJPcHRpb25zPEU+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIHJldHVybiAocHJvdG90eXBlOiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBuZXcgUGFyYW1ldGVyRGVmaW5pdGlvbi5BcnJheVBhcmFtZXRlcihwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBvcHRzLmdldE9wdGlvbmFsKCdzdG9yZUluVXJsJywgbnVsbCkpO1xuICAgIEtsYXNzLmdldChwcm90b3R5cGUpLmFkZFRvT3duTWV0YWRhdGFMaXN0KFJPVVRFX1BBUkFNRVRFUl9MSVNUX0tFWSwgcGFyYW1ldGVyRGVmKTtcbiAgICAvLyBpbnN0YWxsTWVjaGFuaWNzKHBhcmFtZXRlckRlZiwgcHJvdG90eXBlLCBwcm9wZXJ0eUtleSwgJ0BWaXNpdFBhcmFtZXRlckxpc3QnKTtcbiAgfTtcbn1cbiJdfQ==
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlY29yYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVjb3JhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFpQixZQUFZLEVBQUUsU0FBUyxFQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDekYsT0FBTyxFQUFDLEtBQUssRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUU1RCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQStCM0QsU0FBUyxnQkFBZ0IsQ0FBMEIsWUFBc0MsRUFBRSxTQUFpQixFQUFFLFdBQTRCLEVBQUUsU0FBaUI7SUFFM0osS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyx3QkFBd0IsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUVsRixTQUFTLFlBQVksQ0FBQyxRQUFXLEVBQUUsWUFBNkI7UUFDOUQsTUFBTSxHQUFHLEdBQUcsZUFBZSxZQUFZLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztRQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ2xCLE1BQU0sWUFBWSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3ZELFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRztnQkFDZCxZQUFZLEVBQUUsWUFBWTtnQkFDMUIsT0FBTyxFQUFFLElBQXlCO2FBQ25DLENBQUM7WUFDRixNQUFNLEdBQUcsR0FBRyxHQUFHLFNBQVMsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FB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LENBQUMsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkksZ0JBQWdCLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUscUJBQXFCLENBQUMsQ0FBQztJQUNoRixDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCaW5kaW5nLCBDb25zdHJ1Y3RhYmxlLCBEZWJ1Z0NvbnRleHQsIEZ1bmN0aW9ucywgSGFzVmFsdWV9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7S2xhc3MsIE9wdHN9IGZyb20gJ0Bjb29sb24vdHlwZXNjcmlwdC11dGlsaXRpZXMnO1xuaW1wb3J0IHtST1VURV9QQVJBTUVURVJfTElTVF9LRVl9IGZyb20gJy4uL3BsYWNlLWNvbXBvbmVudCc7XG5pbXBvcnQge0Zvcm1hdHRlcn0gZnJvbSAnLi9mb3JtYXR0ZXInO1xuaW1wb3J0IHtQYXJhbWV0ZXJEZWZpbml0aW9ufSBmcm9tICcuL3BhcmFtZXRlci1kZWZpbml0aW9uJztcbmltcG9ydCB7UGFyYW1ldGVyU2FuaXRpc2VyfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgUm91dGVJZE9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZW1lbWJlcj86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IFQ7XG4gIHNhbml0aXNlcj86IENvbnN0cnVjdGFibGU8UGFyYW1ldGVyU2FuaXRpc2VyPFQ+PiB8IFBhcmFtZXRlclNhbml0aXNlcjxUPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSb3V0ZVBhcmFtZXRlck9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZW1lbWJlcj86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IFQ7XG4gIHN0b3JlSW5Vcmw/OiBGb3JtYXR0ZXI8VD5cbiAgc2FuaXRpc2VyPzogQ29uc3RydWN0YWJsZTxQYXJhbWV0ZXJTYW5pdGlzZXI8VD4+IHwgUGFyYW1ldGVyU2FuaXRpc2VyPFQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlTGlzdFBhcmFtZXRlck9wdGlvbnM8VD4ge1xuICBhcz86IHN0cmluZztcbiAgb3B0aW9uYWw/OiBib29sZWFuO1xuICByZW1lbWJlcj86IGJvb2xlYW47XG4gIGRlZmF1bHRWYWx1ZT86IFRbXTtcbiAgc3RvcmVJblVybD86IEZvcm1hdHRlcjxUPlxuICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUW10+PiB8IFBhcmFtZXRlclNhbml0aXNlcjxUW10+O1xufVxuXG5cbmZ1bmN0aW9uIGluc3RhbGxNZWNoYW5pY3M8TSBleHRlbmRzIEhhc1ZhbHVlPGFueT4+KHBhcmFtZXRlckRlZjogUGFyYW1ldGVyRGVmaW5pdGlvbjxhbnk+LCBwcm90b3R5cGU6IG9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCwgdGFnUHJlZml4OiBzdHJpbmcpIHtcblxuICBLbGFzcy5nZXQocHJvdG90eXBlKS5hZGRUb093bk1ldGFkYXRhTGlzdChST1VURV9QQVJBTUVURVJfTElTVF9LRVksIHBhcmFtZXRlckRlZik7XG5cbiAgZnVuY3Rpb24gZ2V0TWVjaGFuaWNzKGluc3RhbmNlOiBNLCBwcm9wZXJ0eU5hbWU6IHN0cmluZyB8IHN5bWJvbCkge1xuICAgIGNvbnN0IGtleSA9IGBfX21lY2hhbmljc18ke3Byb3BlcnR5TmFtZS50b1N0cmluZygpfWA7XG4gICAgaWYgKCFpbnN0YW5jZVtrZXldKSB7XG4gICAgICBjb25zdCBiYWNraW5nTW9kZWwgPSBwYXJhbWV0ZXJEZWYuY3JlYXRlQmFja2luZ01vZGVsKCk7XG4gICAgICBpbnN0YW5jZVtrZXldID0ge1xuICAgICAgICBiYWNraW5nTW9kZWw6IGJhY2tpbmdNb2RlbCxcbiAgICAgICAgYmluZGluZzogbnVsbCBhcyBCaW5kaW5nPGFueSwgYW55PlxuICAgICAgfTtcbiAgICAgIGNvbnN0IHRhZyA9IGAke3RhZ1ByZWZpeH0oJHtwcm90b3R5cGUuY29uc3RydWN0b3IubmFtZX0uJHtwcm9wZXJ0eUtleS50b1N0cmluZygpfSlgO1xuICAgICAgRGVidWdDb250ZXh0LmdldE9yQ3JlYXRlKGluc3RhbmNlW2tleV0uYmFja2luZ01vZGVsKS50YWcodGFnKTtcbiAgICB9XG4gICAgcmV0dXJuIGluc3RhbmNlW2tleV07XG4gIH1cblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkocHJvdG90eXBlLCBwcm9wZXJ0eUtleSwge1xuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gZ2V0TWVjaGFuaWNzKHRoaXMsIHByb3BlcnR5S2V5KS5iYWNraW5nTW9kZWw7XG4gICAgfSxcbiAgICBzZXQ6IGZ1bmN0aW9uKHVzZXJNb2RlbDogTSkge1xuICAgICAgY29uc3QgbWVjaGFuaWNzID0gZ2V0TWVjaGFuaWNzKHRoaXMsIHByb3BlcnR5S2V5KTtcbiAgICAgIC8vIFRoaXMgaGFuZGxlcyB0aGUgc2NlbmFyaW8gd2hlcmUgd2Ugd2FudCB0byBwdXNoIGFuIGV4aXN0aW5nIHZhbHVlIG1vZGVsIChzdWNoIGFzIGEgZm9ybSBtb2RlbClcbiAgICAgIC8vIHRvIGFuZCBmcm9tIHRoZSByb3V0ZS5cbiAgICAgIGlmIChtZWNoYW5pY3MuYmluZGluZykge1xuICAgICAgICBtZWNoYW5pY3MuYmluZGluZy5kaXNwb3NlKCk7XG4gICAgICB9XG4gICAgICBpZiAodXNlck1vZGVsKSB7XG4gICAgICAgIG1lY2hhbmljcy5iaW5kaW5nID0gbmV3IEJpbmRpbmcobWVjaGFuaWNzLmJhY2tpbmdNb2RlbCwgdXNlck1vZGVsLCB7XG4gICAgICAgICAgdG9MZWZ0OiBGdW5jdGlvbnMuaWRlbnRpdHksXG4gICAgICAgICAgdG9SaWdodDogRnVuY3Rpb25zLmlkZW50aXR5XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAocGFyYW1ldGVyRGVmLmlzRW1wdHlWYWx1ZSh1c2VyTW9kZWwudmFsdWUpKSB7XG4gICAgICAgICAgLy8gY29uc29sZS5sb2coYFB1c2ggdmlzaXQgdG8gbW9kZWwgZm9yICR7dGFnfWAsIHt2YWx1ZTogbWVjaGFuaWNzLmJhY2tpbmdNb2RlbC52YWx1ZX0pO1xuICAgICAgICAgIG1lY2hhbmljcy5iaW5kaW5nLndyaXRlUmlnaHQoKTsgLy8gcHVzaCB0aGUgdmlzaXQgaW50byB0aGUgdXNlciBtb2RlbDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoIXBhcmFtZXRlckRlZi5pc0VtcHR5VmFsdWUobWVjaGFuaWNzLmJhY2tpbmdNb2RlbC52YWx1ZSkpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQXNzaWduaW5nIGEgdmlzaXQgbW9kZWwgd2l0aCBhbiBleGlzdGluZyB2YWx1ZSB0byBhIHZpc2l0IHBhcmFtZXRlciB3aXRoIGFuIGV4aXN0aW5nIHZhbHVlLiAgVmlzaXQgcGFyYW1ldGVyIHdpbGwgYmUgb3ZlcnJpZGRlbicpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBtZWNoYW5pY3MuYmluZGluZy53cml0ZUxlZnQoKTsgLy8gcHVzaCB0aGUgdXNlciBtb2RlbCBpbnRvIHRoZSB2aXNpdFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFJvdXRlSWQ8VCBleHRlbmRzIHN0cmluZyB8IG51bWJlcj4oZm9ybWF0dGVyOiBGb3JtYXR0ZXI8VD4sIG9wdGlvbnM/OiBSb3V0ZUlkT3B0aW9uczxUPik6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgcmV0dXJuIChwcm90b3R5cGU6IG9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IG5ldyBQYXJhbWV0ZXJEZWZpbml0aW9uLlJvdXRlSWQocHJvcGVydHlLZXkudG9TdHJpbmcoKSwgb3B0aW9ucywgZm9ybWF0dGVyKTtcbiAgICBpbnN0YWxsTWVjaGFuaWNzKHBhcmFtZXRlckRlZiwgcHJvdG90eXBlLCBwcm9wZXJ0eUtleSwgJ0BSb3V0ZUlkJyk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXNpdFBhcmFtZXRlcjxUPihvcHRpb25zPzogUm91dGVQYXJhbWV0ZXJPcHRpb25zPFQ+KTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICBjb25zdCBvcHRzID0gT3B0cy5nZXQob3B0aW9ucyk7XG4gIHJldHVybiAocHJvdG90eXBlOiBvYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcgfCBzeW1ib2wpID0+IHtcbiAgICBjb25zdCBwYXJhbWV0ZXJEZWYgPSBuZXcgUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcihwcm9wZXJ0eUtleS50b1N0cmluZygpLCBvcHRpb25zLCBvcHRzLmdldE9wdGlvbmFsKCdzdG9yZUluVXJsJywgbnVsbCkpO1xuICAgIGluc3RhbGxNZWNoYW5pY3MocGFyYW1ldGVyRGVmLCBwcm90b3R5cGUsIHByb3BlcnR5S2V5LCAnQFZpc2l0UGFyYW1ldGVyJyk7XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBWaXNpdFBhcmFtZXRlckxpc3Q8RT4ob3B0aW9ucz86IFJvdXRlTGlzdFBhcmFtZXRlck9wdGlvbnM8RT4pOiBQcm9wZXJ0eURlY29yYXRvciB7XG4gIGNvbnN0IG9wdHMgPSBPcHRzLmdldChvcHRpb25zKTtcbiAgcmV0dXJuIChwcm90b3R5cGU6IG9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyB8IHN5bWJvbCkgPT4ge1xuICAgIGNvbnN0IHBhcmFtZXRlckRlZiA9IG5ldyBQYXJhbWV0ZXJEZWZpbml0aW9uLkFycmF5UGFyYW1ldGVyKHByb3BlcnR5S2V5LnRvU3RyaW5nKCksIG9wdGlvbnMsIG9wdHMuZ2V0T3B0aW9uYWwoJ3N0b3JlSW5VcmwnLCBudWxsKSk7XG4gICAgaW5zdGFsbE1lY2hhbmljcyhwYXJhbWV0ZXJEZWYsIHByb3RvdHlwZSwgcHJvcGVydHlLZXksICdAVmlzaXRQYXJhbWV0ZXJMaXN0Jyk7XG4gIH07XG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { MutableListModel, MutableValueModel } from '@coolon/pectin';
2
2
  import { lang, Opts } from '@coolon/typescript-utilities';
3
- import { isEqual, isFunction, isNil, isObject } from 'lodash-es';
3
+ import { isEqual, isFunction, isNil, isObject } from 'lodash';
4
4
  const PARAMETER_DEFINITION_KEY = Symbol('parameterDefinition');
5
5
  export class ParameterDefinition {
6
6
  propertyName;
@@ -118,4 +118,4 @@ export class ParameterDefinition {
118
118
  }
119
119
  ParameterDefinition.get = get;
120
120
  })(ParameterDefinition || (ParameterDefinition = {}));
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkgsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBTS9ELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFHL0QsTUFBTSxPQUFnQixtQkFBbUI7SUFVbEI7SUFBd0U7SUFMcEYsUUFBUSxDQUFVO0lBQ2xCLFlBQVksQ0FBSTtJQUNqQixPQUFPLENBQXVDO0lBR3RELFlBQXFCLFlBQW9CLEVBQUUsT0FBdUMsRUFBVyxTQUF3QjtRQUFoRyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFvRCxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ25ILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFB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QUUsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELFlBQVksQ0FBQyxLQUFVO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxVQUFVLENBQUMsQ0FBTSxFQUFFLENBQU07WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQztLQUVGO0lBakJZLGtDQUFjLGlCQWlCMUIsQ0FBQTtJQUlELFNBQWdCLEdBQUcsQ0FBSSxLQUFtQztRQUN4RCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLG9GQUFvRixDQUFDLENBQUM7U0FDNUc7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFOZSx1QkFBRyxNQU1sQixDQUFBO0FBR0gsQ0FBQyxFQXJFZ0IsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXFFbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgSGFzVmFsdWUsIExpc3RNb2RlbCwgTXV0YWJsZUxpc3RNb2RlbCwgTXV0YWJsZVZhbHVlTW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7bGFuZywgT3B0c30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7aXNFcXVhbCwgaXNGdW5jdGlvbiwgaXNOaWwsIGlzT2JqZWN0fSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtQbGFjZUhpc3Rvcnl9IGZyb20gJy4uL3BsYWNlLWhpc3RvcnknO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnR9IGZyb20gJy4uL3Zpc2l0LXNlZ21lbnQnO1xuaW1wb3J0IHtGb3JtYXR0ZXJ9IGZyb20gJy4vZm9ybWF0dGVyJztcbmltcG9ydCB7UGFyYW1ldGVyU2FuaXRpc2VyfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuXG5jb25zdCBQQVJBTUVURVJfREVGSU5JVElPTl9LRVkgPSBTeW1ib2woJ3BhcmFtZXRlckRlZmluaXRpb24nKTtcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBFID0gVD4ge1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUm91dGVJZDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNBcnJheTogYm9vbGVhbjtcblxuICByZWFkb25seSByZW1lbWJlcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlOiBUO1xuICBwcml2YXRlIG9wdGlvbnM6IE9wdHM8UGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+PjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJhY2tpbmdNb2RlbEZhY3Rvcnk6ICgpID0+IEhhc1ZhbHVlPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHByb3BlcnR5TmFtZTogc3RyaW5nLCBvcHRpb25zOiBQYXJhbWV0ZXJEZWZpbml0aW9uLk9wdGlvbnM8VD4sIHJlYWRvbmx5IHVybEZvcm1hdD86IEZvcm1hdHRlcjxFPikge1xuICAgIHRoaXMub3B0aW9ucyA9IE9wdHMuZ2V0KG9wdGlvbnMpO1xuICAgIHRoaXMucmVtZW1iZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3JlbWVtYmVyJywgZmFsc2UpO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKCdkZWZhdWx0VmFsdWUnLCBudWxsKTtcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ2FzJywgdGhpcy5wcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0IGlzUm91dGVQYXJhbWV0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51cmxGb3JtYXQ7XG4gIH1cblxuICBhYnN0cmFjdCBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IGhhc0NoYW5nZWQoYTogYW55LCBiOiBhbnkpOiBib29sZWFuO1xuXG4gIGNyZWF0ZUJhY2tpbmdNb2RlbCgpOiBIYXNWYWx1ZTxUPiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmJhY2tpbmdNb2RlbEZhY3RvcnkoKTtcbiAgICBtb2RlbFtQQVJBTUVURVJfREVGSU5JVElPTl9LRVldID0gdGhpcztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0T3B0aW9uVmFsdWU8SyBleHRlbmRzIGtleW9mIFBhcmFtZXRlckRlZmluaXRpb24uT3B0aW9uczxUPj4oa2V5OiBLKTogUGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+W0tdIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKGtleSwgbnVsbCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBzYW5pdGlzZSh2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGBzYW5pdGlzZSgke3RoaXMucHJvcGVydHlOYW1lfSlgKVxuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5zYW5pdGlzZU1pc3NpbmcodmlzaXQsIHBsYWNlSGlzdG9yeSwgdmFsdWUpO1xuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5ydW5DdXN0b21TYW5pdGlzZXIodmFsdWUsIHZpc2l0LCBwbGFjZUhpc3RvcnksIGluamVjdG9yLCBpc1BvcFN0YXRlKTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJ1bkN1c3RvbVNhbml0aXNlcih2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGN1c3RvbVNhbml0aXNlciA9IHRoaXMucHJlcGFyZUN1c3RvbVNhbml0aXNlcihpbmplY3Rvcik7XG4gICAgcmV0dXJuIGN1c3RvbVNhbml0aXNlciA/IGN1c3RvbVNhbml0aXNlci5zYW5pdGlzZSh2YWx1ZSwgdmlzaXQsIGluamVjdG9yKSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW5pdGlzZU1pc3NpbmcodmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIHZhbHVlOiBUKSB7XG4gICAgaWYgKHRoaXMuaXNNaXNzaW5nRnJvbSh2aXNpdCkpIHtcbiAgICAgIGNvbnN0IHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlID0gIXBsYWNlSGlzdG9yeS5sYXN0VmlzaXRJbmNsdWRlZCh2aXNpdC5wbGFjZURlZmluaXRpb24pO1xuICAgICAgaWYgKHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlKSB7XG4gICAgICAgIGNvbnN0IGxhc3RLbm93blZpc2l0ID0gcGxhY2VIaXN0b3J5LmdldE1vc3RSZWNlbnRWaXNpdFNlZ21lbnRGb3IodmlzaXQucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgICAgaWYgKHRoaXMucmVtZW1iZXIgJiYgbGFzdEtub3duVmlzaXQpIHtcbiAgICAgICAgICB2YWx1ZSA9IGxhc3RLbm93blZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRW1wdHlWYWx1ZSh2YWx1ZSkgPyB0aGlzLmRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlQ3VzdG9tU2FuaXRpc2VyKGluamVjdG9yOiBJbmplY3Rvcik6IFBhcmFtZXRlclNhbml0aXNlcjxhbnk+IHtcbiAgICBjb25zdCBjdXN0b21TYW5pdGlzZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3Nhbml0aXNlcicsIG51bGwpO1xuICAgIGlmIChpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgaWYgKGlzT2JqZWN0KGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlclsnc2FuaXRpc2UnXSkgP1xuICAgICAgICBjdXN0b21TYW5pdGlzZXIgYXMgUGFyYW1ldGVyU2FuaXRpc2VyPGFueT4gOlxuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgZXhwZWN0ZWQgQFZpc2l0UGFyYW1ldGVyKHtzYW5pdGlzZXI6IC4uLn0pIGZvciAke3RoaXMucHJvcGVydHlOYW1lfSB0byBiZSBhIGNvbnN0cnVjdG9yIG9yIGluc3RhbmNlIG9mIFBhcmFtZXRlclNhbml0aXNlciwgZ290OiBgICsgY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNNaXNzaW5nRnJvbSh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgcmV0dXJuICF2aXNpdC5oYXNQYXJhbWV0ZXIodGhpcyk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQYXJhbWV0ZXJEZWZpbml0aW9uIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnM8VD4ge1xuICAgIGFzPzogc3RyaW5nO1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICByZW1lbWJlcj86IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogVDtcbiAgICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj4gfCBQYXJhbWV0ZXJTYW5pdGlzZXI8VD47XG4gIH1cblxuICBleHBvcnQgY2xhc3MgUm91dGVJZDxUPiBleHRlbmRzIFBhcmFtZXRlckRlZmluaXRpb248VD4ge1xuICAgIHJlYWRvbmx5IGlzUm91dGVJZCA9IHRydWU7XG4gICAgcmVhZG9ubHkgaXNBcnJheSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBiYWNraW5nTW9kZWxGYWN0b3J5ID0gKCkgPT4gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaGFzQ2hhbmdlZChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGEgIT09IGI7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgVmFsdWVQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGJhY2tpbmdNb2RlbEZhY3RvcnkgPSAoKSA9PiBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcblxuICAgIGlzRW1wdHlWYWx1ZSh2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGlzTmlsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gYSAhPT0gYjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXlQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFJlYWRvbmx5QXJyYXk8VD4sIFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgYmFja2luZ01vZGVsRmFjdG9yeSA9ICgpID0+IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnM8VFtdPiwgdXJsRm9ybWF0OiBGb3JtYXR0ZXI8VD4pIHtcbiAgICAgIHN1cGVyKHBhcmFtZXRlck5hbWUsIG9wdGlvbnMsIHVybEZvcm1hdCk7XG4gICAgfVxuXG4gICAgaXNFbXB0eVZhbHVlKHZhbHVlOiBUW10pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoIDwgMTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IFRbXSwgYjogVFtdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzRXF1YWwoYSwgYik7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBWYWx1ZU1vZGVsPFQ+KTogUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcjxUPlxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLkFycmF5UGFyYW1ldGVyPFQ+XG4gIGV4cG9ydCBmdW5jdGlvbiBnZXQ8VD4obW9kZWw6IFZhbHVlTW9kZWw8VD4gfCBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLlZhbHVlUGFyYW1ldGVyPFQ+IHwgUGFyYW1ldGVyRGVmaW5pdGlvbi5BcnJheVBhcmFtZXRlcjxUPiB7XG4gICAgY29uc3QgcGFyYW1ldGVyRGVmaW5pdGlvbiA9IG1vZGVsW1BBUkFNRVRFUl9ERUZJTklUSU9OX0tFWV07XG4gICAgaWYgKCFwYXJhbWV0ZXJEZWZpbml0aW9uKSB7XG4gICAgICBsYW5nLmlsbGVnYWxBcmd1bWVudCgnbW9kZWwgaGFzblxcJ3QgYmVlbiBhbm5vdGF0ZWQgd2l0aCBAVmlzaXRQYXJhbWV0ZXIsIEBWaXNpdFBhcmFtZXRlckxpc3Qgb3IgQFJvdXRlSWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtZXRlckRlZmluaXRpb247XG4gIH1cblxuXG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW1ldGVyLWRlZmluaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItdWktcG93ZXJ1cHMvc3JjL2xpYi9wbGFjZS9yb3V0ZS9wYXJhbWV0ZXItZGVmaW5pdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkgsT0FBTyxFQUFDLElBQUksRUFBRSxJQUFJLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUV4RCxPQUFPLEVBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sUUFBUSxDQUFDO0FBTTVELE1BQU0sd0JBQXdCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7QUFHL0QsTUFBTSxPQUFnQixtQkFBbUI7SUFVbEI7SUFBd0U7SUFMcEYsUUFBUSxDQUFVO0lBQ2xCLFlBQVksQ0FBSTtJQUNqQixPQUFPLENBQXVDO0lBR3RELFlBQXFCLFlBQW9CLEVBQUUsT0FBdUMsRUFBVyxTQUF3QjtRQUFoRyxpQkFBWSxHQUFaLFlBQVksQ0FBUTtRQUFvRCxjQUFTLEdBQVQsU0FBUyxDQUFlO1FBQ25ILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsSUFBSSxJQUFJO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFB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QUUsU0FBUyxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUVELFlBQVksQ0FBQyxLQUFVO1lBQ3JCLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFFRCxVQUFVLENBQUMsQ0FBTSxFQUFFLENBQU07WUFDdkIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDeEIsQ0FBQztLQUVGO0lBakJZLGtDQUFjLGlCQWlCMUIsQ0FBQTtJQUlELFNBQWdCLEdBQUcsQ0FBSSxLQUFtQztRQUN4RCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLG9GQUFvRixDQUFDLENBQUM7U0FDNUc7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFOZSx1QkFBRyxNQU1sQixDQUFBO0FBR0gsQ0FBQyxFQXJFZ0IsbUJBQW1CLEtBQW5CLG1CQUFtQixRQXFFbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdG9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29uc3RydWN0YWJsZSwgSGFzVmFsdWUsIExpc3RNb2RlbCwgTXV0YWJsZUxpc3RNb2RlbCwgTXV0YWJsZVZhbHVlTW9kZWwsIFZhbHVlTW9kZWx9IGZyb20gJ0Bjb29sb24vcGVjdGluJztcbmltcG9ydCB7bGFuZywgT3B0c30gZnJvbSAnQGNvb2xvbi90eXBlc2NyaXB0LXV0aWxpdGllcyc7XG5cbmltcG9ydCB7aXNFcXVhbCwgaXNGdW5jdGlvbiwgaXNOaWwsIGlzT2JqZWN0fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtQbGFjZUhpc3Rvcnl9IGZyb20gJy4uL3BsYWNlLWhpc3RvcnknO1xuaW1wb3J0IHtWaXNpdFNlZ21lbnR9IGZyb20gJy4uL3Zpc2l0LXNlZ21lbnQnO1xuaW1wb3J0IHtGb3JtYXR0ZXJ9IGZyb20gJy4vZm9ybWF0dGVyJztcbmltcG9ydCB7UGFyYW1ldGVyU2FuaXRpc2VyfSBmcm9tICcuL3BhcmFtZXRlci1zYW5pdGlzZXInO1xuXG5jb25zdCBQQVJBTUVURVJfREVGSU5JVElPTl9LRVkgPSBTeW1ib2woJ3BhcmFtZXRlckRlZmluaXRpb24nKTtcblxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGFyYW1ldGVyRGVmaW5pdGlvbjxULCBFID0gVD4ge1xuXG4gIGFic3RyYWN0IHJlYWRvbmx5IGlzUm91dGVJZDogYm9vbGVhbjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgaXNBcnJheTogYm9vbGVhbjtcblxuICByZWFkb25seSByZW1lbWJlcjogYm9vbGVhbjtcbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlOiBUO1xuICBwcml2YXRlIG9wdGlvbnM6IE9wdHM8UGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+PjtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJhY2tpbmdNb2RlbEZhY3Rvcnk6ICgpID0+IEhhc1ZhbHVlPFQ+O1xuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHByb3BlcnR5TmFtZTogc3RyaW5nLCBvcHRpb25zOiBQYXJhbWV0ZXJEZWZpbml0aW9uLk9wdGlvbnM8VD4sIHJlYWRvbmx5IHVybEZvcm1hdD86IEZvcm1hdHRlcjxFPikge1xuICAgIHRoaXMub3B0aW9ucyA9IE9wdHMuZ2V0KG9wdGlvbnMpO1xuICAgIHRoaXMucmVtZW1iZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3JlbWVtYmVyJywgZmFsc2UpO1xuICAgIHRoaXMuZGVmYXVsdFZhbHVlID0gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKCdkZWZhdWx0VmFsdWUnLCBudWxsKTtcbiAgfVxuXG4gIGdldCBuYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ2FzJywgdGhpcy5wcm9wZXJ0eU5hbWUpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgZ2V0IGlzUm91dGVQYXJhbWV0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy51cmxGb3JtYXQ7XG4gIH1cblxuICBhYnN0cmFjdCBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IGhhc0NoYW5nZWQoYTogYW55LCBiOiBhbnkpOiBib29sZWFuO1xuXG4gIGNyZWF0ZUJhY2tpbmdNb2RlbCgpOiBIYXNWYWx1ZTxUPiB7XG4gICAgY29uc3QgbW9kZWwgPSB0aGlzLmJhY2tpbmdNb2RlbEZhY3RvcnkoKTtcbiAgICBtb2RlbFtQQVJBTUVURVJfREVGSU5JVElPTl9LRVldID0gdGhpcztcbiAgICByZXR1cm4gbW9kZWw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0T3B0aW9uVmFsdWU8SyBleHRlbmRzIGtleW9mIFBhcmFtZXRlckRlZmluaXRpb24uT3B0aW9uczxUPj4oa2V5OiBLKTogUGFyYW1ldGVyRGVmaW5pdGlvbi5PcHRpb25zPFQ+W0tdIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmdldE9wdGlvbmFsKGtleSwgbnVsbCk7XG4gIH1cblxuICAvLyBAVHJhY2UoKVxuICBhc3luYyBzYW5pdGlzZSh2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIC8vIGNvbnNvbGUubG9nKGBzYW5pdGlzZSgke3RoaXMucHJvcGVydHlOYW1lfSlgKVxuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5zYW5pdGlzZU1pc3NpbmcodmlzaXQsIHBsYWNlSGlzdG9yeSwgdmFsdWUpO1xuICAgIHZhbHVlID0gYXdhaXQgdGhpcy5ydW5DdXN0b21TYW5pdGlzZXIodmFsdWUsIHZpc2l0LCBwbGFjZUhpc3RvcnksIGluamVjdG9yLCBpc1BvcFN0YXRlKTtcbiAgICByZXR1cm4gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJ1bkN1c3RvbVNhbml0aXNlcih2YWx1ZTogVCwgdmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIGluamVjdG9yOiBJbmplY3RvciwgaXNQb3BTdGF0ZTogYm9vbGVhbik6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IGN1c3RvbVNhbml0aXNlciA9IHRoaXMucHJlcGFyZUN1c3RvbVNhbml0aXNlcihpbmplY3Rvcik7XG4gICAgcmV0dXJuIGN1c3RvbVNhbml0aXNlciA/IGN1c3RvbVNhbml0aXNlci5zYW5pdGlzZSh2YWx1ZSwgdmlzaXQsIGluamVjdG9yKSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzYW5pdGlzZU1pc3NpbmcodmlzaXQ6IFZpc2l0U2VnbWVudCwgcGxhY2VIaXN0b3J5OiBQbGFjZUhpc3RvcnksIHZhbHVlOiBUKSB7XG4gICAgaWYgKHRoaXMuaXNNaXNzaW5nRnJvbSh2aXNpdCkpIHtcbiAgICAgIGNvbnN0IHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlID0gIXBsYWNlSGlzdG9yeS5sYXN0VmlzaXRJbmNsdWRlZCh2aXNpdC5wbGFjZURlZmluaXRpb24pO1xuICAgICAgaWYgKHJldHVybmluZ0Zyb21Tb21ld2hlcmVFbHNlKSB7XG4gICAgICAgIGNvbnN0IGxhc3RLbm93blZpc2l0ID0gcGxhY2VIaXN0b3J5LmdldE1vc3RSZWNlbnRWaXNpdFNlZ21lbnRGb3IodmlzaXQucGxhY2VEZWZpbml0aW9uKTtcbiAgICAgICAgaWYgKHRoaXMucmVtZW1iZXIgJiYgbGFzdEtub3duVmlzaXQpIHtcbiAgICAgICAgICB2YWx1ZSA9IGxhc3RLbm93blZpc2l0LmdldFBhcmFtZXRlclZhbHVlKHRoaXMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRW1wdHlWYWx1ZSh2YWx1ZSkgPyB0aGlzLmRlZmF1bHRWYWx1ZSA6IHZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlQ3VzdG9tU2FuaXRpc2VyKGluamVjdG9yOiBJbmplY3Rvcik6IFBhcmFtZXRlclNhbml0aXNlcjxhbnk+IHtcbiAgICBjb25zdCBjdXN0b21TYW5pdGlzZXIgPSB0aGlzLm9wdGlvbnMuZ2V0T3B0aW9uYWwoJ3Nhbml0aXNlcicsIG51bGwpO1xuICAgIGlmIChpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpbmplY3Rvci5nZXQoY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgaWYgKGlzT2JqZWN0KGN1c3RvbVNhbml0aXNlcikpIHtcbiAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGN1c3RvbVNhbml0aXNlclsnc2FuaXRpc2UnXSkgP1xuICAgICAgICBjdXN0b21TYW5pdGlzZXIgYXMgUGFyYW1ldGVyU2FuaXRpc2VyPGFueT4gOlxuICAgICAgICBsYW5nLmlsbGVnYWxTdGF0ZShgZXhwZWN0ZWQgQFZpc2l0UGFyYW1ldGVyKHtzYW5pdGlzZXI6IC4uLn0pIGZvciAke3RoaXMucHJvcGVydHlOYW1lfSB0byBiZSBhIGNvbnN0cnVjdG9yIG9yIGluc3RhbmNlIG9mIFBhcmFtZXRlclNhbml0aXNlciwgZ290OiBgICsgY3VzdG9tU2FuaXRpc2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNNaXNzaW5nRnJvbSh2aXNpdDogVmlzaXRTZWdtZW50KSB7XG4gICAgcmV0dXJuICF2aXNpdC5oYXNQYXJhbWV0ZXIodGhpcyk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBQYXJhbWV0ZXJEZWZpbml0aW9uIHtcblxuICBleHBvcnQgaW50ZXJmYWNlIE9wdGlvbnM8VD4ge1xuICAgIGFzPzogc3RyaW5nO1xuICAgIG9wdGlvbmFsPzogYm9vbGVhbjtcbiAgICByZW1lbWJlcj86IGJvb2xlYW47XG4gICAgZGVmYXVsdFZhbHVlPzogVDtcbiAgICBzYW5pdGlzZXI/OiBDb25zdHJ1Y3RhYmxlPFBhcmFtZXRlclNhbml0aXNlcjxUPj4gfCBQYXJhbWV0ZXJTYW5pdGlzZXI8VD47XG4gIH1cblxuICBleHBvcnQgY2xhc3MgUm91dGVJZDxUPiBleHRlbmRzIFBhcmFtZXRlckRlZmluaXRpb248VD4ge1xuICAgIHJlYWRvbmx5IGlzUm91dGVJZCA9IHRydWU7XG4gICAgcmVhZG9ubHkgaXNBcnJheSA9IGZhbHNlO1xuICAgIHByb3RlY3RlZCBiYWNraW5nTW9kZWxGYWN0b3J5ID0gKCkgPT4gbmV3IE11dGFibGVWYWx1ZU1vZGVsPFQ+KCk7XG5cbiAgICBpc0VtcHR5VmFsdWUodmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgaGFzQ2hhbmdlZChhOiBhbnksIGI6IGFueSk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGEgIT09IGI7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgY2xhc3MgVmFsdWVQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIGJhY2tpbmdNb2RlbEZhY3RvcnkgPSAoKSA9PiBuZXcgTXV0YWJsZVZhbHVlTW9kZWw8VD4oKTtcblxuICAgIGlzRW1wdHlWYWx1ZSh2YWx1ZTogVCk6IGJvb2xlYW4ge1xuICAgICAgcmV0dXJuIGlzTmlsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IGFueSwgYjogYW55KTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gYSAhPT0gYjtcbiAgICB9XG4gIH1cblxuICBleHBvcnQgY2xhc3MgQXJyYXlQYXJhbWV0ZXI8VD4gZXh0ZW5kcyBQYXJhbWV0ZXJEZWZpbml0aW9uPFJlYWRvbmx5QXJyYXk8VD4sIFQ+IHtcbiAgICByZWFkb25seSBpc1JvdXRlSWQgPSBmYWxzZTtcbiAgICByZWFkb25seSBpc0FycmF5ID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgYmFja2luZ01vZGVsRmFjdG9yeSA9ICgpID0+IG5ldyBNdXRhYmxlTGlzdE1vZGVsPFQ+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihwYXJhbWV0ZXJOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IE9wdGlvbnM8VFtdPiwgdXJsRm9ybWF0OiBGb3JtYXR0ZXI8VD4pIHtcbiAgICAgIHN1cGVyKHBhcmFtZXRlck5hbWUsIG9wdGlvbnMsIHVybEZvcm1hdCk7XG4gICAgfVxuXG4gICAgaXNFbXB0eVZhbHVlKHZhbHVlOiBUW10pOiBib29sZWFuIHtcbiAgICAgIHJldHVybiBpc05pbCh2YWx1ZSkgfHwgdmFsdWUubGVuZ3RoIDwgMTtcbiAgICB9XG5cbiAgICBoYXNDaGFuZ2VkKGE6IFRbXSwgYjogVFtdKTogYm9vbGVhbiB7XG4gICAgICByZXR1cm4gIWlzRXF1YWwoYSwgYik7XG4gICAgfVxuXG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBWYWx1ZU1vZGVsPFQ+KTogUGFyYW1ldGVyRGVmaW5pdGlvbi5WYWx1ZVBhcmFtZXRlcjxUPlxuICBleHBvcnQgZnVuY3Rpb24gZ2V0PFQ+KG1vZGVsOiBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLkFycmF5UGFyYW1ldGVyPFQ+XG4gIGV4cG9ydCBmdW5jdGlvbiBnZXQ8VD4obW9kZWw6IFZhbHVlTW9kZWw8VD4gfCBMaXN0TW9kZWw8VD4pOiBQYXJhbWV0ZXJEZWZpbml0aW9uLlZhbHVlUGFyYW1ldGVyPFQ+IHwgUGFyYW1ldGVyRGVmaW5pdGlvbi5BcnJheVBhcmFtZXRlcjxUPiB7XG4gICAgY29uc3QgcGFyYW1ldGVyRGVmaW5pdGlvbiA9IG1vZGVsW1BBUkFNRVRFUl9ERUZJTklUSU9OX0tFWV07XG4gICAgaWYgKCFwYXJhbWV0ZXJEZWZpbml0aW9uKSB7XG4gICAgICBsYW5nLmlsbGVnYWxBcmd1bWVudCgnbW9kZWwgaGFzblxcJ3QgYmVlbiBhbm5vdGF0ZWQgd2l0aCBAVmlzaXRQYXJhbWV0ZXIsIEBWaXNpdFBhcmFtZXRlckxpc3Qgb3IgQFJvdXRlSWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhcmFtZXRlckRlZmluaXRpb247XG4gIH1cblxuXG59XG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { __decorate, __metadata } from "tslib";
2
2
  import { UrlSegment } from '@angular/router';
3
- import { Memoize } from 'fast-typescript-memoize';
4
- import { isEqual, last } from 'lodash-es';
3
+ import { Memoize } from '@typescript-plus/fast-memoize-decorator';
4
+ import { isEqual, last } from 'lodash';
5
5
  import { ConsolidatedParameterMap } from './guards/consolidated-param-map';
6
6
  import { VisitSegment } from './visit-segment';
7
7
  function extractPrimaryUrlSegments(urlTree) {
@@ -122,4 +122,4 @@ __decorate([
122
122
  }
123
123
  UrlSnapshot.createPathIdFor = createPathIdFor;
124
124
  })(UrlSnapshot || (UrlSnapshot = {}));
125
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvdXJsLXNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUF5QixNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUVoRCxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUN4QyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsU0FBUyx5QkFBeUIsQ0FBQyxPQUFnQjtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUtEO0lBQXVDO0lBSG5ELE9BQU8sQ0FBVTtJQUUxQixpSUFBaUk7SUFDakksWUFBcUIsYUFBNEIsRUFBVyxHQUFXO1FBQWxELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVcsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7SUFDSixrQkFBa0IsQ0FBQyxZQUEwQjtRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsOEJBQThCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRSxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEYsaUVBQWlFO1FBQ2pFLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQztRQUMvRCxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNyRCxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsVUFBVSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGFBQWEsQ0FBQyxZQUEwQjtRQUN0QyxzREFBc0Q7UUFDdEQsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDaEcsQ0FBQztJQUdPLHFCQUFxQjtRQUMzQixPQUFPLHlCQUF5QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sNkJBQTZCLENBQUMsWUFBMEI7UUFDaEUsT0FBTyxZQUFZLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDaEQ7Z0JBQ0UsUUFBUTtnQkFDUiwwRkFBMEY7Z0JBQzFGLGtFQUFrRTtnQkFDbEUsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDekgsSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUM7YUFBQztZQUNyRixDQUFDO2dCQUNEO29CQUNFLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxlQUFlLENBQUMsMkJBQTJCLENBQUMsWUFBWSxDQUFDLENBQUM7aUJBQzFILENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQXlCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQXlCO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDbkUsQ0FBQztJQUVELHFCQUFxQixDQUFDLFFBQXlCO1FBQzdDLE9BQU8sSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLElBQUksd0JBQXdCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxpQkFBaUI7UUFDZixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUNqRixJQUFJLFVBQVUsRUFBRTtZQUNkLE9BQU8sV0FBVyxDQUFDLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BEO2FBQU07WUFDTCxPQUFPLEVBQUUsQ0FBQztTQUNYO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELGlCQUFpQixDQUFDLEdBQXNCO1FBQ3RDLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxXQUFXO0lBRVgsb0JBQW9CLENBQUMsR0FBc0I7UUFDekMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1NBQ3BDO2FBQU07WUFDTCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkQsT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVGLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztTQUNoRTtJQUNILENBQUM7SUFDRCxXQUFXO0lBRVgsb0JBQW9CO1FBQ2xCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNuRCxJQUFJLE9BQU8sQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNuRixPQUFPLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQyxDQUFBLHlDQUF5QztTQUNuRTtRQUNELE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sZUFBZSxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUM7SUFDcEMsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQXFCO1FBQ3hDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0NBQ0Y7QUE5RVM7SUFEUCxPQUFPLEVBQUU7Ozs7d0RBR1Q7QUE4RUgsV0FBaUIsV0FBVztJQUViLG1DQUF1QixHQUFHLGtCQUFrQixDQUFDO0lBQzdDLG9DQUF3QixHQUFHLElBQUksQ0FBQztJQUU3QyxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFBLHdCQUF3QixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUZlLCtCQUFtQixzQkFFbEMsQ0FBQTtJQUVELFNBQWdCLGVBQWUsQ0FBQyxjQUFpQztRQUMvRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBQSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFGZSwyQkFBZSxrQkFFOUIsQ0FBQTtBQUtILENBQUMsRUFoQmdCLFdBQVcsS0FBWCxXQUFXLFFBZ0IzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXJsU2VnbWVudCwgVXJsU2VyaWFsaXplciwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnZmFzdC10eXBlc2NyaXB0LW1lbW9pemUnO1xuXG5pbXBvcnQge2lzRXF1YWwsIGxhc3R9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge0NvbnNvbGlkYXRlZFBhcmFtZXRlck1hcH0gZnJvbSAnLi9ndWFyZHMvY29uc29saWRhdGVkLXBhcmFtLW1hcCc7XG5pbXBvcnQge1BsYWNlRGVmaW5pdGlvbn0gZnJvbSAnLi9wbGFjZS1kZWZpbml0aW9uJztcbmltcG9ydCB7VmlzaXRTZWdtZW50fSBmcm9tICcuL3Zpc2l0LXNlZ21lbnQnO1xuXG5mdW5jdGlvbiBleHRyYWN0UHJpbWFyeVVybFNlZ21lbnRzKHVybFRyZWU6IFVybFRyZWUpOiBVcmxTZWdtZW50W10ge1xuICByZXR1cm4gdXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnk/LnNlZ21lbnRzID8/IFtdO1xufVxuXG5leHBvcnQgY2xhc3MgVXJsU25hcHNob3Qge1xuXG4gIHJlYWRvbmx5IHVybFRyZWU6IFVybFRyZWU7XG5cbiAgLy8gVE9ETzogVXBkYXRlIHRoaXMgYWNjZXB0IGEgdXJsIFBhcnNlciBzbyBpdCBjYW4gYmUgaW1tdXRhYmxlIGFuZCBnZW5lcmF0ZSBuZXcgdHJlZXMgb24gbXV0YXRpb24gdXNpbmcgdG9TdHJpbmcoKSBhcmUgcGFyc2VVcmwuXG4gIGNvbnN0cnVjdG9yKHJlYWRvbmx5IHVybFNlcmlhbGl6ZXI6IFVybFNlcmlhbGl6ZXIsIHJlYWRvbmx5IHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy51cmxUcmVlID0gdXJsU2VyaWFsaXplci5wYXJzZSh1cmwpO1xuICB9XG5cbiAgLy8gQFRyYWNlKClcbiAgcHVibGljIHVwZGF0ZVZpc2l0U2VnbWVudCh2aXNpdFNlZ21lbnQ6IFZpc2l0U2VnbWVudCk6IFVybFNuYXBzaG90IHtcbiAgICBjb25zdCBuZXdVcmxUcmVlID0gdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHRoaXMudXJsKTtcbiAgICAvLyBVZ2x5LCBidXQgaXQgd29ya3MgZm9yIG5vdy5cbiAgICBjb25zdCBzZWdtZW50cyA9IFsuLi5leHRyYWN0UHJpbWFyeVVybFNlZ21lbnRzKG5ld1VybFRyZWUpXTtcbiAgICBjb25zdCB1cmxTZWdtZW50cyA9IHRoaXMuZ2V0VXJsU2VnbWVudHNGb3JWaXNpdFNlZ21lbnQodmlzaXRTZWdtZW50KTtcbiAgICBjb25zdCByZXBsYWNlQXQgPSBzZWdtZW50cy5maW5kSW5kZXgoc2VnbWVudCA9PiBzZWdtZW50LnBhdGggPT09IHVybFNlZ21lbnRzWzBdLnBhdGgpO1xuICAgIC8vIGRvIG5vdCB1c2UgdGhlIHJldHVybiB2YWx1ZSwgaXQncyB0aGUgaXRlbXMgdGhhdCB3ZXJlIHJlbW92ZWQhXG4gICAgc2VnbWVudHMuc3BsaWNlKHJlcGxhY2VBdCwgdXJsU2VnbWVudHMubGVuZ3RoLCAuLi51cmxTZWdtZW50cyk7XG4gICAgbmV3VXJsVHJlZS5yb290LmNoaWxkcmVuLnByaW1hcnkuc2VnbWVudHMgPSBzZWdtZW50cztcbiAgICByZXR1cm4gbmV3IFVybFNuYXBzaG90KHRoaXMudXJsU2VyaWFsaXplciwgbmV3VXJsVHJlZS50b1N0cmluZygpKTtcbiAgfVxuXG4gIGFwcGVuZFNlZ21lbnQodmlzaXRTZWdtZW50OiBWaXNpdFNlZ21lbnQpOlVybFNuYXBzaG90IHtcbiAgICAvLyBUT0RPOiBtYWtlIHRoaXMgd29yayBwcm9wZXJseSB3aXRoIHZpc2l0IHBhcmFtZXRlcnNcbiAgICByZXR1cm4gbmV3IFVybFNuYXBzaG90KHRoaXMudXJsU2VyaWFsaXplciwgdGhpcy51cmwgKyBcIi9cIiArIHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aClcbiAgfVxuXG4gIEBNZW1vaXplKClcbiAgcHJpdmF0ZSBnZXRQcmltYXJ5VXJsU2VnbWVudHMoKTogVXJsU2VnbWVudFtdIHtcbiAgICByZXR1cm4gZXh0cmFjdFByaW1hcnlVcmxTZWdtZW50cyh0aGlzLnVybFRyZWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSB2aXNpdCBpbnRvIHNlZ21lbnRzLiAgUGxlYXNlIG5vdCB0aGF0IHRoZXNlIHNlZ21lbnRzIGFyZSBub3QgZVxuICAgKiBAcGFyYW0gdmlzaXRTZWdtZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0VXJsU2VnbWVudHNGb3JWaXNpdFNlZ21lbnQodmlzaXRTZWdtZW50OiBWaXNpdFNlZ21lbnQpOiBVcmxTZWdtZW50W10ge1xuICAgIHJldHVybiB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLmhhc1JvdXRlSWQoKSA/XG4gICAgICBbXG4gICAgICAgIC8vIE5PVEU6XG4gICAgICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGF0dGFjaCB0aGUgcGFyYW1zIHRvIHRoZSByb290IHBhdGggYW5kIG5vdCB0aGUgaWQuICBJZiB3ZSBhdHRhY2ggdGhlbVxuICAgICAgICAvLyB0byBhbiBlbXB0eSBpZCB0aGVuIHRoZSBhbmd1bGFyIHJvdXRlciB3b24ndCBtYXRjaCB0aGUgcGF0dGVybi5cbiAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdFNlZ21lbnQpKSxcbiAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZUlkKHZpc2l0U2VnbWVudCksIHt9KV1cbiAgICAgIDpcbiAgICAgIFtcbiAgICAgICAgbmV3IFVybFNlZ21lbnQodmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5wYXRoLCB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLmdldEZvcm1hdHRlZFJvdXRlUGFyYW1ldGVycyh2aXNpdFNlZ21lbnQpKVxuICAgICAgXTtcbiAgfVxuXG4gIGluY2x1ZGVzUGF0aE9mKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQcmltYXJ5VXJsU2VnbWVudHMoKS5maW5kKHMgPT4gcy5wYXRoID09PSBwbGFjZURlZi5wYXRoKTtcbiAgfVxuXG4gIGlzTGFzdFBsYWNlSW5VcmwocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiBsYXN0KHRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkpLnBhdGggPT09IHBsYWNlRGVmLnBhdGg7XG4gIH1cblxuICBjcmVhdGVWaXNpdFNlZ21lbnRGb3IocGxhY2VEZWY6IFBsYWNlRGVmaW5pdGlvbikge1xuICAgIHJldHVybiBuZXcgVmlzaXRTZWdtZW50KHBsYWNlRGVmLCBuZXcgQ29uc29saWRhdGVkUGFyYW1ldGVyTWFwKHRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkpKTtcbiAgfVxuXG4gIGdldEludGVyYWN0aW9uSWRzKCkge1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW0gPSB0aGlzLnVybFRyZWUucXVlcnlQYXJhbXNbVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUVVFUllfUEFSQU1dO1xuICAgIGlmIChxdWVyeVBhcmFtKSB7XG4gICAgICByZXR1cm4gVXJsU25hcHNob3QucGFyc2VJbnRlcmFjdGlvbklkcyhxdWVyeVBhcmFtKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxuXG4gIGhhc0ludGVyYWN0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRJbnRlcmFjdGlvbklkcygpLmxlbmd0aCA+IDA7XG4gIH1cblxuICBoYXNJbnRlcmFjdGlvbklkcyhpZHM6IHJlYWRvbmx5IHN0cmluZ1tdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRXF1YWwodGhpcy5nZXRJbnRlcmFjdGlvbklkcygpLCBpZHMpO1xuICB9XG4gIC8vIEBUcmFjZSgpXG5cbiAgdXBkYXRlSW50ZXJhY3Rpb25JZHMoaWRzOiByZWFkb25seSBzdHJpbmdbXSk6IFVybFNuYXBzaG90IHtcbiAgICBpZiAoaWRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLnVybCk7XG4gICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXSA9IFVybFNuYXBzaG90LmNyZWF0ZVBhdGhJZEZvcihpZHMpO1xuICAgICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSk7XG4gICAgfVxuICB9XG4gIC8vIEBUcmFjZSgpXG5cbiAgcmVtb3ZlSW50ZXJhY3Rpb25JZHMoKTogVXJsU25hcHNob3Qge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy51cmwpO1xuICAgIGlmICh1cmxUcmVlLnF1ZXJ5UGFyYW1zICYmIHVybFRyZWUucXVlcnlQYXJhbXNbVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUVVFUllfUEFSQU1dKSB7XG4gICAgICB1cmxUcmVlLnF1ZXJ5UGFyYW1zID0ge307Ly9bVXJsU25hcHNob3QuSU5URVJBQ1RJT05fUk9VVEVSX09VVExFVF1cbiAgICB9XG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHVybFRyZWUudG9TdHJpbmcoKSk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgVXJsU25hcHNob3QoJHt0aGlzLnVybH0pYDtcbiAgfVxuXG4gIGNvbnRhaW5zVmlzaXRTZWdtZW50KHNlZ21lbnQ6IFZpc2l0U2VnbWVudCkge1xuICAgIHJldHVybiAhIXRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkuZmluZChzID0+IHMucGF0aCA9PT0gc2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aCk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBVcmxTbmFwc2hvdCB7XG5cbiAgZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX1FVRVJZX1BBUkFNID0gJ2F1cC1pbnRlcmFjdGlvbnMnO1xuICBleHBvcnQgY29uc3QgSU5URVJBQ1RJT05fSURfU0VQQVJBVE9SID0gJy0tJztcblxuICBleHBvcnQgZnVuY3Rpb24gcGFyc2VJbnRlcmFjdGlvbklkcyhwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aC5zcGxpdChJTlRFUkFDVElPTl9JRF9TRVBBUkFUT1IpO1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhdGhJZEZvcihpbnRlcmFjdGlvbklkczogcmVhZG9ubHkgc3RyaW5nW10pIHtcbiAgICByZXR1cm4gaW50ZXJhY3Rpb25JZHMuam9pbihJTlRFUkFDVElPTl9JRF9TRVBBUkFUT1IpO1xuICB9XG5cbiAgZXhwb3J0IGludGVyZmFjZSBOYXZpZ2F0aW9uT3B0aW9ucyB7XG4gICAgcmVwbGFjZVVybD86IGJvb2xlYW47XG4gIH1cbn1cbiJdfQ==
125
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLXNuYXBzaG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLXVpLXBvd2VydXBzL3NyYy9saWIvcGxhY2UvdXJsLXNuYXBzaG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUF5QixNQUFNLGlCQUFpQixDQUFDO0FBQ25FLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUVoRSxPQUFPLEVBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUV6RSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsU0FBUyx5QkFBeUIsQ0FBQyxPQUFnQjtJQUNqRCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO0FBQ3ZELENBQUM7QUFFRCxNQUFNLE9BQU8sV0FBVztJQUtEO0lBQXVDO0lBSG5ELE9BQU8sQ0FBVTtJQUUxQixpSUFBaUk7SUFDakksWUFBcUIsYUFBNEIsRUFBVyxHQUFXO1FBQWxELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQVcsUUFBRyxHQUFILEdBQUcsQ0FBUTtRQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVc7SUFDSixrQkFBa0IsQ0FBQyxZQUEwQjtRQUNsRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsOEJBQThCO1FBQzlCLE1BQU0sUUFBUSxHQUFHLENBQUMsR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FB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LENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRixDQUFDO0NBQ0Y7QUE5RVM7SUFEUCxPQUFPLEVBQUU7Ozs7d0RBR1Q7QUE4RUgsV0FBaUIsV0FBVztJQUViLG1DQUF1QixHQUFHLGtCQUFrQixDQUFDO0lBQzdDLG9DQUF3QixHQUFHLElBQUksQ0FBQztJQUU3QyxTQUFnQixtQkFBbUIsQ0FBQyxJQUFZO1FBQzlDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFBLHdCQUF3QixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUZlLCtCQUFtQixzQkFFbEMsQ0FBQTtJQUVELFNBQWdCLGVBQWUsQ0FBQyxjQUFpQztRQUMvRCxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBQSx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFGZSwyQkFBZSxrQkFFOUIsQ0FBQTtBQUtILENBQUMsRUFoQmdCLFdBQVcsS0FBWCxXQUFXLFFBZ0IzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXJsU2VnbWVudCwgVXJsU2VyaWFsaXplciwgVXJsVHJlZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7TWVtb2l6ZX0gZnJvbSAnQHR5cGVzY3JpcHQtcGx1cy9mYXN0LW1lbW9pemUtZGVjb3JhdG9yJztcblxuaW1wb3J0IHtpc0VxdWFsLCBsYXN0fSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtDb25zb2xpZGF0ZWRQYXJhbWV0ZXJNYXB9IGZyb20gJy4vZ3VhcmRzL2NvbnNvbGlkYXRlZC1wYXJhbS1tYXAnO1xuaW1wb3J0IHtQbGFjZURlZmluaXRpb259IGZyb20gJy4vcGxhY2UtZGVmaW5pdGlvbic7XG5pbXBvcnQge1Zpc2l0U2VnbWVudH0gZnJvbSAnLi92aXNpdC1zZWdtZW50JztcblxuZnVuY3Rpb24gZXh0cmFjdFByaW1hcnlVcmxTZWdtZW50cyh1cmxUcmVlOiBVcmxUcmVlKTogVXJsU2VnbWVudFtdIHtcbiAgcmV0dXJuIHVybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5Py5zZWdtZW50cyA/PyBbXTtcbn1cblxuZXhwb3J0IGNsYXNzIFVybFNuYXBzaG90IHtcblxuICByZWFkb25seSB1cmxUcmVlOiBVcmxUcmVlO1xuXG4gIC8vIFRPRE86IFVwZGF0ZSB0aGlzIGFjY2VwdCBhIHVybCBQYXJzZXIgc28gaXQgY2FuIGJlIGltbXV0YWJsZSBhbmQgZ2VuZXJhdGUgbmV3IHRyZWVzIG9uIG11dGF0aW9uIHVzaW5nIHRvU3RyaW5nKCkgYXJlIHBhcnNlVXJsLlxuICBjb25zdHJ1Y3RvcihyZWFkb25seSB1cmxTZXJpYWxpemVyOiBVcmxTZXJpYWxpemVyLCByZWFkb25seSB1cmw6IHN0cmluZykge1xuICAgIHRoaXMudXJsVHJlZSA9IHVybFNlcmlhbGl6ZXIucGFyc2UodXJsKTtcbiAgfVxuXG4gIC8vIEBUcmFjZSgpXG4gIHB1YmxpYyB1cGRhdGVWaXNpdFNlZ21lbnQodmlzaXRTZWdtZW50OiBWaXNpdFNlZ21lbnQpOiBVcmxTbmFwc2hvdCB7XG4gICAgY29uc3QgbmV3VXJsVHJlZSA9IHRoaXMudXJsU2VyaWFsaXplci5wYXJzZSh0aGlzLnVybCk7XG4gICAgLy8gVWdseSwgYnV0IGl0IHdvcmtzIGZvciBub3cuXG4gICAgY29uc3Qgc2VnbWVudHMgPSBbLi4uZXh0cmFjdFByaW1hcnlVcmxTZWdtZW50cyhuZXdVcmxUcmVlKV07XG4gICAgY29uc3QgdXJsU2VnbWVudHMgPSB0aGlzLmdldFVybFNlZ21lbnRzRm9yVmlzaXRTZWdtZW50KHZpc2l0U2VnbWVudCk7XG4gICAgY29uc3QgcmVwbGFjZUF0ID0gc2VnbWVudHMuZmluZEluZGV4KHNlZ21lbnQgPT4gc2VnbWVudC5wYXRoID09PSB1cmxTZWdtZW50c1swXS5wYXRoKTtcbiAgICAvLyBkbyBub3QgdXNlIHRoZSByZXR1cm4gdmFsdWUsIGl0J3MgdGhlIGl0ZW1zIHRoYXQgd2VyZSByZW1vdmVkIVxuICAgIHNlZ21lbnRzLnNwbGljZShyZXBsYWNlQXQsIHVybFNlZ21lbnRzLmxlbmd0aCwgLi4udXJsU2VnbWVudHMpO1xuICAgIG5ld1VybFRyZWUucm9vdC5jaGlsZHJlbi5wcmltYXJ5LnNlZ21lbnRzID0gc2VnbWVudHM7XG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIG5ld1VybFRyZWUudG9TdHJpbmcoKSk7XG4gIH1cblxuICBhcHBlbmRTZWdtZW50KHZpc2l0U2VnbWVudDogVmlzaXRTZWdtZW50KTpVcmxTbmFwc2hvdCB7XG4gICAgLy8gVE9ETzogbWFrZSB0aGlzIHdvcmsgcHJvcGVybHkgd2l0aCB2aXNpdCBwYXJhbWV0ZXJzXG4gICAgcmV0dXJuIG5ldyBVcmxTbmFwc2hvdCh0aGlzLnVybFNlcmlhbGl6ZXIsIHRoaXMudXJsICsgXCIvXCIgKyB2aXNpdFNlZ21lbnQucGxhY2VEZWZpbml0aW9uLnBhdGgpXG4gIH1cblxuICBATWVtb2l6ZSgpXG4gIHByaXZhdGUgZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCk6IFVybFNlZ21lbnRbXSB7XG4gICAgcmV0dXJuIGV4dHJhY3RQcmltYXJ5VXJsU2VnbWVudHModGhpcy51cmxUcmVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgdmlzaXQgaW50byBzZWdtZW50cy4gIFBsZWFzZSBub3QgdGhhdCB0aGVzZSBzZWdtZW50cyBhcmUgbm90IGVcbiAgICogQHBhcmFtIHZpc2l0U2VnbWVudFxuICAgKi9cbiAgcHJvdGVjdGVkIGdldFVybFNlZ21lbnRzRm9yVmlzaXRTZWdtZW50KHZpc2l0U2VnbWVudDogVmlzaXRTZWdtZW50KTogVXJsU2VnbWVudFtdIHtcbiAgICByZXR1cm4gdmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5oYXNSb3V0ZUlkKCkgP1xuICAgICAgW1xuICAgICAgICAvLyBOT1RFOlxuICAgICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBhdHRhY2ggdGhlIHBhcmFtcyB0byB0aGUgcm9vdCBwYXRoIGFuZCBub3QgdGhlIGlkLiAgSWYgd2UgYXR0YWNoIHRoZW1cbiAgICAgICAgLy8gdG8gYW4gZW1wdHkgaWQgdGhlbiB0aGUgYW5ndWxhciByb3V0ZXIgd29uJ3QgbWF0Y2ggdGhlIHBhdHRlcm4uXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXRTZWdtZW50KSksXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24uZ2V0Rm9ybWF0dGVkUm91dGVJZCh2aXNpdFNlZ21lbnQpLCB7fSldXG4gICAgICA6XG4gICAgICBbXG4gICAgICAgIG5ldyBVcmxTZWdtZW50KHZpc2l0U2VnbWVudC5wbGFjZURlZmluaXRpb24ucGF0aCwgdmlzaXRTZWdtZW50LnBsYWNlRGVmaW5pdGlvbi5nZXRGb3JtYXR0ZWRSb3V0ZVBhcmFtZXRlcnModmlzaXRTZWdtZW50KSlcbiAgICAgIF07XG4gIH1cblxuICBpbmNsdWRlc1BhdGhPZihwbGFjZURlZjogUGxhY2VEZWZpbml0aW9uKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UHJpbWFyeVVybFNlZ21lbnRzKCkuZmluZChzID0+IHMucGF0aCA9PT0gcGxhY2VEZWYucGF0aCk7XG4gIH1cblxuICBpc0xhc3RQbGFjZUluVXJsKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gbGFzdCh0aGlzLmdldFByaW1hcnlVcmxTZWdtZW50cygpKS5wYXRoID09PSBwbGFjZURlZi5wYXRoO1xuICB9XG5cbiAgY3JlYXRlVmlzaXRTZWdtZW50Rm9yKHBsYWNlRGVmOiBQbGFjZURlZmluaXRpb24pIHtcbiAgICByZXR1cm4gbmV3IFZpc2l0U2VnbWVudChwbGFjZURlZiwgbmV3IENvbnNvbGlkYXRlZFBhcmFtZXRlck1hcCh0aGlzLmdldFByaW1hcnlVcmxTZWdtZW50cygpKSk7XG4gIH1cblxuICBnZXRJbnRlcmFjdGlvbklkcygpIHtcbiAgICBjb25zdCBxdWVyeVBhcmFtID0gdGhpcy51cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXTtcbiAgICBpZiAocXVlcnlQYXJhbSkge1xuICAgICAgcmV0dXJuIFVybFNuYXBzaG90LnBhcnNlSW50ZXJhY3Rpb25JZHMocXVlcnlQYXJhbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBoYXNJbnRlcmFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0SW50ZXJhY3Rpb25JZHMoKS5sZW5ndGggPiAwO1xuICB9XG5cbiAgaGFzSW50ZXJhY3Rpb25JZHMoaWRzOiByZWFkb25seSBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc0VxdWFsKHRoaXMuZ2V0SW50ZXJhY3Rpb25JZHMoKSwgaWRzKTtcbiAgfVxuICAvLyBAVHJhY2UoKVxuXG4gIHVwZGF0ZUludGVyYWN0aW9uSWRzKGlkczogcmVhZG9ubHkgc3RyaW5nW10pOiBVcmxTbmFwc2hvdCB7XG4gICAgaWYgKGlkcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLnJlbW92ZUludGVyYWN0aW9uSWRzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFNlcmlhbGl6ZXIucGFyc2UodGhpcy51cmwpO1xuICAgICAgdXJsVHJlZS5xdWVyeVBhcmFtc1tVcmxTbmFwc2hvdC5JTlRFUkFDVElPTl9RVUVSWV9QQVJBTV0gPSBVcmxTbmFwc2hvdC5jcmVhdGVQYXRoSWRGb3IoaWRzKTtcbiAgICAgIHJldHVybiBuZXcgVXJsU25hcHNob3QodGhpcy51cmxTZXJpYWxpemVyLCB1cmxUcmVlLnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgfVxuICAvLyBAVHJhY2UoKVxuXG4gIHJlbW92ZUludGVyYWN0aW9uSWRzKCk6IFVybFNuYXBzaG90IHtcbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy51cmxTZXJpYWxpemVyLnBhcnNlKHRoaXMudXJsKTtcbiAgICBpZiAodXJsVHJlZS5xdWVyeVBhcmFtcyAmJiB1cmxUcmVlLnF1ZXJ5UGFyYW1zW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1FVRVJZX1BBUkFNXSkge1xuICAgICAgdXJsVHJlZS5xdWVyeVBhcmFtcyA9IHt9Oy8vW1VybFNuYXBzaG90LklOVEVSQUNUSU9OX1JPVVRFUl9PVVRMRVRdXG4gICAgfVxuICAgIHJldHVybiBuZXcgVXJsU25hcHNob3QodGhpcy51cmxTZXJpYWxpemVyLCB1cmxUcmVlLnRvU3RyaW5nKCkpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYFVybFNuYXBzaG90KCR7dGhpcy51cmx9KWA7XG4gIH1cblxuICBjb250YWluc1Zpc2l0U2VnbWVudChzZWdtZW50OiBWaXNpdFNlZ21lbnQpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldFByaW1hcnlVcmxTZWdtZW50cygpLmZpbmQocyA9PiBzLnBhdGggPT09IHNlZ21lbnQucGxhY2VEZWZpbml0aW9uLnBhdGgpO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgVXJsU25hcHNob3Qge1xuXG4gIGV4cG9ydCBjb25zdCBJTlRFUkFDVElPTl9RVUVSWV9QQVJBTSA9ICdhdXAtaW50ZXJhY3Rpb25zJztcbiAgZXhwb3J0IGNvbnN0IElOVEVSQUNUSU9OX0lEX1NFUEFSQVRPUiA9ICctLSc7XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50ZXJhY3Rpb25JZHMocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhdGguc3BsaXQoSU5URVJBQ1RJT05fSURfU0VQQVJBVE9SKTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBjcmVhdGVQYXRoSWRGb3IoaW50ZXJhY3Rpb25JZHM6IHJlYWRvbmx5IHN0cmluZ1tdKSB7XG4gICAgcmV0dXJuIGludGVyYWN0aW9uSWRzLmpvaW4oSU5URVJBQ1RJT05fSURfU0VQQVJBVE9SKTtcbiAgfVxuXG4gIGV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbk9wdGlvbnMge1xuICAgIHJlcGxhY2VVcmw/OiBib29sZWFuO1xuICB9XG59XG4iXX0=